{"version":3,"sources":["webpack:///./node_modules/primevue/dropdown/dropdown.esm.js","webpack:///./node_modules/primevue/overlayeventbus/overlayeventbus.esm.js","webpack:///./node_modules/primevue/virtualscroller/virtualscroller.esm.js"],"names":["script","name","emits","props","modelValue","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","type","String","default","filter","Boolean","filterPlaceholder","filterLocale","filterMatchMode","filterFields","editable","placeholder","disabled","dataKey","showClear","inputId","inputClass","inputStyle","inputProps","panelClass","panelStyle","panelProps","filterInputProps","clearIconProps","appendTo","loading","clearIcon","dropdownIcon","filterIcon","loadingIcon","resetFilterOnHide","virtualScrollerOptions","Object","autoOptionFocus","autoFilterFocus","selectOnFocus","filterMessage","selectionMessage","emptySelectionMessage","emptyFilterMessage","emptyMessage","tabindex","Number","outsideClickListener","scrollHandler","resizeListener","overlay","list","virtualScroller","searchTimeout","searchValue","isModelValueChanged","focusOnHover","focused","focusedOptionIndex","filterValue","overlayVisible","watch","this","autoUpdateModel","scrollInView","findSelectedOptionIndex","unbindOutsideClickListener","unbindResizeListener","destroy","clear","methods","index","fn","virtualScrollerDisabled","option","resolveFieldData","getOptionLabel","optionGroup","group","visibleOptions","slice","isOptionGroup","length","isFocus","$emit","findFirstFocusedOptionIndex","focus","$refs","focusInput","_hide","setTimeout","event","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","onBackspaceKey","isPrintableCharacter","key","show","searchOptions","value","target","matched","hasClass","tagName","contains","hide","updateModel","relatedTarget","firstFocusableEl","getFirstFocusableElement","firstHiddenFocusableElementOnOverlay","isHide","getOptionValue","changeFocusedOptionIndex","originalEvent","scrollToIndex","alignOverlay","emit","$el","optionIndex","findNextOptionIndex","preventDefault","pressedInInputText","altKey","onOptionSelect","findPrevOptionIndex","findLastFocusedOptionIndex","currentTarget","setSelectionRange","findFirstOptionIndex","len","findLastOptionIndex","hasFocusableElements","el","set","$primevue","config","zIndex","filterInput","bindOutsideClickListener","bindScrollListener","bindResizeListener","unbindScrollListener","relativePosition","style","minWidth","getOuterWidth","absolutePosition","document","addEventListener","removeEventListener","container","isTouchDevice","window","getFocusableElements","isValidOption","toLocaleLowerCase","startsWith","isOptionDisabled","isSelected","equals","equalityKey","findIndex","findLastIndex","matchedOptionIndex","hasSelectedOption","isValidSelectedOption","selectedIndex","char","isOptionMatched","clearTimeout","id","focusedOptionId","element","findSingle","scrollIntoView","block","inline","reduce","result","push","getOptionGroupChildren","forEach","o","contentRef","computed","label","$slots","ripple","flatOptions","filteredOptions","searchFields","optionGroups","filtered","filteredItems","items","item","includes","isNotEmpty","selectedOptionIndex","filterMessageText","replaceAll","emptyFilterMessageText","locale","searchMessage","emptySearchMessage","selectionMessageText","emptySelectionMessageText","$attrs","directives","components","VirtualScroller","Portal","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","class","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","role","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","render","_ctx","_cache","$props","$setup","$data","$options","_component_VirtualScroller","_component_Portal","_directive_ripple","ref","containerClass","onClick","args","onContainerClick","inputStyleClass","editableInputValue","autocomplete","ariaLabel","ariaLabelledby","undefined","onFocus","onBlur","onKeydown","onKeyDown","onInput","onEditableInput","onClearClick","dropdownIconClass","onEnter","onOverlayEnter","onAfterEnter","onOverlayAfterEnter","onLeave","onOverlayLeave","onAfterLeave","onOverlayAfterLeave","overlayRef","panelStyleClass","onOverlayClick","onOverlayKeyDown","onFirstHiddenFocus","onVnodeUpdated","onFilterUpdated","onFilterKeyDown","onFilterBlur","onFilterChange","filterResultMessageText","virtualScrollerRef","height","content","styleClass","getItemOptions","contentStyle","itemSize","listRef","i","getOptionRenderKey","getOptionIndex","getOptionGroupLabel","ariaSetSize","getAriaPosInset","$event","onMousemove","onOptionMouseMove","emptyMessageText","selectedMessageText","_","onLastHiddenFocus","styleInject","css","insertAt","head","getElementsByTagName","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","css_248z","OverlayEventBus","scrollWidth","orientation","numToleratedItems","delay","lazy","loaderDisabled","columns","showSpacer","showLoader","first","isBoth","rows","cols","last","numItemsInViewport","lastScrollPos","top","left","d_numToleratedItems","d_loading","loaderArr","spacerStyle","scrollTimeout","newValue","oldValue","init","setSize","calculateOptions","setSpacerSize","scrollTo","behavior","both","horizontal","isHorizontal","calculateNumItems","calculateFirst","_index","_numT","calculateCoord","_first","_size","newFirst","to","viewport","getRenderedRange","isToStart","isToEnd","pos","calculateFirstInViewport","_pos","Math","floor","firstInViewport","lastInViewport","scrollTop","scrollLeft","scrollPos","contentPos","getContentPosition","contentWidth","offsetWidth","contentHeight","offsetHeight","calculateNumItemsInViewport","_contentSize","_itemSize","ceil","calculateNumToleratedItems","_numItems","calculateLast","_num","_isCols","getLast","from","map","isCols","min","getComputedStyle","parseInt","paddingLeft","max","right","paddingRight","paddingTop","bottom","paddingBottom","x","y","parentElement","width","setProp","_name","_value","_cpos","calculateTranslateVal","setTransform","_x","_y","transform","translateVal","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","_currentIndex","_last","_isScrollDownOrRight","_triggerIndex","lastValue","newLast","isRangeChanged","newScrollPos","isScrollDown","isScrollRight","currentIndex","triggerIndex","isScrollDownOrRight","onScrollPositionChange","newState","setContentPosition","changed","onScrollChange","renderedIndex","count","even","odd","extOptions","loader","loadedItems","loadedColumns","elementRef","onScroll","contentClass","getOptions","getLoaderOptions","loadedRows","vertical","isVertical","loaderClass","numCols","d_numItemsInViewport"],"mappings":"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","file":"js/chunk-02348685.483aef60.js","sourcesContent":["import { FilterService } from 'primevue/api';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport { ZIndexUtils, ObjectUtils, DomHandler, ConnectedOverlayScrollHandler, UniqueComponentId } from 'primevue/utils';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, normalizeClass, mergeProps, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createElementVNode, createVNode, withCtx, Transition, normalizeStyle, createSlots, Fragment, renderList, withDirectives } from 'vue';\n\nvar script = {\n name: 'Dropdown',\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n props: {\n modelValue: null,\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n default: '200px'\n },\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n default: 'contains'\n },\n filterFields: {\n type: Array,\n default: null\n },\n editable: Boolean,\n placeholder: {\n type: String,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n default: false\n },\n inputId: {\n type: String,\n default: null\n },\n inputClass: {\n type: String,\n default: null\n },\n inputStyle: {\n type: null,\n default: null\n },\n inputProps: {\n type: null,\n default: null\n },\n panelClass: {\n type: String,\n default: null\n },\n panelStyle: {\n type: null,\n default: null\n },\n panelProps: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n clearIconProps: {\n type: null,\n default: null\n },\n appendTo: {\n type: String,\n default: 'body'\n },\n loading: {\n type: Boolean,\n default: false\n },\n clearIcon: {\n type: String,\n default: 'pi pi-times'\n },\n dropdownIcon: {\n type: String,\n default: 'pi pi-chevron-down'\n },\n filterIcon: {\n type: String,\n default: 'pi pi-search'\n },\n loadingIcon: {\n type: String,\n default: 'pi pi-spinner pi-spin'\n },\n resetFilterOnHide: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: true\n },\n autoFilterFocus: {\n type: Boolean,\n default: false\n },\n selectOnFocus: {\n type: Boolean,\n default: false\n },\n filterMessage: {\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 emptyFilterMessage: {\n type: String,\n default: null\n },\n emptyMessage: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n 'aria-label': {\n type: String,\n default: null\n },\n 'aria-labelledby': {\n type: String,\n default: null\n }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n searchTimeout: null,\n searchValue: null,\n isModelValueChanged: false,\n focusOnHover: false,\n data() {\n return {\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n modelValue() {\n this.isModelValueChanged = true;\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.autoUpdateModel();\n },\n updated() {\n if (this.overlayVisible && this.isModelValueChanged) {\n this.scrollInView(this.findSelectedOptionIndex());\n }\n\n this.isModelValueChanged = false;\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 ZIndexUtils.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 ? ObjectUtils.resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? ObjectUtils.resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return ObjectUtils.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.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n\n isFocus && DomHandler.focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && DomHandler.focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n this.focused = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.overlayVisible && this.scrollInView(this.focusedOptionIndex);\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, this.editable);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n\n case 'End':\n this.onEndKey(event, this.editable);\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 'Space':\n this.onSpaceKey(event, this.editable);\n break;\n\n case 'Enter':\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, this.editable);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n\n break;\n }\n },\n onEditableInput(event) {\n const value = event.target.value;\n\n this.searchValue = '';\n const matched = this.searchOptions(event, value);\n\n !matched && (this.focusedOptionIndex = -1);\n\n this.$emit('update:modelValue', value);\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || event.target.tagName === 'INPUT') {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n },\n onClearClick(event) {\n this.updateModel(event, null);\n },\n onFirstHiddenFocus(event) {\n const relatedTarget = event.relatedTarget;\n\n if (relatedTarget === this.$refs.focusInput) {\n const firstFocusableEl = DomHandler.getFirstFocusableElement(this.overlay, ':not(.p-hidden-focusable)');\n\n DomHandler.focus(firstFocusableEl);\n } else {\n DomHandler.focus(this.$refs.focusInput);\n }\n },\n onLastHiddenFocus() {\n DomHandler.focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\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 },\n onArrowDownKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\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.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n event.currentTarget.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n } else {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n } else {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n }\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.overlayVisible) {\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 event.preventDefault();\n },\n onSpaceKey(event, pressedInInputText = false) {\n !pressedInInputText && this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n DomHandler.focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onBackspaceKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n },\n onOverlayEnter(el) {\n ZIndexUtils.set('overlay', el, this.$primevue.config.zIndex.overlay);\n this.alignOverlay();\n this.scrollInView();\n\n this.autoFilterFocus && DomHandler.focus(this.$refs.filterInput);\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 ZIndexUtils.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n DomHandler.relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = DomHandler.getOuterWidth(this.$el) + 'px';\n DomHandler.absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\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 && !DomHandler.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 hasFocusableElements() {\n return DomHandler.getFocusableElements(this.overlay, ':not(.p-hidden-focusable)').length > 0;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && this.getOptionLabel(option).toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return option && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isSelected(option) {\n return ObjectUtils.equals(this.modelValue, this.getOptionValue(option), this.equalityKey);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return ObjectUtils.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 ? ObjectUtils.findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\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 const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = DomHandler.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 setTimeout(() => {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }, 0);\n }\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n containerClass() {\n return [\n 'p-dropdown p-component p-inputwrapper',\n {\n 'p-disabled': this.disabled,\n 'p-dropdown-clearable': this.showClear && !this.disabled,\n 'p-focus': this.focused,\n 'p-inputwrapper-filled': this.modelValue,\n 'p-inputwrapper-focus': this.focused || this.overlayVisible,\n 'p-overlay-open': this.overlayVisible\n }\n ];\n },\n inputStyleClass() {\n return [\n 'p-dropdown-label p-inputtext',\n this.inputClass,\n {\n 'p-placeholder': !this.editable && this.label === this.placeholder,\n 'p-dropdown-label-empty': !this.editable && !this.$slots['value'] && (this.label === 'p-emptylabel' || this.label.length === 0)\n }\n ];\n },\n panelStyleClass() {\n return [\n 'p-dropdown-panel p-component',\n this.panelClass,\n {\n 'p-input-filled': this.$primevue.config.inputStyle === 'filled',\n 'p-ripple-disabled': this.$primevue.config.ripple === false\n }\n ];\n },\n dropdownIconClass() {\n return ['p-dropdown-trigger-icon', this.loading ? this.loadingIcon : this.dropdownIcon];\n },\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const filteredItems = group.items.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, items: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n hasSelectedOption() {\n return ObjectUtils.isNotEmpty(this.modelValue);\n },\n label() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n },\n editableInputValue() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.modelValue || '';\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText() {\n return ObjectUtils.isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n },\n id() {\n return this.$attrs.id || UniqueComponentId();\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n VirtualScroller: VirtualScroller,\n Portal: Portal\n }\n};\n\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"id\", \"value\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\"];\nconst _hoisted_3 = [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-disabled\"];\nconst _hoisted_4 = { class: \"p-dropdown-trigger\" };\nconst _hoisted_5 = {\n key: 0,\n class: \"p-dropdown-header\"\n};\nconst _hoisted_6 = { class: \"p-dropdown-filter-container\" };\nconst _hoisted_7 = [\"value\", \"placeholder\", \"aria-owns\", \"aria-activedescendant\"];\nconst _hoisted_8 = {\n role: \"status\",\n \"aria-live\": \"polite\",\n class: \"p-hidden-accessible\"\n};\nconst _hoisted_9 = [\"id\"];\nconst _hoisted_10 = [\"id\"];\nconst _hoisted_11 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\"];\nconst _hoisted_12 = {\n key: 0,\n class: \"p-dropdown-empty-message\",\n role: \"option\"\n};\nconst _hoisted_13 = {\n key: 1,\n class: \"p-dropdown-empty-message\",\n role: \"option\"\n};\nconst _hoisted_14 = {\n key: 0,\n role: \"status\",\n \"aria-live\": \"polite\",\n class: \"p-hidden-accessible\"\n};\nconst _hoisted_15 = {\n role: \"status\",\n \"aria-live\": \"polite\",\n class: \"p-hidden-accessible\"\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n const _component_Portal = resolveComponent(\"Portal\");\n const _directive_ripple = resolveDirective(\"ripple\");\n\n return (openBlock(), createElementBlock(\"div\", {\n ref: \"container\",\n id: $options.id,\n class: normalizeClass($options.containerClass),\n onClick: _cache[16] || (_cache[16] = (...args) => ($options.onContainerClick && $options.onContainerClick(...args)))\n }, [\n ($props.editable)\n ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n ref: \"focusInput\",\n id: $props.inputId,\n type: \"text\",\n style: $props.inputStyle,\n class: $options.inputStyleClass,\n value: $options.editableInputValue,\n placeholder: $props.placeholder,\n tabindex: !$props.disabled ? $props.tabindex : -1,\n disabled: $props.disabled,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n onFocus: _cache[0] || (_cache[0] = (...args) => ($options.onFocus && $options.onFocus(...args))),\n onBlur: _cache[1] || (_cache[1] = (...args) => ($options.onBlur && $options.onBlur(...args))),\n onKeydown: _cache[2] || (_cache[2] = (...args) => ($options.onKeyDown && $options.onKeyDown(...args))),\n onInput: _cache[3] || (_cache[3] = (...args) => ($options.onEditableInput && $options.onEditableInput(...args)))\n }, $props.inputProps), null, 16, _hoisted_2))\n : (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n ref: \"focusInput\",\n id: $props.inputId,\n style: $props.inputStyle,\n class: $options.inputStyleClass,\n tabindex: !$props.disabled ? $props.tabindex : -1,\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel || ($options.label === 'p-emptylabel' ? undefined : $options.label),\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-disabled\": $props.disabled,\n onFocus: _cache[4] || (_cache[4] = (...args) => ($options.onFocus && $options.onFocus(...args))),\n onBlur: _cache[5] || (_cache[5] = (...args) => ($options.onBlur && $options.onBlur(...args))),\n onKeydown: _cache[6] || (_cache[6] = (...args) => ($options.onKeyDown && $options.onKeyDown(...args)))\n }, $props.inputProps), [\n renderSlot(_ctx.$slots, \"value\", {\n value: $props.modelValue,\n placeholder: $props.placeholder\n }, () => [\n createTextVNode(toDisplayString($options.label === 'p-emptylabel' ? ' ' : $options.label || 'empty'), 1)\n ])\n ], 16, _hoisted_3)),\n ($props.showClear && $props.modelValue != null)\n ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 2,\n class: ['p-dropdown-clear-icon', $props.clearIcon],\n onClick: _cache[7] || (_cache[7] = (...args) => ($options.onClearClick && $options.onClearClick(...args)))\n }, $props.clearIconProps), null, 16))\n : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"indicator\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass($options.dropdownIconClass),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ])\n ]),\n createVNode(_component_Portal, { appendTo: $props.appendTo }, {\n default: withCtx(() => [\n createVNode(Transition, {\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, {\n default: withCtx(() => [\n ($data.overlayVisible)\n ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n style: $props.panelStyle,\n class: $options.panelStyleClass,\n onClick: _cache[14] || (_cache[14] = (...args) => ($options.onOverlayClick && $options.onOverlayClick(...args))),\n onKeydown: _cache[15] || (_cache[15] = (...args) => ($options.onOverlayKeyDown && $options.onOverlayKeyDown(...args)))\n }, $props.panelProps), [\n createElementVNode(\"span\", {\n ref: \"firstHiddenFocusableElementOnOverlay\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n class: \"p-hidden-accessible p-hidden-focusable\",\n tabindex: 0,\n onFocus: _cache[8] || (_cache[8] = (...args) => ($options.onFirstHiddenFocus && $options.onFirstHiddenFocus(...args)))\n }, null, 544),\n renderSlot(_ctx.$slots, \"header\", {\n value: $props.modelValue,\n options: $options.visibleOptions\n }),\n ($props.filter)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n createElementVNode(\"div\", _hoisted_6, [\n createElementVNode(\"input\", mergeProps({\n ref: \"filterInput\",\n type: \"text\",\n value: $data.filterValue,\n onVnodeUpdated: _cache[9] || (_cache[9] = (...args) => ($options.onFilterUpdated && $options.onFilterUpdated(...args))),\n class: \"p-dropdown-filter p-inputtext p-component\",\n placeholder: $props.filterPlaceholder,\n role: \"searchbox\",\n autocomplete: \"off\",\n \"aria-owns\": $options.id + '_list',\n \"aria-activedescendant\": $options.focusedOptionId,\n onKeydown: _cache[10] || (_cache[10] = (...args) => ($options.onFilterKeyDown && $options.onFilterKeyDown(...args))),\n onBlur: _cache[11] || (_cache[11] = (...args) => ($options.onFilterBlur && $options.onFilterBlur(...args))),\n onInput: _cache[12] || (_cache[12] = (...args) => ($options.onFilterChange && $options.onFilterChange(...args)))\n }, $props.filterInputProps), null, 16, _hoisted_7),\n createElementVNode(\"span\", {\n class: normalizeClass(['p-dropdown-filter-icon', $props.filterIcon])\n }, null, 2)\n ]),\n createElementVNode(\"span\", _hoisted_8, toDisplayString($options.filterResultMessageText), 1)\n ]))\n : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: \"p-dropdown-items-wrapper\",\n style: normalizeStyle({ 'max-height': $options.virtualScrollerDisabled ? $props.scrollHeight : '' })\n }, [\n createVNode(_component_VirtualScroller, mergeProps({ ref: $options.virtualScrollerRef }, $props.virtualScrollerOptions, {\n items: $options.visibleOptions,\n style: { height: $props.scrollHeight },\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled\n }), createSlots({\n content: withCtx(({ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }) => [\n createElementVNode(\"ul\", {\n ref: (el) => $options.listRef(el, contentRef),\n id: $options.id + '_list',\n class: normalizeClass(['p-dropdown-items', styleClass]),\n style: normalizeStyle(contentStyle),\n role: \"listbox\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(items, (option, i) => {\n return (openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [\n ($options.isOptionGroup(option))\n ? (openBlock(), createElementBlock(\"li\", {\n key: 0,\n id: $options.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: normalizeStyle({ height: itemSize ? itemSize + 'px' : undefined }),\n class: \"p-dropdown-item-group\",\n role: \"option\"\n }, [\n renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, () => [\n createTextVNode(toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 1)\n ])\n ], 12, _hoisted_10))\n : withDirectives((openBlock(), createElementBlock(\"li\", {\n key: 1,\n id: $options.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: normalizeStyle({ height: itemSize ? itemSize + 'px' : undefined }),\n class: normalizeClass(['p-dropdown-item', { 'p-highlight': $options.isSelected(option), 'p-focus': $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions), 'p-disabled': $options.isOptionDisabled(option) }]),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: $event => ($options.onOptionSelect($event, option)),\n onMousemove: $event => ($options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions)))\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n index: $options.getOptionIndex(i, getItemOptions)\n }, () => [\n createTextVNode(toDisplayString($options.getOptionLabel(option)), 1)\n ])\n ], 46, _hoisted_11)), [\n [_directive_ripple]\n ])\n ], 64))\n }), 128)),\n ($data.filterValue && (!items || (items && items.length === 0)))\n ? (openBlock(), createElementBlock(\"li\", _hoisted_12, [\n renderSlot(_ctx.$slots, \"emptyfilter\", {}, () => [\n createTextVNode(toDisplayString($options.emptyFilterMessageText), 1)\n ])\n ]))\n : (!$props.options || ($props.options && $props.options.length === 0))\n ? (openBlock(), createElementBlock(\"li\", _hoisted_13, [\n renderSlot(_ctx.$slots, \"empty\", {}, () => [\n createTextVNode(toDisplayString($options.emptyMessageText), 1)\n ])\n ]))\n : createCommentVNode(\"\", true)\n ], 14, _hoisted_9),\n (!$props.options || ($props.options && $props.options.length === 0))\n ? (openBlock(), createElementBlock(\"span\", _hoisted_14, toDisplayString($options.emptyMessageText), 1))\n : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_15, toDisplayString($options.selectedMessageText), 1)\n ]),\n _: 2\n }, [\n (_ctx.$slots.loader)\n ? {\n name: \"loader\",\n fn: withCtx(({ options }) => [\n renderSlot(_ctx.$slots, \"loader\", { options: options })\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1040, [\"items\", \"style\", \"disabled\"])\n ], 4),\n renderSlot(_ctx.$slots, \"footer\", {\n value: $props.modelValue,\n options: $options.visibleOptions\n }),\n createElementVNode(\"span\", {\n ref: \"lastHiddenFocusableElementOnOverlay\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n class: \"p-hidden-accessible p-hidden-focusable\",\n tabindex: 0,\n onFocus: _cache[13] || (_cache[13] = (...args) => ($options.onLastHiddenFocus && $options.onLastHiddenFocus(...args)))\n }, null, 544)\n ], 16))\n : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])\n ]),\n _: 3\n }, 8, [\"appendTo\"])\n ], 10, _hoisted_1))\n}\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \"\\n.p-dropdown {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n cursor: pointer;\\n position: relative;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.p-dropdown-clear-icon {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n}\\n.p-dropdown-trigger {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -ms-flex-negative: 0;\\n flex-shrink: 0;\\n}\\n.p-dropdown-label {\\n display: block;\\n white-space: nowrap;\\n overflow: hidden;\\n -webkit-box-flex: 1;\\n -ms-flex: 1 1 auto;\\n flex: 1 1 auto;\\n width: 1%;\\n text-overflow: ellipsis;\\n cursor: pointer;\\n}\\n.p-dropdown-label-empty {\\n overflow: hidden;\\n opacity: 0;\\n}\\ninput.p-dropdown-label {\\n cursor: default;\\n}\\n.p-dropdown .p-dropdown-panel {\\n min-width: 100%;\\n}\\n.p-dropdown-panel {\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n.p-dropdown-items-wrapper {\\n overflow: auto;\\n}\\n.p-dropdown-item {\\n cursor: pointer;\\n font-weight: normal;\\n white-space: nowrap;\\n position: relative;\\n overflow: hidden;\\n}\\n.p-dropdown-item-group {\\n cursor: auto;\\n}\\n.p-dropdown-items {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n}\\n.p-dropdown-filter {\\n width: 100%;\\n}\\n.p-dropdown-filter-container {\\n position: relative;\\n}\\n.p-dropdown-filter-icon {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n}\\n.p-fluid .p-dropdown {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.p-fluid .p-dropdown .p-dropdown-label {\\n width: 1%;\\n}\\n\";\nstyleInject(css_248z);\n\nscript.render = render;\n\nexport { script as default };\n","import { EventBus } from 'primevue/utils';\n\nvar OverlayEventBus = EventBus();\n\nexport { OverlayEventBus as default };\n","import { openBlock, createElementBlock, normalizeClass, normalizeStyle, renderSlot, createElementVNode, Fragment, renderList, createCommentVNode } from 'vue';\n\nvar script = {\n name: 'VirtualScroller',\n emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],\n props: {\n id: {\n type: String,\n default: null\n },\n style: null,\n class: null,\n items: {\n type: Array,\n default: null\n },\n itemSize: {\n type: [Number, Array],\n default: 0\n },\n scrollHeight: null,\n scrollWidth: null,\n orientation: {\n type: String,\n default: 'vertical'\n },\n numToleratedItems: {\n type: Number,\n default: null\n },\n delay: {\n type: Number,\n default: 0\n },\n lazy: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n loaderDisabled: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Array,\n default: null\n },\n loading: {\n type: Boolean,\n default: false\n },\n showSpacer: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n data() {\n return {\n first: this.isBoth() ? { rows: 0, cols: 0 } : 0,\n last: this.isBoth() ? { rows: 0, cols: 0 } : 0,\n numItemsInViewport: this.isBoth() ? { rows: 0, cols: 0 } : 0,\n lastScrollPos: this.isBoth() ? { top: 0, left: 0 } : 0,\n d_numToleratedItems: this.numToleratedItems,\n d_loading: this.loading,\n loaderArr: [],\n spacerStyle: {},\n contentStyle: {}\n };\n },\n element: null,\n content: null,\n lastScrollPos: null,\n scrollTimeout: null,\n watch: {\n numToleratedItems(newValue) {\n this.d_numToleratedItems = newValue;\n },\n loading(newValue) {\n this.d_loading = newValue;\n },\n items(newValue, oldValue) {\n if (!oldValue || oldValue.length !== (newValue || []).length) {\n this.init();\n }\n },\n orientation() {\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n }\n },\n mounted() {\n this.init();\n\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n },\n methods: {\n init() {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n },\n isVertical() {\n return this.orientation === 'vertical';\n },\n isHorizontal() {\n return this.orientation === 'horizontal';\n },\n isBoth() {\n return this.orientation === 'both';\n },\n scrollTo(options) {\n this.element && this.element.scrollTo(options);\n },\n scrollToIndex(index, behavior = 'auto') {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const first = this.first;\n const { numToleratedItems } = this.calculateNumItems();\n const itemSize = this.itemSize;\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size) => _first * _size;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n\n if (both) {\n const newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };\n\n if (newFirst.rows !== first.rows || newFirst.cols !== first.cols) {\n scrollTo(calculateCoord(newFirst.cols, itemSize[1]), calculateCoord(newFirst.rows, itemSize[0]));\n }\n } else {\n const newFirst = calculateFirst(index, numToleratedItems);\n\n if (newFirst !== first) {\n horizontal ? scrollTo(calculateCoord(newFirst, itemSize), 0) : scrollTo(0, calculateCoord(newFirst, itemSize));\n }\n }\n },\n scrollInView(index, to, behavior = 'auto') {\n if (to) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);\n } else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);\n } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * this.itemSize;\n\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n },\n getRenderedRange() {\n const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n let firstInViewport = this.first;\n let lastInViewport = 0;\n\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const scrollTop = this.element.scrollTop;\n const scrollLeft = this.element.scrollLeft;\n\n if (both) {\n firstInViewport = { rows: calculateFirstInViewport(scrollTop, this.itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this.itemSize[1]) };\n lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n\n firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n },\n calculateNumItems() {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const itemSize = this.itemSize;\n const contentPos = this.getContentPosition();\n const contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;\n const contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;\n const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));\n const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);\n const numItemsInViewport = both\n ? { rows: calculateNumItemsInViewport(contentHeight, itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, itemSize[1]) }\n : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, itemSize);\n\n const numToleratedItems = this.d_numToleratedItems || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n },\n calculateOptions() {\n const both = this.isBoth();\n const first = this.first;\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first, _num, _numT, _isCols) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const last = both\n ? { rows: calculateLast(first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(first.cols, numItemsInViewport.cols, numToleratedItems[1], true) }\n : calculateLast(first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n this.$emit('update:numToleratedItems', this.d_numToleratedItems);\n\n if (this.showLoader) {\n this.loaderArr = both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this.lazy) {\n this.$emit('lazy-load', { first, last });\n }\n },\n getLast(last = 0, isCols) {\n if (this.items) {\n return Math.min(isCols ? (this.columns || this.items[0]).length : this.items.length, last);\n }\n\n return 0;\n },\n getContentPosition() {\n if (this.content) {\n const style = getComputedStyle(this.content);\n const left = parseInt(style.paddingLeft, 10) + Math.max(parseInt(style.left, 10), 0);\n const right = parseInt(style.paddingRight, 10) + Math.max(parseInt(style.right, 10), 0);\n const top = parseInt(style.paddingTop, 10) + Math.max(parseInt(style.top, 10), 0);\n const bottom = parseInt(style.paddingBottom, 10) + Math.max(parseInt(style.bottom, 10), 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n },\n setSize() {\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const parentElement = this.element.parentElement;\n const width = this.scrollWidth || `${this.element.offsetWidth || parentElement.offsetWidth}px`;\n const height = this.scrollHeight || `${this.element.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name, _value) => (this.element.style[_name] = _value);\n\n if (both || horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n },\n setSpacerSize() {\n const items = this.items;\n\n if (items) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const setProp = (_name, _value, _size, _cpos = 0) => (this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' } });\n\n if (both) {\n setProp('height', items, this.itemSize[0], contentPos.y);\n setProp('width', this.columns || items[1], this.itemSize[1], contentPos.x);\n } else {\n horizontal ? setProp('width', this.columns || items, this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);\n }\n }\n },\n setContentPosition(pos) {\n if (this.content) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first, _size) => _first * _size;\n\n const setTransform = (_x = 0, _y = 0) => {\n this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } };\n };\n\n if (both) {\n setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));\n } else {\n const translateVal = calculateTranslateVal(first, this.itemSize);\n\n horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n },\n onScrollPositionChange(event) {\n const target = event.target;\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos, _cpos) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n\n const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n\n const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n\n let newFirst = both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n const currentIndex = { rows: calculateCurrentIndex(scrollTop, this.itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this.itemSize[1]) };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n } else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n const currentIndex = calculateCurrentIndex(scrollPos, this.itemSize);\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last;\n newScrollPos = scrollPos;\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n },\n onScrollChange(event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.$emit('scroll-index-change', newState);\n\n if (this.lazy) {\n this.$emit('lazy-load', newState);\n }\n }\n },\n onScroll(event) {\n this.$emit('scroll', event);\n\n if (this.delay) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged: changed } = this.onScrollPositionChange(event);\n\n changed && (this.d_loading = true);\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this.showLoader && !this.lazy) {\n this.d_loading = false;\n }\n }, this.delay);\n } else {\n this.onScrollChange(event);\n }\n },\n getOptions(renderedIndex) {\n const count = (this.items || []).length;\n const index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n },\n getLoaderOptions(index, extOptions) {\n let count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n ...extOptions\n };\n },\n elementRef(el) {\n this.element = el;\n },\n contentRef(el) {\n this.content = el;\n }\n },\n computed: {\n containerClass() {\n return [\n 'p-virtualscroller',\n {\n 'p-both-scroll': this.isBoth(),\n 'p-horizontal-scroll': this.isHorizontal()\n },\n this.class\n ];\n },\n contentClass() {\n return [\n 'p-virtualscroller-content',\n {\n 'p-virtualscroller-loading': this.d_loading\n }\n ];\n },\n loaderClass() {\n return [\n 'p-virtualscroller-loader',\n {\n 'p-component-overlay': !this.$slots.loader\n }\n ];\n },\n loadedItems() {\n const items = this.items;\n\n if (items && !this.d_loading) {\n if (this.isBoth()) {\n return items.slice(this.first.rows, this.last.rows).map((item) => (this.columns ? item : item.slice(this.first.cols, this.last.cols)));\n } else if (this.isHorizontal() && this.columns) return items;\n else return items.slice(this.first, this.last);\n }\n\n return [];\n },\n loadedRows() {\n return this.d_loading ? (this.loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n },\n loadedColumns() {\n if (this.columns) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n\n if (both || horizontal) {\n return this.d_loading && this.loaderDisabled ? (both ? this.loaderArr[0] : this.loaderArr) : this.columns.slice(both ? this.first.cols : this.first, both ? this.last.cols : this.last);\n }\n }\n\n return this.columns;\n }\n }\n};\n\nconst _hoisted_1 = [\"tabindex\"];\nconst _hoisted_2 = {\n key: 1,\n class: \"p-virtualscroller-loading-icon pi pi-spinner pi-spin\"\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (!$props.disabled)\n ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: $options.elementRef,\n class: normalizeClass($options.containerClass),\n tabindex: $props.tabindex,\n style: normalizeStyle($props.style),\n onScroll: _cache[0] || (_cache[0] = (...args) => ($options.onScroll && $options.onScroll(...args)))\n }, [\n renderSlot(_ctx.$slots, \"content\", {\n styleClass: $options.contentClass,\n items: $options.loadedItems,\n getItemOptions: $options.getOptions,\n loading: $data.d_loading,\n getLoaderOptions: $options.getLoaderOptions,\n itemSize: $props.itemSize,\n rows: $options.loadedRows,\n columns: $options.loadedColumns,\n contentRef: $options.contentRef,\n spacerStyle: $data.spacerStyle,\n contentStyle: $data.contentStyle,\n vertical: $options.isVertical(),\n horizontal: $options.isHorizontal(),\n both: $options.isBoth()\n }, () => [\n createElementVNode(\"div\", {\n ref: $options.contentRef,\n class: normalizeClass($options.contentClass),\n style: normalizeStyle($data.contentStyle)\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.loadedItems, (item, index) => {\n return renderSlot(_ctx.$slots, \"item\", {\n key: index,\n item: item,\n options: $options.getOptions(index)\n })\n }), 128))\n ], 6)\n ]),\n ($props.showSpacer)\n ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"p-virtualscroller-spacer\",\n style: normalizeStyle($data.spacerStyle)\n }, null, 4))\n : createCommentVNode(\"\", true),\n (!$props.loaderDisabled && $props.showLoader && $data.d_loading)\n ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: normalizeClass($options.loaderClass)\n }, [\n (_ctx.$slots && _ctx.$slots.loader)\n ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList($data.loaderArr, (_, index) => {\n return renderSlot(_ctx.$slots, \"loader\", {\n key: index,\n options: $options.getLoaderOptions(index, $options.isBoth() && { numCols: _ctx.d_numItemsInViewport.cols })\n })\n }), 128))\n : (openBlock(), createElementBlock(\"i\", _hoisted_2))\n ], 2))\n : createCommentVNode(\"\", true)\n ], 46, _hoisted_1))\n : (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n renderSlot(_ctx.$slots, \"default\"),\n renderSlot(_ctx.$slots, \"content\", {\n items: $props.items,\n rows: $props.items,\n columns: $options.loadedColumns\n })\n ], 64))\n}\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \"\\n.p-virtualscroller {\\n position: relative;\\n overflow: auto;\\n contain: strict;\\n -webkit-transform: translateZ(0);\\n transform: translateZ(0);\\n will-change: scroll-position;\\n outline: 0 none;\\n}\\n.p-virtualscroller-content {\\n position: absolute;\\n top: 0;\\n left: 0;\\n contain: content;\\n min-height: 100%;\\n min-width: 100%;\\n will-change: transform;\\n}\\n.p-virtualscroller-spacer {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 1px;\\n width: 1px;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n pointer-events: none;\\n}\\n.p-virtualscroller .p-virtualscroller-loader {\\n position: sticky;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.p-virtualscroller-loader.p-component-overlay {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n\";\nstyleInject(css_248z);\n\nscript.render = render;\n\nexport { script as default };\n"],"sourceRoot":""}