text: // Styles
  import '../../../src/stylus/components/_windows.styl';
  // Components
  import { BaseItemGroup } from '../VItemGroup/VItemGroup';
  // Directives
  import Touch from '../../directives/touch';
  /* @vue/component */
  export default BaseItemGroup.extend({
      name: 'v-window',
      provide: function provide() {
          return {
              windowGroup: this
          };
      },
  
      directives: { Touch: Touch },
      props: {
          mandatory: {
              type: Boolean,
              default: true
          },
          reverse: {
              type: Boolean,
              default: undefined
          },
          touch: Object,
          touchless: Boolean,
          value: {
              required: false
          },
          vertical: Boolean
      },
      data: function data() {
          return {
              internalHeight: undefined,
              isActive: false,
              isBooted: false,
              isReverse: false
          };
      },
  
      computed: {
          computedTransition: function computedTransition() {
              if (!this.isBooted) return '';
              var axis = this.vertical ? 'y' : 'x';
              var direction = this.internalReverse === !this.$vuetify.rtl ? '-reverse' : '';
              return 'v-window-' + axis + direction + '-transition';
          },
          internalIndex: function internalIndex() {
              var _this = this;
  
              return this.items.findIndex(function (item, i) {
                  return _this.internalValue === _this.getValue(item, i);
              });
          },
          internalReverse: function internalReverse() {
              if (this.reverse !== undefined) return this.reverse;
              return this.isReverse;
          }
      },
      watch: {
          internalIndex: 'updateReverse'
      },
      mounted: function mounted() {
          var _this2 = this;
  
          this.$nextTick(function () {
              return _this2.isBooted = true;
          });
      },
  
      methods: {
          genContainer: function genContainer() {
              return this.$createElement('div', {
                  staticClass: 'v-window__container',
                  class: {
                      'v-window__container--is-active': this.isActive
                  },
                  style: {
                      height: this.internalHeight
                  }
              }, this.$slots.default);
          },
          next: function next() {
              this.isReverse = false;
              var nextIndex = (this.internalIndex + 1) % this.items.length;
              var item = this.items[nextIndex];
              this.internalValue = this.getValue(item, nextIndex);
          },
          prev: function prev() {
              this.isReverse = true;
              var lastIndex = (this.internalIndex + this.items.length - 1) % this.items.length;
              var item = this.items[lastIndex];
              this.internalValue = this.getValue(item, lastIndex);
          },
          updateReverse: function updateReverse(val, oldVal) {
              this.isReverse = val < oldVal;
          }
      },
      render: function render(h) {
          var data = {
              staticClass: 'v-window',
              directives: []
          };
          if (!this.touchless) {
              var value = this.touch || {
                  left: this.next,
                  right: this.prev
              };
              data.directives.push({
                  name: 'touch',
                  value: value
              });
          }
          return h('div', data, [this.genContainer()]);
      }
  });
  //# sourceMappingURL=VWindow.js.map