@aquera/nile-elements 0.1.46 → 0.1.47-beta-1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/README.md +6 -3
  2. package/demo/index.html +50 -34
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/internal/form.cjs.js +1 -1
  6. package/dist/internal/form.cjs.js.map +1 -1
  7. package/dist/internal/form.esm.js +1 -1
  8. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  9. package/dist/nile-auto-complete/index.cjs.js +1 -1
  10. package/dist/nile-auto-complete/index.esm.js +1 -1
  11. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -17
  12. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  13. package/dist/nile-auto-complete/nile-auto-complete.esm.js +8 -29
  14. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  15. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +1 -1
  16. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  17. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  18. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  19. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  20. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  21. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  22. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  23. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  24. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  25. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  26. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  27. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  28. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  29. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  30. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  31. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  32. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  33. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  34. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  35. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  36. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  37. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  38. package/dist/nile-icon/icons/svg/agent.cjs.js +1 -1
  39. package/dist/nile-icon/icons/svg/agent.cjs.js.map +1 -1
  40. package/dist/nile-icon/icons/svg/agent.esm.js +1 -1
  41. package/dist/nile-icon/icons/svg/api.cjs.js +1 -1
  42. package/dist/nile-icon/icons/svg/api.cjs.js.map +1 -1
  43. package/dist/nile-icon/icons/svg/api.esm.js +1 -1
  44. package/dist/nile-icon/icons/svg/apply-filter.cjs.js +1 -1
  45. package/dist/nile-icon/icons/svg/apply-filter.cjs.js.map +1 -1
  46. package/dist/nile-icon/icons/svg/apply-filter.esm.js +1 -1
  47. package/dist/nile-icon/icons/svg/arrowdropdown.cjs.js +1 -1
  48. package/dist/nile-icon/icons/svg/arrowdropdown.cjs.js.map +1 -1
  49. package/dist/nile-icon/icons/svg/arrowdropdown.esm.js +1 -1
  50. package/dist/nile-icon/icons/svg/arrowdropup.cjs.js +1 -1
  51. package/dist/nile-icon/icons/svg/arrowdropup.cjs.js.map +1 -1
  52. package/dist/nile-icon/icons/svg/arrowdropup.esm.js +1 -1
  53. package/dist/nile-icon/icons/svg/database.cjs.js +1 -1
  54. package/dist/nile-icon/icons/svg/database.cjs.js.map +1 -1
  55. package/dist/nile-icon/icons/svg/database.esm.js +1 -1
  56. package/dist/nile-icon/icons/svg/done.cjs.js +1 -1
  57. package/dist/nile-icon/icons/svg/done.cjs.js.map +1 -1
  58. package/dist/nile-icon/icons/svg/done.esm.js +1 -1
  59. package/dist/nile-icon/icons/svg/dontmap.cjs.js +1 -1
  60. package/dist/nile-icon/icons/svg/dontmap.cjs.js.map +1 -1
  61. package/dist/nile-icon/icons/svg/dontmap.esm.js +1 -1
  62. package/dist/nile-icon/icons/svg/doublearrowleft.cjs.js +1 -1
  63. package/dist/nile-icon/icons/svg/doublearrowleft.cjs.js.map +1 -1
  64. package/dist/nile-icon/icons/svg/doublearrowleft.esm.js +1 -1
  65. package/dist/nile-icon/icons/svg/doublearrowright.cjs.js +1 -1
  66. package/dist/nile-icon/icons/svg/doublearrowright.cjs.js.map +1 -1
  67. package/dist/nile-icon/icons/svg/doublearrowright.esm.js +1 -1
  68. package/dist/nile-icon/icons/svg/drag.cjs.js +1 -1
  69. package/dist/nile-icon/icons/svg/drag.cjs.js.map +1 -1
  70. package/dist/nile-icon/icons/svg/drag.esm.js +1 -1
  71. package/dist/nile-icon/icons/svg/expand-06.cjs.js +1 -1
  72. package/dist/nile-icon/icons/svg/expand-06.cjs.js.map +1 -1
  73. package/dist/nile-icon/icons/svg/expand-06.esm.js +1 -1
  74. package/dist/nile-icon/icons/svg/expand.cjs.js +1 -1
  75. package/dist/nile-icon/icons/svg/expand.cjs.js.map +1 -1
  76. package/dist/nile-icon/icons/svg/expand.esm.js +1 -1
  77. package/dist/nile-icon/icons/svg/integer.cjs.js +1 -1
  78. package/dist/nile-icon/icons/svg/integer.cjs.js.map +1 -1
  79. package/dist/nile-icon/icons/svg/integer.esm.js +1 -1
  80. package/dist/nile-icon/icons/svg/pluscircle.cjs.js +1 -1
  81. package/dist/nile-icon/icons/svg/pluscircle.cjs.js.map +1 -1
  82. package/dist/nile-icon/icons/svg/pluscircle.esm.js +1 -1
  83. package/dist/nile-icon/icons/svg/question.cjs.js +1 -1
  84. package/dist/nile-icon/icons/svg/question.cjs.js.map +1 -1
  85. package/dist/nile-icon/icons/svg/question.esm.js +1 -1
  86. package/dist/nile-icon/icons/svg/resource.cjs.js +1 -1
  87. package/dist/nile-icon/icons/svg/resource.cjs.js.map +1 -1
  88. package/dist/nile-icon/icons/svg/resource.esm.js +1 -1
  89. package/dist/nile-icon/icons/svg/sendescalation.cjs.js +1 -1
  90. package/dist/nile-icon/icons/svg/sendescalation.cjs.js.map +1 -1
  91. package/dist/nile-icon/icons/svg/sendescalation.esm.js +1 -1
  92. package/dist/nile-icon/icons/svg/sendreminder.cjs.js +1 -1
  93. package/dist/nile-icon/icons/svg/sendreminder.cjs.js.map +1 -1
  94. package/dist/nile-icon/icons/svg/sendreminder.esm.js +1 -1
  95. package/dist/nile-icon/icons/svg/timezone.cjs.js +1 -1
  96. package/dist/nile-icon/icons/svg/timezone.cjs.js.map +1 -1
  97. package/dist/nile-icon/icons/svg/timezone.esm.js +1 -1
  98. package/dist/nile-icon/icons/svg/unmute.cjs.js +1 -1
  99. package/dist/nile-icon/icons/svg/unmute.cjs.js.map +1 -1
  100. package/dist/nile-icon/icons/svg/unmute.esm.js +1 -1
  101. package/dist/nile-icon/icons/svg/upgrade.cjs.js +1 -1
  102. package/dist/nile-icon/icons/svg/upgrade.cjs.js.map +1 -1
  103. package/dist/nile-icon/icons/svg/upgrade.esm.js +1 -1
  104. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  105. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  106. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  107. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  108. package/dist/nile-option/nile-option.cjs.js +1 -1
  109. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  110. package/dist/nile-option/nile-option.css.cjs.js +1 -1
  111. package/dist/nile-option/nile-option.css.cjs.js.map +1 -1
  112. package/dist/nile-option/nile-option.css.esm.js +1 -1
  113. package/dist/nile-option/nile-option.esm.js +2 -2
  114. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  115. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  116. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  117. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  118. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  119. package/dist/nile-select/index.cjs.js +1 -1
  120. package/dist/nile-select/index.esm.js +1 -1
  121. package/dist/nile-select/nile-select.cjs.js +1 -1
  122. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  123. package/dist/nile-select/nile-select.esm.js +2 -2
  124. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  125. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  126. package/dist/nile-select/nile-select.test.esm.js +2 -2
  127. package/dist/nile-select/virtual-scroll-helper.cjs.js +2 -0
  128. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -0
  129. package/dist/nile-select/virtual-scroll-helper.esm.js +37 -0
  130. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  131. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  132. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  133. package/dist/nile-virtual-select/index.cjs.js +2 -0
  134. package/dist/nile-virtual-select/index.cjs.js.map +1 -0
  135. package/dist/nile-virtual-select/index.esm.js +1 -0
  136. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -0
  137. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -0
  138. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +2 -0
  139. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -0
  140. package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +468 -0
  141. package/dist/nile-virtual-select/nile-virtual-select.esm.js +227 -0
  142. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +2 -0
  143. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +1 -0
  144. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +49 -0
  145. package/dist/nile-virtual-select/renderer.cjs.js +2 -0
  146. package/dist/nile-virtual-select/renderer.cjs.js.map +1 -0
  147. package/dist/nile-virtual-select/renderer.esm.js +16 -0
  148. package/dist/nile-virtual-select/search-manager.cjs.js +2 -0
  149. package/dist/nile-virtual-select/search-manager.cjs.js.map +1 -0
  150. package/dist/nile-virtual-select/search-manager.esm.js +1 -0
  151. package/dist/nile-virtual-select/selection-manager.cjs.js +2 -0
  152. package/dist/nile-virtual-select/selection-manager.cjs.js.map +1 -0
  153. package/dist/nile-virtual-select/selection-manager.esm.js +1 -0
  154. package/dist/nile-virtual-select/types.cjs.js +2 -0
  155. package/dist/nile-virtual-select/types.cjs.js.map +1 -0
  156. package/dist/nile-virtual-select/types.esm.js +1 -0
  157. package/dist/src/index.d.ts +1 -0
  158. package/dist/src/index.js +1 -0
  159. package/dist/src/index.js.map +1 -1
  160. package/dist/src/internal/form.js +2 -2
  161. package/dist/src/internal/form.js.map +1 -1
  162. package/dist/src/nile-icon/icons/svg/agent.d.ts +1 -1
  163. package/dist/src/nile-icon/icons/svg/agent.js +1 -1
  164. package/dist/src/nile-icon/icons/svg/agent.js.map +1 -1
  165. package/dist/src/nile-icon/icons/svg/api.d.ts +1 -1
  166. package/dist/src/nile-icon/icons/svg/api.js +1 -1
  167. package/dist/src/nile-icon/icons/svg/api.js.map +1 -1
  168. package/dist/src/nile-icon/icons/svg/apply-filter.d.ts +1 -1
  169. package/dist/src/nile-icon/icons/svg/apply-filter.js +1 -1
  170. package/dist/src/nile-icon/icons/svg/apply-filter.js.map +1 -1
  171. package/dist/src/nile-icon/icons/svg/arrowdropdown.d.ts +1 -1
  172. package/dist/src/nile-icon/icons/svg/arrowdropdown.js +1 -1
  173. package/dist/src/nile-icon/icons/svg/arrowdropdown.js.map +1 -1
  174. package/dist/src/nile-icon/icons/svg/arrowdropup.d.ts +1 -1
  175. package/dist/src/nile-icon/icons/svg/arrowdropup.js +1 -1
  176. package/dist/src/nile-icon/icons/svg/arrowdropup.js.map +1 -1
  177. package/dist/src/nile-icon/icons/svg/database.d.ts +1 -1
  178. package/dist/src/nile-icon/icons/svg/database.js +1 -1
  179. package/dist/src/nile-icon/icons/svg/database.js.map +1 -1
  180. package/dist/src/nile-icon/icons/svg/done.d.ts +1 -1
  181. package/dist/src/nile-icon/icons/svg/done.js +1 -1
  182. package/dist/src/nile-icon/icons/svg/done.js.map +1 -1
  183. package/dist/src/nile-icon/icons/svg/dontmap.d.ts +1 -1
  184. package/dist/src/nile-icon/icons/svg/dontmap.js +1 -1
  185. package/dist/src/nile-icon/icons/svg/dontmap.js.map +1 -1
  186. package/dist/src/nile-icon/icons/svg/doublearrowleft.d.ts +1 -1
  187. package/dist/src/nile-icon/icons/svg/doublearrowleft.js +1 -1
  188. package/dist/src/nile-icon/icons/svg/doublearrowleft.js.map +1 -1
  189. package/dist/src/nile-icon/icons/svg/doublearrowright.d.ts +1 -1
  190. package/dist/src/nile-icon/icons/svg/doublearrowright.js +1 -1
  191. package/dist/src/nile-icon/icons/svg/doublearrowright.js.map +1 -1
  192. package/dist/src/nile-icon/icons/svg/drag.d.ts +1 -1
  193. package/dist/src/nile-icon/icons/svg/drag.js +1 -1
  194. package/dist/src/nile-icon/icons/svg/drag.js.map +1 -1
  195. package/dist/src/nile-icon/icons/svg/expand-06.d.ts +1 -1
  196. package/dist/src/nile-icon/icons/svg/expand-06.js +1 -1
  197. package/dist/src/nile-icon/icons/svg/expand-06.js.map +1 -1
  198. package/dist/src/nile-icon/icons/svg/expand.d.ts +1 -1
  199. package/dist/src/nile-icon/icons/svg/expand.js +1 -1
  200. package/dist/src/nile-icon/icons/svg/expand.js.map +1 -1
  201. package/dist/src/nile-icon/icons/svg/integer.d.ts +1 -1
  202. package/dist/src/nile-icon/icons/svg/integer.js +1 -1
  203. package/dist/src/nile-icon/icons/svg/integer.js.map +1 -1
  204. package/dist/src/nile-icon/icons/svg/pluscircle.d.ts +1 -1
  205. package/dist/src/nile-icon/icons/svg/pluscircle.js +1 -1
  206. package/dist/src/nile-icon/icons/svg/pluscircle.js.map +1 -1
  207. package/dist/src/nile-icon/icons/svg/question.d.ts +1 -1
  208. package/dist/src/nile-icon/icons/svg/question.js +1 -1
  209. package/dist/src/nile-icon/icons/svg/question.js.map +1 -1
  210. package/dist/src/nile-icon/icons/svg/resource.d.ts +1 -1
  211. package/dist/src/nile-icon/icons/svg/resource.js +1 -1
  212. package/dist/src/nile-icon/icons/svg/resource.js.map +1 -1
  213. package/dist/src/nile-icon/icons/svg/sendescalation.d.ts +1 -1
  214. package/dist/src/nile-icon/icons/svg/sendescalation.js +1 -1
  215. package/dist/src/nile-icon/icons/svg/sendescalation.js.map +1 -1
  216. package/dist/src/nile-icon/icons/svg/sendreminder.d.ts +1 -1
  217. package/dist/src/nile-icon/icons/svg/sendreminder.js +1 -1
  218. package/dist/src/nile-icon/icons/svg/sendreminder.js.map +1 -1
  219. package/dist/src/nile-icon/icons/svg/timezone.d.ts +1 -1
  220. package/dist/src/nile-icon/icons/svg/timezone.js +1 -1
  221. package/dist/src/nile-icon/icons/svg/timezone.js.map +1 -1
  222. package/dist/src/nile-icon/icons/svg/unmute.d.ts +1 -1
  223. package/dist/src/nile-icon/icons/svg/unmute.js +1 -1
  224. package/dist/src/nile-icon/icons/svg/unmute.js.map +1 -1
  225. package/dist/src/nile-icon/icons/svg/upgrade.d.ts +1 -1
  226. package/dist/src/nile-icon/icons/svg/upgrade.js +1 -1
  227. package/dist/src/nile-icon/icons/svg/upgrade.js.map +1 -1
  228. package/dist/src/nile-option/nile-option.css.js +1 -1
  229. package/dist/src/nile-option/nile-option.css.js.map +1 -1
  230. package/dist/src/nile-option/nile-option.d.ts +5 -1
  231. package/dist/src/nile-option/nile-option.js +21 -6
  232. package/dist/src/nile-option/nile-option.js.map +1 -1
  233. package/dist/src/nile-select/nile-select.d.ts +9 -2
  234. package/dist/src/nile-select/nile-select.js +38 -18
  235. package/dist/src/nile-select/nile-select.js.map +1 -1
  236. package/dist/src/nile-select/virtual-scroll-helper.d.ts +9 -0
  237. package/dist/src/nile-select/virtual-scroll-helper.js +50 -0
  238. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -0
  239. package/dist/src/nile-virtual-select/index.d.ts +1 -0
  240. package/dist/src/nile-virtual-select/index.js +2 -0
  241. package/dist/src/nile-virtual-select/index.js.map +1 -0
  242. package/dist/src/nile-virtual-select/nile-virtual-select.css.d.ts +12 -0
  243. package/dist/src/nile-virtual-select/nile-virtual-select.css.js +480 -0
  244. package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -0
  245. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +251 -0
  246. package/dist/src/nile-virtual-select/nile-virtual-select.js +1159 -0
  247. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -0
  248. package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +7 -0
  249. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +317 -0
  250. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -0
  251. package/dist/src/nile-virtual-select/renderer.d.ts +11 -0
  252. package/dist/src/nile-virtual-select/renderer.js +45 -0
  253. package/dist/src/nile-virtual-select/renderer.js.map +1 -0
  254. package/dist/src/nile-virtual-select/search-manager.d.ts +12 -0
  255. package/dist/src/nile-virtual-select/search-manager.js +39 -0
  256. package/dist/src/nile-virtual-select/search-manager.js.map +1 -0
  257. package/dist/src/nile-virtual-select/selection-manager.d.ts +12 -0
  258. package/dist/src/nile-virtual-select/selection-manager.js +49 -0
  259. package/dist/src/nile-virtual-select/selection-manager.js.map +1 -0
  260. package/dist/src/nile-virtual-select/types.d.ts +45 -0
  261. package/dist/src/nile-virtual-select/types.js +8 -0
  262. package/dist/src/nile-virtual-select/types.js.map +1 -0
  263. package/dist/tsconfig.tsbuildinfo +1 -1
  264. package/dist/virtualize-a4a40d96.esm.js +22 -0
  265. package/dist/virtualize-b6a2fbe0.cjs.js +18 -0
  266. package/dist/virtualize-b6a2fbe0.cjs.js.map +1 -0
  267. package/package.json +1 -2
  268. package/src/index.ts +3 -1
  269. package/src/internal/form.ts +2 -2
  270. package/src/nile-icon/icons/svg/agent.ts +1 -1
  271. package/src/nile-icon/icons/svg/api.ts +1 -1
  272. package/src/nile-icon/icons/svg/apply-filter.ts +1 -1
  273. package/src/nile-icon/icons/svg/arrowdropdown.ts +1 -1
  274. package/src/nile-icon/icons/svg/arrowdropup.ts +1 -1
  275. package/src/nile-icon/icons/svg/database.ts +1 -1
  276. package/src/nile-icon/icons/svg/done.ts +1 -1
  277. package/src/nile-icon/icons/svg/dontmap.ts +1 -1
  278. package/src/nile-icon/icons/svg/doublearrowleft.ts +1 -1
  279. package/src/nile-icon/icons/svg/doublearrowright.ts +1 -1
  280. package/src/nile-icon/icons/svg/drag.ts +1 -1
  281. package/src/nile-icon/icons/svg/expand-06.ts +1 -1
  282. package/src/nile-icon/icons/svg/expand.ts +1 -1
  283. package/src/nile-icon/icons/svg/integer.ts +1 -1
  284. package/src/nile-icon/icons/svg/pluscircle.ts +1 -1
  285. package/src/nile-icon/icons/svg/question.ts +1 -1
  286. package/src/nile-icon/icons/svg/resource.ts +1 -1
  287. package/src/nile-icon/icons/svg/sendescalation.ts +1 -1
  288. package/src/nile-icon/icons/svg/sendreminder.ts +1 -1
  289. package/src/nile-icon/icons/svg/timezone.ts +1 -1
  290. package/src/nile-icon/icons/svg/unmute.ts +1 -1
  291. package/src/nile-icon/icons/svg/upgrade.ts +1 -1
  292. package/src/nile-option/nile-option.css.ts +1 -1
  293. package/src/nile-option/nile-option.ts +17 -3
  294. package/src/nile-select/nile-select.ts +33 -9
  295. package/src/nile-select/virtual-scroll-helper.ts +55 -0
  296. package/src/nile-virtual-select/index.ts +1 -0
  297. package/src/nile-virtual-select/nile-virtual-select.css.ts +482 -0
  298. package/src/nile-virtual-select/nile-virtual-select.test.ts +390 -0
  299. package/src/nile-virtual-select/nile-virtual-select.ts +1235 -0
  300. package/src/nile-virtual-select/renderer.ts +62 -0
  301. package/src/nile-virtual-select/search-manager.ts +48 -0
  302. package/src/nile-virtual-select/selection-manager.ts +56 -0
  303. package/src/nile-virtual-select/types.ts +48 -0
  304. package/vscode-html-custom-data.json +229 -2
@@ -0,0 +1,390 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { expect, fixture, html } from '@open-wc/testing';
9
+ import type NileVirtualSelect from './nile-virtual-select';
10
+
11
+ describe('<nile-virtual-select>', () => {
12
+ describe('maxOptionsVisible functionality', () => {
13
+ it('should show "+n More" when more options are selected than maxOptionsVisible', async () => {
14
+ const el = await fixture<NileVirtualSelect>(html`
15
+ <nile-virtual-select multiple max-options-visible="2">
16
+ <div slot="label">Test Select</div>
17
+ </nile-virtual-select>
18
+ `);
19
+
20
+ // Set up test data
21
+ el.allOptionItems = [
22
+ { value: 'option-1', label: 'Option 1' },
23
+ { value: 'option-2', label: 'Option 2' },
24
+ { value: 'option-3', label: 'Option 3' },
25
+ { value: 'option-4', label: 'Option 4' }
26
+ ];
27
+ el.renderItemFunction = (item: any) => item.label;
28
+
29
+ // Set multiple values
30
+ el.value = ['option-1', 'option-2', 'option-3'];
31
+
32
+ await el.updateComplete;
33
+
34
+ // Check that the tags count element exists
35
+ const tagsCount = el.shadowRoot?.querySelector('.select__tags-count');
36
+ expect(tagsCount).to.exist;
37
+ expect(tagsCount?.textContent?.trim()).to.equal('+1 More');
38
+ });
39
+
40
+ it('should not show "+n More" when selected options are within maxOptionsVisible limit', async () => {
41
+ const el = await fixture<NileVirtualSelect>(html`
42
+ <nile-virtual-select multiple max-options-visible="3">
43
+ <div slot="label">Test Select</div>
44
+ </nile-virtual-select>
45
+ `);
46
+
47
+ // Set up test data
48
+ el.allOptionItems = [
49
+ { value: 'option-1', label: 'Option 1' },
50
+ { value: 'option-2', label: 'Option 2' },
51
+ { value: 'option-3', label: 'Option 3' }
52
+ ];
53
+ el.renderItemFunction = (item: any) => item.label;
54
+
55
+ // Set values within limit
56
+ el.value = ['option-1', 'option-2'];
57
+
58
+ await el.updateComplete;
59
+
60
+ // Check that the tags count element does not exist
61
+ const tagsCount = el.shadowRoot?.querySelector('.select__tags-count');
62
+ expect(tagsCount).to.not.exist;
63
+ });
64
+
65
+ it('should show all tags when maxOptionsVisible is 0', async () => {
66
+ const el = await fixture<NileVirtualSelect>(html`
67
+ <nile-virtual-select multiple max-options-visible="0">
68
+ <div slot="label">Test Select</div>
69
+ </nile-virtual-select>
70
+ `);
71
+
72
+ // Set up test data
73
+ el.allOptionItems = [
74
+ { value: 'option-1', label: 'Option 1' },
75
+ { value: 'option-2', label: 'Option 2' },
76
+ { value: 'option-3', label: 'Option 3' },
77
+ { value: 'option-4', label: 'Option 4' }
78
+ ];
79
+ el.renderItemFunction = (item: any) => item.label;
80
+
81
+ // Set multiple values
82
+ el.value = ['option-1', 'option-2', 'option-3', 'option-4'];
83
+
84
+ await el.updateComplete;
85
+
86
+ // Check that the tags count element does not exist
87
+ const tagsCount = el.shadowRoot?.querySelector('.select__tags-count');
88
+ expect(tagsCount).to.not.exist;
89
+
90
+ // Check that all tags are rendered
91
+ const tags = el.shadowRoot?.querySelectorAll('nile-tag');
92
+ expect(tags?.length).to.equal(4);
93
+ });
94
+ });
95
+
96
+ describe('option width functionality', () => {
97
+ it('should render options with full width', async () => {
98
+ const el = await fixture<NileVirtualSelect>(html`
99
+ <nile-virtual-select>
100
+ <div slot="label">Test Select</div>
101
+ </nile-virtual-select>
102
+ `);
103
+
104
+ // Set up test data
105
+ el.allOptionItems = [
106
+ { value: 'option-1', label: 'Option 1' },
107
+ { value: 'option-2', label: 'Option 2' },
108
+ { value: 'option-3', label: 'Option 3' }
109
+ ];
110
+ el.renderItemFunction = (item: any) => item.label;
111
+
112
+ // Open the select to render options
113
+ el.open = true;
114
+ await el.updateComplete;
115
+
116
+ // Get the virtualized content
117
+ const virtualizedContent = el.shadowRoot?.querySelector('.virtualized');
118
+ expect(virtualizedContent).to.exist;
119
+
120
+ // Check that the select__options wrapper exists
121
+ const selectOptions = el.shadowRoot?.querySelector('.select__options');
122
+ expect(selectOptions).to.exist;
123
+
124
+ // Verify the structure matches the regular select
125
+ const listbox = el.shadowRoot?.querySelector('.select__listbox');
126
+ expect(listbox).to.exist;
127
+ expect(listbox?.querySelector('.select__options')).to.exist;
128
+ });
129
+
130
+ it('should render options with proper CSS classes for width', async () => {
131
+ const el = await fixture<NileVirtualSelect>(html`
132
+ <nile-virtual-select>
133
+ <div slot="label">Test Select</div>
134
+ </nile-virtual-select>
135
+ `);
136
+
137
+ // Set up test data
138
+ el.allOptionItems = [
139
+ { value: 'option-1', label: 'Option 1' },
140
+ { value: 'option-2', label: 'Option 2' }
141
+ ];
142
+ el.renderItemFunction = (item: any) => item.label;
143
+
144
+ // Open the select to render options
145
+ el.open = true;
146
+ await el.updateComplete;
147
+
148
+ // Check that the virtualized container has the proper class
149
+ const virtualized = el.shadowRoot?.querySelector('.virtualized');
150
+ expect(virtualized).to.exist;
151
+
152
+ // Check that the select__options container exists and has proper styling
153
+ const selectOptions = el.shadowRoot?.querySelector('.select__options');
154
+ expect(selectOptions).to.exist;
155
+
156
+ // Check that the virtualizer element exists and has proper width styling
157
+ const virtualizer = el.shadowRoot?.querySelector('lit-virtualizer');
158
+ expect(virtualizer).to.exist;
159
+ });
160
+
161
+ it('should render virtualized options with full width structure', async () => {
162
+ const el = await fixture<NileVirtualSelect>(html`
163
+ <nile-virtual-select>
164
+ <div slot="label">Test Select</div>
165
+ </nile-virtual-select>
166
+ `);
167
+
168
+ // Set up test data
169
+ el.allOptionItems = [
170
+ { value: 'option-1', label: 'Option 1' },
171
+ { value: 'option-2', label: 'Option 2' },
172
+ { value: 'option-3', label: 'Option 3' }
173
+ ];
174
+ el.renderItemFunction = (item: any) => item.label;
175
+
176
+ // Open the select to render options
177
+ el.open = true;
178
+ await el.updateComplete;
179
+
180
+ // Verify the complete structure matches the regular select
181
+ const listbox = el.shadowRoot?.querySelector('.select__listbox');
182
+ expect(listbox).to.exist;
183
+
184
+ const selectOptions = listbox?.querySelector('.select__options');
185
+ expect(selectOptions).to.exist;
186
+
187
+ const virtualized = selectOptions?.querySelector('.virtualized');
188
+ expect(virtualized).to.exist;
189
+
190
+ // Check that the structure is properly nested
191
+ expect(listbox?.contains(selectOptions || null)).to.be.true;
192
+ expect(selectOptions?.contains(virtualized || null)).to.be.true;
193
+ });
194
+ });
195
+
196
+ describe('selected options highlighting', () => {
197
+ it('should highlight selected options with red border in single select mode', async () => {
198
+ const el = await fixture<NileVirtualSelect>(html`
199
+ <nile-virtual-select>
200
+ <div slot="label">Test Select</div>
201
+ </nile-virtual-select>
202
+ `);
203
+
204
+ // Set up test data
205
+ el.allOptionItems = [
206
+ { value: 'option-1', label: 'Option 1' },
207
+ { value: 'option-2', label: 'Option 2' },
208
+ { value: 'option-3', label: 'Option 3' }
209
+ ];
210
+ el.renderItemFunction = (item: any) => item.label;
211
+
212
+ // Set a selected value
213
+ el.value = 'option-2';
214
+
215
+ // Open the select to render options
216
+ el.open = true;
217
+ await el.updateComplete;
218
+
219
+ // Check that the selected option has the selected attribute
220
+ const selectedOption = el.shadowRoot?.querySelector('nile-option[selected]');
221
+ expect(selectedOption).to.exist;
222
+ expect(selectedOption?.getAttribute('value')).to.equal('option-2');
223
+ });
224
+
225
+ it('should highlight selected options with red border in multiple select mode', async () => {
226
+ const el = await fixture<NileVirtualSelect>(html`
227
+ <nile-virtual-select multiple>
228
+ <div slot="label">Test Select</div>
229
+ </nile-virtual-select>
230
+ `);
231
+
232
+ // Set up test data
233
+ el.allOptionItems = [
234
+ { value: 'option-1', label: 'Option 1' },
235
+ { value: 'option-2', label: 'Option 2' },
236
+ { value: 'option-3', label: 'Option 3' }
237
+ ];
238
+ el.renderItemFunction = (item: any) => item.label;
239
+
240
+ // Set multiple selected values
241
+ el.value = ['option-1', 'option-3'];
242
+
243
+ // Open the select to render options
244
+ el.open = true;
245
+ await el.updateComplete;
246
+
247
+ // Check that the selected options have the selected attribute
248
+ const selectedOptions = el.shadowRoot?.querySelectorAll('nile-option[selected]');
249
+ expect(selectedOptions?.length).to.equal(2);
250
+
251
+ const selectedValues = Array.from(selectedOptions || []).map(option => option.getAttribute('value'));
252
+ expect(selectedValues).to.include('option-1');
253
+ expect(selectedValues).to.include('option-3');
254
+ });
255
+
256
+ it('should not highlight unselected options', async () => {
257
+ const el = await fixture<NileVirtualSelect>(html`
258
+ <nile-virtual-select>
259
+ <div slot="label">Test Select</div>
260
+ </nile-virtual-select>
261
+ `);
262
+
263
+ // Set up test data
264
+ el.allOptionItems = [
265
+ { value: 'option-1', label: 'Option 1' },
266
+ { value: 'option-2', label: 'Option 2' },
267
+ { value: 'option-3', label: 'Option 3' }
268
+ ];
269
+ el.renderItemFunction = (item: any) => item.label;
270
+
271
+ // Set a selected value
272
+ el.value = 'option-2';
273
+
274
+ // Open the select to render options
275
+ el.open = true;
276
+ await el.updateComplete;
277
+
278
+ // Check that unselected options don't have the selected attribute
279
+ const unselectedOption = el.shadowRoot?.querySelector('nile-option[value="option-1"]');
280
+ expect(unselectedOption).to.exist;
281
+ expect(unselectedOption?.hasAttribute('selected')).to.be.false;
282
+ });
283
+
284
+ it('should show tags for pre-selected values when allOptionItems is set after value', async () => {
285
+ const el = await fixture<NileVirtualSelect>(html`
286
+ <nile-virtual-select multiple>
287
+ <div slot="label">Test Select</div>
288
+ </nile-virtual-select>
289
+ `);
290
+
291
+ // Set renderItemFunction first
292
+ el.renderItemFunction = (item: any) => item.label;
293
+
294
+ // Set value before allOptionItems
295
+ el.value = ['option-1', 'option-3'];
296
+
297
+ await el.updateComplete;
298
+
299
+ // Initially, no tags should be shown because allOptionItems is empty
300
+ const initialTags = el.shadowRoot?.querySelectorAll('nile-tag');
301
+ expect(initialTags?.length).to.equal(0);
302
+
303
+ // Now set allOptionItems
304
+ el.allOptionItems = [
305
+ { value: 'option-1', label: 'Option 1' },
306
+ { value: 'option-2', label: 'Option 2' },
307
+ { value: 'option-3', label: 'Option 3' }
308
+ ];
309
+
310
+ await el.updateComplete;
311
+
312
+ // Now tags should be shown
313
+ const tags = el.shadowRoot?.querySelectorAll('nile-tag');
314
+ expect(tags?.length).to.equal(2);
315
+
316
+ const tagTexts = Array.from(tags || []).map(tag => tag.textContent?.trim());
317
+ expect(tagTexts).to.include('Option 1');
318
+ expect(tagTexts).to.include('Option 3');
319
+ });
320
+
321
+ it('should show tags immediately without opening dropdown', async () => {
322
+ const el = await fixture<NileVirtualSelect>(html`
323
+ <nile-virtual-select multiple>
324
+ <div slot="label">Test Select</div>
325
+ </nile-virtual-select>
326
+ `);
327
+
328
+ // Set up test data
329
+ el.renderItemFunction = (item: any) => item.label;
330
+ el.allOptionItems = [
331
+ { value: 'option-1', label: 'Option 1' },
332
+ { value: 'option-2', label: 'Option 2' },
333
+ { value: 'option-3', label: 'Option 3' }
334
+ ];
335
+ el.value = ['option-1', 'option-3'];
336
+
337
+ await el.updateComplete;
338
+
339
+ // Ensure dropdown is closed
340
+ el.open = false;
341
+ await el.updateComplete;
342
+
343
+ // Check that tags are shown even when dropdown is closed
344
+ const tags = el.shadowRoot?.querySelectorAll('nile-tag');
345
+ expect(tags?.length).to.equal(2);
346
+
347
+ const tagTexts = Array.from(tags || []).map(tag => tag.textContent?.trim());
348
+ expect(tagTexts).to.include('Option 1');
349
+ expect(tagTexts).to.include('Option 3');
350
+ });
351
+
352
+ it('should show checkbox as checked for selected options in multiple mode', async () => {
353
+ const el = await fixture<NileVirtualSelect>(html`
354
+ <nile-virtual-select multiple>
355
+ <div slot="label">Test Select</div>
356
+ </nile-virtual-select>
357
+ `);
358
+
359
+ // Set up test data
360
+ el.renderItemFunction = (item: any) => item.label;
361
+ el.allOptionItems = [
362
+ { value: 'option-1', label: 'Option 1' },
363
+ { value: 'option-2', label: 'Option 2' },
364
+ { value: 'option-3', label: 'Option 3' }
365
+ ];
366
+ el.value = ['option-1', 'option-3'];
367
+
368
+ // Open the select to render options
369
+ el.open = true;
370
+ await el.updateComplete;
371
+
372
+ // Check that selected options have checked checkboxes
373
+ const selectedOptions = el.shadowRoot?.querySelectorAll('nile-option[selected]');
374
+ expect(selectedOptions?.length).to.equal(2);
375
+
376
+ selectedOptions?.forEach(option => {
377
+ const checkbox = option.shadowRoot?.querySelector('nile-checkbox');
378
+ expect(checkbox).to.exist;
379
+ expect(checkbox?.checked).to.be.true;
380
+ });
381
+
382
+ // Check that unselected options have unchecked checkboxes
383
+ const unselectedOption = el.shadowRoot?.querySelector('nile-option[value="option-2"]');
384
+ expect(unselectedOption).to.exist;
385
+ const unselectedCheckbox = unselectedOption?.shadowRoot?.querySelector('nile-checkbox');
386
+ expect(unselectedCheckbox).to.exist;
387
+ expect(unselectedCheckbox?.checked).to.be.false;
388
+ });
389
+ });
390
+ });