{"version":3,"sources":["webpack:///./node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTabsSlider.js","webpack:///./node_modules/vuetify/lib/components/VWindow/VWindow.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTabsBar.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTabsItems.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTabs.js"],"names":["bias","val","c","x","Math","abs","sign","calculateUpdatedOffset","selectedElement","widths","rtl","currentScrollOffset","clientWidth","offsetLeft","content","totalWidth","wrapper","itemOffset","additionalOffset","max","min","calculateCenteredOffset","offsetCentered","BaseSlideGroup","extend","name","directives","Resize","Touch","props","activeClass","type","String","default","centerActive","Boolean","nextIcon","prevIcon","showArrows","validator","v","includes","data","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","computed","window","this","genTransition","options","classes","call","hasAffixes","isMobile","watch","internalValue","$vuetify","scroll","$refs","style","transform","ResizeObserver","obs","onResize","observe","$el","$on","disconnect","itemsLength","_a","children","length","setWidths","methods","scrollLeft","e","el","vm","items","slot","$scopedSlots","next","$slots","__cachedNext","$createElement","staticClass","class","hasNext","on","click","onAffixClick","key","ref","focusin","onFocusin","value","location","icon","upperLocation","toUpperCase","slice","hasAffix","disabled","prev","__cachedPrev","hasPrev","genIcon","start","overflowCheck","onTouchStart","move","onTouchMove","end","onTouchEnd","onScroll","genContent","direction","newAbosluteOffset","$emit","scrollTo","_isDestroyed","touchstartX","setProperty","canTouch","diffX","touchmoveX","diffY","touchmoveY","touchstartY","document","documentElement","overflowY","maxScrollOffset","removeProperty","fn","stopPropagation","selectedItem","lastItemPosition","getBoundingClientRect","wrapperPosition","right","left","selectedIndex","calculateNewOffset","requestAnimationFrame","scrollIntoView","h","genData","genPrev","genWrapper","genNext","slideGroup","setBackgroundColor","color","windowGroup","continuous","mandatory","reverse","showArrowsOnHover","touch","Object","touchless","required","vertical","changedByDelimiters","internalHeight","undefined","transitionHeight","transitionCount","isBooted","isReverse","axis","internalReverse","find","item","internalIndex","findIndex","i","getValue","oldVal","updateReverse","genDefaultSlot","push","genControlIcons","isActive","height","_b","_c","attrs","lang","t","large","icons","index","nextIndex","getNextIndex","prevIndex","getPrevIndex","hasActiveItems","lastIndex","genContainer","mixins","tabsBar","themeClasses","$route","render","newPath","path","oldPath","hasNew","hasOld","to","role","VWindow","rootIsDark","id","baseMixins","alignWithTitle","backgroundColor","centered","fixedTabs","grow","Number","hideSlider","iconsAndText","mobileBreakpoint","optional","sliderColor","sliderSize","slider","top","width","transitionTime","isReversed","transition","isDark","appIsDark","$nextTick","setTimeout","callSlider","selectedItems","activeTab","scrollHeight","offsetWidth","offsetTop","scrollWidth","dark","light","change","setTextColor","computedColor","VTabsBar","genSlider","VTabsItems","VTabsSlider","sliderStyles","clearTimeout","tab","vnode","componentOptions","Ctor","parseNodes","modifiers","quiet","genBar","genItems"],"mappings":"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","file":"js/chunk-500281df.f3f819bf.js","sourcesContent":["// Styles\nimport \"../../../src/components/VSlideGroup/VSlideGroup.sass\"; // Components\n\nimport VIcon from '../VIcon';\nimport { VFadeTransition } from '../transitions'; // Extensions\n\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'; // Mixins\n\nimport Mobile from '../../mixins/mobile'; // Directives\n\nimport Resize from '../../directives/resize';\nimport Touch from '../../directives/touch'; // Utilities\n\nimport mixins from '../../util/mixins';\nimport { composedPath } from '../../util/helpers';\n\nfunction bias(val) {\n const c = 0.501;\n const x = Math.abs(val);\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1));\n}\n\nexport function calculateUpdatedOffset(selectedElement, widths, rtl, currentScrollOffset) {\n const clientWidth = selectedElement.clientWidth;\n const offsetLeft = rtl ? widths.content - selectedElement.offsetLeft - clientWidth : selectedElement.offsetLeft;\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset;\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset;\n const itemOffset = clientWidth + offsetLeft;\n const additionalOffset = clientWidth * 0.4;\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0);\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper);\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset;\n}\nexport function calculateCenteredOffset(selectedElement, widths, rtl) {\n const {\n offsetLeft,\n clientWidth\n } = selectedElement;\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2;\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered));\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2;\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered));\n }\n}\nexport const BaseSlideGroup = mixins(BaseItemGroup, Mobile).extend({\n name: 'base-slide-group',\n directives: {\n Resize,\n Touch\n },\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active'\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next'\n },\n prevIcon: {\n type: String,\n default: '$prev'\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)\n }\n },\n data: () => ({\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0\n }\n }),\n computed: {\n canTouch() {\n return typeof window !== 'undefined';\n },\n\n __cachedNext() {\n return this.genTransition('next');\n },\n\n __cachedPrev() {\n return this.genTransition('prev');\n },\n\n classes() {\n return { ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing\n };\n },\n\n hasAffixes() {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always':\n return true;\n // Always show arrows on desktop\n\n case 'desktop':\n return !this.isMobile;\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n\n case true:\n return this.isOverflowing || Math.abs(this.scrollOffset) > 0;\n // Always show on mobile\n\n case 'mobile':\n return this.isMobile || this.isOverflowing || Math.abs(this.scrollOffset) > 0;\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n\n default:\n return !this.isMobile && (this.isOverflowing || Math.abs(this.scrollOffset) > 0);\n }\n },\n\n hasNext() {\n if (!this.hasAffixes) return false;\n const {\n content,\n wrapper\n } = this.widths; // Check one scroll ahead to know the width of right-most item\n\n return content > Math.abs(this.scrollOffset) + wrapper;\n },\n\n hasPrev() {\n return this.hasAffixes && this.scrollOffset !== 0;\n }\n\n },\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n\n scrollOffset(val) {\n if (this.$vuetify.rtl) val = -val;\n let scroll = val <= 0 ? bias(-val) : val > this.widths.content - this.widths.wrapper ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val) : -val;\n if (this.$vuetify.rtl) scroll = -scroll;\n this.$refs.content.style.transform = `translateX(${scroll}px)`;\n }\n\n },\n\n mounted() {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize();\n });\n obs.observe(this.$el);\n obs.observe(this.$refs.content);\n this.$on('hook:destroyed', () => {\n obs.disconnect();\n });\n } else {\n let itemsLength = 0;\n this.$on('hook:beforeUpdate', () => {\n var _a;\n\n itemsLength = (((_a = this.$refs.content) === null || _a === void 0 ? void 0 : _a.children) || []).length;\n });\n this.$on('hook:updated', () => {\n var _a;\n\n if (itemsLength === (((_a = this.$refs.content) === null || _a === void 0 ? void 0 : _a.children) || []).length) return;\n this.setWidths();\n });\n }\n },\n\n methods: {\n onScroll() {\n this.$refs.wrapper.scrollLeft = 0;\n },\n\n onFocusin(e) {\n if (!this.isOverflowing) return; // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(vm.$el, this.widths, this.$vuetify.rtl, this.scrollOffset);\n return;\n }\n }\n }\n },\n\n // Always generate next for scrollable hint\n genNext() {\n const slot = this.$scopedSlots.next ? this.$scopedSlots.next({}) : this.$slots.next || this.__cachedNext;\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext\n },\n on: {\n click: () => this.onAffixClick('next')\n },\n key: 'next'\n }, [slot]);\n },\n\n genContent() {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin\n }\n }, this.$slots.default);\n },\n\n genData() {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize\n }]\n };\n },\n\n genIcon(location) {\n let icon = location;\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next';\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev';\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`;\n const hasAffix = this[`has${upperLocation}`];\n if (!this.showArrows && !hasAffix) return null;\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix\n }\n }, this[`${icon}Icon`]);\n },\n\n // Always generate prev for scrollable hint\n genPrev() {\n const slot = this.$scopedSlots.prev ? this.$scopedSlots.prev({}) : this.$slots.prev || this.__cachedPrev;\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev\n },\n on: {\n click: () => this.onAffixClick('prev')\n },\n key: 'prev'\n }, [slot]);\n },\n\n genTransition(location) {\n return this.$createElement(VFadeTransition, [this.genIcon(location)]);\n },\n\n genWrapper() {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: e => this.overflowCheck(e, this.onTouchStart),\n move: e => this.overflowCheck(e, this.onTouchMove),\n end: e => this.overflowCheck(e, this.onTouchEnd)\n }\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll\n }\n }, [this.genContent()]);\n },\n\n calculateNewOffset(direction, widths, rtl, currentScrollOffset) {\n const sign = rtl ? -1 : 1;\n const newAbosluteOffset = sign * currentScrollOffset + (direction === 'prev' ? -1 : 1) * widths.wrapper;\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0);\n },\n\n onAffixClick(location) {\n this.$emit(`click:${location}`);\n this.scrollTo(location);\n },\n\n onResize() {\n /* istanbul ignore next */\n if (this._isDestroyed) return;\n this.setWidths();\n },\n\n onTouchStart(e) {\n const {\n content\n } = this.$refs;\n this.startX = this.scrollOffset + e.touchstartX;\n content.style.setProperty('transition', 'none');\n content.style.setProperty('willChange', 'transform');\n },\n\n onTouchMove(e) {\n if (!this.canTouch) return;\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX;\n const diffY = e.touchmoveY - e.touchstartY;\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY);\n this.isSwiping = true;\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX; // temporarily disable window vertical scrolling\n\n document.documentElement.style.overflowY = 'hidden';\n }\n },\n\n onTouchEnd() {\n if (!this.canTouch) return;\n const {\n content,\n wrapper\n } = this.$refs;\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth;\n content.style.setProperty('transition', null);\n content.style.setProperty('willChange', null);\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0;\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset;\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0;\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset;\n }\n }\n\n this.isSwiping = false; // rollback whole page scrolling to default\n\n document.documentElement.style.removeProperty('overflow-y');\n },\n\n overflowCheck(e, fn) {\n e.stopPropagation();\n this.isOverflowing && fn(e);\n },\n\n scrollIntoView\n /* istanbul ignore next */\n () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect();\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect();\n\n if (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right || !this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left) {\n this.scrollTo('prev');\n }\n }\n\n if (!this.selectedItem) {\n return;\n }\n\n if (this.selectedIndex === 0 || !this.centerActive && !this.isOverflowing) {\n this.scrollOffset = 0;\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(this.selectedItem.$el, this.widths, this.$vuetify.rtl);\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(this.selectedItem.$el, this.widths, this.$vuetify.rtl, this.scrollOffset);\n }\n },\n\n scrollTo\n /* istanbul ignore next */\n (location) {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0\n }, this.$vuetify.rtl, this.scrollOffset);\n },\n\n setWidths() {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return;\n const {\n content,\n wrapper\n } = this.$refs;\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0\n }; // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content;\n this.scrollIntoView();\n });\n }\n\n },\n\n render(h) {\n return h('div', this.genData(), [this.genPrev(), this.genWrapper(), this.genNext()]);\n }\n\n});\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide() {\n return {\n slideGroup: this\n };\n }\n\n});\n//# sourceMappingURL=VSlideGroup.js.map","// Mixins\nimport Colorable from '../../mixins/colorable'; // Utilities\n\nimport mixins from '../../util/mixins';\n/* @vue/component */\n\nexport default mixins(Colorable).extend({\n name: 'v-tabs-slider',\n\n render(h) {\n return h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-tabs-slider'\n }));\n }\n\n});\n//# sourceMappingURL=VTabsSlider.js.map","// Styles\nimport \"../../../src/components/VWindow/VWindow.sass\"; // Directives\n\nimport Touch from '../../directives/touch'; // Components\n\nimport VBtn from '../VBtn';\nimport VIcon from '../VIcon';\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup';\n/* @vue/component */\n\nexport default BaseItemGroup.extend({\n name: 'v-window',\n directives: {\n Touch\n },\n\n provide() {\n return {\n windowGroup: this\n };\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active'\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next'\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev'\n },\n reverse: Boolean,\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object,\n touchless: Boolean,\n value: {\n required: false\n },\n vertical: Boolean\n },\n\n data() {\n return {\n changedByDelimiters: false,\n internalHeight: undefined,\n transitionHeight: undefined,\n transitionCount: 0,\n isBooted: false,\n isReverse: false\n };\n },\n\n computed: {\n isActive() {\n return this.transitionCount > 0;\n },\n\n classes() {\n return { ...BaseItemGroup.options.computed.classes.call(this),\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover\n };\n },\n\n computedTransition() {\n if (!this.isBooted) return '';\n const axis = this.vertical ? 'y' : 'x';\n const reverse = this.internalReverse ? !this.isReverse : this.isReverse;\n const direction = reverse ? '-reverse' : '';\n return `v-window-${axis}${direction}-transition`;\n },\n\n hasActiveItems() {\n return Boolean(this.items.find(item => !item.disabled));\n },\n\n hasNext() {\n return this.continuous || this.internalIndex < this.items.length - 1;\n },\n\n hasPrev() {\n return this.continuous || this.internalIndex > 0;\n },\n\n internalIndex() {\n return this.items.findIndex((item, i) => {\n return this.internalValue === this.getValue(item, i);\n });\n },\n\n internalReverse() {\n return this.$vuetify.rtl ? !this.reverse : this.reverse;\n }\n\n },\n watch: {\n internalIndex(val, oldVal) {\n this.isReverse = this.updateReverse(val, oldVal);\n }\n\n },\n\n mounted() {\n window.requestAnimationFrame(() => this.isBooted = true);\n },\n\n methods: {\n genDefaultSlot() {\n return this.$slots.default;\n },\n\n genContainer() {\n const children = [this.genDefaultSlot()];\n\n if (this.showArrows) {\n children.push(this.genControlIcons());\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive\n },\n style: {\n height: this.internalHeight || this.transitionHeight\n }\n }, children);\n },\n\n genIcon(direction, icon, click) {\n var _a, _b, _c;\n\n const on = {\n click: e => {\n e.stopPropagation();\n this.changedByDelimiters = true;\n click();\n }\n };\n const attrs = {\n 'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`)\n };\n const children = (_c = (_b = (_a = this.$scopedSlots)[direction]) === null || _b === void 0 ? void 0 : _b.call(_a, {\n on,\n attrs\n })) !== null && _c !== void 0 ? _c : [this.$createElement(VBtn, {\n props: {\n icon: true\n },\n attrs,\n on\n }, [this.$createElement(VIcon, {\n props: {\n large: true\n }\n }, icon)])];\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`\n }, children);\n },\n\n genControlIcons() {\n const icons = [];\n const prevIcon = this.$vuetify.rtl ? this.nextIcon : this.prevIcon;\n /* istanbul ignore else */\n\n if (this.hasPrev && prevIcon && typeof prevIcon === 'string') {\n const icon = this.genIcon('prev', prevIcon, this.prev);\n icon && icons.push(icon);\n }\n\n const nextIcon = this.$vuetify.rtl ? this.prevIcon : this.nextIcon;\n /* istanbul ignore else */\n\n if (this.hasNext && nextIcon && typeof nextIcon === 'string') {\n const icon = this.genIcon('next', nextIcon, this.next);\n icon && icons.push(icon);\n }\n\n return icons;\n },\n\n getNextIndex(index) {\n const nextIndex = (index + 1) % this.items.length;\n const item = this.items[nextIndex];\n if (item.disabled) return this.getNextIndex(nextIndex);\n return nextIndex;\n },\n\n getPrevIndex(index) {\n const prevIndex = (index + this.items.length - 1) % this.items.length;\n const item = this.items[prevIndex];\n if (item.disabled) return this.getPrevIndex(prevIndex);\n return prevIndex;\n },\n\n next() {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasNext) return;\n const nextIndex = this.getNextIndex(this.internalIndex);\n const item = this.items[nextIndex];\n this.internalValue = this.getValue(item, nextIndex);\n },\n\n prev() {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasPrev) return;\n const lastIndex = this.getPrevIndex(this.internalIndex);\n const item = this.items[lastIndex];\n this.internalValue = this.getValue(item, lastIndex);\n },\n\n updateReverse(val, oldVal) {\n const itemsLength = this.items.length;\n const lastIndex = itemsLength - 1;\n if (itemsLength <= 2) return val < oldVal;\n\n if (val === lastIndex && oldVal === 0) {\n return true;\n } else if (val === 0 && oldVal === lastIndex) {\n return false;\n } else {\n return val < oldVal;\n }\n }\n\n },\n\n render(h) {\n const data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: []\n };\n\n if (!this.touchless) {\n const value = this.touch || {\n left: () => {\n this.$vuetify.rtl ? this.prev() : this.next();\n },\n right: () => {\n this.$vuetify.rtl ? this.next() : this.prev();\n },\n end: e => {\n e.stopPropagation();\n },\n start: e => {\n e.stopPropagation();\n }\n };\n data.directives.push({\n name: 'touch',\n value\n });\n }\n\n return h('div', data, [this.genContainer()]);\n }\n\n});\n//# sourceMappingURL=VWindow.js.map","// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'; // Mixins\n\nimport Themeable from '../../mixins/themeable';\nimport SSRBootable from '../../mixins/ssr-bootable'; // Utilities\n\nimport mixins from '../../util/mixins';\nexport default mixins(BaseSlideGroup, SSRBootable, Themeable\n/* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide() {\n return {\n tabsBar: this\n };\n },\n\n computed: {\n classes() {\n return { ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses\n };\n }\n\n },\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange'\n },\n methods: {\n callSlider() {\n if (!this.isBooted) return;\n this.$emit('call:slider');\n },\n\n genContent() {\n const render = BaseSlideGroup.options.methods.genContent.call(this);\n render.data = render.data || {};\n render.data.staticClass += ' v-tabs-bar__content';\n return render;\n },\n\n onRouteChange(val, oldVal) {\n /* istanbul ignore next */\n if (this.mandatory) return;\n const items = this.items;\n const newPath = val.path;\n const oldPath = oldVal.path;\n let hasNew = false;\n let hasOld = false;\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true;else if (item.to === newPath) hasNew = true;\n if (hasNew && hasOld) break;\n } // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n\n\n if (!hasNew && hasOld) this.internalValue = undefined;\n }\n\n },\n\n render(h) {\n const render = BaseSlideGroup.options.render.call(this, h);\n render.data.attrs = {\n role: 'tablist'\n };\n return render;\n }\n\n});\n//# sourceMappingURL=VTabsBar.js.map","// Extensions\nimport VWindow from '../VWindow/VWindow'; // Types & Components\n\nimport { BaseItemGroup } from './../VItemGroup/VItemGroup';\n/* @vue/component */\n\nexport default VWindow.extend({\n name: 'v-tabs-items',\n props: {\n mandatory: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n classes() {\n return { ...VWindow.options.computed.classes.call(this),\n 'v-tabs-items': true\n };\n },\n\n isDark() {\n return this.rootIsDark;\n }\n\n },\n methods: {\n getValue(item, i) {\n return item.id || BaseItemGroup.options.methods.getValue.call(this, item, i);\n }\n\n }\n});\n//# sourceMappingURL=VTabsItems.js.map","// Styles\nimport \"../../../src/components/VTabs/VTabs.sass\"; // Components\n\nimport VTabsBar from './VTabsBar';\nimport VTabsItems from './VTabsItems';\nimport VTabsSlider from './VTabsSlider'; // Mixins\n\nimport Colorable from '../../mixins/colorable';\nimport Proxyable from '../../mixins/proxyable';\nimport Themeable from '../../mixins/themeable'; // Directives\n\nimport Resize from '../../directives/resize'; // Utilities\n\nimport { convertToUnit } from '../../util/helpers';\nimport mixins from '../../util/mixins';\nconst baseMixins = mixins(Colorable, Proxyable, Themeable);\nexport default baseMixins.extend().extend({\n name: 'v-tabs',\n directives: {\n Resize\n },\n props: {\n activeClass: {\n type: String,\n default: ''\n },\n alignWithTitle: Boolean,\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next'\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev'\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2\n },\n vertical: Boolean\n },\n\n data() {\n return {\n resizeTimeout: 0,\n slider: {\n height: null,\n left: null,\n right: null,\n top: null,\n width: null\n },\n transitionTime: 300\n };\n },\n\n computed: {\n classes() {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses\n };\n },\n\n isReversed() {\n return this.$vuetify.rtl && this.vertical;\n },\n\n sliderStyles() {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width)\n };\n },\n\n computedColor() {\n if (this.color) return this.color;else if (this.isDark && !this.appIsDark) return 'white';else return 'primary';\n }\n\n },\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize'\n },\n\n mounted() {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize();\n });\n obs.observe(this.$el);\n this.$on('hook:destroyed', () => {\n obs.disconnect();\n });\n }\n\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30);\n });\n },\n\n methods: {\n callSlider() {\n if (this.hideSlider || !this.$refs.items || !this.$refs.items.selectedItems.length) {\n this.slider.width = 0;\n return false;\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0];\n /* istanbul ignore if */\n\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0;\n this.slider.left = 0;\n return;\n }\n\n const el = activeTab.$el;\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth\n };\n });\n return true;\n },\n\n genBar(items, slider) {\n const data = {\n style: {\n height: convertToUnit(this.height)\n },\n props: {\n activeClass: this.activeClass,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n value: this.internalValue\n },\n on: {\n 'call:slider': this.callSlider,\n change: val => {\n this.internalValue = val;\n }\n },\n ref: 'items'\n };\n this.setTextColor(this.computedColor, data);\n this.setBackgroundColor(this.backgroundColor, data);\n return this.$createElement(VTabsBar, data, [this.genSlider(slider), items]);\n },\n\n genItems(items, item) {\n // If user provides items\n // opt to use theirs\n if (items) return items; // If no tabs are provided\n // render nothing\n\n if (!item.length) return null;\n return this.$createElement(VTabsItems, {\n props: {\n value: this.internalValue\n },\n on: {\n change: val => {\n this.internalValue = val;\n }\n }\n }, item);\n },\n\n genSlider(slider) {\n if (this.hideSlider) return null;\n\n if (!slider) {\n slider = this.$createElement(VTabsSlider, {\n props: {\n color: this.sliderColor\n }\n });\n }\n\n return this.$createElement('div', {\n staticClass: 'v-tabs-slider-wrapper',\n style: this.sliderStyles\n }, [slider]);\n },\n\n onResize() {\n if (this._isDestroyed) return;\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(this.callSlider, 0);\n },\n\n parseNodes() {\n let items = null;\n let slider = null;\n const item = [];\n const tab = [];\n const slot = this.$slots.default || [];\n const length = slot.length;\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i];\n\n if (vnode.componentOptions) {\n switch (vnode.componentOptions.Ctor.options.name) {\n case 'v-tabs-slider':\n slider = vnode;\n break;\n\n case 'v-tabs-items':\n items = vnode;\n break;\n\n case 'v-tab-item':\n item.push(vnode);\n break;\n // case 'v-tab' - intentionally omitted\n\n default:\n tab.push(vnode);\n }\n } else {\n tab.push(vnode);\n }\n }\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n\n\n return {\n tab,\n slider,\n items,\n item\n };\n }\n\n },\n\n render(h) {\n const {\n tab,\n slider,\n items,\n item\n } = this.parseNodes();\n return h('div', {\n staticClass: 'v-tabs',\n class: this.classes,\n directives: [{\n name: 'resize',\n modifiers: {\n quiet: true\n },\n value: this.onResize\n }]\n }, [this.genBar(tab, slider), this.genItems(items, item)]);\n }\n\n});\n//# sourceMappingURL=VTabs.js.map"],"sourceRoot":""}