{"version":3,"file":"js/4334.3ff21045d23964dc.js","mappings":"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","sources":["webpack://@sazka/web/../../libs/design-system/src/loader/loader.ts","webpack://@sazka/web/../../libs/utils/composables/use-breakpoints.ts","webpack://@sazka/web/../../node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.13_vue@3.5.13_typescript@5.7.3__webpack@5.95.0_@swc+c_34j4td3qllqrpsyknfjyyfkdq4/node_modules/vue-loader/dist/exportHelper.js","webpack://@sazka/web/../../node_modules/@primevue/icons/blank/index.mjs","webpack://@sazka/web/../../node_modules/@primevue/icons/check/index.mjs","webpack://@sazka/web/../../node_modules/@primevue/icons/search/index.mjs","webpack://@sazka/web/../../node_modules/@primevue/icons/times/index.mjs","webpack://@sazka/web/../../node_modules/@primeuix/styles/iconfield/index.mjs","webpack://@sazka/web/../../node_modules/primevue/iconfield/style/index.mjs","webpack://@sazka/web/../../node_modules/primevue/iconfield/index.mjs","webpack://@sazka/web/../../node_modules/primevue/inputicon/style/index.mjs","webpack://@sazka/web/../../node_modules/primevue/inputicon/index.mjs","webpack://@sazka/web/../../node_modules/@primeuix/styles/virtualscroller/index.mjs","webpack://@sazka/web/../../node_modules/primevue/virtualscroller/style/index.mjs","webpack://@sazka/web/../../node_modules/primevue/virtualscroller/index.mjs","webpack://@sazka/web/../../node_modules/@primeuix/styles/select/index.mjs","webpack://@sazka/web/../../node_modules/primevue/select/style/index.mjs","webpack://@sazka/web/../../node_modules/primevue/select/index.mjs","webpack://@sazka/web/../../libs/design-system/src/forms/components/ds-dropdown/ds-dropdown-pt.ts","webpack://@sazka/web/../../libs/design-system/src/forms/components/ds-dropdown.vue?bda5","webpack://@sazka/web/../../libs/design-system/src/forms/components/ds-dropdown.vue","webpack://@sazka/web/../../libs/design-system/src/forms/components/ds-dropdown.vue?462b"],"sourcesContent":["import { documentReady } from \"@sazka/utils/document-ready\";\r\n\r\ndeclare const environment: any;\r\ntype ColorVariant = \"yellow\" | \"blue\";\r\n\r\n/**\r\n * Loader tells user, he has to wait for some ajax operation\r\n */\r\nexport class Loader {\r\n    private static showTimeout: number;\r\n    private static hideTimeout: number;\r\n    private static lockNumber = 0;\r\n    public static get isShown() {\r\n        return this.lockNumber > 0;\r\n    }\r\n\r\n    static {\r\n        // loader from backend\r\n        if (document.body) {\r\n            this.showLoaderFromBackend();\r\n        } else {\r\n            documentReady(() => {\r\n                this.showLoaderFromBackend();\r\n            });\r\n        }\r\n    }\r\n\r\n    static showLoaderFromBackend() {\r\n        if (document.body.classList.contains(\"loader\")) {\r\n            this.lockNumber++;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Shows loader after some time in miliseconds\r\n     * This is to reduce flickering when ajax actions are super-fast\r\n     *\r\n     * @param showLoaderIn Time in miliseconds, after which, loaded will be shown\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static show(showLoaderIn = 30, text?: string, aboveAll = false, color: ColorVariant = \"yellow\") {\r\n        this.clearTimeout();\r\n        this.lockNumber++;\r\n\r\n        this.showTimeout = window.setTimeout(() => {\r\n            this.showNow(text, aboveAll, true, color);\r\n        }, showLoaderIn);\r\n    }\r\n\r\n    /**\r\n     * Shows loader right away\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showNow(text?: string, aboveAll = false, counted = false, color: ColorVariant = \"yellow\") {\r\n        if (!counted) {\r\n            this.lockNumber++;\r\n        }\r\n\r\n        if (!environment.isEditMode) {\r\n            const loader = document.getElementById(\"loader\");\r\n\r\n            if (!loader) return;\r\n\r\n            if (aboveAll) {\r\n                loader.classList.add(\"loader--above-all\");\r\n            } else {\r\n                loader.classList.remove(\"loader--above-all\");\r\n            }\r\n            if (text) {\r\n                loader.querySelector(\".loader__text\").textContent = text;\r\n                loader.classList.add(\"loader--with-text\");\r\n            } else {\r\n                loader.querySelector(\".loader__text\").textContent = \"\";\r\n                loader.classList.remove(\"loader--with-text\");\r\n            }\r\n\r\n            if (color === \"blue\") {\r\n                loader.classList.add(\"loader--blue\");\r\n            }\r\n\r\n            document.body.classList.add(\"loader\", \"loader--fade-in\");\r\n            this.clearTimeout();\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Shows loader after delay with z-index of 9999\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showAboveAll(showLoaderIn = 30, text?: string) {\r\n        this.show(showLoaderIn, text, true);\r\n    }\r\n\r\n    /**\r\n     * Shows loader right away with z-index of 9999\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showNowAboveAll(text?: string) {\r\n        this.showNow(text, true);\r\n    }\r\n\r\n    /**\r\n     * Hides loader\r\n     */\r\n    static hide() {\r\n        this.lockNumber--;\r\n        if (this.lockNumber > 0) return;\r\n\r\n        this.clearTimeout();\r\n        document.body.classList.remove(\"loader--fade-in\");\r\n        this.hideTimeout = window.setTimeout(() => {\r\n            document.body.classList.remove(\"loader\");\r\n            const loader = document.getElementById(\"loader\");\r\n            loader.querySelector(\".loader__text\").textContent = \"\";\r\n            loader.classList.remove(\"loader--with-text\");\r\n        }, 150);\r\n    }\r\n\r\n    private static clearTimeout() {\r\n        if (this.showTimeout) {\r\n            clearTimeout(this.showTimeout);\r\n            this.showTimeout = null;\r\n        }\r\n        if (this.hideTimeout) {\r\n            clearTimeout(this.hideTimeout);\r\n            this.hideTimeout = null;\r\n        }\r\n    }\r\n}\r\n","import { Ref, ref } from \"vue\";\r\nimport { ResponsiveUtils } from \"../responsive-utils\";\r\n\r\ntype BreakpointType = keyof Omit<typeof ResponsiveUtils.breakpoints, \"xs\">;\r\ntype ReactiveBreakpoint = {\r\n    key: BreakpointType;\r\n    minSize: (typeof ResponsiveUtils.breakpoints)[BreakpointType];\r\n    isInUse: boolean;\r\n    value: Ref<boolean>;\r\n};\r\n\r\nlet initialized = false;\r\nlet reactiveBreakpoints: ReactiveBreakpoint[] = null;\r\n\r\n/**\r\n * Returns ref with boolean value, which means, current breakpoint is same or bigger\r\n * eg. media min-width: x\r\n * since its breakpoint up, it doesnt make sense for 'xs' which would be always true, so its omited\r\n * @param breakpoints breakpoint name eg. 'xs2' or 'xl'\r\n * @returns boolean\r\n */\r\nexport function useBreakpoints(breakpoints: BreakpointType): Ref<boolean>;\r\n\r\n/**\r\n * Returns object, with keys same as parameter value, their value is ref with boolean value, which means, current breakpoint is same or bigger\r\n * eg. media min-width: x\r\n * Example of return value: { sm: ref(true), md: ref(false) }\r\n * Returns only value passed in parametrs,\r\n * since its breakpoint up, it doesnt make sense for 'xs' which would be always true, so its omited\r\n * @param breakpoints all breakpoint names eg. 'xs2' or 'xl'\r\n */\r\nexport function useBreakpoints(...breakpoints: BreakpointType[]): { [key in BreakpointType]: Ref<boolean> };\r\n\r\nexport function useBreakpoints(...breakpoints: BreakpointType[]) {\r\n    if (breakpoints?.length == 0) return;\r\n\r\n    initialize();\r\n\r\n    if (breakpoints.length > 1) {\r\n        return breakpoints.reduce((acc, x) => {\r\n            acc[x] = reactiveBreakpoint(x);\r\n            return acc;\r\n        }, {});\r\n    } else {\r\n        return reactiveBreakpoint(breakpoints[0]);\r\n    }\r\n}\r\n\r\nfunction initialize() {\r\n    if (initialized) return;\r\n    reactiveBreakpoints = Object.keys(ResponsiveUtils.breakpoints)\r\n        .filter((x) => x !== \"xs\")\r\n        .map((x) => ({\r\n            isInUse: false,\r\n            key: x as BreakpointType,\r\n            minSize: ResponsiveUtils.breakpoints[x] as (typeof ResponsiveUtils.breakpoints)[BreakpointType],\r\n            value: ref(false),\r\n        }));\r\n\r\n    initialized = true;\r\n}\r\n\r\nfunction reactiveBreakpoint(breakpoint: BreakpointType) {\r\n    const brkpnt = reactiveBreakpoints.find((x) => x.key === breakpoint);\r\n    if (!brkpnt.isInUse) {\r\n        brkpnt.isInUse = true;\r\n        const media = window.matchMedia(`(min-width: ${brkpnt.minSize}px)`);\r\n        brkpnt.value.value = media.matches;\r\n        media.onchange = (e) => {\r\n            brkpnt.value.value = e.matches;\r\n        };\r\n    }\r\n    return brkpnt.value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n    const target = sfc.__vccOpts || sfc;\n    for (const [key, val] of props) {\n        target[key] = val;\n    }\n    return target;\n};\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n  name: 'BlankIcon',\n  \"extends\": BaseIcon\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"svg\", mergeProps({\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, _ctx.pti()), _cache[0] || (_cache[0] = [createElementVNode(\"rect\", {\n    width: \"1\",\n    height: \"1\",\n    fill: \"currentColor\",\n    \"fill-opacity\": \"0\"\n  }, null, -1)]), 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n  name: 'CheckIcon',\n  \"extends\": BaseIcon\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"svg\", mergeProps({\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, _ctx.pti()), _cache[0] || (_cache[0] = [createElementVNode(\"path\", {\n    d: \"M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z\",\n    fill: \"currentColor\"\n  }, null, -1)]), 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n  name: 'SearchIcon',\n  \"extends\": BaseIcon\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"svg\", mergeProps({\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, _ctx.pti()), _cache[0] || (_cache[0] = [createElementVNode(\"path\", {\n    \"fill-rule\": \"evenodd\",\n    \"clip-rule\": \"evenodd\",\n    d: \"M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z\",\n    fill: \"currentColor\"\n  }, null, -1)]), 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n  name: 'TimesIcon',\n  \"extends\": BaseIcon\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"svg\", mergeProps({\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, _ctx.pti()), _cache[0] || (_cache[0] = [createElementVNode(\"path\", {\n    d: \"M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z\",\n    fill: \"currentColor\"\n  }, null, -1)]), 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","var style=({dt:n})=>`\\n.p-iconfield {\\n    position: relative;\\n}\\n\\n.p-inputicon {\\n    position: absolute;\\n    top: 50%;\\n    margin-top: calc(-1 * (${n(\"icon.size\")} / 2));\\n    color: ${n(\"iconfield.icon.color\")};\\n    line-height: 1;\\n    z-index: 1;\\n}\\n\\n.p-iconfield .p-inputicon:first-child {\\n    inset-inline-start: ${n(\"form.field.padding.x\")};\\n}\\n\\n.p-iconfield .p-inputicon:last-child {\\n    inset-inline-end: ${n(\"form.field.padding.x\")};\\n}\\n\\n.p-iconfield .p-inputtext:not(:first-child),\\n.p-iconfield .p-inputwrapper:not(:first-child) .p-inputtext {\\n    padding-inline-start: calc((${n(\"form.field.padding.x\")} * 2) + ${n(\"icon.size\")});\\n}\\n\\n.p-iconfield .p-inputtext:not(:last-child) {\\n    padding-inline-end: calc((${n(\"form.field.padding.x\")} * 2) + ${n(\"icon.size\")});\\n}\\n\\n.p-iconfield:has(.p-inputfield-sm) .p-inputicon {\\n    font-size: ${n(\"form.field.sm.font.size\")};\\n    width: ${n(\"form.field.sm.font.size\")};\\n    height: ${n(\"form.field.sm.font.size\")};\\n    margin-top: calc(-1 * (${n(\"form.field.sm.font.size\")} / 2));\\n}\\n\\n.p-iconfield:has(.p-inputfield-lg) .p-inputicon {\\n    font-size: ${n(\"form.field.lg.font.size\")};\\n    width: ${n(\"form.field.lg.font.size\")};\\n    height: ${n(\"form.field.lg.font.size\")};\\n    margin-top: calc(-1 * (${n(\"form.field.lg.font.size\")} / 2));\\n}\\n`;export{style};//# sourceMappingURL=index.mjs.map","import { style } from '@primeuix/styles/iconfield';\nimport BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n  root: 'p-iconfield'\n};\nvar IconFieldStyle = BaseStyle.extend({\n  name: 'iconfield',\n  style: style,\n  classes: classes\n});\n\nexport { IconFieldStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport IconFieldStyle from 'primevue/iconfield/style';\nimport { createElementBlock, openBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n  name: 'BaseIconField',\n  \"extends\": BaseComponent,\n  style: IconFieldStyle,\n  provide: function provide() {\n    return {\n      $pcIconField: this,\n      $parentInstance: this\n    };\n  }\n};\n\nvar script = {\n  name: 'IconField',\n  \"extends\": script$1,\n  inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"div\", mergeProps({\n    \"class\": _ctx.cx('root')\n  }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n  root: 'p-inputicon'\n};\nvar InputIconStyle = BaseStyle.extend({\n  name: 'inputicon',\n  classes: classes\n});\n\nexport { InputIconStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport InputIconStyle from 'primevue/inputicon/style';\nimport { createElementBlock, openBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n  name: 'BaseInputIcon',\n  \"extends\": BaseComponent,\n  style: InputIconStyle,\n  props: {\n    \"class\": null\n  },\n  provide: function provide() {\n    return {\n      $pcInputIcon: this,\n      $parentInstance: this\n    };\n  }\n};\n\nvar script = {\n  name: 'InputIcon',\n  \"extends\": script$1,\n  inheritAttrs: false,\n  computed: {\n    containerClass: function containerClass() {\n      return [this.cx('root'), this[\"class\"]];\n    }\n  }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"span\", mergeProps({\n    \"class\": $options.containerClass\n  }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","var style=({dt:r})=>`\\n.p-virtualscroller-loader {\\n    background: ${r(\"virtualscroller.loader.mask.background\")};\\n    color: ${r(\"virtualscroller.loader.mask.color\")};\\n}\\n\\n.p-virtualscroller-loading-icon {\\n    font-size: ${r(\"virtualscroller.loader.icon.size\")};\\n    width: ${r(\"virtualscroller.loader.icon.size\")};\\n    height: ${r(\"virtualscroller.loader.icon.size\")};\\n}\\n`;export{style};//# sourceMappingURL=index.mjs.map","import { style } from '@primeuix/styles/virtualscroller';\nimport BaseStyle from '@primevue/core/base/style';\n\nvar css = \"\\n.p-virtualscroller {\\n    position: relative;\\n    overflow: auto;\\n    contain: strict;\\n    transform: translateZ(0);\\n    will-change: scroll-position;\\n    outline: 0 none;\\n}\\n\\n.p-virtualscroller-content {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    min-height: 100%;\\n    min-width: 100%;\\n    will-change: transform;\\n}\\n\\n.p-virtualscroller-spacer {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    height: 1px;\\n    width: 1px;\\n    transform-origin: 0 0;\\n    pointer-events: none;\\n}\\n\\n.p-virtualscroller-loader {\\n    position: sticky;\\n    top: 0;\\n    left: 0;\\n    width: 100%;\\n    height: 100%;\\n}\\n\\n.p-virtualscroller-loader-mask {\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n}\\n\\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\\n    display: flex;\\n}\\n\\n.p-virtualscroller-inline .p-virtualscroller-content {\\n    position: static;\\n}\\n\";\nvar VirtualScrollerStyle = BaseStyle.extend({\n  name: 'virtualscroller',\n  css: css,\n  style: style\n});\n\nexport { VirtualScrollerStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { findSingle, isVisible, getWidth, getHeight } from '@primeuix/utils/dom';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport VirtualScrollerStyle from 'primevue/virtualscroller/style';\nimport { resolveComponent, createElementBlock, openBlock, mergeProps, renderSlot, createCommentVNode, createElementVNode, Fragment, renderList, createVNode } from 'vue';\n\nvar script$1 = {\n  name: 'BaseVirtualScroller',\n  \"extends\": BaseComponent,\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    resizeDelay: {\n      type: Number,\n      \"default\": 10\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    inline: {\n      type: Boolean,\n      \"default\": false\n    },\n    step: {\n      type: Number,\n      \"default\": 0\n    },\n    appendOnly: {\n      type: Boolean,\n      \"default\": false\n    },\n    autoSize: {\n      type: Boolean,\n      \"default\": false\n    }\n  },\n  style: VirtualScrollerStyle,\n  provide: function provide() {\n    return {\n      $pcVirtualScroller: this,\n      $parentInstance: this\n    };\n  },\n  beforeMount: function beforeMount() {\n    var _this$$primevueConfig;\n    VirtualScrollerStyle.loadCSS({\n      nonce: (_this$$primevueConfig = this.$primevueConfig) === null || _this$$primevueConfig === void 0 || (_this$$primevueConfig = _this$$primevueConfig.csp) === null || _this$$primevueConfig === void 0 ? void 0 : _this$$primevueConfig.nonce\n    });\n  }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script = {\n  name: 'VirtualScroller',\n  \"extends\": script$1,\n  inheritAttrs: false,\n  emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],\n  data: function data() {\n    var both = this.isBoth();\n    return {\n      first: both ? {\n        rows: 0,\n        cols: 0\n      } : 0,\n      last: both ? {\n        rows: 0,\n        cols: 0\n      } : 0,\n      page: both ? {\n        rows: 0,\n        cols: 0\n      } : 0,\n      numItemsInViewport: both ? {\n        rows: 0,\n        cols: 0\n      } : 0,\n      lastScrollPos: both ? {\n        top: 0,\n        left: 0\n      } : 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  resizeTimeout: null,\n  defaultWidth: 0,\n  defaultHeight: 0,\n  defaultContentWidth: 0,\n  defaultContentHeight: 0,\n  isRangeChanged: false,\n  lazyLoadState: {},\n  resizeListener: null,\n  initialized: false,\n  watch: {\n    numToleratedItems: function numToleratedItems(newValue) {\n      this.d_numToleratedItems = newValue;\n    },\n    loading: function loading(newValue, oldValue) {\n      if (this.lazy && newValue !== oldValue && newValue !== this.d_loading) {\n        this.d_loading = newValue;\n      }\n    },\n    items: {\n      handler: function handler(newValue, oldValue) {\n        if (!oldValue || oldValue.length !== (newValue || []).length) {\n          this.init();\n          this.calculateAutoSize();\n        }\n      },\n      deep: true\n    },\n    itemSize: function itemSize() {\n      this.init();\n      this.calculateAutoSize();\n    },\n    orientation: function orientation() {\n      this.lastScrollPos = this.isBoth() ? {\n        top: 0,\n        left: 0\n      } : 0;\n    },\n    scrollHeight: function scrollHeight() {\n      this.init();\n      this.calculateAutoSize();\n    },\n    scrollWidth: function scrollWidth() {\n      this.init();\n      this.calculateAutoSize();\n    }\n  },\n  mounted: function mounted() {\n    this.viewInit();\n    this.lastScrollPos = this.isBoth() ? {\n      top: 0,\n      left: 0\n    } : 0;\n    this.lazyLoadState = this.lazyLoadState || {};\n  },\n  updated: function updated() {\n    !this.initialized && this.viewInit();\n  },\n  unmounted: function unmounted() {\n    this.unbindResizeListener();\n    this.initialized = false;\n  },\n  methods: {\n    viewInit: function viewInit() {\n      if (isVisible(this.element)) {\n        this.setContentEl(this.content);\n        this.init();\n        this.calculateAutoSize();\n        this.bindResizeListener();\n        this.defaultWidth = getWidth(this.element);\n        this.defaultHeight = getHeight(this.element);\n        this.defaultContentWidth = getWidth(this.content);\n        this.defaultContentHeight = getHeight(this.content);\n        this.initialized = true;\n      }\n    },\n    init: function init() {\n      if (!this.disabled) {\n        this.setSize();\n        this.calculateOptions();\n        this.setSpacerSize();\n      }\n    },\n    isVertical: function isVertical() {\n      return this.orientation === 'vertical';\n    },\n    isHorizontal: function isHorizontal() {\n      return this.orientation === 'horizontal';\n    },\n    isBoth: function isBoth() {\n      return this.orientation === 'both';\n    },\n    scrollTo: function scrollTo(options) {\n      //this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n      this.element && this.element.scrollTo(options);\n    },\n    scrollToIndex: function scrollToIndex(index) {\n      var _this = this;\n      var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';\n      var both = this.isBoth();\n      var horizontal = this.isHorizontal();\n      var valid = both ? index.every(function (i) {\n        return i > -1;\n      }) : index > -1;\n      if (valid) {\n        var first = this.first;\n        var _this$element = this.element,\n          _this$element$scrollT = _this$element.scrollTop,\n          scrollTop = _this$element$scrollT === void 0 ? 0 : _this$element$scrollT,\n          _this$element$scrollL = _this$element.scrollLeft,\n          scrollLeft = _this$element$scrollL === void 0 ? 0 : _this$element$scrollL;\n        var _this$calculateNumIte = this.calculateNumItems(),\n          numToleratedItems = _this$calculateNumIte.numToleratedItems;\n        var contentPos = this.getContentPosition();\n        var itemSize = this.itemSize;\n        var calculateFirst = function calculateFirst() {\n          var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n          var _numT = arguments.length > 1 ? arguments[1] : undefined;\n          return _index <= _numT ? 0 : _index;\n        };\n        var calculateCoord = function calculateCoord(_first, _size, _cpos) {\n          return _first * _size + _cpos;\n        };\n        var scrollTo = function scrollTo() {\n          var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n          var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n          return _this.scrollTo({\n            left: left,\n            top: top,\n            behavior: behavior\n          });\n        };\n        var newFirst = both ? {\n          rows: 0,\n          cols: 0\n        } : 0;\n        var isRangeChanged = false,\n          isScrollChanged = false;\n        if (both) {\n          newFirst = {\n            rows: calculateFirst(index[0], numToleratedItems[0]),\n            cols: calculateFirst(index[1], numToleratedItems[1])\n          };\n          scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n          isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n          isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n        } else {\n          newFirst = calculateFirst(index, numToleratedItems);\n          horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n          isScrollChanged = this.lastScrollPos !== (horizontal ? scrollLeft : scrollTop);\n          isRangeChanged = newFirst !== first;\n        }\n        this.isRangeChanged = isRangeChanged;\n        isScrollChanged && (this.first = newFirst);\n      }\n    },\n    scrollInView: function scrollInView(index, to) {\n      var _this2 = this;\n      var behavior = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'auto';\n      if (to) {\n        var both = this.isBoth();\n        var horizontal = this.isHorizontal();\n        var valid = both ? index.every(function (i) {\n          return i > -1;\n        }) : index > -1;\n        if (valid) {\n          var _this$getRenderedRang = this.getRenderedRange(),\n            first = _this$getRenderedRang.first,\n            viewport = _this$getRenderedRang.viewport;\n          var scrollTo = function scrollTo() {\n            var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n            var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n            return _this2.scrollTo({\n              left: left,\n              top: top,\n              behavior: behavior\n            });\n          };\n          var isToStart = to === 'to-start';\n          var isToEnd = to === 'to-end';\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                var pos = (viewport.first - 1) * this.itemSize;\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                var _pos2 = (viewport.first + 1) * this.itemSize;\n                horizontal ? scrollTo(_pos2, 0) : scrollTo(0, _pos2);\n              }\n            }\n          }\n        }\n      } else {\n        this.scrollToIndex(index, behavior);\n      }\n    },\n    getRenderedRange: function getRenderedRange() {\n      var calculateFirstInViewport = function calculateFirstInViewport(_pos, _size) {\n        return Math.floor(_pos / (_size || _pos));\n      };\n      var firstInViewport = this.first;\n      var lastInViewport = 0;\n      if (this.element) {\n        var both = this.isBoth();\n        var horizontal = this.isHorizontal();\n        var _this$element2 = this.element,\n          scrollTop = _this$element2.scrollTop,\n          scrollLeft = _this$element2.scrollLeft;\n        if (both) {\n          firstInViewport = {\n            rows: calculateFirstInViewport(scrollTop, this.itemSize[0]),\n            cols: calculateFirstInViewport(scrollLeft, this.itemSize[1])\n          };\n          lastInViewport = {\n            rows: firstInViewport.rows + this.numItemsInViewport.rows,\n            cols: firstInViewport.cols + this.numItemsInViewport.cols\n          };\n        } else {\n          var scrollPos = horizontal ? scrollLeft : scrollTop;\n          firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);\n          lastInViewport = firstInViewport + this.numItemsInViewport;\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: function calculateNumItems() {\n      var both = this.isBoth();\n      var horizontal = this.isHorizontal();\n      var itemSize = this.itemSize;\n      var contentPos = this.getContentPosition();\n      var contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;\n      var contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;\n      var calculateNumItemsInViewport = function calculateNumItemsInViewport(_contentSize, _itemSize) {\n        return Math.ceil(_contentSize / (_itemSize || _contentSize));\n      };\n      var calculateNumToleratedItems = function calculateNumToleratedItems(_numItems) {\n        return Math.ceil(_numItems / 2);\n      };\n      var numItemsInViewport = both ? {\n        rows: calculateNumItemsInViewport(contentHeight, itemSize[0]),\n        cols: calculateNumItemsInViewport(contentWidth, itemSize[1])\n      } : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, itemSize);\n      var numToleratedItems = this.d_numToleratedItems || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n      return {\n        numItemsInViewport: numItemsInViewport,\n        numToleratedItems: numToleratedItems\n      };\n    },\n    calculateOptions: function calculateOptions() {\n      var _this3 = this;\n      var both = this.isBoth();\n      var first = this.first;\n      var _this$calculateNumIte2 = this.calculateNumItems(),\n        numItemsInViewport = _this$calculateNumIte2.numItemsInViewport,\n        numToleratedItems = _this$calculateNumIte2.numToleratedItems;\n      var calculateLast = function calculateLast(_first, _num, _numT) {\n        var _isCols = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n        return _this3.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n      };\n      var last = both ? {\n        rows: calculateLast(first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n        cols: calculateLast(first.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n      } : calculateLast(first, numItemsInViewport, numToleratedItems);\n      this.last = last;\n      this.numItemsInViewport = numItemsInViewport;\n      this.d_numToleratedItems = numToleratedItems;\n      this.$emit('update:numToleratedItems', this.d_numToleratedItems);\n      if (this.showLoader) {\n        this.loaderArr = both ? Array.from({\n          length: numItemsInViewport.rows\n        }).map(function () {\n          return Array.from({\n            length: numItemsInViewport.cols\n          });\n        }) : Array.from({\n          length: numItemsInViewport\n        });\n      }\n      if (this.lazy) {\n        Promise.resolve().then(function () {\n          var _this3$items;\n          _this3.lazyLoadState = {\n            first: _this3.step ? both ? {\n              rows: 0,\n              cols: first.cols\n            } : 0 : first,\n            last: Math.min(_this3.step ? _this3.step : last, ((_this3$items = _this3.items) === null || _this3$items === void 0 ? void 0 : _this3$items.length) - 1 || 0)\n          };\n          _this3.$emit('lazy-load', _this3.lazyLoadState);\n        });\n      }\n    },\n    calculateAutoSize: function calculateAutoSize() {\n      var _this4 = this;\n      if (this.autoSize && !this.d_loading) {\n        Promise.resolve().then(function () {\n          if (_this4.content) {\n            var both = _this4.isBoth();\n            var horizontal = _this4.isHorizontal();\n            var vertical = _this4.isVertical();\n            _this4.content.style.minHeight = _this4.content.style.minWidth = 'auto';\n            _this4.content.style.position = 'relative';\n            _this4.element.style.contain = 'none';\n\n            /*const [contentWidth, contentHeight] = [getWidth(this.content), getHeight(this.content)];\n             contentWidth !== this.defaultContentWidth && (this.element.style.width = '');\n            contentHeight !== this.defaultContentHeight && (this.element.style.height = '');*/\n\n            var _ref = [getWidth(_this4.element), getHeight(_this4.element)],\n              width = _ref[0],\n              height = _ref[1];\n            (both || horizontal) && (_this4.element.style.width = width < _this4.defaultWidth ? width + 'px' : _this4.scrollWidth || _this4.defaultWidth + 'px');\n            (both || vertical) && (_this4.element.style.height = height < _this4.defaultHeight ? height + 'px' : _this4.scrollHeight || _this4.defaultHeight + 'px');\n            _this4.content.style.minHeight = _this4.content.style.minWidth = '';\n            _this4.content.style.position = '';\n            _this4.element.style.contain = '';\n          }\n        });\n      }\n    },\n    getLast: function getLast() {\n      var _ref2, _this$items;\n      var last = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n      var isCols = arguments.length > 1 ? arguments[1] : undefined;\n      return this.items ? Math.min(isCols ? ((_ref2 = this.columns || this.items[0]) === null || _ref2 === void 0 ? void 0 : _ref2.length) || 0 : ((_this$items = this.items) === null || _this$items === void 0 ? void 0 : _this$items.length) || 0, last) : 0;\n    },\n    getContentPosition: function getContentPosition() {\n      if (this.content) {\n        var style = getComputedStyle(this.content);\n        var left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n        var right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n        var top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n        var bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n        return {\n          left: left,\n          right: right,\n          top: top,\n          bottom: bottom,\n          x: left + right,\n          y: top + bottom\n        };\n      }\n      return {\n        left: 0,\n        right: 0,\n        top: 0,\n        bottom: 0,\n        x: 0,\n        y: 0\n      };\n    },\n    setSize: function setSize() {\n      var _this5 = this;\n      if (this.element) {\n        var both = this.isBoth();\n        var horizontal = this.isHorizontal();\n        var parentElement = this.element.parentElement;\n        var width = this.scrollWidth || \"\".concat(this.element.offsetWidth || parentElement.offsetWidth, \"px\");\n        var height = this.scrollHeight || \"\".concat(this.element.offsetHeight || parentElement.offsetHeight, \"px\");\n        var setProp = function setProp(_name, _value) {\n          return _this5.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: function setSpacerSize() {\n      var _this6 = this;\n      var items = this.items;\n      if (items) {\n        var both = this.isBoth();\n        var horizontal = this.isHorizontal();\n        var contentPos = this.getContentPosition();\n        var setProp = function setProp(_name, _value, _size) {\n          var _cpos = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n          return _this6.spacerStyle = _objectSpread(_objectSpread({}, _this6.spacerStyle), _defineProperty({}, \"\".concat(_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: function setContentPosition(pos) {\n      var _this7 = this;\n      if (this.content && !this.appendOnly) {\n        var both = this.isBoth();\n        var horizontal = this.isHorizontal();\n        var first = pos ? pos.first : this.first;\n        var calculateTranslateVal = function calculateTranslateVal(_first, _size) {\n          return _first * _size;\n        };\n        var setTransform = function setTransform() {\n          var _x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n          var _y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n          return _this7.contentStyle = _objectSpread(_objectSpread({}, _this7.contentStyle), {\n            transform: \"translate3d(\".concat(_x, \"px, \").concat(_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          var translateVal = calculateTranslateVal(first, this.itemSize);\n          horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n        }\n      }\n    },\n    onScrollPositionChange: function onScrollPositionChange(event) {\n      var _this8 = this;\n      var target = event.target;\n      var both = this.isBoth();\n      var horizontal = this.isHorizontal();\n      var contentPos = this.getContentPosition();\n      var calculateScrollPos = function calculateScrollPos(_pos, _cpos) {\n        return _pos ? _pos > _cpos ? _pos - _cpos : _pos : 0;\n      };\n      var calculateCurrentIndex = function calculateCurrentIndex(_pos, _size) {\n        return Math.floor(_pos / (_size || _pos));\n      };\n      var calculateTriggerIndex = function calculateTriggerIndex(_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) {\n        return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n      };\n      var calculateFirst = function calculateFirst(_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight, _isCols) {\n        if (_currentIndex <= _numT) return 0;\n        var firstValue = Math.max(0, _isScrollDownOrRight ? _currentIndex < _triggerIndex ? _first : _currentIndex - _numT : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n        var maxFirst = _this8.getLast(firstValue, _isCols);\n        if (firstValue > maxFirst) return maxFirst - _num;else return firstValue;\n      };\n      var calculateLast = function calculateLast(_currentIndex, _first, _last, _num, _numT, _isCols) {\n        var lastValue = _first + _num + 2 * _numT;\n        if (_currentIndex >= _numT) {\n          lastValue += _numT + 1;\n        }\n        return _this8.getLast(lastValue, _isCols);\n      };\n      var scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n      var scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n      var newFirst = both ? {\n        rows: 0,\n        cols: 0\n      } : 0;\n      var newLast = this.last;\n      var isRangeChanged = false;\n      var newScrollPos = this.lastScrollPos;\n      if (both) {\n        var isScrollDown = this.lastScrollPos.top <= scrollTop;\n        var isScrollRight = this.lastScrollPos.left <= scrollLeft;\n        if (!this.appendOnly || this.appendOnly && (isScrollDown || isScrollRight)) {\n          var currentIndex = {\n            rows: calculateCurrentIndex(scrollTop, this.itemSize[0]),\n            cols: calculateCurrentIndex(scrollLeft, this.itemSize[1])\n          };\n          var 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          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, true)\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          isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n          newScrollPos = {\n            top: scrollTop,\n            left: scrollLeft\n          };\n        }\n      } else {\n        var scrollPos = horizontal ? scrollLeft : scrollTop;\n        var isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n        if (!this.appendOnly || this.appendOnly && isScrollDownOrRight) {\n          var _currentIndex2 = calculateCurrentIndex(scrollPos, this.itemSize);\n          var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n          newFirst = calculateFirst(_currentIndex2, _triggerIndex2, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n          newLast = calculateLast(_currentIndex2, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n          isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n          newScrollPos = scrollPos;\n        }\n      }\n      return {\n        first: newFirst,\n        last: newLast,\n        isRangeChanged: isRangeChanged,\n        scrollPos: newScrollPos\n      };\n    },\n    onScrollChange: function onScrollChange(event) {\n      var _this$onScrollPositio = this.onScrollPositionChange(event),\n        first = _this$onScrollPositio.first,\n        last = _this$onScrollPositio.last,\n        isRangeChanged = _this$onScrollPositio.isRangeChanged,\n        scrollPos = _this$onScrollPositio.scrollPos;\n      if (isRangeChanged) {\n        var newState = {\n          first: first,\n          last: last\n        };\n        this.setContentPosition(newState);\n        this.first = first;\n        this.last = last;\n        this.lastScrollPos = scrollPos;\n        this.$emit('scroll-index-change', newState);\n        if (this.lazy && this.isPageChanged(first)) {\n          var _this$items2, _this$items3;\n          var lazyLoadState = {\n            first: this.step ? Math.min(this.getPageByFirst(first) * this.step, (((_this$items2 = this.items) === null || _this$items2 === void 0 ? void 0 : _this$items2.length) || 0) - this.step) : first,\n            last: Math.min(this.step ? (this.getPageByFirst(first) + 1) * this.step : last, ((_this$items3 = this.items) === null || _this$items3 === void 0 ? void 0 : _this$items3.length) - 1 || 0)\n          };\n          var isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n          isLazyStateChanged && this.$emit('lazy-load', lazyLoadState);\n          this.lazyLoadState = lazyLoadState;\n        }\n      }\n    },\n    onScroll: function onScroll(event) {\n      var _this9 = this;\n      this.$emit('scroll', event);\n      if (this.delay) {\n        if (this.scrollTimeout) {\n          clearTimeout(this.scrollTimeout);\n        }\n        if (this.isPageChanged()) {\n          if (!this.d_loading && this.showLoader) {\n            var _this$onScrollPositio2 = this.onScrollPositionChange(event),\n              isRangeChanged = _this$onScrollPositio2.isRangeChanged;\n            var changed = isRangeChanged || (this.step ? this.isPageChanged() : false);\n            changed && (this.d_loading = true);\n          }\n          this.scrollTimeout = setTimeout(function () {\n            _this9.onScrollChange(event);\n            if (_this9.d_loading && _this9.showLoader && (!_this9.lazy || _this9.loading === undefined)) {\n              _this9.d_loading = false;\n              _this9.page = _this9.getPageByFirst();\n            }\n          }, this.delay);\n        }\n      } else {\n        this.onScrollChange(event);\n      }\n    },\n    onResize: function onResize() {\n      var _this10 = this;\n      if (this.resizeTimeout) {\n        clearTimeout(this.resizeTimeout);\n      }\n      this.resizeTimeout = setTimeout(function () {\n        if (isVisible(_this10.element)) {\n          var both = _this10.isBoth();\n          var vertical = _this10.isVertical();\n          var horizontal = _this10.isHorizontal();\n          var _ref3 = [getWidth(_this10.element), getHeight(_this10.element)],\n            width = _ref3[0],\n            height = _ref3[1];\n          var isDiffWidth = width !== _this10.defaultWidth,\n            isDiffHeight = height !== _this10.defaultHeight;\n          var reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;\n          if (reinit) {\n            _this10.d_numToleratedItems = _this10.numToleratedItems;\n            _this10.defaultWidth = width;\n            _this10.defaultHeight = height;\n            _this10.defaultContentWidth = getWidth(_this10.content);\n            _this10.defaultContentHeight = getHeight(_this10.content);\n            _this10.init();\n          }\n        }\n      }, this.resizeDelay);\n    },\n    bindResizeListener: function bindResizeListener() {\n      if (!this.resizeListener) {\n        this.resizeListener = this.onResize.bind(this);\n        window.addEventListener('resize', this.resizeListener);\n        window.addEventListener('orientationchange', this.resizeListener);\n      }\n    },\n    unbindResizeListener: function unbindResizeListener() {\n      if (this.resizeListener) {\n        window.removeEventListener('resize', this.resizeListener);\n        window.removeEventListener('orientationchange', this.resizeListener);\n        this.resizeListener = null;\n      }\n    },\n    getOptions: function getOptions(renderedIndex) {\n      var count = (this.items || []).length;\n      var index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n      return {\n        index: index,\n        count: count,\n        first: index === 0,\n        last: index === count - 1,\n        even: index % 2 === 0,\n        odd: index % 2 !== 0\n      };\n    },\n    getLoaderOptions: function getLoaderOptions(index, extOptions) {\n      var count = this.loaderArr.length;\n      return _objectSpread({\n        index: index,\n        count: count,\n        first: index === 0,\n        last: index === count - 1,\n        even: index % 2 === 0,\n        odd: index % 2 !== 0\n      }, extOptions);\n    },\n    getPageByFirst: function getPageByFirst(first) {\n      return Math.floor(((first !== null && first !== void 0 ? first : this.first) + this.d_numToleratedItems * 4) / (this.step || 1));\n    },\n    isPageChanged: function isPageChanged(first) {\n      return this.step && !this.lazy ? this.page !== this.getPageByFirst(first !== null && first !== void 0 ? first : this.first) : true;\n    },\n    setContentEl: function setContentEl(el) {\n      this.content = el || this.content || findSingle(this.element, '[data-pc-section=\"content\"]');\n    },\n    elementRef: function elementRef(el) {\n      this.element = el;\n    },\n    contentRef: function contentRef(el) {\n      this.content = el;\n    }\n  },\n  computed: {\n    containerClass: function containerClass() {\n      return ['p-virtualscroller', this[\"class\"], {\n        'p-virtualscroller-inline': this.inline,\n        'p-virtualscroller-both p-both-scroll': this.isBoth(),\n        'p-virtualscroller-horizontal p-horizontal-scroll': this.isHorizontal()\n      }];\n    },\n    contentClass: function contentClass() {\n      return ['p-virtualscroller-content', {\n        'p-virtualscroller-loading': this.d_loading\n      }];\n    },\n    loaderClass: function loaderClass() {\n      return ['p-virtualscroller-loader', {\n        'p-virtualscroller-loader-mask': !this.$slots.loader\n      }];\n    },\n    loadedItems: function loadedItems() {\n      var _this11 = this;\n      if (this.items && !this.d_loading) {\n        if (this.isBoth()) return this.items.slice(this.appendOnly ? 0 : this.first.rows, this.last.rows).map(function (item) {\n          return _this11.columns ? item : item.slice(_this11.appendOnly ? 0 : _this11.first.cols, _this11.last.cols);\n        });else if (this.isHorizontal() && this.columns) return this.items;else return this.items.slice(this.appendOnly ? 0 : this.first, this.last);\n      }\n      return [];\n    },\n    loadedRows: function loadedRows() {\n      return this.d_loading ? this.loaderDisabled ? this.loaderArr : [] : this.loadedItems;\n    },\n    loadedColumns: function loadedColumns() {\n      if (this.columns) {\n        var both = this.isBoth();\n        var horizontal = this.isHorizontal();\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      return this.columns;\n    }\n  },\n  components: {\n    SpinnerIcon: SpinnerIcon\n  }\n};\n\nvar _hoisted_1 = [\"tabindex\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n  return !_ctx.disabled ? (openBlock(), createElementBlock(\"div\", mergeProps({\n    key: 0,\n    ref: $options.elementRef,\n    \"class\": $options.containerClass,\n    tabindex: _ctx.tabindex,\n    style: _ctx.style,\n    onScroll: _cache[0] || (_cache[0] = function () {\n      return $options.onScroll && $options.onScroll.apply($options, arguments);\n    })\n  }, _ctx.ptmi('root')), [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: _ctx.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  }, function () {\n    return [createElementVNode(\"div\", mergeProps({\n      ref: $options.contentRef,\n      \"class\": $options.contentClass,\n      style: $data.contentStyle\n    }, _ctx.ptm('content')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.loadedItems, function (item, index) {\n      return renderSlot(_ctx.$slots, \"item\", {\n        key: index,\n        item: item,\n        options: $options.getOptions(index)\n      });\n    }), 128))], 16)];\n  }), _ctx.showSpacer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n    key: 0,\n    \"class\": \"p-virtualscroller-spacer\",\n    style: $data.spacerStyle\n  }, _ctx.ptm('spacer')), null, 16)) : createCommentVNode(\"\", true), !_ctx.loaderDisabled && _ctx.showLoader && $data.d_loading ? (openBlock(), createElementBlock(\"div\", mergeProps({\n    key: 1,\n    \"class\": $options.loaderClass\n  }, _ctx.ptm('loader')), [_ctx.$slots && _ctx.$slots.loader ? (openBlock(true), createElementBlock(Fragment, {\n    key: 0\n  }, renderList($data.loaderArr, function (_, index) {\n    return renderSlot(_ctx.$slots, \"loader\", {\n      key: index,\n      options: $options.getLoaderOptions(index, $options.isBoth() && {\n        numCols: _ctx.d_numItemsInViewport.cols\n      })\n    });\n  }), 128)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"loadingicon\", {}, function () {\n    return [createVNode(_component_SpinnerIcon, mergeProps({\n      spin: \"\",\n      \"class\": \"p-virtualscroller-loading-icon\"\n    }, _ctx.ptm('loadingIcon')), null, 16)];\n  })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : (openBlock(), createElementBlock(Fragment, {\n    key: 1\n  }, [renderSlot(_ctx.$slots, \"default\"), renderSlot(_ctx.$slots, \"content\", {\n    items: _ctx.items,\n    rows: _ctx.items,\n    columns: $options.loadedColumns\n  })], 64));\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","var style=({dt:e})=>`\\n.p-select {\\n    display: inline-flex;\\n    cursor: pointer;\\n    position: relative;\\n    user-select: none;\\n    background: ${e(\"select.background\")};\\n    border: 1px solid ${e(\"select.border.color\")};\\n    transition: background ${e(\"select.transition.duration\")}, color ${e(\"select.transition.duration\")}, border-color ${e(\"select.transition.duration\")},\\n        outline-color ${e(\"select.transition.duration\")}, box-shadow ${e(\"select.transition.duration\")};\\n    border-radius: ${e(\"select.border.radius\")};\\n    outline-color: transparent;\\n    box-shadow: ${e(\"select.shadow\")};\\n}\\n\\n.p-select:not(.p-disabled):hover {\\n    border-color: ${e(\"select.hover.border.color\")};\\n}\\n\\n.p-select:not(.p-disabled).p-focus {\\n    border-color: ${e(\"select.focus.border.color\")};\\n    box-shadow: ${e(\"select.focus.ring.shadow\")};\\n    outline: ${e(\"select.focus.ring.width\")} ${e(\"select.focus.ring.style\")} ${e(\"select.focus.ring.color\")};\\n    outline-offset: ${e(\"select.focus.ring.offset\")};\\n}\\n\\n.p-select.p-variant-filled {\\n    background: ${e(\"select.filled.background\")};\\n}\\n\\n.p-select.p-variant-filled:not(.p-disabled):hover {\\n    background: ${e(\"select.filled.hover.background\")};\\n}\\n\\n.p-select.p-variant-filled:not(.p-disabled).p-focus {\\n    background: ${e(\"select.filled.focus.background\")};\\n}\\n\\n.p-select.p-invalid {\\n    border-color: ${e(\"select.invalid.border.color\")};\\n}\\n\\n.p-select.p-disabled {\\n    opacity: 1;\\n    background: ${e(\"select.disabled.background\")};\\n}\\n\\n.p-select-clear-icon {\\n    position: absolute;\\n    top: 50%;\\n    margin-top: -0.5rem;\\n    color: ${e(\"select.clear.icon.color\")};\\n    inset-inline-end: ${e(\"select.dropdown.width\")};\\n}\\n\\n.p-select-dropdown {\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n    flex-shrink: 0;\\n    background: transparent;\\n    color: ${e(\"select.dropdown.color\")};\\n    width: ${e(\"select.dropdown.width\")};\\n    border-start-end-radius: ${e(\"select.border.radius\")};\\n    border-end-end-radius: ${e(\"select.border.radius\")};\\n}\\n\\n.p-select-label {\\n    display: block;\\n    white-space: nowrap;\\n    overflow: hidden;\\n    flex: 1 1 auto;\\n    width: 1%;\\n    padding: ${e(\"select.padding.y\")} ${e(\"select.padding.x\")};\\n    text-overflow: ellipsis;\\n    cursor: pointer;\\n    color: ${e(\"select.color\")};\\n    background: transparent;\\n    border: 0 none;\\n    outline: 0 none;\\n}\\n\\n.p-select-label.p-placeholder {\\n    color: ${e(\"select.placeholder.color\")};\\n}\\n\\n.p-select.p-invalid .p-select-label.p-placeholder {\\n    color: ${e(\"select.invalid.placeholder.color\")};\\n}\\n\\n.p-select:has(.p-select-clear-icon) .p-select-label {\\n    padding-inline-end: calc(1rem + ${e(\"select.padding.x\")});\\n}\\n\\n.p-select.p-disabled .p-select-label {\\n    color: ${e(\"select.disabled.color\")};\\n}\\n\\n.p-select-label-empty {\\n    overflow: hidden;\\n    opacity: 0;\\n}\\n\\ninput.p-select-label {\\n    cursor: default;\\n}\\n\\n.p-select .p-select-overlay {\\n    min-width: 100%;\\n}\\n\\n.p-select-overlay {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    background: ${e(\"select.overlay.background\")};\\n    color: ${e(\"select.overlay.color\")};\\n    border: 1px solid ${e(\"select.overlay.border.color\")};\\n    border-radius: ${e(\"select.overlay.border.radius\")};\\n    box-shadow: ${e(\"select.overlay.shadow\")};\\n}\\n\\n.p-select-header {\\n    padding: ${e(\"select.list.header.padding\")};\\n}\\n\\n.p-select-filter {\\n    width: 100%;\\n}\\n\\n.p-select-list-container {\\n    overflow: auto;\\n}\\n\\n.p-select-option-group {\\n    cursor: auto;\\n    margin: 0;\\n    padding: ${e(\"select.option.group.padding\")};\\n    background: ${e(\"select.option.group.background\")};\\n    color: ${e(\"select.option.group.color\")};\\n    font-weight: ${e(\"select.option.group.font.weight\")};\\n}\\n\\n.p-select-list {\\n    margin: 0;\\n    padding: 0;\\n    list-style-type: none;\\n    padding: ${e(\"select.list.padding\")};\\n    gap: ${e(\"select.list.gap\")};\\n    display: flex;\\n    flex-direction: column;\\n}\\n\\n.p-select-option {\\n    cursor: pointer;\\n    font-weight: normal;\\n    white-space: nowrap;\\n    position: relative;\\n    overflow: hidden;\\n    display: flex;\\n    align-items: center;\\n    padding: ${e(\"select.option.padding\")};\\n    border: 0 none;\\n    color: ${e(\"select.option.color\")};\\n    background: transparent;\\n    transition: background ${e(\"select.transition.duration\")}, color ${e(\"select.transition.duration\")}, border-color ${e(\"select.transition.duration\")},\\n            box-shadow ${e(\"select.transition.duration\")}, outline-color ${e(\"select.transition.duration\")};\\n    border-radius: ${e(\"select.option.border.radius\")};\\n}\\n\\n.p-select-option:not(.p-select-option-selected):not(.p-disabled).p-focus {\\n    background: ${e(\"select.option.focus.background\")};\\n    color: ${e(\"select.option.focus.color\")};\\n}\\n\\n.p-select-option.p-select-option-selected {\\n    background: ${e(\"select.option.selected.background\")};\\n    color: ${e(\"select.option.selected.color\")};\\n}\\n\\n.p-select-option.p-select-option-selected.p-focus {\\n    background: ${e(\"select.option.selected.focus.background\")};\\n    color: ${e(\"select.option.selected.focus.color\")};\\n}\\n\\n.p-select-option-blank-icon {\\n    flex-shrink: 0;\\n}\\n\\n.p-select-option-check-icon {\\n    position: relative;\\n    flex-shrink: 0;\\n    margin-inline-start: ${e(\"select.checkmark.gutter.start\")};\\n    margin-inline-end: ${e(\"select.checkmark.gutter.end\")};\\n    color: ${e(\"select.checkmark.color\")};\\n}\\n\\n.p-select-empty-message {\\n    padding: ${e(\"select.empty.message.padding\")};\\n}\\n\\n.p-select-fluid {\\n    display: flex;\\n    width: 100%;\\n}\\n\\n.p-select-sm .p-select-label {\\n    font-size: ${e(\"select.sm.font.size\")};\\n    padding-block: ${e(\"select.sm.padding.y\")};\\n    padding-inline: ${e(\"select.sm.padding.x\")};\\n}\\n\\n.p-select-sm .p-select-dropdown .p-icon {\\n    font-size: ${e(\"select.sm.font.size\")};\\n    width: ${e(\"select.sm.font.size\")};\\n    height: ${e(\"select.sm.font.size\")};\\n}\\n\\n.p-select-lg .p-select-label {\\n    font-size: ${e(\"select.lg.font.size\")};\\n    padding-block: ${e(\"select.lg.padding.y\")};\\n    padding-inline: ${e(\"select.lg.padding.x\")};\\n}\\n\\n.p-select-lg .p-select-dropdown .p-icon {\\n    font-size: ${e(\"select.lg.font.size\")};\\n    width: ${e(\"select.lg.font.size\")};\\n    height: ${e(\"select.lg.font.size\")};\\n}\\n`;export{style};//# sourceMappingURL=index.mjs.map","import { style } from '@primeuix/styles/select';\nimport BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n  root: function root(_ref) {\n    var instance = _ref.instance,\n      props = _ref.props,\n      state = _ref.state;\n    return ['p-select p-component p-inputwrapper', {\n      'p-disabled': props.disabled,\n      'p-invalid': instance.$invalid,\n      'p-variant-filled': instance.$variant === 'filled',\n      'p-focus': state.focused,\n      'p-inputwrapper-filled': instance.$filled,\n      'p-inputwrapper-focus': state.focused || state.overlayVisible,\n      'p-select-open': state.overlayVisible,\n      'p-select-fluid': instance.$fluid,\n      'p-select-sm p-inputfield-sm': props.size === 'small',\n      'p-select-lg p-inputfield-lg': props.size === 'large'\n    }];\n  },\n  label: function label(_ref2) {\n    var instance = _ref2.instance,\n      props = _ref2.props;\n    return ['p-select-label', {\n      'p-placeholder': !props.editable && instance.label === props.placeholder,\n      'p-select-label-empty': !props.editable && !instance.$slots['value'] && (instance.label === 'p-emptylabel' || instance.label.length === 0)\n    }];\n  },\n  clearIcon: 'p-select-clear-icon',\n  dropdown: 'p-select-dropdown',\n  loadingicon: 'p-select-loading-icon',\n  dropdownIcon: 'p-select-dropdown-icon',\n  overlay: 'p-select-overlay p-component',\n  header: 'p-select-header',\n  pcFilter: 'p-select-filter',\n  listContainer: 'p-select-list-container',\n  list: 'p-select-list',\n  optionGroup: 'p-select-option-group',\n  optionGroupLabel: 'p-select-option-group-label',\n  option: function option(_ref3) {\n    var instance = _ref3.instance,\n      props = _ref3.props,\n      state = _ref3.state,\n      _option = _ref3.option,\n      focusedOption = _ref3.focusedOption;\n    return ['p-select-option', {\n      'p-select-option-selected': instance.isSelected(_option) && props.highlightOnSelect,\n      'p-focus': state.focusedOptionIndex === focusedOption,\n      'p-disabled': instance.isOptionDisabled(_option)\n    }];\n  },\n  optionLabel: 'p-select-option-label',\n  optionCheckIcon: 'p-select-option-check-icon',\n  optionBlankIcon: 'p-select-option-blank-icon',\n  emptyMessage: 'p-select-empty-message'\n};\nvar SelectStyle = BaseStyle.extend({\n  name: 'select',\n  style: style,\n  classes: classes\n});\n\nexport { SelectStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { findSingle, getFocusableElements, isVisible, focus, isTouchDevice, relativePosition, getOuterWidth, absolutePosition, addStyle, getLastFocusableElement, getFirstFocusableElement, isAndroid } from '@primeuix/utils/dom';\nimport { isNotEmpty, findLastIndex, equals, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\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 BaseInput from '@primevue/core/baseinput';\nimport SelectStyle from 'primevue/select/style';\nimport { resolveComponent, resolveDirective, createElementBlock, openBlock, mergeProps, renderSlot, createCommentVNode, createElementVNode, createVNode, createTextVNode, toDisplayString, normalizeClass, createBlock, resolveDynamicComponent, withCtx, Transition, normalizeProps, createSlots, Fragment, renderList, withDirectives } from 'vue';\n\nvar script$1 = {\n  name: 'BaseSelect',\n  \"extends\": BaseInput,\n  props: {\n    options: Array,\n    optionLabel: [String, Function],\n    optionValue: [String, Function],\n    optionDisabled: [String, Function],\n    optionGroupLabel: [String, Function],\n    optionGroupChildren: [String, Function],\n    scrollHeight: {\n      type: String,\n      \"default\": '14rem'\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    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, Object],\n      \"default\": null\n    },\n    inputStyle: {\n      type: Object,\n      \"default\": null\n    },\n    labelId: {\n      type: String,\n      \"default\": null\n    },\n    labelClass: {\n      type: [String, Object],\n      \"default\": null\n    },\n    labelStyle: {\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    panelStyle: {\n      type: Object,\n      \"default\": null\n    },\n    appendTo: {\n      type: [String, Object],\n      \"default\": 'body'\n    },\n    loading: {\n      type: Boolean,\n      \"default\": false\n    },\n    clearIcon: {\n      type: String,\n      \"default\": undefined\n    },\n    dropdownIcon: {\n      type: String,\n      \"default\": undefined\n    },\n    filterIcon: {\n      type: String,\n      \"default\": undefined\n    },\n    loadingIcon: {\n      type: String,\n      \"default\": undefined\n    },\n    resetFilterOnHide: {\n      type: Boolean,\n      \"default\": false\n    },\n    resetFilterOnClear: {\n      type: Boolean,\n      \"default\": false\n    },\n    virtualScrollerOptions: {\n      type: Object,\n      \"default\": null\n    },\n    autoOptionFocus: {\n      type: Boolean,\n      \"default\": false\n    },\n    autoFilterFocus: {\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    highlightOnSelect: {\n      type: Boolean,\n      \"default\": true\n    },\n    checkmark: {\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    ariaLabel: {\n      type: String,\n      \"default\": null\n    },\n    ariaLabelledby: {\n      type: String,\n      \"default\": null\n    }\n  },\n  style: SelectStyle,\n  provide: function provide() {\n    return {\n      $pcSelect: this,\n      $parentInstance: this\n    };\n  }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script = {\n  name: 'Select',\n  \"extends\": script$1,\n  inheritAttrs: false,\n  emits: ['change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n  outsideClickListener: null,\n  scrollHandler: null,\n  resizeListener: null,\n  labelClickListener: null,\n  matchMediaOrientationListener: null,\n  overlay: null,\n  list: null,\n  virtualScroller: null,\n  searchTimeout: null,\n  searchValue: null,\n  isModelValueChanged: false,\n  data: function data() {\n    return {\n      clicked: false,\n      focused: false,\n      focusedOptionIndex: -1,\n      filterValue: null,\n      overlayVisible: false,\n      queryOrientation: null\n    };\n  },\n  watch: {\n    modelValue: function modelValue() {\n      this.isModelValueChanged = true;\n    },\n    options: function options() {\n      this.autoUpdateModel();\n    }\n  },\n  mounted: function mounted() {\n    this.autoUpdateModel();\n    this.bindLabelClickListener();\n    this.bindMatchMediaOrientationListener();\n  },\n  updated: function updated() {\n    if (this.overlayVisible && this.isModelValueChanged) {\n      this.scrollInView(this.findSelectedOptionIndex());\n    }\n    this.isModelValueChanged = false;\n  },\n  beforeUnmount: function beforeUnmount() {\n    this.unbindOutsideClickListener();\n    this.unbindResizeListener();\n    this.unbindLabelClickListener();\n    this.unbindMatchMediaOrientationListener();\n    if (this.scrollHandler) {\n      this.scrollHandler.destroy();\n      this.scrollHandler = null;\n    }\n    if (this.overlay) {\n      ZIndex.clear(this.overlay);\n      this.overlay = null;\n    }\n  },\n  methods: {\n    getOptionIndex: function getOptionIndex(index, fn) {\n      return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n    },\n    getOptionLabel: function getOptionLabel(option) {\n      return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n    },\n    getOptionValue: function getOptionValue(option) {\n      return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n    },\n    getOptionRenderKey: function getOptionRenderKey(option, index) {\n      return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n    },\n    getPTItemOptions: function getPTItemOptions(option, itemOptions, index, key) {\n      return this.ptm(key, {\n        context: {\n          option: option,\n          index: index,\n          selected: this.isSelected(option),\n          focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n          disabled: this.isOptionDisabled(option)\n        }\n      });\n    },\n    isOptionDisabled: function isOptionDisabled(option) {\n      return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n    },\n    isOptionGroup: function isOptionGroup(option) {\n      return this.optionGroupLabel && option.optionGroup && option.group;\n    },\n    getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n      return resolveFieldData(optionGroup, this.optionGroupLabel);\n    },\n    getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n      return resolveFieldData(optionGroup, this.optionGroupChildren);\n    },\n    getAriaPosInset: function getAriaPosInset(index) {\n      var _this = this;\n      return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n        return _this.isOptionGroup(option);\n      }).length : index) + 1;\n    },\n    show: function show(isFocus) {\n      this.$emit('before-show');\n      this.overlayVisible = true;\n      this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n      isFocus && focus(this.$refs.focusInput);\n    },\n    hide: function hide(isFocus) {\n      var _this2 = this;\n      var _hide = function _hide() {\n        _this2.$emit('before-hide');\n        _this2.overlayVisible = false;\n        _this2.clicked = false;\n        _this2.focusedOptionIndex = -1;\n        _this2.searchValue = '';\n        _this2.resetFilterOnHide && (_this2.filterValue = null);\n        isFocus && focus(_this2.$refs.focusInput);\n      };\n      setTimeout(function () {\n        _hide();\n      }, 0); // For ScreenReaders\n    },\n    onFocus: function onFocus(event) {\n      if (this.disabled) {\n        // For ScreenReaders\n        return;\n      }\n      this.focused = true;\n      if (this.overlayVisible) {\n        this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n        this.scrollInView(this.focusedOptionIndex);\n      }\n      this.$emit('focus', event);\n    },\n    onBlur: function onBlur(event) {\n      var _this$formField$onBlu, _this$formField;\n      this.focused = false;\n      this.focusedOptionIndex = -1;\n      this.searchValue = '';\n      this.$emit('blur', event);\n      (_this$formField$onBlu = (_this$formField = this.formField).onBlur) === null || _this$formField$onBlu === void 0 || _this$formField$onBlu.call(_this$formField, event);\n    },\n    onKeyDown: function onKeyDown(event) {\n      if (this.disabled || isAndroid()) {\n        event.preventDefault();\n        return;\n      }\n      var metaKey = event.metaKey || event.ctrlKey;\n      switch (event.code) {\n        case 'ArrowDown':\n          this.onArrowDownKey(event);\n          break;\n        case 'ArrowUp':\n          this.onArrowUpKey(event, this.editable);\n          break;\n        case 'ArrowLeft':\n        case 'ArrowRight':\n          this.onArrowLeftKey(event, this.editable);\n          break;\n        case 'Home':\n          this.onHomeKey(event, this.editable);\n          break;\n        case 'End':\n          this.onEndKey(event, this.editable);\n          break;\n        case 'PageDown':\n          this.onPageDownKey(event);\n          break;\n        case 'PageUp':\n          this.onPageUpKey(event);\n          break;\n        case 'Space':\n          this.onSpaceKey(event, this.editable);\n          break;\n        case 'Enter':\n        case 'NumpadEnter':\n          this.onEnterKey(event);\n          break;\n        case 'Escape':\n          this.onEscapeKey(event);\n          break;\n        case 'Tab':\n          this.onTabKey(event);\n          break;\n        case 'Backspace':\n          this.onBackspaceKey(event, this.editable);\n          break;\n        case 'ShiftLeft':\n        case 'ShiftRight':\n          //NOOP\n          break;\n        default:\n          if (!metaKey && isPrintableCharacter(event.key)) {\n            !this.overlayVisible && this.show();\n            !this.editable && this.searchOptions(event, event.key);\n          }\n          break;\n      }\n      this.clicked = false;\n    },\n    onEditableInput: function onEditableInput(event) {\n      var value = event.target.value;\n      this.searchValue = '';\n      var matched = this.searchOptions(event, value);\n      !matched && (this.focusedOptionIndex = -1);\n      this.updateModel(event, value);\n      !this.overlayVisible && isNotEmpty(value) && this.show();\n    },\n    onContainerClick: function onContainerClick(event) {\n      if (this.disabled || this.loading) {\n        return;\n      }\n      if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n        return;\n      } else if (!this.overlay || !this.overlay.contains(event.target)) {\n        this.overlayVisible ? this.hide(true) : this.show(true);\n      }\n      this.clicked = true;\n    },\n    onClearClick: function onClearClick(event) {\n      this.updateModel(event, null);\n      this.resetFilterOnClear && (this.filterValue = null);\n    },\n    onFirstHiddenFocus: function onFirstHiddenFocus(event) {\n      var focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n      focus(focusableEl);\n    },\n    onLastHiddenFocus: function onLastHiddenFocus(event) {\n      var focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n      focus(focusableEl);\n    },\n    onOptionSelect: function onOptionSelect(event, option) {\n      var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n      var value = this.getOptionValue(option);\n      this.updateModel(event, value);\n      isHide && this.hide(true);\n    },\n    onOptionMouseMove: function onOptionMouseMove(event, index) {\n      if (this.focusOnHover) {\n        this.changeFocusedOptionIndex(event, index);\n      }\n    },\n    onFilterChange: function onFilterChange(event) {\n      var value = event.target.value;\n      this.filterValue = value;\n      this.focusedOptionIndex = -1;\n      this.$emit('filter', {\n        originalEvent: event,\n        value: value\n      });\n      !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n    },\n    onFilterKeyDown: function onFilterKeyDown(event) {\n      // Check if the event is part of a text composition process (e.g., for Asian languages).\n      // If event.isComposing is true, it means the user is still composing text and the input is not finalized.\n      if (event.isComposing) return;\n      switch (event.code) {\n        case 'ArrowDown':\n          this.onArrowDownKey(event);\n          break;\n        case 'ArrowUp':\n          this.onArrowUpKey(event, true);\n          break;\n        case 'ArrowLeft':\n        case 'ArrowRight':\n          this.onArrowLeftKey(event, true);\n          break;\n        case 'Home':\n          this.onHomeKey(event, true);\n          break;\n        case 'End':\n          this.onEndKey(event, true);\n          break;\n        case 'Enter':\n        case 'NumpadEnter':\n          this.onEnterKey(event);\n          break;\n        case 'Escape':\n          this.onEscapeKey(event);\n          break;\n        case 'Tab':\n          this.onTabKey(event, true);\n          break;\n      }\n    },\n    onFilterBlur: function onFilterBlur() {\n      this.focusedOptionIndex = -1;\n    },\n    onFilterUpdated: function onFilterUpdated() {\n      if (this.overlayVisible) {\n        this.alignOverlay();\n      }\n    },\n    onOverlayClick: function onOverlayClick(event) {\n      OverlayEventBus.emit('overlay-click', {\n        originalEvent: event,\n        target: this.$el\n      });\n    },\n    onOverlayKeyDown: function onOverlayKeyDown(event) {\n      switch (event.code) {\n        case 'Escape':\n          this.onEscapeKey(event);\n          break;\n      }\n    },\n    onArrowDownKey: function onArrowDownKey(event) {\n      if (!this.overlayVisible) {\n        this.show();\n        this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n      } else {\n        var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n        this.changeFocusedOptionIndex(event, optionIndex);\n      }\n      event.preventDefault();\n    },\n    onArrowUpKey: function onArrowUpKey(event) {\n      var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      if (event.altKey && !pressedInInputText) {\n        if (this.focusedOptionIndex !== -1) {\n          this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n        }\n        this.overlayVisible && this.hide();\n        event.preventDefault();\n      } else {\n        var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n        this.changeFocusedOptionIndex(event, optionIndex);\n        !this.overlayVisible && this.show();\n        event.preventDefault();\n      }\n    },\n    onArrowLeftKey: function onArrowLeftKey(event) {\n      var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      pressedInInputText && (this.focusedOptionIndex = -1);\n    },\n    onHomeKey: function onHomeKey(event) {\n      var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      if (pressedInInputText) {\n        var target = event.currentTarget;\n        if (event.shiftKey) {\n          target.setSelectionRange(0, event.target.selectionStart);\n        } else {\n          target.setSelectionRange(0, 0);\n          this.focusedOptionIndex = -1;\n        }\n      } else {\n        this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n        !this.overlayVisible && this.show();\n      }\n      event.preventDefault();\n    },\n    onEndKey: function onEndKey(event) {\n      var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      if (pressedInInputText) {\n        var target = event.currentTarget;\n        if (event.shiftKey) {\n          target.setSelectionRange(event.target.selectionStart, target.value.length);\n        } else {\n          var len = target.value.length;\n          target.setSelectionRange(len, len);\n          this.focusedOptionIndex = -1;\n        }\n      } else {\n        this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n        !this.overlayVisible && this.show();\n      }\n      event.preventDefault();\n    },\n    onPageUpKey: function onPageUpKey(event) {\n      this.scrollInView(0);\n      event.preventDefault();\n    },\n    onPageDownKey: function onPageDownKey(event) {\n      this.scrollInView(this.visibleOptions.length - 1);\n      event.preventDefault();\n    },\n    onEnterKey: function onEnterKey(event) {\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        this.hide();\n      }\n      event.preventDefault();\n    },\n    onSpaceKey: function onSpaceKey(event) {\n      var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      !pressedInInputText && this.onEnterKey(event);\n    },\n    onEscapeKey: function onEscapeKey(event) {\n      this.overlayVisible && this.hide(true);\n      event.preventDefault();\n      event.stopPropagation(); //@todo will be changed next versionss\n    },\n    onTabKey: function onTabKey(event) {\n      var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      if (!pressedInInputText) {\n        if (this.overlayVisible && this.hasFocusableElements()) {\n          focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n          event.preventDefault();\n        } else {\n          if (this.focusedOptionIndex !== -1) {\n            this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n          }\n          this.overlayVisible && this.hide(this.filter);\n        }\n      }\n    },\n    onBackspaceKey: function onBackspaceKey(event) {\n      var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      if (pressedInInputText) {\n        !this.overlayVisible && this.show();\n      }\n    },\n    onOverlayEnter: function onOverlayEnter(el) {\n      var _this3 = this;\n      ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n      addStyle(el, {\n        position: 'absolute',\n        top: '0',\n        left: '0'\n      });\n      this.alignOverlay();\n      this.scrollInView();\n      setTimeout(function () {\n        _this3.autoFilterFocus && _this3.filter && focus(_this3.$refs.filterInput.$el);\n        _this3.autoUpdateModel();\n      }, 1);\n    },\n    onOverlayAfterEnter: function onOverlayAfterEnter() {\n      this.bindOutsideClickListener();\n      this.bindScrollListener();\n      this.bindResizeListener();\n      this.$emit('show');\n    },\n    onOverlayLeave: function onOverlayLeave() {\n      var _this4 = this;\n      this.unbindOutsideClickListener();\n      this.unbindScrollListener();\n      this.unbindResizeListener();\n      if (this.autoFilterFocus && this.filter && !this.editable) {\n        this.$nextTick(function () {\n          if (_this4.$refs.filterInput) {\n            focus(_this4.$refs.filterInput.$el);\n          }\n        });\n      }\n      this.$emit('hide');\n      this.overlay = null;\n    },\n    onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n      ZIndex.clear(el);\n    },\n    alignOverlay: function alignOverlay() {\n      if (this.appendTo === 'self') {\n        relativePosition(this.overlay, this.$el);\n      } else {\n        this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n        absolutePosition(this.overlay, this.$el);\n      }\n    },\n    bindOutsideClickListener: function bindOutsideClickListener() {\n      var _this5 = this;\n      if (!this.outsideClickListener) {\n        this.outsideClickListener = function (event) {\n          if (_this5.overlayVisible && _this5.overlay && !_this5.$el.contains(event.target) && !_this5.overlay.contains(event.target)) {\n            _this5.hide();\n          }\n        };\n        document.addEventListener('click', this.outsideClickListener, true);\n      }\n    },\n    unbindOutsideClickListener: function unbindOutsideClickListener() {\n      if (this.outsideClickListener) {\n        document.removeEventListener('click', this.outsideClickListener, true);\n        this.outsideClickListener = null;\n      }\n    },\n    bindScrollListener: function bindScrollListener() {\n      var _this6 = this;\n      if (!this.scrollHandler) {\n        this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n          if (_this6.overlayVisible) {\n            _this6.hide();\n          }\n        });\n      }\n      this.scrollHandler.bindScrollListener();\n    },\n    unbindScrollListener: function unbindScrollListener() {\n      if (this.scrollHandler) {\n        this.scrollHandler.unbindScrollListener();\n      }\n    },\n    bindResizeListener: function bindResizeListener() {\n      var _this7 = this;\n      if (!this.resizeListener) {\n        this.resizeListener = function () {\n          if (_this7.overlayVisible && !isTouchDevice()) {\n            _this7.hide();\n          }\n        };\n        window.addEventListener('resize', this.resizeListener);\n      }\n    },\n    unbindResizeListener: function unbindResizeListener() {\n      if (this.resizeListener) {\n        window.removeEventListener('resize', this.resizeListener);\n        this.resizeListener = null;\n      }\n    },\n    bindLabelClickListener: function bindLabelClickListener() {\n      var _this8 = this;\n      if (!this.editable && !this.labelClickListener) {\n        var label = document.querySelector(\"label[for=\\\"\".concat(this.labelId, \"\\\"]\"));\n        if (label && isVisible(label)) {\n          this.labelClickListener = function () {\n            focus(_this8.$refs.focusInput);\n          };\n          label.addEventListener('click', this.labelClickListener);\n        }\n      }\n    },\n    unbindLabelClickListener: function unbindLabelClickListener() {\n      if (this.labelClickListener) {\n        var label = document.querySelector(\"label[for=\\\"\".concat(this.labelId, \"\\\"]\"));\n        if (label && isVisible(label)) {\n          label.removeEventListener('click', this.labelClickListener);\n        }\n      }\n    },\n    bindMatchMediaOrientationListener: function bindMatchMediaOrientationListener() {\n      var _this9 = this;\n      if (!this.matchMediaOrientationListener) {\n        var query = matchMedia(\"(orientation: portrait)\");\n        this.queryOrientation = query;\n        this.matchMediaOrientationListener = function () {\n          _this9.alignOverlay();\n        };\n        this.queryOrientation.addEventListener('change', this.matchMediaOrientationListener);\n      }\n    },\n    unbindMatchMediaOrientationListener: function unbindMatchMediaOrientationListener() {\n      if (this.matchMediaOrientationListener) {\n        this.queryOrientation.removeEventListener('change', this.matchMediaOrientationListener);\n        this.queryOrientation = null;\n        this.matchMediaOrientationListener = null;\n      }\n    },\n    hasFocusableElements: function hasFocusableElements() {\n      return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n    },\n    isOptionExactMatched: function isOptionExactMatched(option) {\n      var _this$getOptionLabel;\n      return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.filterLocale)) == this.searchValue.toLocaleLowerCase(this.filterLocale);\n    },\n    isOptionStartsWith: function isOptionStartsWith(option) {\n      var _this$getOptionLabel2;\n      return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && ((_this$getOptionLabel2 = this.getOptionLabel(option)) === null || _this$getOptionLabel2 === void 0 ? void 0 : _this$getOptionLabel2.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)));\n    },\n    isValidOption: function isValidOption(option) {\n      return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n    },\n    isValidSelectedOption: function isValidSelectedOption(option) {\n      return this.isValidOption(option) && this.isSelected(option);\n    },\n    isSelected: function isSelected(option) {\n      return equals(this.d_value, this.getOptionValue(option), this.equalityKey);\n    },\n    findFirstOptionIndex: function findFirstOptionIndex() {\n      var _this10 = this;\n      return this.visibleOptions.findIndex(function (option) {\n        return _this10.isValidOption(option);\n      });\n    },\n    findLastOptionIndex: function findLastOptionIndex() {\n      var _this11 = this;\n      return findLastIndex(this.visibleOptions, function (option) {\n        return _this11.isValidOption(option);\n      });\n    },\n    findNextOptionIndex: function findNextOptionIndex(index) {\n      var _this12 = this;\n      var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n        return _this12.isValidOption(option);\n      }) : -1;\n      return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n    },\n    findPrevOptionIndex: function findPrevOptionIndex(index) {\n      var _this13 = this;\n      var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n        return _this13.isValidOption(option);\n      }) : -1;\n      return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n    },\n    findSelectedOptionIndex: function findSelectedOptionIndex() {\n      var _this14 = this;\n      return this.$filled ? this.visibleOptions.findIndex(function (option) {\n        return _this14.isValidSelectedOption(option);\n      }) : -1;\n    },\n    findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n      var selectedIndex = this.findSelectedOptionIndex();\n      return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n    },\n    findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n      var selectedIndex = this.findSelectedOptionIndex();\n      return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n    },\n    searchOptions: function searchOptions(event, _char) {\n      var _this15 = this;\n      this.searchValue = (this.searchValue || '') + _char;\n      var optionIndex = -1;\n      var matched = false;\n      if (isNotEmpty(this.searchValue)) {\n        optionIndex = this.visibleOptions.findIndex(function (option) {\n          return _this15.isOptionExactMatched(option);\n        });\n        if (optionIndex === -1) {\n          optionIndex = this.visibleOptions.findIndex(function (option) {\n            return _this15.isOptionStartsWith(option);\n          });\n        }\n        if (optionIndex !== -1) {\n          matched = true;\n        }\n        if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n          optionIndex = this.findFirstFocusedOptionIndex();\n        }\n        if (optionIndex !== -1) {\n          this.changeFocusedOptionIndex(event, optionIndex);\n        }\n      }\n      if (this.searchTimeout) {\n        clearTimeout(this.searchTimeout);\n      }\n      this.searchTimeout = setTimeout(function () {\n        _this15.searchValue = '';\n        _this15.searchTimeout = null;\n      }, 500);\n      return matched;\n    },\n    changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n      if (this.focusedOptionIndex !== index) {\n        this.focusedOptionIndex = index;\n        this.scrollInView();\n        if (this.selectOnFocus) {\n          this.onOptionSelect(event, this.visibleOptions[index], false);\n        }\n      }\n    },\n    scrollInView: function scrollInView() {\n      var _this16 = this;\n      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n      this.$nextTick(function () {\n        var id = index !== -1 ? \"\".concat(_this16.$id, \"_\").concat(index) : _this16.focusedOptionId;\n        var element = findSingle(_this16.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n        if (element) {\n          element.scrollIntoView && element.scrollIntoView({\n            block: 'nearest',\n            inline: 'start'\n          });\n        } else if (!_this16.virtualScrollerDisabled) {\n          _this16.virtualScroller && _this16.virtualScroller.scrollToIndex(index !== -1 ? index : _this16.focusedOptionIndex);\n        }\n      });\n    },\n    autoUpdateModel: function autoUpdateModel() {\n      if (this.autoOptionFocus) {\n        this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n      }\n      if (this.selectOnFocus && this.autoOptionFocus && !this.$filled) {\n        this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n      }\n    },\n    updateModel: function updateModel(event, value) {\n      this.writeValue(value, event);\n      this.$emit('change', {\n        originalEvent: event,\n        value: value\n      });\n    },\n    flatOptions: function flatOptions(options) {\n      var _this17 = this;\n      return (options || []).reduce(function (result, option, index) {\n        result.push({\n          optionGroup: option,\n          group: true,\n          index: index\n        });\n        var optionGroupChildren = _this17.getOptionGroupChildren(option);\n        optionGroupChildren && optionGroupChildren.forEach(function (o) {\n          return result.push(o);\n        });\n        return result;\n      }, []);\n    },\n    overlayRef: function overlayRef(el) {\n      this.overlay = el;\n    },\n    listRef: function listRef(el, contentRef) {\n      this.list = el;\n      contentRef && contentRef(el); // For VirtualScroller\n    },\n    virtualScrollerRef: function virtualScrollerRef(el) {\n      this.virtualScroller = el;\n    }\n  },\n  computed: {\n    visibleOptions: function visibleOptions() {\n      var _this18 = this;\n      var options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n      if (this.filterValue) {\n        var filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n        if (this.optionGroupLabel) {\n          var optionGroups = this.options || [];\n          var filtered = [];\n          optionGroups.forEach(function (group) {\n            var groupChildren = _this18.getOptionGroupChildren(group);\n            var filteredItems = groupChildren.filter(function (item) {\n              return filteredOptions.includes(item);\n            });\n            if (filteredItems.length > 0) filtered.push(_objectSpread(_objectSpread({}, group), {}, _defineProperty({}, typeof _this18.optionGroupChildren === 'string' ? _this18.optionGroupChildren : 'items', _toConsumableArray(filteredItems))));\n          });\n          return this.flatOptions(filtered);\n        }\n        return filteredOptions;\n      }\n      return options;\n    },\n    // @deprecated use $filled instead\n    hasSelectedOption: function hasSelectedOption() {\n      return this.$filled;\n    },\n    label: function label() {\n      var selectedOptionIndex = this.findSelectedOptionIndex();\n      return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n    },\n    editableInputValue: function editableInputValue() {\n      var selectedOptionIndex = this.findSelectedOptionIndex();\n      return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.d_value || '';\n    },\n    equalityKey: function equalityKey() {\n      return this.optionValue ? null : this.dataKey;\n    },\n    searchFields: function searchFields() {\n      return this.filterFields || [this.optionLabel];\n    },\n    filterResultMessageText: function filterResultMessageText() {\n      return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n    },\n    filterMessageText: function filterMessageText() {\n      return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n    },\n    emptyFilterMessageText: function emptyFilterMessageText() {\n      return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n    },\n    emptyMessageText: function emptyMessageText() {\n      return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n    },\n    selectionMessageText: function selectionMessageText() {\n      return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n    },\n    emptySelectionMessageText: function emptySelectionMessageText() {\n      return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n    },\n    selectedMessageText: function selectedMessageText() {\n      return this.$filled ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n    },\n    focusedOptionId: function focusedOptionId() {\n      return this.focusedOptionIndex !== -1 ? \"\".concat(this.$id, \"_\").concat(this.focusedOptionIndex) : null;\n    },\n    ariaSetSize: function ariaSetSize() {\n      var _this19 = this;\n      return this.visibleOptions.filter(function (option) {\n        return !_this19.isOptionGroup(option);\n      }).length;\n    },\n    isClearIconVisible: function isClearIconVisible() {\n      return this.showClear && this.d_value != null && isNotEmpty(this.options);\n    },\n    virtualScrollerDisabled: function virtualScrollerDisabled() {\n      return !this.virtualScrollerOptions;\n    }\n  },\n  directives: {\n    ripple: Ripple\n  },\n  components: {\n    InputText: InputText,\n    VirtualScroller: VirtualScroller,\n    Portal: Portal,\n    InputIcon: InputIcon,\n    IconField: IconField,\n    TimesIcon: TimesIcon,\n    ChevronDownIcon: ChevronDownIcon,\n    SpinnerIcon: SpinnerIcon,\n    SearchIcon: SearchIcon,\n    CheckIcon: CheckIcon,\n    BlankIcon: BlankIcon\n  }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"id\", \"value\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\"];\nvar _hoisted_3 = [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\", \"aria-disabled\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\", \"data-p-selected\", \"data-p-focused\", \"data-p-disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n  var _component_InputText = resolveComponent(\"InputText\");\n  var _component_SearchIcon = resolveComponent(\"SearchIcon\");\n  var _component_InputIcon = resolveComponent(\"InputIcon\");\n  var _component_IconField = resolveComponent(\"IconField\");\n  var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n  var _component_BlankIcon = resolveComponent(\"BlankIcon\");\n  var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n  var _component_Portal = resolveComponent(\"Portal\");\n  var _directive_ripple = resolveDirective(\"ripple\");\n  return openBlock(), createElementBlock(\"div\", mergeProps({\n    ref: \"container\",\n    id: _ctx.$id,\n    \"class\": _ctx.cx('root'),\n    onClick: _cache[11] || (_cache[11] = function () {\n      return $options.onContainerClick && $options.onContainerClick.apply($options, arguments);\n    })\n  }, _ctx.ptmi('root')), [_ctx.editable ? (openBlock(), createElementBlock(\"input\", mergeProps({\n    key: 0,\n    ref: \"focusInput\",\n    id: _ctx.labelId || _ctx.inputId,\n    type: \"text\",\n    \"class\": [_ctx.cx('label'), _ctx.inputClass, _ctx.labelClass],\n    style: [_ctx.inputStyle, _ctx.labelStyle],\n    value: $options.editableInputValue,\n    placeholder: _ctx.placeholder,\n    tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n    disabled: _ctx.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\": _ctx.$id + '_list',\n    \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n    \"aria-invalid\": _ctx.invalid || undefined,\n    onFocus: _cache[0] || (_cache[0] = function () {\n      return $options.onFocus && $options.onFocus.apply($options, arguments);\n    }),\n    onBlur: _cache[1] || (_cache[1] = function () {\n      return $options.onBlur && $options.onBlur.apply($options, arguments);\n    }),\n    onKeydown: _cache[2] || (_cache[2] = function () {\n      return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n    }),\n    onInput: _cache[3] || (_cache[3] = function () {\n      return $options.onEditableInput && $options.onEditableInput.apply($options, arguments);\n    })\n  }, _ctx.ptm('label')), null, 16, _hoisted_2)) : (openBlock(), createElementBlock(\"span\", mergeProps({\n    key: 1,\n    ref: \"focusInput\",\n    id: _ctx.labelId || _ctx.inputId,\n    \"class\": [_ctx.cx('label'), _ctx.inputClass, _ctx.labelClass],\n    style: [_ctx.inputStyle, _ctx.labelStyle],\n    tabindex: !_ctx.disabled ? _ctx.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\": _ctx.$id + '_list',\n    \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n    \"aria-invalid\": _ctx.invalid || undefined,\n    \"aria-disabled\": _ctx.disabled,\n    onFocus: _cache[4] || (_cache[4] = function () {\n      return $options.onFocus && $options.onFocus.apply($options, arguments);\n    }),\n    onBlur: _cache[5] || (_cache[5] = function () {\n      return $options.onBlur && $options.onBlur.apply($options, arguments);\n    }),\n    onKeydown: _cache[6] || (_cache[6] = function () {\n      return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n    })\n  }, _ctx.ptm('label')), [renderSlot(_ctx.$slots, \"value\", {\n    value: _ctx.d_value,\n    placeholder: _ctx.placeholder\n  }, function () {\n    var _$options$label;\n    return [createTextVNode(toDisplayString($options.label === 'p-emptylabel' ? ' ' : (_$options$label = $options.label) !== null && _$options$label !== void 0 ? _$options$label : 'empty'), 1)];\n  })], 16, _hoisted_3)), $options.isClearIconVisible ? renderSlot(_ctx.$slots, \"clearicon\", {\n    key: 2,\n    \"class\": normalizeClass(_ctx.cx('clearIcon')),\n    clearCallback: $options.onClearClick\n  }, function () {\n    return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon ? 'i' : 'TimesIcon'), mergeProps({\n      ref: \"clearIcon\",\n      \"class\": [_ctx.cx('clearIcon'), _ctx.clearIcon],\n      onClick: $options.onClearClick\n    }, _ctx.ptm('clearIcon'), {\n      \"data-pc-section\": \"clearicon\"\n    }), null, 16, [\"class\", \"onClick\"]))];\n  }) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n    \"class\": _ctx.cx('dropdown')\n  }, _ctx.ptm('dropdown')), [_ctx.loading ? renderSlot(_ctx.$slots, \"loadingicon\", {\n    key: 0,\n    \"class\": normalizeClass(_ctx.cx('loadingIcon'))\n  }, function () {\n    return [_ctx.loadingIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n      key: 0,\n      \"class\": [_ctx.cx('loadingIcon'), 'pi-spin', _ctx.loadingIcon],\n      \"aria-hidden\": \"true\"\n    }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n      key: 1,\n      \"class\": _ctx.cx('loadingIcon'),\n      spin: \"\",\n      \"aria-hidden\": \"true\"\n    }, _ctx.ptm('loadingIcon')), null, 16, [\"class\"]))];\n  }) : renderSlot(_ctx.$slots, \"dropdownicon\", {\n    key: 1,\n    \"class\": normalizeClass(_ctx.cx('dropdownIcon'))\n  }, function () {\n    return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n      \"class\": [_ctx.cx('dropdownIcon'), _ctx.dropdownIcon],\n      \"aria-hidden\": \"true\"\n    }, _ctx.ptm('dropdownIcon')), null, 16, [\"class\"]))];\n  })], 16), createVNode(_component_Portal, {\n    appendTo: _ctx.appendTo\n  }, {\n    \"default\": withCtx(function () {\n      return [createVNode(Transition, mergeProps({\n        name: \"p-connected-overlay\",\n        onEnter: $options.onOverlayEnter,\n        onAfterEnter: $options.onOverlayAfterEnter,\n        onLeave: $options.onOverlayLeave,\n        onAfterLeave: $options.onOverlayAfterLeave\n      }, _ctx.ptm('transition')), {\n        \"default\": withCtx(function () {\n          return [$data.overlayVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n            key: 0,\n            ref: $options.overlayRef,\n            \"class\": [_ctx.cx('overlay'), _ctx.panelClass, _ctx.overlayClass],\n            style: [_ctx.panelStyle, _ctx.overlayStyle],\n            onClick: _cache[9] || (_cache[9] = function () {\n              return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n            }),\n            onKeydown: _cache[10] || (_cache[10] = function () {\n              return $options.onOverlayKeyDown && $options.onOverlayKeyDown.apply($options, arguments);\n            })\n          }, _ctx.ptm('overlay')), [createElementVNode(\"span\", mergeProps({\n            ref: \"firstHiddenFocusableElementOnOverlay\",\n            role: \"presentation\",\n            \"aria-hidden\": \"true\",\n            \"class\": \"p-hidden-accessible p-hidden-focusable\",\n            tabindex: 0,\n            onFocus: _cache[7] || (_cache[7] = function () {\n              return $options.onFirstHiddenFocus && $options.onFirstHiddenFocus.apply($options, arguments);\n            })\n          }, _ctx.ptm('hiddenFirstFocusableEl'), {\n            \"data-p-hidden-accessible\": true,\n            \"data-p-hidden-focusable\": true\n          }), null, 16), renderSlot(_ctx.$slots, \"header\", {\n            value: _ctx.d_value,\n            options: $options.visibleOptions\n          }), _ctx.filter ? (openBlock(), createElementBlock(\"div\", mergeProps({\n            key: 0,\n            \"class\": _ctx.cx('header')\n          }, _ctx.ptm('header')), [createVNode(_component_IconField, {\n            unstyled: _ctx.unstyled,\n            pt: _ctx.ptm('pcFilterContainer')\n          }, {\n            \"default\": withCtx(function () {\n              return [createVNode(_component_InputText, {\n                ref: \"filterInput\",\n                type: \"text\",\n                value: $data.filterValue,\n                onVnodeMounted: $options.onFilterUpdated,\n                onVnodeUpdated: $options.onFilterUpdated,\n                \"class\": normalizeClass(_ctx.cx('pcFilter')),\n                placeholder: _ctx.filterPlaceholder,\n                variant: _ctx.variant,\n                unstyled: _ctx.unstyled,\n                role: \"searchbox\",\n                autocomplete: \"off\",\n                \"aria-owns\": _ctx.$id + '_list',\n                \"aria-activedescendant\": $options.focusedOptionId,\n                onKeydown: $options.onFilterKeyDown,\n                onBlur: $options.onFilterBlur,\n                onInput: $options.onFilterChange,\n                pt: _ctx.ptm('pcFilter'),\n                formControl: {\n                  novalidate: true\n                }\n              }, null, 8, [\"value\", \"onVnodeMounted\", \"onVnodeUpdated\", \"class\", \"placeholder\", \"variant\", \"unstyled\", \"aria-owns\", \"aria-activedescendant\", \"onKeydown\", \"onBlur\", \"onInput\", \"pt\"]), createVNode(_component_InputIcon, {\n                unstyled: _ctx.unstyled,\n                pt: _ctx.ptm('pcFilterIconContainer')\n              }, {\n                \"default\": withCtx(function () {\n                  return [renderSlot(_ctx.$slots, \"filtericon\", {}, function () {\n                    return [_ctx.filterIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n                      key: 0,\n                      \"class\": _ctx.filterIcon\n                    }, _ctx.ptm('filterIcon')), null, 16)) : (openBlock(), createBlock(_component_SearchIcon, normalizeProps(mergeProps({\n                      key: 1\n                    }, _ctx.ptm('filterIcon'))), null, 16))];\n                  })];\n                }),\n                _: 3\n              }, 8, [\"unstyled\", \"pt\"])];\n            }),\n            _: 3\n          }, 8, [\"unstyled\", \"pt\"]), createElementVNode(\"span\", mergeProps({\n            role: \"status\",\n            \"aria-live\": \"polite\",\n            \"class\": \"p-hidden-accessible\"\n          }, _ctx.ptm('hiddenFilterResult'), {\n            \"data-p-hidden-accessible\": true\n          }), toDisplayString($options.filterResultMessageText), 17)], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n            \"class\": _ctx.cx('listContainer'),\n            style: {\n              'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n            }\n          }, _ctx.ptm('listContainer')), [createVNode(_component_VirtualScroller, mergeProps({\n            ref: $options.virtualScrollerRef\n          }, _ctx.virtualScrollerOptions, {\n            items: $options.visibleOptions,\n            style: {\n              height: _ctx.scrollHeight\n            },\n            tabindex: -1,\n            disabled: $options.virtualScrollerDisabled,\n            pt: _ctx.ptm('virtualScroller')\n          }), createSlots({\n            content: withCtx(function (_ref) {\n              var styleClass = _ref.styleClass,\n                contentRef = _ref.contentRef,\n                items = _ref.items,\n                getItemOptions = _ref.getItemOptions,\n                contentStyle = _ref.contentStyle,\n                itemSize = _ref.itemSize;\n              return [createElementVNode(\"ul\", mergeProps({\n                ref: function ref(el) {\n                  return $options.listRef(el, contentRef);\n                },\n                id: _ctx.$id + '_list',\n                \"class\": [_ctx.cx('list'), styleClass],\n                style: contentStyle,\n                role: \"listbox\"\n              }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n                return openBlock(), createElementBlock(Fragment, {\n                  key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n                }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n                  key: 0,\n                  id: _ctx.$id + '_' + $options.getOptionIndex(i, getItemOptions),\n                  style: {\n                    height: itemSize ? itemSize + 'px' : undefined\n                  },\n                  \"class\": _ctx.cx('optionGroup'),\n                  role: \"option\",\n                  ref_for: true\n                }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n                  option: option.optionGroup,\n                  index: $options.getOptionIndex(i, getItemOptions)\n                }, function () {\n                  return [createElementVNode(\"span\", mergeProps({\n                    \"class\": _ctx.cx('optionGroupLabel'),\n                    ref_for: true\n                  }, _ctx.ptm('optionGroupLabel')), toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 17)];\n                })], 16, _hoisted_5)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n                  key: 1,\n                  id: _ctx.$id + '_' + $options.getOptionIndex(i, getItemOptions),\n                  \"class\": _ctx.cx('option', {\n                    option: option,\n                    focusedOption: $options.getOptionIndex(i, getItemOptions)\n                  }),\n                  style: {\n                    height: itemSize ? itemSize + 'px' : undefined\n                  },\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: function onClick($event) {\n                    return $options.onOptionSelect($event, option);\n                  },\n                  onMousemove: function onMousemove($event) {\n                    return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n                  },\n                  \"data-p-selected\": $options.isSelected(option),\n                  \"data-p-focused\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n                  \"data-p-disabled\": $options.isOptionDisabled(option),\n                  ref_for: true\n                }, $options.getPTItemOptions(option, getItemOptions, i, 'option')), [_ctx.checkmark ? (openBlock(), createElementBlock(Fragment, {\n                  key: 0\n                }, [$options.isSelected(option) ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n                  key: 0,\n                  \"class\": _ctx.cx('optionCheckIcon'),\n                  ref_for: true\n                }, _ctx.ptm('optionCheckIcon')), null, 16, [\"class\"])) : (openBlock(), createBlock(_component_BlankIcon, mergeProps({\n                  key: 1,\n                  \"class\": _ctx.cx('optionBlankIcon'),\n                  ref_for: true\n                }, _ctx.ptm('optionBlankIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"option\", {\n                  option: option,\n                  selected: $options.isSelected(option),\n                  index: $options.getOptionIndex(i, getItemOptions)\n                }, function () {\n                  return [createElementVNode(\"span\", mergeProps({\n                    \"class\": _ctx.cx('optionLabel'),\n                    ref_for: true\n                  }, _ctx.ptm('optionLabel')), toDisplayString($options.getOptionLabel(option)), 17)];\n                })], 16, _hoisted_6)), [[_directive_ripple]])], 64);\n              }), 128)), $data.filterValue && (!items || items && items.length === 0) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n                key: 0,\n                \"class\": _ctx.cx('emptyMessage'),\n                role: \"option\"\n              }, _ctx.ptm('emptyMessage'), {\n                \"data-p-hidden-accessible\": true\n              }), [renderSlot(_ctx.$slots, \"emptyfilter\", {}, function () {\n                return [createTextVNode(toDisplayString($options.emptyFilterMessageText), 1)];\n              })], 16)) : !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n                key: 1,\n                \"class\": _ctx.cx('emptyMessage'),\n                role: \"option\"\n              }, _ctx.ptm('emptyMessage'), {\n                \"data-p-hidden-accessible\": true\n              }), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n                return [createTextVNode(toDisplayString($options.emptyMessageText), 1)];\n              })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_4)];\n            }),\n            _: 2\n          }, [_ctx.$slots.loader ? {\n            name: \"loader\",\n            fn: withCtx(function (_ref2) {\n              var options = _ref2.options;\n              return [renderSlot(_ctx.$slots, \"loader\", {\n                options: options\n              })];\n            }),\n            key: \"0\"\n          } : undefined]), 1040, [\"items\", \"style\", \"disabled\", \"pt\"])], 16), renderSlot(_ctx.$slots, \"footer\", {\n            value: _ctx.d_value,\n            options: $options.visibleOptions\n          }), !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"span\", mergeProps({\n            key: 1,\n            role: \"status\",\n            \"aria-live\": \"polite\",\n            \"class\": \"p-hidden-accessible\"\n          }, _ctx.ptm('hiddenEmptyMessage'), {\n            \"data-p-hidden-accessible\": true\n          }), toDisplayString($options.emptyMessageText), 17)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n            role: \"status\",\n            \"aria-live\": \"polite\",\n            \"class\": \"p-hidden-accessible\"\n          }, _ctx.ptm('hiddenSelectedMessage'), {\n            \"data-p-hidden-accessible\": true\n          }), toDisplayString($options.selectedMessageText), 17), createElementVNode(\"span\", mergeProps({\n            ref: \"lastHiddenFocusableElementOnOverlay\",\n            role: \"presentation\",\n            \"aria-hidden\": \"true\",\n            \"class\": \"p-hidden-accessible p-hidden-focusable\",\n            tabindex: 0,\n            onFocus: _cache[8] || (_cache[8] = function () {\n              return $options.onLastHiddenFocus && $options.onLastHiddenFocus.apply($options, arguments);\n            })\n          }, _ctx.ptm('hiddenLastFocusableEl'), {\n            \"data-p-hidden-accessible\": true,\n            \"data-p-hidden-focusable\": true\n          }), null, 16)], 16)) : createCommentVNode(\"\", true)];\n        }),\n        _: 3\n      }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n    }),\n    _: 3\n  }, 8, [\"appendTo\"])], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { PassThrough } from \"@primevue/core\";\r\nimport { SelectPassThroughOptions } from \"primevue/select\";\r\n\r\nexport const getDropdownPtOptions = (inputClasses: string[]): PassThrough<SelectPassThroughOptions> => {\r\n    return {\r\n        root: (options) => ({\r\n            class: [\"ds-dropdown__select\", { \"is-dropdown-open\": options.state.overlayVisible }],\r\n        }),\r\n        label: (options) => ({\r\n            active: options.state.overlayVisible,\r\n            class: [\"ds-dropdown__select-label\", inputClasses],\r\n            \"data-test\": \"duration-label\",\r\n        }),\r\n\r\n        dropdown: \"ds-dropdown__select-icon\",\r\n        overlay: \"ds-dropdown__overlay\",\r\n        listContainer: \"ds-dropdown__overlay-container\",\r\n        virtualScroller: {\r\n            root: \"ds-dropdown__overlay-scroller\",\r\n        },\r\n        list: { class: \"ds-dropdown__overlay-list\", \"data-test\": \"dropdown-options\" },\r\n        option: () => ({\r\n            class: [\"ds-dropdown__option\"],\r\n            \"data-test\": \"dropdown-option\",\r\n        }),\r\n        transition: {\r\n            name: \"ds-dropdown-overlay\",\r\n        },\r\n    };\r\n};\r\n","import { useModel as _useModel, mergeModels as _mergeModels, defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, Fragment as _Fragment, createElementBlock as _createElementBlock, mergeProps as _mergeProps, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-dropdown__item ds-dropdown__item--value\" }\nconst _hoisted_2 = { class: \"ds-dropdown__item-text\" }\nconst _hoisted_3 = {\n  key: 1,\n  class: \"ds-dropdown__placeholder\"\n}\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = { class: \"ds-dropdown__item-text\" }\n\nimport { computed, useAttrs, watch } from \"vue\";\r\nimport Select from \"primevue/select\";\r\nimport DsIcon from \"../../icon/ds-icon.vue\";\r\nimport DsButton from \"../../button/ds-button.vue\";\r\nimport DsFormField, { DsFormFieldProps, stripFormFieldProps } from \"./general/ds-form-field.vue\";\r\nimport { DsFormFieldExpose, DsFormFieldValueType } from \"../models/ds-form-field-models\";\r\nimport { useBreakpoints } from \"../../../../utils/composables/use-breakpoints\";\r\n\r\nimport { getDropdownPtOptions } from \"./ds-dropdown/ds-dropdown-pt\";\r\nimport { DsDropdownItemModel } from \"./ds-dropdown/ds-dropdown-models\";\r\n\r\nconst virtualScrollerLimit = 50;\r\n\r\n/**\r\n * Selected value of the dropdown.\r\n */\r\n\nexport default /*@__PURE__*/_defineComponent({\n  ...{ inheritAttrs: false },\n  __name: 'ds-dropdown',\n  props: /*@__PURE__*/_mergeModels({\n    id: {},\n    label: {},\n    tooltipText: {},\n    supportingText: {},\n    errorMessages: {},\n    floatingError: { type: Boolean },\n    disabled: { type: Boolean },\n    required: { type: Boolean },\n    theme: {},\n    isInStorybook: { type: Boolean },\n    options: {},\n    autoValidate: { type: Boolean },\n    validationFn: { type: Function }\n  }, {\n    \"modelValue\": {},\n    \"modelModifiers\": {},\n    \"errorMessages\": { required: false, default: [] },\n    \"errorMessagesModifiers\": {},\n  }),\n  emits: [\"update:modelValue\", \"update:errorMessages\"],\n  setup(__props: any, { expose: __expose }) {\n\r\n\r\nconst { class: wrapperClass, ...attrs } = useAttrs();\r\n\r\nconst modelValue = _useModel<DsFormFieldValueType>(__props, \"modelValue\");\r\n\r\nconst props = __props;\r\nconst wrapperProps = computed(() => stripFormFieldProps(props));\r\n\r\nconst isLg = useBreakpoints(\"lg\");\r\nconst itemSize = computed(() => (!isLg.value ? 40 : 48));\r\nconst virtualScrollerOptions = computed(() =>\r\n    props.options.length > virtualScrollerLimit ? { itemSize: itemSize.value } : undefined\r\n);\r\n\r\nconst scrollHeight = computed(() => `${itemSize.value * 5}px`);\r\n\r\n// slotValueProps doesn't have valid information about currentOption\r\nconst currentSelectedOption = computed(\r\n    () =>\r\n        (modelValue.value || modelValue.value == 0) && props?.options.find((option) => option.value == modelValue.value)\r\n);\r\n\r\n/**\r\n * Error messages for the input field. If the array isnt empty the input field will be marked as invalid.\r\n */\r\nconst errorMessages = _useModel<string[]>(__props, \"errorMessages\");\r\nconst isValid = computed(() => !errorMessages.value.length);\r\n\r\nconst checkIfIsValid = async (): Promise<boolean> => {\r\n    if (props.validationFn) {\r\n        errorMessages.value = await props.validationFn(modelValue.value);\r\n    } else {\r\n        errorMessages.value.length = 0;\r\n    }\r\n\r\n    if (props.required && (modelValue.value == null || modelValue.value == undefined)) {\r\n        errorMessages.value.push(\"Tato položka je povinná\");\r\n    }\r\n\r\n    return isValid.value;\r\n};\r\n\r\nwatch(modelValue, () => {\r\n    errorMessages.value.length = 0;\r\n\r\n    if (props.autoValidate) {\r\n        checkIfIsValid();\r\n    }\r\n});\r\n\r\n__expose<DsFormFieldExpose>({\r\n    checkIfIsValid,\r\n    isValid,\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createBlock(DsFormField, _mergeProps({\n    class: [\"ds-dropdown\", _unref(wrapperClass)]\n  }, wrapperProps.value), {\n    default: _withCtx(({ class: inputClasses }) => [\n      _createVNode(_unref(Select), _mergeProps({\n        name: _ctx.id,\n        disabled: _ctx.disabled,\n        invalid: !isValid.value,\n        options: _ctx.options,\n        optionLabel: \"label\",\n        optionValue: \"value\",\n        optionDisabled: \"disabled\",\n        \"scroll-height\": scrollHeight.value,\n        pt: _unref(getDropdownPtOptions)(inputClasses),\n        modelValue: modelValue.value,\n        \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((modelValue).value = $event))\n      }, attrs, { \"virtual-scroller-options\": virtualScrollerOptions.value }), {\n        dropdownicon: _withCtx((dropdownIconProps) => [\n          _createVNode(DsButton, {\n            type: \"text\",\n            size: \"sm\",\n            class: _normalizeClass([dropdownIconProps.class, 'ds-dropdown__select-icon-button']),\n            \"icon-left\": \"chevron-down\",\n            \"aria-hidden\": \"true\",\n            tabindex: \"-1\",\n            \"is-in-storybook\": _ctx.isInStorybook\n          }, null, 8, [\"class\", \"is-in-storybook\"])\n        ]),\n        value: _withCtx((slotValueProps) => [\n          _createElementVNode(\"div\", _hoisted_1, [\n            (currentSelectedOption.value)\n              ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n                  (currentSelectedOption.value.icon)\n                    ? (_openBlock(), _createBlock(DsIcon, {\n                        key: 0,\n                        name: currentSelectedOption.value.icon,\n                        class: \"ds-dropdown__item-icon\",\n                        \"is-in-storybook\": _ctx.isInStorybook\n                      }, null, 8, [\"name\", \"is-in-storybook\"]))\n                    : _createCommentVNode(\"\", true),\n                  _createElementVNode(\"span\", _hoisted_2, _toDisplayString(currentSelectedOption.value.label), 1)\n                ], 64))\n              : (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(slotValueProps.placeholder), 1))\n          ])\n        ]),\n        option: _withCtx((slotOptionProps) => [\n          _createElementVNode(\"div\", {\n            class: \"ds-dropdown__item ds-dropdown__item--option\",\n            disabled: slotOptionProps.option.disabled\n          }, [\n            (slotOptionProps.option.icon)\n              ? (_openBlock(), _createBlock(DsIcon, {\n                  key: 0,\n                  name: slotOptionProps.option.icon,\n                  class: \"ds-dropdown__item-icon\",\n                  \"is-in-storybook\": _ctx.isInStorybook\n                }, null, 8, [\"name\", \"is-in-storybook\"]))\n              : _createCommentVNode(\"\", true),\n            _createElementVNode(\"span\", _hoisted_5, _toDisplayString(slotOptionProps.option.label), 1)\n          ], 8, _hoisted_4)\n        ]),\n        _: 2\n      }, 1040, [\"name\", \"disabled\", \"invalid\", \"options\", \"scroll-height\", \"pt\", \"modelValue\", \"virtual-scroller-options\"])\n    ]),\n    inputRight: _withCtx(() => _cache[1] || (_cache[1] = [])),\n    _: 1\n  }, 16, [\"class\"]))\n}\n}\n\n})","<template>\r\n    <DsFormField class=\"ds-dropdown\" :class=\"wrapperClass\" v-bind=\"wrapperProps\">\r\n        <template #default=\"{ class: inputClasses }\">\r\n            <Select\r\n                :name=\"id\"\r\n                :disabled\r\n                :invalid=\"!isValid\"\r\n                :options\r\n                optionLabel=\"label\"\r\n                optionValue=\"value\"\r\n                optionDisabled=\"disabled\"\r\n                :scroll-height\r\n                :pt=\"getDropdownPtOptions(inputClasses)\"\r\n                v-model=\"modelValue\"\r\n                v-bind=\"attrs\"\r\n                :virtual-scroller-options=\"virtualScrollerOptions\"\r\n            >\r\n                <template #dropdownicon=\"dropdownIconProps\">\r\n                    <DsButton\r\n                        type=\"text\"\r\n                        size=\"sm\"\r\n                        :class=\"[dropdownIconProps.class, 'ds-dropdown__select-icon-button']\"\r\n                        icon-left=\"chevron-down\"\r\n                        aria-hidden=\"true\"\r\n                        tabindex=\"-1\"\r\n                        :is-in-storybook\r\n                    ></DsButton>\r\n                </template>\r\n                <template #value=\"slotValueProps\">\r\n                    <div class=\"ds-dropdown__item ds-dropdown__item--value\">\r\n                        <template v-if=\"currentSelectedOption\">\r\n                            <DsIcon\r\n                                v-if=\"currentSelectedOption.icon\"\r\n                                :name=\"currentSelectedOption.icon\"\r\n                                class=\"ds-dropdown__item-icon\"\r\n                                :is-in-storybook\r\n                            />\r\n                            <span class=\"ds-dropdown__item-text\">\r\n                                {{ currentSelectedOption.label }}\r\n                            </span>\r\n                        </template>\r\n                        <span class=\"ds-dropdown__placeholder\" v-else>\r\n                            {{ slotValueProps.placeholder }}\r\n                        </span>\r\n                    </div>\r\n                </template>\r\n\r\n                <template #option=\"slotOptionProps\">\r\n                    <div\r\n                        class=\"ds-dropdown__item ds-dropdown__item--option\"\r\n                        :disabled=\"slotOptionProps.option.disabled\"\r\n                    >\r\n                        <DsIcon\r\n                            v-if=\"slotOptionProps.option.icon\"\r\n                            :name=\"slotOptionProps.option.icon\"\r\n                            class=\"ds-dropdown__item-icon\"\r\n                            :is-in-storybook\r\n                        />\r\n                        <span class=\"ds-dropdown__item-text\">\r\n                            {{ slotOptionProps.option.label }}\r\n                        </span>\r\n                    </div>\r\n                </template>\r\n            </Select>\r\n        </template>\r\n        <template #inputRight></template>\r\n    </DsFormField>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs, watch } from \"vue\";\r\nimport Select from \"primevue/select\";\r\nimport DsIcon from \"../../icon/ds-icon.vue\";\r\nimport DsButton from \"../../button/ds-button.vue\";\r\nimport DsFormField, { DsFormFieldProps, stripFormFieldProps } from \"./general/ds-form-field.vue\";\r\nimport { DsFormFieldExpose, DsFormFieldValueType } from \"../models/ds-form-field-models\";\r\nimport { useBreakpoints } from \"../../../../utils/composables/use-breakpoints\";\r\n\r\nimport { getDropdownPtOptions } from \"./ds-dropdown/ds-dropdown-pt\";\r\nimport { DsDropdownItemModel } from \"./ds-dropdown/ds-dropdown-models\";\r\n\r\ndefineOptions({ inheritAttrs: false });\r\nconst { class: wrapperClass, ...attrs } = useAttrs();\r\n\r\nconst virtualScrollerLimit = 50;\r\n\r\n/**\r\n * Selected value of the dropdown.\r\n */\r\nconst modelValue = defineModel<DsFormFieldValueType>();\r\n\r\nconst props = defineProps<\r\n    DsFormFieldProps & {\r\n        /**\r\n         * Array of options for the dropdown. Each option should have a label, value and others.\r\n         */\r\n        options: DsDropdownItemModel[];\r\n\r\n        /**\r\n         * If true, the datepicker will automatically validate the input value.\r\n         */\r\n        autoValidate?: boolean;\r\n\r\n        /**\r\n         * Function to validate the input value. If the function returns an array of strings, the input field will be marked as invalid.\r\n         */\r\n        validationFn?: (value: DsFormFieldValueType) => Promise<string[]> | string[];\r\n    }\r\n>();\r\nconst wrapperProps = computed(() => stripFormFieldProps(props));\r\n\r\nconst isLg = useBreakpoints(\"lg\");\r\nconst itemSize = computed(() => (!isLg.value ? 40 : 48));\r\nconst virtualScrollerOptions = computed(() =>\r\n    props.options.length > virtualScrollerLimit ? { itemSize: itemSize.value } : undefined\r\n);\r\n\r\nconst scrollHeight = computed(() => `${itemSize.value * 5}px`);\r\n\r\n// slotValueProps doesn't have valid information about currentOption\r\nconst currentSelectedOption = computed(\r\n    () =>\r\n        (modelValue.value || modelValue.value == 0) && props?.options.find((option) => option.value == modelValue.value)\r\n);\r\n\r\n/**\r\n * Error messages for the input field. If the array isnt empty the input field will be marked as invalid.\r\n */\r\nconst errorMessages = defineModel<string[]>(\"errorMessages\", { required: false, default: [] });\r\nconst isValid = computed(() => !errorMessages.value.length);\r\n\r\nconst checkIfIsValid = async (): Promise<boolean> => {\r\n    if (props.validationFn) {\r\n        errorMessages.value = await props.validationFn(modelValue.value);\r\n    } else {\r\n        errorMessages.value.length = 0;\r\n    }\r\n\r\n    if (props.required && (modelValue.value == null || modelValue.value == undefined)) {\r\n        errorMessages.value.push(\"Tato položka je povinná\");\r\n    }\r\n\r\n    return isValid.value;\r\n};\r\n\r\nwatch(modelValue, () => {\r\n    errorMessages.value.length = 0;\r\n\r\n    if (props.autoValidate) {\r\n        checkIfIsValid();\r\n    }\r\n});\r\n\r\ndefineExpose<DsFormFieldExpose>({\r\n    checkIfIsValid,\r\n    isValid,\r\n});\r\n</script>\r\n","import script from \"./ds-dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ds-dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__"],"names":["Loader","isShown","this","lockNumber","showLoaderFromBackend","document","body","classList","contains","show","showLoaderIn","text","aboveAll","color","clearTimeout","showTimeout","window","setTimeout","showNow","counted","environment","isEditMode","loader","getElementById","add","remove","querySelector","textContent","showAboveAll","showNowAboveAll","hide","hideTimeout","_defineProperty","_Loader","documentReady","initialized","reactiveBreakpoints","useBreakpoints","breakpoints","length","initialize","reduce","acc","x","reactiveBreakpoint","Object","keys","ResponsiveUtils","filter","map","isInUse","key","minSize","value","ref","breakpoint","brkpnt","find","media","matchMedia","matches","onchange","e","exports","sfc","props","target","__vccOpts","val","script","name","render","_ctx","_cache","$props","$setup","$data","$options","width","height","viewBox","fill","xmlns","pti","d","style","dt","n","classes","root","IconFieldStyle","extend","script$1","provide","$pcIconField","$parentInstance","inheritAttrs","cx","ptmi","$slots","InputIconStyle","$pcInputIcon","computed","containerClass","r","css","VirtualScrollerStyle","id","type","String","items","Array","itemSize","Number","scrollHeight","scrollWidth","orientation","numToleratedItems","delay","resizeDelay","lazy","Boolean","disabled","loaderDisabled","columns","loading","showSpacer","showLoader","tabindex","inline","step","appendOnly","autoSize","$pcVirtualScroller","beforeMount","_this$$primevueConfig","loadCSS","nonce","$primevueConfig","csp","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","t","getOwnPropertySymbols","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","emits","data","both","isBoth","first","rows","cols","last","page","numItemsInViewport","lastScrollPos","top","left","d_numToleratedItems","d_loading","loaderArr","spacerStyle","contentStyle","element","content","scrollTimeout","resizeTimeout","defaultWidth","defaultHeight","defaultContentWidth","defaultContentHeight","isRangeChanged","lazyLoadState","resizeListener","watch","newValue","oldValue","handler","init","calculateAutoSize","deep","mounted","viewInit","updated","unmounted","unbindResizeListener","methods","setContentEl","bindResizeListener","setSize","calculateOptions","setSpacerSize","isVertical","isHorizontal","scrollTo","options","scrollToIndex","index","_this","behavior","undefined","horizontal","valid","every","_this$element","_this$element$scrollT","scrollTop","_this$element$scrollL","scrollLeft","_this$calculateNumIte","calculateNumItems","contentPos","getContentPosition","calculateFirst","_index","_numT","calculateCoord","_first","_size","_cpos","newFirst","isScrollChanged","scrollInView","to","_this2","_this$getRenderedRang","getRenderedRange","viewport","isToStart","isToEnd","pos","_pos2","calculateFirstInViewport","_pos","Math","floor","firstInViewport","lastInViewport","_this$element2","scrollPos","contentWidth","offsetWidth","contentHeight","offsetHeight","calculateNumItemsInViewport","_contentSize","_itemSize","ceil","calculateNumToleratedItems","_numItems","_this3","_this$calculateNumIte2","calculateLast","_num","_isCols","getLast","$emit","from","Promise","resolve","then","_this3$items","min","_this4","vertical","minHeight","minWidth","position","contain","_ref","_ref2","_this$items","isCols","getComputedStyle","parseFloat","paddingLeft","max","right","paddingRight","paddingTop","bottom","paddingBottom","y","_this5","parentElement","concat","setProp","_name","_value","_this6","setContentPosition","_this7","calculateTranslateVal","setTransform","_x","_y","transform","translateVal","onScrollPositionChange","event","_this8","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","_currentIndex","_last","_isScrollDownOrRight","_triggerIndex","firstValue","maxFirst","lastValue","newLast","newScrollPos","isScrollDown","isScrollRight","currentIndex","triggerIndex","isScrollDownOrRight","_currentIndex2","_triggerIndex2","onScrollChange","_this$onScrollPositio","newState","isPageChanged","_this$items2","_this$items3","getPageByFirst","isLazyStateChanged","onScroll","_this9","_this$onScrollPositio2","changed","onResize","_this10","_ref3","isDiffWidth","isDiffHeight","reinit","bind","addEventListener","removeEventListener","getOptions","renderedIndex","count","even","odd","getLoaderOptions","extOptions","el","elementRef","contentRef","contentClass","loaderClass","loadedItems","_this11","slice","item","loadedRows","loadedColumns","components","SpinnerIcon","_hoisted_1","_component_SpinnerIcon","styleClass","getItemOptions","ptm","_","numCols","d_numItemsInViewport","spin","instance","state","$invalid","$variant","focused","$filled","overlayVisible","$fluid","size","label","editable","placeholder","clearIcon","dropdown","loadingicon","dropdownIcon","overlay","header","pcFilter","listContainer","list","optionGroup","optionGroupLabel","option","_option","focusedOption","isSelected","highlightOnSelect","focusedOptionIndex","isOptionDisabled","optionLabel","optionCheckIcon","optionBlankIcon","emptyMessage","SelectStyle","Function","optionValue","optionDisabled","optionGroupChildren","filterPlaceholder","filterLocale","filterMatchMode","filterFields","dataKey","showClear","inputId","inputClass","inputStyle","labelId","labelClass","labelStyle","panelClass","overlayStyle","overlayClass","panelStyle","appendTo","filterIcon","loadingIcon","resetFilterOnHide","resetFilterOnClear","virtualScrollerOptions","autoOptionFocus","autoFilterFocus","selectOnFocus","focusOnHover","checkmark","filterMessage","selectionMessage","emptySelectionMessage","emptyFilterMessage","ariaLabel","ariaLabelledby","$pcSelect","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","a","_arrayLikeToArray","toString","test","isArray","outsideClickListener","scrollHandler","labelClickListener","matchMediaOrientationListener","virtualScroller","searchTimeout","searchValue","isModelValueChanged","clicked","filterValue","queryOrientation","modelValue","autoUpdateModel","bindLabelClickListener","bindMatchMediaOrientationListener","findSelectedOptionIndex","beforeUnmount","unbindOutsideClickListener","unbindLabelClickListener","unbindMatchMediaOrientationListener","destroy","clear","getOptionIndex","fn","virtualScrollerDisabled","getOptionLabel","getOptionValue","getOptionRenderKey","getPTItemOptions","itemOptions","context","selected","isOptionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","visibleOptions","isFocus","findFirstFocusedOptionIndex","$refs","focusInput","_hide","onFocus","onBlur","_this$formField$onBlu","_this$formField","formField","onKeyDown","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","onBackspaceKey","searchOptions","onEditableInput","matched","updateModel","onContainerClick","tagName","getAttribute","closest","onClearClick","onFirstHiddenFocus","focusableEl","relatedTarget","onLastHiddenFocus","onOptionSelect","isHide","onOptionMouseMove","changeFocusedOptionIndex","onFilterChange","originalEvent","onFilterKeyDown","isComposing","onFilterBlur","onFilterUpdated","alignOverlay","onOverlayClick","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","pressedInInputText","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","shiftKey","setSelectionRange","selectionStart","len","stopPropagation","hasFocusableElements","firstHiddenFocusableElementOnOverlay","onOverlayEnter","set","$primevue","config","zIndex","filterInput","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","onOverlayLeave","unbindScrollListener","$nextTick","onOverlayAfterLeave","container","query","isOptionExactMatched","_this$getOptionLabel","isValidOption","toLocaleLowerCase","isOptionStartsWith","_this$getOptionLabel2","startsWith","isValidSelectedOption","d_value","equalityKey","findIndex","_this12","matchedOptionIndex","_this13","_this14","selectedIndex","_char","_this15","_this16","$id","focusedOptionId","scrollIntoView","block","writeValue","flatOptions","_this17","result","overlayRef","listRef","virtualScrollerRef","_this18","filteredOptions","searchFields","optionGroups","filtered","groupChildren","filteredItems","includes","hasSelectedOption","selectedOptionIndex","editableInputValue","filterResultMessageText","filterMessageText","replaceAll","emptyFilterMessageText","locale","searchMessage","emptySearchMessage","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","ariaSetSize","_this19","isClearIconVisible","directives","ripple","InputText","VirtualScroller","Portal","InputIcon","IconField","TimesIcon","ChevronDownIcon","SearchIcon","CheckIcon","BlankIcon","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_component_InputText","_component_SearchIcon","_component_InputIcon","_component_IconField","_component_CheckIcon","_component_BlankIcon","_component_VirtualScroller","_component_Portal","_directive_ripple","onClick","autocomplete","role","invalid","onKeydown","onInput","_$options$label","clearCallback","onEnter","onAfterEnter","onLeave","onAfterLeave","unstyled","pt","onVnodeMounted","onVnodeUpdated","variant","formControl","novalidate","ref_for","$event","onMousemove","getDropdownPtOptions","inputClasses","class","active","transition","virtualScrollerLimit","_defineComponent","__name","_mergeModels","tooltipText","supportingText","errorMessages","floatingError","required","theme","isInStorybook","autoValidate","validationFn","default","setup","__props","expose","__expose","wrapperClass","attrs","useAttrs","_useModel","wrapperProps","stripFormFieldProps","isLg","currentSelectedOption","isValid","checkIfIsValid","async","_openBlock","_createBlock","DsFormField","_mergeProps","_unref","_withCtx","_createVNode","Select","dropdownicon","dropdownIconProps","DsButton","_normalizeClass","slotValueProps","_createElementVNode","_createElementBlock","_Fragment","icon","DsIcon","_createCommentVNode","_toDisplayString","slotOptionProps","inputRight","__exports__"],"sourceRoot":""}