<template>
  <div class="kole-imgprev-mask" v-if="visible" @click.self="$emit('close')">
    <button class="kole-imgprev-close" @click="$emit('close')">✕</button>
    <button class="kole-imgprev-arrow prev" @click="go(-1)">‹</button>
    <img class="kole-imgprev-img" :src="images[index]" :alt="index" />
    <button class="kole-imgprev-arrow next" @click="go(1)">›</button>
    <div class="kole-imgprev-count">{{ index + 1 }} / {{ images.length }}</div>
    <div class="kole-imgprev-thumbs">
      <img v-for="(u, i) in images" :key="i" class="kole-imgprev-thumb" :class="{ 'is-active': i === index }"
           :src="u" @click="$emit('change', i)" />
    </div>
  </div>
</template>

<script>
export default {
  name: 'KoleImagePreview',
  props: { images: { type: Array, default: function () { return []; } }, visible: { type: Boolean, default: false }, index: { type: Number, default: 0 } },
  methods: {
    go: function (dir) {
      var len = this.images.length || 1;
      this.$emit('change', (this.index + dir + len) % len);
    }
  }
};
</script>

<style src="./ImagePreview.css"></style>
