{"version":3,"sources":["webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["mixins","BindsAttrs","RegistrableProvide","extend","name","provide","form","this","inheritAttrs","props","disabled","Boolean","lazyValidation","readonly","value","data","inputs","watchers","errorBag","watch","handler","val","errors","Object","values","includes","$emit","deep","immediate","methods","watchInput","input","watcher","$watch","$set","_uid","valid","shouldValidate","hasOwnProperty","validate","filter","length","reset","forEach","resetErrorBag","setTimeout","resetValidation","register","push","unregister","found","find","i","unwatch","$delete","render","h","staticClass","attrs","novalidate","attrs$","on","submit","e","getSlot","Vue","directives","ripple","type","default","genRipple","center","$createElement","baseMixins","VTextField","autoGrow","noResize","rowHeight","Number","String","validator","v","isNaN","parseFloat","rows","parseInt","computed","classes","noResizeHandle","options","call","$nextTick","calculateInputHeight","_a","$refs","style","removeProperty","lazyValue","mounted","height","scrollHeight","minHeight","Math","max","genInput","tag","onInput","onKeyDown","isFocused","keyCode","stopPropagation","Selectable","Touch","inset","loading","flat","VInput","isActive","isDisabled","role","validationState","hasError","hasSuccess","hasColor","computedColor","switchData","setTextColor","undefined","class","themeClasses","genDefaultSlot","genSwitch","genLabel","title","switchAttrs","left","onSwipeLeft","right","onSwipeRight","genProgress","VFabTransition","VProgressCircular","color","size","width","indeterminate","onChange","onKeydown","keyCodes","defaultMenuProps","VSelectMenuProps","offsetY","offsetOverflow","transition","VSelect","autoSelectFirst","Function","item","queryText","itemText","toLocaleLowerCase","indexOf","hideNoData","menuProps","noFilter","searchInput","lazySearch","selectedIndex","computedItems","filteredItems","selectedValues","selectedItems","map","getValue","hasDisplayedItems","hideSelected","some","hasItem","currentRange","selectedItem","getText","isSearching","internalSearch","allItems","getPropertyFromItem","text","get","set","isAnyValueAllowed","isDirty","searchIsDirty","multiple","menuCanShow","$_menuProps","contentClass","trim","valueComparator","internalValue","listData","items","virtualizedItems","document","addEventListener","onCopy","select","removeEventListener","blur","updateSelf","isMenuActive","hasSlot","oldVal","activateMenu","created","setSearch","destroyed","onFilteredItemsChanged","preSelectedItem","menu","listIndex","setMenuIndex","findIndex","getTiles","onInternalSearchChanged","updateMenuDimensions","updateDimensions","changeSelectedIndex","backspace","delete","deleteCurrentItem","curIndex","curItem","isInteractive","getDisabled","lastIndex","nextIndex","nextItem","selectItem","setValue","clearableCallback","mergeData","getObjectValueByPath","autocomplete","domProps","genInputSlot","slot","genSelections","onClick","onFocus","isAppendInner","target","badInput","validity","ctrlKey","home","end","onSpaceDown","onTabDown","onUpDown","preventDefault","setSelectedItems","event","currentItem","currentItemText","clipboardData","setData","_b","prevent","Rippleable","Comparable","model","prop","id","inputValue","falseValue","trueValue","label","isDark","appIsDark","isMultiple","Array","isArray","rippleState","click","assign","toString","computedId","checked","onBlur","change","focus","keydown","ref"],"mappings":"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","file":"js/chunk-f6581582.9642c034.js","sourcesContent":["// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, getSlot(this))\n },\n})\n","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n autoGrow (val: boolean) {\n this.$nextTick(() => {\n val\n ? this.calculateInputHeight()\n : this.$refs.input?.style.removeProperty('height')\n })\n },\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { getSlot, keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : getSlot(this, 'progress') || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""}