@aquera/nile-elements 1.7.1 → 1.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +7 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +1524 -419
  5. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
  6. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
  7. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +8 -6
  8. package/dist/nile-combobox/group-utils.cjs.js +2 -0
  9. package/dist/nile-combobox/group-utils.cjs.js.map +1 -0
  10. package/dist/nile-combobox/group-utils.esm.js +1 -0
  11. package/dist/nile-combobox/index.cjs.js +2 -0
  12. package/dist/nile-combobox/index.cjs.js.map +1 -0
  13. package/dist/nile-combobox/index.esm.js +1 -0
  14. package/dist/nile-combobox/nile-combobox.cjs.js +2 -0
  15. package/dist/nile-combobox/nile-combobox.cjs.js.map +1 -0
  16. package/dist/nile-combobox/nile-combobox.css.cjs.js +2 -0
  17. package/dist/nile-combobox/nile-combobox.css.cjs.js.map +1 -0
  18. package/dist/nile-combobox/nile-combobox.css.esm.js +715 -0
  19. package/dist/nile-combobox/nile-combobox.esm.js +238 -0
  20. package/dist/nile-combobox/portal-manager.cjs.js +2 -0
  21. package/dist/nile-combobox/portal-manager.cjs.js.map +1 -0
  22. package/dist/nile-combobox/portal-manager.esm.js +1 -0
  23. package/dist/nile-combobox/renderer.cjs.js +2 -0
  24. package/dist/nile-combobox/renderer.cjs.js.map +1 -0
  25. package/dist/nile-combobox/renderer.esm.js +147 -0
  26. package/dist/nile-combobox/search-manager.cjs.js +2 -0
  27. package/dist/nile-combobox/search-manager.cjs.js.map +1 -0
  28. package/dist/nile-combobox/search-manager.esm.js +1 -0
  29. package/dist/nile-combobox/selection-manager.cjs.js +2 -0
  30. package/dist/nile-combobox/selection-manager.cjs.js.map +1 -0
  31. package/dist/nile-combobox/selection-manager.esm.js +1 -0
  32. package/dist/nile-combobox/types.cjs.js +2 -0
  33. package/dist/nile-combobox/types.cjs.js.map +1 -0
  34. package/dist/nile-combobox/types.esm.js +1 -0
  35. package/dist/src/index.d.ts +1 -0
  36. package/dist/src/index.js +1 -0
  37. package/dist/src/index.js.map +1 -1
  38. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js +4 -2
  39. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js.map +1 -1
  40. package/dist/src/nile-combobox/group-utils.d.ts +26 -0
  41. package/dist/src/nile-combobox/group-utils.js +140 -0
  42. package/dist/src/nile-combobox/group-utils.js.map +1 -0
  43. package/dist/src/nile-combobox/index.d.ts +1 -0
  44. package/dist/src/nile-combobox/index.js +2 -0
  45. package/dist/src/nile-combobox/index.js.map +1 -0
  46. package/dist/src/nile-combobox/nile-combobox.css.d.ts +9 -0
  47. package/dist/src/nile-combobox/nile-combobox.css.js +724 -0
  48. package/dist/src/nile-combobox/nile-combobox.css.js.map +1 -0
  49. package/dist/src/nile-combobox/nile-combobox.d.ts +320 -0
  50. package/dist/src/nile-combobox/nile-combobox.js +1739 -0
  51. package/dist/src/nile-combobox/nile-combobox.js.map +1 -0
  52. package/dist/src/nile-combobox/nile-combobox.test.d.ts +1 -0
  53. package/dist/src/nile-combobox/nile-combobox.test.js +551 -0
  54. package/dist/src/nile-combobox/nile-combobox.test.js.map +1 -0
  55. package/dist/src/nile-combobox/portal-manager.d.ts +26 -0
  56. package/dist/src/nile-combobox/portal-manager.js +218 -0
  57. package/dist/src/nile-combobox/portal-manager.js.map +1 -0
  58. package/dist/src/nile-combobox/renderer.d.ts +24 -0
  59. package/dist/src/nile-combobox/renderer.js +279 -0
  60. package/dist/src/nile-combobox/renderer.js.map +1 -0
  61. package/dist/src/nile-combobox/search-manager.d.ts +15 -0
  62. package/dist/src/nile-combobox/search-manager.js +41 -0
  63. package/dist/src/nile-combobox/search-manager.js.map +1 -0
  64. package/dist/src/nile-combobox/selection-manager.d.ts +12 -0
  65. package/dist/src/nile-combobox/selection-manager.js +44 -0
  66. package/dist/src/nile-combobox/selection-manager.js.map +1 -0
  67. package/dist/src/nile-combobox/types.d.ts +53 -0
  68. package/dist/src/nile-combobox/types.js +8 -0
  69. package/dist/src/nile-combobox/types.js.map +1 -0
  70. package/dist/src/version.js +1 -1
  71. package/dist/src/version.js.map +1 -1
  72. package/dist/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +3 -1
  74. package/src/index.ts +1 -0
  75. package/src/nile-breadcrumb-item/nile-breadcrumb-item.ts +4 -2
  76. package/src/nile-combobox/group-utils.ts +157 -0
  77. package/src/nile-combobox/index.ts +1 -0
  78. package/src/nile-combobox/nile-combobox.css.ts +726 -0
  79. package/src/nile-combobox/nile-combobox.test.ts +704 -0
  80. package/src/nile-combobox/nile-combobox.ts +1816 -0
  81. package/src/nile-combobox/portal-manager.ts +263 -0
  82. package/src/nile-combobox/renderer.ts +466 -0
  83. package/src/nile-combobox/search-manager.ts +53 -0
  84. package/src/nile-combobox/selection-manager.ts +57 -0
  85. package/src/nile-combobox/types.ts +63 -0
  86. package/vscode-html-custom-data.json +311 -4
  87. package/web-dev-server.config.mjs +9 -0
  88. package/web-test-runner.config.mjs +11 -0
@@ -0,0 +1,238 @@
1
+ import{__decorate as i}from"tslib";import{html as s}from"lit";import{query as t,state as o,property as e,customElement as n}from"lit/decorators.js";import{classMap as r}from"lit/directives/class-map.js";import{ifDefined as c}from"lit/directives/if-defined.js";import{createRef as l,ref as m}from"lit/directives/ref.js";import{s as h}from"./nile-combobox.css.esm.js";import"../nile-icon/index.esm.js";import"../nile-popup/nile-popup.esm.js";import"../nile-tag/nile-tag.esm.js";import"../nile-option/nile-option.esm.js";import"../nile-checkbox/nile-checkbox.esm.js";import"../nile-loader/nile-loader.esm.js";import{s as a,a as p}from"../internal/animate.esm.js";import{d as g}from"../internal/default-value.esm.js";import{F as v}from"../internal/form.esm.js";import{s as d,g as u}from"../utilities/animation-registry.esm.js";import{H as j}from"../internal/slot.esm.js";import{w as b}from"../internal/event.esm.js";import{w as f}from"../internal/watch.esm.js";import{N as w}from"../internal/nile-element.esm.js";import{C as y}from"./selection-manager.esm.js";import{C as x}from"./search-manager.esm.js";import{C as _}from"./renderer.esm.js";import{C as k}from"./portal-manager.esm.js";import{h as $,g as S,f as A,a as C}from"./group-utils.esm.js";import{V as M}from"../utilities/visibility-manager.esm.js";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/access-request.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/activity-logs.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/adjustment.esm.js";import"../nile-icon/icons/svg/admin-users.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/alert-circle.esm.js";import"../nile-icon/icons/svg/alert.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/analytics.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/applications-2.esm.js";import"../nile-icon/icons/svg/apply-filter.esm.js";import"../nile-icon/icons/svg/apps.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/area.esm.js";import"../nile-icon/icons/svg/array-loop.esm.js";import"../nile-icon/icons/svg/array-of-boolean.esm.js";import"../nile-icon/icons/svg/array-of-integer.esm.js";import"../nile-icon/icons/svg/array-of-string.esm.js";import"../nile-icon/icons/svg/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.esm.js";import"../nile-icon/icons/svg/arrow-left-small.esm.js";import"../nile-icon/icons/svg/arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/arrow-right-small.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrow_left_small.esm.js";import"../nile-icon/icons/svg/arrow_right_small.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attribute.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/automation-details.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bar-and-line-chart.esm.js";import"../nile-icon/icons/svg/bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/bar-chart.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/book-closed.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/border_all.esm.js";import"../nile-icon/icons/svg/box.esm.js";import"../nile-icon/icons/svg/bubble-chart.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/check-circle.esm.js";import"../nile-icon/icons/svg/check-done-01.esm.js";import"../nile-icon/icons/svg/check-done-02.esm.js";import"../nile-icon/icons/svg/chevron-left-double.esm.js";import"../nile-icon/icons/svg/chevron-up.esm.js";import"../nile-icon/icons/svg/class.esm.js";import"../nile-icon/icons/svg/clock-check.esm.js";import"../nile-icon/icons/svg/clock-rewind.esm.js";import"../nile-icon/icons/svg/clock.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/cloud-01.esm.js";import"../nile-icon/icons/svg/code-generator.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/column-02.esm.js";import"../nile-icon/icons/svg/column-add.esm.js";import"../nile-icon/icons/svg/columns-03.esm.js";import"../nile-icon/icons/svg/combo1.esm.js";import"../nile-icon/icons/svg/comment.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/compare.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/copy-06.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/cost-analytics.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-insight.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/dataflow-03.esm.js";import"../nile-icon/icons/svg/dataflow-04.esm.js";import"../nile-icon/icons/svg/default-cursor.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/delete_history.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/dock-to-right.esm.js";import"../nile-icon/icons/svg/document-new.esm.js";import"../nile-icon/icons/svg/done-02.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/donut.esm.js";import"../nile-icon/icons/svg/dotpoints-02.esm.js";import"../nile-icon/icons/svg/dots-grid.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/dowhileloop.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/edit-write.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-03.esm.js";import"../nile-icon/icons/svg/expand-06.esm.js";import"../nile-icon/icons/svg/expand-2.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye-off.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/featured-icon.esm.js";import"../nile-icon/icons/svg/file-06.esm.js";import"../nile-icon/icons/svg/file-check-02.esm.js";import"../nile-icon/icons/svg/file-shield-01.esm.js";import"../nile-icon/icons/svg/file-shield-02.esm.js";import"../nile-icon/icons/svg/file-type-icon.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter-1.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/fingerprint-03.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/folder_delete.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/format_align_justify.esm.js";import"../nile-icon/icons/svg/format_align_left.esm.js";import"../nile-icon/icons/svg/format_align_middle.esm.js";import"../nile-icon/icons/svg/format_align_right.esm.js";import"../nile-icon/icons/svg/format_bold.esm.js";import"../nile-icon/icons/svg/format_clear.esm.js";import"../nile-icon/icons/svg/format_italic.esm.js";import"../nile-icon/icons/svg/format_list_bulleted.esm.js";import"../nile-icon/icons/svg/format_list_numbered.esm.js";import"../nile-icon/icons/svg/format_underline.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/full-union.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/function.esm.js";import"../nile-icon/icons/svg/funnel-02.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/gauge.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe-03.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goal.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/graph.esm.js";import"../nile-icon/icons/svg/graphedit.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/grid-01.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide-01.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/headphones-01.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/horizontal_bar_chart.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/ifelsenew.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/image_2.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/inner-union.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/insert-at-cursor.esm.js";import"../nile-icon/icons/svg/integer.esm.js";import"../nile-icon/icons/svg/intersection.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/key-performance-indicator.esm.js";import"../nile-icon/icons/svg/keyboard-01.esm.js";import"../nile-icon/icons/svg/keyword.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/laptop-01.esm.js";import"../nile-icon/icons/svg/layers-three-02.esm.js";import"../nile-icon/icons/svg/layout-alt-02.esm.js";import"../nile-icon/icons/svg/layout-alt-03.esm.js";import"../nile-icon/icons/svg/left-join.esm.js";import"../nile-icon/icons/svg/left-union.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/life-buoy-01.esm.js";import"../nile-icon/icons/svg/line.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/link_2.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/list.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapper.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/marker-pin-01.esm.js";import"../nile-icon/icons/svg/marker_pin_02.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/menu_close.esm.js";import"../nile-icon/icons/svg/menu_open.esm.js";import"../nile-icon/icons/svg/message-notification-square.esm.js";import"../nile-icon/icons/svg/metric.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/monitor-01.esm.js";import"../nile-icon/icons/svg/mouse.esm.js";import"../nile-icon/icons/svg/move-application.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/my-integration.esm.js";import"../nile-icon/icons/svg/new-calendar.esm.js";import"../nile-icon/icons/svg/ng-action.esm.js";import"../nile-icon/icons/svg/ng-activity.esm.js";import"../nile-icon/icons/svg/ng-alert-circle.esm.js";import"../nile-icon/icons/svg/ng-alert-triangle.esm.js";import"../nile-icon/icons/svg/ng-align-center.esm.js";import"../nile-icon/icons/svg/ng-annotation-x.esm.js";import"../nile-icon/icons/svg/ng-arrow-down.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-down.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/ng-arrow-narrow-right.esm.js";import"../nile-icon/icons/svg/ng-arrow-up.esm.js";import"../nile-icon/icons/svg/ng-bar-chart-12.esm.js";import"../nile-icon/icons/svg/ng-bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/ng-battery-charging.esm.js";import"../nile-icon/icons/svg/ng-bell-01.esm.js";import"../nile-icon/icons/svg/ng-bell-ringing-04.esm.js";import"../nile-icon/icons/svg/ng-bold-01.esm.js";import"../nile-icon/icons/svg/ng-boolean.esm.js";import"../nile-icon/icons/svg/ng-briefcase-01.esm.js";import"../nile-icon/icons/svg/ng-building-01.esm.js";import"../nile-icon/icons/svg/ng-building-05.esm.js";import"../nile-icon/icons/svg/ng-building-07.esm.js";import"../nile-icon/icons/svg/ng-button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/ng-button-loading-blue.esm.js";import"../nile-icon/icons/svg/ng-calendar-plus-02.esm.js";import"../nile-icon/icons/svg/ng-calendar.esm.js";import"../nile-icon/icons/svg/ng-check-circle-broken.esm.js";import"../nile-icon/icons/svg/ng-check-circle.esm.js";import"../nile-icon/icons/svg/ng-check-done-01.esm.js";import"../nile-icon/icons/svg/ng-check-square-broken.esm.js";import"../nile-icon/icons/svg/ng-check.esm.js";import"../nile-icon/icons/svg/ng-chevron-down.esm.js";import"../nile-icon/icons/svg/ng-chevron-left-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-left.esm.js";import"../nile-icon/icons/svg/ng-chevron-right-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-right.esm.js";import"../nile-icon/icons/svg/ng-chevron-selector-vertical.esm.js";import"../nile-icon/icons/svg/ng-chevron-up-double.esm.js";import"../nile-icon/icons/svg/ng-chevron-up.esm.js";import"../nile-icon/icons/svg/ng-clock-refresh.esm.js";import"../nile-icon/icons/svg/ng-columns-02.esm.js";import"../nile-icon/icons/svg/ng-copy-03.esm.js";import"../nile-icon/icons/svg/ng-dataflow-02.esm.js";import"../nile-icon/icons/svg/ng-dataflow-04.esm.js";import"../nile-icon/icons/svg/ng-dots-grid.esm.js";import"../nile-icon/icons/svg/ng-dots-vertical.esm.js";import"../nile-icon/icons/svg/ng-download-01.esm.js";import"../nile-icon/icons/svg/ng-dropdown.esm.js";import"../nile-icon/icons/svg/ng-edit-02.esm.js";import"../nile-icon/icons/svg/ng-edit-05.esm.js";import"../nile-icon/icons/svg/ng-expand-06.esm.js";import"../nile-icon/icons/svg/ng-eye-off.esm.js";import"../nile-icon/icons/svg/ng-eye.esm.js";import"../nile-icon/icons/svg/ng-file-02.esm.js";import"../nile-icon/icons/svg/ng-file-06.esm.js";import"../nile-icon/icons/svg/ng-file-check-02.esm.js";import"../nile-icon/icons/svg/ng-file-question-03.esm.js";import"../nile-icon/icons/svg/ng-filter-lines.esm.js";import"../nile-icon/icons/svg/ng-folder-code.esm.js";import"../nile-icon/icons/svg/ng-grid-01.esm.js";import"../nile-icon/icons/svg/ng-hash.esm.js";import"../nile-icon/icons/svg/ng-help-circle.esm.js";import"../nile-icon/icons/svg/ng-home-line.esm.js";import"../nile-icon/icons/svg/ng-image-03.esm.js";import"../nile-icon/icons/svg/ng-image-user-left.esm.js";import"../nile-icon/icons/svg/ng-info-circle.esm.js";import"../nile-icon/icons/svg/ng-italic-01.esm.js";import"../nile-icon/icons/svg/ng-key-01.esm.js";import"../nile-icon/icons/svg/ng-layers-three-01.esm.js";import"../nile-icon/icons/svg/ng-layers-three-02.esm.js";import"../nile-icon/icons/svg/ng-lightbulb-05.esm.js";import"../nile-icon/icons/svg/ng-list.esm.js";import"../nile-icon/icons/svg/ng-lock-03.esm.js";import"../nile-icon/icons/svg/ng-log-out-01.esm.js";import"../nile-icon/icons/svg/ng-mail-01.esm.js";import"../nile-icon/icons/svg/ng-mail-04.esm.js";import"../nile-icon/icons/svg/ng-marker-pin-01.esm.js";import"../nile-icon/icons/svg/ng-menu-05.esm.js";import"../nile-icon/icons/svg/ng-message-text-square-01.esm.js";import"../nile-icon/icons/svg/ng-minimize-02.esm.js";import"../nile-icon/icons/svg/ng-minus.esm.js";import"../nile-icon/icons/svg/ng-monitor.esm.js";import"../nile-icon/icons/svg/ng-number.esm.js";import"../nile-icon/icons/svg/ng-pie-chart-03.esm.js";import"../nile-icon/icons/svg/ng-plus.esm.js";import"../nile-icon/icons/svg/ng-power-01.esm.js";import"../nile-icon/icons/svg/ng-refresh-cw-01.esm.js";import"../nile-icon/icons/svg/ng-refresh-cw-02.esm.js";import"../nile-icon/icons/svg/ng-rocket-02.esm.js";import"../nile-icon/icons/svg/ng-rows-01.esm.js";import"../nile-icon/icons/svg/ng-search-lg.esm.js";import"../nile-icon/icons/svg/ng-send-01.esm.js";import"../nile-icon/icons/svg/ng-server.esm.js";import"../nile-icon/icons/svg/ng-settings-01.esm.js";import"../nile-icon/icons/svg/ng-share-04.esm.js";import"../nile-icon/icons/svg/ng-share-06.esm.js";import"../nile-icon/icons/svg/ng-shield-tick.esm.js";import"../nile-icon/icons/svg/ng-shopping-bag-01.esm.js";import"../nile-icon/icons/svg/ng-stars-02.esm.js";import"../nile-icon/icons/svg/ng-string.esm.js";import"../nile-icon/icons/svg/ng-switch-horizontal-01.esm.js";import"../nile-icon/icons/svg/ng-tag.esm.js";import"../nile-icon/icons/svg/ng-trash-01.esm.js";import"../nile-icon/icons/svg/ng-trash-03.esm.js";import"../nile-icon/icons/svg/ng-trend-up-01.esm.js";import"../nile-icon/icons/svg/ng-underline-01.esm.js";import"../nile-icon/icons/svg/ng-upload-01.esm.js";import"../nile-icon/icons/svg/ng-upload-cloud-02.esm.js";import"../nile-icon/icons/svg/ng-user-01.esm.js";import"../nile-icon/icons/svg/ng-user-check-02-1.esm.js";import"../nile-icon/icons/svg/ng-user-check-02.esm.js";import"../nile-icon/icons/svg/ng-user-plus-02.esm.js";import"../nile-icon/icons/svg/ng-user-right-01.esm.js";import"../nile-icon/icons/svg/ng-users-01.esm.js";import"../nile-icon/icons/svg/ng-wifi.esm.js";import"../nile-icon/icons/svg/ng-x-circle.esm.js";import"../nile-icon/icons/svg/ng-x-close.esm.js";import"../nile-icon/icons/svg/ng-x-square.esm.js";import"../nile-icon/icons/svg/ng-zap.esm.js";import"../nile-icon/icons/svg/nightingale-chart.esm.js";import"../nile-icon/icons/svg/nlp.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/numberinput.esm.js";import"../nile-icon/icons/svg/numbers.esm.js";import"../nile-icon/icons/svg/object.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/paperclip.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/persistentdata.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pie.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/play_pause.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/predefined.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/printer.esm.js";import"../nile-icon/icons/svg/priority-high.esm.js";import"../nile-icon/icons/svg/priority-highest.esm.js";import"../nile-icon/icons/svg/priority-low.esm.js";import"../nile-icon/icons/svg/priority-medium.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radar.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo-02.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/refresh.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/resource_analysis.esm.js";import"../nile-icon/icons/svg/resource_graph.esm.js";import"../nile-icon/icons/svg/restart_alt.esm.js";import"../nile-icon/icons/svg/revocation-cycle.esm.js";import"../nile-icon/icons/svg/right-join.esm.js";import"../nile-icon/icons/svg/right-union.esm.js";import"../nile-icon/icons/svg/rocket-02.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/sankey.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/savings.esm.js";import"../nile-icon/icons/svg/scatter-plot.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select-02.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/semi-circle-donut-chart.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/server-03.esm.js";import"../nile-icon/icons/svg/settings-02.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/shield-01.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sort_ascending.esm.js";import"../nile-icon/icons/svg/sort_descending.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stacked-bar-chart.esm.js";import"../nile-icon/icons/svg/step_into.esm.js";import"../nile-icon/icons/svg/step_out.esm.js";import"../nile-icon/icons/svg/step_over.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/switch.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/tag_cloud.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text-02.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/transaction_monitor.esm.js";import"../nile-icon/icons/svg/travel_map.esm.js";import"../nile-icon/icons/svg/trend-up-02.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-02.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/union.esm.js";import"../nile-icon/icons/svg/unlink.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users-plus.esm.js";import"../nile-icon/icons/svg/users-up.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/visual_builder.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning-01.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-application.esm.js";import"../nile-icon/icons/svg/workflow-text.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-icon/aliasmap.esm.js";import"../floating-ui.dom-cc9126da.esm.js";import"../nile-popup/nile-popup.css.esm.js";import"../nile-tag/nile-tag.css.esm.js";import"../nile-icon-button/nile-icon-button.esm.js";import"../nile-icon-button/nile-icon-button.css.esm.js";import"lit/static-html.js";import"../nile-option/nile-option.css.esm.js";import"../nile-checkbox/nile-checkbox.css.esm.js";import"lit/directives/live.js";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";import"../nile-loader/nile-loader.css.esm.js";import"lit/directives/unsafe-html.js";import"lit/directives/repeat.js";import"../nile-select/portal-utils.esm.js";function O(i,s,t){let o,e=t.initialDeps??[],n=!0;function r(){var r,c,l;let m;t.key&&(null==(r=t.debug)?void 0:r.call(t))&&(m=Date.now());const h=i();if(!(h.length!==e.length||h.some(((i,s)=>e[s]!==i))))return o;let a;if(e=h,t.key&&(null==(c=t.debug)?void 0:c.call(t))&&(a=Date.now()),o=s(...h),t.key&&(null==(l=t.debug)?void 0:l.call(t))){const i=Math.round(100*(Date.now()-m))/100,s=Math.round(100*(Date.now()-a))/100,o=s/16,e=(i,s)=>{for(i=String(i);i.length<s;)i=" "+i;return i};console.info(`%c⏱ ${e(s,5)} /${e(i,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*o,120))}deg 100% 31%);`,null==t?void 0:t.key)}return!(null==t?void 0:t.onChange)||n&&t.skipInitialOnChange||t.onChange(o),n=!1,o}return r.updateDeps=i=>{e=i},r}function z(i,s){if(void 0===i)throw new Error("Unexpected undefined"+(s?`: ${s}`:""));return i}const B=(i,s,t)=>{let o;return function(...e){i.clearTimeout(o),o=i.setTimeout((()=>s.apply(this,e)),t)}},I=i=>{const{offsetWidth:s,offsetHeight:t}=i;return{width:s,height:t}},D=i=>i,F=i=>{const s=Math.max(i.startIndex-i.overscan,0),t=Math.min(i.endIndex+i.overscan,i.count-1),o=[];for(let i=s;i<=t;i++)o.push(i);return o},T=(i,s)=>{const t=i.scrollElement;if(!t)return;const o=i.targetWindow;if(!o)return;const e=i=>{const{width:t,height:o}=i;s({width:Math.round(t),height:Math.round(o)})};if(e(I(t)),!o.ResizeObserver)return()=>{};const n=new o.ResizeObserver((s=>{const o=()=>{const i=s[0];if(null==i?void 0:i.borderBoxSize){const s=i.borderBoxSize[0];if(s)return void e({width:s.inlineSize,height:s.blockSize})}e(I(t))};i.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()}));return n.observe(t,{box:"border-box"}),()=>{n.unobserve(t)}},q={passive:!0},E="undefined"==typeof window||"onscrollend"in window,U=(i,s)=>{const t=i.scrollElement;if(!t)return;const o=i.targetWindow;if(!o)return;let e=0;const n=i.options.useScrollendEvent&&E?()=>{}:B(o,(()=>{s(e,!1)}),i.options.isScrollingResetDelay),r=o=>()=>{const{horizontal:r,isRtl:c}=i.options;e=r?t.scrollLeft*(c?-1:1):t.scrollTop,n(),s(e,o)},c=r(!0),l=r(!1);t.addEventListener("scroll",c,q);const m=i.options.useScrollendEvent&&E;return m&&t.addEventListener("scrollend",l,q),()=>{t.removeEventListener("scroll",c),m&&t.removeEventListener("scrollend",l)}},V=(i,s,t)=>{if(null==s?void 0:s.borderBoxSize){const i=s.borderBoxSize[0];if(i){return Math.round(i[t.options.horizontal?"inlineSize":"blockSize"])}}return i[t.options.horizontal?"offsetWidth":"offsetHeight"]},N=(i,{adjustments:s=0,behavior:t},o)=>{var e,n;const r=i+s;null==(n=null==(e=o.scrollElement)?void 0:e.scrollTo)||n.call(e,{[o.options.horizontal?"left":"top"]:r,behavior:t})};class L{constructor(i){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var i,s,t;return(null==(t=null==(s=null==(i=this.targetWindow)?void 0:i.performance)?void 0:s.now)?void 0:t.call(s))??Date.now()},this.observer=(()=>{let i=null;const s=()=>i||(this.targetWindow&&this.targetWindow.ResizeObserver?i=new this.targetWindow.ResizeObserver((i=>{i.forEach((i=>{const s=()=>{const s=i.target,t=this.indexFromElement(s);s.isConnected?this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(s,i,this)):this.observer.unobserve(s)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(s):s()}))})):null);return{disconnect:()=>{var t;null==(t=s())||t.disconnect(),i=null},observe:i=>{var t;return null==(t=s())?void 0:t.observe(i,{box:"border-box"})},unobserve:i=>{var t;return null==(t=s())?void 0:t.unobserve(i)}}})(),this.range=null,this.setOptions=i=>{Object.entries(i).forEach((([s,t])=>{void 0===t&&delete i[s]})),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:D,rangeExtractor:F,onChange:()=>{},measureElement:V,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...i}},this.notify=i=>{var s,t;null==(t=(s=this.options).onChange)||t.call(s,this,i)},this.maybeNotify=O((()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null])),(i=>{this.notify(i)}),{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((i=>i())),this.unsubs=[],this.observer.disconnect(),null!=this.rafId&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var i;const s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s)return void this.maybeNotify();this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(i=this.scrollElement)?void 0:i.window)??null,this.elementsCache.forEach((i=>{this.observer.observe(i)})),this.unsubs.push(this.options.observeElementRect(this,(i=>{this.scrollRect=i,this.maybeNotify()}))),this.unsubs.push(this.options.observeElementOffset(this,((i,s)=>{this.scrollAdjustments=0,this.scrollDirection=s?this.getScrollOffset()<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=s,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()}))),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(i,s)=>{const t=new Map,o=new Map;for(let e=s-1;e>=0;e--){const s=i[e];if(t.has(s.lane))continue;const n=o.get(s.lane);if(null==n||s.end>n.end?o.set(s.lane,s):s.end<n.end&&t.set(s.lane,!0),t.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort(((i,s)=>i.end===s.end?i.index-s.index:i.end-s.end))[0]:void 0},this.getMeasurementOptions=O((()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode]),((i,s,t,o,e,n,r)=>(void 0!==this.prevLanes&&this.prevLanes!==n&&(this.lanesChangedFlag=!0),this.prevLanes=n,this.pendingMeasuredCacheIndexes=[],{count:i,paddingStart:s,scrollMargin:t,getItemKey:o,enabled:e,lanes:n,laneAssignmentMode:r})),{key:!1}),this.getMeasurements=O((()=>[this.getMeasurementOptions(),this.itemSizeCache]),(({count:i,paddingStart:s,scrollMargin:t,getItemKey:o,enabled:e,lanes:n,laneAssignmentMode:r},c)=>{if(!e)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>i)for(const s of this.laneAssignments.keys())s>=i&&this.laneAssignments.delete(s);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),0!==this.measurementsCache.length||this.lanesSettling||(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach((i=>{this.itemSizeCache.set(i.key,i.size)})));const l=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===i&&(this.lanesSettling=!1);const m=this.measurementsCache.slice(0,l),h=new Array(n).fill(void 0);for(let i=0;i<l;i++){const s=m[i];s&&(h[s.lane]=i)}for(let e=l;e<i;e++){const i=o(e),n=this.laneAssignments.get(e);let l,a;const p="estimate"===r||c.has(i);if(void 0!==n&&this.options.lanes>1){l=n;const i=h[l],o=void 0!==i?m[i]:void 0;a=o?o.end+this.options.gap:s+t}else{const i=1===this.options.lanes?m[e-1]:this.getFurthestMeasurement(m,e);a=i?i.end+this.options.gap:s+t,l=i?i.lane:e%this.options.lanes,this.options.lanes>1&&p&&this.laneAssignments.set(e,l)}const g=c.get(i),v="number"==typeof g?g:this.options.estimateSize(e),d=a+v;m[e]={index:e,start:a,size:v,end:d,key:i,lane:l},h[l]=e}return this.measurementsCache=m,m}),{key:!1,debug:()=>this.options.debug}),this.calculateRange=O((()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes]),((i,s,t,o)=>this.range=i.length>0&&s>0?function({measurements:i,outerSize:s,scrollOffset:t,lanes:o}){const e=i.length-1,n=s=>i[s].start;if(i.length<=o)return{startIndex:0,endIndex:e};let r=R(0,e,n,t),c=r;if(1===o)for(;c<e&&i[c].end<t+s;)c++;else if(o>1){const n=Array(o).fill(0);for(;c<e&&n.some((i=>i<t+s));){const s=i[c];n[s.lane]=s.end,c++}const l=Array(o).fill(t+s);for(;r>=0&&l.some((i=>i>=t));){const s=i[r];l[s.lane]=s.start,r--}r=Math.max(0,r-r%o),c=Math.min(e,c+(o-1-c%o))}return{startIndex:r,endIndex:c}}({measurements:i,outerSize:s,scrollOffset:t,lanes:o}):null),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=O((()=>{let i=null,s=null;const t=this.calculateRange();return t&&(i=t.startIndex,s=t.endIndex),this.maybeNotify.updateDeps([this.isScrolling,i,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,i,s]}),((i,s,t,o,e)=>null===o||null===e?[]:i({startIndex:o,endIndex:e,overscan:s,count:t})),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=i=>{const s=this.options.indexAttribute,t=i.getAttribute(s);return t?parseInt(t,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=i=>{var s;if(!this.scrollState||"smooth"!==this.scrollState.behavior)return!0;const t=this.scrollState.index??(null==(s=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))?void 0:s.index);if(void 0!==t&&this.range){const s=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,t-s),e=Math.min(this.options.count-1,t+s);return i>=o&&i<=e}return!0},this.measureElement=i=>{if(!i)return void this.elementsCache.forEach(((i,s)=>{i.isConnected||(this.observer.unobserve(i),this.elementsCache.delete(s))}));const s=this.indexFromElement(i),t=this.options.getItemKey(s),o=this.elementsCache.get(t);o!==i&&(o&&this.observer.unobserve(o),this.observer.observe(i),this.elementsCache.set(t,i)),this.isScrolling&&!this.scrollState||!this.shouldMeasureDuringScroll(s)||this.resizeItem(s,this.options.measureElement(i,void 0,this))},this.resizeItem=(i,s)=>{var t;const o=this.measurementsCache[i];if(!o)return;const e=s-(this.itemSizeCache.get(o.key)??o.size);0!==e&&("smooth"!==(null==(t=this.scrollState)?void 0:t.behavior)&&(void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(o,e,this):o.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(o.index),this.itemSizeCache=new Map(this.itemSizeCache.set(o.key,s)),this.notify(!1))},this.getVirtualItems=O((()=>[this.getVirtualIndexes(),this.getMeasurements()]),((i,s)=>{const t=[];for(let o=0,e=i.length;o<e;o++){const e=s[i[o]];t.push(e)}return t}),{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=i=>{const s=this.getMeasurements();if(0!==s.length)return z(s[R(0,s.length-1,(i=>z(s[i]).start),i)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const i=this.scrollElement.document.documentElement;return this.options.horizontal?i.scrollWidth-this.scrollElement.innerWidth:i.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(i,s,t=0)=>{if(!this.scrollElement)return 0;const o=this.getSize(),e=this.getScrollOffset();"auto"===s&&(s=i>=e+o?"end":"start"),"center"===s?i+=(t-o)/2:"end"===s&&(i-=o);const n=this.getMaxScrollOffset();return Math.max(Math.min(n,i),0)},this.getOffsetForIndex=(i,s="auto")=>{i=Math.max(0,Math.min(i,this.options.count-1));const t=this.getSize(),o=this.getScrollOffset(),e=this.measurementsCache[i];if(!e)return;if("auto"===s)if(e.end>=o+t-this.options.scrollPaddingEnd)s="end";else{if(!(e.start<=o+this.options.scrollPaddingStart))return[o,s];s="start"}if("end"===s&&i===this.options.count-1)return[this.getMaxScrollOffset(),s];const n="end"===s?e.end+this.options.scrollPaddingEnd:e.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,s,e.size),s]},this.scrollToOffset=(i,{align:s="start",behavior:t="auto"}={})=>{const o=this.getOffsetForAlignment(i,s),e=this.now();this.scrollState={index:null,align:s,behavior:t,startedAt:e,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToIndex=(i,{align:s="auto",behavior:t="auto"}={})=>{i=Math.max(0,Math.min(i,this.options.count-1));const o=this.getOffsetForIndex(i,s);if(!o)return;const[e,n]=o,r=this.now();this.scrollState={index:i,align:n,behavior:t,startedAt:r,lastTargetOffset:e,stableFrames:0},this._scrollToOffset(e,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollBy=(i,{behavior:s="auto"}={})=>{const t=this.getScrollOffset()+i,o=this.now();this.scrollState={index:null,align:"start",behavior:s,startedAt:o,lastTargetOffset:t,stableFrames:0},this._scrollToOffset(t,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var i;const s=this.getMeasurements();let t;if(0===s.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(i=s[s.length-1])?void 0:i.end)??0;else{const i=Array(this.options.lanes).fill(null);let o=s.length-1;for(;o>=0&&i.some((i=>null===i));){const t=s[o];null===i[t.lane]&&(i[t.lane]=t.end),o--}t=Math.max(...i.filter((i=>null!==i)))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(i,{adjustments:s,behavior:t})=>{this.options.scrollToFn(i,{behavior:t,adjustments:s},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(i)}scheduleScrollReconcile(){this.targetWindow?null==this.rafId&&(this.rafId=this.targetWindow.requestAnimationFrame((()=>{this.rafId=null,this.reconcileScroll()}))):this.scrollState=null}reconcileScroll(){if(!this.scrollState)return;if(!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3)return void(this.scrollState=null);const i=null!=this.scrollState.index?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=i?i[0]:this.scrollState.lastTargetOffset,t=s!==this.scrollState.lastTargetOffset;if(!t&&(o=s,e=this.getScrollOffset(),Math.abs(o-e)<1.01)){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1)return void(this.scrollState=null)}else this.scrollState.stableFrames=0,t&&(this.scrollState.lastTargetOffset=s,this.scrollState.behavior="auto",this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}));var o,e;this.scheduleScrollReconcile()}}const R=(i,s,t,o)=>{for(;i<=s;){const e=(i+s)/2|0,n=t(e);if(n<o)i=e+1;else{if(!(n>o))return e;s=e-1}}return i>0?i-1:0};class H{constructor(i,s){this.cleanup=()=>{};const t={...s,onChange:(i,t)=>{var o;this.host.updateComplete.then((()=>this.host.requestUpdate())),null==(o=s.onChange)||o.call(s,i,t)}};this.virtualizer=new L(t),(this.host=i).addController(this)}getVirtualizer(){return this.virtualizer}hostConnected(){this.cleanup=this.virtualizer._didMount()}hostUpdated(){this.virtualizer._willUpdate()}hostDisconnected(){this.cleanup()}}class P extends H{constructor(i,s){super(i,{observeElementRect:T,observeElementOffset:U,scrollToFn:N,...s})}}let G=class extends w{constructor(){super(...arguments),this.formControlController=new v(this,{assumeInteractionOn:["nile-blur","nile-input"]}),this.hasSlotController=new j(this,"help-text","label"),this.portalManager=new k(this),this.searchManager=new x,this.scrollElementRef=l(),this.virtualizerCtrl=new P(this,{getScrollElement:()=>this.scrollElementRef.value??null,count:0,estimateSize:()=>38,overscan:5}),this.hScrollElementRef=l(),this.hVirtualizerCtrl=new P(this,{getScrollElement:()=>this.hScrollElementRef.value??null,count:0,estimateSize:()=>160,horizontal:!0,overscan:3}),this.scrolling=!1,this.keyboardActiveIndex=-1,this.hasFocus=!1,this.displayLabel="",this.selectedOptions=[],this.filteredData=[],this.filteredRows=[],this.originalData=[],this.showNoResults=!1,this.showListbox=!1,this.searchValue="",this.showSelectedOnly=!1,this.selectAllChecked=!1,this.selectAllIndeterminate=!1,this.stickyHeaderIndex=-1,this.name="",this.data=[],this.value="",this.defaultValue="",this.size="medium",this.placeholder="Type to search...",this.multiple=!1,this.label="",this.required=!1,this.disabled=!1,this.open=!1,this.clearable=!1,this.loading=!1,this.optionsLoading=!1,this.disableLocalSearch=!1,this.allowCustomValue=!1,this.acceptUserInput=!1,this.addToSuggestions=!1,this.strict=!1,this.maxTagsVisible=3,this.tagLayout="single-line",this.showFooter=!0,this.selectAllEnabled=!1,this.stickyGroupHeader=!0,this.portal=!1,this.hoist=!1,this.placement="bottom",this.form="",this.helpText="",this.errorMessage="",this.warning=!1,this.error=!1,this.success=!1,this.filled=!1,this.pill=!1,this.noResultsMessage="No result found",this.noResultsSubtitle="Clear search or change filter",this.noDataMessage="No data available",this.autoCompleteOptions=[],this.debounceMs=300,this.allowHtmlLabel=!0,this.enableVisibilityEffect=!1,this.enableTabClose=!1,this.noWidthSync=!1,this.gridColumns=1,this.gridRows=0,this.gridColumnWidth=160,this.lastVirtualizerGrouped=!1}get validity(){return this.valueInput?.validity}get validationMessage(){return this.valueInput?.validationMessage??""}connectedCallback(){super.connectedCallback(),this.open=!1,this.setupBoundHandlers(),this.emit("nile-init"),this.updateComplete.then((()=>{this.autoCompleteOptions.length>0&&0===this.data.length&&(this.data=[...this.autoCompleteOptions]),this.value&&this.data.length>0&&this.syncSelection()}))}disconnectedCallback(){this.removeOpenListeners(),this.visibilityManager?.cleanup(),this.searchManager.cancelDebounce(),this.scrollTimeout&&(clearTimeout(this.scrollTimeout),this.scrollTimeout=void 0),this.portalManager.cleanupPortal()}firstUpdated(i){this.visibilityManager=new M({host:this,target:this.combobox,enableVisibilityEffect:this.enableVisibilityEffect,enableTabClose:this.enableTabClose,isOpen:()=>this.open,onAnchorOutOfView:()=>{this.hide(),this.emit("nile-visibility-change",{visible:!1,reason:"anchor-out-of-view",name:this.name})},onDocumentHidden:()=>{this.hide(),this.emit("nile-visibility-change",{visible:!1,reason:"document-hidden",name:this.name})},emit:(i,s)=>this.emit(`nile-${i}`,s)})}updated(i){i.has("value")&&this.syncSelection(),this.updateVirtualizerCount()}get isHorizontalGrid(){return this.gridRows>0&&this.gridColumns<=1}get hasGroupedData(){const i=this.originalData.length>0?this.originalData:this.data;return $(i)}updateStickyHeader(i){if(!this.stickyGroupHeader||!this.hasGroupedData)return void(-1!==this.stickyHeaderIndex&&(this.stickyHeaderIndex=-1));let s=0,t=-1;for(let o=0;o<this.filteredRows.length;o++){const e=this.filteredRows[o],n="header"===e.kind?32:38;if(s>i)break;"header"===e.kind&&(t=o),s+=n}t!==this.stickyHeaderIndex&&(this.stickyHeaderIndex=t)}pruneTreeBySelection(i,s){const t=[];for(const o of i)if(o&&"object"==typeof o&&"group"===o.type&&Array.isArray(o.options)){const i=this.pruneTreeBySelection(o.options,s);i.length>0&&t.push({...o,options:i})}else s.has(String(this.getItemValue(o)))&&t.push(o);return t}get hasActiveFilter(){return!!this.searchValue||this.showSelectedOnly}renderEmptyState(){return this.hasActiveFilter?_.renderNoResults(this.noResultsMessage,this.noResultsSubtitle):_.renderNoData(this.noDataMessage)}get isBidirectionalGrid(){return this.gridRows>0&&this.gridColumns>1}get virtualRowCount(){return this.gridColumns>1?Math.ceil(this.filteredData.length/this.gridColumns):this.hasGroupedData?this.filteredRows.length:this.filteredData.length}get virtualColumnCount(){return Math.ceil(this.filteredData.length/Math.max(this.gridRows,1))}updateVirtualizerCount(){if(this.isHorizontalGrid){const i=this.hVirtualizerCtrl.getVirtualizer(),s=this.virtualColumnCount;i.options.count===s&&i.options.estimateSize(0)===this.gridColumnWidth||(i.setOptions({...i.options,count:s,estimateSize:()=>this.gridColumnWidth}),i.measure())}else{const i=this.virtualizerCtrl.getVirtualizer(),s=this.virtualRowCount,t=this.hasGroupedData,o=i.options.count!==s,e=this.lastVirtualizerGrouped!==t;if(o||e){const o=t?i=>"header"===this.filteredRows[i]?.kind?32:38:()=>38;i.setOptions({...i.options,count:s,estimateSize:o}),i.measure(),this.lastVirtualizerGrouped=t}}}getDisplayText(i){return this.renderItemConfig?.getDisplayText?this.renderItemConfig.getDisplayText(i):i?.label||i?.name||i?.toString?.()||""}getItemValue(i){return this.renderItemConfig?.getValue?this.renderItemConfig.getValue(i):i?.value??i}getSearchText(i){return this.renderItemConfig?.getSearchText?this.renderItemConfig.getSearchText(i):this.getDisplayText(i)}getItemDescription(i){return this.renderItemConfig?.getDescription?.(i)??i?.description??""}getItemPrefix(i){return this.renderItemConfig?.getPrefix?.(i)??i?.prefix??""}getItemSuffix(i){return this.renderItemConfig?.getSuffix?.(i)??i?.suffix??""}syncSelection(){const i=this.originalData.length>0?this.originalData:this.data,s=this.hasGroupedData?S(A(i)).map((i=>i.item)):i;if(this.selectedOptions=y.createOptionsFromValues(this.value,s,this.getDisplayText.bind(this),this.renderItemConfig?.getValue),this.multiple)this.displayLabel="";else{const i=this.selectedOptions[0]?.getTextLabel()??"";this.displayLabel=i,i?this.searchValue=i:this.hasFocus||(this.searchValue="")}this.updateValidity(),this.updateSelectAllState()}getSelectableData(){return this.filteredData.filter((i=>!i?.disabled))}updateSelectAllState(){if(!this.multiple)return this.selectAllChecked=!1,void(this.selectAllIndeterminate=!1);const i=this.getSelectableData();if(0===i.length)return this.selectAllChecked=!1,void(this.selectAllIndeterminate=!1);const s=Array.isArray(this.value)?this.value:[],t=new Set(s.map(String)),o=i.reduce(((i,s)=>i+(t.has(String(this.getItemValue(s)))?1:0)),0);0===o?(this.selectAllChecked=!1,this.selectAllIndeterminate=!1):o===i.length?(this.selectAllChecked=!0,this.selectAllIndeterminate=!1):(this.selectAllChecked=!1,this.selectAllIndeterminate=!0)}handleSelectAllToggle(i){if(i.stopPropagation(),i.preventDefault(),!this.multiple||!this.selectAllEnabled)return;const s=this.getSelectableData();if(0===s.length)return;const t=this.selectAllChecked||this.selectAllIndeterminate,o=Array.isArray(this.value)?[...this.value]:[],e=s.map((i=>String(this.getItemValue(i)))),n=new Set(e);let r;if(t)r=o.filter((i=>!n.has(String(i))));else{const i=new Set(o.map(String));e.forEach((s=>i.add(s))),r=Array.from(i)}this.value=r,this.searchValue="",this.syncSelection(),this.filterOptions("",!0),this.updateComplete.then((()=>{this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name}),this.emit("nile-select-all",{value:this.value,name:this.name,action:t?"deselect-all":"select-all"})}))}setupBoundHandlers(){this.handleDocumentFocusIn=i=>{if(!this.open)return;const s=i.composedPath(),t=s.includes(this),o=this.popup&&s.includes(this.popup),e=this.portal&&this.portalManager.portalContainerElement&&s.includes(this.portalManager.portalContainerElement);t||o||e||this.hide()},this.handleDocumentKeyDown=i=>{(this.open||"ArrowDown"===i.key||"ArrowUp"===i.key||"Enter"===i.key)&&this.onGlobalKeyDown(i)},this.handleDocumentMouseDown=i=>{if(!this.open)return;const s=i.composedPath(),t=s.includes(this),o=this.popup&&s.includes(this.popup),e=this.portal&&this.portalManager.portalContainerElement&&s.includes(this.portalManager.portalContainerElement);t||o||e||this.hide()},this.handleWindowError=i=>{(i.error?.message||i.message||"").includes("Cannot read properties of null (reading 'insertBefore')")&&i.preventDefault()},this.handleWindowResize=()=>this.portalManager.updatePosition(),this.handleWindowScroll=()=>this.portalManager.updatePosition()}addOpenListeners(){document.addEventListener("focusin",this.handleDocumentFocusIn),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown),window.addEventListener("error",this.handleWindowError),this.portal&&(window.addEventListener("resize",this.handleWindowResize),window.addEventListener("scroll",this.handleWindowScroll,!0))}removeOpenListeners(){document.removeEventListener("focusin",this.handleDocumentFocusIn),document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown),window.removeEventListener("error",this.handleWindowError),window.removeEventListener("resize",this.handleWindowResize),window.removeEventListener("scroll",this.handleWindowScroll,!0)}onInputKeyDown(i){switch(i.key){case"ArrowDown":i.preventDefault(),this.open?this.moveActiveOption(this.gridColumns>1?this.gridColumns:1):this.show();break;case"ArrowUp":i.preventDefault(),this.open?this.moveActiveOption(this.gridColumns>1?-this.gridColumns:-1):this.show();break;case"ArrowRight":this.gridColumns>1&&this.open&&(i.preventDefault(),this.moveActiveOption(1));break;case"ArrowLeft":this.gridColumns>1&&this.open&&(i.preventDefault(),this.moveActiveOption(-1));break;case"Enter":i.preventDefault(),this.open?this.selectActiveOption():this.searchValue.trim()&&(this.acceptUserInput||this.allowCustomValue)?this.addCustomValue(this.searchValue.trim()):this.show();break;case"Escape":this.open&&(i.preventDefault(),i.stopPropagation(),this.hide());break;case"Home":this.open&&(i.preventDefault(),this.setActiveOption(0));break;case"End":this.open&&(i.preventDefault(),this.setActiveOption(this.filteredData.length-1));break;case"Backspace":if(this.multiple&&""===this.searchValue&&this.selectedOptions.length>0){const i=this.selectedOptions[this.selectedOptions.length-1];this.removeTag(i)}break;case"Tab":this.multiple&&this.acceptUserInput&&this.searchValue.trim()&&this.addCustomValue(this.searchValue.trim()),this.open&&this.hide()}}onGlobalKeyDown(i){"Escape"===i.key&&this.open&&(i.preventDefault(),i.stopPropagation(),this.hide(),this.inputElement?.focus({preventScroll:!0}))}getVisibleOptions(){const i=this.portal?this.portalManager.portalContainerElement:this.shadowRoot;return i?i.querySelectorAll("nile-option:not([disabled])"):[]}moveActiveOption(i){const s=this.getVisibleOptions();if(!s.length)return;let t=this.keyboardActiveIndex+i;t<0&&(t=s.length-1),t>=s.length&&(t=0),this.setActiveOption(t)}setActiveOption(i){const s=this.getVisibleOptions();s.length&&(s.forEach(((s,t)=>{const o=s;t===i?(o.setAttribute("aria-current","true"),o.classList.add("combobox__option--active"),o.scrollIntoView?.({block:"nearest"})):(o.removeAttribute("aria-current"),o.classList.remove("combobox__option--active"))})),this.keyboardActiveIndex=i)}selectActiveOption(){const i=this.getVisibleOptions();if(this.keyboardActiveIndex>=0&&this.keyboardActiveIndex<i.length){const s=i[this.keyboardActiveIndex];s&&!s.disabled&&this.handleOptionSelection(s.value)}else this.searchValue.trim()&&(this.allowCustomValue||this.acceptUserInput)&&this.addCustomValue(this.searchValue.trim())}onInputChange(i){i.stopPropagation()}onInputHandler(i){const s=i.target;this.searchValue=s.value,this.open||this.show(),this.emit("nile-input",{value:this.searchValue,name:this.name}),this.disableLocalSearch?this.searchManager.debounceSearch((i=>this.emit("nile-search",{query:i,name:this.name})),this.searchValue,this.debounceMs):this.filterOptions(this.searchValue),this.keyboardActiveIndex=-1}filterOptions(i,s=!1){const t=this.originalData.length>0?this.originalData:this.data;if(this.hasGroupedData){let s=t;if(this.showSelectedOnly){const i=Array.isArray(this.value)?this.value:[this.value],o=new Set(i.map((i=>String(i))));s=this.pruneTreeBySelection(t,o)}const{rows:o}=C(s,i,this.getSearchText.bind(this));this.filteredRows=o,this.filteredData=S(o).map((i=>i.item)),this.showNoResults=0===this.filteredData.length;const e=this.scrollElementRef.value?.scrollTop??0;this.updateStickyHeader(e)}else{let s=t;if(this.showSelectedOnly){const i=Array.isArray(this.value)?this.value:[this.value],o=new Set(i.map((i=>String(i))));s=t.filter((i=>o.has(String(this.getItemValue(i)))))}const{filteredItems:o,showNoResults:e}=this.searchManager.filter(i,s,this.getSearchText.bind(this));this.filteredData=o,this.filteredRows=[],this.showNoResults=e}this.portalManager.resetMeasuredHeight(),s||this.resetScrollPosition(),this.updateSelectAllState(),this.requestUpdate()}onFocusIn(){this.hasFocus=!0,this.emit("nile-focus"),!this.multiple&&this.displayLabel&&(this.searchValue=this.displayLabel,this.requestUpdate(),this.updateComplete.then((()=>{this.inputElement?.select()})))}onFocusOut(){if(this.hasFocus=!1,this.emit("nile-blur"),!this.open&&!this.multiple)if(this.strict){const i=this.originalData.length>0?this.originalData:this.data,s=(this.hasGroupedData?S(A(i)).map((i=>i.item)):i).find((i=>this.getDisplayText(i).toLowerCase()===this.searchValue.toLowerCase()));if(s){const i=this.getItemValue(s);this.value!==i&&(this.value=i,this.syncSelection(),this.emit("nile-change",{value:this.value,name:this.name}))}else this.searchValue=this.displayLabel}else this.searchValue=this.displayLabel}onTriggerMouseDown(i){if(this.disabled)return;i.composedPath().some((i=>i instanceof Element&&"nile-icon-button"===i.tagName.toLowerCase()))||(i.preventDefault(),this.inputElement?.focus({preventScroll:!0}),this.open?this.hide():this.show())}onOptionClick(i){const s=i.composedPath().find((i=>"NILE-OPTION"===i.tagName));s&&!s.disabled&&this.handleOptionSelection(s.value)}handleOptionSelection(i){const s=this.value;if(this.multiple){const s=Array.isArray(this.value)?this.value:[];this.value=y.toggleMultiValue(s,i),this.searchValue="",this.syncSelection(),this.filterOptions("",!0)}else this.value=i,this.syncSelection(),this.searchValue=this.displayLabel,this.hide();JSON.stringify(this.value)!==JSON.stringify(s)&&this.updateComplete.then((()=>{this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})),this.inputElement?.focus({preventScroll:!0})}addCustomValue(i){if(this.addToSuggestions){const s=this.originalData.length>0?this.originalData:this.data;if(!s.some((s=>String(this.getItemValue(s))===i||this.getDisplayText(s)===i))){const t=this.renderItemConfig?.getValue?{value:i,label:i}:i;this.originalData=[...s,t],this.data=[...this.originalData],this.autoCompleteOptions=[...this.originalData],this.filteredData=[...this.originalData]}}if(this.multiple){const s=Array.isArray(this.value)?this.value:[];s.includes(i)||(this.value=[...s,i])}else this.value=i,this.hide();this.searchValue=this.multiple?"":i,this.syncSelection(),this.filterOptions(this.searchValue),this.emit("nile-tag-add",{value:i,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})}onClearClick(i){i.stopPropagation(),this.value=this.multiple?[]:"",this.searchValue="",this.syncSelection(),this.filterOptions(""),this.emit("nile-clear",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})}removeTag(i){if(this.disabled)return;const s=Array.isArray(this.value)?this.value:[];this.value=y.removeValue(s,i.value),this.syncSelection(),this.emit("nile-tag-remove",{value:this.value,name:this.name,removedtagvalue:i.value}),this.emit("nile-change",{value:this.value,name:this.name})}onFooterClick(i){i.stopPropagation(),i.preventDefault()}toggleShowSelected(i){i.stopPropagation(),i.preventDefault(),0!==this.selectedOptions.length&&(this.showSelectedOnly=!this.showSelectedOnly,this.showSelectedOnly&&(this.searchValue=""),this.filterOptions(this.searchValue))}clearAll(){this.showSelectedOnly=!1,this.value=this.multiple?[]:"",this.filterOptions(""),this.syncSelection(),this.emit("nile-change",{value:this.value,name:this.name}),this.emit("nile-clear",{value:this.value,name:this.name}),this.resetScrollPosition()}onScroll(i){const s=i.target;if(this.updateStickyHeader(s.scrollTop),this.showSelectedOnly)return;this.emit("nile-scroll",{scrollTop:s.scrollTop,scrollLeft:s.scrollLeft,name:this.name}),this.scrolling||(this.scrolling=!0,this.emit("nile-scroll-start",{scrollTop:s.scrollTop,scrollLeft:s.scrollLeft,name:this.name})),clearTimeout(this.scrollTimeout),this.scrollTimeout=window.setTimeout((()=>{this.scrolling=!1}),300);Math.ceil(s.scrollTop)>=Math.floor(s.scrollHeight-s.offsetHeight)&&this.emit("nile-scroll-end",{scrollTop:s.scrollTop,scrollLeft:s.scrollLeft,name:this.name,isAtBottom:!0})}async show(){if(!this.open&&!this.disabled)return this.open=!0,b(this,"nile-after-show")}async hide(){if(this.open)return this.open=!1,b(this,"nile-after-hide")}async handleOpenChange(){this.open&&!this.disabled?(this.visibilityManager?.setup(),this.showListbox=!0,await this.updateComplete,await this.doOpen(),this.portal&&this.portalManager.setupPortal()):(this.visibilityManager?.cleanup(),await this.doClose(),this.showListbox=!1,this.portal&&this.portalManager.cleanupPortal())}async doOpen(){this.emit("nile-show",{value:this.value,name:this.name}),this.addOpenListeners(),this.keyboardActiveIndex=-1,0===this.originalData.length&&this.data.length>0&&(this.originalData=[...this.data]),this.hasGroupedData?this.filterOptions(this.searchValue):(this.filteredData=[...this.originalData.length>0?this.originalData:this.data],this.filteredRows=[],this.showNoResults=0===this.filteredData.length),await a(this),this.popup?.popup&&(this.popup.popup.style.visibility="hidden"),this.popup.active=!0,await new Promise((i=>requestAnimationFrame(i))),await new Promise((i=>requestAnimationFrame(i))),this.popup?.popup&&(this.popup.popup.style.visibility="");const{keyframes:i,options:s}=u(this,"combobox.show",{dir:"ltr"});await p(this.popup.popup,i,s),this.resetScrollPosition(),this.emit("nile-after-show",{value:this.value,name:this.name})}async doClose(){this.emit("nile-hide",{value:this.value,name:this.name}),this.removeOpenListeners(),await a(this);const{keyframes:i,options:s}=u(this,"combobox.hide",{dir:"ltr"});await p(this.popup.popup,i,s),this.popup.active=!1,this.popup?.popup&&(this.popup.popup.style.visibility=""),this.showSelectedOnly=!1,this.portalManager.resetMeasuredHeight(),this.multiple||(this.searchValue=this.displayLabel),this.emit("nile-after-hide",{value:this.value,name:this.name})}handleDisabledChange(){this.disabled&&(this.open=!1,this.handleOpenChange())}handleValueChange(){this.syncSelection(),this.requestUpdate(),this.portal&&this.portalManager.portalContainerElement&&this.portalManager.updatePosition()}handleDataChange(){this.data.length>0&&!this.showSelectedOnly&&(this.originalData=[...this.data]),this.hasGroupedData?this.filterOptions(this.searchValue):(this.filteredData=[...this.data],this.filteredRows=[]),this.syncSelection(),this.updateSelectAllState(),this.optionsLoading||this.loading||0!==this.data.length?this.data.length>0&&(this.showNoResults=!1):this.showNoResults=!0,this.portalManager.resetMeasuredHeight(),this.portal&&this.portalManager.portalContainerElement&&this.portalManager.updatePosition(),this.requestUpdate()}handleAutoCompleteOptionsChange(){this.autoCompleteOptions.length>0&&(this.data=[...this.autoCompleteOptions])}handleSelectAllConfigChange(){this.updateSelectAllState()}handlePortalChange(){this.open&&(this.portal?this.portalManager.setupPortal():this.portalManager.cleanupPortal())}checkValidity(){return this.valueInput.checkValidity()}getForm(){return this.formControlController.getForm()}reportValidity(){return this.valueInput.reportValidity()}setCustomValidity(i){this.valueInput.setCustomValidity(i),this.formControlController.updateValidity()}focus(i){this.inputElement?.focus(i)}blur(){this.inputElement?.blur()}handleInvalid(i){this.formControlController.setValidity(!1),this.formControlController.emitInvalidEvent(i)}updateValidity(){this.updateComplete.then((()=>this.formControlController.updateValidity()))}async resetScrollPosition(){await this.portalManager.resetScrollPosition()}render(){const i=this.hasSlotController.test("label"),t=!!this.label||!!i,o=this.multiple?Array.isArray(this.value)&&this.value.length>0:"string"==typeof this.value&&""!==this.value,e=this.clearable&&!this.disabled&&o,n=!!this.helpText,l=!!this.errorMessage,m=!o;return s`
2
+ <div
3
+ part="form-control"
4
+ class=${r({"form-control":!0,"form-control--small":"small"===this.size,"form-control--medium":"medium"===this.size,"form-control--large":"large"===this.size,"form-control--has-label":t,"form-control--has-help-text":n})}
5
+ >
6
+ <label
7
+ id="label"
8
+ part="form-control-label"
9
+ class="form-control__label"
10
+ aria-hidden=${t?"false":"true"}
11
+ @click=${()=>this.inputElement?.focus()}
12
+ >
13
+ <slot name="label">${this.label}</slot>
14
+ </label>
15
+
16
+ <div part="form-control-input" class="form-control-input">
17
+ <nile-popup
18
+ class=${r({"combobox-popup":!0,"combobox--open":this.open,"combobox--closed":!this.open,"combobox--disabled":this.disabled,"combobox--focused":this.hasFocus,"combobox--multiple":this.multiple,"combobox--empty":m,"combobox--small":"small"===this.size,"combobox--medium":"medium"===this.size,"combobox--large":"large"===this.size,"combobox--warning":this.warning,"combobox--error":this.error,"combobox--success":this.success,"combobox--filled":this.filled,"combobox--pill":this.pill})}
19
+ placement=${this.placement}
20
+ strategy=${this.portal||this.hoist?"fixed":"absolute"}
21
+ distance="6"
22
+ ?flip=${!this.portal}
23
+ ?shift=${!this.portal}
24
+ sync=${c(this.noWidthSync?void 0:"width")}
25
+ auto-size="vertical"
26
+ auto-size-padding="10"
27
+ >
28
+ ${this.renderTrigger(e)}
29
+ ${this.showListbox?this.renderListbox():s``}
30
+ </nile-popup>
31
+
32
+ ${n?s`<nile-form-help-text>${this.helpText}</nile-form-help-text>`:s``}
33
+ ${l?s`<nile-form-error-message>${this.errorMessage}</nile-form-error-message>`:s``}
34
+ </div>
35
+ </div>
36
+ `}renderTrigger(i){const t=this.multiple&&this.selectedOptions.length>0,o=t?"":this.placeholder;return s`
37
+ <div
38
+ part="combobox"
39
+ class="combobox__trigger"
40
+ slot="anchor"
41
+ @mousedown=${this.onTriggerMouseDown}
42
+ >
43
+ <slot part="prefix" name="prefix" class="combobox__prefix"></slot>
44
+
45
+ <div class=${r({"combobox__scroll-area":!0,"combobox__scroll-area--single-line":this.multiple&&"single-line"===this.tagLayout,"combobox__scroll-area--wrap":this.multiple&&("wrap"===this.tagLayout||"fixed-height"===this.tagLayout)})}>
46
+ ${t?this.renderInlineTags():s``}
47
+
48
+ <div class="combobox__input-wrapper">
49
+ <input
50
+ part="input"
51
+ class="combobox__input"
52
+ type="text"
53
+ placeholder=${o}
54
+ .disabled=${this.disabled}
55
+ .value=${this.searchValue}
56
+ autocomplete="off"
57
+ spellcheck="false"
58
+ autocapitalize="off"
59
+ aria-controls="listbox"
60
+ aria-expanded=${this.open?"true":"false"}
61
+ aria-haspopup="listbox"
62
+ aria-labelledby="label"
63
+ aria-disabled=${this.disabled?"true":"false"}
64
+ aria-describedby="help-text"
65
+ aria-activedescendant=${this.keyboardActiveIndex>=0?`option-${this.keyboardActiveIndex}`:""}
66
+ role="combobox"
67
+ tabindex="0"
68
+ @input=${this.onInputHandler}
69
+ @keydown=${this.onInputKeyDown}
70
+ @focus=${this.onFocusIn}
71
+ @blur=${this.onFocusOut}
72
+ @change=${this.onInputChange}
73
+ />
74
+ </div>
75
+ </div>
76
+
77
+ <input
78
+ class="combobox__value-input"
79
+ type="text"
80
+ ?disabled=${this.disabled}
81
+ ?required=${this.required}
82
+ .value=${Array.isArray(this.value)?this.value.join(", "):this.value}
83
+ tabindex="-1"
84
+ aria-hidden="true"
85
+ @focus=${()=>this.focus()}
86
+ @invalid=${this.handleInvalid}
87
+ />
88
+
89
+ <div class="combobox__actions">
90
+ ${i?this.renderClearButton():s``}
91
+
92
+ <slot name="expand-icon" part="expand-icon" class="combobox__expand-icon">
93
+ <nile-icon
94
+ library="system"
95
+ name="var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))"
96
+ method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
97
+ color="var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))"
98
+ ></nile-icon>
99
+ </slot>
100
+ </div>
101
+ </div>
102
+ `}renderInlineTags(){const i=[];return this.selectedOptions.forEach(((t,o)=>{this.maxTagsVisible>0&&o>=this.maxTagsVisible?o===this.maxTagsVisible&&i.push(s`<span class="combobox__tags-count">+${this.selectedOptions.length-this.maxTagsVisible} More</span>`):i.push(s`
103
+ <nile-tag
104
+ part="tag"
105
+ exportparts="base:tag__base, content:tag__content, remove-button:tag__remove-button"
106
+ ?pill=${this.pill}
107
+ size=${this.size}
108
+ removable
109
+ ?disabled=${this.disabled}
110
+ @nile-remove=${i=>{i.stopPropagation(),this.removeTag(t)}}
111
+ >
112
+ ${t.getTextLabel()}
113
+ </nile-tag>
114
+ `)})),i}renderClearButton(){return s`
115
+ <button
116
+ part="clear-button"
117
+ class="combobox__clear"
118
+ type="button"
119
+ aria-label="Clear"
120
+ @mousedown=${i=>i.stopPropagation()}
121
+ @click=${this.onClearClick}
122
+ tabindex="-1"
123
+ >
124
+ <slot name="clear-icon">
125
+ <nile-icon
126
+ name="var(--nile-icon-close, var(--ng-icon-x-close))"
127
+ size="var(--nile-height-14px, var(--ng-height-16px))"
128
+ method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
129
+ library="system"
130
+ color="var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))"
131
+ ></nile-icon>
132
+ </slot>
133
+ </button>
134
+ `}renderStickyHeaderOverlay(i,t){if(!this.stickyGroupHeader||!i||!t)return s``;const o=this.stickyHeaderIndex;if(o<0||o>=this.filteredRows.length)return s``;const e=this.filteredRows[o];return"header"!==e.kind?s``:s`
135
+ <div class="combobox__group-sticky-overlay">
136
+ ${_.renderGroupHeader(e)}
137
+ </div>
138
+ `}renderListbox(){const i=this.allowCustomValue&&this.searchValue.trim()&&!this.filteredData.some((i=>{const s=this.getItemValue(i);return String(s).toLowerCase()===this.searchValue.trim().toLowerCase()}))&&!this.filteredData.some((i=>this.getDisplayText(i).toLowerCase()===this.searchValue.trim().toLowerCase()));if(this.isHorizontalGrid)return this.renderHorizontalListbox(!!i);const t=this.gridColumns>1||this.isBidirectionalGrid,o=this.hasGroupedData&&!t,e=o?this.filteredRows.length>=5:_.shouldUseVirtualizer(this.filteredData,this.gridColumns),n=this.virtualizerCtrl.getVirtualizer(),r=e||t?n.getVirtualItems():[],c=e||t?n.getTotalSize():0;return s`
139
+ <div
140
+ id="listbox"
141
+ role="listbox"
142
+ aria-expanded=${this.open?"true":"false"}
143
+ aria-multiselectable=${this.multiple?"true":"false"}
144
+ aria-labelledby="label"
145
+ part="listbox"
146
+ class="combobox__listbox ${this.isBidirectionalGrid?"combobox__listbox--bidirectional":""} ${this.portal?"combobox__portal-hidden":""}"
147
+ tabindex="-1"
148
+ @mouseup=${this.onOptionClick}
149
+ @scroll=${this.onScroll}
150
+ style="${this.portal?"display: none;":""}${this.isBidirectionalGrid?`max-height:${38*this.gridRows+16}px;`:""}"
151
+ ${m(this.scrollElementRef)}
152
+ >
153
+ ${this.renderLoader()}
154
+ ${this.renderSelectAll()}
155
+ ${this.renderStickyHeaderOverlay(o,e)}
156
+ ${!this.showNoResults||this.optionsLoading||this.loading?t?_.renderVirtualizedGrid(r,c,this.filteredData,this.value,this.multiple,this.gridColumns,this.getDisplayText.bind(this),this.getItemValue.bind(this),this.optionsLoading||this.loading,this.allowHtmlLabel,this.renderItemConfig?.getDescription?this.getItemDescription.bind(this):void 0,this.renderItemConfig?.getPrefix?this.getItemPrefix.bind(this):void 0,this.renderItemConfig?.getSuffix?this.getItemSuffix.bind(this):void 0,this.isBidirectionalGrid?this.gridColumnWidth:void 0):o?e?_.renderRowsVirtualized(r,c,this.filteredRows,this.value,this.multiple,this.getDisplayText.bind(this),this.getItemValue.bind(this),this.optionsLoading||this.loading,this.allowHtmlLabel,this.renderItemConfig?.getDescription?this.getItemDescription.bind(this):void 0,this.renderItemConfig?.getPrefix?this.getItemPrefix.bind(this):void 0,this.renderItemConfig?.getSuffix?this.getItemSuffix.bind(this):void 0):_.renderRowsPlain(this.filteredRows,this.value,this.multiple,this.getDisplayText.bind(this),this.getItemValue.bind(this),this.showNoResults,this.noResultsMessage,this.optionsLoading||this.loading,this.onScroll.bind(this),this.allowHtmlLabel,this.renderItemConfig?.getDescription?this.getItemDescription.bind(this):void 0,this.renderItemConfig?.getPrefix?this.getItemPrefix.bind(this):void 0,this.renderItemConfig?.getSuffix?this.getItemSuffix.bind(this):void 0,void 0,this.hasActiveFilter?this.noResultsSubtitle:void 0):e?_.renderVirtualizedOptions(r,c,this.filteredData,this.value,this.multiple,this.getDisplayText.bind(this),this.getItemValue.bind(this),this.optionsLoading||this.loading,this.allowHtmlLabel,n.measureElement,this.renderItemConfig?.getDescription?this.getItemDescription.bind(this):void 0,this.renderItemConfig?.getPrefix?this.getItemPrefix.bind(this):void 0,this.renderItemConfig?.getSuffix?this.getItemSuffix.bind(this):void 0):_.renderPlainOptions(this.filteredData,this.value,this.multiple,this.getDisplayText.bind(this),this.getItemValue.bind(this),this.showNoResults,this.noResultsMessage,this.optionsLoading||this.loading,this.onScroll.bind(this),this.allowHtmlLabel,this.renderItemConfig?.getDescription?this.getItemDescription.bind(this):void 0,this.renderItemConfig?.getPrefix?this.getItemPrefix.bind(this):void 0,this.renderItemConfig?.getSuffix?this.getItemSuffix.bind(this):void 0,void 0,this.hasActiveFilter?this.noResultsSubtitle:void 0):this.renderEmptyState()}
157
+ ${i?s`
158
+ <div @mouseup=${i=>{i.stopPropagation(),this.addCustomValue(this.searchValue.trim())}}>
159
+ ${_.renderAddCustomOption(this.searchValue.trim(),this.multiple)}
160
+ </div>
161
+ `:""}
162
+ ${this.multiple&&this.showFooter&&!this.selectAllEnabled?this.renderFooter():""}
163
+ </div>
164
+ `}renderHorizontalListbox(i){const t=this.hVirtualizerCtrl.getVirtualizer(),o=t.getVirtualItems(),e=t.getTotalSize();return s`
165
+ <div
166
+ id="listbox"
167
+ role="listbox"
168
+ aria-expanded=${this.open?"true":"false"}
169
+ aria-multiselectable=${this.multiple?"true":"false"}
170
+ aria-labelledby="label"
171
+ part="listbox"
172
+ class="combobox__listbox combobox__listbox--horizontal ${this.portal?"combobox__portal-hidden":""}"
173
+ tabindex="-1"
174
+ @mouseup=${this.onOptionClick}
175
+ style=${this.portal?"display: none;":""}
176
+ ${m(this.hScrollElementRef)}
177
+ >
178
+ ${this.renderLoader()}
179
+ ${this.renderSelectAll()}
180
+ ${!this.showNoResults||this.optionsLoading||this.loading?_.renderHorizontalGrid(o,e,this.filteredData,this.value,this.multiple,this.gridRows,this.gridColumnWidth,this.getDisplayText.bind(this),this.getItemValue.bind(this),this.optionsLoading||this.loading,this.allowHtmlLabel,this.renderItemConfig?.getDescription?this.getItemDescription.bind(this):void 0,this.renderItemConfig?.getPrefix?this.getItemPrefix.bind(this):void 0,this.renderItemConfig?.getSuffix?this.getItemSuffix.bind(this):void 0):this.renderEmptyState()}
181
+ ${i?s`
182
+ <div @mouseup=${i=>{i.stopPropagation(),this.addCustomValue(this.searchValue.trim())}}>
183
+ ${_.renderAddCustomOption(this.searchValue.trim(),this.multiple)}
184
+ </div>
185
+ `:""}
186
+ ${this.multiple&&this.showFooter&&!this.selectAllEnabled?this.renderFooter():""}
187
+ </div>
188
+ `}renderLoader(){return this.loading?s`<span class="combobox__loader--center"><nile-loader size="sm"></nile-loader></span>`:this.optionsLoading?s`<span class="combobox__loader"><nile-icon class="combobox__loader--icon" name="button-loading-blue"></nile-icon></span>`:s``}renderSelectAll(){if(!this.multiple||!this.selectAllEnabled)return s``;const i=this.showNoResults||this.optionsLoading||this.loading,t=this.selectAllChecked||this.selectAllIndeterminate?"Deselect all":"Select all",o=0===this.selectedOptions.length||this.showNoResults,e=o?"var(--nile-colors-primary-500, var(--ng-colors-fg-quaternary-400))":"var(--nile-colors-primary-600, var(--ng-colors-fg-brand-secondary-600))";return s`
189
+ <div
190
+ part="top-actions"
191
+ class="combobox__top-actions ${i?"combobox__top-actions--disabled":""}"
192
+ @mousedown=${i=>i.preventDefault()}
193
+ >
194
+ <div
195
+ class="combobox__select-all"
196
+ @click=${this.handleSelectAllToggle}
197
+ >
198
+ <nile-checkbox
199
+ ?checked=${this.selectAllChecked}
200
+ ?indeterminate=${this.selectAllIndeterminate}
201
+ ?disabled=${i}
202
+ >
203
+ ${t}
204
+ </nile-checkbox>
205
+ </div>
206
+
207
+ <button
208
+ part="show-toggle"
209
+ class="combobox__show-toggle"
210
+ type="button"
211
+ ?disabled=${o}
212
+ @click=${this.toggleShowSelected}
213
+ >
214
+ <nile-icon
215
+ library="system"
216
+ name="filter"
217
+ color=${e}
218
+ ></nile-icon>
219
+ ${this.showSelectedOnly?"Show all":"Selected"}
220
+ </button>
221
+ </div>
222
+ `}renderFooter(){return s`
223
+ <div
224
+ part="footer"
225
+ class="combobox__footer ${this.loading?"loading":""}"
226
+ @click=${this.onFooterClick}
227
+ >
228
+ <span @click=${this.toggleShowSelected} style="cursor: pointer;">
229
+ <nile-checkbox
230
+ ?disabled=${0===this.selectedOptions.length}
231
+ ?checked=${this.showSelectedOnly}
232
+ >
233
+ &nbsp; Show Selected
234
+ </nile-checkbox>
235
+ </span>
236
+ ${this.selectedOptions.length>0?s`<span class="combobox__footer-clear" @click=${this.clearAll}>Clear All</span>`:""}
237
+ </div>
238
+ `}};G.styles=h,i([t(".combobox-popup")],G.prototype,"popup",void 0),i([t(".combobox__trigger")],G.prototype,"combobox",void 0),i([t(".combobox__input")],G.prototype,"inputElement",void 0),i([t(".combobox__value-input")],G.prototype,"valueInput",void 0),i([o()],G.prototype,"hasFocus",void 0),i([o()],G.prototype,"displayLabel",void 0),i([o()],G.prototype,"selectedOptions",void 0),i([o()],G.prototype,"filteredData",void 0),i([o()],G.prototype,"filteredRows",void 0),i([o()],G.prototype,"originalData",void 0),i([o()],G.prototype,"showNoResults",void 0),i([o()],G.prototype,"showListbox",void 0),i([o()],G.prototype,"searchValue",void 0),i([o()],G.prototype,"showSelectedOnly",void 0),i([o()],G.prototype,"selectAllChecked",void 0),i([o()],G.prototype,"selectAllIndeterminate",void 0),i([o()],G.prototype,"stickyHeaderIndex",void 0),i([e()],G.prototype,"name",void 0),i([e({type:Array})],G.prototype,"data",void 0),i([e({converter:{fromAttribute:i=>i.split(" "),toAttribute:i=>i.join(" ")}})],G.prototype,"value",void 0),i([g()],G.prototype,"defaultValue",void 0),i([e()],G.prototype,"size",void 0),i([e()],G.prototype,"placeholder",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"multiple",void 0),i([e()],G.prototype,"label",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"required",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"disabled",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"open",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"clearable",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"loading",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"optionsLoading",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"disableLocalSearch",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"allowCustomValue",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"acceptUserInput",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"addToSuggestions",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"strict",void 0),i([e({attribute:"max-tags-visible",type:Number})],G.prototype,"maxTagsVisible",void 0),i([e()],G.prototype,"tagLayout",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"showFooter",void 0),i([e({type:Boolean,reflect:!0,attribute:"select-all-enabled"})],G.prototype,"selectAllEnabled",void 0),i([e({type:Boolean,reflect:!0,attribute:"sticky-group-header"})],G.prototype,"stickyGroupHeader",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"portal",void 0),i([e({type:Boolean})],G.prototype,"hoist",void 0),i([e({reflect:!0})],G.prototype,"placement",void 0),i([e({reflect:!0})],G.prototype,"form",void 0),i([e({attribute:"help-text",reflect:!0})],G.prototype,"helpText",void 0),i([e({attribute:"error-message",reflect:!0})],G.prototype,"errorMessage",void 0),i([e({type:Boolean})],G.prototype,"warning",void 0),i([e({type:Boolean})],G.prototype,"error",void 0),i([e({type:Boolean})],G.prototype,"success",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"filled",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"pill",void 0),i([e({type:String})],G.prototype,"noResultsMessage",void 0),i([e({type:String,attribute:"no-results-subtitle"})],G.prototype,"noResultsSubtitle",void 0),i([e({type:String,attribute:"no-data-message"})],G.prototype,"noDataMessage",void 0),i([e({type:Array,converter:{fromAttribute:i=>{if(!i)return[];try{return JSON.parse(i)}catch{return[]}},toAttribute:i=>JSON.stringify(i)}})],G.prototype,"autoCompleteOptions",void 0),i([e({type:Number})],G.prototype,"debounceMs",void 0),i([e({attribute:!1})],G.prototype,"renderItemConfig",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"allowHtmlLabel",void 0),i([e({type:Boolean,reflect:!0,attribute:!0})],G.prototype,"enableVisibilityEffect",void 0),i([e({type:Boolean,reflect:!0,attribute:!0})],G.prototype,"enableTabClose",void 0),i([e({type:Boolean,reflect:!0})],G.prototype,"noWidthSync",void 0),i([e({attribute:"grid-columns",type:Number,reflect:!0})],G.prototype,"gridColumns",void 0),i([e({attribute:"grid-rows",type:Number,reflect:!0})],G.prototype,"gridRows",void 0),i([e({attribute:"grid-column-width",type:Number})],G.prototype,"gridColumnWidth",void 0),i([f("open",{waitUntilFirstUpdate:!0})],G.prototype,"handleOpenChange",null),i([f("disabled",{waitUntilFirstUpdate:!0})],G.prototype,"handleDisabledChange",null),i([f("value",{waitUntilFirstUpdate:!0})],G.prototype,"handleValueChange",null),i([f("data",{waitUntilFirstUpdate:!0})],G.prototype,"handleDataChange",null),i([f("autoCompleteOptions",{waitUntilFirstUpdate:!0})],G.prototype,"handleAutoCompleteOptionsChange",null),i([f("multiple",{waitUntilFirstUpdate:!0}),f("selectAllEnabled",{waitUntilFirstUpdate:!0})],G.prototype,"handleSelectAllConfigChange",null),i([f("portal",{waitUntilFirstUpdate:!0})],G.prototype,"handlePortalChange",null),G=i([n("nile-combobox")],G),d("combobox.show",{keyframes:[{opacity:0,scale:.9},{opacity:1,scale:1}],options:{duration:100,easing:"ease"}}),d("combobox.hide",{keyframes:[{opacity:1,scale:1},{opacity:0,scale:.9}],options:{duration:100,easing:"ease"}});export{G as N};
@@ -0,0 +1,2 @@
1
+ System.register(["../floating-ui.dom-007bbe96.cjs.js","../nile-select/portal-utils.cjs.js"],function(_export,_context){"use strict";var t,i,s,o,e,a,n,l,h;function _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);}function _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function _regeneratorRuntime(){return e;};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value;},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e];}try{define({},"");}catch(t){define=function define(t,e,r){return t[e]=r;};}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,"_invoke",{value:makeInvokeMethod(t,r,c)}),a;}function tryCatch(t,e,r){try{return{type:"normal",arg:t.call(e,r)};}catch(t){return{type:"throw",arg:t};}}e.wrap=wrap;var h="suspendedStart",l="suspendedYield",f="executing",s="completed",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,function(){return this;});var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){["next","throw","return"].forEach(function(e){define(t,e,function(t){return this._invoke(e,t);});});}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==_typeof(h)&&n.call(h,"__await")?e.resolve(h.__await).then(function(t){invoke("next",t,i,a);},function(t){invoke("throw",t,i,a);}):e.resolve(h).then(function(t){u.value=t,i(u);},function(t){return invoke("throw",t,i,a);});}a(c.arg);}var r;o(this,"_invoke",{value:function value(t,n){function callInvokeWithMethodAndArg(){return new e(function(e,r){invoke(t,n,e,r);});}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg();}});}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw Error("Generator is already running");if(o===s){if("throw"===i)throw a;return{value:t,done:!0};}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u;}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg);}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var p=tryCatch(e,r,n);if("normal"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done};}"throw"===p.type&&(o=s,n.method="throw",n.arg=p.arg);}};}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator["return"]&&(r.method="return",r.arg=t,maybeInvokeDelegate(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=tryCatch(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y);}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e);}function resetTryEntry(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e;}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0);}function values(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next;};return i.next=i;}}throw new TypeError(_typeof(e)+" is not iterable");}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||"GeneratorFunction"===(e.displayName||e.name));},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,"GeneratorFunction")),t.prototype=Object.create(g),t;},e.awrap=function(t){return{__await:t};},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,function(){return this;}),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then(function(t){return t.done?t.value:a.next();});},defineIteratorMethods(g),define(g,u,"Generator"),define(g,a,function(){return this;}),define(g,"toString",function(){return"[object Generator]";}),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next;}return next.done=!0,next;};},e.values=values,Context.prototype={constructor:Context,reset:function reset(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t);},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval;},dispatchException:function dispatchException(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type="throw",a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o;}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc);}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc);}}}},abrupt:function abrupt(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break;}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a);},complete:function complete(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y;},finish:function finish(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y;}},"catch":function _catch(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r);}return o;}}throw Error("illegal catch attempt");},delegateYield:function delegateYield(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y;}},e;}function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value;}catch(n){return void e(n);}i.done?t(u):Promise.resolve(u).then(r,o);}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise(function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n);}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n);}_next(void 0);});};}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _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||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}return{setters:[function(_floatingUiDom001CjsJs){t=_floatingUiDom001CjsJs.c;i=_floatingUiDom001CjsJs.o;s=_floatingUiDom001CjsJs.s;o=_floatingUiDom001CjsJs.f;e=_floatingUiDom001CjsJs.a;a=_floatingUiDom001CjsJs.p;n=_floatingUiDom001CjsJs.b;},function(_nileSelectPortalUtilsCjsJs){l=_nileSelectPortalUtilsCjsJs.P;}],execute:function execute(){_export("C",h=/*#__PURE__*/function(){function h(t){_classCallCheck(this,h);this.portalContainer=null,this.originalListboxParent=null,this.measuredPopupHeight=null,this.cleanupAutoUpdate=null,this.currentPlacement="bottom",this.component=t;}return _createClass(h,[{key:"portalContainerElement",get:function get(){return this.portalContainer;}},{key:"createPortalContainer",value:function createPortalContainer(){var t=document.createElement("div");return t.style.position="absolute",t.style.zIndex="9999",t.style.pointerEvents="none",t.className="nile-combobox-portal",t;}},{key:"computePosition",value:function(){var _computePosition=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var _this=this;var n,_h,r,c,_yield$t,u,p,b,m,d;return _regeneratorRuntime().wrap(function _callee$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(this.portalContainer){_context2.next=2;break;}return _context2.abrupt("return");case 2:n=this.component.combobox||this.component,_h=this.portalContainer;_context2.prev=3;r=l.findBoundaryElements(n);c=l.getOptimalPlacement(n);_context2.next=8;return t(n,_h,{placement:c,strategy:"fixed",middleware:[i(4),s({apply:function apply(_ref){var t=_ref.availableWidth,i=_ref.availableHeight,s=_ref.elements,o=_ref.rects;var e=l.calculateOptimalHeight(o.reference,window.innerHeight,_this.currentPlacement);s.floating.style.maxWidth="".concat(t,"px"),s.floating.style.maxHeight="".concat(e,"px"),s.floating.style.setProperty("--auto-size-available-width","".concat(t,"px")),s.floating.style.setProperty("--auto-size-available-height","".concat(e,"px"));},padding:10,boundary:r}),o({fallbackPlacements:["bottom","top","bottom-start","top-start"],fallbackStrategy:"bestFit",padding:10,boundary:r}),e({padding:10,crossAxis:!0,boundary:r})],platform:a});case 8:_yield$t=_context2.sent;u=_yield$t.x;p=_yield$t.y;b=_yield$t.placement;m=n.getBoundingClientRect();Object.assign(_h.style,{left:"".concat(u,"px"),top:"".concat(p,"px"),position:"fixed",pointerEvents:"auto",width:"".concat(m.width,"px")}),this.currentPlacement=b;d=b.split("-")[0];_h.className="nile-combobox-portal combobox__listbox--".concat(d);_context2.next=21;break;case 18:_context2.prev=18;_context2.t0=_context2["catch"](3);this.fallbackPositioning();case 21:case"end":return _context2.stop();}},_callee,this,[[3,18]]);}));function computePosition(){return _computePosition.apply(this,arguments);}return computePosition;}()},{key:"fallbackPositioning",value:function fallbackPositioning(){if(!this.portalContainer)return;var t=(this.component.combobox||this.component).getBoundingClientRect(),i=window.innerHeight-t.bottom,s=t.top;var o,e,a;s>i?(e=Math.max(s-20,100),o=Math.max(t.top-e-4,10),a="top"):(e=Math.max(i-20,100),o=t.bottom+4,a="bottom"),Object.assign(this.portalContainer.style,{left:"".concat(t.left,"px"),top:"".concat(o,"px"),width:"".concat(t.width,"px"),maxHeight:"".concat(e,"px"),pointerEvents:"auto"}),this.portalContainer.className="nile-combobox-portal combobox__listbox--".concat(a),this.portalContainer.style.setProperty("--auto-size-available-height","".concat(e,"px")),this.portalContainer.style.setProperty("--auto-size-available-width","".concat(t.width,"px"));}},{key:"extractStylesAsCSS",value:function extractStylesAsCSS(t){var _this2=this;return"string"==typeof t?t:Array.isArray(t)?t.map(function(t){return _this2.extractStylesAsCSS(t);}).join("\n"):t&&"object"==_typeof(t)&&t.cssText?t.cssText:"";}},{key:"injectStyles",value:function injectStyles(){if(!this.portalContainer)return;var t="nile-combobox-styles-".concat(Math.random().toString(36).substring(2,11));if(document.getElementById(t))return;var i=this.component.constructor.styles;if(!i)return;var s=document.createElement("style");s.id=t,s.textContent=this.extractStylesAsCSS(i),document.head.appendChild(s),this.portalContainer.t=t;}},{key:"setupPortal",value:function setupPortal(){var _this3=this;this.component.portal&&this.component.updateComplete.then(function(){var _this3$component$shad;var t=(_this3$component$shad=_this3.component.shadowRoot)===null||_this3$component$shad===void 0?void 0:_this3$component$shad.querySelector("#listbox");t&&(_this3.originalListboxParent=t.parentElement,_this3.portalContainer=_this3.createPortalContainer(),_this3.portalContainer.appendChild(t),document.body.appendChild(_this3.portalContainer),_this3.injectStyles(),t.style.display="",_this3.computePosition(),_this3.cleanupAutoUpdate=n(_this3.component,_this3.portalContainer,function(){return _this3.computePosition();},{ancestorScroll:!0,ancestorResize:!0,elementResize:!0,layoutShift:!0,animationFrame:!0}));});}},{key:"cleanupPortal",value:function cleanupPortal(){if(this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=null),this.portalContainer&&this.portalContainer.parentNode){var _document$getElementB;var _t=this.portalContainer.querySelector("#listbox");_t&&this.originalListboxParent&&(this.originalListboxParent.appendChild(_t),_t.style.display=this.component.portal?"none":"");var _i=this.portalContainer.t;_i&&(_document$getElementB=document.getElementById(_i))!==null&&_document$getElementB!==void 0&&_document$getElementB.remove(),this.portalContainer.parentNode.removeChild(this.portalContainer);}this.portalContainer=null,this.originalListboxParent=null,this.measuredPopupHeight=null,this.currentPlacement="bottom";}},{key:"updatePosition",value:function updatePosition(){this.component.portal&&this.portalContainer&&this.computePosition();}},{key:"resetMeasuredHeight",value:function resetMeasuredHeight(){this.measuredPopupHeight=null;}},{key:"resetScrollPosition",value:function(){var _resetScrollPosition=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var _this4=this;return _regeneratorRuntime().wrap(function _callee2$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.next=2;return this.component.updateComplete;case 2:requestAnimationFrame(function(){var _this4$component$shad;var t=null;if(t=_this4.component.portal&&_this4.portalContainer?_this4.portalContainer.querySelector("#listbox"):(_this4$component$shad=_this4.component.shadowRoot)===null||_this4$component$shad===void 0?void 0:_this4$component$shad.querySelector("#listbox"),!t||!t.isConnected)return;t.scrollTop=0;var i=t.querySelector(".virtualized");if(i&&i.isConnected){var _this4$component$filt;((_this4$component$filt=_this4.component.filteredData)===null||_this4$component$filt===void 0?void 0:_this4$component$filt.length)<5?(i.style.overflowY="hidden",i.style.maxHeight="none",t.style.overflowY="hidden",t.style.maxHeight="fit-content"):(i.style.overflowY="auto",i.style.maxHeight="",t.style.overflowY="auto",t.style.maxHeight=""),i.scrollTop=0;}var s=t.querySelector("lit-virtualizer");s&&s.isConnected&&(s.scrollTop=0);});case 3:case"end":return _context3.stop();}},_callee2,this);}));function resetScrollPosition(){return _resetScrollPosition.apply(this,arguments);}return resetScrollPosition;}()}]);}());}};});
2
+ //# sourceMappingURL=portal-manager.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-manager.cjs.js","sources":["../../../src/nile-combobox/portal-manager.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n autoUpdate,\n computePosition,\n flip,\n offset,\n shift,\n size,\n platform,\n type Placement,\n type MiddlewareData,\n type ComputePositionConfig,\n} from '@floating-ui/dom';\nimport { PortalUtils } from '../nile-select/portal-utils';\n\nexport class ComboboxPortalManager {\n private portalContainer: HTMLElement | null = null;\n private originalListboxParent: HTMLElement | null = null;\n private measuredPopupHeight: number | null = null;\n private component: any;\n private cleanupAutoUpdate: (() => void) | null = null;\n private currentPlacement: Placement = 'bottom';\n\n constructor(component: any) {\n this.component = component;\n }\n\n get portalContainerElement(): HTMLElement | null {\n return this.portalContainer;\n }\n\n private createPortalContainer(): HTMLElement {\n const container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.zIndex = '9999';\n container.style.pointerEvents = 'none';\n container.className = 'nile-combobox-portal';\n return container;\n }\n\n private async computePosition(): Promise<void> {\n if (!this.portalContainer) return;\n\n const referenceElement = this.component.combobox || this.component;\n const floatingElement = this.portalContainer;\n\n try {\n const boundary = PortalUtils.findBoundaryElements(referenceElement);\n const initialPlacement = PortalUtils.getOptimalPlacement(referenceElement);\n\n const { x, y, placement } = await computePosition(\n referenceElement,\n floatingElement,\n {\n placement: initialPlacement,\n strategy: 'fixed',\n middleware: [\n offset(4),\n size({\n apply: ({ availableWidth, availableHeight, elements, rects }) => {\n const maxHeight = PortalUtils.calculateOptimalHeight(\n rects.reference,\n window.innerHeight,\n this.currentPlacement,\n );\n elements.floating.style.maxWidth = `${availableWidth}px`;\n elements.floating.style.maxHeight = `${maxHeight}px`;\n elements.floating.style.setProperty('--auto-size-available-width', `${availableWidth}px`);\n elements.floating.style.setProperty('--auto-size-available-height', `${maxHeight}px`);\n },\n padding: 10,\n boundary,\n }),\n flip({\n fallbackPlacements: ['bottom', 'top', 'bottom-start', 'top-start'],\n fallbackStrategy: 'bestFit',\n padding: 10,\n boundary,\n }),\n shift({ padding: 10, crossAxis: true, boundary }),\n ],\n platform,\n },\n );\n\n const referenceRect = referenceElement.getBoundingClientRect();\n Object.assign(floatingElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n position: 'fixed',\n pointerEvents: 'auto',\n width: `${referenceRect.width}px`,\n });\n\n this.currentPlacement = placement;\n const placementClass = placement.split('-')[0];\n floatingElement.className = `nile-combobox-portal combobox__listbox--${placementClass}`;\n } catch {\n this.fallbackPositioning();\n }\n }\n\n private fallbackPositioning(): void {\n if (!this.portalContainer) return;\n\n const ref = this.component.combobox || this.component;\n const rect = ref.getBoundingClientRect();\n const vh = window.innerHeight;\n const spaceBelow = vh - rect.bottom;\n const spaceAbove = rect.top;\n\n let top: number;\n let maxH: number;\n let cls: string;\n\n if (spaceAbove > spaceBelow) {\n maxH = Math.max(spaceAbove - 20, 100);\n top = Math.max(rect.top - maxH - 4, 10);\n cls = 'top';\n } else {\n maxH = Math.max(spaceBelow - 20, 100);\n top = rect.bottom + 4;\n cls = 'bottom';\n }\n\n Object.assign(this.portalContainer.style, {\n left: `${rect.left}px`,\n top: `${top}px`,\n width: `${rect.width}px`,\n maxHeight: `${maxH}px`,\n pointerEvents: 'auto',\n });\n this.portalContainer.className = `nile-combobox-portal combobox__listbox--${cls}`;\n this.portalContainer.style.setProperty('--auto-size-available-height', `${maxH}px`);\n this.portalContainer.style.setProperty('--auto-size-available-width', `${rect.width}px`);\n }\n\n private extractStylesAsCSS(styles: any): string {\n if (typeof styles === 'string') return styles;\n if (Array.isArray(styles)) return styles.map(s => this.extractStylesAsCSS(s)).join('\\n');\n if (styles && typeof styles === 'object' && styles.cssText) return styles.cssText;\n return '';\n }\n\n private injectStyles(): void {\n if (!this.portalContainer) return;\n const styleId = `nile-combobox-styles-${Math.random().toString(36).substring(2, 11)}`;\n if (document.getElementById(styleId)) return;\n\n const componentStyles = (this.component.constructor as any).styles;\n if (!componentStyles) return;\n\n const el = document.createElement('style');\n el.id = styleId;\n el.textContent = this.extractStylesAsCSS(componentStyles);\n document.head.appendChild(el);\n (this.portalContainer as any).__injectedStyleId = styleId;\n }\n\n setupPortal(): void {\n if (!this.component.portal) return;\n\n this.component.updateComplete.then(() => {\n const listbox = this.component.shadowRoot?.querySelector('#listbox') as HTMLElement;\n if (!listbox) return;\n\n this.originalListboxParent = listbox.parentElement as HTMLElement;\n this.portalContainer = this.createPortalContainer();\n this.portalContainer.appendChild(listbox);\n document.body.appendChild(this.portalContainer);\n this.injectStyles();\n listbox.style.display = '';\n this.computePosition();\n\n this.cleanupAutoUpdate = autoUpdate(\n this.component,\n this.portalContainer,\n () => this.computePosition(),\n { ancestorScroll: true, ancestorResize: true, elementResize: true, layoutShift: true, animationFrame: true },\n );\n });\n }\n\n cleanupPortal(): void {\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = null;\n }\n\n if (this.portalContainer && this.portalContainer.parentNode) {\n const listbox = this.portalContainer.querySelector('#listbox') as HTMLElement;\n if (listbox && this.originalListboxParent) {\n this.originalListboxParent.appendChild(listbox);\n listbox.style.display = this.component.portal ? 'none' : '';\n }\n\n const sid = (this.portalContainer as any).__injectedStyleId;\n if (sid) document.getElementById(sid)?.remove();\n\n this.portalContainer.parentNode.removeChild(this.portalContainer);\n }\n\n this.portalContainer = null;\n this.originalListboxParent = null;\n this.measuredPopupHeight = null;\n this.currentPlacement = 'bottom';\n }\n\n updatePosition(): void {\n if (this.component.portal && this.portalContainer) {\n this.computePosition();\n }\n }\n\n resetMeasuredHeight(): void {\n this.measuredPopupHeight = null;\n }\n\n async resetScrollPosition(): Promise<void> {\n await this.component.updateComplete;\n\n requestAnimationFrame(() => {\n let listbox: HTMLElement | null = null;\n\n if (this.component.portal && this.portalContainer) {\n listbox = this.portalContainer.querySelector('#listbox') as HTMLElement;\n } else {\n listbox = this.component.shadowRoot?.querySelector('#listbox') as HTMLElement;\n }\n\n if (!listbox || !listbox.isConnected) return;\n listbox.scrollTop = 0;\n\n const virtualized = listbox.querySelector('.virtualized') as HTMLElement;\n if (virtualized && virtualized.isConnected) {\n const fewItems = this.component.filteredData?.length < 5;\n if (fewItems) {\n virtualized.style.overflowY = 'hidden';\n virtualized.style.maxHeight = 'none';\n listbox.style.overflowY = 'hidden';\n listbox.style.maxHeight = 'fit-content';\n } else {\n virtualized.style.overflowY = 'auto';\n virtualized.style.maxHeight = '';\n listbox.style.overflowY = 'auto';\n listbox.style.maxHeight = '';\n }\n virtualized.scrollTop = 0;\n }\n\n const virtualizer = listbox.querySelector('lit-virtualizer') as HTMLElement;\n if (virtualizer && virtualizer.isConnected) {\n virtualizer.scrollTop = 0;\n }\n });\n }\n}\n"],"names":["ComboboxPortalManager","h","component","this","portalContainer","originalListboxParent","measuredPopupHeight","cleanupAutoUpdate","currentPlacement","_createClass","key","get","portalContainerElement","value","createPortalContainer","container","document","createElement","style","position","zIndex","pointerEvents","className","_computePosition","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this","n","_h","r","c","_yield$t","u","p","b","m","d","wrap","_callee$","_context2","prev","next","abrupt","referenceElement","combobox","floatingElement","boundary","PortalUtils","findBoundaryElements","initialPlacement","getOptimalPlacement","computePosition","placement","strategy","middleware","offset","size","apply","availableWidth","elements","availableHeight","rects","maxHeight","calculateOptimalHeight","reference","window","innerHeight","floating","maxWidth","setProperty","concat","padding","flip","fallbackPlacements","fallbackStrategy","shift","crossAxis","platform","x","y","referenceRect","getBoundingClientRect","Object","assign","left","top","width","placementClass","split","t0","fallbackPositioning","stop","rect","spaceBelow","bottom","spaceAbove","maxH","cls","Math","max","extractStylesAsCSS","styles","Array","isArray","map","s","join","_typeof","cssText","injectStyles","styleId","random","toString","substring","getElementById","componentStyles","constructor","el","id","textContent","head","appendChild","__injectedStyleId","setupPortal","portal","updateComplete","then","_this3$component$shad","listbox","shadowRoot","querySelector","parentElement","body","display","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","cleanupPortal","parentNode","_document$getElementB","sid","remove","removeChild","updatePosition","resetMeasuredHeight","_resetScrollPosition","_callee2","_this4","_callee2$","_context3","requestAnimationFrame","_this4$component$shad","isConnected","scrollTop","virtualized","_this4$component$filt","filteredData","length","overflowY","virtualizer","resetScrollPosition"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{c as t,o as i,s,f as o,a as e,p as a,b as n}from"../floating-ui.dom-cc9126da.esm.js";import{P as l}from"../nile-select/portal-utils.esm.js";class h{constructor(t){this.portalContainer=null,this.originalListboxParent=null,this.measuredPopupHeight=null,this.cleanupAutoUpdate=null,this.currentPlacement="bottom",this.component=t}get portalContainerElement(){return this.portalContainer}createPortalContainer(){const t=document.createElement("div");return t.style.position="absolute",t.style.zIndex="9999",t.style.pointerEvents="none",t.className="nile-combobox-portal",t}async computePosition(){if(!this.portalContainer)return;const n=this.component.combobox||this.component,h=this.portalContainer;try{const r=l.findBoundaryElements(n),c=l.getOptimalPlacement(n),{x:u,y:p,placement:b}=await t(n,h,{placement:c,strategy:"fixed",middleware:[i(4),s({apply:({availableWidth:t,availableHeight:i,elements:s,rects:o})=>{const e=l.calculateOptimalHeight(o.reference,window.innerHeight,this.currentPlacement);s.floating.style.maxWidth=`${t}px`,s.floating.style.maxHeight=`${e}px`,s.floating.style.setProperty("--auto-size-available-width",`${t}px`),s.floating.style.setProperty("--auto-size-available-height",`${e}px`)},padding:10,boundary:r}),o({fallbackPlacements:["bottom","top","bottom-start","top-start"],fallbackStrategy:"bestFit",padding:10,boundary:r}),e({padding:10,crossAxis:!0,boundary:r})],platform:a}),m=n.getBoundingClientRect();Object.assign(h.style,{left:`${u}px`,top:`${p}px`,position:"fixed",pointerEvents:"auto",width:`${m.width}px`}),this.currentPlacement=b;const d=b.split("-")[0];h.className=`nile-combobox-portal combobox__listbox--${d}`}catch{this.fallbackPositioning()}}fallbackPositioning(){if(!this.portalContainer)return;const t=(this.component.combobox||this.component).getBoundingClientRect(),i=window.innerHeight-t.bottom,s=t.top;let o,e,a;s>i?(e=Math.max(s-20,100),o=Math.max(t.top-e-4,10),a="top"):(e=Math.max(i-20,100),o=t.bottom+4,a="bottom"),Object.assign(this.portalContainer.style,{left:`${t.left}px`,top:`${o}px`,width:`${t.width}px`,maxHeight:`${e}px`,pointerEvents:"auto"}),this.portalContainer.className=`nile-combobox-portal combobox__listbox--${a}`,this.portalContainer.style.setProperty("--auto-size-available-height",`${e}px`),this.portalContainer.style.setProperty("--auto-size-available-width",`${t.width}px`)}extractStylesAsCSS(t){return"string"==typeof t?t:Array.isArray(t)?t.map((t=>this.extractStylesAsCSS(t))).join("\n"):t&&"object"==typeof t&&t.cssText?t.cssText:""}injectStyles(){if(!this.portalContainer)return;const t=`nile-combobox-styles-${Math.random().toString(36).substring(2,11)}`;if(document.getElementById(t))return;const i=this.component.constructor.styles;if(!i)return;const s=document.createElement("style");s.id=t,s.textContent=this.extractStylesAsCSS(i),document.head.appendChild(s),this.portalContainer.t=t}setupPortal(){this.component.portal&&this.component.updateComplete.then((()=>{const t=this.component.shadowRoot?.querySelector("#listbox");t&&(this.originalListboxParent=t.parentElement,this.portalContainer=this.createPortalContainer(),this.portalContainer.appendChild(t),document.body.appendChild(this.portalContainer),this.injectStyles(),t.style.display="",this.computePosition(),this.cleanupAutoUpdate=n(this.component,this.portalContainer,(()=>this.computePosition()),{ancestorScroll:!0,ancestorResize:!0,elementResize:!0,layoutShift:!0,animationFrame:!0}))}))}cleanupPortal(){if(this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=null),this.portalContainer&&this.portalContainer.parentNode){const t=this.portalContainer.querySelector("#listbox");t&&this.originalListboxParent&&(this.originalListboxParent.appendChild(t),t.style.display=this.component.portal?"none":"");const i=this.portalContainer.t;i&&document.getElementById(i)?.remove(),this.portalContainer.parentNode.removeChild(this.portalContainer)}this.portalContainer=null,this.originalListboxParent=null,this.measuredPopupHeight=null,this.currentPlacement="bottom"}updatePosition(){this.component.portal&&this.portalContainer&&this.computePosition()}resetMeasuredHeight(){this.measuredPopupHeight=null}async resetScrollPosition(){await this.component.updateComplete,requestAnimationFrame((()=>{let t=null;if(t=this.component.portal&&this.portalContainer?this.portalContainer.querySelector("#listbox"):this.component.shadowRoot?.querySelector("#listbox"),!t||!t.isConnected)return;t.scrollTop=0;const i=t.querySelector(".virtualized");if(i&&i.isConnected){this.component.filteredData?.length<5?(i.style.overflowY="hidden",i.style.maxHeight="none",t.style.overflowY="hidden",t.style.maxHeight="fit-content"):(i.style.overflowY="auto",i.style.maxHeight="",t.style.overflowY="auto",t.style.maxHeight=""),i.scrollTop=0}const s=t.querySelector("lit-virtualizer");s&&s.isConnected&&(s.scrollTop=0)}))}}export{h as C};