{"version":3,"file":"VSelect-DNFMC-Ks.js","sources":["../../../node_modules/.pnpm/vuetify@2.7.2_vue@2.7.16/node_modules/vuetify/lib/components/VCheckbox/VSimpleCheckbox.js","../../../node_modules/.pnpm/vuetify@2.7.2_vue@2.7.16/node_modules/vuetify/lib/components/VSelect/VSelectList.js","../../../node_modules/.pnpm/vuetify@2.7.2_vue@2.7.16/node_modules/vuetify/lib/mixins/filterable/index.js","../../../node_modules/.pnpm/vuetify@2.7.2_vue@2.7.16/node_modules/vuetify/lib/components/VSelect/VSelect.js"],"sourcesContent":["import \"../../../src/components/VCheckbox/VSimpleCheckbox.sass\";\nimport Ripple from '../../directives/ripple';\nimport Vue from 'vue';\nimport { VIcon } from '../VIcon'; // Mixins\n\nimport Colorable from '../../mixins/colorable';\nimport Themeable from '../../mixins/themeable'; // Utilities\n\nimport mergeData from '../../util/mergeData';\nimport { wrapInArray } from '../../util/helpers';\nexport default Vue.extend({\n name: 'v-simple-checkbox',\n functional: true,\n directives: {\n Ripple\n },\n props: { ...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, {\n props,\n data,\n listeners\n }) {\n const children = [];\n let icon = props.offIcon;\n if (props.indeterminate) icon = props.indeterminateIcon;else if (props.value) icon = props.onIcon;\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: {\n center: true\n }\n }]\n }));\n children.push(ripple);\n }\n\n return h('div', mergeData(data, {\n class: {\n 'v-simple-checkbox': true,\n 'v-simple-checkbox--disabled': props.disabled\n },\n on: {\n click: e => {\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 }), [h('div', {\n staticClass: 'v-input--selection-controls__input'\n }, children)]);\n }\n\n});\n//# sourceMappingURL=VSimpleCheckbox.js.map","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox';\nimport VDivider from '../VDivider';\nimport VSubheader from '../VSubheader';\nimport { VList, VListItem, VListItemAction, VListItemContent, VListItemTitle } from '../VList'; // Directives\n\nimport ripple from '../../directives/ripple'; // Mixins\n\nimport Colorable from '../../mixins/colorable';\nimport Themeable from '../../mixins/themeable'; // Helpers\n\nimport { getPropertyFromItem } from '../../util/helpers'; // Types\n\nimport mixins from '../../util/mixins';\n/* @vue/component */\n\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple\n },\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n itemDisabled: {\n type: [String, Array, Function],\n default: 'disabled'\n },\n itemText: {\n type: [String, Array, Function],\n default: 'text'\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'value'\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null,\n selectedItems: {\n type: Array,\n default: () => []\n }\n },\n computed: {\n parsedItems() {\n return this.selectedItems.map(item => this.getValue(item));\n },\n\n tileActiveClass() {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ');\n },\n\n staticNoDataTile() {\n const tile = {\n attrs: {\n role: undefined\n },\n on: {\n mousedown: e => e.preventDefault() // Prevent onBlur from being called\n\n }\n };\n return this.$createElement(VListItem, tile, [this.genTileContent(this.noDataText)]);\n }\n\n },\n methods: {\n genAction(item, inputValue) {\n return this.$createElement(VListItemAction, [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) {\n return this.$createElement(VDivider, {\n props\n });\n },\n\n genFilteredText(text) {\n text = text || '';\n if (!this.searchInput || this.noFilter) return text;\n const {\n start,\n middle,\n end\n } = this.getMaskedCharacters(text);\n return [start, this.genHighlight(middle), end];\n },\n\n genHeader(props) {\n return this.$createElement(VSubheader, {\n props\n }, props.header);\n },\n\n genHighlight(text) {\n return this.$createElement('span', {\n staticClass: 'v-list-item__mask'\n }, text);\n },\n\n getMaskedCharacters(text) {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase();\n const index = text.toLocaleLowerCase().indexOf(searchInput);\n if (index < 0) return {\n start: text,\n middle: '',\n 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 {\n start,\n middle,\n end\n };\n },\n\n genTile({\n item,\n index,\n disabled = null,\n value = false\n }) {\n if (!value) value = this.hasItem(item);\n\n if (item === Object(item)) {\n disabled = disabled !== null ? disabled : 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 => {\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, [this.action && !this.hideSelected && this.items.length > 0 ? this.genAction(item, value) : null, this.genTileContent(item, index)]);\n }\n\n const parent = this;\n const scopedSlot = this.$scopedSlots.item({\n parent,\n item,\n attrs: { ...tile.attrs,\n ...tile.props\n },\n on: tile.on\n });\n return this.needsTile(scopedSlot) ? this.$createElement(VListItem, tile, scopedSlot) : scopedSlot;\n },\n\n genTileContent(item, index = 0) {\n return this.$createElement(VListItemContent, [this.$createElement(VListItemTitle, [this.genFilteredText(this.getText(item))])]);\n },\n\n hasItem(item) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1;\n },\n\n needsTile(slot) {\n return slot.length !== 1 || slot[0].componentOptions == null || slot[0].componentOptions.Ctor.options.name !== 'v-list-item';\n },\n\n getDisabled(item) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false));\n },\n\n getText(item) {\n return String(getPropertyFromItem(item, this.itemText, item));\n },\n\n getValue(item) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item));\n }\n\n },\n\n render() {\n const children = [];\n const itemsLength = this.items.length;\n\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index];\n if (this.hideSelected && this.hasItem(item)) continue;\n if (item == null) children.push(this.genTile({\n item,\n index\n }));else if (item.header) children.push(this.genHeader(item));else if (item.divider) children.push(this.genDivider(item));else children.push(this.genTile({\n item,\n index\n }));\n }\n\n children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile);\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item']);\n this.$slots['append-item'] && children.push(this.$slots['append-item']);\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 => {\n e.preventDefault();\n }\n },\n props: {\n dense: this.dense\n }\n }, children);\n }\n\n});\n//# sourceMappingURL=VSelectList.js.map","import Vue from 'vue';\n/* @vue/component */\n\nexport default Vue.extend({\n name: 'filterable',\n props: {\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n }\n }\n});\n//# sourceMappingURL=index.js.map","// Styles\nimport \"../../../src/components/VTextField/VTextField.sass\";\nimport \"../../../src/components/VSelect/VSelect.sass\"; // Components\n\nimport VChip from '../VChip';\nimport VMenu from '../VMenu';\nimport VSelectList from './VSelectList'; // Extensions\n\nimport VInput from '../VInput';\nimport VTextField from '../VTextField/VTextField'; // Mixins\n\nimport Comparable from '../../mixins/comparable';\nimport Dependent from '../../mixins/dependent';\nimport Filterable from '../../mixins/filterable'; // Directives\n\nimport ClickOutside from '../../directives/click-outside'; // Utilities\n\nimport mergeData from '../../util/mergeData';\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers';\nimport { consoleError } from '../../util/console'; // Types\n\nimport mixins from '../../util/mixins';\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304\n}; // Types\n\nconst baseMixins = mixins(VTextField, Comparable, Dependent, Filterable);\n/* @vue/component */\n\nexport default baseMixins.extend().extend({\n name: 'v-select',\n directives: {\n ClickOutside\n },\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown'\n },\n attach: {\n type: null,\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 },\n itemColor: {\n type: String,\n default: 'primary'\n },\n itemDisabled: {\n type: [String, Array, Function],\n default: 'disabled'\n },\n itemText: {\n type: [String, Array, Function],\n default: 'text'\n },\n itemValue: {\n type: [String, Array, Function],\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 ? this.value : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0\n };\n },\n\n computed: {\n /* All items that the select has */\n allItems() {\n return this.filterDuplicates(this.cachedItems.concat(this.items));\n },\n\n classes() {\n return { ...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\n /* Used by other components to overwrite */\n computedItems() {\n return this.allItems;\n },\n\n computedOwns() {\n return `list-${this._uid}`;\n },\n\n computedCounterValue() {\n var _a;\n\n const value = this.multiple ? this.selectedItems : ((_a = this.getText(this.selectedItems[0])) !== null && _a !== void 0 ? _a : '').toString();\n\n if (typeof this.counterValue === 'function') {\n return this.counterValue(value);\n }\n\n return value.length;\n },\n\n directives() {\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\n dynamicHeight() {\n return 'auto';\n },\n\n hasChips() {\n return this.chips || this.smallChips;\n },\n\n hasSlot() {\n return Boolean(this.hasChips || this.$scopedSlots.selection);\n },\n\n isDirty() {\n return this.selectedItems.length > 0;\n },\n\n listData() {\n const scopeId = this.$vnode && this.$vnode.context.$options._scopeId;\n const attrs = scopeId ? {\n [scopeId]: true\n } : {};\n return {\n attrs: { ...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\n staticList() {\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\n virtualizedItems() {\n return this.$_menuProps.auto ? this.computedItems : this.computedItems.slice(0, this.lastItem);\n },\n\n menuCanShow: () => true,\n\n $_menuProps() {\n let normalisedProps = typeof this.menuProps === 'string' ? this.menuProps.split(',') : 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 { ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0,\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 var _a;\n\n (_a = this.$refs.menu) === null || _a === void 0 ? void 0 : _a.updateDimensions();\n });\n }\n\n if (this.hideSelected) {\n this.$nextTick(() => {\n this.onScroll();\n });\n }\n },\n\n isMenuActive(val) {\n window.setTimeout(() => this.onMenuActiveChange(val));\n },\n\n items: {\n immediate: true,\n\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) {\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\n /** @public */\n activateMenu() {\n if (!this.isInteractive || this.isMenuActive) return;\n this.isMenuActive = true;\n },\n\n clearableCallback() {\n this.setValue(this.multiple ? [] : null);\n this.setMenuIndex(-1);\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus());\n if (this.openOnClear) this.isMenuActive = true;\n },\n\n closeConditional(e) {\n if (!this.isMenuActive) return true;\n return !this._isDestroyed && ( // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n !this.getContent() || !this.getContent().contains(e.target)) && // Click originates from outside the element\n this.$el && !this.$el.contains(e.target) && e.target !== this.$el;\n },\n\n filterDuplicates(arr) {\n const uniqueValues = new Map();\n\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]; // Do not return null values if existant (#14421)\n\n if (item == null) {\n continue;\n } // Do not deduplicate headers or dividers (#12517)\n\n\n if (item.header || item.divider) {\n uniqueValues.set(item, item);\n continue;\n }\n\n const val = this.getValue(item); // TODO: comparator\n\n !uniqueValues.has(val) && uniqueValues.set(val, item);\n }\n\n return Array.from(uniqueValues.values());\n },\n\n findExistingIndex(item) {\n const itemValue = this.getValue(item);\n return (this.internalValue || []).findIndex(i => this.valueComparator(this.getValue(i), itemValue));\n },\n\n getContent() {\n return this.$refs.menu && this.$refs.menu.$refs.content;\n },\n\n genChipSelection(item, index) {\n const isDisabled = this.isDisabled || this.getDisabled(item);\n const isInteractive = !isDisabled && this.isInteractive;\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: {\n tabindex: -1\n },\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 => {\n if (!isInteractive) return;\n e.stopPropagation();\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\n genCommaSelection(item, index, last) {\n const color = index === this.selectedIndex && this.computedColor;\n const isDisabled = this.isDisabled || this.getDisabled(item);\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\n genDefaultSlot() {\n const selections = this.genSelections();\n const input = this.genInput(); // If the return is an empty array\n // push the input\n\n if (Array.isArray(selections)) {\n selections.push(input); // Otherwise push it into children\n } else {\n selections.children = selections.children || [];\n selections.children.push(input);\n }\n\n return [this.genFieldset(), this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives\n }, [this.genLabel(), this.prefix ? this.genAffix('prefix') : null, selections, this.suffix ? this.genAffix('suffix') : null, this.genClearIcon(), this.genIconSlot(), this.genHiddenInput()]), this.genMenu(), this.genProgress()];\n },\n\n genIcon(type, cb, extraData) {\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\n genInput() {\n const input = VTextField.options.methods.genInput.call(this);\n delete input.data.attrs.name;\n input.data = mergeData(input.data, {\n domProps: {\n value: null\n },\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: {\n keypress: this.onKeyPress\n }\n });\n return input;\n },\n\n genHiddenInput() {\n return this.$createElement('input', {\n domProps: {\n value: this.lazyValue\n },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name\n }\n });\n },\n\n genInputSlot() {\n const render = VTextField.options.methods.genInputSlot.call(this);\n render.data.attrs = { ...render.data.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns\n };\n return render;\n },\n\n genList() {\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\n genListWithSlot() {\n const slots = ['prepend-item', 'no-data', 'append-item'].filter(slotName => this.$slots[slotName]).map(slotName => this.$createElement('template', {\n slot: slotName\n }, this.$slots[slotName])); // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n\n return this.$createElement(VSelectList, { ...this.listData\n }, slots);\n },\n\n genMenu() {\n const props = this.$_menuProps;\n props.activator = this.$refs['input-slot'];\n if ('attach' in props) void 0;else if ( // 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 return this.$createElement(VMenu, {\n attrs: {\n role: undefined\n },\n props,\n on: {\n input: val => {\n this.isMenuActive = val;\n this.isFocused = val;\n },\n scroll: this.onScroll\n },\n ref: 'menu'\n }, [this.genList()]);\n },\n\n genSelections() {\n let length = this.selectedItems.length;\n const children = new Array(length);\n let genSelection;\n\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(this.selectedItems[length], length, length === children.length - 1);\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections'\n }, children);\n },\n\n genSlotSelection(item, index) {\n return this.$scopedSlots.selection({\n attrs: {\n class: 'v-chip--select'\n },\n parent: this,\n item,\n index,\n select: e => {\n e.stopPropagation();\n this.selectedIndex = index;\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive\n });\n },\n\n getMenuIndex() {\n return this.$refs.menu ? this.$refs.menu.listIndex : -1;\n },\n\n getDisabled(item) {\n return getPropertyFromItem(item, this.itemDisabled, false);\n },\n\n getText(item) {\n return getPropertyFromItem(item, this.itemText, item);\n },\n\n getValue(item) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item));\n },\n\n onBlur(e) {\n e && this.$emit('blur', e);\n },\n\n onChipInput(item) {\n if (this.multiple) this.selectItem(item);else this.setValue(null); // If all items have been deleted,\n // open `v-menu`\n\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true;\n } else {\n this.isMenuActive = false;\n }\n\n this.selectedIndex = -1;\n },\n\n onClick(e) {\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\n onEscDown(e) {\n e.preventDefault();\n\n if (this.isMenuActive) {\n e.stopPropagation();\n this.isMenuActive = false;\n }\n },\n\n onKeyPress(e) {\n if (this.multiple || !this.isInteractive || this.disableLookup || e.key.length > 1 || e.ctrlKey || e.metaKey || e.altKey) return;\n const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds\n\n const now = performance.now();\n\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = '';\n }\n\n this.keyboardLookupPrefix += e.key.toLowerCase();\n this.keyboardLookupLastTime = now;\n const index = this.allItems.findIndex(item => {\n var _a;\n\n const text = ((_a = this.getText(item)) !== null && _a !== void 0 ? _a : '').toString();\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix);\n });\n const item = this.allItems[index];\n\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\n onKeyDown(e) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return;\n const keyCode = e.keyCode;\n const menu = this.$refs.menu;\n this.$emit('keydown', e);\n if (!menu) return; // If menu is active, allow default\n // listIndex change from menu\n\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 } // If enter, space, open menu\n\n\n if ([keyCodes.enter, keyCodes.space].includes(keyCode)) this.activateMenu(); // 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\n if (!this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)) return this.onUpDown(e); // If escape deactivate the menu\n\n if (keyCode === keyCodes.esc) return this.onEscDown(e); // If tab - select item or close menu\n\n if (keyCode === keyCodes.tab) return this.onTabDown(e); // If space preventDefault\n\n if (keyCode === keyCodes.space) return this.onSpaceDown(e);\n },\n\n onMenuActiveChange(val) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (this.multiple && !val || this.getMenuIndex() > -1) return;\n const menu = this.$refs.menu;\n if (!menu || !this.isDirty) return; // When menu opens, set index of first active item\n\n this.$refs.menu.getTiles();\n\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\n onMouseUp(e) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (this.hasMouseDown && e.which !== 3 && this.isInteractive) {\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\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 const showMoreItems = this.getContent().scrollHeight - (this.getContent().scrollTop + this.getContent().clientHeight) < 200;\n\n if (showMoreItems) {\n this.lastItem += 20;\n }\n }\n },\n\n onSpaceDown(e) {\n e.preventDefault();\n },\n\n onTabDown(e) {\n const menu = this.$refs.menu;\n if (!menu) return;\n const activeTile = menu.activeTile; // An item that is selected by\n // menu-index should toggled\n\n if (!this.multiple && activeTile && this.isMenuActive) {\n e.preventDefault();\n e.stopPropagation();\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\n onUpDown(e) {\n const menu = this.$refs.menu;\n if (!menu) return;\n e.preventDefault(); // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n\n if (this.multiple) return this.activateMenu();\n const keyCode = e.keyCode; // Cycle through available values to achieve\n // select native behavior\n\n menu.isBooted = true;\n window.requestAnimationFrame(() => {\n menu.getTiles();\n if (!menu.hasClickableTiles) return this.activateMenu();\n\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile();\n break;\n\n case keyCodes.down:\n menu.nextTile();\n break;\n\n case keyCodes.home:\n menu.firstTile();\n break;\n\n case keyCodes.end:\n menu.lastTile();\n break;\n }\n\n this.selectItem(this.allItems[this.getMenuIndex()]);\n });\n },\n\n selectItem(item) {\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 i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item);\n this.setValue(internalValue.map(i => {\n return this.returnObject ? i : this.getValue(i);\n })); // There is no item to re-highlight\n // when selections are hidden\n\n if (this.hideSelected) {\n this.setMenuIndex(-1);\n } else {\n const index = this.computedItems.indexOf(item);\n\n if (~index) {\n this.$nextTick(() => this.$refs.menu.getTiles());\n setTimeout(() => this.setMenuIndex(index));\n }\n }\n }\n },\n\n setMenuIndex(index) {\n this.$refs.menu && (this.$refs.menu.listIndex = index);\n },\n\n setSelectedItems() {\n const selectedItems = [];\n const values = !this.multiple || !Array.isArray(this.internalValue) ? [this.internalValue] : this.internalValue;\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(this.getValue(v), this.getValue(value)));\n\n if (index > -1) {\n selectedItems.push(this.allItems[index]);\n }\n }\n\n this.selectedItems = selectedItems;\n },\n\n setValue(value) {\n if (!this.valueComparator(value, this.internalValue)) {\n this.internalValue = value;\n this.$emit('change', value);\n }\n },\n\n isAppendInner(target) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner'];\n return appendInner && (appendInner === target || appendInner.contains(target));\n }\n\n }\n});\n//# sourceMappingURL=VSelect.js.map"],"names":["__unplugin_components_4","Vue","Ripple","__spreadProps","__spreadValues","Colorable","Themeable","h","props","data","listeners","children","icon","VIcon","ripple","mergeData","e","wrapInArray","f","VSelectList","mixins","item","tile","VListItem","inputValue","VListItemAction","VSimpleCheckbox","VDivider","text","start","middle","end","VSubheader","searchInput","index","disabled","value","parent","scopedSlot","VListItemContent","VListItemTitle","slot","getPropertyFromItem","itemsLength","VList","Filterable","defaultMenuProps","baseMixins","VTextField","Comparable","Dependent","__unplugin_components_7","ClickOutside","_a","scopeId","attrs","consoleError","normalisedProps","acc","p","val","arr","uniqueValues","itemValue","i","isDisabled","isInteractive","VChip","last","color","selections","input","type","cb","extraData","VInput","getObjectValueByPath","render","slots","slotName","VMenu","length","genSelection","KEYBOARD_LOOKUP_THRESHOLD","now","keyCodes","keyCode","menu","content","activeTile","internalValue","selectedItems","values","v","target","appendInner"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}