primevue 4.2.2 → 4.2.3

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.
Files changed (72) hide show
  1. package/autocomplete/AutoComplete.vue +1 -1
  2. package/autocomplete/index.mjs +2 -1
  3. package/autocomplete/index.mjs.map +1 -1
  4. package/colorpicker/ColorPicker.vue +1 -1
  5. package/colorpicker/index.mjs +1 -0
  6. package/colorpicker/index.mjs.map +1 -1
  7. package/datatable/BodyCell.vue +2 -11
  8. package/datatable/DataTable.vue +3 -24
  9. package/datatable/FooterCell.vue +3 -12
  10. package/datatable/HeaderCell.vue +2 -11
  11. package/datatable/index.mjs +49 -98
  12. package/datatable/index.mjs.map +1 -1
  13. package/datatable/style/index.mjs +1 -1
  14. package/datatable/style/index.mjs.map +1 -1
  15. package/datepicker/DatePicker.vue +1 -1
  16. package/datepicker/index.mjs +1 -1
  17. package/datepicker/index.mjs.map +1 -1
  18. package/datepicker/style/index.mjs +1 -1
  19. package/datepicker/style/index.mjs.map +1 -1
  20. package/drawer/style/index.mjs +1 -1
  21. package/drawer/style/index.mjs.map +1 -1
  22. package/imagecompare/ImageCompare.vue +3 -33
  23. package/imagecompare/index.mjs +3 -35
  24. package/imagecompare/index.mjs.map +1 -1
  25. package/imagecompare/style/index.mjs +1 -1
  26. package/imagecompare/style/index.mjs.map +1 -1
  27. package/inputtext/index.d.ts +2 -2
  28. package/package.json +5 -5
  29. package/panelmenu/PanelMenu.vue +6 -3
  30. package/panelmenu/index.mjs +5 -2
  31. package/panelmenu/index.mjs.map +1 -1
  32. package/password/index.d.ts +1 -1
  33. package/scrollpanel/ScrollPanel.vue +4 -35
  34. package/scrollpanel/index.mjs +27 -57
  35. package/scrollpanel/index.mjs.map +1 -1
  36. package/scrollpanel/style/index.mjs +1 -1
  37. package/scrollpanel/style/index.mjs.map +1 -1
  38. package/select/Select.vue +1 -1
  39. package/select/index.mjs +1 -1
  40. package/select/index.mjs.map +1 -1
  41. package/slider/Slider.vue +7 -33
  42. package/slider/index.mjs +11 -47
  43. package/slider/index.mjs.map +1 -1
  44. package/splitter/Splitter.vue +3 -24
  45. package/splitter/index.mjs +21 -43
  46. package/splitter/index.mjs.map +1 -1
  47. package/step/Step.vue +2 -2
  48. package/step/index.mjs +2 -2
  49. package/step/index.mjs.map +1 -1
  50. package/tablist/TabList.vue +11 -43
  51. package/tablist/index.mjs +11 -42
  52. package/tablist/index.mjs.map +1 -1
  53. package/tabs/index.d.ts +3 -3
  54. package/textarea/index.d.ts +2 -3
  55. package/togglebutton/ToggleButton.vue +1 -1
  56. package/togglebutton/index.mjs +1 -1
  57. package/togglebutton/index.mjs.map +1 -1
  58. package/tree/Tree.vue +1 -1
  59. package/tree/index.mjs +29 -23
  60. package/tree/index.mjs.map +1 -1
  61. package/tree/style/index.mjs +1 -1
  62. package/tree/style/index.mjs.map +1 -1
  63. package/treetable/BodyCell.vue +2 -11
  64. package/treetable/FooterCell.vue +3 -12
  65. package/treetable/HeaderCell.vue +3 -12
  66. package/treetable/TreeTable.vue +3 -26
  67. package/treetable/index.mjs +24 -75
  68. package/treetable/index.mjs.map +1 -1
  69. package/treetable/style/index.mjs +1 -1
  70. package/treetable/style/index.mjs.map +1 -1
  71. package/umd/primevue.min.js +1 -1
  72. 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=47e3dea4&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport AutoCompleteStyle from 'primevue/autocomplete/style';\n\nexport default {\n name: 'BaseAutoComplete',\n extends: BaseInput,\n props: {\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 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 showEmptyMessage: {\n type: Boolean,\n default: true\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 },\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 :name=\"$formName\"\n :class=\"[cx('pcInputText'), inputClass]\"\n :style=\"inputStyle\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :fluid=\"$fluid\"\n :disabled=\"disabled\"\n :size=\"size\"\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('pcInputText')\"\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 d_value\"\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=\"d_value.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 v-if=\"overlayVisible\" :ref=\"overlayRef\" :id=\"panelId\" :class=\"[cx('overlay'), panelClass, overlayClass]\" :style=\"{ ...panelStyle, ...overlayStyle }\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <slot name=\"header\" :value=\"d_value\" :suggestions=\"visibleOptions\"></slot>\n <div :class=\"cx('listContainer')\" :style=\"{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\" v-bind=\"ptm('listContainer')\">\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\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\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=\"showEmptyMessage && (!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 </div>\n <slot name=\"footer\" :value=\"d_value\" :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: ['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 !this.showEmptyMessage && this.visibleOptions.length === 0 && this.hide();\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 this.formField.onBlur?.();\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.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.d_value || []), 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.$filled) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.d_value.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.d_value || []), 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 event.preventDefault();\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.d_value) && !this.$refs.focusInput.value) {\n const removedValue = this.d_value[this.d_value.length - 1];\n const newValue = this.d_value.slice(0, -1);\n\n this.writeValue(newValue, event);\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.d_value.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.d_value || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.d_value, 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.$filled ? 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.d_value[index];\n const value = this.d_value.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.$filled) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\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 (this.$filled) {\n if (typeof this.d_value === 'object') {\n const label = this.getOptionLabel(this.d_value);\n\n return label != null ? label : this.d_value;\n } else {\n return this.d_value;\n }\n } else {\n return '';\n }\n },\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n equalityKey() {\n // @todo: The 'optionValue' properties can be added.\n return this.dataKey;\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.$filled ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.d_value.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 :name=\"$formName\"\n :class=\"[cx('pcInputText'), inputClass]\"\n :style=\"inputStyle\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :fluid=\"$fluid\"\n :disabled=\"disabled\"\n :size=\"size\"\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('pcInputText')\"\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 d_value\"\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=\"d_value.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 v-if=\"overlayVisible\" :ref=\"overlayRef\" :id=\"panelId\" :class=\"[cx('overlay'), panelClass, overlayClass]\" :style=\"{ ...panelStyle, ...overlayStyle }\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <slot name=\"header\" :value=\"d_value\" :suggestions=\"visibleOptions\"></slot>\n <div :class=\"cx('listContainer')\" :style=\"{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\" v-bind=\"ptm('listContainer')\">\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\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\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=\"showEmptyMessage && (!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 </div>\n <slot name=\"footer\" :value=\"d_value\" :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: ['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 !this.showEmptyMessage && this.visibleOptions.length === 0 && this.hide();\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 this.formField.onBlur?.();\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.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.d_value || []), 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.$filled) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.d_value.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.d_value || []), 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 event.preventDefault();\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.d_value) && !this.$refs.focusInput.value) {\n const removedValue = this.d_value[this.d_value.length - 1];\n const newValue = this.d_value.slice(0, -1);\n\n this.writeValue(newValue, event);\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.d_value.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.d_value || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.d_value, 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.$filled ? 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.d_value[index];\n const value = this.d_value.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.$filled) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\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 (this.$filled) {\n if (typeof this.d_value === 'object') {\n const label = this.getOptionLabel(this.d_value);\n\n return label != null ? label : this.d_value;\n } else {\n return this.d_value;\n }\n } else {\n return '';\n }\n },\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n equalityKey() {\n // @todo: The 'optionValue' properties can be added.\n return this.dataKey;\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.$filled ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.d_value.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","BaseInput","props","suggestions","type","Array","optionLabel","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","String","dropdown","Boolean","dropdownMode","multiple","loading","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","showEmptyMessage","tabindex","typeahead","ariaLabel","ariaLabelledby","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","visibleOptions","length","hide","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","disabled","isOptionDisabled","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","slice","filter","isFocus","$emit","focus","$refs","focusInput","$el","_this2","_hide","setTimeout","onFocus","event","search","target","value","scrollInView","onBlur","_this$formField$onBlu","_this$formField","formField","call","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","isDropdownClicked","contains","onDropdownClick","originalEvent","isHide","arguments","concat","_toConsumableArray","d_value","onOptionMouseMove","changeFocusedOptionIndex","onOverlayClick","OverlayEventBus","emit","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","isEmpty","$filled","multiContainer","stopPropagation","len","setSelectionRange","shiftKey","isNotEmpty","removedValue","writeValue","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","isInputClicked","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","hasSelectedOption","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","$formName","_normalizeClass","fluid","$fluid","size","invalid","variant","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=267c53f6&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport AutoCompleteStyle from 'primevue/autocomplete/style';\n\nexport default {\n name: 'BaseAutoComplete',\n extends: BaseInput,\n props: {\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 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 showEmptyMessage: {\n type: Boolean,\n default: true\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 },\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 :name=\"$formName\"\n :class=\"[cx('pcInputText'), inputClass]\"\n :style=\"inputStyle\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :fluid=\"$fluid\"\n :disabled=\"disabled\"\n :size=\"size\"\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('pcInputText')\"\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 d_value\"\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=\"d_value.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 v-if=\"overlayVisible\" :ref=\"overlayRef\" :id=\"panelId\" :class=\"[cx('overlay'), panelClass, overlayClass]\" :style=\"{ ...panelStyle, ...overlayStyle }\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <slot name=\"header\" :value=\"d_value\" :suggestions=\"visibleOptions\"></slot>\n <div :class=\"cx('listContainer')\" :style=\"{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\" v-bind=\"ptm('listContainer')\">\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\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\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=\"showEmptyMessage && (!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 </div>\n <slot name=\"footer\" :value=\"d_value\" :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: ['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 !this.showEmptyMessage && this.visibleOptions.length === 0 && this.hide();\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 this.formField.onBlur?.();\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.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.d_value || []), 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.$filled) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.d_value.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.d_value || []), 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 event.preventDefault();\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.d_value) && !this.$refs.focusInput.value) {\n const removedValue = this.d_value[this.d_value.length - 1];\n const newValue = this.d_value.slice(0, -1);\n\n this.writeValue(newValue, event);\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.d_value.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.d_value || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.d_value, 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.$filled ? 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.d_value[index];\n const value = this.d_value.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.$filled) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\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 (this.$filled) {\n if (typeof this.d_value === 'object') {\n const label = this.getOptionLabel(this.d_value);\n\n return label != null ? label : this.d_value;\n } else {\n return this.d_value;\n }\n } else {\n return '';\n }\n },\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n equalityKey() {\n // @todo: The 'optionValue' properties can be added.\n return this.dataKey;\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.$filled ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.d_value.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 :name=\"$formName\"\n :class=\"[cx('pcInputText'), inputClass]\"\n :style=\"inputStyle\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :fluid=\"$fluid\"\n :disabled=\"disabled\"\n :size=\"size\"\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('pcInputText')\"\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 d_value\"\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=\"d_value.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 v-if=\"overlayVisible\" :ref=\"overlayRef\" :id=\"panelId\" :class=\"[cx('overlay'), panelClass, overlayClass]\" :style=\"{ ...panelStyle, ...overlayStyle }\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <slot name=\"header\" :value=\"d_value\" :suggestions=\"visibleOptions\"></slot>\n <div :class=\"cx('listContainer')\" :style=\"{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\" v-bind=\"ptm('listContainer')\">\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\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\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=\"showEmptyMessage && (!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 </div>\n <slot name=\"footer\" :value=\"d_value\" :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: ['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 !this.showEmptyMessage && this.visibleOptions.length === 0 && this.hide();\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 this.formField.onBlur?.();\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.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.d_value || []), 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.$filled) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.d_value.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.d_value || []), 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 event.preventDefault();\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.d_value) && !this.$refs.focusInput.value) {\n const removedValue = this.d_value[this.d_value.length - 1];\n const newValue = this.d_value.slice(0, -1);\n\n this.writeValue(newValue, event);\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.d_value.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.d_value || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.d_value, 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.$filled ? 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.d_value[index];\n const value = this.d_value.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.$filled) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\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 (this.$filled) {\n if (typeof this.d_value === 'object') {\n const label = this.getOptionLabel(this.d_value);\n\n return label != null ? label : this.d_value;\n } else {\n return this.d_value;\n }\n } else {\n return '';\n }\n },\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n equalityKey() {\n // @todo: The 'optionValue' properties can be added.\n return this.dataKey;\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.$filled ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.d_value.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","BaseInput","props","suggestions","type","Array","optionLabel","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","String","dropdown","Boolean","dropdownMode","multiple","loading","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","showEmptyMessage","tabindex","typeahead","ariaLabel","ariaLabelledby","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","visibleOptions","length","hide","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","disabled","isOptionDisabled","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","slice","filter","isFocus","$emit","focus","$refs","focusInput","$el","_this2","_hide","_this2$$refs$focusInp","setTimeout","onFocus","event","search","target","value","scrollInView","onBlur","_this$formField$onBlu","_this$formField","formField","call","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","isDropdownClicked","contains","onDropdownClick","originalEvent","isHide","arguments","concat","_toConsumableArray","d_value","onOptionMouseMove","changeFocusedOptionIndex","onOverlayClick","OverlayEventBus","emit","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","isEmpty","$filled","multiContainer","stopPropagation","len","setSelectionRange","shiftKey","isNotEmpty","removedValue","writeValue","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","isInputClicked","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","hasSelectedOption","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","$formName","_normalizeClass","fluid","$fluid","size","invalid","variant","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":";;;;;;;;;;;;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,kBAAkB;AACxB,EAAA,SAAA,EAASC,SAAS;AAClBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,WAAW,EAAE;AACTC,MAAAA,IAAI,EAAEC,KAAK;MACX,SAAS,EAAA;KACZ;AACDC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,cAAc,EAAE,IAAI;AACpBC,IAAAA,gBAAgB,EAAE,IAAI;AACtBC,IAAAA,mBAAmB,EAAE,IAAI;AACzBC,IAAAA,YAAY,EAAE;AACVN,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNR,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACDC,IAAAA,YAAY,EAAE;AACVV,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDI,IAAAA,QAAQ,EAAE;AACNX,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACDG,IAAAA,OAAO,EAAE;AACLZ,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACDI,IAAAA,WAAW,EAAE;AACTb,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDO,IAAAA,OAAO,EAAE;AACLd,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDQ,IAAAA,SAAS,EAAE;AACPf,MAAAA,IAAI,EAAEgB,MAAM;MACZ,SAAS,EAAA;KACZ;AACDC,IAAAA,KAAK,EAAE;AACHjB,MAAAA,IAAI,EAAEgB,MAAM;MACZ,SAAS,EAAA;KACZ;AACDE,IAAAA,QAAQ,EAAE;AACNlB,MAAAA,IAAI,EAAE,CAACO,MAAM,EAAEY,MAAM,CAAC;MACtB,SAAS,EAAA;KACZ;AACDC,IAAAA,cAAc,EAAE;AACZpB,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACDY,IAAAA,eAAe,EAAE;AACbrB,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACDa,IAAAA,OAAO,EAAE;AACLtB,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDgB,IAAAA,UAAU,EAAE;AACRvB,MAAAA,IAAI,EAAEmB,MAAM;MACZ,SAAS,EAAA;KACZ;AACDK,IAAAA,UAAU,EAAE;AACRxB,MAAAA,IAAI,EAAE,CAACO,MAAM,EAAEY,MAAM,CAAC;MACtB,SAAS,EAAA;KACZ;AACDM,IAAAA,UAAU,EAAE;AACRzB,MAAAA,IAAI,EAAEmB,MAAM;MACZ,SAAS,EAAA;KACZ;AACDO,IAAAA,UAAU,EAAE;AACR1B,MAAAA,IAAI,EAAE,CAACO,MAAM,EAAEY,MAAM,CAAC;MACtB,SAAS,EAAA;KACZ;AACDQ,IAAAA,YAAY,EAAE;AACV3B,MAAAA,IAAI,EAAEmB,MAAM;MACZ,SAAS,EAAA;KACZ;AACDS,IAAAA,YAAY,EAAE;AACV5B,MAAAA,IAAI,EAAE,CAACO,MAAM,EAAEY,MAAM,CAAC;MACtB,SAAS,EAAA;KACZ;AACDU,IAAAA,YAAY,EAAE;AACV7B,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDuB,IAAAA,aAAa,EAAE;AACX9B,MAAAA,IAAI,EAAE,CAACO,MAAM,EAAEY,MAAM,CAAC;MACtB,SAAS,EAAA;KACZ;AACDY,IAAAA,MAAM,EAAE;AACJ/B,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDyB,IAAAA,WAAW,EAAE;AACThC,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACD0B,IAAAA,eAAe,EAAE;AACbjC,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACD2B,IAAAA,QAAQ,EAAE;AACNlC,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACD4B,IAAAA,sBAAsB,EAAE;AACpBnC,MAAAA,IAAI,EAAEmB,MAAM;MACZ,SAAS,EAAA;KACZ;AACDiB,IAAAA,eAAe,EAAE;AACbpC,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACD4B,IAAAA,aAAa,EAAE;AACXrC,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACD6B,IAAAA,YAAY,EAAE;AACVtC,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACD8B,IAAAA,YAAY,EAAE;AACVvC,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAASiC,EAAAA;KACZ;AACDC,IAAAA,aAAa,EAAE;AACXzC,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDmC,IAAAA,gBAAgB,EAAE;AACd1C,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDoC,IAAAA,qBAAqB,EAAE;AACnB3C,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDqC,IAAAA,kBAAkB,EAAE;AAChB5C,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACDsC,IAAAA,gBAAgB,EAAE;AACd7C,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACDqC,IAAAA,QAAQ,EAAE;AACN9C,MAAAA,IAAI,EAAEgB,MAAM;MACZ,SAAS,EAAA;KACZ;AACD+B,IAAAA,SAAS,EAAE;AACP/C,MAAAA,IAAI,EAAES,OAAO;MACb,SAAS,EAAA;KACZ;AACDuC,IAAAA,SAAS,EAAE;AACPhD,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;KACZ;AACD0C,IAAAA,cAAc,EAAE;AACZjD,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;AACb;GACH;AACD2C,EAAAA,KAAK,EAAEC,iBAAiB;EACxBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,eAAe,EAAE,IAAI;AACrBC,MAAAA,eAAe,EAAE;KACpB;AACL;AACJ,CAAC;;;;;;;;;ACmBD,aAAe;AACX1D,EAAAA,IAAI,EAAE,cAAc;AACpB,EAAA,SAAA,EAAS2D,QAAgB;AACzBC,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;AAC3LC,EAAAA,MAAM,EAAE;AACJC,IAAAA,QAAQ,EAAE;MAAE,SAAS,EAAA;AAAK;GAC7B;AACDC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,OAAO,EAAE,IAAI;AACbC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,KAAK,EAAE,KAAK;EACZC,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHC,MAAAA,EAAE,EAAE,IAAI,CAACC,MAAM,CAACD,EAAE;AAClBE,MAAAA,OAAO,EAAE,KAAK;AACdC,MAAAA,OAAO,EAAE,KAAK;MACdC,kBAAkB,EAAE,CAAC,CAAC;MACtBC,0BAA0B,EAAE,CAAC,CAAC;AAC9BC,MAAAA,cAAc,EAAE,KAAK;AACrBC,MAAAA,SAAS,EAAE;KACd;GACJ;AACDC,EAAAA,KAAK,EAAE;AACH,IAAA,WAAW,EAAE,SAAbC,QAAWA,CAAYC,QAAQ,EAAE;AAC7B,MAAA,IAAI,CAACV,EAAG,GAAEU,YAAYC,iBAAiB,EAAE;KAC5C;IACDhF,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,IAAI,IAAI,CAAC4E,SAAS,EAAE;QAChB,IAAI,CAACK,IAAI,EAAE;AACX,QAAA,IAAI,CAACR,kBAAiB,GAAI,IAAI,CAACE,cAAe,IAAG,IAAI,CAACtC,kBAAkB,IAAI,CAAC6C,2BAA2B,EAAC,GAAI,CAAC,CAAC;QAC/G,IAAI,CAACN,SAAU,GAAE,KAAK;AACtB,QAAA,CAAC,IAAI,CAAC9B,gBAAe,IAAK,IAAI,CAACqC,cAAc,CAACC,MAAK,KAAM,CAAA,IAAK,IAAI,CAACC,IAAI,EAAE;AAC7E;MAEA,IAAI,CAACC,eAAe,EAAE;AAC1B;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,CAAClB,EAAG,GAAE,IAAI,CAACA,EAAC,IAAKW,iBAAiB,EAAE;IACxC,IAAI,CAACM,eAAe,EAAE;GACzB;EACDE,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,IAAI,CAACb,cAAc,EAAE;MACrB,IAAI,CAACc,YAAY,EAAE;AACvB;GACH;EACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,CAACC,0BAA0B,EAAE;IACjC,IAAI,CAACC,oBAAoB,EAAE;IAE3B,IAAI,IAAI,CAAC7B,aAAa,EAAE;AACpB,MAAA,IAAI,CAACA,aAAa,CAAC8B,OAAO,EAAE;MAC5B,IAAI,CAAC9B,gBAAgB,IAAI;AAC7B;IAEA,IAAI,IAAI,CAACC,OAAO,EAAE;AACd8B,MAAAA,MAAM,CAACC,KAAK,CAAC,IAAI,CAAC/B,OAAO,CAAC;MAC1B,IAAI,CAACA,OAAQ,GAAE,IAAI;AACvB;GACH;AACDgC,EAAAA,OAAO,EAAE;AACLC,IAAAA,cAAc,WAAdA,cAAcA,CAACC,KAAK,EAAEC,EAAE,EAAE;AACtB,MAAA,OAAO,IAAI,CAACC,uBAAwB,GAAEF,KAAM,GAAEC,EAAC,IAAKA,EAAE,CAACD,KAAK,CAAC,CAAC,OAAO,CAAC;KACzE;AACDG,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACC,MAAM,EAAE;AACnB,MAAA,OAAO,IAAI,CAACnG,WAAY,GAAEoG,gBAAgB,CAACD,MAAM,EAAE,IAAI,CAACnG,WAAW,CAAA,GAAImG,MAAM;KAChF;AACDE,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACF,MAAM,EAAE;MACnB,OAAOA,MAAM,CAAA;KAChB;AACDG,IAAAA,kBAAkB,WAAlBA,kBAAkBA,CAACH,MAAM,EAAEJ,KAAK,EAAE;MAC9B,OAAO,CAAC,IAAI,CAACnF,OAAQ,GAAEwF,gBAAgB,CAACD,MAAM,EAAE,IAAI,CAACvF,OAAO,CAAA,GAAI,IAAI,CAACsF,cAAc,CAACC,MAAM,CAAC,IAAI,GAAE,GAAIJ,KAAK;KAC7G;IACDQ,YAAY,EAAA,SAAZA,YAAYA,CAACJ,MAAM,EAAEK,WAAW,EAAET,KAAK,EAAEU,GAAG,EAAE;AAC1C,MAAA,OAAO,IAAI,CAACC,GAAG,CAACD,GAAG,EAAE;AACjBE,QAAAA,OAAO,EAAE;AACLC,UAAAA,QAAQ,EAAE,IAAI,CAACC,UAAU,CAACV,MAAM,CAAC;AACjC9B,UAAAA,OAAO,EAAE,IAAI,CAACC,kBAAiB,KAAM,IAAI,CAACwB,cAAc,CAACC,KAAK,EAAES,WAAW,CAAC;AAC5EM,UAAAA,QAAQ,EAAE,IAAI,CAACC,gBAAgB,CAACZ,MAAM;AAC1C;AACJ,OAAC,CAAC;KACL;AACDY,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACZ,MAAM,EAAE;AACrB,MAAA,OAAO,IAAI,CAAClG,cAAa,GAAImG,gBAAgB,CAACD,MAAM,EAAE,IAAI,CAAClG,cAAc,IAAI,KAAK;KACrF;AACD+G,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACb,MAAM,EAAE;MAClB,OAAO,IAAI,CAACjG,gBAAiB,IAAGiG,MAAM,CAACc,WAAY,IAAGd,MAAM,CAACe,KAAK;KACrE;AACDC,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACF,WAAW,EAAE;AAC7B,MAAA,OAAOb,gBAAgB,CAACa,WAAW,EAAE,IAAI,CAAC/G,gBAAgB,CAAC;KAC9D;AACDkH,IAAAA,sBAAsB,EAAtBA,SAAAA,sBAAsBA,CAACH,WAAW,EAAE;AAChC,MAAA,OAAOb,gBAAgB,CAACa,WAAW,EAAE,IAAI,CAAC9G,mBAAmB,CAAC;KACjE;AACDkH,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAACtB,KAAK,EAAE;AAAA,MAAA,IAAAuB,KAAA,GAAA,IAAA;MACnB,OAAO,CAAC,IAAI,CAACpH,gBAAiB,GAAE6F,KAAI,GAAI,IAAI,CAACf,cAAc,CAACuC,KAAK,CAAC,CAAC,EAAExB,KAAK,CAAC,CAACyB,MAAM,CAAC,UAACrB,MAAM,EAAA;AAAA,QAAA,OAAKmB,KAAI,CAACN,aAAa,CAACb,MAAM,CAAC;AAAA,OAAA,CAAC,CAAClB,MAAO,GAAEc,KAAK,IAAI,CAAC;KACjJ;AACDjB,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAAC2C,OAAO,EAAE;AACV,MAAA,IAAI,CAACC,KAAK,CAAC,aAAa,CAAC;MACzB,IAAI,CAAC1D,KAAM,GAAE,IAAI;MACjB,IAAI,CAACQ,iBAAiB,IAAI;MAC1B,IAAI,CAACF,kBAAmB,GAAE,IAAI,CAACA,kBAAiB,KAAM,CAAC,CAAA,GAAI,IAAI,CAACA,kBAAmB,GAAE,IAAI,CAACpC,eAAgB,GAAE,IAAI,CAAC6C,2BAA2B,EAAG,GAAE,CAAC,CAAC;MACnJ0C,OAAQ,IAAGE,KAAK,CAAC,IAAI,CAAClH,QAAO,GAAI,IAAI,CAACmH,KAAK,CAACC,UAAS,GAAI,IAAI,CAACD,KAAK,CAACC,UAAU,CAACC,GAAG,CAAC;KACtF;AACD5C,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAACuC,OAAO,EAAE;AAAA,MAAA,IAAAM,MAAA,GAAA,IAAA;AACV,MAAA,IAAMC,KAAM,GAAE,SAARA,KAAMA,GAAQ;AAAA,QAAA,IAAAC,qBAAA;AAChBF,QAAAA,MAAI,CAACL,KAAK,CAAC,aAAa,CAAC;QACzBK,MAAI,CAAC/D,KAAM,GAAEyD,OAAO;QACpBM,MAAI,CAACvD,cAAa,GAAI,KAAK;QAC3BuD,MAAI,CAAC3D,UAAU,KAAK;AACpB2D,QAAAA,MAAI,CAACzD,kBAAiB,GAAI,CAAC,CAAC;QAE5BmD,WAAWE,KAAK,CAACI,MAAI,CAACtH,QAAS,GAAEsH,MAAI,CAACH,KAAK,CAACC,UAAW,GAAA,CAAAI,qBAAA,GAAEF,MAAI,CAACH,KAAK,CAACC,UAAU,MAAAI,IAAAA,IAAAA,qBAAA,KAArBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAuBH,GAAG,CAAC;OACvF;AAEDI,MAAAA,UAAU,CAAC,YAAM;AACbF,QAAAA,KAAK,EAAE;AACX,OAAC,EAAE,CAAC,CAAC,CAAA;KACR;AACDG,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACC,KAAK,EAAE;MACX,IAAI,IAAI,CAACtB,QAAQ,EAAE;AACf;AACA,QAAA;AACJ;MAEA,IAAI,CAAC,IAAI,CAAC9C,KAAM,IAAG,IAAI,CAAC7C,eAAe,EAAE;AACrC,QAAA,IAAI,CAACkH,MAAM,CAACD,KAAK,EAAEA,KAAK,CAACE,MAAM,CAACC,KAAK,EAAE,OAAO,CAAC;AACnD;MAEA,IAAI,CAACvE,KAAM,GAAE,IAAI;MACjB,IAAI,CAACK,OAAQ,GAAE,IAAI;MAEnB,IAAI,IAAI,CAACG,cAAc,EAAE;AACrB,QAAA,IAAI,CAACF,kBAAiB,GAAI,IAAI,CAACA,kBAAmB,KAAI,CAAC,CAAE,GAAE,IAAI,CAACA,qBAAqB,IAAI,CAACE,cAAe,IAAG,IAAI,CAACtC,eAAgB,GAAE,IAAI,CAAC6C,2BAA2B,EAAG,GAAE,CAAC,CAAC;AAC1K,QAAA,IAAI,CAACyD,YAAY,CAAC,IAAI,CAAClE,kBAAkB,CAAC;AAC9C;AAEA,MAAA,IAAI,CAACoD,KAAK,CAAC,OAAO,EAAEU,KAAK,CAAC;KAC7B;AACDK,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAACL,KAAK,EAAE;MAAA,IAAAM,qBAAA,EAAAC,eAAA;MACV,IAAI,CAAC3E,KAAI,GAAI,KAAK;MAClB,IAAI,CAACK,UAAU,KAAK;AACpB,MAAA,IAAI,CAACC,kBAAiB,GAAI,CAAC,CAAC;AAC5B,MAAA,IAAI,CAACoD,KAAK,CAAC,MAAM,EAAEU,KAAK,CAAC;AACzB,MAAA,CAAAM,qBAAA,GAAAC,CAAAA,eAAA,GAAI,IAAA,CAACC,SAAS,EAACH,MAAM,MAAAC,IAAAA,IAAAA,qBAAA,eAArBA,qBAAA,CAAAG,IAAA,CAAAF,eAAwB,CAAC;KAC5B;AACDG,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACV,KAAK,EAAE;MACb,IAAI,IAAI,CAACtB,QAAQ,EAAE;QACfsB,KAAK,CAACW,cAAc,EAAE;AAEtB,QAAA;AACJ;MAEA,QAAQX,KAAK,CAACY,IAAI;AACd,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACC,cAAc,CAACb,KAAK,CAAC;AAC1B,UAAA;AAEJ,QAAA,KAAK,SAAS;AACV,UAAA,IAAI,CAACc,YAAY,CAACd,KAAK,CAAC;AACxB,UAAA;AAEJ,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACe,cAAc,CAACf,KAAK,CAAC;AAC1B,UAAA;AAEJ,QAAA,KAAK,YAAY;AACb,UAAA,IAAI,CAACgB,eAAe,CAAChB,KAAK,CAAC;AAC3B,UAAA;AAEJ,QAAA,KAAK,MAAM;AACP,UAAA,IAAI,CAACiB,SAAS,CAACjB,KAAK,CAAC;AACrB,UAAA;AAEJ,QAAA,KAAK,KAAK;AACN,UAAA,IAAI,CAACkB,QAAQ,CAAClB,KAAK,CAAC;AACpB,UAAA;AAEJ,QAAA,KAAK,UAAU;AACX,UAAA,IAAI,CAACmB,aAAa,CAACnB,KAAK,CAAC;AACzB,UAAA;AAEJ,QAAA,KAAK,QAAQ;AACT,UAAA,IAAI,CAACoB,WAAW,CAACpB,KAAK,CAAC;AACvB,UAAA;AAEJ,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,aAAa;AACd,UAAA,IAAI,CAACqB,UAAU,CAACrB,KAAK,CAAC;AACtB,UAAA;AAEJ,QAAA,KAAK,QAAQ;AACT,UAAA,IAAI,CAACsB,WAAW,CAACtB,KAAK,CAAC;AACvB,UAAA;AAEJ,QAAA,KAAK,KAAK;AACN,UAAA,IAAI,CAACuB,QAAQ,CAACvB,KAAK,CAAC;AACpB,UAAA;AAEJ,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAACwB,cAAc,CAACxB,KAAK,CAAC;AAC1B,UAAA;AASR;MAEA,IAAI,CAAChE,UAAU,KAAK;KACvB;AACDyF,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACzB,KAAK,EAAE;AAAA,MAAA,IAAA0B,MAAA,GAAA,IAAA;MACX,IAAI,IAAI,CAACjH,SAAS,EAAE;QAChB,IAAI,IAAI,CAACkB,aAAa,EAAE;AACpBgG,UAAAA,YAAY,CAAC,IAAI,CAAChG,aAAa,CAAC;AACpC;AAEA,QAAA,IAAIiG,KAAM,GAAE5B,KAAK,CAACE,MAAM,CAACC,KAAK;AAE9B,QAAA,IAAI,CAAC,IAAI,CAAC9H,QAAQ,EAAE;AAChB,UAAA,IAAI,CAACwJ,WAAW,CAAC7B,KAAK,EAAE4B,KAAK,CAAC;AAClC;AAEA,QAAA,IAAIA,KAAK,CAAC/E,MAAK,KAAM,CAAC,EAAE;UACpB,IAAI,CAACC,IAAI,EAAE;AACX,UAAA,IAAI,CAACwC,KAAK,CAAC,OAAO,CAAC;AACvB,SAAE,MAAK;AACH,UAAA,IAAIsC,KAAK,CAAC/E,MAAO,IAAG,IAAI,CAACpE,SAAS,EAAE;AAChC,YAAA,IAAI,CAACyD,kBAAiB,GAAI,CAAC,CAAC;AAE5B,YAAA,IAAI,CAACP,aAAc,GAAEmE,UAAU,CAAC,YAAM;cAClC4B,MAAI,CAACzB,MAAM,CAACD,KAAK,EAAE4B,KAAK,EAAE,OAAO,CAAC;AACtC,aAAC,EAAE,IAAI,CAACjJ,KAAK,CAAC;AAClB,WAAE,MAAK;YACH,IAAI,CAACmE,IAAI,EAAE;AACf;AACJ;AACJ;KACH;AACDgF,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAAC9B,KAAK,EAAE;AAAA,MAAA,IAAA+B,MAAA,GAAA,IAAA;MACZ,IAAI,IAAI,CAACjJ,cAAc,EAAE;QACrB,IAAIkJ,KAAM,GAAE,KAAK;;AAEjB;QACA,IAAI,IAAI,CAACpF,kBAAkB,CAAC,IAAI,CAACvE,QAAQ,EAAE;UACvC,IAAI8H,KAAM,GAAE,IAAI,CAAC9H,QAAO,GAAI,IAAI,CAACmH,KAAK,CAACC,UAAU,CAACU,KAAM,GAAE,IAAI,CAACX,KAAK,CAACC,UAAU,CAACC,GAAG,CAACS,KAAK;UACzF,IAAM8B,eAAe,IAAI,CAACrF,cAAc,CAACsF,IAAI,CAAC,UAACnE,MAAM,EAAA;YAAA,OAAKgE,MAAI,CAACI,eAAe,CAACpE,MAAM,EAAEoC,KAAM,IAAG,EAAE,CAAC;WAAC,CAAA;UAEpG,IAAI8B,iBAAiB/H,SAAS,EAAE;AAC5B8H,YAAAA,KAAI,GAAI,IAAI;AACZ,YAAA,CAAC,IAAI,CAACvD,UAAU,CAACwD,YAAY,CAAA,IAAK,IAAI,CAACG,cAAc,CAACpC,KAAK,EAAEiC,YAAY,CAAC;AAC9E;AACJ;QAEA,IAAI,CAACD,KAAK,EAAE;UACR,IAAI,IAAI,CAAC3J,QAAQ,EAAE,IAAI,CAACmH,KAAK,CAACC,UAAU,CAACU,KAAI,GAAI,EAAE,CAAA,KAC9C,IAAI,CAACX,KAAK,CAACC,UAAU,CAACC,GAAG,CAACS,KAAM,GAAE,EAAE;AACzC,UAAA,IAAI,CAACb,KAAK,CAAC,OAAO,CAAC;UACnB,CAAC,IAAI,CAACjH,YAAY,IAAI,CAACwJ,WAAW,CAAC7B,KAAK,EAAE,IAAI,CAAC;AACnD;AACJ;KACH;IACDqC,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;MACvB,IAAI,IAAI,CAAC3D,QAAQ,EAAE;AACf;AACA,QAAA;AACJ;MAEA,IAAI,CAACzC,OAAQ,GAAE,IAAI;KACtB;IACDqG,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,IAAI,CAACnG,0BAA2B,GAAE,CAAC,CAAC;MACpC,IAAI,CAACF,UAAU,KAAK;KACvB;AACDsG,IAAAA,0BAA0B,EAA1BA,SAAAA,0BAA0BA,CAACvC,KAAK,EAAE;MAC9B,IAAI,IAAI,CAACtB,QAAQ,EAAE;QACfsB,KAAK,CAACW,cAAc,EAAE;AAEtB,QAAA;AACJ;MAEA,QAAQX,KAAK,CAACY,IAAI;AACd,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAAC4B,wBAAwB,CAACxC,KAAK,CAAC;AACpC,UAAA;AAEJ,QAAA,KAAK,YAAY;AACb,UAAA,IAAI,CAACyC,yBAAyB,CAACzC,KAAK,CAAC;AACrC,UAAA;AAEJ,QAAA,KAAK,WAAW;AACZ,UAAA,IAAI,CAAC0C,wBAAwB,CAAC1C,KAAK,CAAC;AACpC,UAAA;AAIR;KACH;AACD2C,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC3C,KAAK,EAAE;MACpB,IAAI,CAAChE,OAAQ,GAAE,IAAI;AAEnB,MAAA,IAAI,IAAI,CAAC0C,QAAO,IAAK,IAAI,CAACrC,aAAa,IAAI,CAAC/D,OAAM,IAAK,IAAI,CAACsK,iBAAiB,CAAC5C,KAAK,CAAC,EAAE;AAClF,QAAA;AACJ;AAEA,MAAA,IAAI,CAAC,IAAI,CAACvE,OAAM,IAAK,CAAC,IAAI,CAACA,OAAO,CAACoH,QAAQ,CAAC7C,KAAK,CAACE,MAAM,CAAC,EAAE;AACvDX,QAAAA,KAAK,CAAC,IAAI,CAAClH,QAAS,GAAE,IAAI,CAACmH,KAAK,CAACC,UAAW,GAAE,IAAI,CAACD,KAAK,CAACC,UAAU,CAACC,GAAG,CAAC;AAC5E;KACH;AACDoD,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAC9C,KAAK,EAAE;MACnB,IAAI4B,KAAM,GAAE1H,SAAS;MAErB,IAAI,IAAI,CAACkC,cAAc,EAAE;AACrB,QAAA,IAAI,CAACU,IAAI,CAAC,IAAI,CAAC;AACnB,OAAE,MAAK;AACH,QAAA,IAAIoD,MAAO,GAAE,IAAI,CAAC7H,QAAO,GAAI,IAAI,CAACmH,KAAK,CAACC,UAAW,GAAE,IAAI,CAACD,KAAK,CAACC,UAAU,CAACC,GAAG;QAE9EH,KAAK,CAACW,MAAM,CAAC;QACb0B,KAAM,GAAE1B,MAAM,CAACC,KAAK;AAEpB,QAAA,IAAI,IAAI,CAAC/H,YAAa,KAAI,OAAO,EAAE,IAAI,CAAC6H,MAAM,CAACD,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA,KAChE,IAAI,IAAI,CAAC5H,iBAAiB,SAAS,EAAE,IAAI,CAAC6H,MAAM,CAACD,KAAK,EAAE4B,KAAK,EAAE,UAAU,CAAC;AACnF;AAEA,MAAA,IAAI,CAACtC,KAAK,CAAC,gBAAgB,EAAE;AAAEyD,QAAAA,aAAa,EAAE/C,KAAK;AAAE4B,QAAAA,KAAM,EAANA;AAAM,OAAC,CAAC;KAChE;AACDQ,IAAAA,cAAc,WAAdA,cAAcA,CAACpC,KAAK,EAAEjC,MAAM,EAAiB;AAAA,MAAA,IAAfiF,MAAO,GAAAC,SAAA,CAAApG,MAAA,GAAA,CAAA,IAAAoG,SAAA,CAAA,CAAA,CAAA,KAAA/I,SAAA,GAAA+I,SAAA,CAAA,CAAA,CAAA,GAAE,IAAI;AACvC,MAAA,IAAM9C,KAAM,GAAE,IAAI,CAAClC,cAAc,CAACF,MAAM,CAAC;MAEzC,IAAI,IAAI,CAAC1F,QAAQ,EAAE;AACf,QAAA,IAAI,CAACmH,KAAK,CAACC,UAAU,CAACU,KAAI,GAAI,EAAE;AAEhC,QAAA,IAAI,CAAC,IAAI,CAAC1B,UAAU,CAACV,MAAM,CAAC,EAAE;AAC1B,UAAA,IAAI,CAAC8D,WAAW,CAAC7B,KAAK,EAAA,EAAA,CAAAkD,MAAA,CAAAC,kBAAA,CAAO,IAAI,CAACC,OAAM,IAAK,EAAE,CAAGjD,EAAAA,CAAAA,KAAK,EAAC,CAAC;AAC7D;AACJ,OAAE,MAAK;AACH,QAAA,IAAI,CAAC0B,WAAW,CAAC7B,KAAK,EAAEG,KAAK,CAAC;AAClC;AAEA,MAAA,IAAI,CAACb,KAAK,CAAC,aAAa,EAAE;AAAEyD,QAAAA,aAAa,EAAE/C,KAAK;AAAEG,QAAAA,KAAK,EAAEpC;AAAO,OAAC,CAAC;AAClE,MAAA,IAAI,CAACuB,KAAK,CAAC,eAAe,EAAE;AAAEyD,QAAAA,aAAa,EAAE/C,KAAK;AAAEG,QAAAA,KAAK,EAAEpC;AAAO,OAAC,CAAC;AAEpEiF,MAAAA,UAAU,IAAI,CAAClG,IAAI,CAAC,IAAI,CAAC;KAC5B;AACDuG,IAAAA,iBAAiB,WAAjBA,iBAAiBA,CAACrD,KAAK,EAAErC,KAAK,EAAE;MAC5B,IAAI,IAAI,CAAC3D,YAAY,EAAE;AACnB,QAAA,IAAI,CAACsJ,wBAAwB,CAACtD,KAAK,EAAErC,KAAK,CAAC;AAC/C;KACH;AACD4F,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACvD,KAAK,EAAE;AAClBwD,MAAAA,eAAe,CAACC,IAAI,CAAC,eAAe,EAAE;AAClCV,QAAAA,aAAa,EAAE/C,KAAK;QACpBE,MAAM,EAAE,IAAI,CAACR;AACjB,OAAC,CAAC;KACL;AACDgE,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAAC1D,KAAK,EAAE;MACpB,QAAQA,KAAK,CAACY,IAAI;AACd,QAAA,KAAK,QAAQ;AACT,UAAA,IAAI,CAACU,WAAW,CAACtB,KAAK,CAAC;AACvB,UAAA;AAIR;KACH;AACDa,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACb,KAAK,EAAE;AAClB,MAAA,IAAI,CAAC,IAAI,CAAC5D,cAAc,EAAE;AACtB,QAAA;AACJ;AAEA,MAAA,IAAMuH,WAAY,GAAE,IAAI,CAACzH,uBAAuB,CAAC,IAAI,IAAI,CAAC0H,mBAAmB,CAAC,IAAI,CAAC1H,kBAAkB,CAAA,GAAI,IAAI,CAACF,OAAM,GAAI,IAAI,CAAC6H,oBAAoB,EAAC,GAAI,IAAI,CAAClH,2BAA2B,EAAE;AAExL,MAAA,IAAI,CAAC2G,wBAAwB,CAACtD,KAAK,EAAE2D,WAAW,CAAC;MAEjD3D,KAAK,CAACW,cAAc,EAAE;KACzB;AACDG,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACd,KAAK,EAAE;AAChB,MAAA,IAAI,CAAC,IAAI,CAAC5D,cAAc,EAAE;AACtB,QAAA;AACJ;MAEA,IAAI4D,KAAK,CAAC8D,MAAM,EAAE;AACd,QAAA,IAAI,IAAI,CAAC5H,kBAAiB,KAAM,CAAC,CAAC,EAAE;AAChC,UAAA,IAAI,CAACkG,cAAc,CAACpC,KAAK,EAAE,IAAI,CAACpD,cAAc,CAAC,IAAI,CAACV,kBAAkB,CAAC,CAAC;AAC5E;AAEA,QAAA,IAAI,CAACE,cAAe,IAAG,IAAI,CAACU,IAAI,EAAE;QAClCkD,KAAK,CAACW,cAAc,EAAE;AAC1B,OAAE,MAAK;AACH,QAAA,IAAMgD,WAAY,GAAE,IAAI,CAACzH,kBAAmB,KAAI,CAAC,CAAE,GAAE,IAAI,CAAC6H,mBAAmB,CAAC,IAAI,CAAC7H,kBAAkB,CAAE,GAAE,IAAI,CAACF,UAAU,IAAI,CAACgI,mBAAmB,KAAK,IAAI,CAACC,0BAA0B,EAAE;AAEtL,QAAA,IAAI,CAACX,wBAAwB,CAACtD,KAAK,EAAE2D,WAAW,CAAC;QAEjD3D,KAAK,CAACW,cAAc,EAAE;AAC1B;KACH;AACDI,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACf,KAAK,EAAE;AAClB,MAAA,IAAME,MAAK,GAAIF,KAAK,CAACkE,aAAa;AAElC,MAAA,IAAI,CAAChI,kBAAiB,GAAI,CAAC,CAAC;MAE5B,IAAI,IAAI,CAAC7D,QAAQ,EAAE;QACf,IAAI8L,OAAO,CAACjE,MAAM,CAACC,KAAK,CAAA,IAAK,IAAI,CAACiE,OAAO,EAAE;AACvC7E,UAAAA,KAAK,CAAC,IAAI,CAACC,KAAK,CAAC6E,cAAc,CAAC;AAChC,UAAA,IAAI,CAAClI,0BAAyB,GAAI,IAAI,CAACiH,OAAO,CAACvG,MAAM;AACzD,SAAE,MAAK;AACHmD,UAAAA,KAAK,CAACsE,eAAe,EAAE,CAAE;AAC7B;AACJ;KACH;AACDtD,IAAAA,eAAe,EAAfA,SAAAA,eAAeA,CAAChB,KAAK,EAAE;AACnB,MAAA,IAAI,CAAC9D,kBAAiB,GAAI,CAAC,CAAC;MAE5B,IAAI,CAAC7D,QAAS,IAAG2H,KAAK,CAACsE,eAAe,EAAE,CAAE;KAC7C;AACDrD,IAAAA,SAAS,EAATA,SAAAA,SAASA,CAACjB,KAAK,EAAE;AACb,MAAA,IAAQkE,aAAc,GAAIlE,KAAK,CAAvBkE,aAAc;AACtB,MAAA,IAAMK,GAAE,GAAIL,aAAa,CAAC/D,KAAK,CAACtD,MAAM;AAEtCqH,MAAAA,aAAa,CAACM,iBAAiB,CAAC,CAAC,EAAExE,KAAK,CAACyE,QAAO,GAAIF,GAAE,GAAI,CAAC,CAAC;AAC5D,MAAA,IAAI,CAACrI,kBAAiB,GAAI,CAAC,CAAC;MAE5B8D,KAAK,CAACW,cAAc,EAAE;KACzB;AACDO,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAAClB,KAAK,EAAE;AACZ,MAAA,IAAQkE,aAAc,GAAIlE,KAAK,CAAvBkE,aAAc;AACtB,MAAA,IAAMK,GAAE,GAAIL,aAAa,CAAC/D,KAAK,CAACtD,MAAM;AAEtCqH,MAAAA,aAAa,CAACM,iBAAiB,CAACxE,KAAK,CAACyE,QAAO,GAAI,CAAA,GAAIF,GAAG,EAAEA,GAAG,CAAC;AAC9D,MAAA,IAAI,CAACrI,kBAAiB,GAAI,CAAC,CAAC;MAE5B8D,KAAK,CAACW,cAAc,EAAE;KACzB;AACDS,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACpB,KAAK,EAAE;AACf,MAAA,IAAI,CAACI,YAAY,CAAC,CAAC,CAAC;MACpBJ,KAAK,CAACW,cAAc,EAAE;KACzB;AACDQ,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACnB,KAAK,EAAE;MACjB,IAAI,CAACI,YAAY,CAAC,IAAI,CAACxD,cAAc,CAACC,MAAK,GAAI,CAAC,CAAC;MACjDmD,KAAK,CAACW,cAAc,EAAE;KACzB;AACDU,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACrB,KAAK,EAAE;AACd,MAAA,IAAI,CAAC,IAAI,CAACvF,SAAS,EAAE;QACjB,IAAI,IAAI,CAACpC,QAAQ,EAAE;UACf,IAAI,CAACwJ,WAAW,CAAC7B,KAAK,KAAAkD,MAAA,CAAAC,kBAAA,CAAO,IAAI,CAACC,OAAQ,IAAG,EAAE,CAAGpD,EAAAA,CAAAA,KAAK,CAACE,MAAM,CAACC,KAAK,CAAA,CAAC,CAAC;AACtE,UAAA,IAAI,CAACX,KAAK,CAACC,UAAU,CAACU,KAAI,GAAI,EAAE;AACpC;AACJ,OAAE,MAAK;AACH,QAAA,IAAI,CAAC,IAAI,CAAC/D,cAAc,EAAE;AACtB,UAAA,IAAI,CAACF,qBAAqB,CAAC,CAAC,CAAA;AAC5B,UAAA,IAAI,CAAC2E,cAAc,CAACb,KAAK,CAAC;AAC9B,SAAE,MAAK;AACH,UAAA,IAAI,IAAI,CAAC9D,kBAAiB,KAAM,CAAC,CAAC,EAAE;AAChC,YAAA,IAAI,CAACkG,cAAc,CAACpC,KAAK,EAAE,IAAI,CAACpD,cAAc,CAAC,IAAI,CAACV,kBAAkB,CAAC,CAAC;AAC5E;UAEA,IAAI,CAACY,IAAI,EAAE;AACf;AACJ;MAEAkD,KAAK,CAACW,cAAc,EAAE;KACzB;AACDW,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACtB,KAAK,EAAE;MACf,IAAI,CAAC5D,cAAe,IAAG,IAAI,CAACU,IAAI,CAAC,IAAI,CAAC;MACtCkD,KAAK,CAACW,cAAc,EAAE;KACzB;AACDY,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACvB,KAAK,EAAE;AACZ,MAAA,IAAI,IAAI,CAAC9D,kBAAiB,KAAM,CAAC,CAAC,EAAE;AAChC,QAAA,IAAI,CAACkG,cAAc,CAACpC,KAAK,EAAE,IAAI,CAACpD,cAAc,CAAC,IAAI,CAACV,kBAAkB,CAAC,CAAC;AAC5E;AAEA,MAAA,IAAI,CAACE,cAAe,IAAG,IAAI,CAACU,IAAI,EAAE;KACrC;AACD0E,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACxB,KAAK,EAAE;MAClB,IAAI,IAAI,CAAC3H,QAAQ,EAAE;AACf,QAAA,IAAIqM,UAAU,CAAC,IAAI,CAACtB,OAAO,CAAA,IAAK,CAAC,IAAI,CAAC5D,KAAK,CAACC,UAAU,CAACU,KAAK,EAAE;AAC1D,UAAA,IAAMwE,YAAW,GAAI,IAAI,CAACvB,OAAO,CAAC,IAAI,CAACA,OAAO,CAACvG,MAAK,GAAI,CAAC,CAAC;AAC1D,UAAA,IAAML,QAAS,GAAE,IAAI,CAAC4G,OAAO,CAACjE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1C,UAAA,IAAI,CAACyF,UAAU,CAACpI,QAAQ,EAAEwD,KAAK,CAAC;AAChC,UAAA,IAAI,CAACV,KAAK,CAAC,eAAe,EAAE;AAAEyD,YAAAA,aAAa,EAAE/C,KAAK;AAAEG,YAAAA,KAAK,EAAEwE;AAAa,WAAC,CAAC;AAC1E,UAAA,IAAI,CAACrF,KAAK,CAAC,iBAAiB,EAAE;AAAEyD,YAAAA,aAAa,EAAE/C,KAAK;AAAEG,YAAAA,KAAK,EAAEwE;AAAa,WAAC,CAAC;AAChF;AAEA3E,QAAAA,KAAK,CAACsE,eAAe,EAAE,CAAE;AAC7B;KACH;IACD9B,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AACvB,MAAA,IAAI,CAACrG,6BAA6B,IAAI,CAACA,0BAAyB,GAAI,CAAE,GAAE,IAAI,IAAI,CAACA,0BAA2B,GAAE,CAAC;KAClH;IACDsG,yBAAyB,EAAA,SAAzBA,yBAAyBA,GAAG;MACxB,IAAI,CAACtG,0BAA0B,EAAE;MAEjC,IAAI,IAAI,CAACA,0BAA2B,GAAE,IAAI,CAACiH,OAAO,CAACvG,MAAK,GAAI,CAAC,EAAE;AAC3D,QAAA,IAAI,CAACV,0BAA2B,GAAE,CAAC,CAAC;AACpCoD,QAAAA,KAAK,CAAC,IAAI,CAACC,KAAK,CAACC,UAAU,CAAC;AAChC;KACH;AACDiD,IAAAA,wBAAwB,EAAxBA,SAAAA,wBAAwBA,CAAC1C,KAAK,EAAE;AAC5B,MAAA,IAAI,IAAI,CAAC7D,0BAA2B,KAAI,CAAC,CAAC,EAAE;QACxC,IAAI,CAAC0I,YAAY,CAAC7E,KAAK,EAAE,IAAI,CAAC7D,0BAA0B,CAAC;AAC7D;KACH;AACD2I,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAACC,EAAE,EAAE;AACfxH,MAAAA,MAAM,CAACyH,GAAG,CAAC,SAAS,EAAED,EAAE,EAAE,IAAI,CAACE,SAAS,CAACC,MAAM,CAACC,MAAM,CAAC1J,OAAO,CAAC;MAE/D2J,QAAQ,CAACL,EAAE,EAAE;AAAEM,QAAAA,QAAQ,EAAE,UAAU;AAAEC,QAAAA,GAAG,EAAE,GAAG;AAAEC,QAAAA,IAAI,EAAE;AAAI,OAAC,CAAC;MAC3D,IAAI,CAACrI,YAAY,EAAE;KACtB;IACDsI,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,CAACC,wBAAwB,EAAE;MAC/B,IAAI,CAACC,kBAAkB,EAAE;MACzB,IAAI,CAACC,kBAAkB,EAAE;AAEzB,MAAA,IAAI,CAACrG,KAAK,CAAC,MAAM,CAAC;KACrB;IACDsG,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,IAAI,CAACxI,0BAA0B,EAAE;MACjC,IAAI,CAACyI,oBAAoB,EAAE;MAC3B,IAAI,CAACxI,oBAAoB,EAAE;AAE3B,MAAA,IAAI,CAACiC,KAAK,CAAC,MAAM,CAAC;MAClB,IAAI,CAAC7D,OAAQ,GAAE,IAAI;KACtB;AACDqK,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACf,EAAE,EAAE;AACpBxH,MAAAA,MAAM,CAACC,KAAK,CAACuH,EAAE,CAAC;KACnB;IACD7H,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAIgD,MAAO,GAAE,IAAI,CAAC7H,QAAS,GAAE,IAAI,CAACmH,KAAK,CAAC6E,iBAAiB,IAAI,CAAC7E,KAAK,CAACC,UAAU,CAACC,GAAG;AAElF,MAAA,IAAI,IAAI,CAAC9G,QAAO,KAAM,MAAM,EAAE;AAC1BmN,QAAAA,gBAAgB,CAAC,IAAI,CAACtK,OAAO,EAAEyE,MAAM,CAAC;AAC1C,OAAE,MAAK;AACH,QAAA,IAAI,CAACzE,OAAO,CAACb,KAAK,CAACoL,QAAO,GAAIC,aAAa,CAAC/F,MAAM,IAAI,IAAI;AAC1DgG,QAAAA,gBAAgB,CAAC,IAAI,CAACzK,OAAO,EAAEyE,MAAM,CAAC;AAC1C;KACH;IACDuF,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAAU,MAAA,GAAA,IAAA;AACvB,MAAA,IAAI,CAAC,IAAI,CAAC7K,oBAAoB,EAAE;AAC5B,QAAA,IAAI,CAACA,oBAAqB,GAAE,UAAC0E,KAAK,EAAK;AACnC,UAAA,IAAImG,MAAI,CAAC/J,cAAa,IAAK+J,MAAI,CAAC1K,OAAQ,IAAG0K,MAAI,CAACC,gBAAgB,CAACpG,KAAK,CAAC,EAAE;YACrEmG,MAAI,CAACrJ,IAAI,EAAE;AACf;SACH;QAEDuJ,QAAQ,CAACC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAChL,oBAAoB,CAAC;AACjE;KACH;IACD8B,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAAC9B,oBAAoB,EAAE;QAC3B+K,QAAQ,CAACE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACjL,oBAAoB,CAAC;QAChE,IAAI,CAACA,oBAAmB,GAAI,IAAI;AACpC;KACH;IACDoK,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAc,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAAChL,aAAa,EAAE;AACrB,QAAA,IAAI,CAACA,aAAY,GAAI,IAAIiL,6BAA6B,CAAC,IAAI,CAACjH,KAAK,CAACkH,SAAS,EAAE,YAAM;UAC/E,IAAIF,MAAI,CAACpK,cAAc,EAAE;YACrBoK,MAAI,CAAC1J,IAAI,EAAE;AACf;AACJ,SAAC,CAAC;AACN;AAEA,MAAA,IAAI,CAACtB,aAAa,CAACkK,kBAAkB,EAAE;KAC1C;IACDG,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACrK,aAAa,EAAE;AACpB,QAAA,IAAI,CAACA,aAAa,CAACqK,oBAAoB,EAAE;AAC7C;KACH;IACDF,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAgB,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACpL,cAAc,EAAE;QACtB,IAAI,CAACA,iBAAiB,YAAM;UACxB,IAAIoL,MAAI,CAACvK,cAAa,IAAK,CAACwK,aAAa,EAAE,EAAE;YACzCD,MAAI,CAAC7J,IAAI,EAAE;AACf;SACH;QAED+J,MAAM,CAACP,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC/K,cAAc,CAAC;AAC1D;KACH;IACD8B,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAAC9B,cAAc,EAAE;QACrBsL,MAAM,CAACN,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAChL,cAAc,CAAC;QACzD,IAAI,CAACA,iBAAiB,IAAI;AAC9B;KACH;AACD6K,IAAAA,gBAAgB,EAAhBA,SAAAA,gBAAgBA,CAACpG,KAAK,EAAE;MACpB,OAAO,CAAC,IAAI,CAACvE,OAAO,CAACoH,QAAQ,CAAC7C,KAAK,CAACE,MAAM,KAAK,CAAC,IAAI,CAAC4G,cAAc,CAAC9G,KAAK,KAAK,CAAC,IAAI,CAAC4C,iBAAiB,CAAC5C,KAAK,CAAC;KAC/G;AACD8G,IAAAA,cAAc,EAAdA,SAAAA,cAAcA,CAAC9G,KAAK,EAAE;AAClB,MAAA,IAAI,IAAI,CAAC3H,QAAQ,EAAE,OAAO2H,KAAK,CAACE,WAAW,IAAI,CAACV,KAAK,CAAC6E,cAAa,IAAK,IAAI,CAAC7E,KAAK,CAAC6E,cAAc,CAACxB,QAAQ,CAAC7C,KAAK,CAACE,MAAM,CAAC,CAAA,KACnH,OAAOF,KAAK,CAACE,MAAO,KAAI,IAAI,CAACV,KAAK,CAACC,UAAU,CAACC,GAAG;KACzD;AACDkD,IAAAA,iBAAiB,EAAjBA,SAAAA,iBAAiBA,CAAC5C,KAAK,EAAE;AACrB,MAAA,OAAO,IAAI,CAACR,KAAK,CAACuH,cAAa,GAAI/G,KAAK,CAACE,MAAO,KAAI,IAAI,CAACV,KAAK,CAACuH,cAAa,IAAK,IAAI,CAACvH,KAAK,CAACuH,cAAc,CAAClE,QAAQ,CAAC7C,KAAK,CAACE,MAAM,CAAA,GAAI,KAAK;KAC5I;AACDiC,IAAAA,eAAe,WAAfA,eAAeA,CAACpE,MAAM,EAAEoC,KAAK,EAAE;AAAA,MAAA,IAAA6G,oBAAA;AAC3B,MAAA,OAAO,IAAI,CAACC,aAAa,CAAClJ,MAAM,CAAA,IAAK,CAAAiJ,CAAAA,oBAAA,OAAI,CAAClJ,cAAc,CAACC,MAAM,CAAC,MAAAiJ,IAAAA,IAAAA,oBAAA,KAA3BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAA6BE,iBAAiB,CAAC,IAAI,CAACjN,YAAY,CAAA,MAAMkG,KAAK,CAAC+G,iBAAiB,CAAC,IAAI,CAACjN,YAAY,CAAC;KACxJ;AACDgN,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAAClJ,MAAM,EAAE;AAClB,MAAA,OAAO2G,UAAU,CAAC3G,MAAM,KAAK,EAAE,IAAI,CAACY,gBAAgB,CAACZ,MAAM,KAAK,IAAI,CAACa,aAAa,CAACb,MAAM,CAAC,CAAC;KAC9F;AACDoJ,IAAAA,qBAAqB,EAArBA,SAAAA,qBAAqBA,CAACpJ,MAAM,EAAE;AAC1B,MAAA,OAAO,IAAI,CAACkJ,aAAa,CAAClJ,MAAM,CAAE,IAAG,IAAI,CAACU,UAAU,CAACV,MAAM,CAAC;KAC/D;AACDqJ,IAAAA,QAAQ,WAARA,QAAQA,CAACC,MAAM,EAAEC,MAAM,EAAE;MACrB,OAAOC,MAAM,CAACF,MAAM,EAAEC,MAAM,EAAE,IAAI,CAACE,WAAW,CAAC;KAClD;AACD/I,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACV,MAAM,EAAE;AAAA,MAAA,IAAA0J,MAAA,GAAA,IAAA;AACf,MAAA,IAAMC,WAAU,GAAI,IAAI,CAACzJ,cAAc,CAACF,MAAM,CAAC;AAE/C,MAAA,OAAO,IAAI,CAAC1F,QAAO,GAAI,CAAC,IAAI,CAAC+K,WAAW,EAAE,EAAEuE,IAAI,CAAC,UAACxH,KAAK,EAAA;AAAA,QAAA,OAAKsH,MAAI,CAACL,QAAQ,CAACjH,KAAK,EAAEuH,WAAW,CAAC;AAAA,OAAA,CAAA,GAAI,IAAI,CAACN,QAAQ,CAAC,IAAI,CAAChE,OAAO,EAAE,IAAI,CAACnF,cAAc,CAACF,MAAM,CAAC,CAAC;KAC5J;IACD8F,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AAAA,MAAA,IAAA+D,MAAA,GAAA,IAAA;AACnB,MAAA,OAAO,IAAI,CAAChL,cAAc,CAACiL,SAAS,CAAC,UAAC9J,MAAM,EAAA;AAAA,QAAA,OAAK6J,MAAI,CAACX,aAAa,CAAClJ,MAAM,CAAC;OAAC,CAAA;KAC/E;IACDiG,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;AAAA,MAAA,IAAA8D,OAAA,GAAA,IAAA;AAClB,MAAA,OAAOC,aAAa,CAAC,IAAI,CAACnL,cAAc,EAAE,UAACmB,MAAM,EAAA;AAAA,QAAA,OAAK+J,OAAI,CAACb,aAAa,CAAClJ,MAAM,CAAC;OAAC,CAAA;KACpF;AACD6F,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACjG,KAAK,EAAE;AAAA,MAAA,IAAAqK,OAAA,GAAA,IAAA;MACvB,IAAMC,kBAAiB,GAAItK,KAAM,GAAE,IAAI,CAACf,cAAc,CAACC,MAAO,GAAE,CAAE,GAAE,IAAI,CAACD,cAAc,CAACuC,KAAK,CAACxB,KAAI,GAAI,CAAC,CAAC,CAACkK,SAAS,CAAC,UAAC9J,MAAM,EAAA;AAAA,QAAA,OAAKiK,OAAI,CAACf,aAAa,CAAClJ,MAAM,CAAC;OAAE,CAAA,GAAE,CAAC,CAAC;MAE/J,OAAOkK,kBAAiB,GAAI,CAAC,CAAE,GAAEA,kBAAmB,GAAEtK,KAAM,GAAE,CAAE,GAAEA,KAAK;KAC1E;AACDoG,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACpG,KAAK,EAAE;AAAA,MAAA,IAAAuK,OAAA,GAAA,IAAA;MACvB,IAAMD,kBAAiB,GAAItK,KAAI,GAAI,CAAE,GAAEoK,aAAa,CAAC,IAAI,CAACnL,cAAc,CAACuC,KAAK,CAAC,CAAC,EAAExB,KAAK,CAAC,EAAE,UAACI,MAAM,EAAA;AAAA,QAAA,OAAKmK,OAAI,CAACjB,aAAa,CAAClJ,MAAM,CAAC;OAAA,CAAA,GAAI,CAAC,CAAC;AAEtI,MAAA,OAAOkK,kBAAiB,GAAI,CAAC,IAAIA,kBAAiB,GAAItK,KAAK;KAC9D;IACDwK,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA;MACtB,OAAO,IAAI,CAAChE,UAAU,IAAI,CAACxH,cAAc,CAACiL,SAAS,CAAC,UAAC9J,MAAM,EAAA;AAAA,QAAA,OAAKqK,OAAI,CAACjB,qBAAqB,CAACpJ,MAAM,CAAC;OAAA,CAAA,GAAI,CAAC,CAAC;KAC3G;IACDpB,2BAA2B,EAAA,SAA3BA,2BAA2BA,GAAG;AAC1B,MAAA,IAAM0L,gBAAgB,IAAI,CAACF,uBAAuB,EAAE;MAEpD,OAAOE,aAAY,GAAI,CAAA,GAAI,IAAI,CAACxE,oBAAoB,EAAC,GAAIwE,aAAa;KACzE;IACDpE,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;AACzB,MAAA,IAAMoE,gBAAgB,IAAI,CAACF,uBAAuB,EAAE;MAEpD,OAAOE,aAAY,GAAI,CAAA,GAAI,IAAI,CAACrE,mBAAmB,EAAG,GAAEqE,aAAa;KACxE;IACDpI,MAAM,EAAA,SAANA,MAAMA,CAACD,KAAK,EAAE4B,KAAK,EAAE0G,MAAM,EAAE;AACzB;AACA,MAAA,IAAI1G,KAAI,KAAM1H,SAAU,IAAG0H,KAAM,KAAI,IAAI,EAAE;AACvC,QAAA;AACJ;;AAEA;AACA,MAAA,IAAI0G,MAAO,KAAI,OAAM,IAAK1G,KAAK,CAAC2G,IAAI,EAAE,CAAC1L,MAAK,KAAM,CAAC,EAAE;AACjD,QAAA;AACJ;MAEA,IAAI,CAACR,SAAQ,GAAI,IAAI;AACrB,MAAA,IAAI,CAACiD,KAAK,CAAC,UAAU,EAAE;AAAEyD,QAAAA,aAAa,EAAE/C,KAAK;AAAE4B,QAAAA,KAAM,EAANA;AAAM,OAAC,CAAC;KAC1D;AACDiD,IAAAA,YAAY,WAAZA,YAAYA,CAAC7E,KAAK,EAAErC,KAAK,EAAE;AAAA,MAAA,IAAA6K,OAAA,GAAA,IAAA;AACvB,MAAA,IAAMC,aAAc,GAAE,IAAI,CAACrF,OAAO,CAACzF,KAAK,CAAC;MACzC,IAAMwC,KAAI,GAAI,IAAI,CAACiD,OAAO,CAAChE,MAAM,CAAC,UAACsJ,CAAC,EAAEC,CAAC,EAAA;QAAA,OAAKA,CAAA,KAAMhL,KAAK;AAAA,OAAA,CAAC,CAACiL,GAAG,CAAC,UAAC7K,MAAM,EAAA;AAAA,QAAA,OAAKyK,OAAI,CAACvK,cAAc,CAACF,MAAM,CAAC;OAAC,CAAA;AAErG,MAAA,IAAI,CAAC8D,WAAW,CAAC7B,KAAK,EAAEG,KAAK,CAAC;AAC9B,MAAA,IAAI,CAACb,KAAK,CAAC,eAAe,EAAE;AAAEyD,QAAAA,aAAa,EAAE/C,KAAK;AAAEG,QAAAA,KAAK,EAAEsI;AAAc,OAAC,CAAC;AAC3E,MAAA,IAAI,CAACnJ,KAAK,CAAC,iBAAiB,EAAE;AAAEyD,QAAAA,aAAa,EAAE/C,KAAK;AAAEG,QAAAA,KAAK,EAAEsI;AAAc,OAAC,CAAC;MAC7E,IAAI,CAAC7M,KAAM,GAAE,IAAI;AACjB2D,MAAAA,KAAK,CAAC,IAAI,CAAClH,QAAS,GAAE,IAAI,CAACmH,KAAK,CAACC,UAAW,GAAE,IAAI,CAACD,KAAK,CAACC,UAAU,CAACC,GAAG,CAAC;KAC3E;AACD4D,IAAAA,wBAAwB,WAAxBA,wBAAwBA,CAACtD,KAAK,EAAErC,KAAK,EAAE;AACnC,MAAA,IAAI,IAAI,CAACzB,kBAAiB,KAAMyB,KAAK,EAAE;QACnC,IAAI,CAACzB,kBAAmB,GAAEyB,KAAK;QAC/B,IAAI,CAACyC,YAAY,EAAE;QAEnB,IAAI,IAAI,CAACrG,aAAa,EAAE;AACpB,UAAA,IAAI,CAACqI,cAAc,CAACpC,KAAK,EAAE,IAAI,CAACpD,cAAc,CAACe,KAAK,CAAC,EAAE,KAAK,CAAC;AACjE;AACJ;KACH;IACDyC,YAAY,EAAA,SAAZA,YAAYA,GAAa;AAAA,MAAA,IAAAyI,OAAA,GAAA,IAAA;AAAA,MAAA,IAAZlL,4EAAQ,CAAC,CAAC;MACnB,IAAI,CAACmL,SAAS,CAAC,YAAM;AACjB,QAAA,IAAMhN,EAAG,GAAE6B,KAAM,KAAI,CAAC,CAAA,MAAAuF,MAAA,CAAO2F,OAAI,CAAC/M,EAAE,OAAAoH,MAAA,CAAIvF,KAAK,CAAKkL,GAAAA,OAAI,CAACE,eAAe;AACtE,QAAA,IAAMC,OAAM,GAAIC,UAAU,CAACJ,OAAI,CAACK,IAAI,EAAA,UAAA,CAAAhG,MAAA,CAAYpH,EAAE,EAAA,KAAA,CAAI,CAAC;AAEvD,QAAA,IAAIkN,OAAO,EAAE;AACTA,UAAAA,OAAO,CAACG,kBAAkBH,OAAO,CAACG,cAAc,CAAC;AAAEC,YAAAA,KAAK,EAAE,SAAS;AAAEC,YAAAA,MAAM,EAAE;AAAQ,WAAC,CAAC;AAC3F,SAAA,MAAO,IAAI,CAACR,OAAI,CAAChL,uBAAuB,EAAE;AACtCgL,UAAAA,OAAI,CAACnN,eAAc,IAAKmN,OAAI,CAACnN,eAAe,CAAC4N,aAAa,CAAC3L,UAAU,CAAC,CAAA,GAAIA,KAAM,GAAEkL,OAAI,CAAC3M,kBAAkB,CAAC;AAC9G;AACJ,OAAC,CAAC;KACL;IACDa,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,IAAI,IAAI,CAAChD,aAAY,IAAK,IAAI,CAACD,eAAgB,IAAG,CAAC,IAAI,CAACsK,OAAO,EAAE;AAC7D,QAAA,IAAI,CAAClI,kBAAiB,GAAI,IAAI,CAACS,2BAA2B,EAAE;AAC5D,QAAA,IAAI,CAACyF,cAAc,CAAC,IAAI,EAAE,IAAI,CAACxF,cAAc,CAAC,IAAI,CAACV,kBAAkB,CAAC,EAAE,KAAK,CAAC;AAClF;KACH;AACD2F,IAAAA,WAAW,WAAXA,WAAWA,CAAC7B,KAAK,EAAEG,KAAK,EAAE;AACtB,MAAA,IAAI,CAACyE,UAAU,CAACzE,KAAK,EAAEH,KAAK,CAAC;AAC7B,MAAA,IAAI,CAACV,KAAK,CAAC,QAAQ,EAAE;AAAEyD,QAAAA,aAAa,EAAE/C,KAAK;AAAEG,QAAAA,KAAM,EAANA;AAAM,OAAC,CAAC;KACxD;AACDoJ,IAAAA,WAAW,EAAXA,SAAAA,WAAWA,CAACC,OAAO,EAAE;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA;AACjB,MAAA,OAAO,CAACD,OAAQ,IAAG,EAAE,EAAEE,MAAM,CAAC,UAACC,MAAM,EAAE5L,MAAM,EAAEJ,KAAK,EAAK;QACrDgM,MAAM,CAACC,IAAI,CAAC;AAAE/K,UAAAA,WAAW,EAAEd,MAAM;AAAEe,UAAAA,KAAK,EAAE,IAAI;AAAEnB,UAAAA,KAAM,EAANA;AAAM,SAAC,CAAC;AAExD,QAAA,IAAM5F,mBAAkB,GAAI0R,OAAI,CAACzK,sBAAsB,CAACjB,MAAM,CAAC;AAE/DhG,QAAAA,mBAAoB,IAAGA,mBAAmB,CAAC8R,OAAO,CAAC,UAACC,CAAC,EAAA;AAAA,UAAA,OAAKH,MAAM,CAACC,IAAI,CAACE,CAAC,CAAC;SAAC,CAAA;AAEzE,QAAA,OAAOH,MAAM;OAChB,EAAE,EAAE,CAAC;KACT;AACDI,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAAChF,EAAE,EAAE;MACX,IAAI,CAACtJ,OAAQ,GAAEsJ,EAAE;KACpB;AACDiF,IAAAA,OAAO,WAAPA,OAAOA,CAACjF,EAAE,EAAEkF,UAAU,EAAE;MACpB,IAAI,CAACf,IAAG,GAAInE,EAAE;AACdkF,MAAAA,UAAW,IAAGA,UAAU,CAAClF,EAAE,CAAC;KAC/B;AACDmF,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACnF,EAAE,EAAE;MACnB,IAAI,CAACrJ,eAAc,GAAIqJ,EAAE;AAC7B;GACH;AACDoF,EAAAA,QAAQ,EAAE;IACNvN,cAAc,EAAA,SAAdA,cAAcA,GAAG;AACb,MAAA,OAAO,IAAI,CAAC9E,gBAAe,GAAI,IAAI,CAACyR,WAAW,CAAC,IAAI,CAAC9R,WAAW,CAAA,GAAI,IAAI,CAACA,eAAe,EAAE;KAC7F;IACD2S,UAAU,EAAA,SAAVA,UAAUA,GAAG;MACT,IAAI,IAAI,CAAChG,OAAO,EAAE;AACd,QAAA,IAAIiG,SAAA,CAAO,IAAI,CAACjH,OAAQ,CAAA,KAAI,QAAQ,EAAE;UAClC,IAAMkH,KAAI,GAAI,IAAI,CAACxM,cAAc,CAAC,IAAI,CAACsF,OAAO,CAAC;UAE/C,OAAOkH,SAAS,IAAK,GAAEA,KAAM,GAAE,IAAI,CAAClH,OAAO;AAC/C,SAAE,MAAK;UACH,OAAO,IAAI,CAACA,OAAO;AACvB;AACJ,OAAE,MAAK;AACH,QAAA,OAAO,EAAE;AACb;KACH;AACD;IACAmH,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;MAChB,OAAO,IAAI,CAACnG,OAAO;KACtB;IACDoD,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACV;MACA,OAAO,IAAI,CAAChP,OAAO;KACtB;IACDgS,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO9F,UAAU,CAAC,IAAI,CAAC9H,cAAc,CAAE,IAAG,IAAI,CAACR,cAAe,GAAE,IAAI,CAACqO,iBAAiB,CAACC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC9N,cAAc,CAACC,MAAM,CAAE,GAAE,IAAI,CAAC8N,sBAAsB;KACrK;IACDF,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;AAChB,MAAA,OAAO,IAAI,CAACtQ,iBAAiB,IAAI,CAAC8K,SAAS,CAACC,MAAM,CAAC0F,MAAM,CAACzQ,aAAY,IAAK,EAAE;KAChF;IACDwQ,sBAAsB,EAAA,SAAtBA,sBAAsBA,GAAG;AACrB,MAAA,OAAO,IAAI,CAACrQ,kBAAmB,IAAG,IAAI,CAAC2K,SAAS,CAACC,MAAM,CAAC0F,MAAM,CAACtQ,sBAAsB,EAAE;KAC1F;IACDuQ,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;AACnB,MAAA,OAAO,IAAI,CAACzQ,oBAAoB,IAAI,CAAC6K,SAAS,CAACC,MAAM,CAAC0F,MAAM,CAACxQ,gBAAe,IAAK,EAAE;KACtF;IACD0Q,yBAAyB,EAAA,SAAzBA,yBAAyBA,GAAG;AACxB,MAAA,OAAO,IAAI,CAACzQ,qBAAoB,IAAK,IAAI,CAAC4K,SAAS,CAACC,MAAM,CAAC0F,MAAM,CAACvQ,yBAAyB,EAAE;KAChG;IACD0Q,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,OAAO,IAAI,CAAC3G,OAAQ,GAAE,IAAI,CAACyG,oBAAoB,CAACH,UAAU,CAAC,KAAK,EAAE,IAAI,CAACrS,QAAO,GAAI,IAAI,CAAC+K,OAAO,CAACvG,MAAK,GAAI,GAAG,CAAA,GAAI,IAAI,CAACiO,yBAAyB;KAChJ;IACDE,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,OAAO,IAAI,CAAC/F,SAAS,CAACC,MAAM,CAAC0F,MAAM,CAACK,IAAK,GAAE,IAAI,CAAChG,SAAS,CAACC,MAAM,CAAC0F,MAAM,CAACK,IAAI,CAACC,YAAYhR,SAAS;KACrG;IACD6O,eAAe,EAAA,SAAfA,eAAeA,GAAG;AACd,MAAA,OAAO,IAAI,CAAC7M,kBAAiB,KAAM,CAAC,CAAA,MAAAgH,MAAA,CAAO,IAAI,CAACpH,EAAE,OAAAoH,MAAA,CAAI,IAAI,CAAChH,kBAAkB,IAAK,IAAI;KACzF;IACDiP,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;AACtB,MAAA,OAAO,IAAI,CAAChP,0BAAyB,KAAM,CAAC,cAAO,IAAI,CAACL,EAAE,uBAAAoH,MAAA,CAAoB,IAAI,CAAC/G,0BAA0B,IAAK,IAAI;KACzH;IACDiP,WAAW,EAAA,SAAXA,WAAWA,GAAG;AAAA,MAAA,IAAAC,OAAA,GAAA,IAAA;AACV,MAAA,OAAO,IAAI,CAACzO,cAAc,CAACwC,MAAM,CAAC,UAACrB,MAAM,EAAA;AAAA,QAAA,OAAK,CAACsN,OAAI,CAACzM,aAAa,CAACb,MAAM,CAAC;AAAA,OAAA,CAAC,CAAClB,MAAM;KACpF;IACDgB,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;MACtB,OAAO,CAAC,IAAI,CAAChE,sBAAsB;KACtC;IACDyR,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,MAAA,OAAO,IAAI,CAACxP,EAAG,GAAE,QAAQ;AAC7B;GACH;AACDyP,EAAAA,UAAU,EAAE;AACRC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,WAAW,EAAXA,WAAW;AACXC,IAAAA,IAAG,EAAHA;GACH;AACDC,EAAAA,UAAU,EAAE;AACRC,IAAAA,MAAM,EAAEC;AACZ;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;ECv+BG,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAoLK,OApLLC,UAoLK,CAAA;AApLAC,IAAAA,GAAG,EAAC;AAAa,IAAA,OAAA,EAAOC,IAAE,CAAAC,EAAA,CAAA,MAAA,CAAA;AAAW1R,IAAAA,KAAK,EAAEyR,IAAE,CAAAE,EAAA,CAAA,MAAA,CAAA;IAAWC,OAAK;aAAEC,QAAgB,CAAA9J,gBAAA,IAAA8J,QAAA,CAAA9J,gBAAA,CAAA+J,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;KAAA;KAAUoJ,IAAI,CAAAM,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,EAEpFN,IAAQ,CAAAhU,QAAA,iBADnBuU,WAgCC,CAAAC,oBAAA,EAAA;;AA9BGT,IAAAA,GAAG,EAAC,YAAW;IACdtQ,EAAE,EAAEuQ,IAAO,CAAArT,OAAA;AACZtB,IAAAA,IAAI,EAAC,MAAK;IACTJ,IAAI,EAAE+U,IAAS,CAAAS,SAAA;AACf,IAAA,OAAA,EAAKC,cAAA,CAAA,CAAGV,IAAE,CAAAC,EAAA,CAAA,aAAA,CAAA,EAAiBD,IAAU,CAAAnT,UAAA,CAAA,CAAA;AACrC0B,IAAAA,KAAK,iBAAEyR,IAAU,CAAApT,UAAA,CAAA;IACjBkH,KAAK,EAAEsM,QAAU,CAAArC,UAAA;IACjB7R,WAAW,EAAE8T,IAAW,CAAA9T,WAAA;IACxBiC,QAAQ,EAAA,CAAG6R,IAAO,CAAA3N,QAAA,GAAI2N,IAAS,CAAA7R,QAAA,GAAA,CAAA,CAAA;IAC/BwS,KAAK,EAAEX,IAAM,CAAAY,MAAA;IACbvO,QAAQ,EAAE2N,IAAQ,CAAA3N,QAAA;IAClBwO,IAAI,EAAEb,IAAI,CAAAa,IAAA;IACVC,OAAO,EAAEd,IAAO,CAAAc,OAAA;IAChBC,OAAO,EAAEf,IAAO,CAAAe,OAAA;AACjBC,IAAAA,YAAY,EAAC,KAAI;AACjBC,IAAAA,IAAI,EAAC,UAAS;IACb,YAAU,EAAEjB,IAAS,CAAA3R,SAAA;IACrB,iBAAe,EAAE2R,IAAc,CAAA1R,cAAA;AAChC,IAAA,eAAa,EAAC,SAAQ;AACtB,IAAA,mBAAiB,EAAC,MAAK;IACtB,eAAa,EAAE4S,KAAc,CAAAnR,cAAA;IAC7B,eAAa,EAAEqQ,QAAO,CAAAnB,OAAA;IACtB,uBAAqB,EAAEiC,KAAA,CAAAtR,OAAM,GAAIwQ,QAAA,CAAA1D,eAAgB,GAAE7O,SAAS;IAC5D6F,OAAK,EAAE0M,QAAO,CAAA1M,OAAA;IACdM,MAAI,EAAEoM,QAAM,CAAApM,MAAA;IACZmN,SAAO,EAAEf,QAAS,CAAA/L,SAAA;IAClBe,OAAK,EAAEgL,QAAO,CAAAhL,OAAA;IACdK,QAAM,EAAE2K,QAAQ,CAAA3K,QAAA;IAChB2L,QAAQ,EAAEpB,IAAQ,CAAAoB,QAAA;AAClBC,IAAAA,EAAE,EAAErB,IAAG,CAAA/N,GAAA,CAAA,aAAA;+UAGF+N,IAAQ,CAAAhU,QAAA,IADlB4T,SAAA,EAAA,EAAAC,kBAAA,CA8DI,MA9DJC,UA8DI,CAAA;;AA5DAC,IAAAA,GAAG,EAAC,gBAAe;AAClB,IAAA,OAAA,EAAOC,IAAE,CAAAC,EAAA,CAAA,eAAA,CAAA;AACV9R,IAAAA,QAAQ,EAAC,IAAG;AACZ8S,IAAAA,IAAI,EAAC,SAAQ;AACb,IAAA,kBAAgB,EAAC,YAAW;IAC3B,uBAAqB,EAAEC,KAAA,CAAAtR,OAAQ,GAAEwQ,QAAA,CAAAtB,uBAAsB,GAAIjR,SAAS;IACpE6F,OAAK;aAAE0M,QAAwB,CAAApK,wBAAA,IAAAoK,QAAA,CAAApK,wBAAA,CAAAqK,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;AAAA,KAAA,CAAA;IAC/B5C,MAAI;aAAEoM,QAAuB,CAAAnK,uBAAA,IAAAmK,QAAA,CAAAnK,uBAAA,CAAAoK,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;AAAA,KAAA,CAAA;IAC7BuK,SAAO;aAAEf,QAA0B,CAAAlK,0BAAA,IAAAkK,QAAA,CAAAlK,0BAAA,CAAAmK,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;KAAA;KAC5BoJ,IAAG,CAAA/N,GAAA,CAAA,eAAA,CAAA,CAAA,EAAA,EAEX2N,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAoBIyB,QAnBsB,EAAA,IAAA,EAAAC,UAAA,CAAAvB,IAAA,CAAAjJ,OAAO,EAArB,UAAArF,MAAM,EAAE4K,CAAC,EAAA;IADrB,OAAAsD,SAAA,EAAA,EAAAC,kBAAA,CAoBI,MApBJC,UAoBI,CAAA;AAlBC9N,MAAAA,GAAG,EAAA6E,EAAAA,CAAAA,MAAA,CAAKyF,CAAC,EAAAzF,GAAAA,CAAAA,CAAAA,MAAA,CAAIuJ,QAAA,CAAA3O,cAAc,CAACC,MAAM,CAAA,CAAA;AAClCjC,MAAAA,EAAE,EAAEyR,KAAG,CAAAzR,EAAA,GAAA,mBAAA,GAAwB6M,CAAC;AAChC,MAAA,OAAA,EAAO0D,IAAE,CAAAC,EAAA,CAAA,UAAA,EAAA;AAAe3D,QAAAA,CAAE,EAAFA;AAAE,OAAA,CAAA;AAC3B2E,MAAAA,IAAI,EAAC,QAAO;AACX,MAAA,YAAU,EAAEb,QAAc,CAAA3O,cAAA,CAACC,MAAM,CAAA;AACjC,MAAA,eAAa,EAAE,IAAI;AACnB,MAAA,cAAY,EAAEsO,IAAO,CAAAjJ,OAAA,CAACvG,MAAM;MAC5B,eAAa,EAAE8L,CAAA,GAAA,CAAA;;OACR0D,IAAG,CAAA/N,GAAA,CAAA,UAAA,CAAA,CAAA,EAAA,CAEXuP,UAAA,CAOMxB,qBAPNF,UAOM,CAAA;AAPa,MAAA,OAAA,EAAOE,IAAE,CAAAC,EAAA,CAAA,QAAA,CAAA;AAAanM,MAAAA,KAAK,EAAEpC,MAAM;AAAGJ,MAAAA,KAAK,EAAEgL,CAAC;AAAGmF,MAAAA,cAAc,WAAdA,cAAcA,CAAG9N,KAAK,EAAA;AAAA,QAAA,OAAKyM,qBAAY,CAACzM,KAAK,EAAE2I,CAAC,CAAA;AAAA,OAAA;;KAAW,EAAA0D,IAAA,CAAA/N,GAAG,aAAlI,YAAA;AAAA,MAAA,OAOM,CALFyP,WAIM,CAAAC,eAAA,EAAA;QAJC,wBAAO3B,IAAE,CAAAC,EAAA,CAAA,QAAA,CAAA,CAAA;AAAahC,QAAAA,KAAK,EAAEmC,QAAc,CAAA3O,cAAA,CAACC,MAAM,CAAA;AAAIkQ,QAAAA,UAAU,EAAE5B,IAAS,CAAAzS,QAAA,IAAGyS,IAAe,CAAA1S,eAAA;AAAEuU,QAAAA,WAAA;QAAWT,QAAQ,EAAEpB,IAAQ,CAAAoB,QAAA;AAAGU,QAAAA,QAAM,EAAE,SAARA,QAAMA,CAAEC,MAAA,EAAA;AAAA,UAAA,OAAA3B,QAAA,CAAA5H,YAAY,CAACuJ,MAAM,EAAEzF,CAAC,CAAA;SAAA;AAAI+E,QAAAA,EAAE,EAAErB,IAAG,CAAA/N,GAAA,CAAA,QAAA;;QAChK+P,UAAU,UACjB,YAAA;AAAA,UAAA,OAAuJ,CAAvJR,UAAuJ,CAAAxB,IAAA,CAAAiC,MAAA,EAA1IjC,IAAM,CAAAiC,MAAA,CAACC,QAAO,GAAA,UAAA,GAAA,iBAAA,EAAA;YAAqC,wBAAOlC,IAAE,CAAAC,EAAA,CAAA,UAAA,CAAA,CAAA;AAAe3O,YAAAA,KAAK,EAAEgL,CAAC;AAAGmF,YAAAA,cAAc,WAAdA,cAAcA,CAAG9N,KAAK,EAAA;AAAA,cAAA,OAAKyM,qBAAY,CAACzM,KAAK,EAAE2I,CAAC,CAAA;AAAA;;;;;;aAKnK6F,kBAAA,CA2BI,MA3BJrC,UA2BI,CAAA;AA3BC,IAAA,OAAA,EAAOE,IAAE,CAAAC,EAAA,CAAA,WAAA,CAAA;AAAegB,IAAAA,IAAI,EAAC;KAAiBjB,IAAG,CAAA/N,GAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAClDkQ,kBAAA,CAyBC,SAzBDrC,UAyBC,CAAA;AAxBGC,IAAAA,GAAG,EAAC,YAAW;IACdtQ,EAAE,EAAEuQ,IAAO,CAAArT,OAAA;AACZtB,IAAAA,IAAI,EAAC,MAAK;IACTkD,KAAK,EAAEyR,IAAU,CAAApT,UAAA;IACjB,OAAOoT,EAAAA,IAAU,CAAAnT,UAAA;IACjBX,WAAW,EAAE8T,IAAW,CAAA9T,WAAA;IACxBiC,QAAQ,EAAA,CAAG6R,IAAO,CAAA3N,QAAA,GAAI2N,IAAS,CAAA7R,QAAA,GAAA,CAAA,CAAA;IAC/BkE,QAAQ,EAAE2N,IAAQ,CAAA3N,QAAA;AACnB2O,IAAAA,YAAY,EAAC,KAAI;AACjBC,IAAAA,IAAI,EAAC,UAAS;IACb,YAAU,EAAEjB,IAAS,CAAA3R,SAAA;IACrB,iBAAe,EAAE2R,IAAc,CAAA1R,cAAA;AAChC,IAAA,eAAa,EAAC,SAAQ;AACtB,IAAA,mBAAiB,EAAC,MAAK;IACtB,eAAa,EAAE4S,KAAc,CAAAnR,cAAA;AAC7B,IAAA,eAAa,EAAEmR,KAAC,CAAAzR,EAAA,GAAA,OAAA;IAChB,uBAAqB,EAAEyR,KAAA,CAAAtR,OAAM,GAAIwQ,QAAA,CAAA1D,eAAgB,GAAE7O,SAAS;AAC5D,IAAA,cAAY,EAAEmS,IAAM,CAAAc,OAAA,IAAKjT,SAAS;IAClC6F,OAAK;aAAE0M,QAAO,CAAA1M,OAAA,IAAA0M,QAAA,CAAA1M,OAAA,CAAA2M,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;AAAA,KAAA,CAAA;IACd5C,MAAI;aAAEoM,QAAM,CAAApM,MAAA,IAAAoM,QAAA,CAAApM,MAAA,CAAAqM,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;AAAA,KAAA,CAAA;IACZuK,SAAO;aAAEf,QAAS,CAAA/L,SAAA,IAAA+L,QAAA,CAAA/L,SAAA,CAAAgM,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;AAAA,KAAA,CAAA;IAClBxB,OAAK;aAAEgL,QAAO,CAAAhL,OAAA,IAAAgL,QAAA,CAAAhL,OAAA,CAAAiL,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;AAAA,KAAA,CAAA;IACdnB,QAAM;aAAE2K,QAAQ,CAAA3K,QAAA,IAAA2K,QAAA,CAAA3K,QAAA,CAAA4K,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;KAAA;KACToJ,IAAG,CAAA/N,GAAA,CAAA,OAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAAmQ,UAAA,CAAA,0DAIXlB,KAAA,CAAAlR,SAAQ,IAAKgQ,IAAO,CAAA/T,OAAA,GAAhCuV,UAGM,CAAAxB,IAAA,CAAAiC,MAAA,EAHyDjC,IAAM,CAAAiC,MAAA,CAAC7U,MAAK,GAAA,QAAA,GAAA,aAAA,EAAA;;AAAxC,IAAA,OAAA,iBAAO4S,IAAE,CAAAC,EAAA,CAAA,QAAA,CAAA;KAA5C,YAAA;AAAA,IAAA,OAGM,CAFOD,IAAA,CAAA5S,MAAK,IAAK4S,IAAW,CAAA3S,WAAA,IAA9BuS,SAAA,EAAA,EAAAC,kBAAA,CAAmI,KAAnIC,UAAmI,CAAA;;AAAlG,MAAA,OAAA,EAAmB,CAAA,SAAA,EAAAE,IAAA,CAAAC,EAAE,CAAY,QAAA,CAAA,EAAAD,IAAA,CAAA5S,MAAM,EAAE4S,IAAW,CAAA3S,WAAA,CAAA;AAAG,MAAA,aAAW,EAAC;OAAe2S,IAAG,CAAA/N,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KACtH2N,SAAA,EAAA,EAAAW,WAAA,CAA0F8B,wBAA1FvC,UAA0F,CAAA;;AAArE,MAAA,OAAA,EAAOE,IAAE,CAAAC,EAAA,CAAA,QAAA,CAAA;AAAYqC,MAAAA,IAAK,EAAL,EAAK;AAAA,MAAA,aAAW,EAAC;OAAetC,IAAG,CAAA/N,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA;qCAEjFuP,UAiBM,CAAAxB,IAAA,CAAAiC,MAAA,EAjBOjC,IAAM,CAAAiC,MAAA,CAACpW,QAAS,GAAA,UAAA,GAAA,gBAAA,EAAA;AAAkC0W,IAAAA,cAAc,EAAG,SAAjBA,cAAcA,CAAG5O,KAAK,EAAA;AAAA,MAAA,OAAKyM,QAAA,CAAA3J,eAAe,CAAC9C,KAAK,CAAA;AAAA;KAA/G,YAAA;AAAA,IAAA,OAiBM,CAfQqM,IAAQ,CAAAnU,QAAA,IADlB+T,SAAA,EAAA,EAAAC,kBAAA,CAeQ,UAfRC,UAeQ,CAAA;;AAbJC,MAAAA,GAAG,EAAC,gBAAe;AACnB1U,MAAAA,IAAI,EAAC,QAAO;MACX,OAAK,EAAA,CAAG2U,IAAE,CAAAC,EAAA,CAAA,UAAA,CAAA,EAAcD,IAAa,CAAA7S,aAAA,CAAA;MACrCkF,QAAQ,EAAE2N,IAAQ,CAAA3N,QAAA;AACnB,MAAA,eAAa,EAAC,SAAQ;MACrB,eAAa,EAAE6O,KAAc,CAAAnR,cAAA;MAC7B,eAAa,EAAEqQ,QAAO,CAAAnB,OAAA;MACtBkB,OAAK;eAAEC,QAAe,CAAA3J,eAAA,IAAA2J,QAAA,CAAA3J,eAAA,CAAA4J,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;OAAA;OACfoJ,IAAG,CAAA/N,GAAA,CAAA,UAAA,CAAA,CAAA,EAAA,CAEXuP,UAEM,CAAAxB,IAAA,CAAAiC,MAAA,EAAA,cAAA,EAAA;AAFqB,MAAA,OAAA,iBAAOjC,IAAY,CAAA9S,YAAA;OAA9C,YAAA;AAAA,MAAA,OAEM,eADFqT,WAA+G,CAAAiC,uBAAA,CAA/FxC,iBAAa,GAA7B,MAAA,GAAA,iBAAA,CAAA,EAAAF,UAAA,CAA+G;AAAnD,QAAA,OAAA,EAAOE,IAAY,CAAA9S;AAAA,OAAA,EAAU8S,IAAG,CAAA/N,GAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;MAIxGkQ,kBAAA,CAEM,QAFNrC,UAEM,CAAA;AAFAmB,IAAAA,IAAI,EAAC,QAAS;AAAA,IAAA,WAAS,EAAC,QAAS;IAAA,OAAM,EAAA;AAA8B,GAAA,EAAAjB,IAAA,CAAA/N,GAAG,CAAyB,oBAAA,CAAA,EAAA;AAAA,IAAA,0BAAwB,EAAE;sBAC1HmO,QAAsB,CAAAjC,uBAAA,CAAA,EAAA,EAAA,CAAA,EAE7BuD,WAyDQ,CAAAe,iBAAA,EAAA;IAzDClW,QAAQ,EAAEyT,IAAQ,CAAAzT;AAAA,GAAA,EAAA;uBACvB,YAAA;AAAA,MAAA,OAuDY,CAvDZmV,WAAA,CAuDYgB,YAvDZ5C,UAuDY,CAAA;AAvDA7U,QAAAA,IAAI,EAAC,qBAAoB;QAAG0X,OAAK,EAAEvC,QAAc,CAAA3H,cAAA;QAAGmK,YAAW,EAAExC,QAAmB,CAAAjH,mBAAA;QAAG0J,OAAK,EAAEzC,QAAc,CAAA7G,cAAA;QAAGuJ,YAAW,EAAE1C,QAAmB,CAAA3G;SAAUuG,IAAG,CAAA/N,GAAA,CAAA,YAAA,CAAA,CAAA,EAAA;2BACpK,YAAA;AAAA,UAAA,OAqDK,CArDMiP,KAAc,CAAAnR,cAAA,IAAzB6P,SAAA,EAAA,EAAAC,kBAAA,CAqDK,OArDLC,UAqDK,CAAA;;YArDuBC,GAAG,EAAEK,QAAU,CAAA1C,UAAA;YAAGjO,EAAE,EAAE2Q,QAAO,CAAAnB,OAAA;AAAG,YAAA,OAAA,EAAQ,CAAAe,IAAA,CAAAC,EAAE,CAAa,SAAA,CAAA,EAAAD,IAAA,CAAAjT,UAAU,EAAEiT,IAAY,CAAA/S,YAAA,CAAA;AAAIsB,YAAAA,KAAK,EAAAwU,aAAA,CAAAA,aAAA,CAAO/C,EAAAA,EAAAA,IAAU,CAAAlT,UAAA,CAAKkT,EAAAA,IAAW,CAAAhT,YAAA,CAAA;YAAMmT,OAAK;qBAAEC,QAAc,CAAAlJ,cAAA,IAAAkJ,QAAA,CAAAlJ,cAAA,CAAAmJ,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;AAAA,aAAA,CAAA;YAAGuK,SAAO;qBAAEf,QAAgB,CAAA/I,gBAAA,IAAA+I,QAAA,CAAA/I,gBAAA,CAAAgJ,KAAA,CAAAD,QAAA,EAAAxJ,SAAA,CAAA;aAAA;aAAUoJ,IAAG,CAAA/N,GAAA,CAAA,SAAA,CAAA,CAAA,EAAA,CACrNuP,UAAyE,CAAAxB,IAAA,CAAAiC,MAAA,EAAA,QAAA,EAAA;YAApDnO,KAAK,EAAEkM,IAAO,CAAAjJ,OAAA;YAAG3L,WAAW,EAAEgV,QAAc,CAAA7P;cACjE4R,kBAAA,CA8CK,OA9CLrC,UA8CK,CAAA;AA9CC,YAAA,OAAA,EAAOE,IAAE,CAAAC,EAAA,CAAA,eAAA,CAAA;AAAoB1R,YAAAA,KAAK,EAAA;cAAA,YAAA,EAAkB6R,QAAsB,CAAA5O,uBAAA,GAAIwO,IAAa,CAAArU,YAAA,GAAA;AAAA;aAAgBqU,IAAG,CAAA/N,GAAA,CAAA,eAAA,CAAA,CAAA,EAAA,CAChHyP,WAAA,CA4CiBsB,4BA5CjBlD,UA4CiB,CAAA;YA5CCC,GAAG,EAAEK,QAAA,CAAAvC;aAA4BmC,IAAsB,CAAAxS,sBAAA,EAAA;AAAGe,YAAAA,KAAK;sBAAYyR,IAAa,CAAArU;aAAA;YAAIsX,KAAK,EAAE7C,QAAc,CAAA7P,cAAA;YAAGpC,QAAQ,EAAE,CAAE,CAAA;YAAGkE,QAAQ,EAAE+N,QAAuB,CAAA5O,uBAAA;AAAG6P,YAAAA,EAAE,EAAErB,IAAG,CAAA/N,GAAA,CAAA,iBAAA;;AAC3KiR,YAAAA,OAAO,EACpBC,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,cAAA,IADwBC,UAAU,GAAAD,IAAA,CAAVC,UAAU;gBAAEzF,UAAU,GAAAwF,IAAA,CAAVxF,UAAU;gBAAEqF,KAAK,GAAAG,IAAA,CAALH,KAAK;gBAAEK,cAAc,GAAAF,IAAA,CAAdE,cAAc;gBAAEC,YAAY,GAAAH,IAAA,CAAZG,YAAY;gBAAEC,QAAO,GAAAJ,IAAA,CAAPI,QAAO;AAAA,cAAA,OAAA,CAC5FrB,kBAAA,CAqCI,MArCJrC,UAqCI,CAAA;AArCCC,gBAAAA,GAAG,WAAHA,GAAGA,CAAGrH,EAAE,EAAA;AAAA,kBAAA,OAAK0H,gBAAO,CAAC1H,EAAE,EAAEkF,UAAU,CAAA;AAAA,iBAAA;AAAInO,gBAAAA,EAAE,EAAEyR,KAAG,CAAAzR,EAAA,GAAA,OAAA;gBAAY,OAAK,EAAA,CAAGuQ,IAAE,CAAAC,EAAA,CAAA,MAAA,CAAA,EAAUoD,UAAU,CAAA;AAAI9U,gBAAAA,KAAK,EAAEgV,YAAY;AAAEtC,gBAAAA,IAAI,EAAC;gBAAW,YAAU,EAAEb,QAAa,CAAAzB;iBAAUqB,IAAG,CAAA/N,GAAA,CAAA,MAAA,CAAA,CAAA,EAAA,EACxK2N,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAgCUyB,QAhCsB,EAAA,IAAA,EAAAC,UAAA,CAAA0B,KAAK,EAAnB,UAAAvR,MAAM,EAAE4K,CAAC,EAAA;;AAAkBtK,kBAAAA,GAAA,EAAAoO,QAAA,CAAAvO,kBAAkB,CAACH,MAAM,EAAE0O,uBAAc,CAAC9D,CAAC,EAAEgH,cAAc,CAAA;oBAE1FlD,QAAA,CAAA7N,aAAa,CAACb,MAAM,CAAA,IAD9BkO,SAAA,EAAA,EAAAC,kBAAA,CASI,MATJC,UASI,CAAA;;AAPCrQ,kBAAAA,EAAE,EAAEyR,KAAC,CAAAzR,EAAA,GAAA,GAAA,GAAU2Q,uBAAc,CAAC9D,CAAC,EAAEgH,cAAc,CAAA;AAC/C/U,kBAAAA,KAAK,EAAY;AAAAkV,oBAAAA,MAAA,EAAAD,QAAO,GAAIA,QAAO,UAAW3V;mBAAQ;AACtD,kBAAA,OAAA,EAAOmS,IAAE,CAAAC,EAAA,CAAA,aAAA,CAAA;AACVgB,kBAAAA,IAAI,EAAC,QAAO;;mBACJjB,IAAG,CAAA/N,GAAA,CAAA,aAAA,CAAA,CAAA,EAAA,CAEXuP,UAAoJ,CAAAxB,IAAA,CAAAiC,MAAA,EAAA,aAAA,EAAA;kBAA1HvQ,MAAM,EAAEA,MAAM,CAACc,WAAW;AAAGlB,kBAAAA,KAAK,EAAE8O,QAAA,CAAA/O,cAAc,CAACiL,CAAC,EAAEgH,cAAc;mBAA9F,YAAA;AAAA,kBAAA,OAAoJ,iCAAhDlD,QAAmB,CAAA1N,mBAAA,CAAChB,MAAM,CAACc,WAAW,CAAA,CAAA,EAAA,CAAA,CAAA;wCAE9IkR,cAAA,EAAA9D,SAAA,EAAA,EAAAC,kBAAA,CAoBI,MApBJC,UAoBI,CAAA;;AAlBCrQ,kBAAAA,EAAE,EAAEyR,KAAC,CAAAzR,EAAA,GAAA,GAAA,GAAU2Q,uBAAc,CAAC9D,CAAC,EAAEgH,cAAc,CAAA;AAE/C/U,kBAAAA,KAAK,EAAY;AAAAkV,oBAAAA,MAAA,EAAAD,QAAO,GAAIA,QAAO,UAAW3V;mBAAQ;AACtD,kBAAA,OAAA,EAAOmS,IAAE,CAAAC,EAAA,CAAA,QAAA,EAAA;AAAavO,oBAAAA,MAAM,EAANA,MAAM;AAAE4K,oBAAAA,CAAC,EAADA,CAAC;AAAEgH,oBAAAA,cAAa,EAAbA;AAAa,mBAAA,CAAA;AAC/CrC,kBAAAA,IAAI,EAAC,QAAO;AACX,kBAAA,YAAU,EAAEb,QAAc,CAAA3O,cAAA,CAACC,MAAM,CAAA;AACjC,kBAAA,eAAa,EAAE0O,QAAU,CAAAhO,UAAA,CAACV,MAAM,CAAA;AAChC,kBAAA,eAAa,EAAE0O,QAAgB,CAAA9N,gBAAA,CAACZ,MAAM,CAAA;kBACtC,cAAY,EAAE0O,QAAW,CAAArB,WAAA;AACzB,kBAAA,eAAa,EAAEqB,QAAe,CAAAxN,eAAA,CAACwN,uBAAc,CAAC9D,CAAC,EAAEgH,cAAc,CAAA,CAAA;AAC/DnD,kBAAAA,OAAK,EAAE,SAAPA,OAAKA,CAAE4B,MAAA,EAAA;AAAA,oBAAA,OAAA3B,QAAA,CAAArK,cAAc,CAACgM,MAAM,EAAErQ,MAAM,CAAA;mBAAA;AACpCiS,kBAAAA,WAAS,EAAA,SAATA,WAASA,CAAA5B,MAAA,EAAA;AAAA,oBAAA,OAAE3B,0BAAiB,CAAC2B,MAAM,EAAE3B,QAAc,CAAA/O,cAAA,CAACiL,CAAC,EAAEgH,cAAc,CAAA,CAAA;mBAAA;AACrE,kBAAA,iBAAe,EAAElD,QAAU,CAAAhO,UAAA,CAACV,MAAM,CAAA;AAClC,kBAAA,cAAY,EAAEwP,KAAmB,CAAArR,kBAAA,KAAIuQ,uBAAc,CAAC9D,CAAC,EAAEgH,cAAc,CAAA;AACrE,kBAAA,iBAAe,EAAElD,QAAgB,CAAA9N,gBAAA,CAACZ,MAAM,CAAA;;iBACjC,EAAA0O,QAAA,CAAAtO,YAAY,CAACJ,MAAM,EAAE4R,cAAc,EAAEhH,CAAC,EAAA,QAAA,CAAA,CAAA,EAAA,CAE9CkF,UAAkH,CAAAxB,IAAA,CAAAiC,MAAA,EAAA,QAAA,EAAA;AAA7FvQ,kBAAAA,MAAM,EAAEA,MAAM;AAAGJ,kBAAAA,KAAK,EAAE8O,QAAA,CAAA/O,cAAc,CAACiL,CAAC,EAAEgH,cAAc;mBAA7E,YAAA;AAAA,kBAAA,OAAkH,CAA/BM,eAAA,CAAAC,eAAA,CAAAzD,QAAA,CAAA3O,cAAc,CAACC,MAAM,CAAA,CAAA,EAAA,CAAA,CAAA;;yBAGtGsO,IAAA,CAAA9R,gBAAe,MAAO+U,KAAI,IAAMA,KAAI,IAAKA,KAAK,CAACzS,MAAK,KAAA,CAAA,CAAA,IAA9DoP,SAAA,EAAA,EAAAC,kBAAA,CAEI,MAFJC,UAEI,CAAA;;AAFsE,gBAAA,OAAA,EAAOE,IAAE,CAAAC,EAAA,CAAA,cAAA,CAAA;AAAkBgB,gBAAAA,IAAI,EAAC;iBAAiBjB,IAAG,CAAA/N,GAAA,CAAA,cAAA,CAAA,CAAA,EAAA,CAC1HuP,UAAA,CAAsDxB,0BAAtD,YAAA;AAAA,gBAAA,OAAsD,iCAAhCI,QAAsB,CAAAjC,uBAAA,CAAA,EAAA,CAAA,CAAA;;;;cAIxC6B,IAAA,CAAAiC,MAAM,CAAC7U,MAAM;kBAAS,QAAM;AACxCmE,YAAAA,EAAA,EAAA4R,OAAA,CAAA,UAAAW,KAAA,EAAA;AAAA,cAAA,IAD4C3G,OAAQ,GAAA2G,KAAA,CAAR3G,OAAQ;cAAA,OAAA,CACpDqE,UAA6C,CAAAxB,IAAA,CAAAiC,MAAA,EAAA,QAAA,EAAA;AAAxB9E,gBAAAA,OAAO,EAAEA;AAAO,eAAA,CAAA;;;8EAIjDqE,UAAyE,CAAAxB,IAAA,CAAAiC,MAAA,EAAA,QAAA,EAAA;YAApDnO,KAAK,EAAEkM,IAAO,CAAAjJ,OAAA;YAAG3L,WAAW,EAAEgV,QAAc,CAAA7P;cACjE4R,kBAAA,CAEM,QAFNrC,UAEM,CAAA;AAFAmB,YAAAA,IAAI,EAAC,QAAS;AAAA,YAAA,WAAS,EAAC,QAAO;YAAE,OAAM,EAAA;AAA8B,WAAA,EAAAjB,IAAA,CAAA/N,GAAG,CAA4B,uBAAA,CAAA,EAAA;AAAA,YAAA,0BAAwB,EAAE;8BAC7HmO;;;;;;;;;;;;;"}