{"version":3,"sources":["webpack:///../../../src/components/VCombobox/VCombobox.ts","webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///../../../src/mixins/button-group/index.ts","webpack:///../../../src/components/VBtnToggle/VBtnToggle.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts"],"names":["VAutocomplete","extend","name","props","delimiters","type","Array","default","returnObject","Boolean","data","editingIndex","computed","computedCounterValue","this","multiple","selectedItems","length","internalSearch","toString","hasSlot","VSelect","options","call","isAnyValueAllowed","menuCanShow","isFocused","hasDisplayedItems","$slots","hideNoData","searchIsDirty","methods","onInternalSearchChanged","val","delimiter","find","d","endsWith","slice","updateTags","updateMenuDimensions","genInput","input","attrs","on","paste","onPaste","genChipSelection","item","index","chip","componentOptions","listeners","dblclick","getText","selectedIndex","onChipInput","onEnterDown","e","preventDefault","getMenuIndex","$nextTick","updateSelf","onKeyDown","keyCode","ctrlKey","keyCodes","home","end","includes","left","$refs","selectionStart","enter","changeSelectedIndex","onTabDown","stopPropagation","selectItem","updateEditing","toLocaleLowerCase","setSelectedItems","internalValue","setValue","value","undefined","findIndex","Object","assign","splice","push","updateCombobox","isUsingSlot","$scopedSlots","selection","hasChips","menuIndex","itemToSelect","event","pastedItemText","clipboardData","_event$clipboardData","getData","findExistingIndex","clearableCallback","mixins","Colorable","PositionableFactory","Themeable","Toggleable","Transitionable","avatar","bordered","color","String","content","required","dot","label","icon","inline","offsetX","Number","offsetY","overlap","tile","transition","classes","bottom","themeClasses","computedBottom","computedYOffset","computedLeft","isRtl","computedXOffset","computedRight","computedTop","calcPosition","$vuetify","rtl","offset","styles","right","top","convertToUnit","genBadge","lang","$attrs","t","setBackgroundColor","staticClass","style","title","role","directives","isActive","badge","$createElement","genBadgeContent","origin","mode","slot","getSlot","VIcon","genBadgeWrapper","render","h","children","_x","_y","_z","unshift","class","BaseItemGroup","provide","btnToggle","genData","ButtonGroup","backgroundColor","borderless","dense","group","rounded","shaped","setTextColor","handleGesture","wrapper","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","Math","abs","up","down","touchstart","touch","changedTouches","clientX","clientY","start","touchend","touchmove","touchmoveX","touchmoveY","move","createHandlers","inserted","el","binding","vnode","target","parent","parentElement","passive","handlers","_touchHandlers","context","_uid","keys","forEach","eventName","addEventListener","unbind","removeEventListener","Touch","defaultMenuProps","VSelectMenuProps","offsetOverflow","allowOverflow","autoSelectFirst","filter","Function","queryText","itemText","indexOf","menuProps","noFilter","searchInput","lazySearch","computedItems","filteredItems","selectedValues","map","getValue","hideSelected","some","hasItem","currentRange","selectedItem","isSearching","allItems","getPropertyFromItem","text","get","set","$emit","isDirty","$_menuProps","contentClass","trim","i","valueComparator","listData","items","virtualizedItems","watch","document","onCopy","select","blur","isMenuActive","oldVal","activateMenu","created","setSearch","destroyed","onFilteredItemsChanged","preSelectedItem","menu","listIndex","setMenuIndex","getTiles","updateDimensions","backspace","delete","deleteCurrentItem","curIndex","curItem","isInteractive","getDisabled","lastIndex","nextIndex","nextItem","VTextField","mergeData","getObjectValueByPath","autocomplete","domProps","genInputSlot","genSelections","onClick","onFocus","isAppendInner","onInput","badInput","validity","onSpaceDown","onUpDown","currentItem","currentItemText","setData"],"mappings":"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","file":"js/chunk-551cac98.f669b935.js","sourcesContent":["// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\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 // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(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 onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\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","// Extensions\nimport { BaseItemGroup } from '../../components/VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'button-group',\n\n provide (): object {\n return {\n btnToggle: this,\n }\n },\n\n computed: {\n classes (): object {\n return BaseItemGroup.options.computed.classes.call(this)\n },\n },\n\n methods: {\n // Isn't being passed down through types\n genData: BaseItemGroup.options.methods.genData,\n },\n})\n","// Styles\nimport './VBtnToggle.sass'\n\n// Mixins\nimport ButtonGroup from '../../mixins/button-group'\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n ButtonGroup,\n Colorable\n).extend({\n name: 'v-btn-toggle',\n\n props: {\n backgroundColor: String,\n borderless: Boolean,\n dense: Boolean,\n group: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...ButtonGroup.options.computed.classes.call(this),\n 'v-btn-toggle': true,\n 'v-btn-toggle--borderless': this.borderless,\n 'v-btn-toggle--dense': this.dense,\n 'v-btn-toggle--group': this.group,\n 'v-btn-toggle--rounded': this.rounded,\n 'v-btn-toggle--shaped': this.shaped,\n 'v-btn-toggle--tile': this.tile,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genData () {\n const data = this.setTextColor(this.color, {\n ...ButtonGroup.options.methods.genData.call(this),\n })\n\n if (this.group) return data\n\n return this.setBackgroundColor(this.backgroundColor, data)\n },\n },\n})\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","// 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 allowOverflow: {\n type: Boolean,\n default: true,\n },\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"],"sourceRoot":""}