{"version":3,"sources":["webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///../../../src/components/VList/VListItem.ts","webpack:///../../../src/mixins/mobile/index.ts"],"names":["BaseItemGroup","name","props","activeClass","type","default","mandatory","max","Number","multiple","tag","data","internalLazyValue","undefined","this","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","isInList","list","inject","isInMenu","isInNav","dense","disabled","expand","flat","nav","rounded","subheader","threeLine","twoLine","Boolean","groups","findIndex","g","content","splice","listClick","group","staticClass","style","attrs","role","attrs$","setBackgroundColor","$","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","Math","min","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","target","proto","forced","start","deleteCount","insertCount","actualDeleteCount","A","k","from","to","O","len","length","actualStart","argumentsLength","arguments","TypeError","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","callbackfn","baseMixins","directives","Ripple","isInGroup","inheritAttrs","listItemGroup","inactive","link","selectable","proxyClass","isClickable","$attrs","hasOwnProperty","click","e","$el","blur","genAttrs","tabindex","String","keydown","children","$scopedSlots","active","toggle","isActive","setTextColor","mobileBreakpoint","$vuetify","breakpoint","validator","isNaN","includes","isMobile","mobile","mobileWidth","parseInt","isNumber","width"],"mappings":"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","file":"js/chunk-50be8910.44b7d2fc.js","sourcesContent":["// 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 tag: {\n type: String,\n default: 'div',\n },\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(this.tag, 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","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\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.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\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":""}