{"version":3,"sources":["webpack:///./src/pages/integration/UpdateAppSettings/index.vue?64b0","webpack:///./src/pages/integration/UpdateAppSettings/CommHours.vue?8e9d","webpack:///./src/pages/integration/UpdateAppSettings/CommDay.vue?cccf","webpack:///./src/pages/integration/UpdateAppSettings/CommDay.vue","webpack:///./src/pages/integration/UpdateAppSettings/CommDay.vue?2584","webpack:///./src/pages/integration/UpdateAppSettings/CommDay.vue?9e3d","webpack:///./src/pages/integration/UpdateAppSettings/CommHours.vue","webpack:///./src/pages/integration/UpdateAppSettings/CommHours.vue?a7af","webpack:///./src/pages/integration/UpdateAppSettings/CommHours.vue?5196","webpack:///./src/pages/integration/UpdateAppSettings/index.vue","webpack:///./src/pages/integration/UpdateAppSettings/index.vue?78bc","webpack:///./src/pages/integration/UpdateAppSettings/index.vue?a1fc","webpack:///../../../src/components/VCombobox/VCombobox.ts","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","locationValid","requestPayload","on","onSuccess","scopedSlots","_u","key","fn","ref","isLoading","onLocationChange","model","value","callback","$$v","pulsemAccountId","expression","staticClass","_v","_s","loadInformationErrorMessage","_e","integration","_l","settings","app","domProps","$set","_n","loadingInformation","staticStyle","staticRenderFns","dayKey","disabled","dayName","startHour","endHour","DayKeyNameMapping","mon","tue","wed","thu","fri","sat","sun","Number","default","components","component","VCol","VRow","VTextField","dayKeys","CommDay","appSettings","requests","post","response","data","message","RateLimitSelect","AccountIdInput","IntegrationDetailsCard","TechTaskCard","CommHours","VCheckbox","VCombobox","VDivider","name","props","delimiters","type","returnObject","editingIndex","computed","computedCounterValue","multiple","selectedItems","internalSearch","hasSlot","isAnyValueAllowed","menuCanShow","hasDisplayedItems","$slots","methods","onInternalSearchChanged","val","delimiter","find","d","genInput","input","genChipSelection","chip","dblclick","onChipInput","onEnterDown","e","getMenuIndex","onFilteredItemsChanged","onKeyDown","keyCode","$refs","selectionStart","onTabDown","selectItem","setSelectedItems","internalValue","setValue","updateEditing","updateCombobox","getText","isUsingSlot","Boolean","$scopedSlots","updateSelf","updateTags","menuIndex","index","indexOf","onPaste","pastedItemText","event","findExistingIndex","defaultMenuProps","offsetY","offsetOverflow","transition","allowOverflow","autoSelectFirst","filter","itemText","queryText","hideNoData","menuProps","noFilter","searchInput","String","lazySearch","classes","selectedIndex","computedItems","selectedValues","map","item","hideSelected","filteredItems","some","length","currentRange","selectedItem","allItems","text","get","set","isDirty","searchIsDirty","isSearching","$_menuProps","i","listData","items","watch","isFocused","document","isMenuActive","oldVal","activateMenu","created","destroyed","updateMenuDimensions","menu","changeSelectedIndex","deleteCurrentItem","curIndex","curItem","getDisabled","lastIndex","nextIndex","nextItem","clearableCallback","autocomplete","genInputSlot","slot","genSelections","onClick","isAppendInner","onInput","target","onSpaceDown","onUpDown","setSearch","valueComparator","getValue","hasItem","onCopy","currentItem","currentItemText"],"mappings":"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","file":"js/chunk-a40b08a2.81deebb8.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('TechTaskCard',{attrs:{\"task-name\":\"update-integration-app-settings\",\"title\":\"Integration App Settings\",\"disable-button\":!_vm.locationValid,\"request-payload\":_vm.requestPayload},on:{\"on-submit\":_vm.onSuccess},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar isLoading = ref.isLoading;\nreturn [_c('AccountIdInput',{attrs:{\"disabled\":isLoading,\"loading\":isLoading},on:{\"onStateChange\":_vm.onLocationChange},model:{value:(_vm.pulsemAccountId),callback:function ($$v) {_vm.pulsemAccountId=$$v},expression:\"pulsemAccountId\"}}),(_vm.loadInformationErrorMessage)?_c('p',{staticClass:\"red--text\"},[_vm._v(\" \"+_vm._s(_vm.loadInformationErrorMessage)+\" \")]):_vm._e(),(_vm.integration)?_c('h3',{staticClass:\"mt-4 font-weight-regular\"},[_vm._v(\" Integrated with \"),_c('strong',[_vm._v(_vm._s(_vm.integration))])]):_vm._e(),_vm._l((_vm.appSettings),function(settings){return _c('div',{key:settings.app},[_c('h3',{staticClass:\"mt-4 mb-0\",domProps:{\"textContent\":_vm._s(((settings.appName) + \" Settings\"))}}),_c('v-checkbox',{attrs:{\"label\":\"Enabled\"},model:{value:(settings.enable),callback:function ($$v) {_vm.$set(settings, \"enable\", $$v)},expression:\"settings.enable\"}}),(settings.enable)?[_c('RateLimitSelect',{model:{value:(settings.rateLimit),callback:function ($$v) {_vm.$set(settings, \"rateLimit\", $$v)},expression:\"settings.rateLimit\"}})]:_vm._e(),_c('v-text-field',{attrs:{\"label\":\"Minimum Job Price (Example: 50)\",\"type\":\"number\"},model:{value:(settings.minJobPrice),callback:function ($$v) {_vm.$set(settings, \"minJobPrice\", _vm._n($$v))},expression:\"settings.minJobPrice\"}}),_c('v-combobox',{attrs:{\"label\":\"Restricted Technicians (Campaign Employee ID)\",\"multiple\":\"\",\"chips\":\"\",\"deletable-chips\":\"\",\"append-icon\":\"\",\"disabled\":!_vm.locationValid || isLoading || _vm.loadingInformation,\"loading\":isLoading || _vm.loadingInformation},model:{value:(settings.restrictedTechnicians),callback:function ($$v) {_vm.$set(settings, \"restrictedTechnicians\", $$v)},expression:\"settings.restrictedTechnicians\"}}),_c('div',{staticStyle:{\"display\":\"none\"}},[_c('CommHours',{attrs:{\"disabled\":!_vm.locationValid || isLoading || _vm.loadingInformation},model:{value:(settings.suppressCommHours),callback:function ($$v) {_vm.$set(settings, \"suppressCommHours\", $$v)},expression:\"settings.suppressCommHours\"}})],1),_c('v-divider')],2)})]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Suppress Comm Hours\")]),_vm._l((_vm.dayKeys),function(dayKey){return _c('CommDay',{key:dayKey,attrs:{\"label\":\"Suppress Comm Hours\",\"day-key\":dayKey,\"disabled\":_vm.disabled},model:{value:(_vm.value[dayKey]),callback:function ($$v) {_vm.$set(_vm.value, dayKey, $$v)},expression:\"value[dayKey]\"}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"align\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.dayName)+\": \")]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"disabled\":_vm.disabled},model:{value:(_vm.startHour),callback:function ($$v) {_vm.startHour=$$v},expression:\"startHour\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"disabled\":_vm.disabled},model:{value:(_vm.endHour),callback:function ($$v) {_vm.endHour=$$v},expression:\"endHour\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Emit, Prop, Vue } from 'vue-property-decorator'\n\nconst DayKeyNameMapping = {\n mon: 'Mon',\n tue: 'Tue',\n wed: 'Wed',\n thu: 'Thu',\n fri: 'Fri',\n sat: 'Sat',\n sun: 'Sun'\n}\n\nconst DefaultFromTimeMapping = {\n mon: null,\n tue: null,\n wed: null,\n thu: null,\n fri: null,\n sat: null,\n sun: null\n}\n\nconst DefaultToTimeMapping = {\n mon: null,\n tue: null,\n wed: null,\n thu: null,\n fri: null,\n sat: null,\n sun: null\n}\ninterface Hours {\n startHour: number;\n endHour: number;\n}\n\n@Component({\n components: {}\n})\nexport default class CommDay extends Vue {\n @Prop() dayKey!: 'mon'|'tue'|'wed'|'thu'|'fri'|'sat'|'sun'\n @Prop() value!: Hours[]\n @Prop({ default: true }) disabled!: boolean\n get startHour() { return this.value[0] ? Number(this.value[0].startHour) : 0 }\n set startHour(value) { this.value[0].startHour = Number(value) }\n get endHour() { return this.value[0] ? Number(this.value[0].endHour) : 0 }\n set endHour(value) { this.value[0].endHour = Number(value) }\n\n get dayName(): string {\n return DayKeyNameMapping[this.dayKey]\n }\n\n @Emit('input')\n handleInput() {\n return this.value\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommDay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommDay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommDay.vue?vue&type=template&id=ca242fe4&\"\nimport script from \"./CommDay.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommDay.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VRow,VTextField})\n","\n\n\n\n\n\n\n\n\nimport { Component, Emit, Prop, Vue } from 'vue-property-decorator'\nimport CommDay from '@/pages/integration/UpdateAppSettings/CommDay.vue'\nimport { CommHoursInterface } from '@/pages/integration/UpdateAppSettings/types/comm-hours'\n\nconst dayKeys = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']\n\n@Component({\n components: {\n CommDay\n }\n})\nexport default class CommHours extends Vue {\n dayKeys = dayKeys;\n @Prop() value!: CommHoursInterface;\n @Prop({ default: true }) disabled!: boolean;\n\n @Emit('input')\n handleInput(): CommHoursInterface {\n return this.value\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommHours.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommHours.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommHours.vue?vue&type=template&id=d48847ce&\"\nimport script from \"./CommHours.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommHours.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { CommHoursInterface, DEFAULT_COMM_HOURS } from '@/pages/integration/UpdateAppSettings/types/comm-hours'\nimport { Component, Vue } from 'vue-property-decorator'\nimport AccountIdInput from '@/components/ui/AccountIdInput.vue'\nimport CommHours from '@/pages/integration/UpdateAppSettings/CommHours.vue'\nimport IntegrationDetailsCard from '@/pages/integration/ServiceTitanWebHook/IntegrationDetailsCard.vue'\nimport RateLimitSelect from '@/pages/integration/UpdateAppSettings/RateLimitSelect.vue'\nimport requests from '@/helpers/requests'\nimport TechTaskCard from '@/components/ui/TechTaskCard.vue'\n\n\ninterface RequestPayload {\n pulsemAccountId: number|null;\n appSettings: AppSetting[];\n}\n\n\ninterface AppSetting {\n app: string;\n appName: string;\n enable: 1|0;\n rateLimit: number;\n minJobPrice: number;\n restrictedTechnicians: Array;\n suppressCommHours: CommHoursInterface;\n}\n\n\ninterface LoadResponse {\n data: {\n integration: string;\n appSettings: AppSetting[];\n };\n message: string;\n}\n\n\n@Component({\n components: {\n RateLimitSelect,\n AccountIdInput,\n IntegrationDetailsCard,\n TechTaskCard,\n CommHours\n }\n})\nexport default class UpdateAppSettings extends Vue {\n locationValid = false\n integration: string|null = null\n appSettings: null|AppSetting[] = null\n loadingInformation = false\n loadInformationErrorMessage: string|null = null\n pulsemAccountId: number|null = null\n\n get requestPayload(): RequestPayload {\n return {\n pulsemAccountId: this.pulsemAccountId,\n appSettings: this.appSettings as AppSetting[]\n }\n }\n\n async onLocationChange(locationValid: boolean) {\n this.loadInformationErrorMessage = null\n if (locationValid) {\n this.loadingInformation = true\n try {\n const response = await requests.post('/support/integration/app-settings-load', {\n pulsemAccountId: this.pulsemAccountId\n }) as LoadResponse\n this.appSettings = response.data.appSettings\n this.integration = response.data.integration\n this.locationValid = locationValid\n } catch(e) {\n this.loadInformationErrorMessage = e.message\n this.appSettings = null\n this.integration = null\n this.locationValid = false\n }\n this.loadingInformation = false\n } else {\n this.appSettings = null\n this.integration = null\n this.locationValid = false\n this.loadingInformation = false\n }\n }\n\n onSuccess() {\n // No need to do anything on this one since data needs to be displayed.\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0c4f89fb&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCheckbox,VCombobox,VDivider,VTextField})\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 },\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 onFilteredItemsChanged (val: never[], oldVal: never[]) {\n if (!this.autoSelectFirst) return\n\n VAutocomplete.options.methods.onFilteredItemsChanged.call(this, val, oldVal)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n VSelect.options.methods.onKeyDown.call(this, e)\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 },\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 ?? this.internalSearch)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n value[this.editingIndex] = this.internalSearch\n\n this.setValue(value)\n\n this.editingIndex = -1\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 // do nothing\n if (menuIndex < 0 &&\n !this.searchIsDirty\n ) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.indexOf(this.internalSearch)\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(this.internalSearch)\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n },\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 allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n this.lazySearch = val\n\n this.$emit('update:search-input', val)\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 },\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.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 this.setMenuIndex(-1)\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 this.setMenuIndex(0)\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 this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n VSelect.options.methods.onKeyDown.call(this, e)\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 (!this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (!this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n"],"sourceRoot":""}