@aquera/nile-elements 0.1.73-beta-1.8 → 0.1.73

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 (444) hide show
  1. package/README.md +3 -1
  2. package/demo/index.html +9 -47
  3. package/dist/{fixture-5b79f853.cjs.js → fixture-3bfb4490.cjs.js} +2 -2
  4. package/dist/{fixture-5b79f853.cjs.js.map → fixture-3bfb4490.cjs.js.map} +1 -1
  5. package/dist/{fixture-cf7bfcf5.esm.js → fixture-8edec91c.esm.js} +1 -1
  6. package/dist/index.js +14 -14
  7. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  8. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  9. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  10. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  11. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  12. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  13. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  14. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  15. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  16. package/dist/nile-button/nile-button.test.esm.js +1 -1
  17. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  18. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  19. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  20. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  21. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  22. package/dist/nile-card/nile-card.test.esm.js +1 -1
  23. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  24. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  25. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  26. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  27. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  28. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  29. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  30. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  31. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  32. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  33. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  34. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  35. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  36. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  37. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  38. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  39. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  40. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  41. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  42. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  43. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  44. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  45. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  46. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  47. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  48. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  49. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  50. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  51. package/dist/nile-input/nile-input.cjs.js +1 -1
  52. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  53. package/dist/nile-input/nile-input.esm.js +2 -2
  54. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  55. package/dist/nile-input/nile-input.test.esm.js +1 -1
  56. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  57. package/dist/nile-link/nile-link.test.esm.js +1 -1
  58. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  59. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  60. package/dist/nile-option-group/nile-option-group.cjs.js +1 -1
  61. package/dist/nile-option-group/nile-option-group.cjs.js.map +1 -1
  62. package/dist/nile-option-group/nile-option-group.esm.js +1 -1
  63. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  64. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  65. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  66. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  67. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  68. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  69. package/dist/nile-radio/nile-radio.cjs.js +1 -1
  70. package/dist/nile-radio/nile-radio.cjs.js.map +1 -1
  71. package/dist/nile-radio/nile-radio.esm.js +2 -2
  72. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  73. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  74. package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
  75. package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
  76. package/dist/nile-radio-group/nile-radio-group.esm.js +2 -2
  77. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  78. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  79. package/dist/nile-select/nile-select.cjs.js +1 -1
  80. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  81. package/dist/nile-select/nile-select.esm.js +3 -2
  82. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  83. package/dist/nile-select/nile-select.test.esm.js +1 -1
  84. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  85. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  86. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  87. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  88. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  89. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  90. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
  91. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  92. package/dist/nile-virtual-select/nile-virtual-select.esm.js +2 -2
  93. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  94. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  95. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  96. package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
  97. package/dist/nile-virtual-select/renderer.esm.js +3 -4
  98. package/dist/src/nile-input/nile-input.d.ts +1 -0
  99. package/dist/src/nile-input/nile-input.js +4 -1
  100. package/dist/src/nile-input/nile-input.js.map +1 -1
  101. package/dist/src/nile-option-group/nile-option-group.js +1 -1
  102. package/dist/src/nile-option-group/nile-option-group.js.map +1 -1
  103. package/dist/src/nile-radio/nile-radio.d.ts +1 -0
  104. package/dist/src/nile-radio/nile-radio.js +8 -1
  105. package/dist/src/nile-radio/nile-radio.js.map +1 -1
  106. package/dist/src/nile-radio-group/nile-radio-group.d.ts +4 -1
  107. package/dist/src/nile-radio-group/nile-radio-group.js +25 -2
  108. package/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
  109. package/dist/src/nile-select/nile-select.d.ts +4 -1
  110. package/dist/src/nile-select/nile-select.js +13 -1
  111. package/dist/src/nile-select/nile-select.js.map +1 -1
  112. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +1 -9
  113. package/dist/src/nile-virtual-select/nile-virtual-select.js +5 -55
  114. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
  115. package/dist/src/nile-virtual-select/renderer.d.ts +2 -2
  116. package/dist/src/nile-virtual-select/renderer.js +5 -6
  117. package/dist/src/nile-virtual-select/renderer.js.map +1 -1
  118. package/dist/tsconfig.tsbuildinfo +1 -1
  119. package/package.json +1 -1
  120. package/src/nile-input/nile-input.ts +5 -1
  121. package/src/nile-option-group/nile-option-group.ts +1 -1
  122. package/src/nile-radio/nile-radio.ts +7 -1
  123. package/src/nile-radio-group/nile-radio-group.ts +26 -4
  124. package/src/nile-select/nile-select.ts +22 -12
  125. package/src/nile-virtual-select/nile-virtual-select.ts +7 -68
  126. package/src/nile-virtual-select/renderer.ts +5 -7
  127. package/vscode-html-custom-data.json +19 -20
  128. package/dist/fixture-90b199c4.esm.js +0 -569
  129. package/dist/fixture-dbd66009.cjs.js +0 -395
  130. package/dist/fixture-dbd66009.cjs.js.map +0 -1
  131. package/dist/src/internal/resizable-helper.d.ts +0 -59
  132. package/dist/src/internal/resizable-helper.js +0 -115
  133. package/dist/src/internal/resizable-helper.js.map +0 -1
  134. package/dist/src/internal/resizable-styles.d.ts +0 -16
  135. package/dist/src/internal/resizable-styles.js +0 -144
  136. package/dist/src/internal/resizable-styles.js.map +0 -1
  137. package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +0 -17
  138. package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +0 -310
  139. package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +0 -34
  140. package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +0 -31
  141. package/dist/src/nile-grid/data-processor.d.ts +0 -37
  142. package/dist/src/nile-grid/data-processor.js +0 -122
  143. package/dist/src/nile-grid/data-processor.js.map +0 -1
  144. package/dist/src/nile-grid/event-handlers.d.ts +0 -35
  145. package/dist/src/nile-grid/event-handlers.js +0 -158
  146. package/dist/src/nile-grid/event-handlers.js.map +0 -1
  147. package/dist/src/nile-grid/index.d.ts +0 -5
  148. package/dist/src/nile-grid/index.js +0 -6
  149. package/dist/src/nile-grid/index.js.map +0 -1
  150. package/dist/src/nile-grid/nile-grid.css.d.ts +0 -1
  151. package/dist/src/nile-grid/nile-grid.css.js +0 -120
  152. package/dist/src/nile-grid/nile-grid.css.js.map +0 -1
  153. package/dist/src/nile-grid/nile-grid.d.ts +0 -39
  154. package/dist/src/nile-grid/nile-grid.js +0 -182
  155. package/dist/src/nile-grid/nile-grid.js.map +0 -1
  156. package/dist/src/nile-grid/renderer.d.ts +0 -8
  157. package/dist/src/nile-grid/renderer.js +0 -78
  158. package/dist/src/nile-grid/renderer.js.map +0 -1
  159. package/dist/src/nile-grid/resize-handler.d.ts +0 -4
  160. package/dist/src/nile-grid/resize-handler.js +0 -36
  161. package/dist/src/nile-grid/resize-handler.js.map +0 -1
  162. package/dist/src/nile-grid/types.d.ts +0 -32
  163. package/dist/src/nile-grid/types.js +0 -2
  164. package/dist/src/nile-grid/types.js.map +0 -1
  165. package/dist/src/nile-grid/utils.d.ts +0 -4
  166. package/dist/src/nile-grid/utils.js +0 -32
  167. package/dist/src/nile-grid/utils.js.map +0 -1
  168. package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +0 -47
  169. package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +0 -16
  170. package/dist/src/nile-icon/icons/svg/ng-action.d.ts +0 -5
  171. package/dist/src/nile-icon/icons/svg/ng-action.js +0 -5
  172. package/dist/src/nile-icon/icons/svg/ng-action.js.map +0 -1
  173. package/dist/src/nile-icon/icons/svg/ng-activity.d.ts +0 -5
  174. package/dist/src/nile-icon/icons/svg/ng-activity.js +0 -5
  175. package/dist/src/nile-icon/icons/svg/ng-activity.js.map +0 -1
  176. package/dist/src/nile-icon/icons/svg/ng-alert-circle.d.ts +0 -5
  177. package/dist/src/nile-icon/icons/svg/ng-alert-circle.js +0 -5
  178. package/dist/src/nile-icon/icons/svg/ng-alert-circle.js.map +0 -1
  179. package/dist/src/nile-icon/icons/svg/ng-align-center.d.ts +0 -5
  180. package/dist/src/nile-icon/icons/svg/ng-align-center.js +0 -5
  181. package/dist/src/nile-icon/icons/svg/ng-align-center.js.map +0 -1
  182. package/dist/src/nile-icon/icons/svg/ng-annotation-x.d.ts +0 -5
  183. package/dist/src/nile-icon/icons/svg/ng-annotation-x.js +0 -5
  184. package/dist/src/nile-icon/icons/svg/ng-annotation-x.js.map +0 -1
  185. package/dist/src/nile-icon/icons/svg/ng-arrow-down.d.ts +0 -5
  186. package/dist/src/nile-icon/icons/svg/ng-arrow-down.js +0 -5
  187. package/dist/src/nile-icon/icons/svg/ng-arrow-down.js.map +0 -1
  188. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.d.ts +0 -5
  189. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.js +0 -5
  190. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.js.map +0 -1
  191. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.d.ts +0 -5
  192. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.js +0 -5
  193. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.js.map +0 -1
  194. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-right.d.ts +0 -5
  195. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-right.js +0 -5
  196. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-right.js.map +0 -1
  197. package/dist/src/nile-icon/icons/svg/ng-arrow-up.d.ts +0 -5
  198. package/dist/src/nile-icon/icons/svg/ng-arrow-up.js +0 -5
  199. package/dist/src/nile-icon/icons/svg/ng-arrow-up.js.map +0 -1
  200. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.d.ts +0 -5
  201. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.js +0 -5
  202. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.js.map +0 -1
  203. package/dist/src/nile-icon/icons/svg/ng-bell-01.d.ts +0 -5
  204. package/dist/src/nile-icon/icons/svg/ng-bell-01.js +0 -5
  205. package/dist/src/nile-icon/icons/svg/ng-bell-01.js.map +0 -1
  206. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.d.ts +0 -5
  207. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.js +0 -5
  208. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.js.map +0 -1
  209. package/dist/src/nile-icon/icons/svg/ng-bold-01.d.ts +0 -5
  210. package/dist/src/nile-icon/icons/svg/ng-bold-01.js +0 -5
  211. package/dist/src/nile-icon/icons/svg/ng-bold-01.js.map +0 -1
  212. package/dist/src/nile-icon/icons/svg/ng-building-01.d.ts +0 -5
  213. package/dist/src/nile-icon/icons/svg/ng-building-01.js +0 -5
  214. package/dist/src/nile-icon/icons/svg/ng-building-01.js.map +0 -1
  215. package/dist/src/nile-icon/icons/svg/ng-building-05.d.ts +0 -5
  216. package/dist/src/nile-icon/icons/svg/ng-building-05.js +0 -5
  217. package/dist/src/nile-icon/icons/svg/ng-building-05.js.map +0 -1
  218. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue-animated.d.ts +0 -5
  219. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue-animated.js +0 -5
  220. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue-animated.js.map +0 -1
  221. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue.d.ts +0 -5
  222. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue.js +0 -5
  223. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue.js.map +0 -1
  224. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.d.ts +0 -5
  225. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.js +0 -5
  226. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.js.map +0 -1
  227. package/dist/src/nile-icon/icons/svg/ng-calendar.d.ts +0 -5
  228. package/dist/src/nile-icon/icons/svg/ng-calendar.js +0 -5
  229. package/dist/src/nile-icon/icons/svg/ng-calendar.js.map +0 -1
  230. package/dist/src/nile-icon/icons/svg/ng-check-circle-broken.d.ts +0 -5
  231. package/dist/src/nile-icon/icons/svg/ng-check-circle-broken.js +0 -5
  232. package/dist/src/nile-icon/icons/svg/ng-check-circle-broken.js.map +0 -1
  233. package/dist/src/nile-icon/icons/svg/ng-check-circle.d.ts +0 -5
  234. package/dist/src/nile-icon/icons/svg/ng-check-circle.js +0 -5
  235. package/dist/src/nile-icon/icons/svg/ng-check-circle.js.map +0 -1
  236. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.d.ts +0 -5
  237. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.js +0 -5
  238. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.js.map +0 -1
  239. package/dist/src/nile-icon/icons/svg/ng-check.d.ts +0 -5
  240. package/dist/src/nile-icon/icons/svg/ng-check.js +0 -5
  241. package/dist/src/nile-icon/icons/svg/ng-check.js.map +0 -1
  242. package/dist/src/nile-icon/icons/svg/ng-chevron-down.d.ts +0 -5
  243. package/dist/src/nile-icon/icons/svg/ng-chevron-down.js +0 -5
  244. package/dist/src/nile-icon/icons/svg/ng-chevron-down.js.map +0 -1
  245. package/dist/src/nile-icon/icons/svg/ng-chevron-left.d.ts +0 -5
  246. package/dist/src/nile-icon/icons/svg/ng-chevron-left.js +0 -5
  247. package/dist/src/nile-icon/icons/svg/ng-chevron-left.js.map +0 -1
  248. package/dist/src/nile-icon/icons/svg/ng-chevron-right.d.ts +0 -5
  249. package/dist/src/nile-icon/icons/svg/ng-chevron-right.js +0 -5
  250. package/dist/src/nile-icon/icons/svg/ng-chevron-right.js.map +0 -1
  251. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.d.ts +0 -5
  252. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.js +0 -5
  253. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.js.map +0 -1
  254. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.d.ts +0 -5
  255. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.js +0 -5
  256. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.js.map +0 -1
  257. package/dist/src/nile-icon/icons/svg/ng-chevron-up.d.ts +0 -5
  258. package/dist/src/nile-icon/icons/svg/ng-chevron-up.js +0 -5
  259. package/dist/src/nile-icon/icons/svg/ng-chevron-up.js.map +0 -1
  260. package/dist/src/nile-icon/icons/svg/ng-copy-03.d.ts +0 -5
  261. package/dist/src/nile-icon/icons/svg/ng-copy-03.js +0 -5
  262. package/dist/src/nile-icon/icons/svg/ng-copy-03.js.map +0 -1
  263. package/dist/src/nile-icon/icons/svg/ng-dataflow-04.d.ts +0 -5
  264. package/dist/src/nile-icon/icons/svg/ng-dataflow-04.js +0 -5
  265. package/dist/src/nile-icon/icons/svg/ng-dataflow-04.js.map +0 -1
  266. package/dist/src/nile-icon/icons/svg/ng-dots-grid.d.ts +0 -5
  267. package/dist/src/nile-icon/icons/svg/ng-dots-grid.js +0 -5
  268. package/dist/src/nile-icon/icons/svg/ng-dots-grid.js.map +0 -1
  269. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.d.ts +0 -5
  270. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.js +0 -5
  271. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.js.map +0 -1
  272. package/dist/src/nile-icon/icons/svg/ng-download-01.d.ts +0 -5
  273. package/dist/src/nile-icon/icons/svg/ng-download-01.js +0 -5
  274. package/dist/src/nile-icon/icons/svg/ng-download-01.js.map +0 -1
  275. package/dist/src/nile-icon/icons/svg/ng-dropdown.d.ts +0 -5
  276. package/dist/src/nile-icon/icons/svg/ng-dropdown.js +0 -5
  277. package/dist/src/nile-icon/icons/svg/ng-dropdown.js.map +0 -1
  278. package/dist/src/nile-icon/icons/svg/ng-edit-02.d.ts +0 -5
  279. package/dist/src/nile-icon/icons/svg/ng-edit-02.js +0 -5
  280. package/dist/src/nile-icon/icons/svg/ng-edit-02.js.map +0 -1
  281. package/dist/src/nile-icon/icons/svg/ng-edit-05.d.ts +0 -5
  282. package/dist/src/nile-icon/icons/svg/ng-edit-05.js +0 -5
  283. package/dist/src/nile-icon/icons/svg/ng-edit-05.js.map +0 -1
  284. package/dist/src/nile-icon/icons/svg/ng-expand-06.d.ts +0 -5
  285. package/dist/src/nile-icon/icons/svg/ng-expand-06.js +0 -5
  286. package/dist/src/nile-icon/icons/svg/ng-expand-06.js.map +0 -1
  287. package/dist/src/nile-icon/icons/svg/ng-eye-off.d.ts +0 -5
  288. package/dist/src/nile-icon/icons/svg/ng-eye-off.js +0 -5
  289. package/dist/src/nile-icon/icons/svg/ng-eye-off.js.map +0 -1
  290. package/dist/src/nile-icon/icons/svg/ng-eye.d.ts +0 -5
  291. package/dist/src/nile-icon/icons/svg/ng-eye.js +0 -5
  292. package/dist/src/nile-icon/icons/svg/ng-eye.js.map +0 -1
  293. package/dist/src/nile-icon/icons/svg/ng-file-02.d.ts +0 -5
  294. package/dist/src/nile-icon/icons/svg/ng-file-02.js +0 -5
  295. package/dist/src/nile-icon/icons/svg/ng-file-02.js.map +0 -1
  296. package/dist/src/nile-icon/icons/svg/ng-file-06.d.ts +0 -5
  297. package/dist/src/nile-icon/icons/svg/ng-file-06.js +0 -5
  298. package/dist/src/nile-icon/icons/svg/ng-file-06.js.map +0 -1
  299. package/dist/src/nile-icon/icons/svg/ng-file-check-02.d.ts +0 -5
  300. package/dist/src/nile-icon/icons/svg/ng-file-check-02.js +0 -5
  301. package/dist/src/nile-icon/icons/svg/ng-file-check-02.js.map +0 -1
  302. package/dist/src/nile-icon/icons/svg/ng-file-question-03.d.ts +0 -5
  303. package/dist/src/nile-icon/icons/svg/ng-file-question-03.js +0 -5
  304. package/dist/src/nile-icon/icons/svg/ng-file-question-03.js.map +0 -1
  305. package/dist/src/nile-icon/icons/svg/ng-filter-lines.d.ts +0 -5
  306. package/dist/src/nile-icon/icons/svg/ng-filter-lines.js +0 -5
  307. package/dist/src/nile-icon/icons/svg/ng-filter-lines.js.map +0 -1
  308. package/dist/src/nile-icon/icons/svg/ng-grid-01.d.ts +0 -5
  309. package/dist/src/nile-icon/icons/svg/ng-grid-01.js +0 -5
  310. package/dist/src/nile-icon/icons/svg/ng-grid-01.js.map +0 -1
  311. package/dist/src/nile-icon/icons/svg/ng-help-circle.d.ts +0 -5
  312. package/dist/src/nile-icon/icons/svg/ng-help-circle.js +0 -5
  313. package/dist/src/nile-icon/icons/svg/ng-help-circle.js.map +0 -1
  314. package/dist/src/nile-icon/icons/svg/ng-image-03.d.ts +0 -5
  315. package/dist/src/nile-icon/icons/svg/ng-image-03.js +0 -5
  316. package/dist/src/nile-icon/icons/svg/ng-image-03.js.map +0 -1
  317. package/dist/src/nile-icon/icons/svg/ng-image-user-left.d.ts +0 -5
  318. package/dist/src/nile-icon/icons/svg/ng-image-user-left.js +0 -5
  319. package/dist/src/nile-icon/icons/svg/ng-image-user-left.js.map +0 -1
  320. package/dist/src/nile-icon/icons/svg/ng-info-circle.d.ts +0 -5
  321. package/dist/src/nile-icon/icons/svg/ng-info-circle.js +0 -5
  322. package/dist/src/nile-icon/icons/svg/ng-info-circle.js.map +0 -1
  323. package/dist/src/nile-icon/icons/svg/ng-italic-01.d.ts +0 -5
  324. package/dist/src/nile-icon/icons/svg/ng-italic-01.js +0 -5
  325. package/dist/src/nile-icon/icons/svg/ng-italic-01.js.map +0 -1
  326. package/dist/src/nile-icon/icons/svg/ng-layers-three-01.d.ts +0 -5
  327. package/dist/src/nile-icon/icons/svg/ng-layers-three-01.js +0 -5
  328. package/dist/src/nile-icon/icons/svg/ng-layers-three-01.js.map +0 -1
  329. package/dist/src/nile-icon/icons/svg/ng-list.d.ts +0 -5
  330. package/dist/src/nile-icon/icons/svg/ng-list.js +0 -5
  331. package/dist/src/nile-icon/icons/svg/ng-list.js.map +0 -1
  332. package/dist/src/nile-icon/icons/svg/ng-log-out-01.d.ts +0 -5
  333. package/dist/src/nile-icon/icons/svg/ng-log-out-01.js +0 -5
  334. package/dist/src/nile-icon/icons/svg/ng-log-out-01.js.map +0 -1
  335. package/dist/src/nile-icon/icons/svg/ng-mail-01.d.ts +0 -5
  336. package/dist/src/nile-icon/icons/svg/ng-mail-01.js +0 -5
  337. package/dist/src/nile-icon/icons/svg/ng-mail-01.js.map +0 -1
  338. package/dist/src/nile-icon/icons/svg/ng-mail-04.d.ts +0 -5
  339. package/dist/src/nile-icon/icons/svg/ng-mail-04.js +0 -5
  340. package/dist/src/nile-icon/icons/svg/ng-mail-04.js.map +0 -1
  341. package/dist/src/nile-icon/icons/svg/ng-marker-pin-01.d.ts +0 -5
  342. package/dist/src/nile-icon/icons/svg/ng-marker-pin-01.js +0 -5
  343. package/dist/src/nile-icon/icons/svg/ng-marker-pin-01.js.map +0 -1
  344. package/dist/src/nile-icon/icons/svg/ng-menu-05.d.ts +0 -5
  345. package/dist/src/nile-icon/icons/svg/ng-menu-05.js +0 -5
  346. package/dist/src/nile-icon/icons/svg/ng-menu-05.js.map +0 -1
  347. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.d.ts +0 -5
  348. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.js +0 -5
  349. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.js.map +0 -1
  350. package/dist/src/nile-icon/icons/svg/ng-minimize-02.d.ts +0 -5
  351. package/dist/src/nile-icon/icons/svg/ng-minimize-02.js +0 -5
  352. package/dist/src/nile-icon/icons/svg/ng-minimize-02.js.map +0 -1
  353. package/dist/src/nile-icon/icons/svg/ng-minus.d.ts +0 -5
  354. package/dist/src/nile-icon/icons/svg/ng-minus.js +0 -5
  355. package/dist/src/nile-icon/icons/svg/ng-minus.js.map +0 -1
  356. package/dist/src/nile-icon/icons/svg/ng-plus.d.ts +0 -5
  357. package/dist/src/nile-icon/icons/svg/ng-plus.js +0 -5
  358. package/dist/src/nile-icon/icons/svg/ng-plus.js.map +0 -1
  359. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.d.ts +0 -5
  360. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.js +0 -5
  361. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.js.map +0 -1
  362. package/dist/src/nile-icon/icons/svg/ng-rocket-02.d.ts +0 -5
  363. package/dist/src/nile-icon/icons/svg/ng-rocket-02.js +0 -5
  364. package/dist/src/nile-icon/icons/svg/ng-rocket-02.js.map +0 -1
  365. package/dist/src/nile-icon/icons/svg/ng-search-lg.d.ts +0 -5
  366. package/dist/src/nile-icon/icons/svg/ng-search-lg.js +0 -5
  367. package/dist/src/nile-icon/icons/svg/ng-search-lg.js.map +0 -1
  368. package/dist/src/nile-icon/icons/svg/ng-send-01.d.ts +0 -5
  369. package/dist/src/nile-icon/icons/svg/ng-send-01.js +0 -5
  370. package/dist/src/nile-icon/icons/svg/ng-send-01.js.map +0 -1
  371. package/dist/src/nile-icon/icons/svg/ng-settings-01.d.ts +0 -5
  372. package/dist/src/nile-icon/icons/svg/ng-settings-01.js +0 -5
  373. package/dist/src/nile-icon/icons/svg/ng-settings-01.js.map +0 -1
  374. package/dist/src/nile-icon/icons/svg/ng-share-04.d.ts +0 -5
  375. package/dist/src/nile-icon/icons/svg/ng-share-04.js +0 -5
  376. package/dist/src/nile-icon/icons/svg/ng-share-04.js.map +0 -1
  377. package/dist/src/nile-icon/icons/svg/ng-share-06.d.ts +0 -5
  378. package/dist/src/nile-icon/icons/svg/ng-share-06.js +0 -5
  379. package/dist/src/nile-icon/icons/svg/ng-share-06.js.map +0 -1
  380. package/dist/src/nile-icon/icons/svg/ng-stars-02.d.ts +0 -5
  381. package/dist/src/nile-icon/icons/svg/ng-stars-02.js +0 -5
  382. package/dist/src/nile-icon/icons/svg/ng-stars-02.js.map +0 -1
  383. package/dist/src/nile-icon/icons/svg/ng-trash-01.d.ts +0 -5
  384. package/dist/src/nile-icon/icons/svg/ng-trash-01.js +0 -5
  385. package/dist/src/nile-icon/icons/svg/ng-trash-01.js.map +0 -1
  386. package/dist/src/nile-icon/icons/svg/ng-trash-03.d.ts +0 -5
  387. package/dist/src/nile-icon/icons/svg/ng-trash-03.js +0 -5
  388. package/dist/src/nile-icon/icons/svg/ng-trash-03.js.map +0 -1
  389. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.d.ts +0 -5
  390. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.js +0 -5
  391. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.js.map +0 -1
  392. package/dist/src/nile-icon/icons/svg/ng-underline-01.d.ts +0 -5
  393. package/dist/src/nile-icon/icons/svg/ng-underline-01.js +0 -5
  394. package/dist/src/nile-icon/icons/svg/ng-underline-01.js.map +0 -1
  395. package/dist/src/nile-icon/icons/svg/ng-upload-01.d.ts +0 -5
  396. package/dist/src/nile-icon/icons/svg/ng-upload-01.js +0 -5
  397. package/dist/src/nile-icon/icons/svg/ng-upload-01.js.map +0 -1
  398. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.d.ts +0 -5
  399. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.js +0 -5
  400. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.js.map +0 -1
  401. package/dist/src/nile-icon/icons/svg/ng-user-01.d.ts +0 -5
  402. package/dist/src/nile-icon/icons/svg/ng-user-01.js +0 -5
  403. package/dist/src/nile-icon/icons/svg/ng-user-01.js.map +0 -1
  404. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.d.ts +0 -5
  405. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.js +0 -5
  406. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.js.map +0 -1
  407. package/dist/src/nile-icon/icons/svg/ng-user-check-02.d.ts +0 -5
  408. package/dist/src/nile-icon/icons/svg/ng-user-check-02.js +0 -5
  409. package/dist/src/nile-icon/icons/svg/ng-user-check-02.js.map +0 -1
  410. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.d.ts +0 -5
  411. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.js +0 -5
  412. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.js.map +0 -1
  413. package/dist/src/nile-icon/icons/svg/ng-user-right-01.d.ts +0 -5
  414. package/dist/src/nile-icon/icons/svg/ng-user-right-01.js +0 -5
  415. package/dist/src/nile-icon/icons/svg/ng-user-right-01.js.map +0 -1
  416. package/dist/src/nile-icon/icons/svg/ng-users-01.d.ts +0 -5
  417. package/dist/src/nile-icon/icons/svg/ng-users-01.js +0 -5
  418. package/dist/src/nile-icon/icons/svg/ng-users-01.js.map +0 -1
  419. package/dist/src/nile-icon/icons/svg/ng-x-circle.d.ts +0 -5
  420. package/dist/src/nile-icon/icons/svg/ng-x-circle.js +0 -5
  421. package/dist/src/nile-icon/icons/svg/ng-x-circle.js.map +0 -1
  422. package/dist/src/nile-icon/icons/svg/ng-x-close.d.ts +0 -5
  423. package/dist/src/nile-icon/icons/svg/ng-x-close.js +0 -5
  424. package/dist/src/nile-icon/icons/svg/ng-x-close.js.map +0 -1
  425. package/dist/src/nile-icon/icons/svg/ng-x-square.d.ts +0 -5
  426. package/dist/src/nile-icon/icons/svg/ng-x-square.js +0 -5
  427. package/dist/src/nile-icon/icons/svg/ng-x-square.js.map +0 -1
  428. package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +0 -75
  429. package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +0 -22
  430. package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +0 -9
  431. package/dist/src/nile-table-body/virtual-scroll-helper.js +0 -24
  432. package/dist/src/nile-table-body/virtual-scroll-helper.js.map +0 -1
  433. package/dist/src/nile-virtual-table-body/index.d.ts +0 -2
  434. package/dist/src/nile-virtual-table-body/index.js +0 -3
  435. package/dist/src/nile-virtual-table-body/index.js.map +0 -1
  436. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +0 -1
  437. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +0 -44
  438. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +0 -1
  439. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +0 -50
  440. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +0 -135
  441. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +0 -1
  442. package/dist/src/nile-virtual-table-body/renderer.d.ts +0 -16
  443. package/dist/src/nile-virtual-table-body/renderer.js +0 -49
  444. package/dist/src/nile-virtual-table-body/renderer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../src/nile-virtual-select/nile-virtual-select.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 LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-virtual-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport '../nile-checkbox/nile-checkbox';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';\nimport { VirtualSelectSelectionManager } from './selection-manager.js';\nimport { VirtualSelectSearchManager } from './search-manager.js';\nimport { VirtualSelectRenderer } from './renderer.js';\n\n/**\n * Nile Virtual Select component.\n *\n * @tag nile-virtual-select\n *\n */\n\n/**\n * @summary Virtual select component for handling large datasets with virtual scrolling.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-checkbox\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart footer - The footer container with show selected and clear all options.\n */\n\n@customElement('nile-virtual-select')\nexport class NileVirtualSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n\n @query('.select') popup: NilePopup;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.virtualized') virtualizedContainer: HTMLElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() selectedOptions: VirtualOption[] = [];\n @state() oldValue: string | string[] = '';\n \n private scrollTimeout: number | undefined;\n private scrolling = false;\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** Array of all option items for virtual scrolling */\n @property({ type: Array }) data: any = [];\n\n /** Original unfiltered option items for search functionality */\n @state() private originalOptionItems: any = [];\n\n /**\n * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n /** Search input placeholder */\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n /** Disable local search filtering */\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n /** Show loading state */\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n /** Allows more than one option to be selected. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Help text */\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n /** Error message */\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state */\n @property({ type: Boolean }) success = false;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean, reflect: true }) clearable = false;\n\n /** The select's open state. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Show no results message */\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n /** No results message */\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Show selected options only */\n @property({ type: Boolean }) showSelected = false;\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute:false}) renderItemConfig?: RenderItemConfig;\n\n /** Block value change events */\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n /** Disable width synchronization */\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n @state() oldMaxOptionsVisible: number = 1;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage ?? '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeComponent();\n this.setupEventListeners();\n \n this.updateComplete.then(() => {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n }\n });\n }\n\n disconnectedCallback() {\n this.removeOpenListeners();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if(changedProperties.has('value')) {\n this.selectionChanged();\n }\n }\n\n private initializeComponent(): void {\n this.open = false;\n this.emit('nile-init');\n }\n\n /**\n * Get display text for an item using renderItemConfig\n */\n private getDisplayText(item: any): string {\n if (this.renderItemConfig?.getDisplayText) {\n return this.renderItemConfig.getDisplayText(item);\n }\n // Fallback to basic display\n return item?.label || item?.name || item?.toString() || '';\n }\n\n /**\n * Get value for an item using renderItemConfig or fallback to item.value\n */\n private getItemValue(item: any): string {\n if (this.renderItemConfig?.getValue) {\n return this.renderItemConfig.getValue(item);\n }\n return item?.value || item;\n }\n\n /**\n * Get search text for an item using renderItemConfig or fallback to display text\n */\n private getSearchText(item: any): string {\n if (this.renderItemConfig?.getSearchText) {\n return this.renderItemConfig.getSearchText(item);\n }\n return this.getDisplayText(item);\n }\n\n private setupEventListeners(): void {\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n private handleFocus(): void {\n this.hasFocus = true;\n this.emit('nile-focus');\n }\n\n private handleBlur(): void {\n this.hasFocus = false;\n this.emit('nile-blur');\n }\n\n private handleDocumentFocusIn(event: FocusEvent): void {\n if (!this.open) return; \n const path = event.composedPath(); \n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n\n if (!hitSelf && !hitPopup) {\n this.hide();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent): void {\n if (this.shouldIgnoreKeyPress(event)) {\n return;\n }\n\n if (this.isEscapeKey(event)) {\n this.handleEscapeKey(event);\n }\n\n if (this.isEnterOrSpaceKey(event)) {\n this.handleEnterOrSpaceKey(event);\n }\n }\n\n private shouldIgnoreKeyPress(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n return isClearButton || isIconButton;\n }\n\n private isEscapeKey(event: KeyboardEvent): boolean {\n return event.key === 'Escape' && this.open;\n }\n\n private handleEscapeKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n private isEnterOrSpaceKey(event: KeyboardEvent): boolean {\n return event.key === 'Enter' || event.key === ' ';\n }\n\n private handleEnterOrSpaceKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n if (!this.open) {\n this.show();\n return;\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent): void => {\n if (!this.open) return; \n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n \n if (!hitSelf && !hitPopup) {\n this.hide();\n }\n };\n\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n if (this.selectedOptions?.length === 0) {\n return;\n }\n this.showSelected = !this.showSelected;\n\n if (this.showSelected) {\n const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => \n selectedValues.includes(item.value)\n );\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n this.requestUpdate();\n this.resetScrollPosition();\n }\n\n private unSelectAll(): void {\n this.showSelected = false;\n this.value = this.multiple ? [] : '';\n this.data = [...this.originalOptionItems];\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });\n this.resetScrollPosition();\n }\n\n private handleLabelClick(): void {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent): void {\n if (this.shouldIgnoreComboboxClick(event)) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private shouldIgnoreComboboxClick(event: MouseEvent): boolean {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n return this.disabled || isIconButton;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent): void {\n if (this.isEnterOrSpaceKey(event)) {\n event.preventDefault();\n this.open = !this.open;\n }\n }\n\n private handleClearClick(event: MouseEvent): void {\n event.stopPropagation();\n this.clearSelection();\n }\n\n private clearSelection(): void {\n const oldValue = this.value;\n this.value = this.multiple ? [] : '';\n this.selectionChanged();\n\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-clear');\n });\n }\n\n private handleClearMouseDown(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private handleOptionClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.shouldBlockValueChange(option)) {\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n this.handleOptionSelection(option);\n }\n }\n\n private shouldBlockValueChange(option: Element | null): boolean {\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: (option as any)?.value, name: this.name });\n this.hide();\n return true;\n }\n return false;\n }\n\n private handleOptionSelection(option: Element): void {\n const optionValue = (option as any).value;\n \n if (this.multiple) {\n this.toggleOptionSelection(optionValue);\n } else {\n this.setSelectedOptions(optionValue);\n }\n\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== this.oldValue) {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private setSelectedOptions(optionValue: string): void {\n this.value = optionValue;\n this.selectionChanged();\n }\n\n private toggleOptionSelection(optionValue: string): void {\n const currentValues = Array.isArray(this.value) ? this.value : [];\n \n if (currentValues.includes(optionValue)) {\n this.value = currentValues.filter(v => v !== optionValue);\n } else {\n this.value = [...currentValues, optionValue];\n }\n \n this.selectionChanged();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: VirtualOption): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.removeTagFromSelection(option);\n this.emitTagRemovalEvent(option);\n }\n }\n\n private removeTagFromSelection(option: VirtualOption): void {\n let currentValue = this.value;\n if (!Array.isArray(currentValue)) {\n currentValue = currentValue ? [currentValue] : [];\n }\n const newValue = currentValue.filter((v: string) => v !== option.value);\n this.value = newValue;\n this.selectionChanged();\n }\n\n private emitTagRemovalEvent(option: VirtualOption): void {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });\n });\n }\n\n private selectionChanged(): void {\n const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;\n this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(\n this.value, \n itemsToSearch, \n this.getDisplayText.bind(this),\n this.renderItemConfig?.getValue\n );\n\n if (this.multiple) {\n if (this.placeholder && this.value.length === 0) {\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;\n const label = this.selectedOptions[0]?.getTextLabel();\n this.displayLabel = label ? label : currentValue ?? '';\n }\n\n this.updateValidity();\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n }\n\n this.calculateTotalWidthOfTags();\n }\n\n handleSearchFocus(): void {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur(): void {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any): void {\n this.searchValue = e.detail.value;\n \n this.emit('nile-search', { \n query: this.searchValue,\n name: this.name \n });\n \n if (!this.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.resetScrollPosition();\n }\n }\n\n handleScroll(e: Event): void {\n const target = e.target as HTMLElement;\n \n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterVirtualOptions(searchValue: string): void {\n const result = VirtualSelectSearchManager.filterVirtualOptions(\n searchValue,\n this.originalOptionItems,\n this.data,\n this.getDisplayText.bind(this),\n this.renderItemConfig?.getSearchText\n );\n\n this.data = result.filteredItems;\n this.showNoResults = result.showNoResults;\n this.showSelected = false;\n this.requestUpdate();\n }\n\n private handleInvalid(event: Event): void {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange(): void {\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n if (this.data.length > 0 && this.open) {\n this.originalOptionItems = [...this.data];\n }\n \n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n } else if (this.data.length > 0) {\n this.showNoResults = false;\n }\n this.requestUpdate();\n }\n\n @watch('renderItemConfig', { waitUntilFirstUpdate: true })\n handleRenderItemConfigChange(): void {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n this.requestUpdate();\n }\n }\n\n @watch('optionsLoading', { waitUntilFirstUpdate: true })\n handleOptionsLoadingChange(): void {\n // Show no results message when loading stops and there are no results\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n }\n this.requestUpdate();\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n await this.handleOpen();\n } else {\n await this.handleClose();\n }\n }\n\n private async handleOpen(): Promise<void> {\n this.emit('nile-show', { value: this.value, name: this.name });\n this.addOpenListeners();\n this.showNoResults = !this.data?.length;\n\n await stopAnimations(this);\n this.popup.active = true;\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n this.initializeOriginalItems();\n this.filterVirtualOptions(this.searchValue);\n this.resetScrollPosition();\n this.emit('nile-after-show', { value: this.value, name: this.name });\n }\n\n private async handleClose(): Promise<void> {\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.removeOpenListeners();\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n\n this.searchValue = '';\n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n private initializeOriginalItems(): void {\n if (this.data.length > 0) {\n this.originalOptionItems = [...this.data];\n }\n }\n\n async show(): Promise<unknown> {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n async hide(): Promise<unknown> {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n checkValidity(): boolean {\n return this.valueInput.checkValidity();\n }\n\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n reportValidity(): boolean {\n return this.valueInput.reportValidity();\n }\n\n setCustomValidity(message: string): void {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n focus(options?: FocusOptions): void {\n this.displayInput.focus(options);\n }\n\n blur(): void {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event): void {\n event.stopPropagation();\n }\n\n render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;\n const hasHelpText = !!this.helpText;\n const hasErrorMessage = !!this.errorMessage;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}\n ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderLabel(hasLabel: boolean, hasLabelSuffixSlot: boolean): TemplateResult {\n return html`\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n `;\n }\n\n private renderFormControlInput(\n hasCustomSelect: boolean, \n hasClearIcon: boolean, \n isPlaceholderVisible: boolean, \n hasHelpText: boolean, \n hasErrorMessage: boolean\n ): TemplateResult {\n return html`\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}\n ${this.renderHelpText(hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderPopup(hasCustomSelect: boolean, hasClearIcon: boolean, isPlaceholderVisible: boolean): TemplateResult {\n return html`\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.hoist ? 'fixed' : 'absolute'}\n distance=\"6\"\n flip\n shift\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.renderListbox()}\n </nile-popup>\n `;\n }\n\n private renderCustomSelect(hasCustomSelect: boolean): TemplateResult {\n return hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``;\n }\n\n private renderCombobox(hasCustomSelect: boolean, hasClearIcon: boolean): TemplateResult {\n return html`\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${this.renderPrefix()}\n ${this.renderDisplayInput()}\n ${this.renderTags()}\n ${this.renderValueInput()}\n ${this.renderClearButton(hasClearIcon)}\n ${this.renderSuffix()}\n ${this.renderExpandIcon()}\n </div>\n `;\n }\n\n private renderPrefix(): TemplateResult {\n return html`\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n `;\n }\n\n private renderDisplayInput(): TemplateResult {\n return html`\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n />\n `;\n }\n\n private renderTags(): TemplateResult {\n return this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${option.getTextLabel()}\n </nile-tag>\n `;\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : html``;\n }\n\n private renderValueInput(): TemplateResult {\n return html`\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n `;\n }\n\n private renderClearButton(hasClearIcon: boolean): TemplateResult {\n return hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"close\" library=\"system\"></nile-icon>\n </slot>\n </button>\n `\n : html``;\n }\n\n private renderSuffix(): TemplateResult {\n return html`\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n `;\n }\n\n private renderExpandIcon(): TemplateResult {\n return html`\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"arrowdown\"></nile-icon>\n </slot>\n `;\n }\n\n private renderListbox(): TemplateResult {\n return html`\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n >\n ${this.renderSearch()}\n ${this.renderLoader()}\n ${this.getVirtualizedContent()}\n ${this.renderFooter()}\n </div>\n `;\n }\n\n private renderSearch(): TemplateResult {\n return this.searchEnabled\n ? html`\n <div part=\"search\" class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n >\n <nile-icon name=\"search\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n return this.optionsLoading\n ? html`\n <span part=\"loader\" class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"button-loading-blue\"\n ></nile-icon>\n </span>\n `\n : html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n &nbsp; Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n >\n Clear All\n </span>\n `\n : ``}\n </div>\n `\n : html``;\n }\n\n private renderHelpText(hasHelpText: boolean, hasErrorMessage: boolean): TemplateResult {\n return html`\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n `;\n }\n\n getVirtualizedContent(): TemplateResult {\n return VirtualSelectRenderer.getVirtualizedContent(\n this.data,\n this.searchEnabled,\n this.getDisplayText.bind(this),\n this.value,\n this.multiple,\n this.renderItemConfig?.getDisplayText,\n this.renderItemConfig?.getValue,\n this.showNoResults,\n this.noResultsMessage,\n this.optionsLoading,\n this.handleScroll.bind(this)\n );\n }\n\n nileInput(value: any): void {\n this.emit('nile-input', value);\n }\n\n nileChange(value: any): void {\n this.emit('nile-change', value);\n }\n\n private updateValidity(): void {\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n }\n\n private calculateWidthOfSelectTagsDiv(): number | null {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('.select__tags') as HTMLElement;\n if (selectTagsDiv) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n return null;\n }\n\n private calculateTotalWidthOfTags(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\n );\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n private resetScrollPosition(): void {\n this.updateComplete.then(() => {\n if (this.virtualizedContainer) {\n this.virtualizedContainer.scrollTop = 0;\n \n const listbox = this.shadowRoot?.querySelector('.select__listbox') as HTMLElement;\n if (listbox) {\n listbox.scrollTop = 0;\n }\n \n const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer') as HTMLElement;\n if (virtualizer) {\n virtualizer.scrollTop = 0;\n }\n }\n });\n }\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileVirtualSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-virtual-select': NileVirtualSelect;\n }\n}\n"],"names":["NileVirtualSelect","x","constructor","this","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","value","defaultValue","size","placeholder","searchValue","searchEnabled","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","maxOptionsVisible","oldMaxOptionsVisible","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hide","_this","_inherits","_u","_createClass","key","get","_this$valueInput","valueInput","validity","validationMessage","_this$valueInput$vali","_this$valueInput2","connectedCallback","super","initializeComponent","setupEventListeners","updateComplete","then","length","selectionChanged","disconnectedCallback","removeOpenListeners","scrollTimeout","clearTimeout","undefined","updated","changedProperties","has","emit","getDisplayText","item","renderItemConfig","toString","getItemValue","getValue","getSearchText","_this$renderItemConfi3","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","target","isClearButton","closest","isIconButton","preventDefault","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","selectedValues","Array","isArray","filter","requestUpdate","resetScrollPosition","unSelectAll","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","some","el","Element","tagName","toLowerCase","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","calculateTotalWidthOfTags","handleSearchFocus","handleSearchBlur","handleSearchChange","e","detail","query","filterVirtualOptions","handleScroll","scrollTop","scrollLeft","window","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","_this$renderItemConfi5","result","VirtualSelectSearchManager","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","_handleOpenChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","handleOpen","handleClose","stop","_callee2","_this$data","_h","i","s","_callee2$","_context3","stopAnimations","active","getAnimation","dir","animateTo","keyframes","options","initializeOriginalItems","_callee3","_h2","_callee3$","_context4","_toConsumableArray","_show","_callee4","_callee4$","_context5","waitForEvent","_callee5","_callee5$","_context6","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","onInputChange","render","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject9","select__prefix","_templateObject10","_templateObject11","map","index","classes","select__invisible","Infinity","_templateObject12","_templateObject13","_templateObject14","_templateObject15","join","_templateObject16","_templateObject17","_templateObject18","select__suffix","_templateObject19","_templateObject20","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_this$renderItemConfi6","_this$renderItemConfi7","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","shadowRoot","selectTagsDiv","querySelector","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","virtualizedContainer","_this11$shadowRoot","listbox","virtualizer","NileElement","styles","__decorate","prototype","state","property","type","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","String","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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"}
1
+ {"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../src/nile-virtual-select/nile-virtual-select.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 LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-virtual-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport '../nile-checkbox/nile-checkbox';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, TemplateResult } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';\nimport { VirtualSelectSelectionManager } from './selection-manager.js';\nimport { VirtualSelectSearchManager } from './search-manager.js';\nimport { VirtualSelectRenderer } from './renderer.js';\n\n/**\n * Nile Virtual Select component.\n *\n * @tag nile-virtual-select\n *\n */\n\n/**\n * @summary Virtual select component for handling large datasets with virtual scrolling.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-checkbox\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart footer - The footer container with show selected and clear all options.\n */\n\n@customElement('nile-virtual-select')\nexport class NileVirtualSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n\n @query('.select') popup: NilePopup;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.virtualized') virtualizedContainer: HTMLElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() selectedOptions: VirtualOption[] = [];\n @state() oldValue: string | string[] = '';\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** Array of all option items for virtual scrolling */\n @property({ type: Array }) data: any = [];\n\n /** Original unfiltered option items for search functionality */\n @state() private originalOptionItems: any = [];\n\n /**\n * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n /** Search input placeholder */\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n /** Disable local search filtering */\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n /** Show loading state */\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n /** Allows more than one option to be selected. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Help text */\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n /** Error message */\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state */\n @property({ type: Boolean }) success = false;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean, reflect: true }) clearable = false;\n\n /** The select's open state. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Show no results message */\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n /** No results message */\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Show selected options only */\n @property({ type: Boolean }) showSelected = false;\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute:false}) renderItemConfig?: RenderItemConfig;\n\n /** Block value change events */\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n /** Disable width synchronization */\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n @state() oldMaxOptionsVisible: number = 1;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage ?? '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeComponent();\n this.setupEventListeners();\n \n this.updateComplete.then(() => {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n }\n });\n }\n\n disconnectedCallback() {\n this.removeOpenListeners();\n }\n\n private initializeComponent(): void {\n this.open = false;\n this.emit('nile-init');\n }\n\n /**\n * Get display text for an item using renderItemConfig\n */\n private getDisplayText(item: any): string {\n if (this.renderItemConfig?.getDisplayText) {\n return this.renderItemConfig.getDisplayText(item);\n }\n // Fallback to basic display\n return item?.label || item?.name || item?.toString() || '';\n }\n\n /**\n * Get value for an item using renderItemConfig or fallback to item.value\n */\n private getItemValue(item: any): string {\n if (this.renderItemConfig?.getValue) {\n return this.renderItemConfig.getValue(item);\n }\n return item?.value || item;\n }\n\n /**\n * Get search text for an item using renderItemConfig or fallback to display text\n */\n private getSearchText(item: any): string {\n if (this.renderItemConfig?.getSearchText) {\n return this.renderItemConfig.getSearchText(item);\n }\n return this.getDisplayText(item);\n }\n\n private setupEventListeners(): void {\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n private handleFocus(): void {\n this.hasFocus = true;\n this.emit('nile-focus');\n }\n\n private handleBlur(): void {\n this.hasFocus = false;\n this.emit('nile-blur');\n }\n\n private handleDocumentFocusIn(event: FocusEvent): void {\n if (!this.open) return; \n const path = event.composedPath(); \n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n\n if (!hitSelf && !hitPopup) {\n this.hide();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent): void {\n if (this.shouldIgnoreKeyPress(event)) {\n return;\n }\n\n if (this.isEscapeKey(event)) {\n this.handleEscapeKey(event);\n }\n\n if (this.isEnterOrSpaceKey(event)) {\n this.handleEnterOrSpaceKey(event);\n }\n }\n\n private shouldIgnoreKeyPress(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n return isClearButton || isIconButton;\n }\n\n private isEscapeKey(event: KeyboardEvent): boolean {\n return event.key === 'Escape' && this.open;\n }\n\n private handleEscapeKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n private isEnterOrSpaceKey(event: KeyboardEvent): boolean {\n return event.key === 'Enter' || event.key === ' ';\n }\n\n private handleEnterOrSpaceKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n if (!this.open) {\n this.show();\n return;\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent): void => {\n if (!this.open) return; \n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n \n if (!hitSelf && !hitPopup) {\n this.hide();\n }\n };\n\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n if (this.selectedOptions?.length === 0) {\n return;\n }\n this.showSelected = !this.showSelected;\n\n if (this.showSelected) {\n const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => \n selectedValues.includes(item.value)\n );\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n this.requestUpdate();\n this.resetScrollPosition();\n }\n\n private unSelectAll(): void {\n this.showSelected = false;\n this.value = this.multiple ? [] : '';\n this.data = [...this.originalOptionItems];\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });\n this.resetScrollPosition();\n }\n\n private handleLabelClick(): void {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent): void {\n if (this.shouldIgnoreComboboxClick(event)) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private shouldIgnoreComboboxClick(event: MouseEvent): boolean {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n return this.disabled || isIconButton;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent): void {\n if (this.isEnterOrSpaceKey(event)) {\n event.preventDefault();\n this.open = !this.open;\n }\n }\n\n private handleClearClick(event: MouseEvent): void {\n event.stopPropagation();\n this.clearSelection();\n }\n\n private clearSelection(): void {\n const oldValue = this.value;\n this.value = this.multiple ? [] : '';\n this.selectionChanged();\n\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-clear');\n });\n }\n\n private handleClearMouseDown(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private handleOptionClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.shouldBlockValueChange(option)) {\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n this.handleOptionSelection(option);\n }\n }\n\n private shouldBlockValueChange(option: Element | null): boolean {\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: (option as any)?.value, name: this.name });\n this.hide();\n return true;\n }\n return false;\n }\n\n private handleOptionSelection(option: Element): void {\n const optionValue = (option as any).value;\n \n if (this.multiple) {\n this.toggleOptionSelection(optionValue);\n } else {\n this.setSelectedOptions(optionValue);\n }\n\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== this.oldValue) {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private setSelectedOptions(optionValue: string): void {\n this.value = optionValue;\n this.selectionChanged();\n }\n\n private toggleOptionSelection(optionValue: string): void {\n const currentValues = Array.isArray(this.value) ? this.value : [];\n \n if (currentValues.includes(optionValue)) {\n this.value = currentValues.filter(v => v !== optionValue);\n } else {\n this.value = [...currentValues, optionValue];\n }\n \n this.selectionChanged();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: VirtualOption): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.removeTagFromSelection(option);\n this.emitTagRemovalEvent(option);\n }\n }\n\n private removeTagFromSelection(option: VirtualOption): void {\n let currentValue = this.value;\n if (!Array.isArray(currentValue)) {\n currentValue = currentValue ? [currentValue] : [];\n }\n const newValue = currentValue.filter((v: string) => v !== option.value);\n this.value = newValue;\n this.selectionChanged();\n }\n\n private emitTagRemovalEvent(option: VirtualOption): void {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });\n });\n }\n\n private selectionChanged(): void {\n const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;\n this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(\n this.value, \n itemsToSearch, \n this.getDisplayText.bind(this),\n this.renderItemConfig?.getValue\n );\n\n if (this.multiple) {\n if (this.placeholder && this.value.length === 0) {\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;\n const label = this.selectedOptions[0]?.getTextLabel();\n this.displayLabel = label ? label : currentValue ?? '';\n }\n\n this.updateValidity();\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n }\n\n this.calculateTotalWidthOfTags();\n }\n\n handleSearchFocus(): void {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur(): void {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any): void {\n this.searchValue = e.detail.value;\n if (!this.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.resetScrollPosition();\n }\n }\n\n filterVirtualOptions(searchValue: string): void {\n const result = VirtualSelectSearchManager.filterVirtualOptions(\n searchValue,\n this.originalOptionItems,\n this.data,\n this.getDisplayText.bind(this),\n this.renderItemConfig?.getSearchText\n );\n\n this.data = result.filteredItems;\n this.showNoResults = result.showNoResults;\n this.showSelected = false;\n this.requestUpdate();\n }\n\n private handleInvalid(event: Event): void {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange(): void {\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n } else if (this.data.length > 0) {\n this.showNoResults = false;\n }\n this.requestUpdate();\n \n if (this.open) {\n this.resetScrollPosition();\n }\n }\n\n @watch('renderItemConfig', { waitUntilFirstUpdate: true })\n handleRenderItemConfigChange(): void {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n this.requestUpdate();\n }\n }\n\n @watch('optionsLoading', { waitUntilFirstUpdate: true })\n handleOptionsLoadingChange(): void {\n // Show no results message when loading stops and there are no results\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n }\n this.requestUpdate();\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n await this.handleOpen();\n } else {\n await this.handleClose();\n }\n }\n\n private async handleOpen(): Promise<void> {\n this.emit('nile-show', { value: this.value, name: this.name });\n this.addOpenListeners();\n this.showNoResults = !this.data?.length;\n\n await stopAnimations(this);\n this.popup.active = true;\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n this.initializeOriginalItems();\n this.filterVirtualOptions(this.searchValue);\n this.resetScrollPosition();\n this.emit('nile-after-show', { value: this.value, name: this.name });\n }\n\n private async handleClose(): Promise<void> {\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.removeOpenListeners();\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n\n this.searchValue = '';\n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n private initializeOriginalItems(): void {\n if (this.originalOptionItems.length === 0 && this.data.length > 0) {\n this.originalOptionItems = [...this.data];\n }\n }\n\n async show(): Promise<unknown> {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n async hide(): Promise<unknown> {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n checkValidity(): boolean {\n return this.valueInput.checkValidity();\n }\n\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n reportValidity(): boolean {\n return this.valueInput.reportValidity();\n }\n\n setCustomValidity(message: string): void {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n focus(options?: FocusOptions): void {\n this.displayInput.focus(options);\n }\n\n blur(): void {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event): void {\n event.stopPropagation();\n }\n\n render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;\n const hasHelpText = !!this.helpText;\n const hasErrorMessage = !!this.errorMessage;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}\n ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderLabel(hasLabel: boolean, hasLabelSuffixSlot: boolean): TemplateResult {\n return html`\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n `;\n }\n\n private renderFormControlInput(\n hasCustomSelect: boolean, \n hasClearIcon: boolean, \n isPlaceholderVisible: boolean, \n hasHelpText: boolean, \n hasErrorMessage: boolean\n ): TemplateResult {\n return html`\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}\n ${this.renderHelpText(hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderPopup(hasCustomSelect: boolean, hasClearIcon: boolean, isPlaceholderVisible: boolean): TemplateResult {\n return html`\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.hoist ? 'fixed' : 'absolute'}\n distance=\"6\"\n flip\n shift\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.renderListbox()}\n </nile-popup>\n `;\n }\n\n private renderCustomSelect(hasCustomSelect: boolean): TemplateResult {\n return hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``;\n }\n\n private renderCombobox(hasCustomSelect: boolean, hasClearIcon: boolean): TemplateResult {\n return html`\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${this.renderPrefix()}\n ${this.renderDisplayInput()}\n ${this.renderTags()}\n ${this.renderValueInput()}\n ${this.renderClearButton(hasClearIcon)}\n ${this.renderSuffix()}\n ${this.renderExpandIcon()}\n </div>\n `;\n }\n\n private renderPrefix(): TemplateResult {\n return html`\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n `;\n }\n\n private renderDisplayInput(): TemplateResult {\n return html`\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n />\n `;\n }\n\n private renderTags(): TemplateResult {\n return this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${option.getTextLabel()}\n </nile-tag>\n `;\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : html``;\n }\n\n private renderValueInput(): TemplateResult {\n return html`\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n `;\n }\n\n private renderClearButton(hasClearIcon: boolean): TemplateResult {\n return hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"close\" library=\"system\"></nile-icon>\n </slot>\n </button>\n `\n : html``;\n }\n\n private renderSuffix(): TemplateResult {\n return html`\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n `;\n }\n\n private renderExpandIcon(): TemplateResult {\n return html`\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"arrowdown\"></nile-icon>\n </slot>\n `;\n }\n\n private renderListbox(): TemplateResult {\n return html`\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n >\n ${this.renderSearch()}\n ${this.renderLoader()}\n ${this.getVirtualizedContent()}\n ${this.renderFooter()}\n </div>\n `;\n }\n\n private renderSearch(): TemplateResult {\n return this.searchEnabled\n ? html`\n <div part=\"search\" class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n >\n <nile-icon name=\"search\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n return this.optionsLoading\n ? html`\n <span part=\"loader\" class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"button-loading-blue\"\n ></nile-icon>\n </span>\n `\n : html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n &nbsp; Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n >\n Clear All\n </span>\n `\n : ``}\n </div>\n `\n : html``;\n }\n\n private renderHelpText(hasHelpText: boolean, hasErrorMessage: boolean): TemplateResult {\n return html`\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n `;\n }\n\n getVirtualizedContent(): TemplateResult {\n return VirtualSelectRenderer.getVirtualizedContent(\n this.data,\n this.searchEnabled,\n this.getDisplayText.bind(this),\n this.value,\n this.multiple,\n this.renderItemConfig?.getDisplayText,\n this.renderItemConfig?.getValue,\n this.showNoResults,\n this.noResultsMessage,\n this.optionsLoading\n );\n }\n\n nileInput(value: any): void {\n this.emit('nile-input', value);\n }\n\n nileChange(value: any): void {\n this.emit('nile-change', value);\n }\n\n private updateValidity(): void {\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n }\n\n private calculateWidthOfSelectTagsDiv(): number | null {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('.select__tags') as HTMLElement;\n if (selectTagsDiv) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n return null;\n }\n\n private calculateTotalWidthOfTags(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\n );\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n private resetScrollPosition(): void {\n this.updateComplete.then(() => {\n if (this.virtualizedContainer) {\n this.virtualizedContainer.scrollTop = 0;\n \n const listbox = this.shadowRoot?.querySelector('.select__listbox') as HTMLElement;\n if (listbox) {\n listbox.scrollTop = 0;\n }\n \n const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer') as HTMLElement;\n if (virtualizer) {\n virtualizer.scrollTop = 0;\n }\n }\n });\n }\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileVirtualSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-virtual-select': NileVirtualSelect;\n }\n}\n"],"names":["NileVirtualSelect","x","this","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","hasFocus","displayLabel","selectedOptions","oldValue","name","data","originalOptionItems","value","defaultValue","size","placeholder","searchValue","searchEnabled","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","maxOptionsVisible","oldMaxOptionsVisible","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hide","_this","_inherits","_u","_createClass","key","get","_this$valueInput","valueInput","validity","_this$valueInput$vali","_this$valueInput2","validationMessage","connectedCallback","super","initializeComponent","setupEventListeners","updateComplete","then","length","selectionChanged","disconnectedCallback","removeOpenListeners","emit","getDisplayText","item","renderItemConfig","toString","getItemValue","getValue","getSearchText","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","target","isClearButton","closest","isIconButton","preventDefault","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","selectedValues","Array","isArray","filter","_toConsumableArray","requestUpdate","resetScrollPosition","unSelectAll","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","some","el","Element","tagName","toLowerCase","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","_this$renderItemConfi4","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","calculateTotalWidthOfTags","handleSearchFocus","handleSearchBlur","handleSearchChange","e","detail","filterVirtualOptions","_this$renderItemConfi5","result","VirtualSelectSearchManager","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","_handleOpenChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","handleOpen","handleClose","stop","_callee2","_this$data","_h","i","s","_callee2$","_context3","stopAnimations","active","getAnimation","dir","keyframes","options","animateTo","initializeOriginalItems","_callee3","_h2","_callee3$","_context4","_show","_callee4","_callee4$","_context5","abrupt","waitForEvent","_callee5","_callee5$","_context6","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","onInputChange","render","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","undefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject9","select__prefix","_templateObject10","_templateObject11","map","index","classes","select__invisible","Infinity","_templateObject12","_templateObject13","_templateObject14","_templateObject15","join","_templateObject16","_templateObject17","_templateObject18","select__suffix","_templateObject19","_templateObject20","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_this$renderItemConfi6","_this$renderItemConfi7","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","shadowRoot","selectTagsDiv","querySelector","offsetWidth","setTimeout","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","virtualizedContainer","_this10$shadowRoot","scrollTop","listbox","virtualizer","NileElement","styles","__decorate","query","prototype","state","property","type","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","String","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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"}