primevue 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/style/index.mjs +1 -1
- package/accordion/style/index.mjs.map +1 -1
- package/autocomplete/AutoComplete.vue +14 -5
- package/autocomplete/BaseAutoComplete.vue +1 -1
- package/autocomplete/index.d.ts +2 -2
- package/autocomplete/index.mjs +15 -5
- package/autocomplete/index.mjs.map +1 -1
- package/autocomplete/style/index.mjs +1 -1
- package/autocomplete/style/index.mjs.map +1 -1
- package/button/BaseButton.vue +1 -1
- package/button/Button.vue +7 -0
- package/button/index.d.ts +2 -2
- package/button/index.mjs +10 -1
- package/button/index.mjs.map +1 -1
- package/button/style/index.mjs +1 -1
- package/button/style/index.mjs.map +1 -1
- package/cascadeselect/BaseCascadeSelect.vue +1 -1
- package/cascadeselect/CascadeSelect.vue +10 -4
- package/cascadeselect/index.d.ts +6 -2
- package/cascadeselect/index.mjs +11 -3
- package/cascadeselect/index.mjs.map +1 -1
- package/cascadeselect/style/index.mjs +1 -1
- package/cascadeselect/style/index.mjs.map +1 -1
- package/checkbox/Checkbox.vue +2 -1
- package/checkbox/index.d.ts +5 -0
- package/checkbox/index.mjs +1 -0
- package/checkbox/index.mjs.map +1 -1
- package/colorpicker/ColorPicker.vue +1 -1
- package/colorpicker/index.d.ts +4 -0
- package/colorpicker/index.mjs +2 -1
- package/colorpicker/index.mjs.map +1 -1
- package/confirmdialog/ConfirmDialog.vue +4 -7
- package/confirmdialog/index.mjs +6 -12
- package/confirmdialog/index.mjs.map +1 -1
- package/confirmpopup/ConfirmPopup.vue +7 -10
- package/confirmpopup/index.mjs +8 -14
- package/confirmpopup/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +8 -5
- package/datatable/HeaderCell.vue +2 -2
- package/datatable/HeaderCheckbox.vue +1 -1
- package/datatable/RowCheckbox.vue +1 -1
- package/datatable/index.mjs +20 -17
- package/datatable/index.mjs.map +1 -1
- package/datatable/style/index.mjs +1 -1
- package/datatable/style/index.mjs.map +1 -1
- package/datepicker/BaseDatePicker.vue +1 -1
- package/datepicker/DatePicker.vue +8 -1
- package/datepicker/index.d.ts +2 -2
- package/datepicker/index.mjs +13 -4
- package/datepicker/index.mjs.map +1 -1
- package/datepicker/style/index.mjs +4 -3
- package/datepicker/style/index.mjs.map +1 -1
- package/fileupload/index.mjs +1 -1
- package/floatlabel/index.d.ts +1 -1
- package/fluid/BaseFluid.vue +16 -0
- package/fluid/Fluid.vue +15 -0
- package/fluid/index.d.ts +130 -0
- package/fluid/index.mjs +32 -0
- package/fluid/index.mjs.map +1 -0
- package/fluid/package.json +11 -0
- package/fluid/style/index.d.ts +19 -0
- package/fluid/style/index.mjs +12 -0
- package/fluid/style/index.mjs.map +1 -0
- package/fluid/style/package.json +6 -0
- package/galleria/GalleriaItem.vue +5 -5
- package/galleria/GalleriaThumbnails.vue +6 -6
- package/galleria/index.mjs +16 -16
- package/galleria/index.mjs.map +1 -1
- package/galleria/style/index.d.ts +4 -4
- package/galleria/style/index.mjs +8 -8
- package/galleria/style/index.mjs.map +1 -1
- package/iconfield/style/index.mjs +1 -1
- package/iconfield/style/index.mjs.map +1 -1
- package/inputgroup/BaseInputGroup.vue +1 -1
- package/inputgroup/InputGroup.vue +10 -1
- package/inputgroup/index.d.ts +2 -2
- package/inputgroup/index.mjs +13 -2
- package/inputgroup/index.mjs.map +1 -1
- package/inputgroup/style/index.mjs +2 -2
- package/inputgroup/style/index.mjs.map +1 -1
- package/inputmask/InputMask.vue +5 -1
- package/inputmask/index.d.ts +7 -2
- package/inputmask/index.mjs +5 -2
- package/inputmask/index.mjs.map +1 -1
- package/inputnumber/BaseInputNumber.vue +1 -1
- package/inputnumber/InputNumber.vue +8 -2
- package/inputnumber/index.d.ts +2 -2
- package/inputnumber/index.mjs +10 -2
- package/inputnumber/index.mjs.map +1 -1
- package/inputnumber/style/index.mjs +1 -1
- package/inputnumber/style/index.mjs.map +1 -1
- package/inputtext/BaseInputText.vue +1 -1
- package/inputtext/InputText.vue +7 -0
- package/inputtext/index.d.ts +2 -2
- package/inputtext/index.mjs +10 -1
- package/inputtext/index.mjs.map +1 -1
- package/inputtext/style/index.mjs +1 -1
- package/inputtext/style/index.mjs.map +1 -1
- package/listbox/Listbox.vue +3 -3
- package/listbox/index.mjs +7 -6
- package/listbox/index.mjs.map +1 -1
- package/menubar/index.d.ts +1 -1
- package/multiselect/BaseMultiSelect.vue +1 -1
- package/multiselect/MultiSelect.vue +7 -1
- package/multiselect/index.d.ts +6 -2
- package/multiselect/index.mjs +10 -2
- package/multiselect/index.mjs.map +1 -1
- package/multiselect/style/index.mjs +1 -1
- package/multiselect/style/index.mjs.map +1 -1
- package/package.json +5 -3
- package/paginator/Paginator.vue +2 -2
- package/paginator/index.mjs +3 -2
- package/paginator/index.mjs.map +1 -1
- package/password/BasePassword.vue +1 -1
- package/password/Password.vue +10 -2
- package/password/index.d.ts +2 -2
- package/password/index.mjs +13 -3
- package/password/index.mjs.map +1 -1
- package/password/style/index.mjs +2 -3
- package/password/style/index.mjs.map +1 -1
- package/picklist/PickList.vue +9 -9
- package/picklist/index.d.ts +4 -4
- package/picklist/index.mjs +9 -9
- package/picklist/index.mjs.map +1 -1
- package/select/BaseSelect.vue +1 -1
- package/select/Select.vue +14 -5
- package/select/index.d.ts +2 -2
- package/select/index.mjs +21 -9
- package/select/index.mjs.map +1 -1
- package/select/style/index.mjs +1 -1
- package/select/style/index.mjs.map +1 -1
- package/selectbutton/index.mjs +1 -1
- package/speeddial/SpeedDial.vue +3 -3
- package/speeddial/index.mjs +3 -3
- package/speeddial/index.mjs.map +1 -1
- package/splitbutton/BaseSplitButton.vue +1 -1
- package/splitbutton/SplitButton.vue +8 -1
- package/splitbutton/index.d.ts +3 -3
- package/splitbutton/index.mjs +11 -2
- package/splitbutton/index.mjs.map +1 -1
- package/splitbutton/style/index.mjs +3 -2
- package/splitbutton/style/index.mjs.map +1 -1
- package/step/Step.vue +6 -6
- package/step/index.mjs +7 -7
- package/step/index.mjs.map +1 -1
- package/step/style/index.mjs +2 -3
- package/step/style/index.mjs.map +1 -1
- package/steppanel/StepPanel.vue +1 -1
- package/steppanel/index.mjs +2 -4
- package/steppanel/index.mjs.map +1 -1
- package/stepper/style/index.mjs +1 -1
- package/stepper/style/index.mjs.map +1 -1
- package/tablist/TabList.vue +7 -3
- package/tablist/index.d.ts +6 -2
- package/tablist/index.mjs +8 -4
- package/tablist/index.mjs.map +1 -1
- package/tablist/style/index.d.ts +3 -3
- package/tablist/style/index.mjs +2 -2
- package/tablist/style/index.mjs.map +1 -1
- package/tabs/style/index.mjs +1 -1
- package/tabs/style/index.mjs.map +1 -1
- package/textarea/BaseTextarea.vue +1 -1
- package/textarea/Textarea.vue +7 -0
- package/textarea/index.d.ts +2 -2
- package/textarea/index.mjs +10 -1
- package/textarea/index.mjs.map +1 -1
- package/textarea/style/index.mjs +1 -1
- package/textarea/style/index.mjs.map +1 -1
- package/toast/Toast.vue +2 -1
- package/toast/index.mjs +3 -2
- package/toast/index.mjs.map +1 -1
- package/tree/Tree.vue +3 -3
- package/tree/TreeNode.vue +1 -1
- package/tree/index.mjs +16 -13
- package/tree/index.mjs.map +1 -1
- package/treenode/index.d.ts +1 -1
- package/treeselect/BaseTreeSelect.vue +1 -1
- package/treeselect/TreeSelect.vue +9 -2
- package/treeselect/index.d.ts +2 -2
- package/treeselect/index.mjs +12 -3
- package/treeselect/index.mjs.map +1 -1
- package/treeselect/style/index.mjs +1 -1
- package/treeselect/style/index.mjs.map +1 -1
- package/treetable/index.mjs +2 -2
- package/umd/primevue.min.js +1 -1
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/autocomplete/BaseAutoComplete.vue","../../src/autocomplete/AutoComplete.vue","../../src/autocomplete/AutoComplete.vue?vue&type=template&id=3109221f&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AutoCompleteStyle from 'primevue/autocomplete/style';\n\nexport default {\n name: 'BaseAutoComplete',\n extends: BaseComponent,\n props: {\n modelValue: null,\n suggestions: {\n type: Array,\n default: null\n },\n optionLabel: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n default: '14rem'\n },\n dropdown: {\n type: Boolean,\n default: false\n },\n dropdownMode: {\n type: String,\n default: 'blank'\n },\n multiple: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String,\n default: null\n },\n invalid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: null\n },\n dataKey: {\n type: String,\n default: null\n },\n minLength: {\n type: Number,\n default: 1\n },\n delay: {\n type: Number,\n default: 300\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n forceSelection: {\n type: Boolean,\n default: false\n },\n completeOnFocus: {\n type: Boolean,\n default: false\n },\n inputId: {\n type: String,\n default: null\n },\n inputStyle: {\n type: Object,\n default: null\n },\n inputClass: {\n type: [String, Object],\n default: null\n },\n panelStyle: {\n type: Object,\n default: null\n },\n panelClass: {\n type: [String, Object],\n default: null\n },\n overlayStyle: {\n type: Object,\n default: null\n },\n overlayClass: {\n type: [String, Object],\n default: null\n },\n dropdownIcon: {\n type: String,\n default: null\n },\n dropdownClass: {\n type: [String, Object],\n default: null\n },\n loader: {\n type: String,\n default: null\n },\n loadingIcon: {\n type: String,\n default: null\n },\n removeTokenIcon: {\n type: String,\n default: null\n },\n chipIcon: {\n type: String,\n default: null\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: false\n },\n selectOnFocus: {\n type: Boolean,\n default: false\n },\n focusOnHover: {\n type: Boolean,\n default: true\n },\n searchLocale: {\n type: String,\n default: undefined\n },\n searchMessage: {\n type: String,\n default: null\n },\n selectionMessage: {\n type: String,\n default: null\n },\n emptySelectionMessage: {\n type: String,\n default: null\n },\n emptySearchMessage: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n typeahead: {\n type: Boolean,\n default: true\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n fluid: {\n type: Boolean,\n default: false\n }\n },\n style: AutoCompleteStyle,\n provide() {\n return {\n $pcAutoComplete: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <InputText\n v-if=\"!multiple\"\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"[cx('pcInput'), inputClass]\"\n :style=\"inputStyle\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n :invalid=\"invalid\"\n :variant=\"variant\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"panelId\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onInput\"\n @change=\"onChange\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcInput')\"\n />\n <ul\n v-if=\"multiple\"\n ref=\"multiContainer\"\n :class=\"cx('inputMultiple')\"\n tabindex=\"-1\"\n role=\"listbox\"\n aria-orientation=\"horizontal\"\n :aria-activedescendant=\"focused ? focusedMultipleOptionId : undefined\"\n @focus=\"onMultipleContainerFocus\"\n @blur=\"onMultipleContainerBlur\"\n @keydown=\"onMultipleContainerKeyDown\"\n v-bind=\"ptm('inputMultiple')\"\n >\n <li\n v-for=\"(option, i) of modelValue\"\n :key=\"`${i}_${getOptionLabel(option)}`\"\n :id=\"id + '_multiple_option_' + i\"\n :class=\"cx('chipItem', { i })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"true\"\n :aria-setsize=\"modelValue.length\"\n :aria-posinset=\"i + 1\"\n v-bind=\"ptm('chipItem')\"\n >\n <slot name=\"chip\" :class=\"cx('pcChip')\" :value=\"option\" :index=\"i\" :removeCallback=\"(event) => removeOption(event, i)\" v-bind=\"ptm('pcChip')\">\n <!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->\n <Chip :class=\"cx('pcChip')\" :label=\"getOptionLabel(option)\" :removeIcon=\"chipIcon || removeTokenIcon\" removable :unstyled=\"unstyled\" @remove=\"removeOption($event, i)\" :pt=\"ptm('pcChip')\">\n <template #removeicon>\n <slot :name=\"$slots.chipicon ? 'chipicon' : 'removetokenicon'\" :class=\"cx('chipIcon')\" :index=\"i\" :removeCallback=\"(event) => removeOption(event, i)\" />\n </template>\n </Chip>\n </slot>\n </li>\n <li :class=\"cx('inputChip')\" role=\"option\" v-bind=\"ptm('inputChip')\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :style=\"inputStyle\"\n :class=\"inputClass\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onInput\"\n @change=\"onChange\"\n v-bind=\"ptm('input')\"\n />\n </li>\n </ul>\n <slot v-if=\"searching || loading\" :class=\"cx('loader')\" :name=\"$slots.loader ? 'loader' : 'loadingicon'\">\n <i v-if=\"loader || loadingIcon\" :class=\"['pi-spin', cx('loader'), loader, loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loader')\" />\n <SpinnerIcon v-else :class=\"cx('loader')\" spin aria-hidden=\"true\" v-bind=\"ptm('loader')\" />\n </slot>\n <slot :name=\"$slots.dropdown ? 'dropdown' : 'dropdownbutton'\" :toggleCallback=\"(event) => onDropdownClick(event)\">\n <button\n v-if=\"dropdown\"\n ref=\"dropdownButton\"\n type=\"button\"\n :class=\"[cx('dropdown'), dropdownClass]\"\n :disabled=\"disabled\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"panelId\"\n @click=\"onDropdownClick\"\n v-bind=\"ptm('dropdown')\"\n >\n <slot name=\"dropdownicon\" :class=\"dropdownIcon\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"dropdownIcon\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </button>\n </slot>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"panelId\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"{ ...panelStyle, ...overlayStyle, 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"ptm('overlay')\"\n >\n <slot name=\"header\" :value=\"modelValue\" :suggestions=\"visibleOptions\"></slot>\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :style=\"{ height: scrollHeight }\" :items=\"visibleOptions\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" :aria-label=\"listAriaLabel\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li v-if=\"isOptionGroup(option)\" :id=\"id + '_' + getOptionIndex(i, getItemOptions)\" :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\" :class=\"cx('optionGroup')\" role=\"option\" v-bind=\"ptm('optionGroup')\">\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focus=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n v-bind=\"getPTOptions(option, getItemOptions, i, 'option')\"\n >\n <slot name=\"option\" :option=\"option\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionLabel(option) }}</slot>\n </li>\n </template>\n <li v-if=\"!items || (items && items.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ searchResultMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n <slot name=\"footer\" :value=\"modelValue\" :suggestions=\"visibleOptions\"></slot>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport { focus, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isEmpty, isNotEmpty, equals, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Chip from 'primevue/chip';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseAutoComplete from './BaseAutoComplete.vue';\n\nexport default {\n name: 'AutoComplete',\n extends: BaseAutoComplete,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],\n outsideClickListener: null,\n resizeListener: null,\n scrollHandler: null,\n overlay: null,\n virtualScroller: null,\n searchTimeout: null,\n dirty: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n focusedMultipleOptionIndex: -1,\n overlayVisible: false,\n searching: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n suggestions() {\n if (this.searching) {\n this.show();\n this.focusedOptionIndex = this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.searching = false;\n }\n\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n updated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return option; // TODO: The 'optionValue' properties can be added.\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n show(isFocus) {\n this.$emit('before-show');\n this.dirty = true;\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.dirty = isFocus;\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n if (!this.dirty && this.completeOnFocus) {\n this.search(event, event.target.value, 'focus');\n }\n\n this.dirty = true;\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.dirty = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n break;\n }\n\n this.clicked = false;\n },\n onInput(event) {\n if (this.typeahead) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n let query = event.target.value;\n\n if (!this.multiple) {\n this.updateModel(event, query);\n }\n\n if (query.length === 0) {\n this.hide();\n this.$emit('clear');\n } else {\n if (query.length >= this.minLength) {\n this.focusedOptionIndex = -1;\n\n this.searchTimeout = setTimeout(() => {\n this.search(event, query, 'input');\n }, this.delay);\n } else {\n this.hide();\n }\n }\n }\n },\n onChange(event) {\n if (this.forceSelection) {\n let valid = false;\n\n // when forceSelection is on, prevent called twice onOptionSelect()\n if (this.visibleOptions && !this.multiple) {\n let value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput.$el.value;\n const matchedValue = this.visibleOptions.find((option) => this.isOptionMatched(option, value || ''));\n\n if (matchedValue !== undefined) {\n valid = true;\n !this.isSelected(matchedValue) && this.onOptionSelect(event, matchedValue);\n }\n }\n\n if (!valid) {\n if (this.multiple) this.$refs.focusInput.value = '';\n else this.$refs.focusInput.$el.value = '';\n this.$emit('clear');\n !this.multiple && this.updateModel(event, null);\n }\n }\n },\n onMultipleContainerFocus() {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n },\n onMultipleContainerBlur() {\n this.focusedMultipleOptionIndex = -1;\n this.focused = false;\n },\n onMultipleContainerKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftKeyOnMultiple(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKeyOnMultiple(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKeyOnMultiple(event);\n break;\n\n default:\n break;\n }\n },\n onContainerClick(event) {\n this.clicked = true;\n\n if (this.disabled || this.searching || this.loading || this.isInputClicked(event) || this.isDropdownClicked(event)) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n }\n },\n onDropdownClick(event) {\n let query = undefined;\n\n if (this.overlayVisible) {\n this.hide(true);\n } else {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n query = this.$refs.focusInput.$el.value;\n\n if (this.dropdownMode === 'blank') this.search(event, '', 'dropdown');\n else if (this.dropdownMode === 'current') this.search(event, query, 'dropdown');\n }\n\n this.$emit('dropdown-click', { originalEvent: event, query });\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n if (this.multiple) {\n this.$refs.focusInput.value = '';\n\n if (!this.isSelected(option)) {\n this.updateModel(event, [...(this.modelValue || []), value]);\n }\n } else {\n this.updateModel(event, value);\n }\n\n this.$emit('item-select', { originalEvent: event, value: option });\n this.$emit('option-select', { originalEvent: event, value: option });\n\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n\n if (event.altKey) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const target = event.currentTarget;\n\n this.focusedOptionIndex = -1;\n\n if (this.multiple) {\n if (isEmpty(target.value) && this.hasSelectedOption) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.modelValue.length;\n } else {\n event.stopPropagation(); // To prevent onArrowLeftKeyOnMultiple method\n }\n }\n },\n onArrowRightKey(event) {\n this.focusedOptionIndex = -1;\n\n this.multiple && event.stopPropagation(); // To prevent onArrowRightKeyOnMultiple method\n },\n onHomeKey(event) {\n const { currentTarget } = event;\n const len = currentTarget.value.length;\n\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex = -1;\n\n event.preventDefault();\n },\n onEndKey(event) {\n const { currentTarget } = event;\n const len = currentTarget.value.length;\n\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex = -1;\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.typeahead) {\n if (this.multiple) {\n this.updateModel(event, [...(this.modelValue || []), event.target.value]);\n this.$refs.focusInput.value = '';\n }\n } else {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.hide();\n }\n }\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n },\n onBackspaceKey(event) {\n if (this.multiple) {\n if (isNotEmpty(this.modelValue) && !this.$refs.focusInput.value) {\n const removedValue = this.modelValue[this.modelValue.length - 1];\n const newValue = this.modelValue.slice(0, -1);\n\n this.$emit('update:modelValue', newValue);\n this.$emit('item-unselect', { originalEvent: event, value: removedValue });\n this.$emit('option-unselect', { originalEvent: event, value: removedValue });\n }\n\n event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method\n }\n },\n onArrowLeftKeyOnMultiple() {\n this.focusedMultipleOptionIndex = this.focusedMultipleOptionIndex < 1 ? 0 : this.focusedMultipleOptionIndex - 1;\n },\n onArrowRightKeyOnMultiple() {\n this.focusedMultipleOptionIndex++;\n\n if (this.focusedMultipleOptionIndex > this.modelValue.length - 1) {\n this.focusedMultipleOptionIndex = -1;\n focus(this.$refs.focusInput);\n }\n },\n onBackspaceKeyOnMultiple(event) {\n if (this.focusedMultipleOptionIndex !== -1) {\n this.removeOption(event, this.focusedMultipleOptionIndex);\n }\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n let target = this.multiple ? this.$refs.multiContainer : this.$refs.focusInput.$el;\n\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, target);\n } else {\n this.overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(this.overlay, target);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked(event) {\n return !this.overlay.contains(event.target) && !this.isInputClicked(event) && !this.isDropdownClicked(event);\n },\n isInputClicked(event) {\n if (this.multiple) return event.target === this.$refs.multiContainer || this.$refs.multiContainer.contains(event.target);\n else return event.target === this.$refs.focusInput.$el;\n },\n isDropdownClicked(event) {\n return this.$refs.dropdownButton ? event.target === this.$refs.dropdownButton || this.$refs.dropdownButton.contains(event.target) : false;\n },\n isOptionMatched(option, value) {\n return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.searchLocale) === value.toLocaleLowerCase(this.searchLocale);\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n return this.multiple ? (this.modelValue || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.modelValue, this.getOptionValue(option));\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n\n this.searching = true;\n this.$emit('complete', { originalEvent: event, query });\n },\n removeOption(event, index) {\n const removedOption = this.modelValue[index];\n const value = this.modelValue.filter((_, i) => i !== index).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n this.$emit('item-unselect', { originalEvent: event, value: removedOption });\n this.$emit('option-unselect', { originalEvent: event, value: removedOption });\n this.dirty = true;\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n return this.optionGroupLabel ? this.flatOptions(this.suggestions) : this.suggestions || [];\n },\n inputValue() {\n if (isNotEmpty(this.modelValue)) {\n if (typeof this.modelValue === 'object') {\n const label = this.getOptionLabel(this.modelValue);\n\n return label != null ? label : this.modelValue;\n } else {\n return this.modelValue;\n }\n } else {\n return '';\n }\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey() {\n return this.dataKey; // TODO: The 'optionValue' properties can be added.\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) && this.overlayVisible ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n focusedMultipleOptionId() {\n return this.focusedMultipleOptionIndex !== -1 ? `${this.id}_multiple_option_${this.focusedMultipleOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n panelId() {\n return this.id + '_panel';\n }\n },\n components: {\n InputText,\n VirtualScroller,\n Portal,\n ChevronDownIcon,\n SpinnerIcon,\n Chip\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <InputText\n v-if=\"!multiple\"\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"[cx('pcInput'), inputClass]\"\n :style=\"inputStyle\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n :invalid=\"invalid\"\n :variant=\"variant\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"panelId\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onInput\"\n @change=\"onChange\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcInput')\"\n />\n <ul\n v-if=\"multiple\"\n ref=\"multiContainer\"\n :class=\"cx('inputMultiple')\"\n tabindex=\"-1\"\n role=\"listbox\"\n aria-orientation=\"horizontal\"\n :aria-activedescendant=\"focused ? focusedMultipleOptionId : undefined\"\n @focus=\"onMultipleContainerFocus\"\n @blur=\"onMultipleContainerBlur\"\n @keydown=\"onMultipleContainerKeyDown\"\n v-bind=\"ptm('inputMultiple')\"\n >\n <li\n v-for=\"(option, i) of modelValue\"\n :key=\"`${i}_${getOptionLabel(option)}`\"\n :id=\"id + '_multiple_option_' + i\"\n :class=\"cx('chipItem', { i })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"true\"\n :aria-setsize=\"modelValue.length\"\n :aria-posinset=\"i + 1\"\n v-bind=\"ptm('chipItem')\"\n >\n <slot name=\"chip\" :class=\"cx('pcChip')\" :value=\"option\" :index=\"i\" :removeCallback=\"(event) => removeOption(event, i)\" v-bind=\"ptm('pcChip')\">\n <!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->\n <Chip :class=\"cx('pcChip')\" :label=\"getOptionLabel(option)\" :removeIcon=\"chipIcon || removeTokenIcon\" removable :unstyled=\"unstyled\" @remove=\"removeOption($event, i)\" :pt=\"ptm('pcChip')\">\n <template #removeicon>\n <slot :name=\"$slots.chipicon ? 'chipicon' : 'removetokenicon'\" :class=\"cx('chipIcon')\" :index=\"i\" :removeCallback=\"(event) => removeOption(event, i)\" />\n </template>\n </Chip>\n </slot>\n </li>\n <li :class=\"cx('inputChip')\" role=\"option\" v-bind=\"ptm('inputChip')\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :style=\"inputStyle\"\n :class=\"inputClass\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onInput\"\n @change=\"onChange\"\n v-bind=\"ptm('input')\"\n />\n </li>\n </ul>\n <slot v-if=\"searching || loading\" :class=\"cx('loader')\" :name=\"$slots.loader ? 'loader' : 'loadingicon'\">\n <i v-if=\"loader || loadingIcon\" :class=\"['pi-spin', cx('loader'), loader, loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loader')\" />\n <SpinnerIcon v-else :class=\"cx('loader')\" spin aria-hidden=\"true\" v-bind=\"ptm('loader')\" />\n </slot>\n <slot :name=\"$slots.dropdown ? 'dropdown' : 'dropdownbutton'\" :toggleCallback=\"(event) => onDropdownClick(event)\">\n <button\n v-if=\"dropdown\"\n ref=\"dropdownButton\"\n type=\"button\"\n :class=\"[cx('dropdown'), dropdownClass]\"\n :disabled=\"disabled\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"panelId\"\n @click=\"onDropdownClick\"\n v-bind=\"ptm('dropdown')\"\n >\n <slot name=\"dropdownicon\" :class=\"dropdownIcon\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"dropdownIcon\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </button>\n </slot>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"panelId\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"{ ...panelStyle, ...overlayStyle, 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"ptm('overlay')\"\n >\n <slot name=\"header\" :value=\"modelValue\" :suggestions=\"visibleOptions\"></slot>\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :style=\"{ height: scrollHeight }\" :items=\"visibleOptions\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" :aria-label=\"listAriaLabel\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li v-if=\"isOptionGroup(option)\" :id=\"id + '_' + getOptionIndex(i, getItemOptions)\" :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\" :class=\"cx('optionGroup')\" role=\"option\" v-bind=\"ptm('optionGroup')\">\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focus=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n v-bind=\"getPTOptions(option, getItemOptions, i, 'option')\"\n >\n <slot name=\"option\" :option=\"option\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionLabel(option) }}</slot>\n </li>\n </template>\n <li v-if=\"!items || (items && items.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ searchResultMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n <slot name=\"footer\" :value=\"modelValue\" :suggestions=\"visibleOptions\"></slot>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport { focus, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isEmpty, isNotEmpty, equals, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Chip from 'primevue/chip';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseAutoComplete from './BaseAutoComplete.vue';\n\nexport default {\n name: 'AutoComplete',\n extends: BaseAutoComplete,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],\n outsideClickListener: null,\n resizeListener: null,\n scrollHandler: null,\n overlay: null,\n virtualScroller: null,\n searchTimeout: null,\n dirty: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n focusedMultipleOptionIndex: -1,\n overlayVisible: false,\n searching: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n suggestions() {\n if (this.searching) {\n this.show();\n this.focusedOptionIndex = this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.searching = false;\n }\n\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n updated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return option; // TODO: The 'optionValue' properties can be added.\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n show(isFocus) {\n this.$emit('before-show');\n this.dirty = true;\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.dirty = isFocus;\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n if (!this.dirty && this.completeOnFocus) {\n this.search(event, event.target.value, 'focus');\n }\n\n this.dirty = true;\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.dirty = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n break;\n }\n\n this.clicked = false;\n },\n onInput(event) {\n if (this.typeahead) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n let query = event.target.value;\n\n if (!this.multiple) {\n this.updateModel(event, query);\n }\n\n if (query.length === 0) {\n this.hide();\n this.$emit('clear');\n } else {\n if (query.length >= this.minLength) {\n this.focusedOptionIndex = -1;\n\n this.searchTimeout = setTimeout(() => {\n this.search(event, query, 'input');\n }, this.delay);\n } else {\n this.hide();\n }\n }\n }\n },\n onChange(event) {\n if (this.forceSelection) {\n let valid = false;\n\n // when forceSelection is on, prevent called twice onOptionSelect()\n if (this.visibleOptions && !this.multiple) {\n let value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput.$el.value;\n const matchedValue = this.visibleOptions.find((option) => this.isOptionMatched(option, value || ''));\n\n if (matchedValue !== undefined) {\n valid = true;\n !this.isSelected(matchedValue) && this.onOptionSelect(event, matchedValue);\n }\n }\n\n if (!valid) {\n if (this.multiple) this.$refs.focusInput.value = '';\n else this.$refs.focusInput.$el.value = '';\n this.$emit('clear');\n !this.multiple && this.updateModel(event, null);\n }\n }\n },\n onMultipleContainerFocus() {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n },\n onMultipleContainerBlur() {\n this.focusedMultipleOptionIndex = -1;\n this.focused = false;\n },\n onMultipleContainerKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftKeyOnMultiple(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKeyOnMultiple(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKeyOnMultiple(event);\n break;\n\n default:\n break;\n }\n },\n onContainerClick(event) {\n this.clicked = true;\n\n if (this.disabled || this.searching || this.loading || this.isInputClicked(event) || this.isDropdownClicked(event)) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n }\n },\n onDropdownClick(event) {\n let query = undefined;\n\n if (this.overlayVisible) {\n this.hide(true);\n } else {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n query = this.$refs.focusInput.$el.value;\n\n if (this.dropdownMode === 'blank') this.search(event, '', 'dropdown');\n else if (this.dropdownMode === 'current') this.search(event, query, 'dropdown');\n }\n\n this.$emit('dropdown-click', { originalEvent: event, query });\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n if (this.multiple) {\n this.$refs.focusInput.value = '';\n\n if (!this.isSelected(option)) {\n this.updateModel(event, [...(this.modelValue || []), value]);\n }\n } else {\n this.updateModel(event, value);\n }\n\n this.$emit('item-select', { originalEvent: event, value: option });\n this.$emit('option-select', { originalEvent: event, value: option });\n\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n\n if (event.altKey) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const target = event.currentTarget;\n\n this.focusedOptionIndex = -1;\n\n if (this.multiple) {\n if (isEmpty(target.value) && this.hasSelectedOption) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.modelValue.length;\n } else {\n event.stopPropagation(); // To prevent onArrowLeftKeyOnMultiple method\n }\n }\n },\n onArrowRightKey(event) {\n this.focusedOptionIndex = -1;\n\n this.multiple && event.stopPropagation(); // To prevent onArrowRightKeyOnMultiple method\n },\n onHomeKey(event) {\n const { currentTarget } = event;\n const len = currentTarget.value.length;\n\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex = -1;\n\n event.preventDefault();\n },\n onEndKey(event) {\n const { currentTarget } = event;\n const len = currentTarget.value.length;\n\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex = -1;\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.typeahead) {\n if (this.multiple) {\n this.updateModel(event, [...(this.modelValue || []), event.target.value]);\n this.$refs.focusInput.value = '';\n }\n } else {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.hide();\n }\n }\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n },\n onBackspaceKey(event) {\n if (this.multiple) {\n if (isNotEmpty(this.modelValue) && !this.$refs.focusInput.value) {\n const removedValue = this.modelValue[this.modelValue.length - 1];\n const newValue = this.modelValue.slice(0, -1);\n\n this.$emit('update:modelValue', newValue);\n this.$emit('item-unselect', { originalEvent: event, value: removedValue });\n this.$emit('option-unselect', { originalEvent: event, value: removedValue });\n }\n\n event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method\n }\n },\n onArrowLeftKeyOnMultiple() {\n this.focusedMultipleOptionIndex = this.focusedMultipleOptionIndex < 1 ? 0 : this.focusedMultipleOptionIndex - 1;\n },\n onArrowRightKeyOnMultiple() {\n this.focusedMultipleOptionIndex++;\n\n if (this.focusedMultipleOptionIndex > this.modelValue.length - 1) {\n this.focusedMultipleOptionIndex = -1;\n focus(this.$refs.focusInput);\n }\n },\n onBackspaceKeyOnMultiple(event) {\n if (this.focusedMultipleOptionIndex !== -1) {\n this.removeOption(event, this.focusedMultipleOptionIndex);\n }\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n let target = this.multiple ? this.$refs.multiContainer : this.$refs.focusInput.$el;\n\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, target);\n } else {\n this.overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(this.overlay, target);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked(event) {\n return !this.overlay.contains(event.target) && !this.isInputClicked(event) && !this.isDropdownClicked(event);\n },\n isInputClicked(event) {\n if (this.multiple) return event.target === this.$refs.multiContainer || this.$refs.multiContainer.contains(event.target);\n else return event.target === this.$refs.focusInput.$el;\n },\n isDropdownClicked(event) {\n return this.$refs.dropdownButton ? event.target === this.$refs.dropdownButton || this.$refs.dropdownButton.contains(event.target) : false;\n },\n isOptionMatched(option, value) {\n return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.searchLocale) === value.toLocaleLowerCase(this.searchLocale);\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n return this.multiple ? (this.modelValue || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.modelValue, this.getOptionValue(option));\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n\n this.searching = true;\n this.$emit('complete', { originalEvent: event, query });\n },\n removeOption(event, index) {\n const removedOption = this.modelValue[index];\n const value = this.modelValue.filter((_, i) => i !== index).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n this.$emit('item-unselect', { originalEvent: event, value: removedOption });\n this.$emit('option-unselect', { originalEvent: event, value: removedOption });\n this.dirty = true;\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n return this.optionGroupLabel ? this.flatOptions(this.suggestions) : this.suggestions || [];\n },\n inputValue() {\n if (isNotEmpty(this.modelValue)) {\n if (typeof this.modelValue === 'object') {\n const label = this.getOptionLabel(this.modelValue);\n\n return label != null ? label : this.modelValue;\n } else {\n return this.modelValue;\n }\n } else {\n return '';\n }\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey() {\n return this.dataKey; // TODO: The 'optionValue' properties can be added.\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) && this.overlayVisible ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n focusedMultipleOptionId() {\n return this.focusedMultipleOptionIndex !== -1 ? `${this.id}_multiple_option_${this.focusedMultipleOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n panelId() {\n return this.id + '_panel';\n }\n },\n components: {\n InputText,\n VirtualScroller,\n Portal,\n ChevronDownIcon,\n SpinnerIcon,\n Chip\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","suggestions","type","Array","optionLabel","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","String","dropdown","Boolean","dropdownMode","multiple","loading","variant","invalid","disabled","placeholder","dataKey","minLength","Number","delay","appendTo","Object","forceSelection","completeOnFocus","inputId","inputStyle","inputClass","panelStyle","panelClass","overlayStyle","overlayClass","dropdownIcon","dropdownClass","loader","loadingIcon","removeTokenIcon","chipIcon","virtualScrollerOptions","autoOptionFocus","selectOnFocus","focusOnHover","searchLocale","undefined","searchMessage","selectionMessage","emptySelectionMessage","emptySearchMessage","tabindex","typeahead","ariaLabel","ariaLabelledby","fluid","style","AutoCompleteStyle","provide","$pcAutoComplete","$parentInstance","BaseAutoComplete","inheritAttrs","emits","outsideClickListener","resizeListener","scrollHandler","overlay","virtualScroller","searchTimeout","dirty","data","id","$attrs","clicked","focused","focusedOptionIndex","focusedMultipleOptionIndex","overlayVisible","searching","watch","$attrsId","newValue","UniqueComponentId","show","findFirstFocusedOptionIndex","autoUpdateModel","mounted","updated","alignOverlay","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","destroy","ZIndex","clear","methods","getOptionIndex","index","fn","virtualScrollerDisabled","getOptionLabel","option","resolveFieldData","getOptionValue","getOptionRenderKey","getPTOptions","itemOptions","key","ptm","context","selected","isSelected","isOptionDisabled","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","visibleOptions","slice","filter","length","isFocus","$emit","focus","$refs","focusInput","$el","hide","_this2","_hide","setTimeout","onFocus","event","search","target","value","scrollInView","onBlur","onKeyDown","preventDefault","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onEnterKey","onEscapeKey","onTabKey","onBackspaceKey","onInput","_this3","clearTimeout","query","updateModel","onChange","_this4","valid","matchedValue","find","isOptionMatched","onOptionSelect","onMultipleContainerFocus","onMultipleContainerBlur","onMultipleContainerKeyDown","onArrowLeftKeyOnMultiple","onArrowRightKeyOnMultiple","onBackspaceKeyOnMultiple","onContainerClick","isInputClicked","isDropdownClicked","contains","onDropdownClick","originalEvent","isHide","arguments","concat","_toConsumableArray","onOptionMouseMove","changeFocusedOptionIndex","onOverlayClick","OverlayEventBus","emit","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","isEmpty","hasSelectedOption","multiContainer","stopPropagation","len","setSelectionRange","shiftKey","isNotEmpty","removedValue","removeOption","onOverlayEnter","el","set","$primevue","config","zIndex","addStyle","position","top","left","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this5","isOutsideClicked","document","addEventListener","removeEventListener","_this6","ConnectedOverlayScrollHandler","container","_this7","isTouchDevice","window","dropdownButton","_this$getOptionLabel","isValidOption","toLocaleLowerCase","isValidSelectedOption","isEquals","value1","value2","equals","equalityKey","_this8","optionValue","some","_this9","findIndex","_this10","findLastIndex","_this11","matchedOptionIndex","_this12","findSelectedOptionIndex","_this13","selectedIndex","source","trim","_this14","removedOption","_","i","map","_this15","$nextTick","focusedOptionId","element","findSingle","list","scrollIntoView","block","inline","scrollToIndex","flatOptions","options","_this16","reduce","result","push","forEach","o","overlayRef","listRef","contentRef","virtualScrollerRef","computed","inputValue","_typeof","label","searchResultMessageText","searchMessageText","replaceAll","emptySearchMessageText","locale","selectionMessageText","emptySelectionMessageText","selectedMessageText","listAriaLabel","aria","listLabel","focusedMultipleOptionId","ariaSetSize","_this17","panelId","components","InputText","VirtualScroller","Portal","ChevronDownIcon","SpinnerIcon","Chip","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","sx","onClick","$options","apply","ptmi","_createBlock","_component_InputText","_normalizeClass","autocomplete","role","$data","onKeydown","unstyled","pt","_Fragment","_renderList","_renderSlot","removeCallback","_createVNode","_component_Chip","removeIcon","removable","onRemove","$event","removeicon","$slots","chipicon","_createElementVNode","_hoisted_3","_component_SpinnerIcon","spin","toggleCallback","_resolveDynamicComponent","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_objectSpread","_component_VirtualScroller","items","content","_withCtx","_ref","styleClass","getItemOptions","contentStyle","itemSize","height","_withDirectives","onMousemove","_createTextVNode","_toDisplayString","_ref2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/autocomplete/BaseAutoComplete.vue","../../src/autocomplete/AutoComplete.vue","../../src/autocomplete/AutoComplete.vue?vue&type=template&id=3fb3f1ea&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AutoCompleteStyle from 'primevue/autocomplete/style';\n\nexport default {\n name: 'BaseAutoComplete',\n extends: BaseComponent,\n props: {\n modelValue: null,\n suggestions: {\n type: Array,\n default: null\n },\n optionLabel: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n default: '14rem'\n },\n dropdown: {\n type: Boolean,\n default: false\n },\n dropdownMode: {\n type: String,\n default: 'blank'\n },\n multiple: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String,\n default: null\n },\n invalid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: null\n },\n dataKey: {\n type: String,\n default: null\n },\n minLength: {\n type: Number,\n default: 1\n },\n delay: {\n type: Number,\n default: 300\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n forceSelection: {\n type: Boolean,\n default: false\n },\n completeOnFocus: {\n type: Boolean,\n default: false\n },\n inputId: {\n type: String,\n default: null\n },\n inputStyle: {\n type: Object,\n default: null\n },\n inputClass: {\n type: [String, Object],\n default: null\n },\n panelStyle: {\n type: Object,\n default: null\n },\n panelClass: {\n type: [String, Object],\n default: null\n },\n overlayStyle: {\n type: Object,\n default: null\n },\n overlayClass: {\n type: [String, Object],\n default: null\n },\n dropdownIcon: {\n type: String,\n default: null\n },\n dropdownClass: {\n type: [String, Object],\n default: null\n },\n loader: {\n type: String,\n default: null\n },\n loadingIcon: {\n type: String,\n default: null\n },\n removeTokenIcon: {\n type: String,\n default: null\n },\n chipIcon: {\n type: String,\n default: null\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: false\n },\n selectOnFocus: {\n type: Boolean,\n default: false\n },\n focusOnHover: {\n type: Boolean,\n default: true\n },\n searchLocale: {\n type: String,\n default: undefined\n },\n searchMessage: {\n type: String,\n default: null\n },\n selectionMessage: {\n type: String,\n default: null\n },\n emptySelectionMessage: {\n type: String,\n default: null\n },\n emptySearchMessage: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n typeahead: {\n type: Boolean,\n default: true\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n fluid: {\n type: Boolean,\n default: null\n }\n },\n style: AutoCompleteStyle,\n provide() {\n return {\n $pcAutoComplete: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <InputText\n v-if=\"!multiple\"\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"[cx('pcInput'), inputClass]\"\n :style=\"inputStyle\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :fluid=\"hasFluid\"\n :disabled=\"disabled\"\n :invalid=\"invalid\"\n :variant=\"variant\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"panelId\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onInput\"\n @change=\"onChange\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcInput')\"\n />\n <ul\n v-if=\"multiple\"\n ref=\"multiContainer\"\n :class=\"cx('inputMultiple')\"\n tabindex=\"-1\"\n role=\"listbox\"\n aria-orientation=\"horizontal\"\n :aria-activedescendant=\"focused ? focusedMultipleOptionId : undefined\"\n @focus=\"onMultipleContainerFocus\"\n @blur=\"onMultipleContainerBlur\"\n @keydown=\"onMultipleContainerKeyDown\"\n v-bind=\"ptm('inputMultiple')\"\n >\n <li\n v-for=\"(option, i) of modelValue\"\n :key=\"`${i}_${getOptionLabel(option)}`\"\n :id=\"id + '_multiple_option_' + i\"\n :class=\"cx('chipItem', { i })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"true\"\n :aria-setsize=\"modelValue.length\"\n :aria-posinset=\"i + 1\"\n v-bind=\"ptm('chipItem')\"\n >\n <slot name=\"chip\" :class=\"cx('pcChip')\" :value=\"option\" :index=\"i\" :removeCallback=\"(event) => removeOption(event, i)\" v-bind=\"ptm('pcChip')\">\n <!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->\n <Chip :class=\"cx('pcChip')\" :label=\"getOptionLabel(option)\" :removeIcon=\"chipIcon || removeTokenIcon\" removable :unstyled=\"unstyled\" @remove=\"removeOption($event, i)\" :pt=\"ptm('pcChip')\">\n <template #removeicon>\n <slot :name=\"$slots.chipicon ? 'chipicon' : 'removetokenicon'\" :class=\"cx('chipIcon')\" :index=\"i\" :removeCallback=\"(event) => removeOption(event, i)\" />\n </template>\n </Chip>\n </slot>\n </li>\n <li :class=\"cx('inputChip')\" role=\"option\" v-bind=\"ptm('inputChip')\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :style=\"inputStyle\"\n :class=\"inputClass\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onInput\"\n @change=\"onChange\"\n v-bind=\"ptm('input')\"\n />\n </li>\n </ul>\n <slot v-if=\"searching || loading\" :class=\"cx('loader')\" :name=\"$slots.loader ? 'loader' : 'loadingicon'\">\n <i v-if=\"loader || loadingIcon\" :class=\"['pi-spin', cx('loader'), loader, loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loader')\" />\n <SpinnerIcon v-else :class=\"cx('loader')\" spin aria-hidden=\"true\" v-bind=\"ptm('loader')\" />\n </slot>\n <slot :name=\"$slots.dropdown ? 'dropdown' : 'dropdownbutton'\" :toggleCallback=\"(event) => onDropdownClick(event)\">\n <button\n v-if=\"dropdown\"\n ref=\"dropdownButton\"\n type=\"button\"\n :class=\"[cx('dropdown'), dropdownClass]\"\n :disabled=\"disabled\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"panelId\"\n @click=\"onDropdownClick\"\n v-bind=\"ptm('dropdown')\"\n >\n <slot name=\"dropdownicon\" :class=\"dropdownIcon\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"dropdownIcon\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </button>\n </slot>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"panelId\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"{ ...panelStyle, ...overlayStyle, 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"ptm('overlay')\"\n >\n <slot name=\"header\" :value=\"modelValue\" :suggestions=\"visibleOptions\"></slot>\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :style=\"{ height: scrollHeight }\" :items=\"visibleOptions\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" :aria-label=\"listAriaLabel\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li v-if=\"isOptionGroup(option)\" :id=\"id + '_' + getOptionIndex(i, getItemOptions)\" :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\" :class=\"cx('optionGroup')\" role=\"option\" v-bind=\"ptm('optionGroup')\">\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focus=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n v-bind=\"getPTOptions(option, getItemOptions, i, 'option')\"\n >\n <slot name=\"option\" :option=\"option\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionLabel(option) }}</slot>\n </li>\n </template>\n <li v-if=\"!items || (items && items.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ searchResultMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n <slot name=\"footer\" :value=\"modelValue\" :suggestions=\"visibleOptions\"></slot>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Chip from 'primevue/chip';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseAutoComplete from './BaseAutoComplete.vue';\n\nexport default {\n name: 'AutoComplete',\n extends: BaseAutoComplete,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n resizeListener: null,\n scrollHandler: null,\n overlay: null,\n virtualScroller: null,\n searchTimeout: null,\n dirty: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n focusedMultipleOptionIndex: -1,\n overlayVisible: false,\n searching: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n suggestions() {\n if (this.searching) {\n this.show();\n this.focusedOptionIndex = this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.searching = false;\n }\n\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n updated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return option; // TODO: The 'optionValue' properties can be added.\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n show(isFocus) {\n this.$emit('before-show');\n this.dirty = true;\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.dirty = isFocus;\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n if (!this.dirty && this.completeOnFocus) {\n this.search(event, event.target.value, 'focus');\n }\n\n this.dirty = true;\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.dirty = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n break;\n }\n\n this.clicked = false;\n },\n onInput(event) {\n if (this.typeahead) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n let query = event.target.value;\n\n if (!this.multiple) {\n this.updateModel(event, query);\n }\n\n if (query.length === 0) {\n this.hide();\n this.$emit('clear');\n } else {\n if (query.length >= this.minLength) {\n this.focusedOptionIndex = -1;\n\n this.searchTimeout = setTimeout(() => {\n this.search(event, query, 'input');\n }, this.delay);\n } else {\n this.hide();\n }\n }\n }\n },\n onChange(event) {\n if (this.forceSelection) {\n let valid = false;\n\n // when forceSelection is on, prevent called twice onOptionSelect()\n if (this.visibleOptions && !this.multiple) {\n let value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput.$el.value;\n const matchedValue = this.visibleOptions.find((option) => this.isOptionMatched(option, value || ''));\n\n if (matchedValue !== undefined) {\n valid = true;\n !this.isSelected(matchedValue) && this.onOptionSelect(event, matchedValue);\n }\n }\n\n if (!valid) {\n if (this.multiple) this.$refs.focusInput.value = '';\n else this.$refs.focusInput.$el.value = '';\n this.$emit('clear');\n !this.multiple && this.updateModel(event, null);\n }\n }\n },\n onMultipleContainerFocus() {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n },\n onMultipleContainerBlur() {\n this.focusedMultipleOptionIndex = -1;\n this.focused = false;\n },\n onMultipleContainerKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftKeyOnMultiple(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKeyOnMultiple(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKeyOnMultiple(event);\n break;\n\n default:\n break;\n }\n },\n onContainerClick(event) {\n this.clicked = true;\n\n if (this.disabled || this.searching || this.loading || this.isInputClicked(event) || this.isDropdownClicked(event)) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n }\n },\n onDropdownClick(event) {\n let query = undefined;\n\n if (this.overlayVisible) {\n this.hide(true);\n } else {\n let target = this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el;\n\n focus(target);\n query = target.value;\n\n if (this.dropdownMode === 'blank') this.search(event, '', 'dropdown');\n else if (this.dropdownMode === 'current') this.search(event, query, 'dropdown');\n }\n\n this.$emit('dropdown-click', { originalEvent: event, query });\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n if (this.multiple) {\n this.$refs.focusInput.value = '';\n\n if (!this.isSelected(option)) {\n this.updateModel(event, [...(this.modelValue || []), value]);\n }\n } else {\n this.updateModel(event, value);\n }\n\n this.$emit('item-select', { originalEvent: event, value: option });\n this.$emit('option-select', { originalEvent: event, value: option });\n\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n\n if (event.altKey) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const target = event.currentTarget;\n\n this.focusedOptionIndex = -1;\n\n if (this.multiple) {\n if (isEmpty(target.value) && this.hasSelectedOption) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.modelValue.length;\n } else {\n event.stopPropagation(); // To prevent onArrowLeftKeyOnMultiple method\n }\n }\n },\n onArrowRightKey(event) {\n this.focusedOptionIndex = -1;\n\n this.multiple && event.stopPropagation(); // To prevent onArrowRightKeyOnMultiple method\n },\n onHomeKey(event) {\n const { currentTarget } = event;\n const len = currentTarget.value.length;\n\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex = -1;\n\n event.preventDefault();\n },\n onEndKey(event) {\n const { currentTarget } = event;\n const len = currentTarget.value.length;\n\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex = -1;\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.typeahead) {\n if (this.multiple) {\n this.updateModel(event, [...(this.modelValue || []), event.target.value]);\n this.$refs.focusInput.value = '';\n }\n } else {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.hide();\n }\n }\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n },\n onBackspaceKey(event) {\n if (this.multiple) {\n if (isNotEmpty(this.modelValue) && !this.$refs.focusInput.value) {\n const removedValue = this.modelValue[this.modelValue.length - 1];\n const newValue = this.modelValue.slice(0, -1);\n\n this.$emit('update:modelValue', newValue);\n this.$emit('item-unselect', { originalEvent: event, value: removedValue });\n this.$emit('option-unselect', { originalEvent: event, value: removedValue });\n }\n\n event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method\n }\n },\n onArrowLeftKeyOnMultiple() {\n this.focusedMultipleOptionIndex = this.focusedMultipleOptionIndex < 1 ? 0 : this.focusedMultipleOptionIndex - 1;\n },\n onArrowRightKeyOnMultiple() {\n this.focusedMultipleOptionIndex++;\n\n if (this.focusedMultipleOptionIndex > this.modelValue.length - 1) {\n this.focusedMultipleOptionIndex = -1;\n focus(this.$refs.focusInput);\n }\n },\n onBackspaceKeyOnMultiple(event) {\n if (this.focusedMultipleOptionIndex !== -1) {\n this.removeOption(event, this.focusedMultipleOptionIndex);\n }\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n let target = this.multiple ? this.$refs.multiContainer : this.$refs.focusInput.$el;\n\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, target);\n } else {\n this.overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(this.overlay, target);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked(event) {\n return !this.overlay.contains(event.target) && !this.isInputClicked(event) && !this.isDropdownClicked(event);\n },\n isInputClicked(event) {\n if (this.multiple) return event.target === this.$refs.multiContainer || this.$refs.multiContainer.contains(event.target);\n else return event.target === this.$refs.focusInput.$el;\n },\n isDropdownClicked(event) {\n return this.$refs.dropdownButton ? event.target === this.$refs.dropdownButton || this.$refs.dropdownButton.contains(event.target) : false;\n },\n isOptionMatched(option, value) {\n return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.searchLocale) === value.toLocaleLowerCase(this.searchLocale);\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n return this.multiple ? (this.modelValue || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.modelValue, this.getOptionValue(option));\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n\n this.searching = true;\n this.$emit('complete', { originalEvent: event, query });\n },\n removeOption(event, index) {\n const removedOption = this.modelValue[index];\n const value = this.modelValue.filter((_, i) => i !== index).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n this.$emit('item-unselect', { originalEvent: event, value: removedOption });\n this.$emit('option-unselect', { originalEvent: event, value: removedOption });\n this.dirty = true;\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n return this.optionGroupLabel ? this.flatOptions(this.suggestions) : this.suggestions || [];\n },\n inputValue() {\n if (isNotEmpty(this.modelValue)) {\n if (typeof this.modelValue === 'object') {\n const label = this.getOptionLabel(this.modelValue);\n\n return label != null ? label : this.modelValue;\n } else {\n return this.modelValue;\n }\n } else {\n return '';\n }\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey() {\n return this.dataKey; // TODO: The 'optionValue' properties can be added.\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) && this.overlayVisible ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n focusedMultipleOptionId() {\n return this.focusedMultipleOptionIndex !== -1 ? `${this.id}_multiple_option_${this.focusedMultipleOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n panelId() {\n return this.id + '_panel';\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText,\n VirtualScroller,\n Portal,\n ChevronDownIcon,\n SpinnerIcon,\n Chip\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <InputText\n v-if=\"!multiple\"\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"[cx('pcInput'), inputClass]\"\n :style=\"inputStyle\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :fluid=\"hasFluid\"\n :disabled=\"disabled\"\n :invalid=\"invalid\"\n :variant=\"variant\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"panelId\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onInput\"\n @change=\"onChange\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcInput')\"\n />\n <ul\n v-if=\"multiple\"\n ref=\"multiContainer\"\n :class=\"cx('inputMultiple')\"\n tabindex=\"-1\"\n role=\"listbox\"\n aria-orientation=\"horizontal\"\n :aria-activedescendant=\"focused ? focusedMultipleOptionId : undefined\"\n @focus=\"onMultipleContainerFocus\"\n @blur=\"onMultipleContainerBlur\"\n @keydown=\"onMultipleContainerKeyDown\"\n v-bind=\"ptm('inputMultiple')\"\n >\n <li\n v-for=\"(option, i) of modelValue\"\n :key=\"`${i}_${getOptionLabel(option)}`\"\n :id=\"id + '_multiple_option_' + i\"\n :class=\"cx('chipItem', { i })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"true\"\n :aria-setsize=\"modelValue.length\"\n :aria-posinset=\"i + 1\"\n v-bind=\"ptm('chipItem')\"\n >\n <slot name=\"chip\" :class=\"cx('pcChip')\" :value=\"option\" :index=\"i\" :removeCallback=\"(event) => removeOption(event, i)\" v-bind=\"ptm('pcChip')\">\n <!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->\n <Chip :class=\"cx('pcChip')\" :label=\"getOptionLabel(option)\" :removeIcon=\"chipIcon || removeTokenIcon\" removable :unstyled=\"unstyled\" @remove=\"removeOption($event, i)\" :pt=\"ptm('pcChip')\">\n <template #removeicon>\n <slot :name=\"$slots.chipicon ? 'chipicon' : 'removetokenicon'\" :class=\"cx('chipIcon')\" :index=\"i\" :removeCallback=\"(event) => removeOption(event, i)\" />\n </template>\n </Chip>\n </slot>\n </li>\n <li :class=\"cx('inputChip')\" role=\"option\" v-bind=\"ptm('inputChip')\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :style=\"inputStyle\"\n :class=\"inputClass\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onInput\"\n @change=\"onChange\"\n v-bind=\"ptm('input')\"\n />\n </li>\n </ul>\n <slot v-if=\"searching || loading\" :class=\"cx('loader')\" :name=\"$slots.loader ? 'loader' : 'loadingicon'\">\n <i v-if=\"loader || loadingIcon\" :class=\"['pi-spin', cx('loader'), loader, loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loader')\" />\n <SpinnerIcon v-else :class=\"cx('loader')\" spin aria-hidden=\"true\" v-bind=\"ptm('loader')\" />\n </slot>\n <slot :name=\"$slots.dropdown ? 'dropdown' : 'dropdownbutton'\" :toggleCallback=\"(event) => onDropdownClick(event)\">\n <button\n v-if=\"dropdown\"\n ref=\"dropdownButton\"\n type=\"button\"\n :class=\"[cx('dropdown'), dropdownClass]\"\n :disabled=\"disabled\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"panelId\"\n @click=\"onDropdownClick\"\n v-bind=\"ptm('dropdown')\"\n >\n <slot name=\"dropdownicon\" :class=\"dropdownIcon\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"dropdownIcon\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </button>\n </slot>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"panelId\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"{ ...panelStyle, ...overlayStyle, 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"ptm('overlay')\"\n >\n <slot name=\"header\" :value=\"modelValue\" :suggestions=\"visibleOptions\"></slot>\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :style=\"{ height: scrollHeight }\" :items=\"visibleOptions\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" :aria-label=\"listAriaLabel\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li v-if=\"isOptionGroup(option)\" :id=\"id + '_' + getOptionIndex(i, getItemOptions)\" :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\" :class=\"cx('optionGroup')\" role=\"option\" v-bind=\"ptm('optionGroup')\">\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focus=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n v-bind=\"getPTOptions(option, getItemOptions, i, 'option')\"\n >\n <slot name=\"option\" :option=\"option\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionLabel(option) }}</slot>\n </li>\n </template>\n <li v-if=\"!items || (items && items.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ searchResultMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n <slot name=\"footer\" :value=\"modelValue\" :suggestions=\"visibleOptions\"></slot>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Chip from 'primevue/chip';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseAutoComplete from './BaseAutoComplete.vue';\n\nexport default {\n name: 'AutoComplete',\n extends: BaseAutoComplete,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n resizeListener: null,\n scrollHandler: null,\n overlay: null,\n virtualScroller: null,\n searchTimeout: null,\n dirty: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n focusedMultipleOptionIndex: -1,\n overlayVisible: false,\n searching: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n suggestions() {\n if (this.searching) {\n this.show();\n this.focusedOptionIndex = this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.searching = false;\n }\n\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n updated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return option; // TODO: The 'optionValue' properties can be added.\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n show(isFocus) {\n this.$emit('before-show');\n this.dirty = true;\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.dirty = isFocus;\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n if (!this.dirty && this.completeOnFocus) {\n this.search(event, event.target.value, 'focus');\n }\n\n this.dirty = true;\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.dirty = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n break;\n }\n\n this.clicked = false;\n },\n onInput(event) {\n if (this.typeahead) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n let query = event.target.value;\n\n if (!this.multiple) {\n this.updateModel(event, query);\n }\n\n if (query.length === 0) {\n this.hide();\n this.$emit('clear');\n } else {\n if (query.length >= this.minLength) {\n this.focusedOptionIndex = -1;\n\n this.searchTimeout = setTimeout(() => {\n this.search(event, query, 'input');\n }, this.delay);\n } else {\n this.hide();\n }\n }\n }\n },\n onChange(event) {\n if (this.forceSelection) {\n let valid = false;\n\n // when forceSelection is on, prevent called twice onOptionSelect()\n if (this.visibleOptions && !this.multiple) {\n let value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput.$el.value;\n const matchedValue = this.visibleOptions.find((option) => this.isOptionMatched(option, value || ''));\n\n if (matchedValue !== undefined) {\n valid = true;\n !this.isSelected(matchedValue) && this.onOptionSelect(event, matchedValue);\n }\n }\n\n if (!valid) {\n if (this.multiple) this.$refs.focusInput.value = '';\n else this.$refs.focusInput.$el.value = '';\n this.$emit('clear');\n !this.multiple && this.updateModel(event, null);\n }\n }\n },\n onMultipleContainerFocus() {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n },\n onMultipleContainerBlur() {\n this.focusedMultipleOptionIndex = -1;\n this.focused = false;\n },\n onMultipleContainerKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftKeyOnMultiple(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKeyOnMultiple(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKeyOnMultiple(event);\n break;\n\n default:\n break;\n }\n },\n onContainerClick(event) {\n this.clicked = true;\n\n if (this.disabled || this.searching || this.loading || this.isInputClicked(event) || this.isDropdownClicked(event)) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n }\n },\n onDropdownClick(event) {\n let query = undefined;\n\n if (this.overlayVisible) {\n this.hide(true);\n } else {\n let target = this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el;\n\n focus(target);\n query = target.value;\n\n if (this.dropdownMode === 'blank') this.search(event, '', 'dropdown');\n else if (this.dropdownMode === 'current') this.search(event, query, 'dropdown');\n }\n\n this.$emit('dropdown-click', { originalEvent: event, query });\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n if (this.multiple) {\n this.$refs.focusInput.value = '';\n\n if (!this.isSelected(option)) {\n this.updateModel(event, [...(this.modelValue || []), value]);\n }\n } else {\n this.updateModel(event, value);\n }\n\n this.$emit('item-select', { originalEvent: event, value: option });\n this.$emit('option-select', { originalEvent: event, value: option });\n\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n\n if (event.altKey) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const target = event.currentTarget;\n\n this.focusedOptionIndex = -1;\n\n if (this.multiple) {\n if (isEmpty(target.value) && this.hasSelectedOption) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.modelValue.length;\n } else {\n event.stopPropagation(); // To prevent onArrowLeftKeyOnMultiple method\n }\n }\n },\n onArrowRightKey(event) {\n this.focusedOptionIndex = -1;\n\n this.multiple && event.stopPropagation(); // To prevent onArrowRightKeyOnMultiple method\n },\n onHomeKey(event) {\n const { currentTarget } = event;\n const len = currentTarget.value.length;\n\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex = -1;\n\n event.preventDefault();\n },\n onEndKey(event) {\n const { currentTarget } = event;\n const len = currentTarget.value.length;\n\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex = -1;\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.typeahead) {\n if (this.multiple) {\n this.updateModel(event, [...(this.modelValue || []), event.target.value]);\n this.$refs.focusInput.value = '';\n }\n } else {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.hide();\n }\n }\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n },\n onBackspaceKey(event) {\n if (this.multiple) {\n if (isNotEmpty(this.modelValue) && !this.$refs.focusInput.value) {\n const removedValue = this.modelValue[this.modelValue.length - 1];\n const newValue = this.modelValue.slice(0, -1);\n\n this.$emit('update:modelValue', newValue);\n this.$emit('item-unselect', { originalEvent: event, value: removedValue });\n this.$emit('option-unselect', { originalEvent: event, value: removedValue });\n }\n\n event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method\n }\n },\n onArrowLeftKeyOnMultiple() {\n this.focusedMultipleOptionIndex = this.focusedMultipleOptionIndex < 1 ? 0 : this.focusedMultipleOptionIndex - 1;\n },\n onArrowRightKeyOnMultiple() {\n this.focusedMultipleOptionIndex++;\n\n if (this.focusedMultipleOptionIndex > this.modelValue.length - 1) {\n this.focusedMultipleOptionIndex = -1;\n focus(this.$refs.focusInput);\n }\n },\n onBackspaceKeyOnMultiple(event) {\n if (this.focusedMultipleOptionIndex !== -1) {\n this.removeOption(event, this.focusedMultipleOptionIndex);\n }\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n let target = this.multiple ? this.$refs.multiContainer : this.$refs.focusInput.$el;\n\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, target);\n } else {\n this.overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(this.overlay, target);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked(event) {\n return !this.overlay.contains(event.target) && !this.isInputClicked(event) && !this.isDropdownClicked(event);\n },\n isInputClicked(event) {\n if (this.multiple) return event.target === this.$refs.multiContainer || this.$refs.multiContainer.contains(event.target);\n else return event.target === this.$refs.focusInput.$el;\n },\n isDropdownClicked(event) {\n return this.$refs.dropdownButton ? event.target === this.$refs.dropdownButton || this.$refs.dropdownButton.contains(event.target) : false;\n },\n isOptionMatched(option, value) {\n return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.searchLocale) === value.toLocaleLowerCase(this.searchLocale);\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n return this.multiple ? (this.modelValue || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.modelValue, this.getOptionValue(option));\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n\n this.searching = true;\n this.$emit('complete', { originalEvent: event, query });\n },\n removeOption(event, index) {\n const removedOption = this.modelValue[index];\n const value = this.modelValue.filter((_, i) => i !== index).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n this.$emit('item-unselect', { originalEvent: event, value: removedOption });\n this.$emit('option-unselect', { originalEvent: event, value: removedOption });\n this.dirty = true;\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n return this.optionGroupLabel ? this.flatOptions(this.suggestions) : this.suggestions || [];\n },\n inputValue() {\n if (isNotEmpty(this.modelValue)) {\n if (typeof this.modelValue === 'object') {\n const label = this.getOptionLabel(this.modelValue);\n\n return label != null ? label : this.modelValue;\n } else {\n return this.modelValue;\n }\n } else {\n return '';\n }\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey() {\n return this.dataKey; // TODO: The 'optionValue' properties can be added.\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) && this.overlayVisible ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n focusedMultipleOptionId() {\n return this.focusedMultipleOptionIndex !== -1 ? `${this.id}_multiple_option_${this.focusedMultipleOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n panelId() {\n return this.id + '_panel';\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText,\n VirtualScroller,\n Portal,\n ChevronDownIcon,\n SpinnerIcon,\n Chip\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","suggestions","type","Array","optionLabel","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","String","dropdown","Boolean","dropdownMode","multiple","loading","variant","invalid","disabled","placeholder","dataKey","minLength","Number","delay","appendTo","Object","forceSelection","completeOnFocus","inputId","inputStyle","inputClass","panelStyle","panelClass","overlayStyle","overlayClass","dropdownIcon","dropdownClass","loader","loadingIcon","removeTokenIcon","chipIcon","virtualScrollerOptions","autoOptionFocus","selectOnFocus","focusOnHover","searchLocale","undefined","searchMessage","selectionMessage","emptySelectionMessage","emptySearchMessage","tabindex","typeahead","ariaLabel","ariaLabelledby","fluid","style","AutoCompleteStyle","provide","$pcAutoComplete","$parentInstance","BaseAutoComplete","inheritAttrs","emits","inject","$pcFluid","outsideClickListener","resizeListener","scrollHandler","overlay","virtualScroller","searchTimeout","dirty","data","id","$attrs","clicked","focused","focusedOptionIndex","focusedMultipleOptionIndex","overlayVisible","searching","watch","$attrsId","newValue","UniqueComponentId","show","findFirstFocusedOptionIndex","autoUpdateModel","mounted","updated","alignOverlay","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","destroy","ZIndex","clear","methods","getOptionIndex","index","fn","virtualScrollerDisabled","getOptionLabel","option","resolveFieldData","getOptionValue","getOptionRenderKey","getPTOptions","itemOptions","key","ptm","context","selected","isSelected","isOptionDisabled","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","visibleOptions","slice","filter","length","isFocus","$emit","focus","$refs","focusInput","$el","hide","_this2","_hide","setTimeout","onFocus","event","search","target","value","scrollInView","onBlur","onKeyDown","preventDefault","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onEnterKey","onEscapeKey","onTabKey","onBackspaceKey","onInput","_this3","clearTimeout","query","updateModel","onChange","_this4","valid","matchedValue","find","isOptionMatched","onOptionSelect","onMultipleContainerFocus","onMultipleContainerBlur","onMultipleContainerKeyDown","onArrowLeftKeyOnMultiple","onArrowRightKeyOnMultiple","onBackspaceKeyOnMultiple","onContainerClick","isInputClicked","isDropdownClicked","contains","onDropdownClick","originalEvent","isHide","arguments","concat","_toConsumableArray","onOptionMouseMove","changeFocusedOptionIndex","onOverlayClick","OverlayEventBus","emit","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","isEmpty","hasSelectedOption","multiContainer","stopPropagation","len","setSelectionRange","shiftKey","isNotEmpty","removedValue","removeOption","onOverlayEnter","el","set","$primevue","config","zIndex","addStyle","position","top","left","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this5","isOutsideClicked","document","addEventListener","removeEventListener","_this6","ConnectedOverlayScrollHandler","container","_this7","isTouchDevice","window","dropdownButton","_this$getOptionLabel","isValidOption","toLocaleLowerCase","isValidSelectedOption","isEquals","value1","value2","equals","equalityKey","_this8","optionValue","some","_this9","findIndex","_this10","findLastIndex","_this11","matchedOptionIndex","_this12","findSelectedOptionIndex","_this13","selectedIndex","source","trim","_this14","removedOption","_","i","map","_this15","$nextTick","focusedOptionId","element","findSingle","list","scrollIntoView","block","inline","scrollToIndex","flatOptions","options","_this16","reduce","result","push","forEach","o","overlayRef","listRef","contentRef","virtualScrollerRef","computed","inputValue","_typeof","label","searchResultMessageText","searchMessageText","replaceAll","emptySearchMessageText","locale","selectionMessageText","emptySelectionMessageText","selectedMessageText","listAriaLabel","aria","listLabel","focusedMultipleOptionId","ariaSetSize","_this17","panelId","hasFluid","components","InputText","VirtualScroller","Portal","ChevronDownIcon","SpinnerIcon","Chip","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","sx","onClick","$options","apply","ptmi","_createBlock","_component_InputText","_normalizeClass","autocomplete","role","$data","onKeydown","unstyled","pt","_Fragment","_renderList","_renderSlot","removeCallback","_createVNode","_component_Chip","removeIcon","removable","onRemove","$event","removeicon","$slots","chipicon","_createElementVNode","_hoisted_3","_component_SpinnerIcon","spin","toggleCallback","_resolveDynamicComponent","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_objectSpread","_component_VirtualScroller","items","content","_withCtx","_ref","styleClass","getItemOptions","contentStyle","itemSize","height","_withDirectives","onMousemove","_createTextVNode","_toDisplayString","_ref2"],"mappings":"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"}
|