@aquera/nile-elements 0.1.75-beta-1.1 → 0.1.75-beta-2.0

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 (491) hide show
  1. package/README.md +3 -0
  2. package/demo/index.html +121 -181
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +724 -271
  6. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  7. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
  8. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  9. package/dist/nile-badge/index.cjs.js +1 -1
  10. package/dist/nile-badge/index.esm.js +1 -1
  11. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  12. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  13. package/dist/nile-badge/nile-badge.esm.js +1 -1
  14. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  15. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
  16. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  17. package/dist/nile-button/index.cjs.js +1 -1
  18. package/dist/nile-button/index.esm.js +1 -1
  19. package/dist/nile-button/nile-button.cjs.js +1 -1
  20. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  21. package/dist/nile-button/nile-button.esm.js +1 -1
  22. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  23. package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
  24. package/dist/nile-button/nile-button.test.esm.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  26. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  27. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  28. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  29. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  30. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  31. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js +2 -0
  32. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js.map +1 -0
  33. package/dist/nile-code-editor/backup_nile-code-editor copy.esm.js +1 -0
  34. package/dist/nile-code-editor/extensionSetup.cjs.js +6 -6
  35. package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
  36. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  37. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  38. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  39. package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
  40. package/dist/nile-dialog/index.cjs.js +1 -1
  41. package/dist/nile-dialog/index.esm.js +1 -1
  42. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  43. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  44. package/dist/nile-dialog/nile-dialog.esm.js +2 -2
  45. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  46. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
  47. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  48. package/dist/nile-drawer/index.cjs.js +1 -1
  49. package/dist/nile-drawer/index.esm.js +1 -1
  50. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  51. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  52. package/dist/nile-drawer/nile-drawer.esm.js +2 -2
  53. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  54. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
  55. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  56. package/dist/nile-grid/index.cjs.js +2 -0
  57. package/dist/nile-grid/index.cjs.js.map +1 -0
  58. package/dist/nile-grid/index.esm.js +1 -0
  59. package/dist/nile-grid/nile-grid.cjs.js +2 -0
  60. package/dist/nile-grid/nile-grid.cjs.js.map +1 -0
  61. package/dist/nile-grid/nile-grid.css.cjs.js +2 -0
  62. package/dist/nile-grid/nile-grid.css.cjs.js.map +1 -0
  63. package/dist/nile-grid/nile-grid.css.esm.js +32 -0
  64. package/dist/nile-grid/nile-grid.esm.js +7 -0
  65. package/dist/nile-grid/nile-grid.utils.cjs.js +2 -0
  66. package/dist/nile-grid/nile-grid.utils.cjs.js.map +1 -0
  67. package/dist/nile-grid/nile-grid.utils.esm.js +1 -0
  68. package/dist/nile-grid-body/index.cjs.js +2 -0
  69. package/dist/nile-grid-body/index.cjs.js.map +1 -0
  70. package/dist/nile-grid-body/index.esm.js +1 -0
  71. package/dist/nile-grid-body/nile-grid-body.cjs.js +2 -0
  72. package/dist/nile-grid-body/nile-grid-body.cjs.js.map +1 -0
  73. package/dist/nile-grid-body/nile-grid-body.css.cjs.js +2 -0
  74. package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +1 -0
  75. package/dist/nile-grid-body/nile-grid-body.css.esm.js +10 -0
  76. package/dist/nile-grid-body/nile-grid-body.esm.js +5 -0
  77. package/dist/nile-grid-cell-item/index.cjs.js +2 -0
  78. package/dist/nile-grid-cell-item/index.cjs.js.map +1 -0
  79. package/dist/nile-grid-cell-item/index.esm.js +1 -0
  80. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +2 -0
  81. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -0
  82. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +2 -0
  83. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +1 -0
  84. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +35 -0
  85. package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +12 -0
  86. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +2 -0
  87. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +1 -0
  88. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +1 -0
  89. package/dist/nile-grid-head/index.cjs.js +2 -0
  90. package/dist/nile-grid-head/index.cjs.js.map +1 -0
  91. package/dist/nile-grid-head/index.esm.js +1 -0
  92. package/dist/nile-grid-head/nile-grid-head.cjs.js +2 -0
  93. package/dist/nile-grid-head/nile-grid-head.cjs.js.map +1 -0
  94. package/dist/nile-grid-head/nile-grid-head.css.cjs.js +2 -0
  95. package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +1 -0
  96. package/dist/nile-grid-head/nile-grid-head.css.esm.js +7 -0
  97. package/dist/nile-grid-head/nile-grid-head.esm.js +5 -0
  98. package/dist/nile-grid-head-item/index.cjs.js +2 -0
  99. package/dist/nile-grid-head-item/index.cjs.js.map +1 -0
  100. package/dist/nile-grid-head-item/index.esm.js +1 -0
  101. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +2 -0
  102. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -0
  103. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +2 -0
  104. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +1 -0
  105. package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +34 -0
  106. package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +12 -0
  107. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +2 -0
  108. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -0
  109. package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -0
  110. package/dist/nile-grid-row/index.cjs.js +2 -0
  111. package/dist/nile-grid-row/index.cjs.js.map +1 -0
  112. package/dist/nile-grid-row/index.esm.js +1 -0
  113. package/dist/nile-grid-row/nile-grid-row.cjs.js +2 -0
  114. package/dist/nile-grid-row/nile-grid-row.cjs.js.map +1 -0
  115. package/dist/nile-grid-row/nile-grid-row.css.cjs.js +2 -0
  116. package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +1 -0
  117. package/dist/nile-grid-row/nile-grid-row.css.esm.js +15 -0
  118. package/dist/nile-grid-row/nile-grid-row.esm.js +7 -0
  119. package/dist/nile-icon/icons/svg/format_align_justify.cjs.js +2 -0
  120. package/dist/nile-icon/icons/svg/format_align_justify.cjs.js.map +1 -0
  121. package/dist/nile-icon/icons/svg/format_align_justify.esm.js +1 -0
  122. package/dist/nile-icon/icons/svg/format_align_left.cjs.js +2 -0
  123. package/dist/nile-icon/icons/svg/format_align_left.cjs.js.map +1 -0
  124. package/dist/nile-icon/icons/svg/format_align_left.esm.js +1 -0
  125. package/dist/nile-icon/icons/svg/format_align_middle.cjs.js +2 -0
  126. package/dist/nile-icon/icons/svg/format_align_middle.cjs.js.map +1 -0
  127. package/dist/nile-icon/icons/svg/format_align_middle.esm.js +1 -0
  128. package/dist/nile-icon/icons/svg/format_align_right.cjs.js +2 -0
  129. package/dist/nile-icon/icons/svg/format_align_right.cjs.js.map +1 -0
  130. package/dist/nile-icon/icons/svg/format_align_right.esm.js +1 -0
  131. package/dist/nile-icon/icons/svg/format_bold.cjs.js +2 -0
  132. package/dist/nile-icon/icons/svg/format_bold.cjs.js.map +1 -0
  133. package/dist/nile-icon/icons/svg/format_bold.esm.js +1 -0
  134. package/dist/nile-icon/icons/svg/format_clear.cjs.js +2 -0
  135. package/dist/nile-icon/icons/svg/format_clear.cjs.js.map +1 -0
  136. package/dist/nile-icon/icons/svg/format_clear.esm.js +1 -0
  137. package/dist/nile-icon/icons/svg/format_italic.cjs.js +2 -0
  138. package/dist/nile-icon/icons/svg/format_italic.cjs.js.map +1 -0
  139. package/dist/nile-icon/icons/svg/format_italic.esm.js +1 -0
  140. package/dist/nile-icon/icons/svg/format_list_bulleted.cjs.js +2 -0
  141. package/dist/nile-icon/icons/svg/format_list_bulleted.cjs.js.map +1 -0
  142. package/dist/nile-icon/icons/svg/format_list_bulleted.esm.js +1 -0
  143. package/dist/nile-icon/icons/svg/format_list_numbered.cjs.js +2 -0
  144. package/dist/nile-icon/icons/svg/format_list_numbered.cjs.js.map +1 -0
  145. package/dist/nile-icon/icons/svg/format_list_numbered.esm.js +1 -0
  146. package/dist/nile-icon/icons/svg/format_underline.cjs.js +2 -0
  147. package/dist/nile-icon/icons/svg/format_underline.cjs.js.map +1 -0
  148. package/dist/nile-icon/icons/svg/format_underline.esm.js +1 -0
  149. package/dist/nile-icon/icons/svg/image_2.cjs.js +2 -0
  150. package/dist/nile-icon/icons/svg/image_2.cjs.js.map +1 -0
  151. package/dist/nile-icon/icons/svg/image_2.esm.js +1 -0
  152. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  153. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  154. package/dist/nile-icon/icons/svg/link_2.cjs.js +2 -0
  155. package/dist/nile-icon/icons/svg/link_2.cjs.js.map +1 -0
  156. package/dist/nile-icon/icons/svg/link_2.esm.js +1 -0
  157. package/dist/nile-icon/index.cjs.js +1 -1
  158. package/dist/nile-icon/index.cjs.js.map +1 -1
  159. package/dist/nile-icon/index.esm.js +2 -2
  160. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  161. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
  162. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  163. package/dist/nile-icon-button/index.cjs.js +1 -1
  164. package/dist/nile-icon-button/index.esm.js +1 -1
  165. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  166. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  167. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  168. package/dist/nile-input/index.cjs.js +1 -1
  169. package/dist/nile-input/index.esm.js +1 -1
  170. package/dist/nile-input/nile-input.cjs.js +1 -1
  171. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  172. package/dist/nile-input/nile-input.esm.js +1 -1
  173. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  174. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  175. package/dist/nile-input/nile-input.test.esm.js +1 -1
  176. package/dist/nile-link/nile-link.css.cjs.js +1 -1
  177. package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
  178. package/dist/nile-link/nile-link.css.esm.js +1 -0
  179. package/dist/nile-menu-item/index.cjs.js +1 -1
  180. package/dist/nile-menu-item/index.esm.js +1 -1
  181. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  182. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  183. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  184. package/dist/nile-option/index.cjs.js +1 -1
  185. package/dist/nile-option/index.esm.js +1 -1
  186. package/dist/nile-option/nile-option.cjs.js +1 -1
  187. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  188. package/dist/nile-option/nile-option.esm.js +2 -2
  189. package/dist/nile-rich-text-editor/index.cjs.js +2 -0
  190. package/dist/nile-rich-text-editor/index.cjs.js.map +1 -0
  191. package/dist/nile-rich-text-editor/index.esm.js +1 -0
  192. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +2 -0
  193. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -0
  194. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +2 -0
  195. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -0
  196. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +149 -0
  197. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -0
  198. package/dist/nile-rich-text-editor/nile-rte-color.cjs.js +2 -0
  199. package/dist/nile-rich-text-editor/nile-rte-color.cjs.js.map +1 -0
  200. package/dist/nile-rich-text-editor/nile-rte-color.esm.js +53 -0
  201. package/dist/nile-rich-text-editor/nile-rte-divider.cjs.js +2 -0
  202. package/dist/nile-rich-text-editor/nile-rte-divider.cjs.js.map +1 -0
  203. package/dist/nile-rich-text-editor/nile-rte-divider.esm.js +1 -0
  204. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js +2 -0
  205. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js.map +1 -0
  206. package/dist/nile-rich-text-editor/nile-rte-link.esm.js +19 -0
  207. package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js +2 -0
  208. package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js.map +1 -0
  209. package/dist/nile-rich-text-editor/nile-rte-mentions-item.esm.js +1 -0
  210. package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js +3 -0
  211. package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js.map +1 -0
  212. package/dist/nile-rich-text-editor/nile-rte-mentions.esm.js +1 -0
  213. package/dist/nile-rich-text-editor/nile-rte-preview.cjs.js +2 -0
  214. package/dist/nile-rich-text-editor/nile-rte-preview.cjs.js.map +1 -0
  215. package/dist/nile-rich-text-editor/nile-rte-preview.esm.js +1 -0
  216. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +2 -0
  217. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -0
  218. package/dist/nile-rich-text-editor/nile-rte-select.esm.js +66 -0
  219. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.cjs.js +2 -0
  220. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.cjs.js.map +1 -0
  221. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.esm.js +1 -0
  222. package/dist/nile-rich-text-editor/nile-rte-toolbar.cjs.js +2 -0
  223. package/dist/nile-rich-text-editor/nile-rte-toolbar.cjs.js.map +1 -0
  224. package/dist/nile-rich-text-editor/nile-rte-toolbar.esm.js +1 -0
  225. package/dist/nile-rich-text-editor/utils.cjs.js +2 -0
  226. package/dist/nile-rich-text-editor/utils.cjs.js.map +1 -0
  227. package/dist/nile-rich-text-editor/utils.esm.js +1 -0
  228. package/dist/nile-select/index.cjs.js +1 -1
  229. package/dist/nile-select/index.esm.js +1 -1
  230. package/dist/nile-select/nile-select.cjs.js +1 -1
  231. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  232. package/dist/nile-select/nile-select.esm.js +1 -1
  233. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  234. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  235. package/dist/nile-select/nile-select.test.esm.js +1 -1
  236. package/dist/nile-tab/index.cjs.js +1 -1
  237. package/dist/nile-tab/index.esm.js +1 -1
  238. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  239. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  240. package/dist/nile-tab/nile-tab.esm.js +1 -1
  241. package/dist/nile-tab-group/index.cjs.js +1 -1
  242. package/dist/nile-tab-group/index.esm.js +1 -1
  243. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  244. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  245. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  246. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  247. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
  248. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  249. package/dist/nile-tag/index.cjs.js +1 -1
  250. package/dist/nile-tag/index.esm.js +1 -1
  251. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  252. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  253. package/dist/nile-tag/nile-tag.esm.js +1 -1
  254. package/dist/nile-toast/index.cjs.js +1 -1
  255. package/dist/nile-toast/index.esm.js +1 -1
  256. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  257. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  258. package/dist/nile-toast/nile-toast.esm.js +1 -1
  259. package/dist/nile-tree/index.cjs.js +1 -1
  260. package/dist/nile-tree/index.esm.js +1 -1
  261. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  262. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  263. package/dist/nile-tree/nile-tree.esm.js +1 -1
  264. package/dist/nile-tree-item/index.cjs.js +1 -1
  265. package/dist/nile-tree-item/index.esm.js +1 -1
  266. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  267. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  268. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  269. package/dist/nile-virtual-select/index.cjs.js +1 -1
  270. package/dist/nile-virtual-select/index.esm.js +1 -1
  271. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -2
  272. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  273. package/dist/nile-virtual-select/nile-virtual-select.esm.js +3 -3
  274. package/dist/src/index.d.ts +7 -0
  275. package/dist/src/index.js +8 -1
  276. package/dist/src/index.js.map +1 -1
  277. package/dist/src/nile-code-editor/Old_theme copy.d.ts +191 -0
  278. package/dist/src/nile-code-editor/Old_theme copy.js +193 -0
  279. package/dist/src/nile-code-editor/Old_theme copy.js.map +1 -0
  280. package/dist/src/nile-code-editor/backup_nile-code-editor copy.d.ts +0 -0
  281. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js +675 -0
  282. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js.map +1 -0
  283. package/dist/src/nile-code-editor/nile-code-editor.d.ts +6 -3
  284. package/dist/src/nile-code-editor/nile-code-editor.js +44 -22
  285. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  286. package/dist/src/nile-code-editor/theme copy.d.ts +191 -0
  287. package/dist/src/nile-code-editor/theme copy.js +193 -0
  288. package/dist/src/nile-code-editor/theme copy.js.map +1 -0
  289. package/dist/src/nile-grid/index.d.ts +0 -4
  290. package/dist/src/nile-grid/index.js +0 -4
  291. package/dist/src/nile-grid/index.js.map +1 -1
  292. package/dist/src/nile-grid/nile-grid.css.d.ts +8 -0
  293. package/dist/src/nile-grid/nile-grid.css.js +27 -106
  294. package/dist/src/nile-grid/nile-grid.css.js.map +1 -1
  295. package/dist/src/nile-grid/nile-grid.d.ts +37 -26
  296. package/dist/src/nile-grid/nile-grid.js +96 -148
  297. package/dist/src/nile-grid/nile-grid.js.map +1 -1
  298. package/dist/src/nile-grid/nile-grid.utils.d.ts +9 -0
  299. package/dist/src/nile-grid/nile-grid.utils.js +170 -0
  300. package/dist/src/nile-grid/nile-grid.utils.js.map +1 -0
  301. package/dist/src/nile-grid-body/index.d.ts +1 -0
  302. package/dist/src/nile-grid-body/index.js +2 -0
  303. package/dist/src/nile-grid-body/index.js.map +1 -0
  304. package/dist/src/nile-grid-body/nile-grid-body.css.d.ts +12 -0
  305. package/dist/src/nile-grid-body/nile-grid-body.css.js +22 -0
  306. package/dist/src/nile-grid-body/nile-grid-body.css.js.map +1 -0
  307. package/dist/src/nile-grid-body/nile-grid-body.d.ts +29 -0
  308. package/dist/src/nile-grid-body/nile-grid-body.js +43 -0
  309. package/dist/src/nile-grid-body/nile-grid-body.js.map +1 -0
  310. package/dist/src/nile-grid-cell-item/index.d.ts +1 -0
  311. package/dist/src/nile-grid-cell-item/index.js +2 -0
  312. package/dist/src/nile-grid-cell-item/index.js.map +1 -0
  313. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +12 -0
  314. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +47 -0
  315. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +1 -0
  316. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +36 -0
  317. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +93 -0
  318. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +1 -0
  319. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +10 -0
  320. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +34 -0
  321. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +1 -0
  322. package/dist/src/nile-grid-head/index.d.ts +1 -0
  323. package/dist/src/nile-grid-head/index.js +2 -0
  324. package/dist/src/nile-grid-head/index.js.map +1 -0
  325. package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +12 -0
  326. package/dist/src/nile-grid-head/nile-grid-head.css.js +19 -0
  327. package/dist/src/nile-grid-head/nile-grid-head.css.js.map +1 -0
  328. package/dist/src/nile-grid-head/nile-grid-head.d.ts +28 -0
  329. package/dist/src/nile-grid-head/nile-grid-head.js +41 -0
  330. package/dist/src/nile-grid-head/nile-grid-head.js.map +1 -0
  331. package/dist/src/nile-grid-head-item/index.d.ts +1 -0
  332. package/dist/src/nile-grid-head-item/index.js +2 -0
  333. package/dist/src/nile-grid-head-item/index.js.map +1 -0
  334. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +12 -0
  335. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +46 -0
  336. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +1 -0
  337. package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +37 -0
  338. package/dist/src/nile-grid-head-item/nile-grid-head-item.js +100 -0
  339. package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +1 -0
  340. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +10 -0
  341. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +34 -0
  342. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -0
  343. package/dist/src/nile-grid-row/index.d.ts +1 -0
  344. package/dist/src/nile-grid-row/index.js +2 -0
  345. package/dist/src/nile-grid-row/index.js.map +1 -0
  346. package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +12 -0
  347. package/dist/src/nile-grid-row/nile-grid-row.css.js +27 -0
  348. package/dist/src/nile-grid-row/nile-grid-row.css.js.map +1 -0
  349. package/dist/src/nile-grid-row/nile-grid-row.d.ts +29 -0
  350. package/dist/src/nile-grid-row/nile-grid-row.js +45 -0
  351. package/dist/src/nile-grid-row/nile-grid-row.js.map +1 -0
  352. package/dist/src/nile-icon/icons/svg/format_align_justify.d.ts +5 -0
  353. package/dist/src/nile-icon/icons/svg/format_align_justify.js +5 -0
  354. package/dist/src/nile-icon/icons/svg/format_align_justify.js.map +1 -0
  355. package/dist/src/nile-icon/icons/svg/format_align_left.d.ts +5 -0
  356. package/dist/src/nile-icon/icons/svg/format_align_left.js +5 -0
  357. package/dist/src/nile-icon/icons/svg/format_align_left.js.map +1 -0
  358. package/dist/src/nile-icon/icons/svg/format_align_middle.d.ts +5 -0
  359. package/dist/src/nile-icon/icons/svg/format_align_middle.js +5 -0
  360. package/dist/src/nile-icon/icons/svg/format_align_middle.js.map +1 -0
  361. package/dist/src/nile-icon/icons/svg/format_align_right.d.ts +5 -0
  362. package/dist/src/nile-icon/icons/svg/format_align_right.js +5 -0
  363. package/dist/src/nile-icon/icons/svg/format_align_right.js.map +1 -0
  364. package/dist/src/nile-icon/icons/svg/format_bold.d.ts +5 -0
  365. package/dist/src/nile-icon/icons/svg/format_bold.js +5 -0
  366. package/dist/src/nile-icon/icons/svg/format_bold.js.map +1 -0
  367. package/dist/src/nile-icon/icons/svg/format_clear.d.ts +5 -0
  368. package/dist/src/nile-icon/icons/svg/format_clear.js +5 -0
  369. package/dist/src/nile-icon/icons/svg/format_clear.js.map +1 -0
  370. package/dist/src/nile-icon/icons/svg/format_italic.d.ts +5 -0
  371. package/dist/src/nile-icon/icons/svg/format_italic.js +5 -0
  372. package/dist/src/nile-icon/icons/svg/format_italic.js.map +1 -0
  373. package/dist/src/nile-icon/icons/svg/format_list_bulleted.d.ts +5 -0
  374. package/dist/src/nile-icon/icons/svg/format_list_bulleted.js +5 -0
  375. package/dist/src/nile-icon/icons/svg/format_list_bulleted.js.map +1 -0
  376. package/dist/src/nile-icon/icons/svg/format_list_numbered.d.ts +5 -0
  377. package/dist/src/nile-icon/icons/svg/format_list_numbered.js +5 -0
  378. package/dist/src/nile-icon/icons/svg/format_list_numbered.js.map +1 -0
  379. package/dist/src/nile-icon/icons/svg/format_underline.d.ts +5 -0
  380. package/dist/src/nile-icon/icons/svg/format_underline.js +5 -0
  381. package/dist/src/nile-icon/icons/svg/format_underline.js.map +1 -0
  382. package/dist/src/nile-icon/icons/svg/image_2.d.ts +5 -0
  383. package/dist/src/nile-icon/icons/svg/image_2.js +5 -0
  384. package/dist/src/nile-icon/icons/svg/image_2.js.map +1 -0
  385. package/dist/src/nile-icon/icons/svg/index.d.ts +12 -0
  386. package/dist/src/nile-icon/icons/svg/index.js +12 -0
  387. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  388. package/dist/src/nile-icon/icons/svg/link_2.d.ts +5 -0
  389. package/dist/src/nile-icon/icons/svg/link_2.js +5 -0
  390. package/dist/src/nile-icon/icons/svg/link_2.js.map +1 -0
  391. package/dist/src/nile-link/nile-link.css.js +1 -0
  392. package/dist/src/nile-link/nile-link.css.js.map +1 -1
  393. package/dist/src/nile-option/nile-option.js +1 -1
  394. package/dist/src/nile-option/nile-option.js.map +1 -1
  395. package/dist/src/nile-rich-text-editor/index.d.ts +1 -0
  396. package/dist/src/nile-rich-text-editor/index.js +2 -0
  397. package/dist/src/nile-rich-text-editor/index.js.map +1 -0
  398. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.d.ts +3 -0
  399. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +152 -0
  400. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -0
  401. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +63 -0
  402. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +735 -0
  403. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -0
  404. package/dist/src/nile-rich-text-editor/nile-rte-color.d.ts +20 -0
  405. package/dist/src/nile-rich-text-editor/nile-rte-color.js +188 -0
  406. package/dist/src/nile-rich-text-editor/nile-rte-color.js.map +1 -0
  407. package/dist/src/nile-rich-text-editor/nile-rte-divider.d.ts +10 -0
  408. package/dist/src/nile-rich-text-editor/nile-rte-divider.js +12 -0
  409. package/dist/src/nile-rich-text-editor/nile-rte-divider.js.map +1 -0
  410. package/dist/src/nile-rich-text-editor/nile-rte-link.d.ts +19 -0
  411. package/dist/src/nile-rich-text-editor/nile-rte-link.js +169 -0
  412. package/dist/src/nile-rich-text-editor/nile-rte-link.js.map +1 -0
  413. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.d.ts +18 -0
  414. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js +53 -0
  415. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js.map +1 -0
  416. package/dist/src/nile-rich-text-editor/nile-rte-mentions.d.ts +64 -0
  417. package/dist/src/nile-rich-text-editor/nile-rte-mentions.js +544 -0
  418. package/dist/src/nile-rich-text-editor/nile-rte-mentions.js.map +1 -0
  419. package/dist/src/nile-rich-text-editor/nile-rte-preview.d.ts +10 -0
  420. package/dist/src/nile-rich-text-editor/nile-rte-preview.js +12 -0
  421. package/dist/src/nile-rich-text-editor/nile-rte-preview.js.map +1 -0
  422. package/dist/src/nile-rich-text-editor/nile-rte-select.d.ts +33 -0
  423. package/dist/src/nile-rich-text-editor/nile-rte-select.js +228 -0
  424. package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -0
  425. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.d.ts +12 -0
  426. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.js +23 -0
  427. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.js.map +1 -0
  428. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.d.ts +10 -0
  429. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.js +12 -0
  430. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.js.map +1 -0
  431. package/dist/src/nile-rich-text-editor/utils.d.ts +13 -0
  432. package/dist/src/nile-rich-text-editor/utils.js +538 -0
  433. package/dist/src/nile-rich-text-editor/utils.js.map +1 -0
  434. package/dist/src/version.js +1 -1
  435. package/dist/src/version.js.map +1 -1
  436. package/dist/tsconfig.tsbuildinfo +1 -1
  437. package/package.json +9 -3
  438. package/rollup.config.js +1 -3
  439. package/src/index.ts +8 -1
  440. package/src/nile-code-editor/backup_nile-code-editor copy.ts +763 -0
  441. package/src/nile-code-editor/nile-code-editor.ts +44 -20
  442. package/src/nile-grid/index.ts +1 -0
  443. package/src/nile-grid/nile-grid.css.ts +43 -0
  444. package/src/nile-grid/nile-grid.ts +185 -0
  445. package/src/nile-grid/nile-grid.utils.ts +252 -0
  446. package/src/nile-grid-body/index.ts +1 -0
  447. package/src/nile-grid-body/nile-grid-body.css.ts +24 -0
  448. package/src/nile-grid-body/nile-grid-body.ts +51 -0
  449. package/src/nile-grid-cell-item/index.ts +1 -0
  450. package/src/nile-grid-cell-item/nile-grid-cell-item.css.ts +49 -0
  451. package/src/nile-grid-cell-item/nile-grid-cell-item.ts +98 -0
  452. package/src/nile-grid-cell-item/nile-grid-cell-item.utils.ts +65 -0
  453. package/src/nile-grid-head/index.ts +1 -0
  454. package/src/nile-grid-head/nile-grid-head.css.ts +21 -0
  455. package/src/nile-grid-head/nile-grid-head.ts +50 -0
  456. package/src/nile-grid-head-item/index.ts +1 -0
  457. package/src/nile-grid-head-item/nile-grid-head-item.css.ts +48 -0
  458. package/src/nile-grid-head-item/nile-grid-head-item.ts +111 -0
  459. package/src/nile-grid-head-item/nile-grid-head-item.utils.ts +66 -0
  460. package/src/nile-grid-row/index.ts +1 -0
  461. package/src/nile-grid-row/nile-grid-row.css.ts +29 -0
  462. package/src/nile-grid-row/nile-grid-row.ts +53 -0
  463. package/src/nile-icon/icons/svg/format_align_justify.ts +5 -0
  464. package/src/nile-icon/icons/svg/format_align_left.ts +5 -0
  465. package/src/nile-icon/icons/svg/format_align_middle.ts +5 -0
  466. package/src/nile-icon/icons/svg/format_align_right.ts +5 -0
  467. package/src/nile-icon/icons/svg/format_bold.ts +5 -0
  468. package/src/nile-icon/icons/svg/format_clear.ts +5 -0
  469. package/src/nile-icon/icons/svg/format_italic.ts +5 -0
  470. package/src/nile-icon/icons/svg/format_list_bulleted.ts +5 -0
  471. package/src/nile-icon/icons/svg/format_list_numbered.ts +5 -0
  472. package/src/nile-icon/icons/svg/format_underline.ts +5 -0
  473. package/src/nile-icon/icons/svg/image_2.ts +5 -0
  474. package/src/nile-icon/icons/svg/index.ts +12 -0
  475. package/src/nile-icon/icons/svg/link_2.ts +5 -0
  476. package/src/nile-link/nile-link.css.ts +1 -0
  477. package/src/nile-option/nile-option.ts +1 -1
  478. package/src/nile-rich-text-editor/index.ts +1 -0
  479. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +154 -0
  480. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +836 -0
  481. package/src/nile-rich-text-editor/nile-rte-color.ts +189 -0
  482. package/src/nile-rich-text-editor/nile-rte-divider.ts +9 -0
  483. package/src/nile-rich-text-editor/nile-rte-link.ts +161 -0
  484. package/src/nile-rich-text-editor/nile-rte-mentions-item.ts +46 -0
  485. package/src/nile-rich-text-editor/nile-rte-mentions.ts +618 -0
  486. package/src/nile-rich-text-editor/nile-rte-preview.ts +9 -0
  487. package/src/nile-rich-text-editor/nile-rte-select.ts +249 -0
  488. package/src/nile-rich-text-editor/nile-rte-toolbar-item.ts +13 -0
  489. package/src/nile-rich-text-editor/nile-rte-toolbar.ts +9 -0
  490. package/src/nile-rich-text-editor/utils.ts +643 -0
  491. package/vscode-html-custom-data.json +309 -7
@@ -1 +1 @@
1
- {"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isServer as s}from\"lit-html/is-server.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class t{constructor(t,{target:i,config:h,callback:e,skipInitial:o}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==i&&this.t.add(i??t),this.l=h,this.o=o??this.o,this.callback=e,s||(window.ResizeObserver?(this.u=new ResizeObserver((s=>{this.handleChanges(s),this.h.requestUpdate()})),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(s){this.value=this.callback?.(s,this.u)}hostConnected(){for(const s of this.t)this.observe(s)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(s){this.t.add(s),this.u.observe(s,this.l),this.i=!0,this.h.requestUpdate()}unobserve(s){this.t.delete(s),this.u.unobserve(s)}disconnect(){this.u.disconnect()}}export{t as ResizeController};\n//# sourceMappingURL=resize-controller.js.map\n","/**\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 '../nile-loader/nile-loader';\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';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.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 /** Enable automatic resizing of tags area */\n @property({ type: Boolean }) autoResize = false;\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 /** Show loading state using nile-loader */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = 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 @state() showListbox: boolean = false;\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 if (changedProperties.has('autoResize')) {\n const tagsDiv = this.shadowRoot?.querySelector('.select__tags') as HTMLElement;\n if (this.autoResize && tagsDiv) {\n this.resizeController.observe(tagsDiv);\n } else if (tagsDiv) {\n this.resizeController.unobserve(tagsDiv);\n }\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 this.handleWindowError = this.handleWindowError.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 window.addEventListener('error', this.handleWindowError);\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 window.removeEventListener('error', this.handleWindowError);\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 /**\n * This is a workaround for an error in the Lit Labs virtualizer.\n * Since there are no specific guidelines available to fix the issue,\n * we are catching only the error message related to the virtualizer.\n */\n private handleWindowError = (event: ErrorEvent): void => {\n const errorMessage = event.error?.message || event.message || '';\n if (errorMessage.includes('Cannot read properties of null (reading \\'insertBefore\\')')) {\n event.preventDefault();\n return;\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 const itemValue = this.getItemValue(item);\n return selectedValues.some(val => String(val) === String(itemValue));\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 resizeController = new ResizeController(this, {\n callback: (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.target.classList.contains('select__tags')) {\n this.calculateTotalWidthOfTags();\n }\n }\n }\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\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 this.updateComplete.then(() => {\n const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;\n if (virtualized) {\n if (this.data.length <= 5) {\n virtualized.classList.add('no-scroll');\n } else {\n virtualized.classList.remove('no-scroll');\n }\n }\n });\n }\n }\n\n handleScroll(e: Event): void {\n if(this.showSelected) {\n return;\n }\n\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 && !this.searchValue) {\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 && !this.showSelected && !this.searchValue) {\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.loading && 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 this.showListbox = true;\n } else {\n await this.handleClose();\n this.showListbox = false;\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.showListbox ? this.renderListbox() : html``}\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 if (this.loading) {\n return html`\n <span part=\"loader\" class=\"virtual-select-loader\">\n <nile-loader size=\"sm\"></nile-loader>\n </span>\n `;\n }\n \n if (this.optionsLoading) {\n return 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 }\n \n return html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer ${this.loading ? 'loading' : ''}\"\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 || this.loading,\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 && this.virtualizedContainer.isConnected) {\n this.virtualizedContainer.scrollTop = 0;\n \n const listbox = this.shadowRoot?.querySelector('.select__listbox') as HTMLElement;\n if (listbox && listbox.isConnected) {\n listbox.scrollTop = 0;\n }\n \n const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer') as HTMLElement;\n if (virtualizer && virtualizer.isConnected) {\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":["t","x","target","o","i","h","config","e","callback","skipInitial","this","Set","add","l","window","ResizeObserver","u","s","handleChanges","requestUpdate","addController","console","warn","_createClass","key","value","hostConnected","_iterator","_createForOfIteratorHelper","_step","n","done","observe","err","f","hostDisconnected","disconnect","_hostUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","stop","hostUpdated","unobserve","delete","_export","NileVirtualSelect","_","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","size","placeholder","autoResize","searchValue","searchEnabled","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","loading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","maxOptionsVisible","oldMaxOptionsVisible","showListbox","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hide","handleWindowError","message","preventDefault","resizeController","ResizeController","entries","_iterator2","_step2","entry","classList","contains","calculateTotalWidthOfTags","_this2","_inherits","_u","get","validity","_this$valueInput","valueInput","validationMessage","_this$valueInput$vali","_this$valueInput2","connectedCallback","super","initializeComponent","setupEventListeners","updateComplete","then","length","selectionChanged","disconnectedCallback","removeOpenListeners","scrollTimeout","clearTimeout","undefined","updated","changedProperties","has","_this$shadowRoot","tagsDiv","shadowRoot","querySelector","emit","getDisplayText","item","renderItemConfig","toString","getItemValue","getValue","getSearchText","_this$renderItemConfi3","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","_this4","selectedValues","Array","isArray","filter","itemValue","some","val","String","_toConsumableArray","resetScrollPosition","unSelectAll","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","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","handleSearchFocus","handleSearchBlur","handleSearchChange","detail","query","filterVirtualOptions","_this8$shadowRoot","virtualized","remove","handleScroll","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","result","VirtualSelectSearchManager","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","_handleOpenChange","_callee2","_callee2$","_context3","handleOpen","handleClose","_callee3","_this$data","_m","_callee3$","_context4","stopAnimations","active","getAnimation","dir","keyframes","options","animateTo","initializeOriginalItems","_callee4","_m2","_callee4$","_context5","_show","_callee5","_callee5$","_context6","waitForEvent","_callee6","_callee6$","_context7","abrupt","checkValidity","getForm","reportValidity","setCustomValidity","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","_templateObject9","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject10","select__prefix","_templateObject11","_templateObject12","map","index","classes","select__invisible","Infinity","_templateObject13","_templateObject14","_templateObject15","_templateObject16","join","_templateObject17","_templateObject18","_templateObject19","select__suffix","_templateObject20","_templateObject21","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","_templateObject32","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","virtualizedContainer","isConnected","_this14$shadowRoot","listbox","virtualizer","NileElement","styles","__decorate","prototype","state","property","type","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isServer as s}from\"lit-html/is-server.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class t{constructor(t,{target:i,config:h,callback:e,skipInitial:o}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==i&&this.t.add(i??t),this.l=h,this.o=o??this.o,this.callback=e,s||(window.ResizeObserver?(this.u=new ResizeObserver((s=>{this.handleChanges(s),this.h.requestUpdate()})),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(s){this.value=this.callback?.(s,this.u)}hostConnected(){for(const s of this.t)this.observe(s)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(s){this.t.add(s),this.u.observe(s,this.l),this.i=!0,this.h.requestUpdate()}unobserve(s){this.t.delete(s),this.u.unobserve(s)}disconnect(){this.u.disconnect()}}export{t as ResizeController};\n//# sourceMappingURL=resize-controller.js.map\n","/**\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 '../nile-loader/nile-loader';\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';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.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 /** Enable automatic resizing of tags area */\n @property({ type: Boolean }) autoResize = false;\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 /** Show loading state using nile-loader */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = 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 @state() showListbox: boolean = false;\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 if (changedProperties.has('autoResize')) {\n const tagsDiv = this.shadowRoot?.querySelector('.select__tags') as HTMLElement;\n if (this.autoResize && tagsDiv) {\n this.resizeController.observe(tagsDiv);\n } else if (tagsDiv) {\n this.resizeController.unobserve(tagsDiv);\n }\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 this.handleWindowError = this.handleWindowError.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 window.addEventListener('error', this.handleWindowError);\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 window.removeEventListener('error', this.handleWindowError);\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 /**\n * This is a workaround for an error in the Lit Labs virtualizer.\n * Since there are no specific guidelines available to fix the issue,\n * we are catching only the error message related to the virtualizer.\n */\n private handleWindowError = (event: ErrorEvent): void => {\n const errorMessage = event.error?.message || event.message || '';\n if (errorMessage.includes('Cannot read properties of null (reading \\'insertBefore\\')')) {\n event.preventDefault();\n return;\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 const itemValue = this.getItemValue(item);\n return selectedValues.some(val => String(val) === String(itemValue));\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 resizeController = new ResizeController(this, {\n callback: (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.target.classList.contains('select__tags')) {\n this.calculateTotalWidthOfTags();\n }\n }\n }\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\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 this.updateComplete.then(() => {\n const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;\n if (virtualized) {\n if (this.data.length <= 5) {\n virtualized.classList.add('no-scroll');\n } else {\n virtualized.classList.remove('no-scroll');\n }\n }\n });\n }\n }\n\n handleScroll(e: Event): void {\n if(this.showSelected) {\n return;\n }\n\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 && !this.searchValue) {\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 && !this.showSelected && !this.searchValue) {\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.loading && 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 this.showListbox = true;\n } else {\n await this.handleClose();\n this.showListbox = false;\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.showListbox ? this.renderListbox() : html``}\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 if (this.loading) {\n return html`\n <span part=\"loader\" class=\"virtual-select-loader\">\n <nile-loader size=\"sm\"></nile-loader>\n </span>\n `;\n }\n \n if (this.optionsLoading) {\n return 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 }\n \n return html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer ${this.loading ? 'loading' : ''}\"\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 || this.loading,\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 && this.virtualizedContainer.isConnected) {\n this.virtualizedContainer.scrollTop = 0;\n \n const listbox = this.shadowRoot?.querySelector('.select__listbox') as HTMLElement;\n if (listbox && listbox.isConnected) {\n listbox.scrollTop = 0;\n }\n \n const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer') as HTMLElement;\n if (virtualizer && virtualizer.isConnected) {\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":["t","_","target","o","i","h","config","e","callback","skipInitial","this","Set","add","l","window","ResizeObserver","u","s","handleChanges","requestUpdate","addController","console","warn","_createClass","key","value","hostConnected","_iterator","_createForOfIteratorHelper","_step","n","done","observe","err","f","hostDisconnected","disconnect","_hostUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","stop","hostUpdated","unobserve","delete","_export","NileVirtualSelect","x","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","size","placeholder","autoResize","searchValue","searchEnabled","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","loading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","maxOptionsVisible","oldMaxOptionsVisible","showListbox","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hide","handleWindowError","message","preventDefault","resizeController","ResizeController","entries","_iterator2","_step2","entry","classList","contains","calculateTotalWidthOfTags","_this2","_inherits","_u","get","validity","_this$valueInput","valueInput","validationMessage","_this$valueInput$vali","_this$valueInput2","connectedCallback","super","initializeComponent","setupEventListeners","updateComplete","then","length","selectionChanged","disconnectedCallback","removeOpenListeners","scrollTimeout","clearTimeout","undefined","updated","changedProperties","has","_this$shadowRoot","tagsDiv","shadowRoot","querySelector","emit","getDisplayText","item","renderItemConfig","toString","getItemValue","getValue","getSearchText","_this$renderItemConfi3","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","_this4","selectedValues","Array","isArray","filter","itemValue","some","val","String","_toConsumableArray","resetScrollPosition","unSelectAll","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","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","handleSearchFocus","handleSearchBlur","handleSearchChange","detail","query","filterVirtualOptions","_this8$shadowRoot","virtualized","remove","handleScroll","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","result","VirtualSelectSearchManager","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","_handleOpenChange","_callee2","_callee2$","_context3","handleOpen","handleClose","_callee3","_this$data","_h","_callee3$","_context4","stopAnimations","active","getAnimation","dir","keyframes","options","animateTo","initializeOriginalItems","_callee4","_h2","_callee4$","_context5","_show","_callee5","_callee5$","_context6","waitForEvent","_callee6","_callee6$","_context7","abrupt","checkValidity","getForm","reportValidity","setCustomValidity","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","_templateObject9","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject10","select__prefix","_templateObject11","_templateObject12","map","index","classes","select__invisible","Infinity","_templateObject13","_templateObject14","_templateObject15","_templateObject16","join","_templateObject17","_templateObject18","_templateObject19","select__suffix","_templateObject20","_templateObject21","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","_templateObject32","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","virtualizedContainer","isConnected","_this14$shadowRoot","listbox","virtualizer","NileElement","styles","__decorate","prototype","state","property","type","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0]}