<template>
  <div class="kole-steplist" :class="{ 'is-horizontal': direction === 'horizontal' }">
    <div class="kole-steplist-item" v-for="(it, i) in steps" :key="i"
         :class="['is-' + it.status, { 'is-clickable': clickable }]" @click="clickable && $emit('step-click', i)">
      <span class="kole-steplist-node">{{ nodeText(it, i) }}</span>
      <span class="kole-steplist-line"></span>
      <div class="kole-steplist-body">
        <div class="kole-steplist-title">{{ it.title }}</div>
        <div class="kole-steplist-desc" v-if="it.desc">{{ it.desc }}</div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'KoleStepList',
  props: {
    steps: { type: Array, default: function () { return []; } },
    direction: { type: String, default: 'vertical' },
    clickable: { type: Boolean, default: false }
  },
  methods: {
    nodeText: function (it, i) {
      if (it.status === 'done') return '✓';
      if (it.status === 'error') return '✕';
      return String(i + 1);
    }
  }
};
</script>

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