{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.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/VCheckbox/VCheckbox.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","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","inputIndeterminate","VInput","computedIcon","validationState","isDisabled","hasError","hasSuccess","hasColor","computedColor","genCheckbox","_this$attrs$","checkboxAttrs","dense","toString","genRipple","rippleState","genDefaultSlot","genLabel","Touch","loading","switchData","genSwitch","switchAttrs","onSwipeLeft","onSwipeRight","genProgress","VFabTransition","VProgressCircular","width","onChange","onKeydown","keyCode","keyCodes","VDivider","action","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","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/AddCustomLabel~dde583c9.e09c54cf.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","// 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 './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-checkbox',\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\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.isDisabled && !this.inputIndeterminate) return 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 },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n },\n }), this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\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":""}