{"version":3,"sources":["webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///../../../src/components/VCombobox/VCombobox.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VChip/VChip.ts"],"names":["defaultMenuProps","VSelectMenuProps","offsetY","offsetOverflow","transition","VSelect","extend","name","props","autoSelectFirst","type","Boolean","default","filter","Function","item","queryText","itemText","toLocaleLowerCase","indexOf","hideNoData","menuProps","options","noFilter","searchInput","String","data","lazySearch","this","computed","classes","call","selectedIndex","computedItems","filteredItems","selectedValues","selectedItems","map","getValue","hasDisplayedItems","hideSelected","some","hasItem","length","currentRange","selectedItem","getText","isSearching","internalSearch","allItems","value","getPropertyFromItem","text","get","set","val","$emit","isAnyValueAllowed","isDirty","searchIsDirty","multiple","menuCanShow","isFocused","$_menuProps","contentClass","trim","find","i","valueComparator","internalValue","listData","items","virtualizedItems","watch","document","addEventListener","onCopy","$refs","input","select","removeEventListener","blur","updateSelf","isMenuActive","hasSlot","oldVal","activateMenu","created","setSearch","destroyed","methods","onFilteredItemsChanged","preSelectedItem","menu","listIndex","setMenuIndex","findIndex","$nextTick","getTiles","onInternalSearchChanged","updateMenuDimensions","updateDimensions","changeSelectedIndex","keyCode","keyCodes","left","right","backspace","delete","deleteCurrentItem","curIndex","curItem","isInteractive","getDisabled","lastIndex","nextIndex","nextItem","selectItem","setValue","clearableCallback","genInput","VTextField","mergeData","attrs","getObjectValueByPath","autocomplete","domProps","genInputSlot","slot","role","genSelections","onClick","e","onFocus","isAppendInner","target","onInput","badInput","validity","onKeyDown","ctrlKey","home","end","includes","onSpaceDown","onTabDown","onUpDown","preventDefault","setSelectedItems","event","currentItem","currentItemText","_a","clipboardData","setData","_b","VAutocomplete","delimiters","Array","returnObject","editingIndex","computedCounterValue","toString","$slots","delimiter","d","endsWith","slice","updateTags","on","paste","onPaste","genChipSelection","index","chip","componentOptions","listeners","dblclick","onChipInput","onEnterDown","getMenuIndex","selectionStart","enter","stopPropagation","updateEditing","undefined","Object","assign","splice","push","updateCombobox","isUsingSlot","$scopedSlots","selection","hasChips","menuIndex","itemToSelect","pastedItemText","getData","findExistingIndex","VMenu","VChip","Vue","functional","directives","Ripple","Colorable","Themeable","disabled","ripple","indeterminate","indeterminateIcon","onIcon","offIcon","render","h","children","icon","VIcon","setTextColor","color","dark","light","staticClass","def","center","class","click","wrapInArray","forEach","f","VDivider","mixins","inset","themeClasses","$attrs","$listeners","VSubheader","action","dense","itemDisabled","itemValue","noDataText","parsedItems","tileActiveClass","keys","join","staticNoDataTile","tile","mousedown","$createElement","VListItem","genTileContent","genAction","inputValue","VListItemAction","VSimpleCheckbox","genDivider","genFilteredText","start","middle","getMaskedCharacters","genHighlight","genHeader","header","genTile","id","_uid","activeClass","parent","scopedSlot","needsTile","VListItemContent","VListItemTitle","Ctor","itemsLength","divider","unshift","VList","tabindex","closeOnClick","closeOnContentClick","disableKeys","openOnClick","maxHeight","baseMixins","Comparable","Dependent","Filterable","ClickOutside","appendIcon","attach","cacheItems","chips","clearable","deletableChips","disableLookup","eager","itemColor","openOnClear","smallChips","cachedItems","menuIsBooted","lastItem","lazyValue","keyboardLookupPrefix","keyboardLookupLastTime","filterDuplicates","concat","computedOwns","counterValue","handler","closeConditional","include","getOpenDependentElements","dynamicHeight","scopeId","$vnode","context","$options","_scopeId","$vuetify","lang","t","scopedSlots","staticList","consoleError","VSelectList","auto","normalisedProps","split","isArray","reduce","acc","p","nudgeBottom","initialValue","onScroll","window","setTimeout","onMenuActiveChange","immediate","focus","_isDestroyed","getContent","contains","$el","arr","uniqueValues","Map","has","from","values","content","isDisabled","close","small","click:close","key","JSON","stringify","genCommaSelection","last","computedColor","genDefaultSlot","selections","genFieldset","genLabel","prefix","genAffix","suffix","genClearIcon","genIconSlot","genHiddenInput","genMenu","genProgress","genIcon","cb","extraData","VInput","readonly","isReadonly","placeholder","persistentPlaceholder","hasLabel","keypress","onKeyPress","attrs$","genList","genListWithSlot","slots","slotName","activator","scroll","ref","genSelection","genSlotSelection","selected","onBlur","onEscDown","metaKey","altKey","KEYBOARD_LOOKUP_THRESHOLD","now","performance","toLowerCase","startsWith","Math","max","tab","up","down","changeListIndex","space","esc","tiles","getAttribute","onMouseUp","hasMouseDown","which","showMoreItems","scrollHeight","scrollTop","clientHeight","requestAnimationFrame","activeTile","isBooted","hasClickableTiles","prevTile","nextTile","firstTile","lastTile","v","appendInner","Sizeable","Routable","GroupableFactory","ToggleableFactory","active","chipGroup","closeIcon","closeLabel","draggable","filterIcon","label","link","outlined","pill","tag","textColor","proxyClass","isClickable","isLink","hasClose","sizeableClasses","groupClasses","breakingProps","original","replacement","hasOwnProperty","breaking","toggle","genFilter","isActive","VExpandXTransition","genClose","size","genContent","generateRouteLink","setBackgroundColor"],"mappings":"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","file":"js/chunk-213fd73a.f8400f0e.js","sourcesContent":["// 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","// 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 this.$emit('paste', event)\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","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\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","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\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 }, this.$slots.default)\n },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\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 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.allItems.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 './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n this.$slots.default,\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n"],"sourceRoot":""}