{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///./src/constants/core/VuetifyColourClass.js","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VChipGroup/VChipGroup.ts","webpack:///../../../src/components/VWindow/VWindow.ts"],"names":["breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","props","val","upperFirst","alignValidator","str","includes","alignProps","type","String","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","breakpoint","replace","toLowerCase","cache","Map","Vue","extend","name","functional","tag","dense","Boolean","noGutters","render","h","data","children","cacheKey","classList","get","forEach","value","push","set","mergeData","staticClass","class","baseMixins","mixins","Bootable","GroupableFactory","directives","Touch","disabled","reverseTransition","undefined","transition","required","isActive","inTransition","computed","classes","this","groupClasses","computedTransition","windowGroup","internalReverse","methods","genDefaultSlot","getSlot","genWindowItem","$createElement","on","$listeners","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","convertToUnit","$el","clientHeight","onTransitionCancelled","onEnter","el","$nextTick","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","enter","showLazyContent","freeze","accent","blue","teal","error","indigo","info","primary","red","secondary","success","warning","grey","orange","deepOrange","purple","green","lightGreen","white","breakpointProps","Number","offsetProps","orderProps","col","offset","order","cols","alignSelf","parent","hasColClasses","some","startsWith","bias","c","x","Math","abs","sign","calculateUpdatedOffset","selectedElement","widths","rtl","currentScrollOffset","clientWidth","offsetLeft","content","totalWidth","wrapper","itemOffset","additionalOffset","max","min","calculateCenteredOffset","offsetCentered","BaseSlideGroup","BaseItemGroup","Mobile","Resize","activeClass","centerActive","nextIcon","prevIcon","showArrows","v","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","window","__cachedNext","genTransition","__cachedPrev","options","call","hasAffixes","isMobile","hasNext","hasPrev","watch","internalValue","$vuetify","scroll","$refs","style","transform","mounted","ResizeObserver","obs","onResize","observe","$on","disconnect","itemsLength","_a","length","setWidths","onScroll","scrollLeft","onFocusin","e","composedPath","vm","items","genNext","slot","$scopedSlots","next","click","onAffixClick","key","genContent","ref","focusin","genData","genIcon","location","icon","upperLocation","toUpperCase","slice","hasAffix","VIcon","genPrev","prev","VFadeTransition","genWrapper","start","overflowCheck","onTouchStart","move","onTouchMove","end","onTouchEnd","calculateNewOffset","direction","newAbosluteOffset","$emit","scrollTo","_isDestroyed","touchstartX","setProperty","diffX","touchmoveX","diffY","touchmoveY","touchstartY","document","documentElement","overflowY","maxScrollOffset","removeProperty","fn","stopPropagation","scrollIntoView","selectedItem","lastItemPosition","getBoundingClientRect","wrapperPosition","right","left","selectedIndex","requestAnimationFrame","provide","slideGroup","Colorable","chipGroup","column","setTextColor","color","continuous","mandatory","reverse","showArrowsOnHover","touch","touchless","vertical","changedByDelimiters","internalHeight","isBooted","isReverse","axis","hasActiveItems","find","item","internalIndex","findIndex","i","getValue","oldVal","updateReverse","genContainer","genControlIcons","height","attrs","lang","t","_c","_b","VBtn","large","icons","getNextIndex","index","nextIndex","getPrevIndex","prevIndex","lastIndex"],"mappings":"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","file":"js/chunk-a3a2ba5a.b1df9b99.js","sourcesContent":["import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Components\nimport VWindow from './VWindow'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n GroupableFactory('windowGroup', 'v-window-item', 'v-window')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n windowGroup: InstanceType\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-window-item',\n\n directives: {\n Touch,\n },\n\n props: {\n disabled: Boolean,\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n value: {\n required: false,\n },\n },\n\n data () {\n return {\n isActive: false,\n inTransition: false,\n }\n },\n\n computed: {\n classes (): object {\n return this.groupClasses\n },\n computedTransition (): string | boolean {\n if (!this.windowGroup.internalReverse) {\n return typeof this.transition !== 'undefined'\n ? this.transition || ''\n : this.windowGroup.computedTransition\n }\n\n return typeof this.reverseTransition !== 'undefined'\n ? this.reverseTransition || ''\n : this.windowGroup.computedTransition\n },\n },\n\n methods: {\n genDefaultSlot () {\n return getSlot(this)\n },\n genWindowItem () {\n return this.$createElement('div', {\n staticClass: 'v-window-item',\n class: this.classes,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: this.$listeners,\n }, this.genDefaultSlot())\n },\n onAfterTransition () {\n if (!this.inTransition) {\n return\n }\n\n // Finalize transition state.\n this.inTransition = false\n if (this.windowGroup.transitionCount > 0) {\n this.windowGroup.transitionCount--\n\n // Remove container height if we are out of transition.\n if (this.windowGroup.transitionCount === 0) {\n this.windowGroup.transitionHeight = undefined\n }\n }\n },\n onBeforeTransition () {\n if (this.inTransition) {\n return\n }\n\n // Initialize transition state here.\n this.inTransition = true\n if (this.windowGroup.transitionCount === 0) {\n // Set initial height for height transition.\n this.windowGroup.transitionHeight = convertToUnit(this.windowGroup.$el.clientHeight)\n }\n this.windowGroup.transitionCount++\n },\n onTransitionCancelled () {\n this.onAfterTransition() // This should have the same path as normal transition end.\n },\n onEnter (el: HTMLElement) {\n if (!this.inTransition) {\n return\n }\n\n this.$nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!this.computedTransition || !this.inTransition) {\n return\n }\n\n // Set transition target height.\n this.windowGroup.transitionHeight = convertToUnit(el.clientHeight)\n })\n },\n },\n\n render (h): VNode {\n return h('transition', {\n props: {\n name: this.computedTransition,\n },\n on: {\n // Handlers for enter windows.\n beforeEnter: this.onBeforeTransition,\n afterEnter: this.onAfterTransition,\n enterCancelled: this.onTransitionCancelled,\n\n // Handlers for leave windows.\n beforeLeave: this.onBeforeTransition,\n afterLeave: this.onAfterTransition,\n leaveCancelled: this.onTransitionCancelled,\n\n // Enter handler for height transition.\n enter: this.onEnter,\n },\n }, this.showLazyContent(() => [this.genWindowItem()]))\n },\n})\n","export default Object.freeze({\n accent: 'accent',\n blue: 'blue',\n teal: 'teal',\n error: 'error',\n indigo: 'indigo',\n info: 'info',\n primary: 'primary',\n red: 'red',\n secondary: 'secondary',\n success: 'success',\n warning: 'warning',\n grey: 'grey',\n orange: 'orange',\n deepOrange: 'deep-orange',\n purple: 'purple',\n green: 'green',\n lightGreen: 'light-green',\n white: 'white',\n})\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath, getSlot } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\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 (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : 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}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = 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}\n\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\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: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'never',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\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\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...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 hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // Always hide arrows\n case 'never': return false\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\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 scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\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 itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // 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 for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : getSlot(this, 'next') || this.__cachedNext\n\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 genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, getSlot(this))\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\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 as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : getSlot(this, 'prev') || this.__cachedPrev\n\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 genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\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\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\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\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\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 (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\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 setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\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 this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","// Styles\nimport './VChipGroup.sass'\n\n// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n BaseSlideGroup,\n Colorable\n).extend({\n name: 'v-chip-group',\n\n provide () {\n return {\n chipGroup: this,\n }\n },\n\n props: {\n column: Boolean,\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-chip-group': true,\n 'v-chip-group--column': this.column,\n }\n },\n },\n\n watch: {\n column (val) {\n if (val) this.scrollOffset = 0\n\n this.$nextTick(this.onResize)\n },\n },\n\n methods: {\n genData () {\n return this.setTextColor(this.color, {\n ...BaseSlideGroup.options.methods.genData.call(this),\n })\n },\n },\n})\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from 'vuetify/types'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-window',\n\n directives: { Touch },\n\n provide (): object {\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 as PropType,\n touchless: Boolean,\n value: {\n required: false,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n changedByDelimiters: false,\n internalHeight: undefined as undefined | string, // This can be fixed by child class.\n transitionHeight: undefined as undefined | string, // Intermediate height during transition.\n transitionCount: 0, // Number of windows in transition state.\n isBooted: false,\n isReverse: false,\n }\n },\n\n computed: {\n isActive (): boolean {\n return this.transitionCount > 0\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover,\n }\n },\n computedTransition (): string {\n if (!this.isBooted) return ''\n\n const axis = this.vertical ? 'y' : 'x'\n const reverse = this.internalReverse ? !this.isReverse : this.isReverse\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n },\n hasActiveItems (): boolean {\n return Boolean(\n this.items.find(item => !item.disabled)\n )\n },\n hasNext (): boolean {\n return this.continuous || this.internalIndex < this.items.length - 1\n },\n hasPrev (): boolean {\n return this.continuous || this.internalIndex > 0\n },\n internalIndex (): number {\n return this.items.findIndex((item, i) => {\n return this.internalValue === this.getValue(item, i)\n })\n },\n internalReverse (): boolean {\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 mounted () {\n window.requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n genDefaultSlot () {\n return getSlot(this)\n },\n genContainer (): VNode {\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 genIcon (\n direction: 'prev' | 'next',\n icon: string,\n click: () => void\n ) {\n const on = {\n click: (e: Event) => {\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 = this.$scopedSlots[direction]?.({\n on,\n attrs,\n }) ?? [this.$createElement(VBtn, {\n props: { icon: true },\n attrs,\n on,\n }, [\n this.$createElement(VIcon, {\n props: { large: true },\n }, icon),\n ])]\n\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`,\n }, children)\n },\n genControlIcons () {\n const icons = []\n\n const prevIcon = this.$vuetify.rtl\n ? this.nextIcon\n : this.prevIcon\n\n /* istanbul ignore else */\n if (\n this.hasPrev &&\n prevIcon &&\n typeof prevIcon === 'string'\n ) {\n const icon = this.genIcon('prev', prevIcon, this.prev)\n icon && icons.push(icon)\n }\n\n const nextIcon = this.$vuetify.rtl\n ? this.prevIcon\n : this.nextIcon\n\n /* istanbul ignore else */\n if (\n this.hasNext &&\n nextIcon &&\n typeof nextIcon === 'string'\n ) {\n const icon = this.genIcon('next', nextIcon, this.next)\n icon && icons.push(icon)\n }\n\n return icons\n },\n getNextIndex (index: number): number {\n const nextIndex = (index + 1) % this.items.length\n const item = this.items[nextIndex]\n\n if (item.disabled) return this.getNextIndex(nextIndex)\n\n return nextIndex\n },\n getPrevIndex (index: number): number {\n const prevIndex = (index + this.items.length - 1) % this.items.length\n const item = this.items[prevIndex]\n\n if (item.disabled) return this.getPrevIndex(prevIndex)\n\n return prevIndex\n },\n next () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasNext) return\n\n const nextIndex = this.getNextIndex(this.internalIndex)\n const item = this.items[nextIndex]\n\n this.internalValue = this.getValue(item, nextIndex)\n },\n prev () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasPrev) return\n\n const lastIndex = this.getPrevIndex(this.internalIndex)\n const item = this.items[lastIndex]\n\n this.internalValue = this.getValue(item, lastIndex)\n },\n updateReverse (val: number, oldVal: number) {\n const itemsLength = this.items.length\n const lastIndex = itemsLength - 1\n\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 render (h): VNode {\n const data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: [] as VNodeDirective[],\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: TouchEvent) => {\n e.stopPropagation()\n },\n start: (e: TouchEvent) => {\n e.stopPropagation()\n },\n }\n\n data.directives.push({\n name: 'touch',\n value,\n })\n }\n\n return h('div', data, [this.genContainer()])\n },\n})\n"],"sourceRoot":""}