{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../src/components/VGrid/VFlex.ts","webpack:///../../../src/components/VFileInput/VFileInput.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VTextField/index.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VMain/VMain.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts"],"names":["BaseItemGroup","extend","name","provide","expansionPanels","this","props","accordion","Boolean","disabled","flat","hover","focusable","inset","popout","readonly","tile","computed","classes","_objectSpread","options","call","created","$attrs","hasOwnProperty","breaking","Array","isArray","value","length","methods","updateItem","item","index","getValue","nextValue","isActive","toggleMethod","nextIsActive","Grid","VTextField","model","prop","event","chips","clearable","type","default","counterSizeString","String","counterString","hideInput","multiple","placeholder","prependIcon","showSize","Number","validator","v","includes","smallChips","truncateLength","undefined","val","wrapInArray","every","_typeof","computedCounterValue","fileCount","lazyValue","File","$vuetify","lang","t","bytes","internalArrayValue","reduce","_ref","_ref$size","size","humanReadableFileSize","base","internalValue","get","set","$emit","isDirty","isLabelActive","text","_this","persistentPlaceholder","isFocused","hasLabel","map","file","_file$name","_file$size","truncatedText","truncateText","concat","hasChips","watch","handler","consoleError","immediate","deepEqual","$refs","input","files","clearableCallback","genChips","_this2","$createElement","VChip","small","on","splice","genControl","render","data","style","mergeStyles","display","genInput","attrs","domProps","change","onInput","genSelections","genPrependSlot","_this3","icon","genIcon","click","genSlot","genSelectionText","counter","_this4","children","$scopedSlots","selection","forEach","push","staticClass","class","genTextFieldSlot","_this5","node","e","target","nodeName","_toConsumableArray","initialValue","onKeyDown","str","charsKeepOneSide","Math","floor","slice","VSubheader","VMenu","baseMixins","mixins","Bootable","Colorable","RegistrableInject","parentIsActive","expansionPanel","oldVal","isBooted","$nextTick","registerContent","beforeDestroy","unregisterContent","h","VExpandTransition","showLazyContent","setBackgroundColor","color","directives","getSlot","open","BindsAttrs","RegistrableProvide","form","inheritAttrs","lazyValidation","inputs","watchers","errorBag","errors","Object","values","deep","watchInput","watcher","$watch","$set","_uid","valid","shouldValidate","validate","filter","reset","resetErrorBag","setTimeout","resetValidation","register","unregister","found","find","i","unwatch","$delete","novalidate","attrs$","submit","PositionableFactory","Themeable","Toggleable","Transitionable","avatar","bordered","content","required","dot","label","inline","offsetX","offsetY","overlap","transition","bottom","left","themeClasses","computedBottom","computedYOffset","computedLeft","isRtl","computedXOffset","computedRight","computedTop","calcPosition","rtl","offset","styles","right","top","convertToUnit","genBadge","title","role","badge","genBadgeContent","origin","mode","slot","VIcon","genBadgeWrapper","_this$$attrs","_objectWithoutProperties","_excluded","unshift","Vue","functional","slots","listeners","d","assign","trim","defaultSlot","VBtn","Ripple","ripple","indeterminate","indeterminateIcon","onIcon","offIcon","setTextColor","dark","light","def","center","mergeData","stopPropagation","f","Selectable","Touch","loading","VInput","isDisabled","validationState","hasError","hasSuccess","hasColor","computedColor","switchData","genDefaultSlot","genSwitch","genLabel","_this$attrs$","switchAttrs","genRipple","onSwipeLeft","onSwipeRight","genProgress","VFabTransition","VProgressCircular","width","onChange","onKeydown","keyCode","keyCodes","VDivider","action","dense","hideSelected","items","itemDisabled","Function","itemText","itemValue","noDataText","noFilter","searchInput","selectedItems","parsedItems","tileActiveClass","keys","join","staticNoDataTile","mousedown","preventDefault","VListItem","genTileContent","genAction","inputValue","VListItemAction","VSimpleCheckbox","genDivider","genFilteredText","_this$getMaskedCharac","getMaskedCharacters","start","middle","end","genHighlight","genHeader","header","toString","toLocaleLowerCase","indexOf","genTile","_ref$disabled","_ref$value","hasItem","getDisabled","id","activeClass","parent","scopedSlot","needsTile","VListItemContent","VListItemTitle","getText","componentOptions","Ctor","getPropertyFromItem","itemsLength","divider","$slots","VList","tabindex","defaultMenuProps","closeOnClick","closeOnContentClick","disableKeys","openOnClick","maxHeight","Comparable","Dependent","Filterable","ClickOutside","appendIcon","attach","cacheItems","deletableChips","disableLookup","eager","itemColor","menuProps","openOnClear","returnObject","cachedItems","menuIsBooted","isMenuActive","lastItem","selectedIndex","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","computedItems","computedOwns","_a","counterValue","blur","closeConditional","include","getOpenDependentElements","dynamicHeight","hasSlot","listData","scopeId","$vnode","context","$options","_scopeId","_defineProperty","virtualizedItems","select","selectItem","scopedSlots","staticList","VSelectList","$_menuProps","auto","menuCanShow","normalisedProps","split","acc","p","nudgeBottom","setSelectedItems","menu","updateDimensions","onScroll","window","onMenuActiveChange","setMenuIndex","activateMenu","isInteractive","setValue","focus","_isDestroyed","getContent","contains","$el","arr","uniqueValues","Map","has","from","findExistingIndex","_this6","findIndex","valueComparator","genChipSelection","_this7","close","onChipInput","key","JSON","stringify","genCommaSelection","last","selections","genFieldset","prefix","genAffix","suffix","genClearIcon","genIconSlot","genHiddenInput","genMenu","cb","extraData","isReadonly","getObjectValueByPath","autocomplete","keypress","onKeyPress","genInputSlot","genList","genListWithSlot","_this8","slotName","_this9","activator","scroll","ref","genSelection","genSlotSelection","_this10","selected","getMenuIndex","listIndex","onBlur","onClick","isAppendInner","onEscDown","_this11","ctrlKey","metaKey","altKey","KEYBOARD_LOOKUP_THRESHOLD","now","performance","toLowerCase","startsWith","max","getTiles","_this12","tab","up","down","home","enter","changeListIndex","space","onUpDown","esc","onTabDown","onSpaceDown","tiles","getAttribute","onMouseUp","_this13","hasMouseDown","which","_this14","showMoreItems","scrollHeight","scrollTop","clientHeight","requestAnimationFrame","activeTile","_this15","hasClickableTiles","prevTile","nextTile","firstTile","lastTile","_this16","_step","_this17","_iterator","_createForOfIteratorHelper","_loop","s","n","done","err","appendInner","VSelectMenuProps","offsetOverflow","VSelect","autoSelectFirst","queryText","hideNoData","lazySearch","filteredItems","selectedValues","hasDisplayedItems","some","currentRange","selectedItem","isSearching","internalSearch","isAnyValueAllowed","searchIsDirty","contentClass","document","addEventListener","onCopy","removeEventListener","updateSelf","setSearch","destroyed","onFilteredItemsChanged","preSelectedItem","onInternalSearchChanged","updateMenuDimensions","changeSelectedIndex","backspace","delete","deleteCurrentItem","curIndex","curItem","lastIndex","nextIndex","nextItem","onFocus","badInput","validity","currentItem","currentItemText","clipboardData","setData","_b","disableIconRotate","expandIcon","hideActions","hasMousedown","registerHeader","unregisterHeader","VFadeTransition","$listeners","mouseup","GroupableFactory","groupClasses","vm","$on","detail","toggle","SSRBootable","tag","_this$$vuetify$applic","application","bar","footer","insetFooter","paddingTop","paddingRight","paddingBottom","paddingLeft","Applicationable","Mobile","Overlayable","Resize","isInNav","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","height","app","miniVariant","miniVariantWidth","permanent","src","stateless","temporary","touchless","isMouseover","touchArea","stackMinZIndex","applicationProperty","absolute","fixed","isMobile","isMiniVariant","computedMaxHeight","hasApp","computedTransform","isBottom","computedWidth","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","hideOverlay","translate","transform","$route","prev","removeOverlay","genOverlay","init","updateMiniVariant","beforeMount","calculateTouchArea","parentNode","parentRect","getBoundingClientRect","genAppend","genPosition","genBackground","image","img","VImg","genDirectives","swipeLeft","swipeRight","genListeners","mouseenter","mouseleave","transitionend","currentTarget","resizeEvent","createEvent","initUIEvent","dispatchEvent","genPrepend","genContent","genBorder","onRouteChange","abs","touchendX","touchstartX","updateApplication","isNaN","clientWidth"],"mappings":"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","file":"js/AddItem~dde583c9.1f867141.js","sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('flex')\n","// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\n\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true,\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n } as PropValidator,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n type: {\n type: String,\n default: 'file',\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n } as PropValidator,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-file-input': true,\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.multiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n text (): string[] {\n if (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0,\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on ', this)\n },\n immediate: true,\n },\n value (v) {\n const value = this.multiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n },\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.multiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data!.attrs!.multiple = this.multiple\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // due to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.selection({\n text: this.text[index],\n file,\n index,\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: (e: MouseEvent) => {\n // Clicking the label already delegates to input element, so we shouldn't click it twice\n if (e.target && (e.target as HTMLElement).nodeName === 'LABEL') return\n\n this.$refs.input.click()\n },\n }\n\n return node\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.multiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n },\n },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","import VTextField from './VTextField'\n\nexport { VTextField }\nexport default VTextField\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this, 'default', { open: this.isActive })),\n ]),\n ]))\n },\n})\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, getSlot(this))\n },\n})\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-badge__badge',\n style: this.styles,\n attrs: {\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n },\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return this.$createElement(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return this.$createElement('span', {\n staticClass: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (h): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', {\n staticClass: 'v-badge',\n attrs,\n class: this.classes,\n }, children)\n },\n})\n","// Components\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn/VBtn'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-app-bar-nav-icon',\n\n functional: true,\n\n render (h, { slots, listeners, props, data }) {\n const d = Object.assign(data, {\n staticClass: (`v-app-bar__nav-icon ${data.staticClass || ''}`).trim(),\n props: {\n ...props,\n icon: true,\n },\n on: listeners,\n })\n\n const defaultSlot = slots().default\n\n return h(VBtn, d, defaultSlot || [h(VIcon, '$menu')])\n },\n})\n","import './VSimpleCheckbox.sass'\n\nimport Ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-simple-checkbox',\n\n functional: true,\n\n directives: {\n Ripple,\n },\n\n props: {\n ...Colorable.options.props,\n ...Themeable.options.props,\n disabled: Boolean,\n ripple: {\n type: Boolean,\n default: true,\n },\n value: Boolean,\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n },\n\n render (h, { props, data, listeners }): VNode {\n const children = []\n let icon = props.offIcon\n if (props.indeterminate) icon = props.indeterminateIcon\n else if (props.value) icon = props.onIcon\n\n children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n props: {\n disabled: props.disabled,\n dark: props.dark,\n light: props.light,\n },\n }), icon))\n\n if (props.ripple && !props.disabled) {\n const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n staticClass: 'v-input--selection-controls__ripple',\n directives: [{\n def: Ripple,\n name: 'ripple',\n value: { center: true },\n }] as VNodeDirective[],\n }))\n\n children.push(ripple)\n }\n\n return h('div',\n mergeData(data, {\n class: {\n 'v-simple-checkbox': true,\n 'v-simple-checkbox--disabled': props.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (data.on && data.on.input && !props.disabled) {\n wrapInArray(data.on.input).forEach(f => f(!props.value))\n }\n },\n },\n }), [\n h('div', { staticClass: 'v-input--selection-controls__input' }, children),\n ])\n },\n})\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { getSlot, keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : getSlot(this, 'progress') || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { getPropertyFromItem } from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n attrs: {\n role: undefined,\n },\n on: {\n mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n },\n }\n\n return this.$createElement(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return this.$createElement(VListItemAction, [\n this.$createElement(VSimpleCheckbox, {\n props: {\n color: this.color,\n value: inputValue,\n ripple: false,\n },\n on: {\n input: () => this.$emit('select', item),\n },\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return this.$createElement(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return text\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return [start, this.genHighlight(middle), end]\n },\n genHeader (props: { [key: string]: any }): VNode {\n return this.$createElement(VSubheader, { props }, props.header)\n },\n genHighlight (text: string) {\n return this.$createElement('span', { staticClass: 'v-list-item__mask' }, text)\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n attrs: {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this._uid}-${index}`,\n role: 'option',\n },\n on: {\n mousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n click: () => disabled || this.$emit('select', item),\n },\n props: {\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n },\n }\n\n if (!this.$scopedSlots.item) {\n return this.$createElement(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$scopedSlots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? this.$createElement(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n return this.$createElement(VListItemContent, [\n this.$createElement(VListItemTitle, [\n this.genFilteredText(this.getText(item)),\n ]),\n ])\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n return this.$createElement(VList, {\n staticClass: 'v-select-list',\n class: this.themeClasses,\n attrs: {\n role: 'listbox',\n tabindex: -1,\n },\n on: {\n mousedown: (e: Event) => {\n e.preventDefault()\n },\n },\n props: { dense: this.dense },\n }, children)\n },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'filterable',\n\n props: {\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n },\n})\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n VTextField,\n Comparable,\n Dependent,\n Filterable\n)\n\ninterface options extends InstanceType {\n $refs: {\n menu: InstanceType\n content: HTMLElement\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n 'append-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-select',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown',\n },\n attach: {\n type: null as unknown as PropType,\n default: false,\n },\n cacheItems: Boolean,\n chips: Boolean,\n clearable: Boolean,\n deletableChips: Boolean,\n disableLookup: Boolean,\n eager: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemColor: {\n type: String,\n default: 'primary',\n },\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n menuProps: {\n type: [String, Array, Object],\n default: () => defaultMenuProps,\n },\n multiple: Boolean,\n openOnClear: Boolean,\n returnObject: Boolean,\n smallChips: Boolean,\n },\n\n data () {\n return {\n cachedItems: this.cacheItems ? this.items : [],\n menuIsBooted: false,\n isMenuActive: false,\n lastItem: 20,\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n lazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [] as any[],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0,\n }\n },\n\n computed: {\n /* All items that the select has */\n allItems (): object[] {\n return this.filterDuplicates(this.cachedItems.concat(this.items))\n },\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-select': true,\n 'v-select--chips': this.hasChips,\n 'v-select--chips--small': this.smallChips,\n 'v-select--is-menu-active': this.isMenuActive,\n 'v-select--is-multi': this.multiple,\n }\n },\n /* Used by other components to overwrite */\n computedItems (): object[] {\n return this.allItems\n },\n computedOwns (): string {\n return `list-${this._uid}`\n },\n computedCounterValue (): number {\n const value = this.multiple\n ? this.selectedItems\n : (this.getText(this.selectedItems[0]) ?? '').toString()\n\n if (typeof this.counterValue === 'function') {\n return this.counterValue(value)\n }\n\n return value.length\n },\n directives (): VNodeDirective[] | undefined {\n return this.isFocused ? [{\n name: 'click-outside',\n value: {\n handler: this.blur,\n closeConditional: this.closeConditional,\n include: () => this.getOpenDependentElements(),\n },\n }] : undefined\n },\n dynamicHeight () {\n return 'auto'\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n hasSlot (): boolean {\n return Boolean(this.hasChips || this.$scopedSlots.selection)\n },\n isDirty (): boolean {\n return this.selectedItems.length > 0\n },\n listData (): object {\n const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n const attrs = scopeId ? {\n [scopeId]: true,\n } : {}\n\n return {\n attrs: {\n ...attrs,\n id: this.computedOwns,\n },\n props: {\n action: this.multiple,\n color: this.itemColor,\n dense: this.dense,\n hideSelected: this.hideSelected,\n items: this.virtualizedItems,\n itemDisabled: this.itemDisabled,\n itemText: this.itemText,\n itemValue: this.itemValue,\n noDataText: this.$vuetify.lang.t(this.noDataText),\n selectedItems: this.selectedItems,\n },\n on: {\n select: this.selectItem,\n },\n scopedSlots: {\n item: this.$scopedSlots.item,\n },\n }\n },\n staticList (): VNode {\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n consoleError('assert: staticList should not be called if slots are used')\n }\n\n return this.$createElement(VSelectList, this.listData)\n },\n virtualizedItems (): object[] {\n return (this.$_menuProps as any).auto\n ? this.computedItems\n : this.computedItems.slice(0, this.lastItem)\n },\n menuCanShow: () => true,\n $_menuProps (): object {\n let normalisedProps = typeof this.menuProps === 'string'\n ? this.menuProps.split(',')\n : this.menuProps\n\n if (Array.isArray(normalisedProps)) {\n normalisedProps = normalisedProps.reduce((acc, p) => {\n acc[p.trim()] = true\n return acc\n }, {})\n }\n\n return {\n ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n ...normalisedProps,\n }\n },\n },\n\n watch: {\n internalValue (val) {\n this.initialValue = val\n this.setSelectedItems()\n\n if (this.multiple) {\n this.$nextTick(() => {\n this.$refs.menu?.updateDimensions()\n })\n }\n if (this.hideSelected) {\n this.$nextTick(() => {\n this.onScroll()\n })\n }\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n },\n items: {\n immediate: true,\n handler (val) {\n if (this.cacheItems) {\n // Breaks vue-test-utils if\n // this isn't calculated\n // on the next tick\n this.$nextTick(() => {\n this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n })\n }\n\n this.setSelectedItems()\n },\n },\n },\n\n methods: {\n /** @public */\n blur (e?: Event) {\n VTextField.options.methods.blur.call(this, e)\n this.isMenuActive = false\n this.isFocused = false\n this.selectedIndex = -1\n this.setMenuIndex(-1)\n },\n /** @public */\n activateMenu () {\n if (\n !this.isInteractive ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : null)\n this.setMenuIndex(-1)\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n if (this.openOnClear) this.isMenuActive = true\n },\n closeConditional (e: Event) {\n if (!this.isMenuActive) return true\n\n return (\n !this._isDestroyed &&\n\n // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n (!this.getContent() ||\n !this.getContent().contains(e.target as Node)) &&\n\n // Click originates from outside the element\n this.$el &&\n !this.$el.contains(e.target as Node) &&\n e.target !== this.$el\n )\n },\n filterDuplicates (arr: any[]) {\n const uniqueValues = new Map()\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]\n\n // Do not return null values if existant (#14421)\n if (item == null) {\n continue\n }\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n const isInteractive = !isDisabled && this.isInteractive\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && isInteractive,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (!isInteractive) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n placeholder: (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) ? this.placeholder : undefined,\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n if ('attach' in props) void 0\n else if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n // Attach to root el so that\n // menu covers prepend/append icons\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup ||\n e.key.length > 1 ||\n e.ctrlKey || e.metaKey || e.altKey\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) ?? '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end, keyCodes.enter].includes(keyCode)) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n this.$refs.menu.getTiles()\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => {\n const content = this.getContent()\n if (content) content.scrollTop = 0\n })\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n\n if (!menu.hasClickableTiles) return this.activateMenu()\n\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n this.selectItem(this.allItems[this.getMenuIndex()])\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) {\n this.setMenuIndex(-1)\n } else {\n const index = this.computedItems.indexOf(item)\n if (~index) {\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n }\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n if (!this.valueComparator(value, this.internalValue)) {\n this.internalValue = value\n this.$emit('change', value)\n }\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions', { open: this.isActive }) ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, getSlot(this))\n },\n})\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n getSlot(this),\n ),\n ])\n },\n})\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, getSlot(this))\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n"],"sourceRoot":""}