@aquera/nile-elements 1.3.0-beta-1.0 → 1.3.0-beta-1.1

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 (540) hide show
  1. package/README.md +0 -1
  2. package/demo/index.css +0 -3
  3. package/demo/index.html +32 -79
  4. package/demo/variables.css +1 -0
  5. package/dist/{fixture-dff65c89.cjs.js → fixture-54600b35.cjs.js} +2 -2
  6. package/dist/{fixture-1c49c014.cjs.js.map → fixture-54600b35.cjs.js.map} +1 -1
  7. package/dist/{fixture-1c49c014.cjs.js → fixture-5b79f853.cjs.js} +2 -2
  8. package/dist/{fixture-dff65c89.cjs.js.map → fixture-5b79f853.cjs.js.map} +1 -1
  9. package/dist/{fixture-f575d0df.cjs.js → fixture-73855806.cjs.js} +4 -4
  10. package/dist/fixture-73855806.cjs.js.map +1 -0
  11. package/dist/fixture-90b199c4.esm.js +569 -0
  12. package/dist/{fixture-985bba12.esm.js → fixture-9871e8a9.esm.js} +1 -1
  13. package/dist/fixture-c1d78368.cjs.js +395 -0
  14. package/dist/fixture-c1d78368.cjs.js.map +1 -0
  15. package/dist/{fixture-eddab1c0.esm.js → fixture-cf7bfcf5.esm.js} +2 -2
  16. package/dist/fixture-dbd66009.cjs.js +395 -0
  17. package/dist/fixture-dbd66009.cjs.js.map +1 -0
  18. package/dist/index.cjs.js +1 -1
  19. package/dist/index.esm.js +1 -1
  20. package/dist/index.js +173 -188
  21. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  22. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  23. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  24. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  25. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  26. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  27. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  28. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  29. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  30. package/dist/nile-button/nile-button.test.esm.js +1 -1
  31. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  32. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  33. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  34. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  35. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  36. package/dist/nile-card/nile-card.test.esm.js +1 -1
  37. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  38. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  39. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  40. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  41. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js +2 -0
  42. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js.map +1 -0
  43. package/dist/nile-code-editor/backup_nile-code-editor copy.esm.js +1 -0
  44. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  45. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  46. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  47. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  48. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  49. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  50. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  51. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  52. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  53. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  54. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  55. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  56. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  57. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  58. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  59. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  60. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  61. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  62. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  63. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  64. package/dist/nile-grid-body/index.cjs.js +2 -0
  65. package/dist/nile-grid-body/index.esm.js +1 -0
  66. package/dist/nile-grid-body/nile-grid-body.cjs.js +2 -0
  67. package/dist/nile-grid-body/nile-grid-body.cjs.js.map +1 -0
  68. package/dist/nile-grid-body/nile-grid-body.css.cjs.js +2 -0
  69. package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +1 -0
  70. package/dist/nile-grid-body/nile-grid-body.css.esm.js +10 -0
  71. package/dist/nile-grid-body/nile-grid-body.esm.js +5 -0
  72. package/dist/nile-grid-cell-item/index.cjs.js +2 -0
  73. package/dist/nile-grid-cell-item/index.cjs.js.map +1 -0
  74. package/dist/nile-grid-cell-item/index.esm.js +1 -0
  75. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +2 -0
  76. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -0
  77. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +2 -0
  78. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +1 -0
  79. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +35 -0
  80. package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +12 -0
  81. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +2 -0
  82. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +1 -0
  83. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +1 -0
  84. package/dist/nile-grid-head/index.cjs.js +2 -0
  85. package/dist/nile-grid-head/index.cjs.js.map +1 -0
  86. package/dist/nile-grid-head/index.esm.js +1 -0
  87. package/dist/nile-grid-head/nile-grid-head.cjs.js +2 -0
  88. package/dist/nile-grid-head/nile-grid-head.cjs.js.map +1 -0
  89. package/dist/nile-grid-head/nile-grid-head.css.cjs.js +2 -0
  90. package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +1 -0
  91. package/dist/nile-grid-head/nile-grid-head.css.esm.js +7 -0
  92. package/dist/nile-grid-head/nile-grid-head.esm.js +5 -0
  93. package/dist/nile-grid-head-item/index.cjs.js +2 -0
  94. package/dist/nile-grid-head-item/index.cjs.js.map +1 -0
  95. package/dist/nile-grid-head-item/index.esm.js +1 -0
  96. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +2 -0
  97. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -0
  98. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +2 -0
  99. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +1 -0
  100. package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +34 -0
  101. package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +12 -0
  102. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +2 -0
  103. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -0
  104. package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -0
  105. package/dist/nile-grid-row/index.cjs.js +2 -0
  106. package/dist/nile-grid-row/index.cjs.js.map +1 -0
  107. package/dist/nile-grid-row/index.esm.js +1 -0
  108. package/dist/nile-grid-row/nile-grid-row.cjs.js +2 -0
  109. package/dist/nile-grid-row/nile-grid-row.cjs.js.map +1 -0
  110. package/dist/nile-grid-row/nile-grid-row.css.cjs.js +2 -0
  111. package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +1 -0
  112. package/dist/nile-grid-row/nile-grid-row.css.esm.js +15 -0
  113. package/dist/nile-grid-row/nile-grid-row.esm.js +7 -0
  114. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  115. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  116. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  117. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  118. package/dist/nile-inline-edit/index.cjs.js +1 -1
  119. package/dist/nile-inline-edit/index.esm.js +1 -1
  120. package/dist/nile-inline-edit/nile-inline-edit-utils.cjs.js +2 -0
  121. package/dist/nile-inline-edit/nile-inline-edit-utils.cjs.js.map +1 -0
  122. package/dist/nile-inline-edit/nile-inline-edit-utils.esm.js +1 -0
  123. package/dist/nile-inline-edit/nile-inline-edit.cjs.js +1 -1
  124. package/dist/nile-inline-edit/nile-inline-edit.cjs.js.map +1 -1
  125. package/dist/nile-inline-edit/nile-inline-edit.esm.js +4 -4
  126. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
  127. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
  128. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
  129. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
  130. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +2 -2
  131. package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +6 -10
  132. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
  133. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
  134. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +2 -2
  135. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  136. package/dist/nile-input/nile-input.test.esm.js +1 -1
  137. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  138. package/dist/nile-link/nile-link.test.esm.js +1 -1
  139. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  140. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  141. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  142. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  143. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  144. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  145. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  146. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  147. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  148. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  149. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  150. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  151. package/dist/nile-rich-text-editor/utils.cjs.js +2 -0
  152. package/dist/nile-rich-text-editor/utils.cjs.js.map +1 -0
  153. package/dist/nile-rich-text-editor/utils.esm.js +1 -0
  154. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  155. package/dist/nile-select/nile-select.test.esm.js +1 -1
  156. package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js +1 -1
  157. package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js.map +1 -1
  158. package/dist/nile-side-bar-expand/nile-side-bar-expand.css.cjs.js +1 -1
  159. package/dist/nile-side-bar-expand/nile-side-bar-expand.css.cjs.js.map +1 -1
  160. package/dist/nile-side-bar-expand/nile-side-bar-expand.css.esm.js +5 -3
  161. package/dist/nile-side-bar-expand/nile-side-bar-expand.esm.js +6 -6
  162. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js +1 -1
  163. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js.map +1 -1
  164. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.esm.js +1 -0
  165. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js +1 -1
  166. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js.map +1 -1
  167. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js +1 -1
  168. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js.map +1 -1
  169. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.esm.js +5 -17
  170. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.esm.js +3 -3
  171. package/dist/nile-side-bar-group/nile-side-bar-group.css.cjs.js +1 -1
  172. package/dist/nile-side-bar-group/nile-side-bar-group.css.cjs.js.map +1 -1
  173. package/dist/nile-side-bar-group/nile-side-bar-group.css.esm.js +2 -2
  174. package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.cjs.js +1 -1
  175. package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.cjs.js.map +1 -1
  176. package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.esm.js +56 -58
  177. package/dist/nile-sidebar/index.cjs.js +2 -0
  178. package/dist/nile-sidebar/index.cjs.js.map +1 -0
  179. package/dist/nile-sidebar/index.esm.js +75 -0
  180. package/dist/nile-sidebar-menu/index.cjs.js +2 -0
  181. package/dist/nile-sidebar-menu/index.cjs.js.map +1 -0
  182. package/dist/nile-sidebar-menu/index.esm.js +1 -0
  183. package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js +2 -0
  184. package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js.map +1 -0
  185. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js +2 -0
  186. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js.map +1 -0
  187. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.esm.js +38 -0
  188. package/dist/nile-sidebar-menu/nile-sidebar-menu.esm.js +10 -0
  189. package/dist/nile-sidebar-menu-items/index.cjs.js +2 -0
  190. package/dist/nile-sidebar-menu-items/index.cjs.js.map +1 -0
  191. package/dist/nile-sidebar-menu-items/index.esm.js +1 -0
  192. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js +2 -0
  193. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js.map +1 -0
  194. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js +2 -0
  195. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js.map +1 -0
  196. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.esm.js +36 -0
  197. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.esm.js +15 -0
  198. package/dist/nile-sidebar-wrapper/index.cjs.js +2 -0
  199. package/dist/nile-sidebar-wrapper/index.cjs.js.map +1 -0
  200. package/dist/nile-sidebar-wrapper/index.esm.js +1 -0
  201. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js +2 -0
  202. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js.map +1 -0
  203. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js +2 -0
  204. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js.map +1 -0
  205. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.esm.js +105 -0
  206. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.esm.js +16 -0
  207. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  208. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  209. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  210. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  211. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  212. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  213. package/dist/nile-virtual-select/group-manager.cjs.js +2 -0
  214. package/dist/nile-virtual-select/group-manager.cjs.js.map +1 -0
  215. package/dist/nile-virtual-select/group-manager.esm.js +1 -0
  216. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  217. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  218. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js +2 -0
  219. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js.map +1 -0
  220. package/dist/nile-virtual-select/temp_nile-virtual-select copy.esm.js +231 -0
  221. package/dist/scopedElementsWrapper-4c29be11.esm.js +7 -0
  222. package/dist/scopedElementsWrapper-a112fc73.cjs.js +6 -0
  223. package/dist/scopedElementsWrapper-a112fc73.cjs.js.map +1 -0
  224. package/dist/scopedElementsWrapper-c815042c.cjs.js +2 -0
  225. package/dist/scopedElementsWrapper-c815042c.cjs.js.map +1 -0
  226. package/dist/src/internal/portal-manager.d.ts +53 -0
  227. package/dist/src/internal/portal-manager.js +196 -0
  228. package/dist/src/internal/portal-manager.js.map +1 -0
  229. package/dist/src/internal/portal.d.ts +60 -0
  230. package/dist/src/internal/portal.js +199 -0
  231. package/dist/src/internal/portal.js.map +1 -0
  232. package/dist/src/internal/resizable-helper.d.ts +59 -0
  233. package/dist/src/internal/resizable-helper.js +115 -0
  234. package/dist/src/internal/resizable-helper.js.map +1 -0
  235. package/dist/src/internal/resizable-styles.d.ts +16 -0
  236. package/dist/src/internal/resizable-styles.js +144 -0
  237. package/dist/src/internal/resizable-styles.js.map +1 -0
  238. package/dist/src/internal/virtualizer-error-handler.d.ts +30 -0
  239. package/dist/src/internal/virtualizer-error-handler.js +82 -0
  240. package/dist/src/internal/virtualizer-error-handler.js.map +1 -0
  241. package/dist/src/lib/index.d.ts +7 -0
  242. package/dist/src/lib/index.js +8 -0
  243. package/dist/src/lib/index.js.map +1 -0
  244. package/dist/src/lib/virtualize.d.ts +32 -0
  245. package/dist/src/lib/virtualize.js +105 -0
  246. package/dist/src/lib/virtualize.js.map +1 -0
  247. package/dist/src/lib/virtualize.test.d.ts +7 -0
  248. package/dist/src/lib/virtualize.test.js +57 -0
  249. package/dist/src/lib/virtualize.test.js.map +1 -0
  250. package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +17 -0
  251. package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +310 -0
  252. package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +34 -0
  253. package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +31 -0
  254. package/dist/src/nile-code-editor/Old_theme copy.d.ts +191 -0
  255. package/dist/src/nile-code-editor/Old_theme copy.js +193 -0
  256. package/dist/src/nile-code-editor/Old_theme copy.js.map +1 -0
  257. package/dist/src/nile-code-editor/backup_nile-code-editor copy.d.ts +0 -0
  258. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js +675 -0
  259. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js.map +1 -0
  260. package/dist/src/nile-code-editor/theme copy.d.ts +191 -0
  261. package/dist/src/nile-code-editor/theme copy.js +193 -0
  262. package/dist/src/nile-code-editor/theme copy.js.map +1 -0
  263. package/dist/src/nile-grid/data-processor.d.ts +37 -0
  264. package/dist/src/nile-grid/data-processor.js +122 -0
  265. package/dist/src/nile-grid/data-processor.js.map +1 -0
  266. package/dist/src/nile-grid/event-handlers.d.ts +35 -0
  267. package/dist/src/nile-grid/event-handlers.js +158 -0
  268. package/dist/src/nile-grid/event-handlers.js.map +1 -0
  269. package/dist/src/nile-grid/renderer.d.ts +8 -0
  270. package/dist/src/nile-grid/renderer.js +78 -0
  271. package/dist/src/nile-grid/renderer.js.map +1 -0
  272. package/dist/src/nile-grid/resize-handler.d.ts +4 -0
  273. package/dist/src/nile-grid/resize-handler.js +36 -0
  274. package/dist/src/nile-grid/resize-handler.js.map +1 -0
  275. package/dist/src/nile-grid/types.d.ts +32 -0
  276. package/dist/src/nile-grid/types.js +2 -0
  277. package/dist/src/nile-grid/types.js.map +1 -0
  278. package/dist/src/nile-grid/utils.d.ts +4 -0
  279. package/dist/src/nile-grid/utils.js +32 -0
  280. package/dist/src/nile-grid/utils.js.map +1 -0
  281. package/dist/src/nile-grid-body/index.d.ts +1 -0
  282. package/dist/src/nile-grid-body/index.js +2 -0
  283. package/dist/src/nile-grid-body/index.js.map +1 -0
  284. package/dist/src/nile-grid-body/nile-grid-body.css.d.ts +12 -0
  285. package/dist/src/nile-grid-body/nile-grid-body.css.js +22 -0
  286. package/dist/src/nile-grid-body/nile-grid-body.css.js.map +1 -0
  287. package/dist/src/nile-grid-body/nile-grid-body.d.ts +29 -0
  288. package/dist/src/nile-grid-body/nile-grid-body.js +43 -0
  289. package/dist/src/nile-grid-body/nile-grid-body.js.map +1 -0
  290. package/dist/src/nile-grid-cell-item/index.d.ts +1 -0
  291. package/dist/src/nile-grid-cell-item/index.js +2 -0
  292. package/dist/src/nile-grid-cell-item/index.js.map +1 -0
  293. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +12 -0
  294. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +47 -0
  295. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +1 -0
  296. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +36 -0
  297. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +93 -0
  298. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +1 -0
  299. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +10 -0
  300. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +34 -0
  301. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +1 -0
  302. package/dist/src/nile-grid-head/index.d.ts +1 -0
  303. package/dist/src/nile-grid-head/index.js +2 -0
  304. package/dist/src/nile-grid-head/index.js.map +1 -0
  305. package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +12 -0
  306. package/dist/src/nile-grid-head/nile-grid-head.css.js +19 -0
  307. package/dist/src/nile-grid-head/nile-grid-head.css.js.map +1 -0
  308. package/dist/src/nile-grid-head/nile-grid-head.d.ts +28 -0
  309. package/dist/src/nile-grid-head/nile-grid-head.js +41 -0
  310. package/dist/src/nile-grid-head/nile-grid-head.js.map +1 -0
  311. package/dist/src/nile-grid-head-item/index.d.ts +1 -0
  312. package/dist/src/nile-grid-head-item/index.js +2 -0
  313. package/dist/src/nile-grid-head-item/index.js.map +1 -0
  314. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +12 -0
  315. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +46 -0
  316. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +1 -0
  317. package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +37 -0
  318. package/dist/src/nile-grid-head-item/nile-grid-head-item.js +100 -0
  319. package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +1 -0
  320. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +10 -0
  321. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +34 -0
  322. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -0
  323. package/dist/src/nile-grid-row/index.d.ts +1 -0
  324. package/dist/src/nile-grid-row/index.js +2 -0
  325. package/dist/src/nile-grid-row/index.js.map +1 -0
  326. package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +12 -0
  327. package/dist/src/nile-grid-row/nile-grid-row.css.js +27 -0
  328. package/dist/src/nile-grid-row/nile-grid-row.css.js.map +1 -0
  329. package/dist/src/nile-grid-row/nile-grid-row.d.ts +29 -0
  330. package/dist/src/nile-grid-row/nile-grid-row.js +45 -0
  331. package/dist/src/nile-grid-row/nile-grid-row.js.map +1 -0
  332. package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +47 -0
  333. package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +16 -0
  334. package/dist/src/nile-inline-edit/nile-inline-edit-utils.d.ts +20 -0
  335. package/dist/src/nile-inline-edit/nile-inline-edit-utils.js +70 -0
  336. package/dist/src/nile-inline-edit/nile-inline-edit-utils.js.map +1 -0
  337. package/dist/src/nile-inline-edit/nile-inline-edit.d.ts +8 -0
  338. package/dist/src/nile-inline-edit/nile-inline-edit.js +47 -1
  339. package/dist/src/nile-inline-edit/nile-inline-edit.js.map +1 -1
  340. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +2 -2
  341. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
  342. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +3 -10
  343. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
  344. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +0 -1
  345. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +0 -4
  346. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
  347. package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +75 -0
  348. package/dist/src/nile-menu/portal-manager.d.ts +39 -0
  349. package/dist/src/nile-menu/portal-manager.js +340 -0
  350. package/dist/src/nile-menu/portal-manager.js.map +1 -0
  351. package/dist/src/nile-menu/portal-utils.d.ts +21 -0
  352. package/dist/src/nile-menu/portal-utils.js +128 -0
  353. package/dist/src/nile-menu/portal-utils.js.map +1 -0
  354. package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +22 -0
  355. package/dist/src/nile-popover/popover-portal-handler.d.ts +21 -0
  356. package/dist/src/nile-popover/popover-portal-handler.js +106 -0
  357. package/dist/src/nile-popover/popover-portal-handler.js.map +1 -0
  358. package/dist/src/nile-portal-wrapper/index.d.ts +1 -0
  359. package/dist/src/nile-portal-wrapper/index.js +2 -0
  360. package/dist/src/nile-portal-wrapper/index.js.map +1 -0
  361. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.d.ts +47 -0
  362. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js +451 -0
  363. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js.map +1 -0
  364. package/dist/src/nile-rich-text-editor/utils.d.ts +13 -0
  365. package/dist/src/nile-rich-text-editor/utils.js +538 -0
  366. package/dist/src/nile-rich-text-editor/utils.js.map +1 -0
  367. package/dist/src/nile-select/body-append-manager.d.ts +90 -0
  368. package/dist/src/nile-select/body-append-manager.js +298 -0
  369. package/dist/src/nile-select/body-append-manager.js.map +1 -0
  370. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.css.js +5 -3
  371. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.css.js.map +1 -1
  372. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js +4 -4
  373. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js.map +1 -1
  374. package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js +1 -0
  375. package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js.map +1 -1
  376. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js +3 -15
  377. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js.map +1 -1
  378. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.d.ts +15 -9
  379. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.js +15 -36
  380. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.js.map +1 -1
  381. package/dist/src/nile-side-bar-group/nile-side-bar-group.css.js +2 -2
  382. package/dist/src/nile-side-bar-group/nile-side-bar-group.css.js.map +1 -1
  383. package/dist/src/nile-side-bar-group-item/nile-side-bar-group-item.css.js +46 -48
  384. package/dist/src/nile-side-bar-group-item/nile-side-bar-group-item.css.js.map +1 -1
  385. package/dist/src/nile-sidebar/index.d.ts +28 -0
  386. package/dist/src/nile-sidebar/index.js +116 -0
  387. package/dist/src/nile-sidebar/index.js.map +1 -0
  388. package/dist/src/nile-sidebar-menu/index.d.ts +1 -0
  389. package/dist/src/nile-sidebar-menu/index.js +2 -0
  390. package/dist/src/nile-sidebar-menu/index.js.map +1 -0
  391. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.d.ts +12 -0
  392. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js +47 -0
  393. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js.map +1 -0
  394. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.d.ts +37 -0
  395. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js +84 -0
  396. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js.map +1 -0
  397. package/dist/src/nile-sidebar-menu-items/index.d.ts +1 -0
  398. package/dist/src/nile-sidebar-menu-items/index.js +2 -0
  399. package/dist/src/nile-sidebar-menu-items/index.js.map +1 -0
  400. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.d.ts +12 -0
  401. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js +45 -0
  402. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js.map +1 -0
  403. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.d.ts +35 -0
  404. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js +78 -0
  405. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js.map +1 -0
  406. package/dist/src/nile-sidebar-wrapper/index.d.ts +1 -0
  407. package/dist/src/nile-sidebar-wrapper/index.js +2 -0
  408. package/dist/src/nile-sidebar-wrapper/index.js.map +1 -0
  409. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.d.ts +12 -0
  410. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js +114 -0
  411. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js.map +1 -0
  412. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.d.ts +35 -0
  413. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js +89 -0
  414. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js.map +1 -0
  415. package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +9 -0
  416. package/dist/src/nile-table-body/virtual-scroll-helper.js +24 -0
  417. package/dist/src/nile-table-body/virtual-scroll-helper.js.map +1 -0
  418. package/dist/src/nile-virtual-select/body-append-helper.d.ts +16 -0
  419. package/dist/src/nile-virtual-select/body-append-helper.js +95 -0
  420. package/dist/src/nile-virtual-select/body-append-helper.js.map +1 -0
  421. package/dist/src/nile-virtual-select/group-manager.d.ts +32 -0
  422. package/dist/src/nile-virtual-select/group-manager.js +134 -0
  423. package/dist/src/nile-virtual-select/group-manager.js.map +1 -0
  424. package/dist/src/nile-virtual-select/portal-utils.d.ts +65 -0
  425. package/dist/src/nile-virtual-select/portal-utils.js +376 -0
  426. package/dist/src/nile-virtual-select/portal-utils.js.map +1 -0
  427. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.d.ts +273 -0
  428. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js +1305 -0
  429. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js.map +1 -0
  430. package/dist/src/nile-virtual-select/virtualizer-error-handler.d.ts +21 -0
  431. package/dist/src/nile-virtual-select/virtualizer-error-handler.js +56 -0
  432. package/dist/src/nile-virtual-select/virtualizer-error-handler.js.map +1 -0
  433. package/dist/src/nile-virtual-select-disabled/index.d.ts +1 -0
  434. package/dist/src/nile-virtual-select-disabled/index.js +2 -0
  435. package/dist/src/nile-virtual-select-disabled/index.js.map +1 -0
  436. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.d.ts +12 -0
  437. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js +538 -0
  438. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js.map +1 -0
  439. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.d.ts +299 -0
  440. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js +1441 -0
  441. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js.map +1 -0
  442. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.d.ts +7 -0
  443. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js +631 -0
  444. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js.map +1 -0
  445. package/dist/src/nile-virtual-select-disabled/portal-manager.d.ts +45 -0
  446. package/dist/src/nile-virtual-select-disabled/portal-manager.js +333 -0
  447. package/dist/src/nile-virtual-select-disabled/portal-manager.js.map +1 -0
  448. package/dist/src/nile-virtual-select-disabled/renderer.d.ts +16 -0
  449. package/dist/src/nile-virtual-select-disabled/renderer.js +79 -0
  450. package/dist/src/nile-virtual-select-disabled/renderer.js.map +1 -0
  451. package/dist/src/nile-virtual-select-disabled/search-manager.d.ts +12 -0
  452. package/dist/src/nile-virtual-select-disabled/search-manager.js +40 -0
  453. package/dist/src/nile-virtual-select-disabled/search-manager.js.map +1 -0
  454. package/dist/src/nile-virtual-select-disabled/selection-manager.d.ts +12 -0
  455. package/dist/src/nile-virtual-select-disabled/selection-manager.js +64 -0
  456. package/dist/src/nile-virtual-select-disabled/selection-manager.js.map +1 -0
  457. package/dist/src/nile-virtual-select-disabled/types.d.ts +50 -0
  458. package/dist/src/nile-virtual-select-disabled/types.js +8 -0
  459. package/dist/src/nile-virtual-select-disabled/types.js.map +1 -0
  460. package/dist/src/nile-virtual-table-body/index.d.ts +2 -0
  461. package/dist/src/nile-virtual-table-body/index.js +3 -0
  462. package/dist/src/nile-virtual-table-body/index.js.map +1 -0
  463. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +1 -0
  464. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +44 -0
  465. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +1 -0
  466. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +50 -0
  467. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +135 -0
  468. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +1 -0
  469. package/dist/src/nile-virtual-table-body/renderer.d.ts +16 -0
  470. package/dist/src/nile-virtual-table-body/renderer.js +49 -0
  471. package/dist/src/nile-virtual-table-body/renderer.js.map +1 -0
  472. package/dist/src/utilities/stepper-utils.d.ts +71 -0
  473. package/dist/src/utilities/stepper-utils.js +108 -0
  474. package/dist/src/utilities/stepper-utils.js.map +1 -0
  475. package/dist/src/version.js +1 -1
  476. package/dist/src/version.js.map +1 -1
  477. package/dist/tsconfig.tsbuildinfo +1 -1
  478. package/package.json +2 -2
  479. package/src/nile-inline-edit/nile-inline-edit-utils.ts +94 -0
  480. package/src/nile-inline-edit/nile-inline-edit.ts +59 -1
  481. package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +2 -2
  482. package/src/nile-inline-sidebar/nile-inline-sidebar.ts +5 -16
  483. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +0 -1
  484. package/src/nile-side-bar-expand/nile-side-bar-expand.css.ts +5 -3
  485. package/src/nile-side-bar-expand/nile-side-bar-expand.ts +4 -4
  486. package/src/nile-side-bar-footer/nile-side-bar-footer.css.ts +1 -0
  487. package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts +3 -15
  488. package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.ts +16 -42
  489. package/src/nile-side-bar-group/nile-side-bar-group.css.ts +2 -2
  490. package/src/nile-side-bar-group-item/nile-side-bar-group-item.css.ts +47 -49
  491. package/vscode-html-custom-data.json +8 -30
  492. package/dist/axe.min-140df6c2.cjs.js +0 -2
  493. package/dist/axe.min-140df6c2.cjs.js.map +0 -1
  494. package/dist/axe.min-591c52c3.esm.js +0 -1
  495. package/dist/fixture-f575d0df.cjs.js.map +0 -1
  496. package/dist/floating-ui.dom-70d5643f.esm.js +0 -1
  497. package/dist/floating-ui.dom-f19772dc.cjs.js +0 -2
  498. package/dist/floating-ui.dom-f19772dc.cjs.js.map +0 -1
  499. package/dist/flow-3e83b6f4.esm.js +0 -17
  500. package/dist/flow-ca47f938.cjs.js +0 -14
  501. package/dist/flow-ca47f938.cjs.js.map +0 -1
  502. package/dist/nile-light-tooltip/index.cjs.js +0 -2
  503. package/dist/nile-light-tooltip/index.esm.js +0 -1
  504. package/dist/nile-light-tooltip/nile-light-tooltip.cjs.js +0 -2
  505. package/dist/nile-light-tooltip/nile-light-tooltip.cjs.js.map +0 -1
  506. package/dist/nile-light-tooltip/nile-light-tooltip.css.cjs.js +0 -2
  507. package/dist/nile-light-tooltip/nile-light-tooltip.css.cjs.js.map +0 -1
  508. package/dist/nile-light-tooltip/nile-light-tooltip.css.esm.js +0 -5
  509. package/dist/nile-light-tooltip/nile-light-tooltip.esm.js +0 -1
  510. package/dist/nile-light-tooltip/utils.cjs.js +0 -2
  511. package/dist/nile-light-tooltip/utils.cjs.js.map +0 -1
  512. package/dist/nile-light-tooltip/utils.esm.js +0 -1
  513. package/dist/scopedElementsWrapper-067597d2.cjs.js +0 -6
  514. package/dist/scopedElementsWrapper-067597d2.cjs.js.map +0 -1
  515. package/dist/scopedElementsWrapper-4374e962.esm.js +0 -7
  516. package/dist/sinon-esm-283dcc9b.cjs.js +0 -2
  517. package/dist/sinon-esm-283dcc9b.cjs.js.map +0 -1
  518. package/dist/sinon-esm-abe9b0ec.esm.js +0 -1
  519. package/dist/src/nile-light-tooltip/index.d.ts +0 -1
  520. package/dist/src/nile-light-tooltip/index.js +0 -2
  521. package/dist/src/nile-light-tooltip/index.js.map +0 -1
  522. package/dist/src/nile-light-tooltip/nile-light-tooltip.css.d.ts +0 -12
  523. package/dist/src/nile-light-tooltip/nile-light-tooltip.css.js +0 -17
  524. package/dist/src/nile-light-tooltip/nile-light-tooltip.css.js.map +0 -1
  525. package/dist/src/nile-light-tooltip/nile-light-tooltip.d.ts +0 -79
  526. package/dist/src/nile-light-tooltip/nile-light-tooltip.js +0 -350
  527. package/dist/src/nile-light-tooltip/nile-light-tooltip.js.map +0 -1
  528. package/dist/src/nile-light-tooltip/nile-lite-tooltip.css.d.ts +0 -12
  529. package/dist/src/nile-light-tooltip/nile-lite-tooltip.css.js +0 -17
  530. package/dist/src/nile-light-tooltip/nile-lite-tooltip.css.js.map +0 -1
  531. package/dist/src/nile-light-tooltip/nile-lite-tooltip.d.ts +0 -79
  532. package/dist/src/nile-light-tooltip/nile-lite-tooltip.js +0 -350
  533. package/dist/src/nile-light-tooltip/nile-lite-tooltip.js.map +0 -1
  534. package/dist/src/nile-light-tooltip/utils.d.ts +0 -2
  535. package/dist/src/nile-light-tooltip/utils.js +0 -29
  536. package/dist/src/nile-light-tooltip/utils.js.map +0 -1
  537. package/dist/virtualize-73f68d08.esm.js +0 -22
  538. package/dist/virtualize-eb33a9a0.cjs.js +0 -18
  539. package/dist/virtualize-eb33a9a0.cjs.js.map +0 -1
  540. /package/dist/{nile-light-tooltip → nile-grid-body}/index.cjs.js.map +0 -0
@@ -0,0 +1,1441 @@
1
+ /**
2
+ * Copyright Aquera Inc 2025
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { __decorate } from "tslib";
8
+ import { html, } from 'lit';
9
+ import { customElement, property } from 'lit/decorators.js';
10
+ import { styles } from './nile-virtual-select.css';
11
+ import '../nile-icon';
12
+ import '../nile-popup/nile-popup';
13
+ import '../nile-tag/nile-tag';
14
+ import '../nile-checkbox/nile-checkbox';
15
+ import '../nile-loader/nile-loader';
16
+ import { animateTo, stopAnimations } from '../internal/animate';
17
+ import { classMap } from 'lit/directives/class-map.js';
18
+ import { query, state } from 'lit/decorators.js';
19
+ import { defaultValue } from '../internal/default-value';
20
+ import { FormControlController } from '../internal/form';
21
+ import { getAnimation, setDefaultAnimation, } from '../utilities/animation-registry';
22
+ import { HasSlotController } from '../internal/slot';
23
+ import { waitForEvent } from '../internal/event';
24
+ import { watch } from '../internal/watch';
25
+ import NileElement from '../internal/nile-element';
26
+ import { ifDefined } from 'lit/directives/if-defined.js';
27
+ import { VirtualSelectSelectionManager } from './selection-manager.js';
28
+ import { VirtualSelectSearchManager } from './search-manager.js';
29
+ import { VirtualSelectRenderer } from './renderer.js';
30
+ import { PortalManager } from './portal-manager.js';
31
+ import { ResizeController } from '@lit-labs/observers/resize-controller.js';
32
+ /**
33
+ * Nile Virtual Select component.
34
+ *
35
+ * @tag nile-virtual-select
36
+ *
37
+ */
38
+ /**
39
+ * @summary Virtual select component for handling large datasets with virtual scrolling.
40
+ * @status stable
41
+ * @since 2.0
42
+ *
43
+ * @dependency nile-icon
44
+ * @dependency nile-popup
45
+ * @dependency nile-tag
46
+ * @dependency nile-checkbox
47
+ *
48
+ * @slot label - The input's label. Alternatively, you can use the `label` attribute.
49
+ * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.
50
+ * @slot clear-icon - An icon to use in lieu of the default clear icon.
51
+ * @slot expand-icon - The icon to show when the control is expanded and collapsed.
52
+ * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
53
+ *
54
+ * @event nile-change - Emitted when the control's value changes.
55
+ * @event nile-clear - Emitted when the control's value is cleared.
56
+ * @event nile-input - Emitted when the control receives input.
57
+ * @event nile-focus - Emitted when the control gains focus.
58
+ * @event nile-blur - Emitted when the control loses focus.
59
+ * @event nile-show - Emitted when the select's menu opens.
60
+ * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.
61
+ * @event nile-hide - Emitted when the select's menu closes.
62
+ * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.
63
+ * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
64
+ * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.
65
+ * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.
66
+ * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.
67
+ * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).
68
+ *
69
+ * @csspart form-control - The form control that wraps the label, input, and help text.
70
+ * @csspart form-control-label - The label's wrapper.
71
+ * @csspart form-control-input - The select's wrapper.
72
+ * @csspart form-control-help-text - The help text's wrapper.
73
+ * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.
74
+ * @csspart prefix - The container that wraps the prefix slot.
75
+ * @csspart display-input - The element that displays the selected option's label, an `<input>` element.
76
+ * @csspart listbox - The listbox container where options are slotted.
77
+ * @csspart tags - The container that houses option tags when `multiple` is used.
78
+ * @csspart tag - The individual tags that represent each multiselect option.
79
+ * @csspart clear-button - The clear button.
80
+ * @csspart expand-icon - The container that wraps the expand icon.
81
+ * @csspart footer - The footer container with show selected and clear all options.
82
+ */
83
+ let NileVirtualSelect = class NileVirtualSelect extends NileElement {
84
+ constructor() {
85
+ super(...arguments);
86
+ this.formControlController = new FormControlController(this, {
87
+ assumeInteractionOn: ['nile-blur', 'nile-input'],
88
+ });
89
+ this.hasSlotController = new HasSlotController(this, 'help-text', 'label');
90
+ this.portalManager = new PortalManager(this);
91
+ this.hasFocus = false;
92
+ this.displayLabel = '';
93
+ this.selectedOptions = [];
94
+ this.oldValue = '';
95
+ this.scrolling = false;
96
+ /** The name of the select, submitted as a name/value pair with form data. */
97
+ this.name = '';
98
+ /** Array of all option items for virtual scrolling */
99
+ this.data = [];
100
+ /** Original unfiltered option items for search functionality */
101
+ this.originalOptionItems = [];
102
+ /**
103
+ * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.
104
+ */
105
+ this.value = '';
106
+ /** The default value of the form control. Primarily used for resetting the form control. */
107
+ this.defaultValue = '';
108
+ /** The select's size. */
109
+ this.size = 'medium';
110
+ /** Placeholder text to show as a hint when the select is empty. */
111
+ this.placeholder = 'Select...';
112
+ /** Enable automatic resizing of tags area */
113
+ this.autoResize = false;
114
+ /** Current search value */
115
+ this.searchValue = '';
116
+ /** Enable search functionality */
117
+ this.searchEnabled = false;
118
+ /** Search input placeholder */
119
+ this.internalSearchPlaceHolder = 'Search...';
120
+ /** Disable local search filtering */
121
+ this.disableLocalSearch = false;
122
+ /** Show loading state */
123
+ this.optionsLoading = false;
124
+ /** Show loading state using nile-loader */
125
+ this.loading = false;
126
+ /** Allows more than one option to be selected. */
127
+ this.multiple = false;
128
+ /** Help text */
129
+ this.helpText = '';
130
+ /** Error message */
131
+ this.errorMessage = '';
132
+ /** Sets the input to a warning state */
133
+ this.warning = false;
134
+ /** Sets the input to an error state */
135
+ this.error = false;
136
+ /** Sets the input to a success state */
137
+ this.success = false;
138
+ /** Disables the select control. */
139
+ this.disabled = false;
140
+ /** Adds a clear button when the select is not empty. */
141
+ this.clearable = false;
142
+ /** The select's open state. */
143
+ this.open = false;
144
+ /**
145
+ * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with
146
+ * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
147
+ */
148
+ this.hoist = false;
149
+ /** Draws a filled select. */
150
+ this.filled = false;
151
+ /** Draws a pill-style select with rounded edges. */
152
+ this.pill = false;
153
+ /** The select's label. If you need to display HTML, use the `label` slot instead. */
154
+ this.label = '';
155
+ /**
156
+ * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox
157
+ * inside of the viewport.
158
+ */
159
+ this.placement = 'bottom';
160
+ /**
161
+ * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you
162
+ * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in
163
+ * the same document or shadow root for this to work.
164
+ */
165
+ this.form = '';
166
+ /** The select's required attribute. */
167
+ this.required = false;
168
+ /** Show no results message */
169
+ this.showNoResults = false;
170
+ /** No results message */
171
+ this.noResultsMessage = 'No results found';
172
+ /** Show selected options only */
173
+ this.showSelected = false;
174
+ /** Block value change events */
175
+ this.blockValueChange = false;
176
+ /** Disable width synchronization */
177
+ this.noWidthSync = false;
178
+ /**
179
+ * When true, the listbox will be appended to the document body instead of the parent container.
180
+ * This is useful when the parent has overflow: hidden, clip-path, or transform applied.
181
+ */
182
+ this.portal = false;
183
+ /**
184
+ * The maximum number of selected options to show when `multiple` is true. After the maximum, "+n" will be shown to
185
+ * indicate the number of additional items that are selected. Set to 0 to remove the limit.
186
+ */
187
+ this.maxOptionsVisible = 3;
188
+ this.oldMaxOptionsVisible = 1;
189
+ this.showListbox = false;
190
+ this.wasShowSelectedCheckedOnClose = false;
191
+ this.handleDocumentMouseDown = (event) => {
192
+ if (!this.open)
193
+ return;
194
+ const path = event.composedPath();
195
+ const hitSelf = path.includes(this);
196
+ const hitPopup = this.popup && path.includes(this.popup);
197
+ const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);
198
+ if (!hitSelf && !hitPopup && !hitPortalAppend) {
199
+ this.hide();
200
+ }
201
+ };
202
+ /**
203
+ * This is a workaround for an error in the Lit Labs virtualizer.
204
+ * Since there are no specific guidelines available to fix the issue,
205
+ * we are catching only the error message related to the virtualizer.
206
+ */
207
+ this.handleWindowError = (event) => {
208
+ const errorMessage = event.error?.message || event.message || '';
209
+ if (errorMessage.includes('Cannot read properties of null (reading \'insertBefore\')')) {
210
+ event.preventDefault();
211
+ return;
212
+ }
213
+ };
214
+ this.handleWindowResize = () => {
215
+ this.portalManager.updatePortalAppendPosition();
216
+ };
217
+ this.handleWindowScroll = () => {
218
+ this.portalManager.updatePortalAppendPosition();
219
+ };
220
+ this.resizeController = new ResizeController(this, {
221
+ callback: (entries) => {
222
+ for (const entry of entries) {
223
+ if (entry.target.classList.contains('select__tags')) {
224
+ this.calculateTotalWidthOfTags();
225
+ }
226
+ }
227
+ }
228
+ });
229
+ }
230
+ /** Gets the validity state object */
231
+ get validity() {
232
+ return this.valueInput?.validity;
233
+ }
234
+ /** Gets the validation message */
235
+ get validationMessage() {
236
+ return this.valueInput?.validationMessage ?? '';
237
+ }
238
+ connectedCallback() {
239
+ super.connectedCallback();
240
+ this.initializeComponent();
241
+ this.setupEventListeners();
242
+ this.updateComplete.then(() => {
243
+ if (this.value && this.data.length > 0) {
244
+ this.selectionChanged();
245
+ }
246
+ });
247
+ }
248
+ disconnectedCallback() {
249
+ this.removeOpenListeners();
250
+ // Clear any pending scroll timeout to prevent memory leaks
251
+ if (this.scrollTimeout) {
252
+ clearTimeout(this.scrollTimeout);
253
+ this.scrollTimeout = undefined;
254
+ }
255
+ // Clean up body append elements
256
+ this.portalManager.cleanupPortalAppend();
257
+ }
258
+ updated(changedProperties) {
259
+ if (changedProperties.has('value')) {
260
+ this.selectionChanged();
261
+ }
262
+ if (changedProperties.has('autoResize')) {
263
+ const tagsDiv = this.shadowRoot?.querySelector('.select__tags');
264
+ if (this.autoResize && tagsDiv) {
265
+ this.resizeController.observe(tagsDiv);
266
+ }
267
+ else if (tagsDiv) {
268
+ this.resizeController.unobserve(tagsDiv);
269
+ }
270
+ }
271
+ }
272
+ initializeComponent() {
273
+ this.open = false;
274
+ this.emit('nile-init');
275
+ }
276
+ /**
277
+ * Get display text for an item using renderItemConfig
278
+ */
279
+ getDisplayText(item) {
280
+ if (this.renderItemConfig?.getDisplayText) {
281
+ return this.renderItemConfig.getDisplayText(item);
282
+ }
283
+ // Fallback to basic display
284
+ return item?.label || item?.name || item?.toString() || '';
285
+ }
286
+ /**
287
+ * Get value for an item using renderItemConfig or fallback to item.value
288
+ */
289
+ getItemValue(item) {
290
+ if (this.renderItemConfig?.getValue) {
291
+ return this.renderItemConfig.getValue(item);
292
+ }
293
+ return item?.value || item;
294
+ }
295
+ /**
296
+ * Get search text for an item using renderItemConfig or fallback to display text
297
+ */
298
+ getSearchText(item) {
299
+ if (this.renderItemConfig?.getSearchText) {
300
+ return this.renderItemConfig.getSearchText(item);
301
+ }
302
+ return this.getDisplayText(item);
303
+ }
304
+ setupEventListeners() {
305
+ this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);
306
+ this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
307
+ this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
308
+ this.handleWindowError = this.handleWindowError.bind(this);
309
+ this.handleWindowResize = this.handleWindowResize.bind(this);
310
+ this.handleWindowScroll = this.handleWindowScroll.bind(this);
311
+ }
312
+ addOpenListeners() {
313
+ document.addEventListener('focusin', this.handleDocumentFocusIn);
314
+ document.addEventListener('keydown', this.handleDocumentKeyDown);
315
+ document.addEventListener('mousedown', this.handleDocumentMouseDown);
316
+ window.addEventListener('error', this.handleWindowError);
317
+ if (this.portal) {
318
+ window.addEventListener('resize', this.handleWindowResize);
319
+ window.addEventListener('scroll', this.handleWindowScroll, true);
320
+ }
321
+ }
322
+ removeOpenListeners() {
323
+ document.removeEventListener('focusin', this.handleDocumentFocusIn);
324
+ document.removeEventListener('keydown', this.handleDocumentKeyDown);
325
+ document.removeEventListener('mousedown', this.handleDocumentMouseDown);
326
+ window.removeEventListener('error', this.handleWindowError);
327
+ window.removeEventListener('resize', this.handleWindowResize);
328
+ window.removeEventListener('scroll', this.handleWindowScroll, true);
329
+ }
330
+ handleFocus() {
331
+ this.hasFocus = true;
332
+ this.emit('nile-focus');
333
+ }
334
+ handleBlur() {
335
+ this.hasFocus = false;
336
+ this.emit('nile-blur');
337
+ }
338
+ handleDocumentFocusIn(event) {
339
+ if (!this.open)
340
+ return;
341
+ const path = event.composedPath();
342
+ const hitSelf = path.includes(this);
343
+ const hitPopup = this.popup && path.includes(this.popup);
344
+ const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);
345
+ if (!hitSelf && !hitPopup && !hitPortalAppend) {
346
+ this.hide();
347
+ }
348
+ }
349
+ handleDocumentKeyDown(event) {
350
+ if (this.shouldIgnoreKeyPress(event)) {
351
+ return;
352
+ }
353
+ if (this.isEscapeKey(event)) {
354
+ this.handleEscapeKey(event);
355
+ }
356
+ if (this.isEnterOrSpaceKey(event)) {
357
+ this.handleEnterOrSpaceKey(event);
358
+ }
359
+ }
360
+ shouldIgnoreKeyPress(event) {
361
+ const target = event.target;
362
+ const isClearButton = target.closest('.select__clear') !== null;
363
+ const isIconButton = target.closest('nile-icon-button') !== null;
364
+ return isClearButton || isIconButton;
365
+ }
366
+ isEscapeKey(event) {
367
+ return event.key === 'Escape' && this.open;
368
+ }
369
+ handleEscapeKey(event) {
370
+ event.preventDefault();
371
+ event.stopPropagation();
372
+ this.hide();
373
+ this.displayInput.focus({ preventScroll: true });
374
+ }
375
+ isEnterOrSpaceKey(event) {
376
+ return event.key === 'Enter' || event.key === ' ';
377
+ }
378
+ handleEnterOrSpaceKey(event) {
379
+ event.preventDefault();
380
+ event.stopImmediatePropagation();
381
+ if (!this.open) {
382
+ this.show();
383
+ return;
384
+ }
385
+ if (!this.multiple) {
386
+ this.hide();
387
+ this.displayInput.focus({ preventScroll: true });
388
+ }
389
+ }
390
+ handleFooterClick(event) {
391
+ event.stopPropagation();
392
+ event.preventDefault();
393
+ }
394
+ toggleShowSelected(event) {
395
+ event.stopPropagation();
396
+ event.preventDefault();
397
+ if (this.selectedOptions?.length === 0) {
398
+ return;
399
+ }
400
+ this.showSelected = !this.showSelected;
401
+ if (this.showSelected) {
402
+ const selectedValues = Array.isArray(this.value) ? this.value : [this.value];
403
+ this.data = this.originalOptionItems.filter((item) => {
404
+ const itemValue = this.getItemValue(item);
405
+ return selectedValues.some(val => String(val) === String(itemValue));
406
+ });
407
+ }
408
+ else {
409
+ this.data = [...this.originalOptionItems];
410
+ }
411
+ // Reset measured height when show selected toggles (content height may change)
412
+ this.portalManager.resetMeasuredHeight();
413
+ this.requestUpdate();
414
+ this.repaintOptionsContainer();
415
+ }
416
+ unSelectAll() {
417
+ this.showSelected = false;
418
+ this.value = this.multiple ? [] : '';
419
+ this.data = [...this.originalOptionItems];
420
+ this.selectionChanged();
421
+ this.emit('nile-change', { value: this.value, name: this.name });
422
+ this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });
423
+ this.resetScrollPosition();
424
+ }
425
+ handleLabelClick() {
426
+ this.displayInput.focus();
427
+ this.hide();
428
+ }
429
+ handleComboboxMouseDown(event) {
430
+ if (this.shouldIgnoreComboboxClick(event)) {
431
+ return;
432
+ }
433
+ event.preventDefault();
434
+ this.displayInput.focus({ preventScroll: true });
435
+ this.open = !this.open;
436
+ }
437
+ shouldIgnoreComboboxClick(event) {
438
+ const path = event.composedPath();
439
+ const isIconButton = path.some(el => el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button');
440
+ return this.disabled || isIconButton;
441
+ }
442
+ handleComboboxKeyDown(event) {
443
+ if (this.isEnterOrSpaceKey(event)) {
444
+ event.preventDefault();
445
+ this.open = !this.open;
446
+ }
447
+ }
448
+ handleClearClick(event) {
449
+ event.stopPropagation();
450
+ this.clearSelection();
451
+ }
452
+ clearSelection() {
453
+ const oldValue = this.value;
454
+ this.value = this.multiple ? [] : '';
455
+ this.selectionChanged();
456
+ this.updateComplete.then(() => {
457
+ this.nileInput({ value: this.value, name: this.name });
458
+ this.nileChange({ value: this.value, name: this.name });
459
+ this.emit('nile-clear');
460
+ });
461
+ }
462
+ handleClearMouseDown(event) {
463
+ event.stopPropagation();
464
+ }
465
+ handleOptionClick(event) {
466
+ const target = event.target;
467
+ const option = target.closest('nile-option');
468
+ if (this.shouldBlockValueChange(option)) {
469
+ return;
470
+ }
471
+ const oldValue = this.value;
472
+ this.oldValue = oldValue;
473
+ if (option && !option.disabled) {
474
+ this.handleOptionSelection(option);
475
+ }
476
+ }
477
+ shouldBlockValueChange(option) {
478
+ if (this.blockValueChange && option) {
479
+ this.emit('nile-block-change', { value: option?.value, name: this.name });
480
+ this.hide();
481
+ return true;
482
+ }
483
+ return false;
484
+ }
485
+ handleOptionSelection(option) {
486
+ const optionValue = option.value;
487
+ if (this.multiple) {
488
+ this.toggleOptionSelection(optionValue);
489
+ }
490
+ else {
491
+ this.setSelectedOptions(optionValue);
492
+ }
493
+ this.updateComplete.then(() => this.displayInput.focus({ preventScroll: true }));
494
+ if (this.value !== this.oldValue) {
495
+ this.updateComplete.then(() => {
496
+ this.nileInput({ value: this.value, name: this.name });
497
+ this.nileChange({ value: this.value, name: this.name });
498
+ });
499
+ }
500
+ if (!this.multiple) {
501
+ this.hide();
502
+ this.displayInput.focus({ preventScroll: true });
503
+ }
504
+ }
505
+ setSelectedOptions(optionValue) {
506
+ this.value = optionValue;
507
+ this.selectionChanged();
508
+ }
509
+ toggleOptionSelection(optionValue) {
510
+ const currentValues = Array.isArray(this.value) ? this.value : [];
511
+ if (currentValues.includes(optionValue)) {
512
+ this.value = currentValues.filter(v => v !== optionValue);
513
+ }
514
+ else {
515
+ this.value = [...currentValues, optionValue];
516
+ }
517
+ this.selectionChanged();
518
+ }
519
+ handleTagRemove(event, option) {
520
+ event.stopPropagation();
521
+ if (!this.disabled) {
522
+ this.removeTagFromSelection(option);
523
+ this.emitTagRemovalEvent(option);
524
+ }
525
+ }
526
+ removeTagFromSelection(option) {
527
+ let currentValue = this.value;
528
+ if (!Array.isArray(currentValue)) {
529
+ currentValue = currentValue ? [currentValue] : [];
530
+ }
531
+ const newValue = currentValue.filter((v) => v !== option.value);
532
+ this.value = newValue;
533
+ this.selectionChanged();
534
+ }
535
+ emitTagRemovalEvent(option) {
536
+ this.updateComplete.then(() => {
537
+ this.nileInput({ value: this.value, name: this.name });
538
+ this.nileChange({ value: this.value, name: this.name });
539
+ this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });
540
+ });
541
+ }
542
+ selectionChanged() {
543
+ const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;
544
+ this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(this.value, itemsToSearch, this.getDisplayText.bind(this), this.renderItemConfig?.getValue);
545
+ if (this.multiple) {
546
+ if (this.placeholder && this.value.length === 0) {
547
+ this.displayLabel = '';
548
+ }
549
+ else {
550
+ this.displayLabel = this.selectedOptions.length + ' selected';
551
+ }
552
+ }
553
+ else {
554
+ const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;
555
+ const label = this.selectedOptions[0]?.getTextLabel();
556
+ this.displayLabel = label ? label : currentValue ?? '';
557
+ }
558
+ this.updateValidity();
559
+ if (this.selectedOptions.length === 0) {
560
+ this.showSelected = false;
561
+ this.filterVirtualOptions('');
562
+ this.repaintOptionsContainer();
563
+ }
564
+ this.calculateTotalWidthOfTags();
565
+ }
566
+ handleSearchFocus() {
567
+ document.removeEventListener('keydown', this.handleDocumentKeyDown);
568
+ }
569
+ handleSearchBlur() {
570
+ document.addEventListener('keydown', this.handleDocumentKeyDown);
571
+ }
572
+ handleSearchChange(e) {
573
+ this.searchValue = e.detail.value;
574
+ this.emit('nile-search', {
575
+ query: this.searchValue,
576
+ name: this.name
577
+ });
578
+ if (!this.disableLocalSearch) {
579
+ this.filterVirtualOptions(this.searchValue);
580
+ this.repaintOptionsContainer();
581
+ // Reset measured height when search changes (content height may change)
582
+ this.portalManager.resetMeasuredHeight();
583
+ }
584
+ }
585
+ repaintOptionsContainer() {
586
+ this.resetScrollPosition();
587
+ this.updateComplete.then(() => {
588
+ const virtualized = this.shadowRoot?.querySelector('.virtualized');
589
+ if (virtualized) {
590
+ if (this.data.length <= 5) {
591
+ virtualized.classList.add('no-scroll');
592
+ }
593
+ else {
594
+ virtualized.classList.remove('no-scroll');
595
+ }
596
+ }
597
+ });
598
+ }
599
+ handleScroll(e) {
600
+ if (this.showSelected) {
601
+ return;
602
+ }
603
+ const target = e.target;
604
+ this.emit('nile-scroll', {
605
+ scrollTop: target.scrollTop,
606
+ scrollLeft: target.scrollLeft,
607
+ name: this.name
608
+ });
609
+ if (!this.scrolling) {
610
+ this.scrolling = true;
611
+ this.emit('nile-scroll-start', {
612
+ scrollTop: target.scrollTop,
613
+ scrollLeft: target.scrollLeft,
614
+ name: this.name
615
+ });
616
+ }
617
+ clearTimeout(this.scrollTimeout);
618
+ this.scrollTimeout = window.setTimeout(() => {
619
+ if (this.scrolling) {
620
+ this.scrolling = false;
621
+ }
622
+ }, 300);
623
+ const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);
624
+ if (isAtBottom && !this.searchValue) {
625
+ this.emit('nile-scroll-end', {
626
+ scrollTop: target.scrollTop,
627
+ scrollLeft: target.scrollLeft,
628
+ name: this.name,
629
+ isAtBottom: true
630
+ });
631
+ }
632
+ }
633
+ filterVirtualOptions(searchValue) {
634
+ const result = VirtualSelectSearchManager.filterVirtualOptions(searchValue, this.originalOptionItems, this.data, this.getDisplayText.bind(this), this.renderItemConfig?.getSearchText);
635
+ this.data = result.filteredItems;
636
+ this.showNoResults = result.showNoResults;
637
+ this.showSelected = false;
638
+ this.requestUpdate();
639
+ }
640
+ handleInvalid(event) {
641
+ this.formControlController.setValidity(false);
642
+ this.formControlController.emitInvalidEvent(event);
643
+ }
644
+ handleDisabledChange() {
645
+ if (this.disabled) {
646
+ this.open = false;
647
+ this.handleOpenChange();
648
+ }
649
+ }
650
+ handleValueChange() {
651
+ this.selectionChanged();
652
+ this.requestUpdate();
653
+ // Update body append content if it's active
654
+ if (this.portal && this.portalManager.portalContainerElement) {
655
+ this.portalManager.updatePortalAppendPosition();
656
+ }
657
+ }
658
+ handleDataChange() {
659
+ if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {
660
+ this.originalOptionItems = [...this.data];
661
+ }
662
+ if (this.data.length > 0 && this.open && this.searchValue) {
663
+ this.originalOptionItems = [...this.originalOptionItems, ...this.data];
664
+ }
665
+ this.selectionChanged();
666
+ // Show no results message when data is empty and not loading
667
+ if (!this.optionsLoading && !this.loading && this.data.length === 0) {
668
+ this.showNoResults = true;
669
+ }
670
+ else if (this.data.length > 0) {
671
+ this.showNoResults = false;
672
+ }
673
+ this.requestUpdate();
674
+ // Reset measured height when data changes (content height may change)
675
+ this.portalManager.resetMeasuredHeight();
676
+ // Update body append content if it's active
677
+ if (this.portal && this.portalManager.portalContainerElement) {
678
+ this.portalManager.updatePortalAppendPosition();
679
+ }
680
+ }
681
+ handleRenderItemConfigChange() {
682
+ if (this.value && this.data.length > 0) {
683
+ this.selectionChanged();
684
+ this.requestUpdate();
685
+ }
686
+ }
687
+ handleOptionsLoadingChange() {
688
+ // Show no results message when loading stops and there are no results
689
+ if (!this.optionsLoading && this.data.length === 0) {
690
+ this.showNoResults = true;
691
+ }
692
+ this.requestUpdate();
693
+ // Update body append content if it's active
694
+ if (this.portal && this.portalManager.portalContainerElement) {
695
+ this.portalManager.updatePortalAppendPosition();
696
+ }
697
+ }
698
+ handlePortalAppendChange() {
699
+ if (this.open) {
700
+ if (this.portal) {
701
+ this.portalManager.setupPortalAppend();
702
+ }
703
+ else {
704
+ this.portalManager.cleanupPortalAppend();
705
+ }
706
+ }
707
+ }
708
+ async handleOpenChange() {
709
+ if (this.open && !this.disabled) {
710
+ await this.handleOpen();
711
+ this.showListbox = true;
712
+ if (this.portal) {
713
+ this.portalManager.setupPortalAppend();
714
+ }
715
+ }
716
+ else {
717
+ await this.handleClose();
718
+ this.showListbox = false;
719
+ if (this.portal) {
720
+ this.portalManager.cleanupPortalAppend();
721
+ }
722
+ }
723
+ }
724
+ async handleOpen() {
725
+ this.emit('nile-show', { value: this.value, name: this.name });
726
+ this.addOpenListeners();
727
+ this.showNoResults = !this.data?.length;
728
+ await stopAnimations(this);
729
+ this.popup.active = true;
730
+ const { keyframes, options } = getAnimation(this, 'select.show', {
731
+ dir: 'ltr',
732
+ });
733
+ await animateTo(this.popup.popup, keyframes, options);
734
+ if (this.wasShowSelectedCheckedOnClose) {
735
+ this.showSelected = false;
736
+ this.data = [...this.originalOptionItems];
737
+ this.wasShowSelectedCheckedOnClose = false;
738
+ }
739
+ this.initializeOriginalItems();
740
+ this.filterVirtualOptions(this.searchValue);
741
+ this.resetScrollPosition();
742
+ this.emit('nile-after-show', { value: this.value, name: this.name });
743
+ }
744
+ async handleClose() {
745
+ this.emit('nile-hide', { value: this.value, name: this.name });
746
+ this.removeOpenListeners();
747
+ this.wasShowSelectedCheckedOnClose = this.showSelected;
748
+ await stopAnimations(this);
749
+ const { keyframes, options } = getAnimation(this, 'select.hide', {
750
+ dir: 'ltr',
751
+ });
752
+ await animateTo(this.popup.popup, keyframes, options);
753
+ this.popup.active = false;
754
+ this.searchValue = '';
755
+ // Reset measured height when popup closes (content may change on next open)
756
+ this.portalManager.resetMeasuredHeight();
757
+ this.emit('nile-after-hide', { value: this.value, name: this.name });
758
+ }
759
+ initializeOriginalItems() {
760
+ if (this.data.length > 0) {
761
+ this.originalOptionItems = [...this.data];
762
+ }
763
+ }
764
+ async show() {
765
+ if (this.open || this.disabled) {
766
+ this.open = false;
767
+ return undefined;
768
+ }
769
+ this.open = true;
770
+ return waitForEvent(this, 'nile-after-show');
771
+ }
772
+ async hide() {
773
+ if (!this.open || this.disabled) {
774
+ this.open = false;
775
+ return undefined;
776
+ }
777
+ this.open = false;
778
+ return waitForEvent(this, 'nile-after-hide');
779
+ }
780
+ checkValidity() {
781
+ return this.valueInput.checkValidity();
782
+ }
783
+ getForm() {
784
+ return this.formControlController.getForm();
785
+ }
786
+ reportValidity() {
787
+ return this.valueInput.reportValidity();
788
+ }
789
+ setCustomValidity(message) {
790
+ this.valueInput.setCustomValidity(message);
791
+ this.formControlController.updateValidity();
792
+ }
793
+ focus(options) {
794
+ this.displayInput.focus(options);
795
+ }
796
+ blur() {
797
+ this.displayInput.blur();
798
+ }
799
+ onInputChange(event) {
800
+ event.stopPropagation();
801
+ }
802
+ render() {
803
+ const hasLabelSlot = this.hasSlotController.test('label');
804
+ const hasHelpTextSlot = this.hasSlotController.test('help-text');
805
+ const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');
806
+ const hasCustomSelect = this.hasSlotController.test('custom-select');
807
+ const hasLabel = this.label ? true : !!hasLabelSlot;
808
+ const hasClearIcon = this.clearable && !this.disabled && this.value.length > 0;
809
+ const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;
810
+ const hasHelpText = !!this.helpText;
811
+ const hasErrorMessage = !!this.errorMessage;
812
+ return html `
813
+ <div
814
+ part="form-control"
815
+ class=${classMap({
816
+ 'form-control': true,
817
+ 'form-control--small': this.size === 'small',
818
+ 'form-control--medium': this.size === 'medium',
819
+ 'form-control--large': this.size === 'large',
820
+ 'form-control--has-label': hasLabel,
821
+ 'form-control--has-help-text': hasHelpText,
822
+ })}
823
+ >
824
+ ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}
825
+ ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}
826
+ </div>
827
+ `;
828
+ }
829
+ renderLabel(hasLabel, hasLabelSuffixSlot) {
830
+ return html `
831
+ <label
832
+ id="label"
833
+ part="form-control-label"
834
+ class="form-control__label"
835
+ aria-hidden=${hasLabel ? 'false' : 'true'}
836
+ @click=${this.handleLabelClick}
837
+ >
838
+ <slot name="label">${this.label}</slot>
839
+ </label>
840
+
841
+ ${hasLabelSuffixSlot ? html ` <slot name="label-suffix"></slot> ` : ``}
842
+ `;
843
+ }
844
+ renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage) {
845
+ return html `
846
+ <div part="form-control-input" class="form-control-input">
847
+ ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}
848
+ ${this.renderHelpText(hasHelpText, hasErrorMessage)}
849
+ </div>
850
+ `;
851
+ }
852
+ renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible) {
853
+ return html `
854
+ <nile-popup
855
+ class=${classMap({
856
+ select: true,
857
+ 'select--warning': this.warning,
858
+ 'select--error': this.error,
859
+ 'select--success': this.success,
860
+ 'select--standard': true,
861
+ 'select--filled': this.filled,
862
+ 'select--pill': this.pill,
863
+ 'select--open': this.open,
864
+ 'select--disabled': this.disabled,
865
+ 'select--multiple': this.multiple,
866
+ 'select--focused': this.hasFocus,
867
+ 'select--placeholder-visible': isPlaceholderVisible,
868
+ 'select--top': this.placement === 'top',
869
+ 'select--bottom': this.placement === 'bottom',
870
+ 'select--small': this.size === 'small',
871
+ 'select--medium': this.size === 'medium',
872
+ 'select--large': this.size === 'large',
873
+ })}
874
+ placement=${this.placement}
875
+ strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}
876
+ distance="6"
877
+ ?flip=${!this.portal}
878
+ ?shift=${!this.portal}
879
+ sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}
880
+ auto-size="vertical"
881
+ auto-size-padding="10"
882
+ >
883
+ ${this.renderCustomSelect(hasCustomSelect)}
884
+ ${this.renderCombobox(hasCustomSelect, hasClearIcon)}
885
+ ${this.showListbox ? this.renderListbox() : html ``}
886
+ </nile-popup>
887
+ `;
888
+ }
889
+ renderCustomSelect(hasCustomSelect) {
890
+ return hasCustomSelect
891
+ ? html `<slot
892
+ slot="anchor"
893
+ name="custom-select"
894
+ class="custom-select"
895
+ @keydown=${this.handleComboboxKeyDown}
896
+ @mousedown=${this.handleComboboxMouseDown}
897
+ ></slot>`
898
+ : html ``;
899
+ }
900
+ renderCombobox(hasCustomSelect, hasClearIcon) {
901
+ return html `
902
+ <div
903
+ part="combobox"
904
+ class=${classMap({
905
+ select__combobox: true,
906
+ 'select__hide-default': hasCustomSelect,
907
+ })}
908
+ slot="anchor"
909
+ @keydown=${this.handleComboboxKeyDown}
910
+ @mousedown=${this.handleComboboxMouseDown}
911
+ >
912
+ ${this.renderPrefix()}
913
+ ${this.renderDisplayInput()}
914
+ ${this.renderTags()}
915
+ ${this.renderValueInput()}
916
+ ${this.renderClearButton(hasClearIcon)}
917
+ ${this.renderSuffix()}
918
+ ${this.renderExpandIcon()}
919
+ </div>
920
+ `;
921
+ }
922
+ renderPrefix() {
923
+ return html `
924
+ <slot
925
+ part="prefix"
926
+ name="prefix"
927
+ class=${classMap({
928
+ select__prefix: true,
929
+ multiple: this.multiple,
930
+ })}
931
+ ></slot>
932
+ `;
933
+ }
934
+ renderDisplayInput() {
935
+ return html `
936
+ <input
937
+ part="display-input"
938
+ class="select__display-input"
939
+ type="text"
940
+ placeholder=${this.placeholder}
941
+ .disabled=${this.disabled}
942
+ .value=${this.displayLabel}
943
+ autocomplete="off"
944
+ spellcheck="false"
945
+ autocapitalize="off"
946
+ readonly
947
+ aria-controls="listbox"
948
+ aria-expanded=${this.open ? 'true' : 'false'}
949
+ aria-haspopup="listbox"
950
+ aria-labelledby="label"
951
+ aria-disabled=${this.disabled ? 'true' : 'false'}
952
+ aria-describedby="help-text"
953
+ role="combobox"
954
+ tabindex="0"
955
+ />
956
+ `;
957
+ }
958
+ renderTags() {
959
+ return this.multiple
960
+ ? html `
961
+ <div part="tags" class="select__tags">
962
+ ${this.selectedOptions.map((option, index) => {
963
+ if (index < this.maxOptionsVisible ||
964
+ this.maxOptionsVisible <= 0) {
965
+ const classes = {
966
+ select__invisible: index + 1 > this.oldMaxOptionsVisible &&
967
+ this.maxOptionsVisible === Infinity,
968
+ };
969
+ return html `
970
+ <nile-tag
971
+ class=${classMap(classes)}
972
+ part="tag"
973
+ exportparts="
974
+ base:tag__base,
975
+ content:tag__content,
976
+ remove-button:tag__remove-button,
977
+ remove-button__base:tag__remove-button__base
978
+ "
979
+ ?pill=${this.pill}
980
+ size=${this.size}
981
+ removable
982
+ @nile-remove=${(event) => this.handleTagRemove(event, option)}
983
+ >
984
+ ${option.getTextLabel()}
985
+ </nile-tag>
986
+ `;
987
+ }
988
+ else if (index === this.maxOptionsVisible) {
989
+ return html `
990
+ <span class="select__tags-count"
991
+ >+${this.selectedOptions.length - index} More
992
+ </span>
993
+ `;
994
+ }
995
+ else {
996
+ return null;
997
+ }
998
+ })}
999
+ </div>
1000
+ `
1001
+ : html ``;
1002
+ }
1003
+ renderValueInput() {
1004
+ return html `
1005
+ <input
1006
+ class="select__value-input"
1007
+ type="text"
1008
+ ?disabled=${this.disabled}
1009
+ ?required=${this.required}
1010
+ .value=${Array.isArray(this.value)
1011
+ ? this.value.join(', ')
1012
+ : this.value}
1013
+ tabindex="-1"
1014
+ aria-hidden="true"
1015
+ @focus=${() => this.focus()}
1016
+ @invalid=${this.handleInvalid}
1017
+ />
1018
+ `;
1019
+ }
1020
+ renderClearButton(hasClearIcon) {
1021
+ return hasClearIcon
1022
+ ? html `
1023
+ <button
1024
+ part="clear-button"
1025
+ class="select__clear"
1026
+ type="button"
1027
+ aria-label="clearEntry"
1028
+ @mousedown=${this.handleClearMouseDown}
1029
+ @click=${this.handleClearClick}
1030
+ tabindex="-1"
1031
+ >
1032
+ <slot name="clear-icon">
1033
+ <nile-icon name="var(--nile-icon-close, var(--ng-icon-x-close))" method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))" library="system"></nile-icon>
1034
+ </slot>
1035
+ </button>
1036
+ `
1037
+ : html ``;
1038
+ }
1039
+ renderSuffix() {
1040
+ return html `
1041
+ <slot
1042
+ part="suffix"
1043
+ name="suffix"
1044
+ class=${classMap({
1045
+ select__suffix: true,
1046
+ })}
1047
+ ></slot>
1048
+ `;
1049
+ }
1050
+ renderExpandIcon() {
1051
+ return html `
1052
+ <slot
1053
+ name="expand-icon"
1054
+ part="expand-icon"
1055
+ class="select__expand-icon"
1056
+ >
1057
+ <nile-icon library="system" name="var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))" method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"></nile-icon>
1058
+ </slot>
1059
+ `;
1060
+ }
1061
+ renderListbox() {
1062
+ return html `
1063
+ <div
1064
+ id="listbox"
1065
+ role="listbox"
1066
+ aria-expanded=${this.open ? 'true' : 'false'}
1067
+ aria-multiselectable=${this.multiple ? 'true' : 'false'}
1068
+ aria-labelledby="label"
1069
+ part="listbox"
1070
+ class="select__listbox ${this.searchEnabled
1071
+ ? 'select__search-enabled '
1072
+ : ''} ${this.portal ? 'select__portal-append-hidden' : ''}"
1073
+ tabindex="-1"
1074
+ @mouseup=${this.handleOptionClick}
1075
+ style=${this.portal ? 'display: none;' : ''}
1076
+ >
1077
+ ${this.renderSearch()}
1078
+ ${this.renderLoader()}
1079
+ ${this.getVirtualizedContent()}
1080
+ ${this.renderFooter()}
1081
+ </div>
1082
+ `;
1083
+ }
1084
+ renderSearch() {
1085
+ return this.searchEnabled
1086
+ ? html `
1087
+ <div part="search" class="select__search">
1088
+ <nile-input
1089
+ size="small"
1090
+ clearable
1091
+ .value=${this.searchValue}
1092
+ placeholder="${this.internalSearchPlaceHolder}"
1093
+ @nile-input=${this.handleSearchChange}
1094
+ @nile-focus=${this.handleSearchFocus}
1095
+ @nile-change="${this.onInputChange}"
1096
+ >
1097
+ <nile-icon name="var(--nile-icon-search, var(--ng-icon-search-lg))" method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))" slot="suffix"> </nile-icon>
1098
+ </nile-input>
1099
+ </div>
1100
+ `
1101
+ : html ``;
1102
+ }
1103
+ renderLoader() {
1104
+ if (this.loading) {
1105
+ return html `
1106
+ <span part="loader" class="virtual-select-loader">
1107
+ <nile-loader size="sm"></nile-loader>
1108
+ </span>
1109
+ `;
1110
+ }
1111
+ if (this.optionsLoading) {
1112
+ return html `
1113
+ <span part="loader" class="select__loader">
1114
+ <nile-icon
1115
+ class="select__loader--icon"
1116
+ name="button-loading-blue"
1117
+ ></nile-icon>
1118
+ </span>
1119
+ `;
1120
+ }
1121
+ return html ``;
1122
+ }
1123
+ renderFooter() {
1124
+ return this.multiple
1125
+ ? html `
1126
+ <div
1127
+ part="footer"
1128
+ class="select__footer ${this.loading ? 'loading' : ''}"
1129
+ @click="${this.handleFooterClick}"
1130
+ >
1131
+ <span
1132
+ @click="${this.toggleShowSelected}"
1133
+ style="cursor: pointer;"
1134
+ >
1135
+ <nile-checkbox
1136
+ ?disabled="${this.selectedOptions.length === 0}"
1137
+ ?checked="${this.showSelected}"
1138
+ >
1139
+ &nbsp; Show Selected</nile-checkbox
1140
+ >
1141
+ </span>
1142
+ ${this.selectedOptions.length !== 0
1143
+ ? html `
1144
+ <span
1145
+ class="select__clear"
1146
+ @click="${this.unSelectAll}"
1147
+ >
1148
+ Clear All
1149
+ </span>
1150
+ `
1151
+ : ``}
1152
+ </div>
1153
+ `
1154
+ : html ``;
1155
+ }
1156
+ renderHelpText(hasHelpText, hasErrorMessage) {
1157
+ return html `
1158
+ ${hasHelpText
1159
+ ? html ` <nile-form-help-text>${this.helpText}</nile-form-help-text> `
1160
+ : ``}
1161
+ ${hasErrorMessage
1162
+ ? html `
1163
+ <nile-form-error-message
1164
+ >${this.errorMessage}</nile-form-error-message
1165
+ >
1166
+ `
1167
+ : ``}
1168
+ `;
1169
+ }
1170
+ getVirtualizedContent() {
1171
+ return VirtualSelectRenderer.getVirtualizedContent(this.data, this.searchEnabled, this.getDisplayText.bind(this), this.value, this.multiple, this.renderItemConfig?.getDisplayText, this.renderItemConfig?.getValue, this.showNoResults, this.noResultsMessage, this.optionsLoading || this.loading, this.handleScroll.bind(this));
1172
+ }
1173
+ nileInput(value) {
1174
+ this.emit('nile-input', value);
1175
+ }
1176
+ nileChange(value) {
1177
+ this.emit('nile-change', value);
1178
+ }
1179
+ updateValidity() {
1180
+ this.updateComplete.then(() => {
1181
+ this.formControlController.updateValidity();
1182
+ });
1183
+ }
1184
+ calculateWidthOfSelectTagsDiv() {
1185
+ if (this.shadowRoot) {
1186
+ const selectTagsDiv = this.shadowRoot.querySelector('.select__tags');
1187
+ if (selectTagsDiv) {
1188
+ const width = selectTagsDiv.offsetWidth;
1189
+ return width - 70;
1190
+ }
1191
+ }
1192
+ return null;
1193
+ }
1194
+ calculateTotalWidthOfTags() {
1195
+ if (this.maxOptionsVisible !== Infinity) {
1196
+ this.oldMaxOptionsVisible = this.maxOptionsVisible;
1197
+ }
1198
+ this.maxOptionsVisible = Infinity;
1199
+ setTimeout(() => {
1200
+ let widths = [];
1201
+ if (this.shadowRoot) {
1202
+ const tags = this.shadowRoot.querySelectorAll('nile-tag');
1203
+ tags.forEach(tag => {
1204
+ if (tag instanceof HTMLElement) {
1205
+ widths.push(tag.offsetWidth);
1206
+ }
1207
+ });
1208
+ }
1209
+ if (this.value.length !== widths.length) {
1210
+ return;
1211
+ }
1212
+ let sum = widths.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
1213
+ const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();
1214
+ if (!widthOfSelectTagsDiv) {
1215
+ return;
1216
+ }
1217
+ let summ = 0;
1218
+ let lastindex = 0;
1219
+ for (let i = 0; i < widths.length; i++) {
1220
+ summ += widths[i];
1221
+ if (summ > widthOfSelectTagsDiv) {
1222
+ lastindex = i;
1223
+ break;
1224
+ }
1225
+ }
1226
+ this.maxOptionsVisible = lastindex;
1227
+ }, 1);
1228
+ }
1229
+ resetScrollPosition() {
1230
+ this.updateComplete.then(() => {
1231
+ if (this.virtualizedContainer && this.virtualizedContainer.isConnected) {
1232
+ this.virtualizedContainer.scrollTop = 0;
1233
+ const listbox = this.shadowRoot?.querySelector('.select__listbox');
1234
+ if (listbox && listbox.isConnected) {
1235
+ listbox.scrollTop = 0;
1236
+ }
1237
+ const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer');
1238
+ if (virtualizer && virtualizer.isConnected) {
1239
+ virtualizer.scrollTop = 0;
1240
+ }
1241
+ }
1242
+ });
1243
+ }
1244
+ };
1245
+ NileVirtualSelect.styles = styles;
1246
+ __decorate([
1247
+ query('.select')
1248
+ ], NileVirtualSelect.prototype, "popup", void 0);
1249
+ __decorate([
1250
+ query('.select__combobox')
1251
+ ], NileVirtualSelect.prototype, "combobox", void 0);
1252
+ __decorate([
1253
+ query('.select__display-input')
1254
+ ], NileVirtualSelect.prototype, "displayInput", void 0);
1255
+ __decorate([
1256
+ query('.select__value-input')
1257
+ ], NileVirtualSelect.prototype, "valueInput", void 0);
1258
+ __decorate([
1259
+ query('.virtualized')
1260
+ ], NileVirtualSelect.prototype, "virtualizedContainer", void 0);
1261
+ __decorate([
1262
+ state()
1263
+ ], NileVirtualSelect.prototype, "hasFocus", void 0);
1264
+ __decorate([
1265
+ state()
1266
+ ], NileVirtualSelect.prototype, "displayLabel", void 0);
1267
+ __decorate([
1268
+ state()
1269
+ ], NileVirtualSelect.prototype, "selectedOptions", void 0);
1270
+ __decorate([
1271
+ state()
1272
+ ], NileVirtualSelect.prototype, "oldValue", void 0);
1273
+ __decorate([
1274
+ property()
1275
+ ], NileVirtualSelect.prototype, "name", void 0);
1276
+ __decorate([
1277
+ property({ type: Array })
1278
+ ], NileVirtualSelect.prototype, "data", void 0);
1279
+ __decorate([
1280
+ state()
1281
+ ], NileVirtualSelect.prototype, "originalOptionItems", void 0);
1282
+ __decorate([
1283
+ property({
1284
+ converter: {
1285
+ fromAttribute: (value) => value.split(' '),
1286
+ toAttribute: (value) => value.join(' '),
1287
+ },
1288
+ })
1289
+ ], NileVirtualSelect.prototype, "value", void 0);
1290
+ __decorate([
1291
+ defaultValue()
1292
+ ], NileVirtualSelect.prototype, "defaultValue", void 0);
1293
+ __decorate([
1294
+ property()
1295
+ ], NileVirtualSelect.prototype, "size", void 0);
1296
+ __decorate([
1297
+ property()
1298
+ ], NileVirtualSelect.prototype, "placeholder", void 0);
1299
+ __decorate([
1300
+ property({ type: Boolean })
1301
+ ], NileVirtualSelect.prototype, "autoResize", void 0);
1302
+ __decorate([
1303
+ state()
1304
+ ], NileVirtualSelect.prototype, "searchValue", void 0);
1305
+ __decorate([
1306
+ property({ type: Boolean, reflect: true })
1307
+ ], NileVirtualSelect.prototype, "searchEnabled", void 0);
1308
+ __decorate([
1309
+ property({ attribute: 'internal-search-placeholder' })
1310
+ ], NileVirtualSelect.prototype, "internalSearchPlaceHolder", void 0);
1311
+ __decorate([
1312
+ property({ type: Boolean, reflect: true })
1313
+ ], NileVirtualSelect.prototype, "disableLocalSearch", void 0);
1314
+ __decorate([
1315
+ property({ type: Boolean, reflect: true })
1316
+ ], NileVirtualSelect.prototype, "optionsLoading", void 0);
1317
+ __decorate([
1318
+ property({ type: Boolean, reflect: true, attribute: true })
1319
+ ], NileVirtualSelect.prototype, "loading", void 0);
1320
+ __decorate([
1321
+ property({ type: Boolean, reflect: true })
1322
+ ], NileVirtualSelect.prototype, "multiple", void 0);
1323
+ __decorate([
1324
+ property({ attribute: 'help-text', reflect: true })
1325
+ ], NileVirtualSelect.prototype, "helpText", void 0);
1326
+ __decorate([
1327
+ property({ attribute: 'error-message', reflect: true })
1328
+ ], NileVirtualSelect.prototype, "errorMessage", void 0);
1329
+ __decorate([
1330
+ property({ type: Boolean })
1331
+ ], NileVirtualSelect.prototype, "warning", void 0);
1332
+ __decorate([
1333
+ property({ type: Boolean })
1334
+ ], NileVirtualSelect.prototype, "error", void 0);
1335
+ __decorate([
1336
+ property({ type: Boolean })
1337
+ ], NileVirtualSelect.prototype, "success", void 0);
1338
+ __decorate([
1339
+ property({ type: Boolean, reflect: true })
1340
+ ], NileVirtualSelect.prototype, "disabled", void 0);
1341
+ __decorate([
1342
+ property({ type: Boolean, reflect: true })
1343
+ ], NileVirtualSelect.prototype, "clearable", void 0);
1344
+ __decorate([
1345
+ property({ type: Boolean, reflect: true })
1346
+ ], NileVirtualSelect.prototype, "open", void 0);
1347
+ __decorate([
1348
+ property({ type: Boolean })
1349
+ ], NileVirtualSelect.prototype, "hoist", void 0);
1350
+ __decorate([
1351
+ property({ type: Boolean, reflect: true })
1352
+ ], NileVirtualSelect.prototype, "filled", void 0);
1353
+ __decorate([
1354
+ property({ type: Boolean, reflect: true })
1355
+ ], NileVirtualSelect.prototype, "pill", void 0);
1356
+ __decorate([
1357
+ property()
1358
+ ], NileVirtualSelect.prototype, "label", void 0);
1359
+ __decorate([
1360
+ property({ reflect: true })
1361
+ ], NileVirtualSelect.prototype, "placement", void 0);
1362
+ __decorate([
1363
+ property({ reflect: true })
1364
+ ], NileVirtualSelect.prototype, "form", void 0);
1365
+ __decorate([
1366
+ property({ type: Boolean, reflect: true })
1367
+ ], NileVirtualSelect.prototype, "required", void 0);
1368
+ __decorate([
1369
+ property({ type: Boolean })
1370
+ ], NileVirtualSelect.prototype, "showNoResults", void 0);
1371
+ __decorate([
1372
+ property({ type: String })
1373
+ ], NileVirtualSelect.prototype, "noResultsMessage", void 0);
1374
+ __decorate([
1375
+ property({ type: Boolean })
1376
+ ], NileVirtualSelect.prototype, "showSelected", void 0);
1377
+ __decorate([
1378
+ property({ attribute: false })
1379
+ ], NileVirtualSelect.prototype, "renderItemConfig", void 0);
1380
+ __decorate([
1381
+ property({ type: Boolean, reflect: true })
1382
+ ], NileVirtualSelect.prototype, "blockValueChange", void 0);
1383
+ __decorate([
1384
+ property({ type: Boolean, reflect: true })
1385
+ ], NileVirtualSelect.prototype, "noWidthSync", void 0);
1386
+ __decorate([
1387
+ property({ type: Boolean, reflect: true })
1388
+ ], NileVirtualSelect.prototype, "portal", void 0);
1389
+ __decorate([
1390
+ property({ attribute: 'max-options-visible', type: Number })
1391
+ ], NileVirtualSelect.prototype, "maxOptionsVisible", void 0);
1392
+ __decorate([
1393
+ state()
1394
+ ], NileVirtualSelect.prototype, "oldMaxOptionsVisible", void 0);
1395
+ __decorate([
1396
+ state()
1397
+ ], NileVirtualSelect.prototype, "showListbox", void 0);
1398
+ __decorate([
1399
+ state()
1400
+ ], NileVirtualSelect.prototype, "wasShowSelectedCheckedOnClose", void 0);
1401
+ __decorate([
1402
+ watch('disabled', { waitUntilFirstUpdate: true })
1403
+ ], NileVirtualSelect.prototype, "handleDisabledChange", null);
1404
+ __decorate([
1405
+ watch('value', { waitUntilFirstUpdate: true })
1406
+ ], NileVirtualSelect.prototype, "handleValueChange", null);
1407
+ __decorate([
1408
+ watch('data', { waitUntilFirstUpdate: true })
1409
+ ], NileVirtualSelect.prototype, "handleDataChange", null);
1410
+ __decorate([
1411
+ watch('renderItemConfig', { waitUntilFirstUpdate: true })
1412
+ ], NileVirtualSelect.prototype, "handleRenderItemConfigChange", null);
1413
+ __decorate([
1414
+ watch('optionsLoading', { waitUntilFirstUpdate: true })
1415
+ ], NileVirtualSelect.prototype, "handleOptionsLoadingChange", null);
1416
+ __decorate([
1417
+ watch('portal', { waitUntilFirstUpdate: true })
1418
+ ], NileVirtualSelect.prototype, "handlePortalAppendChange", null);
1419
+ __decorate([
1420
+ watch('open', { waitUntilFirstUpdate: true })
1421
+ ], NileVirtualSelect.prototype, "handleOpenChange", null);
1422
+ NileVirtualSelect = __decorate([
1423
+ customElement('nile-virtual-select')
1424
+ ], NileVirtualSelect);
1425
+ export { NileVirtualSelect };
1426
+ setDefaultAnimation('select.show', {
1427
+ keyframes: [
1428
+ { opacity: 0, scale: 0.9 },
1429
+ { opacity: 1, scale: 1 },
1430
+ ],
1431
+ options: { duration: 100, easing: 'ease' },
1432
+ });
1433
+ setDefaultAnimation('select.hide', {
1434
+ keyframes: [
1435
+ { opacity: 1, scale: 1 },
1436
+ { opacity: 0, scale: 0.9 },
1437
+ ],
1438
+ options: { duration: 100, easing: 'ease' },
1439
+ });
1440
+ export default NileVirtualSelect;
1441
+ //# sourceMappingURL=nile-virtual-select.js.map