{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat-map.js","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VItemGroup/VItem.ts","webpack:///../../../src/components/VSlideGroup/VSlideItem.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///../../../src/components/VHover/VHover.ts","webpack:///../../../src/mixins/mobile/index.ts"],"names":["$","flattenIntoArray","toObject","toLength","aFunction","arraySpeciesCreate","target","proto","flatMap","callbackfn","A","O","this","sourceLen","length","arguments","undefined","BaseItemGroup","name","props","activeClass","type","default","mandatory","max","Number","multiple","Boolean","data","internalLazyValue","value","items","computed","classes","themeClasses","selectedIndex","selectedItem","indexOf","selectedItems","filter","selectedValues","internalValue","Array","toggleMethod","v","watch","created","methods","genData","class","getValue","item","i","onClick","register","index","push","unregister","valueIndex","updateInternalValue","updateItem","updateItemsState","updateMultiple","updateSingle","updateMandatory","defaultValue","val","isSame","render","h","$slots","provide","itemGroup","addToUnscopables","BaseSlideGroup","directives","Resize","Touch","centerActive","nextIcon","prevIcon","showArrows","validator","internalItemsLength","isOverflowing","resizeTimeout","startX","scrollOffset","widths","content","wrapper","__cachedNext","genTransition","__cachedPrev","hasAffixes","isMobile","hasNext","Math","hasPrev","beforeUpdate","$children","updated","genNext","slot","$scopedSlots","next","$createElement","staticClass","on","click","key","genContent","ref","onResize","genIcon","icon","$vuetify","rtl","location","upperLocation","hasAffix","disabled","genPrev","prev","genWrapper","start","e","move","end","calculateNewOffset","sign","newAbosluteOffset","direction","onAffixClick","onTouchStart","onTouchMove","onTouchEnd","maxScrollOffset","overflowCheck","fn","scrollIntoView","calculateCenteredOffset","calculateUpdatedOffset","clientWidth","selectedElement","offsetLeft","currentScrollOffset","totalWidth","itemOffset","additionalOffset","offsetCentered","scrollTo","$refs","setWidths","window","slideGroup","BaseItem","required","isActive","toggle","element","active","_b","console","mixins","functional","id","tag","children","attrs","Object","fluid","mergeData","handleGesture","touchendY","dirRatio","minDistance","touchendX","touchstartX","touchstartY","touch","event","createHandlers","touchmoveX","touchmoveY","offsetX","offsetY","left","right","up","down","touchstart","touchend","touchmove","inserted","binding","el","options","passive","handlers","vnode","eventName","unbind","$findIndex","findIndex","arrayMethodUsesToLength","FIND_INDEX","SKIPS_HOLES","USES_TO_LENGTH","forced","onMouseEnter","onMouseLeave","hover","mouseenter","mouseleave","mobileBreakpoint","breakpoint","isNaN","includes","String","mobile","mobileWidth","parseInt","isNumber","width","$attrs","hasOwnProperty"],"mappings":"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","file":"js/chunk-134f7fa6.20e93aef.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.internalValue === v\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.includes(v)\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value == null || item.value === ''\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => val === value)\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = value === this.internalValue\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flatMap');\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'\n\ninterface TouchEvent {\n touchstartX: number\n touchmoveX: 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\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 => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n internalItemsLength: 0,\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\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\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n this.isOverflowing\n )\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\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 this.$refs.content.style.transform = `translateX(${-val}px)`\n },\n },\n\n beforeUpdate () {\n this.internalItemsLength = (this.$children || []).length\n },\n\n updated () {\n if (this.internalItemsLength === (this.$children || []).length) return\n this.setWidths()\n },\n\n methods: {\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : this.$slots.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 }, this.$slots.default)\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 : this.$slots.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 }, [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 this.scrollOffset = this.startX - e.touchmoveX\n },\n onTouchEnd () {\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 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) {\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 = this.calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = this.calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n calculateUpdatedOffset (selectedElement: HTMLElement, widths: Widths, rtl: boolean, currentScrollOffset: number): 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 calculateCenteredOffset (selectedElement: HTMLElement, widths: Widths, rtl: boolean): 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 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 /* istanbul ignore next */ () {\n window.requestAnimationFrame(() => {\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 this.isOverflowing = this.widths.wrapper < 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","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\n/* @vue/component */\nexport const BaseItem = Vue.extend({\n props: {\n activeClass: String,\n value: {\n required: false,\n },\n },\n\n data: () => ({\n isActive: false,\n }),\n\n methods: {\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default) {\n consoleWarn('v-item is missing a default scopedSlot', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-item should only contain a single element', this)\n\n return element as any\n }\n\n element.data = this._b(element.data || {}, element.tag!, {\n class: { [this.activeClass]: this.isActive },\n })\n\n return element\n },\n})\n\nexport default mixins(\n BaseItem,\n GroupableFactory('itemGroup', 'v-item', 'v-item-group')\n).extend({\n name: 'v-item',\n})\n","// Extensions\nimport { BaseItem } from '../VItemGroup/VItem'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItem,\n GroupableFactory('slideGroup')\n /* @vue/component */\n).extend({\n name: 'v-slide-item',\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","// Mixins\nimport Delayable from '../../mixins/delayable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\nexport default mixins(\n Delayable,\n Toggleable\n /* @vue/component */\n).extend({\n name: 'v-hover',\n\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n value: {\n type: Boolean,\n default: undefined,\n },\n },\n\n methods: {\n onMouseEnter () {\n this.runDelay('open')\n },\n onMouseLeave () {\n this.runDelay('close')\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default && this.value === undefined) {\n consoleWarn('v-hover is missing a default scopedSlot or bound value', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({ hover: this.isActive })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-hover should only contain a single element', this)\n\n return element as any\n }\n\n if (!this.disabled) {\n element.data = element.data || {}\n this._g(element.data, {\n mouseenter: this.onMouseEnter,\n mouseleave: this.onMouseLeave,\n })\n }\n\n return element\n },\n})\n","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'mobile',\n\n props: {\n mobileBreakpoint: {\n type: [Number, String] as PropType,\n default (): number | BreakpointName | undefined {\n // Avoid destroying unit\n // tests for users\n return this.$vuetify\n ? this.$vuetify.breakpoint.mobileBreakpoint\n : undefined\n },\n validator: v => (\n !isNaN(Number(v)) ||\n ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n ),\n },\n },\n\n computed: {\n isMobile (): boolean {\n const {\n mobile,\n width,\n name,\n mobileBreakpoint,\n } = this.$vuetify.breakpoint\n\n // Check if local mobileBreakpoint matches\n // the application's mobileBreakpoint\n if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n const isNumber = !isNaN(mobileWidth)\n\n return isNumber\n ? width < mobileWidth\n : name === this.mobileBreakpoint\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n deprecate('mobile-break-point', 'mobile-breakpoint', this)\n }\n },\n})\n"],"sourceRoot":""}