<template>
  <transition name="slide">
    <div v-if="isToolbarActive" class="toolbar-container">
      <div class="toolbar-content">
        <p class="toolbar-selected">
          {{ selectedItemsCount }} {{ $t('global.action.selected') }}
        </p>
        <div class="toolbar-actions d-flex">
          <b-button
            v-for="(action, index) in actions"
            :key="index"
            variant="primary"
            class="d-block"
            @click="$emit('batchAction', action.value)"
          >
            {{ action.label }}
          </b-button>
          <slot name="export"></slot>
          <b-button
            variant="primary"
            class="d-block"
            @click="$emit('clearSelected')"
          >
            {{ $t('global.action.cancel') }}
          </b-button>
        </div>
      </div>
    </div>
  </transition>
</template>

<script>
export default {
  name: 'TableToolbar',
  props: {
    selectedItemsCount: {
      type: Number,
      required: true
    },
    actions: {
      type: Array,
      default: () => [],
      validator: prop => {
        return prop.every(action => {
          return (
            action.hasOwnProperty('value') && action.hasOwnProperty('label')
          );
        });
      }
    }
  },
  data() {
    return {
      isToolbarActive: false
    };
  },
  watch: {
    selectedItemsCount: function(selectedItemsCount) {
      if (selectedItemsCount > 0) {
        this.isToolbarActive = true;
      } else {
        this.isToolbarActive = false;
      }
    }
  }
};
</script>

<style lang="scss" scoped>
@import 'src/assets/styles/helpers';

$toolbar-height: 46px;

.toolbar-container {
  width: 100%;
  position: relative;
}

.toolbar-content {
  height: $toolbar-height;
  background-color: $primary;
  color: $white;
  position: absolute;
  left: 0;
  right: 0;
  top: -$toolbar-height;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.toolbar-actions {
  > :last-child {
    position: relative;
    &::before {
      content: '';
      position: absolute;
      height: $toolbar-height / 2;
      border-left: 2px solid $white;
      left: -2px;
      top: $toolbar-height / 4;
    }
  }
}

.toolbar-selected {
  line-height: $toolbar-height;
  margin: 0;
  padding: 0 $spacer;
}

.slide-enter-active {
  transition: transform $duration--moderate-02 $entrance-easing--productive;
}
.slide-leave-active {
  transition: transform $duration--moderate-02 $exit-easing--productive;
}
.slide-enter,
.slide-leave-to {
  transform: translateY($toolbar-height);
}
</style>
