@aquera/nile-elements 0.1.46-beta-2.3 → 0.1.46-beta-2.5

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 (494) hide show
  1. package/README.md +3 -3
  2. package/demo/index.html +19 -103
  3. package/dist/{fixture-372df3b0.esm.js → fixture-2b5b3aba.esm.js} +1 -1
  4. package/dist/{fixture-161dee0b.cjs.js → fixture-7bfb866e.cjs.js} +2 -2
  5. package/dist/{fixture-161dee0b.cjs.js.map → fixture-7bfb866e.cjs.js.map} +1 -1
  6. package/dist/index.cjs.js +1 -1
  7. package/dist/index.esm.js +1 -1
  8. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  9. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  10. package/dist/nile-auto-complete/index.cjs.js +1 -1
  11. package/dist/nile-auto-complete/index.esm.js +1 -1
  12. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +17 -1
  13. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  14. package/dist/nile-auto-complete/nile-auto-complete.esm.js +29 -8
  15. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  16. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +1 -1
  17. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  18. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  19. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  20. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  21. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  22. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  23. package/dist/nile-button/nile-button.test.esm.js +1 -1
  24. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  25. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  26. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  27. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  28. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  29. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  30. package/dist/nile-card/nile-card.test.esm.js +1 -1
  31. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  32. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  33. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  34. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  35. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  36. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  37. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  38. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  39. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  40. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  41. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  42. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  43. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  44. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  45. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  46. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  47. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  48. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  49. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  50. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  51. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  52. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  53. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  54. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  55. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  56. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  57. package/dist/nile-input/nile-input.test.esm.js +1 -1
  58. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  59. package/dist/nile-link/nile-link.test.esm.js +1 -1
  60. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  61. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  62. package/dist/nile-option/nile-option.cjs.js +1 -1
  63. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  64. package/dist/nile-option/nile-option.css.cjs.js +1 -1
  65. package/dist/nile-option/nile-option.css.cjs.js.map +1 -1
  66. package/dist/nile-option/nile-option.css.esm.js +1 -1
  67. package/dist/nile-option/nile-option.esm.js +2 -2
  68. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  69. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  70. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  71. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  72. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  73. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  74. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  75. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  76. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  77. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  78. package/dist/nile-select/index.cjs.js +1 -1
  79. package/dist/nile-select/index.esm.js +1 -1
  80. package/dist/nile-select/nile-select.cjs.js +1 -1
  81. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  82. package/dist/nile-select/nile-select.esm.js +9 -9
  83. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  84. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  85. package/dist/nile-select/nile-select.test.esm.js +2 -2
  86. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  87. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  88. package/dist/nile-slider/index.cjs.js +2 -0
  89. package/dist/nile-slider/index.esm.js +1 -0
  90. package/dist/nile-slider/nile-slider.cjs.js +2 -0
  91. package/dist/nile-slider/nile-slider.cjs.js.map +1 -0
  92. package/dist/nile-slider/nile-slider.css.cjs.js +2 -0
  93. package/dist/nile-slider/nile-slider.css.cjs.js.map +1 -0
  94. package/dist/nile-slider/nile-slider.css.esm.js +98 -0
  95. package/dist/nile-slider/nile-slider.esm.js +13 -0
  96. package/dist/nile-slider/nile-slider.template.cjs.js +2 -0
  97. package/dist/nile-slider/nile-slider.template.cjs.js.map +1 -0
  98. package/dist/nile-slider/nile-slider.template.esm.js +34 -0
  99. package/dist/{nile-virtual-select/types.cjs.js → nile-slider/types/nile-slider.enums.cjs.js} +1 -1
  100. package/dist/nile-slider/types/nile-slider.enums.cjs.js.map +1 -0
  101. package/dist/nile-slider/types/nile-slider.types.cjs.js +2 -0
  102. package/dist/nile-slider/types/nile-slider.types.cjs.js.map +1 -0
  103. package/dist/nile-slider/types/nile-slider.types.esm.js +1 -0
  104. package/dist/nile-slider/utils/nile-slider.utils.cjs.js +2 -0
  105. package/dist/nile-slider/utils/nile-slider.utils.cjs.js.map +1 -0
  106. package/dist/nile-slider/utils/nile-slider.utils.esm.js +1 -0
  107. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  108. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  109. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  110. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  111. package/dist/src/index.d.ts +1 -1
  112. package/dist/src/index.js +1 -1
  113. package/dist/src/index.js.map +1 -1
  114. package/dist/src/nile-file-preview/index.d.ts +1 -0
  115. package/dist/src/nile-file-preview/index.js +2 -0
  116. package/dist/src/nile-file-preview/index.js.map +1 -0
  117. package/dist/src/nile-file-preview/nile-file-preview.css.d.ts +12 -0
  118. package/dist/src/nile-file-preview/nile-file-preview.css.js +568 -0
  119. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -0
  120. package/dist/src/nile-file-preview/nile-file-preview.d.ts +50 -0
  121. package/dist/src/nile-file-preview/nile-file-preview.js +171 -0
  122. package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -0
  123. package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +13 -0
  124. package/dist/src/nile-file-preview/nile-file-preview.template.js +210 -0
  125. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -0
  126. package/dist/src/{nile-virtual-select/types.js → nile-file-preview/nile-file-preview.test.d.ts} +2 -3
  127. package/dist/src/nile-file-preview/nile-file-preview.test.js +30 -0
  128. package/dist/src/nile-file-preview/nile-file-preview.test.js.map +1 -0
  129. package/dist/src/nile-file-preview/types/index.d.ts +2 -0
  130. package/dist/src/nile-file-preview/types/index.js +3 -0
  131. package/dist/src/nile-file-preview/types/index.js.map +1 -0
  132. package/dist/src/nile-file-preview/types/nile-file-preview.enums.d.ts +28 -0
  133. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js +33 -0
  134. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js.map +1 -0
  135. package/dist/src/nile-file-preview/types/nile-file-preview.interface.d.ts +4 -0
  136. package/dist/src/nile-file-preview/types/nile-file-preview.interface.js +2 -0
  137. package/dist/src/nile-file-preview/types/nile-file-preview.interface.js.map +1 -0
  138. package/dist/src/nile-file-preview/utils/index.d.ts +1 -0
  139. package/dist/src/nile-file-preview/utils/index.js +2 -0
  140. package/dist/src/nile-file-preview/utils/index.js.map +1 -0
  141. package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +4 -0
  142. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +38 -0
  143. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -0
  144. package/dist/src/nile-file-upload/index.d.ts +1 -0
  145. package/dist/src/nile-file-upload/index.js +2 -0
  146. package/dist/src/nile-file-upload/index.js.map +1 -0
  147. package/dist/src/nile-file-upload/nile-file-upload.css.d.ts +12 -0
  148. package/dist/src/nile-file-upload/nile-file-upload.css.js +569 -0
  149. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -0
  150. package/dist/src/nile-file-upload/nile-file-upload.d.ts +48 -0
  151. package/dist/src/nile-file-upload/nile-file-upload.js +165 -0
  152. package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -0
  153. package/dist/src/nile-file-upload/nile-file-upload.template.d.ts +11 -0
  154. package/dist/src/nile-file-upload/nile-file-upload.template.js +171 -0
  155. package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -0
  156. package/dist/src/{nile-virtual-select/nile-virtual-select.test.d.ts → nile-file-upload/nile-file-upload.test.d.ts} +2 -2
  157. package/dist/src/nile-file-upload/nile-file-upload.test.js +30 -0
  158. package/dist/src/nile-file-upload/nile-file-upload.test.js.map +1 -0
  159. package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +35 -0
  160. package/dist/src/nile-file-upload/types/file-upload.enums.js +42 -0
  161. package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -0
  162. package/dist/src/nile-file-upload/types/file-upload.type.d.ts +4 -0
  163. package/dist/src/nile-file-upload/types/file-upload.type.js +2 -0
  164. package/dist/src/nile-file-upload/types/file-upload.type.js.map +1 -0
  165. package/dist/src/nile-file-upload/types/index.d.ts +2 -0
  166. package/dist/src/nile-file-upload/types/index.js +3 -0
  167. package/dist/src/nile-file-upload/types/index.js.map +1 -0
  168. package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +23 -0
  169. package/dist/src/nile-file-upload/utils/drag-drop.util.js +85 -0
  170. package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -0
  171. package/dist/src/nile-file-upload/utils/file-validation.util.d.ts +11 -0
  172. package/dist/src/nile-file-upload/utils/file-validation.util.js +120 -0
  173. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -0
  174. package/dist/src/nile-icon/icons/svg/ng-activity.d.ts +5 -0
  175. package/dist/src/nile-icon/icons/svg/ng-activity.js +5 -0
  176. package/dist/src/nile-icon/icons/svg/ng-activity.js.map +1 -0
  177. package/dist/src/nile-icon/icons/svg/ng-align-center.d.ts +5 -0
  178. package/dist/src/nile-icon/icons/svg/ng-align-center.js +5 -0
  179. package/dist/src/nile-icon/icons/svg/ng-align-center.js.map +1 -0
  180. package/dist/src/nile-icon/icons/svg/ng-annotation-x.d.ts +5 -0
  181. package/dist/src/nile-icon/icons/svg/ng-annotation-x.js +5 -0
  182. package/dist/src/nile-icon/icons/svg/ng-annotation-x.js.map +1 -0
  183. package/dist/src/nile-icon/icons/svg/ng-arrow-down.d.ts +5 -0
  184. package/dist/src/nile-icon/icons/svg/ng-arrow-down.js +5 -0
  185. package/dist/src/nile-icon/icons/svg/ng-arrow-down.js.map +1 -0
  186. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.d.ts +5 -0
  187. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.js +5 -0
  188. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.js.map +1 -0
  189. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.d.ts +5 -0
  190. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.js +5 -0
  191. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.js.map +1 -0
  192. package/dist/src/nile-icon/icons/svg/ng-arrow-up.d.ts +5 -0
  193. package/dist/src/nile-icon/icons/svg/ng-arrow-up.js +5 -0
  194. package/dist/src/nile-icon/icons/svg/ng-arrow-up.js.map +1 -0
  195. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.d.ts +5 -0
  196. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.js +5 -0
  197. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.js.map +1 -0
  198. package/dist/src/nile-icon/icons/svg/ng-bell-01.d.ts +5 -0
  199. package/dist/src/nile-icon/icons/svg/ng-bell-01.js +5 -0
  200. package/dist/src/nile-icon/icons/svg/ng-bell-01.js.map +1 -0
  201. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.d.ts +5 -0
  202. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.js +5 -0
  203. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.js.map +1 -0
  204. package/dist/src/nile-icon/icons/svg/ng-bold-01.d.ts +5 -0
  205. package/dist/src/nile-icon/icons/svg/ng-bold-01.js +5 -0
  206. package/dist/src/nile-icon/icons/svg/ng-bold-01.js.map +1 -0
  207. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.d.ts +5 -0
  208. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.js +5 -0
  209. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.js.map +1 -0
  210. package/dist/src/nile-icon/icons/svg/ng-calendar.d.ts +5 -0
  211. package/dist/src/nile-icon/icons/svg/ng-calendar.js +5 -0
  212. package/dist/src/nile-icon/icons/svg/ng-calendar.js.map +1 -0
  213. package/dist/src/nile-icon/icons/svg/ng-check-circle.d.ts +5 -0
  214. package/dist/src/nile-icon/icons/svg/ng-check-circle.js +5 -0
  215. package/dist/src/nile-icon/icons/svg/ng-check-circle.js.map +1 -0
  216. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.d.ts +5 -0
  217. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.js +5 -0
  218. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.js.map +1 -0
  219. package/dist/src/nile-icon/icons/svg/ng-chevron-down.d.ts +5 -0
  220. package/dist/src/nile-icon/icons/svg/ng-chevron-down.js +5 -0
  221. package/dist/src/nile-icon/icons/svg/ng-chevron-down.js.map +1 -0
  222. package/dist/src/nile-icon/icons/svg/ng-chevron-left.d.ts +5 -0
  223. package/dist/src/nile-icon/icons/svg/ng-chevron-left.js +5 -0
  224. package/dist/src/nile-icon/icons/svg/ng-chevron-left.js.map +1 -0
  225. package/dist/src/nile-icon/icons/svg/ng-chevron-right.d.ts +5 -0
  226. package/dist/src/nile-icon/icons/svg/ng-chevron-right.js +5 -0
  227. package/dist/src/nile-icon/icons/svg/ng-chevron-right.js.map +1 -0
  228. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.d.ts +5 -0
  229. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.js +5 -0
  230. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.js.map +1 -0
  231. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.d.ts +5 -0
  232. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.js +5 -0
  233. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.js.map +1 -0
  234. package/dist/src/nile-icon/icons/svg/ng-chevron-up.d.ts +5 -0
  235. package/dist/src/nile-icon/icons/svg/ng-chevron-up.js +5 -0
  236. package/dist/src/nile-icon/icons/svg/ng-chevron-up.js.map +1 -0
  237. package/dist/src/nile-icon/icons/svg/ng-copy-03.d.ts +5 -0
  238. package/dist/src/nile-icon/icons/svg/ng-copy-03.js +5 -0
  239. package/dist/src/nile-icon/icons/svg/ng-copy-03.js.map +1 -0
  240. package/dist/src/nile-icon/icons/svg/ng-dots-grid.d.ts +5 -0
  241. package/dist/src/nile-icon/icons/svg/ng-dots-grid.js +5 -0
  242. package/dist/src/nile-icon/icons/svg/ng-dots-grid.js.map +1 -0
  243. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.d.ts +5 -0
  244. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.js +5 -0
  245. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.js.map +1 -0
  246. package/dist/src/nile-icon/icons/svg/ng-download-01.d.ts +5 -0
  247. package/dist/src/nile-icon/icons/svg/ng-download-01.js +5 -0
  248. package/dist/src/nile-icon/icons/svg/ng-download-01.js.map +1 -0
  249. package/dist/src/nile-icon/icons/svg/ng-dropdown.d.ts +5 -0
  250. package/dist/src/nile-icon/icons/svg/ng-dropdown.js +5 -0
  251. package/dist/src/nile-icon/icons/svg/ng-dropdown.js.map +1 -0
  252. package/dist/src/nile-icon/icons/svg/ng-edit-02.d.ts +5 -0
  253. package/dist/src/nile-icon/icons/svg/ng-edit-02.js +5 -0
  254. package/dist/src/nile-icon/icons/svg/ng-edit-02.js.map +1 -0
  255. package/dist/src/nile-icon/icons/svg/ng-edit-05.d.ts +5 -0
  256. package/dist/src/nile-icon/icons/svg/ng-edit-05.js +5 -0
  257. package/dist/src/nile-icon/icons/svg/ng-edit-05.js.map +1 -0
  258. package/dist/src/nile-icon/icons/svg/ng-expand-06.d.ts +5 -0
  259. package/dist/src/nile-icon/icons/svg/ng-expand-06.js +5 -0
  260. package/dist/src/nile-icon/icons/svg/ng-expand-06.js.map +1 -0
  261. package/dist/src/nile-icon/icons/svg/ng-file-02.d.ts +5 -0
  262. package/dist/src/nile-icon/icons/svg/ng-file-02.js +5 -0
  263. package/dist/src/nile-icon/icons/svg/ng-file-02.js.map +1 -0
  264. package/dist/src/nile-icon/icons/svg/ng-file-check-02.d.ts +5 -0
  265. package/dist/src/nile-icon/icons/svg/ng-file-check-02.js +5 -0
  266. package/dist/src/nile-icon/icons/svg/ng-file-check-02.js.map +1 -0
  267. package/dist/src/nile-icon/icons/svg/ng-file-question-03.d.ts +5 -0
  268. package/dist/src/nile-icon/icons/svg/ng-file-question-03.js +5 -0
  269. package/dist/src/nile-icon/icons/svg/ng-file-question-03.js.map +1 -0
  270. package/dist/src/nile-icon/icons/svg/ng-filter-lines.d.ts +5 -0
  271. package/dist/src/nile-icon/icons/svg/ng-filter-lines.js +5 -0
  272. package/dist/src/nile-icon/icons/svg/ng-filter-lines.js.map +1 -0
  273. package/dist/src/nile-icon/icons/svg/ng-grid-01.d.ts +5 -0
  274. package/dist/src/nile-icon/icons/svg/ng-grid-01.js +5 -0
  275. package/dist/src/nile-icon/icons/svg/ng-grid-01.js.map +1 -0
  276. package/dist/src/nile-icon/icons/svg/ng-help-circle.d.ts +5 -0
  277. package/dist/src/nile-icon/icons/svg/ng-help-circle.js +5 -0
  278. package/dist/src/nile-icon/icons/svg/ng-help-circle.js.map +1 -0
  279. package/dist/src/nile-icon/icons/svg/ng-image-user-left.d.ts +5 -0
  280. package/dist/src/nile-icon/icons/svg/ng-image-user-left.js +5 -0
  281. package/dist/src/nile-icon/icons/svg/ng-image-user-left.js.map +1 -0
  282. package/dist/src/nile-icon/icons/svg/ng-info-circle.d.ts +5 -0
  283. package/dist/src/nile-icon/icons/svg/ng-info-circle.js +5 -0
  284. package/dist/src/nile-icon/icons/svg/ng-info-circle.js.map +1 -0
  285. package/dist/src/nile-icon/icons/svg/ng-italic-01.d.ts +5 -0
  286. package/dist/src/nile-icon/icons/svg/ng-italic-01.js +5 -0
  287. package/dist/src/nile-icon/icons/svg/ng-italic-01.js.map +1 -0
  288. package/dist/src/nile-icon/icons/svg/ng-list.d.ts +5 -0
  289. package/dist/src/nile-icon/icons/svg/ng-list.js +5 -0
  290. package/dist/src/nile-icon/icons/svg/ng-list.js.map +1 -0
  291. package/dist/src/nile-icon/icons/svg/ng-log-out-01.d.ts +5 -0
  292. package/dist/src/nile-icon/icons/svg/ng-log-out-01.js +5 -0
  293. package/dist/src/nile-icon/icons/svg/ng-log-out-01.js.map +1 -0
  294. package/dist/src/nile-icon/icons/svg/ng-mail-01.d.ts +5 -0
  295. package/dist/src/nile-icon/icons/svg/ng-mail-01.js +5 -0
  296. package/dist/src/nile-icon/icons/svg/ng-mail-01.js.map +1 -0
  297. package/dist/src/nile-icon/icons/svg/ng-mail-04.d.ts +5 -0
  298. package/dist/src/nile-icon/icons/svg/ng-mail-04.js +5 -0
  299. package/dist/src/nile-icon/icons/svg/ng-mail-04.js.map +1 -0
  300. package/dist/src/nile-icon/icons/svg/ng-menu-05.d.ts +5 -0
  301. package/dist/src/nile-icon/icons/svg/ng-menu-05.js +5 -0
  302. package/dist/src/nile-icon/icons/svg/ng-menu-05.js.map +1 -0
  303. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.d.ts +5 -0
  304. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.js +5 -0
  305. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.js.map +1 -0
  306. package/dist/src/nile-icon/icons/svg/ng-minimize-02.d.ts +5 -0
  307. package/dist/src/nile-icon/icons/svg/ng-minimize-02.js +5 -0
  308. package/dist/src/nile-icon/icons/svg/ng-minimize-02.js.map +1 -0
  309. package/dist/src/nile-icon/icons/svg/ng-plus.d.ts +5 -0
  310. package/dist/src/nile-icon/icons/svg/ng-plus.js +5 -0
  311. package/dist/src/nile-icon/icons/svg/ng-plus.js.map +1 -0
  312. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.d.ts +5 -0
  313. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.js +5 -0
  314. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.js.map +1 -0
  315. package/dist/src/nile-icon/icons/svg/ng-rocket-02.d.ts +5 -0
  316. package/dist/src/nile-icon/icons/svg/ng-rocket-02.js +5 -0
  317. package/dist/src/nile-icon/icons/svg/ng-rocket-02.js.map +1 -0
  318. package/dist/src/nile-icon/icons/svg/ng-search-lg.d.ts +5 -0
  319. package/dist/src/nile-icon/icons/svg/ng-search-lg.js +5 -0
  320. package/dist/src/nile-icon/icons/svg/ng-search-lg.js.map +1 -0
  321. package/dist/src/nile-icon/icons/svg/ng-send-01.d.ts +5 -0
  322. package/dist/src/nile-icon/icons/svg/ng-send-01.js +5 -0
  323. package/dist/src/nile-icon/icons/svg/ng-send-01.js.map +1 -0
  324. package/dist/src/nile-icon/icons/svg/ng-settings-01.d.ts +5 -0
  325. package/dist/src/nile-icon/icons/svg/ng-settings-01.js +5 -0
  326. package/dist/src/nile-icon/icons/svg/ng-settings-01.js.map +1 -0
  327. package/dist/src/nile-icon/icons/svg/ng-share-04.d.ts +5 -0
  328. package/dist/src/nile-icon/icons/svg/ng-share-04.js +5 -0
  329. package/dist/src/nile-icon/icons/svg/ng-share-04.js.map +1 -0
  330. package/dist/src/nile-icon/icons/svg/ng-share-06.d.ts +5 -0
  331. package/dist/src/nile-icon/icons/svg/ng-share-06.js +5 -0
  332. package/dist/src/nile-icon/icons/svg/ng-share-06.js.map +1 -0
  333. package/dist/src/nile-icon/icons/svg/ng-stars-02.d.ts +5 -0
  334. package/dist/src/nile-icon/icons/svg/ng-stars-02.js +5 -0
  335. package/dist/src/nile-icon/icons/svg/ng-stars-02.js.map +1 -0
  336. package/dist/src/nile-icon/icons/svg/ng-trash-01.d.ts +5 -0
  337. package/dist/src/nile-icon/icons/svg/ng-trash-01.js +5 -0
  338. package/dist/src/nile-icon/icons/svg/ng-trash-01.js.map +1 -0
  339. package/dist/src/nile-icon/icons/svg/ng-trash-03.d.ts +5 -0
  340. package/dist/src/nile-icon/icons/svg/ng-trash-03.js +5 -0
  341. package/dist/src/nile-icon/icons/svg/ng-trash-03.js.map +1 -0
  342. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.d.ts +5 -0
  343. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.js +5 -0
  344. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.js.map +1 -0
  345. package/dist/src/nile-icon/icons/svg/ng-underline-01.d.ts +5 -0
  346. package/dist/src/nile-icon/icons/svg/ng-underline-01.js +5 -0
  347. package/dist/src/nile-icon/icons/svg/ng-underline-01.js.map +1 -0
  348. package/dist/src/nile-icon/icons/svg/ng-upload-01.d.ts +5 -0
  349. package/dist/src/nile-icon/icons/svg/ng-upload-01.js +5 -0
  350. package/dist/src/nile-icon/icons/svg/ng-upload-01.js.map +1 -0
  351. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.d.ts +5 -0
  352. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.js +5 -0
  353. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.js.map +1 -0
  354. package/dist/src/nile-icon/icons/svg/ng-user-01.d.ts +5 -0
  355. package/dist/src/nile-icon/icons/svg/ng-user-01.js +5 -0
  356. package/dist/src/nile-icon/icons/svg/ng-user-01.js.map +1 -0
  357. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.d.ts +5 -0
  358. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.js +5 -0
  359. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.js.map +1 -0
  360. package/dist/src/nile-icon/icons/svg/ng-user-check-02.d.ts +5 -0
  361. package/dist/src/nile-icon/icons/svg/ng-user-check-02.js +5 -0
  362. package/dist/src/nile-icon/icons/svg/ng-user-check-02.js.map +1 -0
  363. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.d.ts +5 -0
  364. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.js +5 -0
  365. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.js.map +1 -0
  366. package/dist/src/nile-icon/icons/svg/ng-user-right-01.d.ts +5 -0
  367. package/dist/src/nile-icon/icons/svg/ng-user-right-01.js +5 -0
  368. package/dist/src/nile-icon/icons/svg/ng-user-right-01.js.map +1 -0
  369. package/dist/src/nile-icon/icons/svg/ng-users-01.d.ts +5 -0
  370. package/dist/src/nile-icon/icons/svg/ng-users-01.js +5 -0
  371. package/dist/src/nile-icon/icons/svg/ng-users-01.js.map +1 -0
  372. package/dist/src/nile-icon/icons/svg/ng-x-close.d.ts +5 -0
  373. package/dist/src/nile-icon/icons/svg/ng-x-close.js +5 -0
  374. package/dist/src/nile-icon/icons/svg/ng-x-close.js.map +1 -0
  375. package/dist/src/nile-icon/icons/svg/ng-x-square.d.ts +5 -0
  376. package/dist/src/nile-icon/icons/svg/ng-x-square.js +5 -0
  377. package/dist/src/nile-icon/icons/svg/ng-x-square.js.map +1 -0
  378. package/dist/src/nile-option/nile-option.css.js +1 -1
  379. package/dist/src/nile-option/nile-option.css.js.map +1 -1
  380. package/dist/src/nile-option/nile-option.d.ts +1 -5
  381. package/dist/src/nile-option/nile-option.js +6 -21
  382. package/dist/src/nile-option/nile-option.js.map +1 -1
  383. package/dist/src/nile-select/nile-select.d.ts +4 -14
  384. package/dist/src/nile-select/nile-select.js +4 -118
  385. package/dist/src/nile-select/nile-select.js.map +1 -1
  386. package/dist/src/nile-slider/index.d.ts +1 -0
  387. package/dist/src/nile-slider/index.js +2 -0
  388. package/dist/src/nile-slider/index.js.map +1 -0
  389. package/dist/src/{nile-virtual-select/nile-virtual-select.css.d.ts → nile-slider/nile-slider.css.d.ts} +1 -1
  390. package/dist/src/nile-slider/nile-slider.css.js +110 -0
  391. package/dist/src/nile-slider/nile-slider.css.js.map +1 -0
  392. package/dist/src/nile-slider/nile-slider.d.ts +47 -0
  393. package/dist/src/nile-slider/nile-slider.js +181 -0
  394. package/dist/src/nile-slider/nile-slider.js.map +1 -0
  395. package/dist/src/nile-slider/nile-slider.template.d.ts +5 -0
  396. package/dist/src/nile-slider/nile-slider.template.js +44 -0
  397. package/dist/src/nile-slider/nile-slider.template.js.map +1 -0
  398. package/dist/src/nile-slider/types/nile-slider.enums.d.ts +10 -0
  399. package/dist/src/nile-slider/types/nile-slider.enums.js +2 -0
  400. package/dist/src/nile-slider/types/nile-slider.enums.js.map +1 -0
  401. package/dist/src/nile-slider/types/nile-slider.type.d.ts +0 -0
  402. package/dist/src/nile-slider/types/nile-slider.type.js +2 -0
  403. package/dist/src/nile-slider/types/nile-slider.type.js.map +1 -0
  404. package/dist/src/nile-slider/types/nile-slider.types.d.ts +1 -0
  405. package/dist/src/nile-slider/types/nile-slider.types.js +2 -0
  406. package/dist/src/nile-slider/types/nile-slider.types.js.map +1 -0
  407. package/dist/src/nile-slider/utils/nile-slider.utils.d.ts +11 -0
  408. package/dist/src/nile-slider/utils/nile-slider.utils.js +86 -0
  409. package/dist/src/nile-slider/utils/nile-slider.utils.js.map +1 -0
  410. package/dist/src/nile-virtualizer/index.d.ts +1 -0
  411. package/dist/src/nile-virtualizer/index.js +2 -0
  412. package/dist/src/nile-virtualizer/index.js.map +1 -0
  413. package/dist/src/nile-virtualizer/nile-virtualizer.css.d.ts +12 -0
  414. package/dist/src/nile-virtualizer/nile-virtualizer.css.js +17 -0
  415. package/dist/src/nile-virtualizer/nile-virtualizer.css.js.map +1 -0
  416. package/dist/src/nile-virtualizer/nile-virtualizer.d.ts +34 -0
  417. package/dist/src/nile-virtualizer/nile-virtualizer.js +66 -0
  418. package/dist/src/nile-virtualizer/nile-virtualizer.js.map +1 -0
  419. package/dist/tsconfig.tsbuildinfo +1 -1
  420. package/package.json +4 -4
  421. package/src/index.ts +1 -2
  422. package/src/nile-option/nile-option.css.ts +1 -1
  423. package/src/nile-option/nile-option.ts +3 -17
  424. package/src/nile-select/nile-select.ts +4 -133
  425. package/src/nile-slider/index.ts +1 -0
  426. package/src/nile-slider/nile-slider.css.ts +112 -0
  427. package/src/nile-slider/nile-slider.template.ts +47 -0
  428. package/src/nile-slider/nile-slider.ts +177 -0
  429. package/src/nile-slider/types/nile-slider.enums.ts +10 -0
  430. package/src/nile-slider/types/nile-slider.types.ts +13 -0
  431. package/src/nile-slider/utils/nile-slider.utils.ts +118 -0
  432. package/vscode-html-custom-data.json +136 -268
  433. package/dist/nile-select/virtual-scroll-helper.cjs.js +0 -2
  434. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +0 -1
  435. package/dist/nile-select/virtual-scroll-helper.esm.js +0 -54
  436. package/dist/nile-virtual-select/index.cjs.js +0 -2
  437. package/dist/nile-virtual-select/index.esm.js +0 -1
  438. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +0 -2
  439. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +0 -1
  440. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +0 -2
  441. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +0 -1
  442. package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +0 -468
  443. package/dist/nile-virtual-select/nile-virtual-select.esm.js +0 -202
  444. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +0 -2
  445. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +0 -1
  446. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +0 -49
  447. package/dist/nile-virtual-select/renderer.cjs.js +0 -2
  448. package/dist/nile-virtual-select/renderer.cjs.js.map +0 -1
  449. package/dist/nile-virtual-select/renderer.esm.js +0 -16
  450. package/dist/nile-virtual-select/search-manager.cjs.js +0 -2
  451. package/dist/nile-virtual-select/search-manager.cjs.js.map +0 -1
  452. package/dist/nile-virtual-select/search-manager.esm.js +0 -1
  453. package/dist/nile-virtual-select/selection-manager.cjs.js +0 -2
  454. package/dist/nile-virtual-select/selection-manager.cjs.js.map +0 -1
  455. package/dist/nile-virtual-select/selection-manager.esm.js +0 -1
  456. package/dist/nile-virtual-select/types.cjs.js.map +0 -1
  457. package/dist/src/nile-select/virtual-scroll-helper.d.ts +0 -40
  458. package/dist/src/nile-select/virtual-scroll-helper.js +0 -196
  459. package/dist/src/nile-select/virtual-scroll-helper.js.map +0 -1
  460. package/dist/src/nile-virtual-select/index.d.ts +0 -1
  461. package/dist/src/nile-virtual-select/index.js +0 -2
  462. package/dist/src/nile-virtual-select/index.js.map +0 -1
  463. package/dist/src/nile-virtual-select/nile-virtual-select.css.js +0 -480
  464. package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +0 -1
  465. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +0 -242
  466. package/dist/src/nile-virtual-select/nile-virtual-select.js +0 -1091
  467. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +0 -1
  468. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +0 -317
  469. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +0 -1
  470. package/dist/src/nile-virtual-select/renderer.d.ts +0 -11
  471. package/dist/src/nile-virtual-select/renderer.js +0 -45
  472. package/dist/src/nile-virtual-select/renderer.js.map +0 -1
  473. package/dist/src/nile-virtual-select/search-manager.d.ts +0 -12
  474. package/dist/src/nile-virtual-select/search-manager.js +0 -39
  475. package/dist/src/nile-virtual-select/search-manager.js.map +0 -1
  476. package/dist/src/nile-virtual-select/selection-manager.d.ts +0 -12
  477. package/dist/src/nile-virtual-select/selection-manager.js +0 -49
  478. package/dist/src/nile-virtual-select/selection-manager.js.map +0 -1
  479. package/dist/src/nile-virtual-select/types.d.ts +0 -45
  480. package/dist/src/nile-virtual-select/types.js.map +0 -1
  481. package/dist/virtualize-a4a40d96.esm.js +0 -22
  482. package/dist/virtualize-b6a2fbe0.cjs.js +0 -18
  483. package/dist/virtualize-b6a2fbe0.cjs.js.map +0 -1
  484. package/src/nile-select/virtual-scroll-helper.ts +0 -228
  485. package/src/nile-virtual-select/index.ts +0 -1
  486. package/src/nile-virtual-select/nile-virtual-select.css.ts +0 -482
  487. package/src/nile-virtual-select/nile-virtual-select.test.ts +0 -390
  488. package/src/nile-virtual-select/nile-virtual-select.ts +0 -1161
  489. package/src/nile-virtual-select/renderer.ts +0 -62
  490. package/src/nile-virtual-select/search-manager.ts +0 -48
  491. package/src/nile-virtual-select/selection-manager.ts +0 -56
  492. package/src/nile-virtual-select/types.ts +0 -48
  493. /package/dist/{nile-virtual-select → nile-slider}/index.cjs.js.map +0 -0
  494. /package/dist/{nile-virtual-select/types.esm.js → nile-slider/types/nile-slider.enums.esm.js} +0 -0
@@ -1,1091 +0,0 @@
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
- import { __decorate } from "tslib";
8
- import { html, } from 'lit';
9
- import { customElement, property } from 'lit/decorators.js';
10
- import { styles } from './nile-virtual-select.css';
11
- import '../nile-icon';
12
- import '../nile-popup/nile-popup';
13
- import '../nile-tag/nile-tag';
14
- import { animateTo, stopAnimations } from '../internal/animate';
15
- import { classMap } from 'lit/directives/class-map.js';
16
- import { query, state } from 'lit/decorators.js';
17
- import { defaultValue } from '../internal/default-value';
18
- import { FormControlController } from '../internal/form';
19
- import { getAnimation, setDefaultAnimation, } from '../utilities/animation-registry';
20
- import { HasSlotController } from '../internal/slot';
21
- import { waitForEvent } from '../internal/event';
22
- import { watch } from '../internal/watch';
23
- import NileElement from '../internal/nile-element';
24
- import { ifDefined } from 'lit/directives/if-defined.js';
25
- import { VirtualSelectSelectionManager } from './selection-manager.js';
26
- import { VirtualSelectSearchManager } from './search-manager.js';
27
- import { VirtualSelectRenderer } from './renderer.js';
28
- /**
29
- * Nile Virtual Select component.
30
- *
31
- * @tag nile-virtual-select
32
- *
33
- */
34
- /**
35
- * @summary Virtual select component for handling large datasets with virtual scrolling.
36
- * @status stable
37
- * @since 2.0
38
- *
39
- * @dependency nile-icon
40
- * @dependency nile-popup
41
- * @dependency nile-tag
42
- *
43
- * @slot label - The input's label. Alternatively, you can use the `label` attribute.
44
- * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.
45
- * @slot clear-icon - An icon to use in lieu of the default clear icon.
46
- * @slot expand-icon - The icon to show when the control is expanded and collapsed.
47
- * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
48
- *
49
- * @event nile-change - Emitted when the control's value changes.
50
- * @event nile-clear - Emitted when the control's value is cleared.
51
- * @event nile-input - Emitted when the control receives input.
52
- * @event nile-focus - Emitted when the control gains focus.
53
- * @event nile-blur - Emitted when the control loses focus.
54
- * @event nile-show - Emitted when the select's menu opens.
55
- * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.
56
- * @event nile-hide - Emitted when the select's menu closes.
57
- * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.
58
- * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
59
- *
60
- * @csspart form-control - The form control that wraps the label, input, and help text.
61
- * @csspart form-control-label - The label's wrapper.
62
- * @csspart form-control-input - The select's wrapper.
63
- * @csspart form-control-help-text - The help text's wrapper.
64
- * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.
65
- * @csspart prefix - The container that wraps the prefix slot.
66
- * @csspart display-input - The element that displays the selected option's label, an `<input>` element.
67
- * @csspart listbox - The listbox container where options are slotted.
68
- * @csspart tags - The container that houses option tags when `multiple` is used.
69
- * @csspart tag - The individual tags that represent each multiselect option.
70
- * @csspart clear-button - The clear button.
71
- * @csspart expand-icon - The container that wraps the expand icon.
72
- */
73
- let NileVirtualSelect = class NileVirtualSelect extends NileElement {
74
- constructor() {
75
- super(...arguments);
76
- this.formControlController = new FormControlController(this, {
77
- assumeInteractionOn: ['nile-blur', 'nile-input'],
78
- });
79
- this.hasSlotController = new HasSlotController(this, 'help-text', 'label');
80
- this.hasFocus = false;
81
- this.displayLabel = '';
82
- this.selectedOptions = [];
83
- this.oldValue = '';
84
- /** The name of the select, submitted as a name/value pair with form data. */
85
- this.name = '';
86
- /** Array of all option items for virtual scrolling */
87
- this.allOptionItems = [];
88
- /** Original unfiltered option items for search functionality */
89
- this.originalOptionItems = [];
90
- /**
91
- * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.
92
- */
93
- this.value = '';
94
- /** The default value of the form control. Primarily used for resetting the form control. */
95
- this.defaultValue = '';
96
- /** The select's size. */
97
- this.size = 'medium';
98
- /** Placeholder text to show as a hint when the select is empty. */
99
- this.placeholder = 'Select...';
100
- /** Current search value */
101
- this.searchValue = '';
102
- /** Enable search functionality */
103
- this.searchEnabled = false;
104
- /** Search input placeholder */
105
- this.internalSearchPlaceHolder = 'Search...';
106
- /** Disable local search filtering */
107
- this.disableLocalSearch = false;
108
- /** Show loading state */
109
- this.optionsLoading = false;
110
- /** Allows more than one option to be selected. */
111
- this.multiple = false;
112
- /** Help text */
113
- this.helpText = '';
114
- /** Error message */
115
- this.errorMessage = '';
116
- /** Sets the input to a warning state */
117
- this.warning = false;
118
- /** Sets the input to an error state */
119
- this.error = false;
120
- /** Sets the input to a success state */
121
- this.success = false;
122
- /** Disables the select control. */
123
- this.disabled = false;
124
- /** Adds a clear button when the select is not empty. */
125
- this.clearable = false;
126
- /** The select's open state. */
127
- this.open = false;
128
- /**
129
- * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with
130
- * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
131
- */
132
- this.hoist = false;
133
- /** Draws a filled select. */
134
- this.filled = false;
135
- /** Draws a pill-style select with rounded edges. */
136
- this.pill = false;
137
- /** The select's label. If you need to display HTML, use the `label` slot instead. */
138
- this.label = '';
139
- /**
140
- * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox
141
- * inside of the viewport.
142
- */
143
- this.placement = 'bottom';
144
- /**
145
- * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you
146
- * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in
147
- * the same document or shadow root for this to work.
148
- */
149
- this.form = '';
150
- /** The select's required attribute. */
151
- this.required = false;
152
- /** Show no results message */
153
- this.showNoResults = false;
154
- /** No results message */
155
- this.noResultsMessage = 'No results found';
156
- /** Function to render item value from data object */
157
- this.renderItemFunction = (item) => item?.label || item?.name || item;
158
- /** Block value change events */
159
- this.blockValueChange = false;
160
- /** Disable width synchronization */
161
- this.noWidthSync = false;
162
- /**
163
- * The maximum number of selected options to show when `multiple` is true. After the maximum, "+n" will be shown to
164
- * indicate the number of additional items that are selected. Set to 0 to remove the limit.
165
- */
166
- this.maxOptionsVisible = 3;
167
- this.oldMaxOptionsVisible = 1;
168
- this.handleDocumentMouseDown = (event) => {
169
- if (!this.open)
170
- return;
171
- const path = event.composedPath();
172
- const hitSelf = path.includes(this);
173
- const hitPopup = this.popup && path.includes(this.popup);
174
- if (!hitSelf && !hitPopup) {
175
- this.hide();
176
- }
177
- };
178
- }
179
- /** Gets the validity state object */
180
- get validity() {
181
- return this.valueInput?.validity;
182
- }
183
- /** Gets the validation message */
184
- get validationMessage() {
185
- return this.valueInput?.validationMessage ?? '';
186
- }
187
- connectedCallback() {
188
- super.connectedCallback();
189
- this.initializeComponent();
190
- this.setupEventListeners();
191
- this.updateComplete.then(() => {
192
- if (this.value && this.allOptionItems.length > 0) {
193
- this.selectionChanged();
194
- }
195
- });
196
- }
197
- disconnectedCallback() {
198
- this.removeOpenListeners();
199
- }
200
- initializeComponent() {
201
- this.renderItemFunction = (item) => item?.label || item?.name || item;
202
- this.open = false;
203
- this.emit('nile-init');
204
- }
205
- setupEventListeners() {
206
- this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);
207
- this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
208
- this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
209
- }
210
- addOpenListeners() {
211
- document.addEventListener('focusin', this.handleDocumentFocusIn);
212
- document.addEventListener('keydown', this.handleDocumentKeyDown);
213
- document.addEventListener('mousedown', this.handleDocumentMouseDown);
214
- }
215
- removeOpenListeners() {
216
- document.removeEventListener('focusin', this.handleDocumentFocusIn);
217
- document.removeEventListener('keydown', this.handleDocumentKeyDown);
218
- document.removeEventListener('mousedown', this.handleDocumentMouseDown);
219
- }
220
- handleFocus() {
221
- this.hasFocus = true;
222
- this.emit('nile-focus');
223
- }
224
- handleBlur() {
225
- this.hasFocus = false;
226
- this.emit('nile-blur');
227
- }
228
- handleDocumentFocusIn(event) {
229
- if (!this.open)
230
- return;
231
- const path = event.composedPath();
232
- const hitSelf = path.includes(this);
233
- const hitPopup = this.popup && path.includes(this.popup);
234
- if (!hitSelf && !hitPopup) {
235
- this.hide();
236
- }
237
- }
238
- handleDocumentKeyDown(event) {
239
- if (this.shouldIgnoreKeyPress(event)) {
240
- return;
241
- }
242
- if (this.isEscapeKey(event)) {
243
- this.handleEscapeKey(event);
244
- }
245
- if (this.isEnterOrSpaceKey(event)) {
246
- this.handleEnterOrSpaceKey(event);
247
- }
248
- }
249
- shouldIgnoreKeyPress(event) {
250
- const target = event.target;
251
- const isClearButton = target.closest('.select__clear') !== null;
252
- const isIconButton = target.closest('nile-icon-button') !== null;
253
- return isClearButton || isIconButton;
254
- }
255
- isEscapeKey(event) {
256
- return event.key === 'Escape' && this.open;
257
- }
258
- handleEscapeKey(event) {
259
- event.preventDefault();
260
- event.stopPropagation();
261
- this.hide();
262
- this.displayInput.focus({ preventScroll: true });
263
- }
264
- isEnterOrSpaceKey(event) {
265
- return event.key === 'Enter' || event.key === ' ';
266
- }
267
- handleEnterOrSpaceKey(event) {
268
- event.preventDefault();
269
- event.stopImmediatePropagation();
270
- if (!this.open) {
271
- this.show();
272
- return;
273
- }
274
- if (!this.multiple) {
275
- this.hide();
276
- this.displayInput.focus({ preventScroll: true });
277
- }
278
- }
279
- handleLabelClick() {
280
- this.displayInput.focus();
281
- this.hide();
282
- }
283
- handleComboboxMouseDown(event) {
284
- if (this.shouldIgnoreComboboxClick(event)) {
285
- return;
286
- }
287
- event.preventDefault();
288
- this.displayInput.focus({ preventScroll: true });
289
- this.open = !this.open;
290
- }
291
- shouldIgnoreComboboxClick(event) {
292
- const path = event.composedPath();
293
- const isIconButton = path.some(el => el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button');
294
- return this.disabled || isIconButton;
295
- }
296
- handleComboboxKeyDown(event) {
297
- if (this.isEnterOrSpaceKey(event)) {
298
- event.preventDefault();
299
- this.open = !this.open;
300
- }
301
- }
302
- handleClearClick(event) {
303
- event.stopPropagation();
304
- this.clearSelection();
305
- }
306
- clearSelection() {
307
- const oldValue = this.value;
308
- this.value = this.multiple ? [] : '';
309
- this.selectionChanged();
310
- this.updateComplete.then(() => {
311
- this.nileInput({ value: this.value, name: this.name });
312
- this.nileChange({ value: this.value, name: this.name });
313
- this.emit('nile-clear');
314
- });
315
- }
316
- handleClearMouseDown(event) {
317
- event.stopPropagation();
318
- }
319
- handleOptionClick(event) {
320
- const target = event.target;
321
- const option = target.closest('nile-option');
322
- if (this.shouldBlockValueChange(option)) {
323
- return;
324
- }
325
- const oldValue = this.value;
326
- this.oldValue = oldValue;
327
- if (option && !option.disabled) {
328
- this.handleOptionSelection(option);
329
- }
330
- }
331
- shouldBlockValueChange(option) {
332
- if (this.blockValueChange && option) {
333
- this.emit('nile-block-change', { value: option?.value, name: this.name });
334
- this.hide();
335
- return true;
336
- }
337
- return false;
338
- }
339
- handleOptionSelection(option) {
340
- const optionValue = option.value;
341
- if (this.multiple) {
342
- this.toggleOptionSelection(optionValue);
343
- }
344
- else {
345
- this.setSelectedOptions(optionValue);
346
- }
347
- this.updateComplete.then(() => this.displayInput.focus({ preventScroll: true }));
348
- if (this.value !== this.oldValue) {
349
- this.updateComplete.then(() => {
350
- this.nileInput({ value: this.value, name: this.name });
351
- this.nileChange({ value: this.value, name: this.name });
352
- });
353
- }
354
- if (!this.multiple) {
355
- this.hide();
356
- this.displayInput.focus({ preventScroll: true });
357
- }
358
- }
359
- setSelectedOptions(optionValue) {
360
- this.value = optionValue;
361
- this.selectionChanged();
362
- }
363
- toggleOptionSelection(optionValue) {
364
- const currentValues = Array.isArray(this.value) ? this.value : [];
365
- if (currentValues.includes(optionValue)) {
366
- this.value = currentValues.filter(v => v !== optionValue);
367
- }
368
- else {
369
- this.value = [...currentValues, optionValue];
370
- }
371
- this.selectionChanged();
372
- }
373
- handleTagRemove(event, option) {
374
- event.stopPropagation();
375
- if (!this.disabled) {
376
- this.removeTagFromSelection(option);
377
- this.emitTagRemovalEvent(option);
378
- }
379
- }
380
- removeTagFromSelection(option) {
381
- let currentValue = this.value;
382
- if (!Array.isArray(currentValue)) {
383
- currentValue = currentValue ? [currentValue] : [];
384
- }
385
- const newValue = currentValue.filter((v) => v !== option.value);
386
- this.value = newValue;
387
- this.selectionChanged();
388
- }
389
- emitTagRemovalEvent(option) {
390
- this.updateComplete.then(() => {
391
- this.nileInput({ value: this.value, name: this.name });
392
- this.nileChange({ value: this.value, name: this.name });
393
- this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });
394
- });
395
- }
396
- selectionChanged() {
397
- // Update selected options cache
398
- this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(this.value, this.allOptionItems, this.renderItemFunction);
399
- // Update the display label
400
- if (this.multiple) {
401
- if (this.placeholder && this.value.length === 0) {
402
- // When no items are selected, keep the value empty so the placeholder shows
403
- this.displayLabel = '';
404
- }
405
- else {
406
- this.displayLabel = this.selectedOptions.length + ' selected';
407
- }
408
- }
409
- else {
410
- const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;
411
- this.displayLabel = this.selectedOptions[0]?.getTextLabel()
412
- ? this.selectedOptions[0].getTextLabel()
413
- : currentValue ?? '';
414
- }
415
- // Update validity
416
- this.updateValidity();
417
- this.calculateTotalWidthOfTags();
418
- }
419
- handleSearchFocus() {
420
- document.removeEventListener('keydown', this.handleDocumentKeyDown);
421
- }
422
- handleSearchBlur() {
423
- document.addEventListener('keydown', this.handleDocumentKeyDown);
424
- }
425
- handleSearchChange(e) {
426
- this.searchValue = e.detail.value;
427
- if (!this.disableLocalSearch) {
428
- this.filterVirtualOptions(this.searchValue);
429
- }
430
- }
431
- filterVirtualOptions(searchValue) {
432
- const result = VirtualSelectSearchManager.filterVirtualOptions(searchValue, this.originalOptionItems, this.allOptionItems, this.renderItemFunction);
433
- this.allOptionItems = result.filteredItems;
434
- this.showNoResults = result.showNoResults;
435
- this.requestUpdate();
436
- }
437
- handleInvalid(event) {
438
- this.formControlController.setValidity(false);
439
- this.formControlController.emitInvalidEvent(event);
440
- }
441
- handleDisabledChange() {
442
- if (this.disabled) {
443
- this.open = false;
444
- this.handleOpenChange();
445
- }
446
- }
447
- handleValueChange() {
448
- this.selectionChanged();
449
- this.requestUpdate();
450
- }
451
- handleAllOptionItemsChange() {
452
- this.selectionChanged();
453
- this.requestUpdate();
454
- }
455
- handleRenderItemFunctionChange() {
456
- if (this.value && this.allOptionItems.length > 0) {
457
- this.selectionChanged();
458
- this.requestUpdate();
459
- }
460
- }
461
- async handleOpenChange() {
462
- if (this.open && !this.disabled) {
463
- await this.handleOpen();
464
- }
465
- else {
466
- await this.handleClose();
467
- }
468
- }
469
- async handleOpen() {
470
- this.emit('nile-show', { value: this.value, name: this.name });
471
- this.addOpenListeners();
472
- this.showNoResults = !this.allOptionItems?.length;
473
- await stopAnimations(this);
474
- this.popup.active = true;
475
- const { keyframes, options } = getAnimation(this, 'select.show', {
476
- dir: 'ltr',
477
- });
478
- await animateTo(this.popup.popup, keyframes, options);
479
- this.initializeOriginalItems();
480
- this.filterVirtualOptions(this.searchValue);
481
- this.emit('nile-after-show', { value: this.value, name: this.name });
482
- }
483
- async handleClose() {
484
- this.emit('nile-hide', { value: this.value, name: this.name });
485
- this.removeOpenListeners();
486
- await stopAnimations(this);
487
- const { keyframes, options } = getAnimation(this, 'select.hide', {
488
- dir: 'ltr',
489
- });
490
- await animateTo(this.popup.popup, keyframes, options);
491
- this.popup.active = false;
492
- this.searchValue = '';
493
- this.emit('nile-after-hide', { value: this.value, name: this.name });
494
- }
495
- initializeOriginalItems() {
496
- if (this.originalOptionItems.length === 0 && this.allOptionItems.length > 0) {
497
- this.originalOptionItems = [...this.allOptionItems];
498
- }
499
- }
500
- async show() {
501
- if (this.open || this.disabled) {
502
- this.open = false;
503
- return undefined;
504
- }
505
- this.open = true;
506
- return waitForEvent(this, 'nile-after-show');
507
- }
508
- async hide() {
509
- if (!this.open || this.disabled) {
510
- this.open = false;
511
- return undefined;
512
- }
513
- this.open = false;
514
- return waitForEvent(this, 'nile-after-hide');
515
- }
516
- checkValidity() {
517
- return this.valueInput.checkValidity();
518
- }
519
- getForm() {
520
- return this.formControlController.getForm();
521
- }
522
- reportValidity() {
523
- return this.valueInput.reportValidity();
524
- }
525
- setCustomValidity(message) {
526
- this.valueInput.setCustomValidity(message);
527
- this.formControlController.updateValidity();
528
- }
529
- focus(options) {
530
- this.displayInput.focus(options);
531
- }
532
- blur() {
533
- this.displayInput.blur();
534
- }
535
- onInputChange(event) {
536
- event.stopPropagation();
537
- }
538
- render() {
539
- const hasLabelSlot = this.hasSlotController.test('label');
540
- const hasHelpTextSlot = this.hasSlotController.test('help-text');
541
- const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');
542
- const hasCustomSelect = this.hasSlotController.test('custom-select');
543
- const hasLabel = this.label ? true : !!hasLabelSlot;
544
- const hasClearIcon = this.clearable && !this.disabled && this.value.length > 0;
545
- const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;
546
- const hasHelpText = !!this.helpText;
547
- const hasErrorMessage = !!this.errorMessage;
548
- return html `
549
- <div
550
- part="form-control"
551
- class=${classMap({
552
- 'form-control': true,
553
- 'form-control--small': this.size === 'small',
554
- 'form-control--medium': this.size === 'medium',
555
- 'form-control--large': this.size === 'large',
556
- 'form-control--has-label': hasLabel,
557
- 'form-control--has-help-text': hasHelpText,
558
- })}
559
- >
560
- ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}
561
- ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}
562
- </div>
563
- `;
564
- }
565
- renderLabel(hasLabel, hasLabelSuffixSlot) {
566
- return html `
567
- <label
568
- id="label"
569
- part="form-control-label"
570
- class="form-control__label"
571
- aria-hidden=${hasLabel ? 'false' : 'true'}
572
- @click=${this.handleLabelClick}
573
- >
574
- <slot name="label">${this.label}</slot>
575
- </label>
576
-
577
- ${hasLabelSuffixSlot ? html ` <slot name="label-suffix"></slot> ` : ``}
578
- `;
579
- }
580
- renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage) {
581
- return html `
582
- <div part="form-control-input" class="form-control-input">
583
- ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}
584
- ${this.renderHelpText(hasHelpText, hasErrorMessage)}
585
- </div>
586
- `;
587
- }
588
- renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible) {
589
- return html `
590
- <nile-popup
591
- class=${classMap({
592
- select: true,
593
- 'select--warning': this.warning,
594
- 'select--error': this.error,
595
- 'select--success': this.success,
596
- 'select--standard': true,
597
- 'select--filled': this.filled,
598
- 'select--pill': this.pill,
599
- 'select--open': this.open,
600
- 'select--disabled': this.disabled,
601
- 'select--multiple': this.multiple,
602
- 'select--focused': this.hasFocus,
603
- 'select--placeholder-visible': isPlaceholderVisible,
604
- 'select--top': this.placement === 'top',
605
- 'select--bottom': this.placement === 'bottom',
606
- 'select--small': this.size === 'small',
607
- 'select--medium': this.size === 'medium',
608
- 'select--large': this.size === 'large',
609
- })}
610
- placement=${this.placement}
611
- strategy=${this.hoist ? 'fixed' : 'absolute'}
612
- distance="6"
613
- flip
614
- shift
615
- sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}
616
- auto-size="vertical"
617
- auto-size-padding="10"
618
- >
619
- ${this.renderCustomSelect(hasCustomSelect)}
620
- ${this.renderCombobox(hasCustomSelect, hasClearIcon)}
621
- ${this.renderListbox()}
622
- </nile-popup>
623
- `;
624
- }
625
- renderCustomSelect(hasCustomSelect) {
626
- return hasCustomSelect
627
- ? html `<slot
628
- slot="anchor"
629
- name="custom-select"
630
- class="custom-select"
631
- @keydown=${this.handleComboboxKeyDown}
632
- @mousedown=${this.handleComboboxMouseDown}
633
- ></slot>`
634
- : html ``;
635
- }
636
- renderCombobox(hasCustomSelect, hasClearIcon) {
637
- return html `
638
- <div
639
- part="combobox"
640
- class=${classMap({
641
- select__combobox: true,
642
- 'select__hide-default': hasCustomSelect,
643
- })}
644
- slot="anchor"
645
- @keydown=${this.handleComboboxKeyDown}
646
- @mousedown=${this.handleComboboxMouseDown}
647
- >
648
- ${this.renderPrefix()}
649
- ${this.renderDisplayInput()}
650
- ${this.renderTags()}
651
- ${this.renderValueInput()}
652
- ${this.renderClearButton(hasClearIcon)}
653
- ${this.renderSuffix()}
654
- ${this.renderExpandIcon()}
655
- </div>
656
- `;
657
- }
658
- renderPrefix() {
659
- return html `
660
- <slot
661
- part="prefix"
662
- name="prefix"
663
- class=${classMap({
664
- select__prefix: true,
665
- multiple: this.multiple,
666
- })}
667
- ></slot>
668
- `;
669
- }
670
- renderDisplayInput() {
671
- return html `
672
- <input
673
- part="display-input"
674
- class="select__display-input"
675
- type="text"
676
- placeholder=${this.placeholder}
677
- .disabled=${this.disabled}
678
- .value=${this.displayLabel}
679
- autocomplete="off"
680
- spellcheck="false"
681
- autocapitalize="off"
682
- readonly
683
- aria-controls="listbox"
684
- aria-expanded=${this.open ? 'true' : 'false'}
685
- aria-haspopup="listbox"
686
- aria-labelledby="label"
687
- aria-disabled=${this.disabled ? 'true' : 'false'}
688
- aria-describedby="help-text"
689
- role="combobox"
690
- tabindex="0"
691
- @focus=${this.handleFocus}
692
- @blur=${this.handleBlur}
693
- />
694
- `;
695
- }
696
- renderTags() {
697
- return this.multiple
698
- ? html `
699
- <div part="tags" class="select__tags">
700
- ${this.selectedOptions.map((option, index) => {
701
- if (index < this.maxOptionsVisible ||
702
- this.maxOptionsVisible <= 0) {
703
- const classes = {
704
- select__invisible: index + 1 > this.oldMaxOptionsVisible &&
705
- this.maxOptionsVisible === Infinity,
706
- };
707
- return html `
708
- <nile-tag
709
- class=${classMap(classes)}
710
- part="tag"
711
- exportparts="
712
- base:tag__base,
713
- content:tag__content,
714
- remove-button:tag__remove-button,
715
- remove-button__base:tag__remove-button__base
716
- "
717
- ?pill=${this.pill}
718
- size=${this.size}
719
- removable
720
- @nile-remove=${(event) => this.handleTagRemove(event, option)}
721
- >
722
- ${option.getTextLabel()}
723
- </nile-tag>
724
- `;
725
- }
726
- else if (index === this.maxOptionsVisible) {
727
- return html `
728
- <span class="select__tags-count"
729
- >+${this.selectedOptions.length - index} More
730
- </span>
731
- `;
732
- }
733
- else {
734
- return null;
735
- }
736
- })}
737
- </div>
738
- `
739
- : html ``;
740
- }
741
- renderValueInput() {
742
- return html `
743
- <input
744
- class="select__value-input"
745
- type="text"
746
- ?disabled=${this.disabled}
747
- ?required=${this.required}
748
- .value=${Array.isArray(this.value)
749
- ? this.value.join(', ')
750
- : this.value}
751
- tabindex="-1"
752
- aria-hidden="true"
753
- @focus=${() => this.focus()}
754
- @invalid=${this.handleInvalid}
755
- />
756
- `;
757
- }
758
- renderClearButton(hasClearIcon) {
759
- return hasClearIcon
760
- ? html `
761
- <button
762
- part="clear-button"
763
- class="select__clear"
764
- type="button"
765
- aria-label="clearEntry"
766
- @mousedown=${this.handleClearMouseDown}
767
- @click=${this.handleClearClick}
768
- tabindex="-1"
769
- >
770
- <slot name="clear-icon">
771
- <nile-icon name="close" library="system"></nile-icon>
772
- </slot>
773
- </button>
774
- `
775
- : html ``;
776
- }
777
- renderSuffix() {
778
- return html `
779
- <slot
780
- part="suffix"
781
- name="suffix"
782
- class=${classMap({
783
- select__suffix: true,
784
- })}
785
- ></slot>
786
- `;
787
- }
788
- renderExpandIcon() {
789
- return html `
790
- <slot
791
- name="expand-icon"
792
- part="expand-icon"
793
- class="select__expand-icon"
794
- >
795
- <nile-icon library="system" name="arrowdown"></nile-icon>
796
- </slot>
797
- `;
798
- }
799
- renderListbox() {
800
- return html `
801
- <div
802
- id="listbox"
803
- role="listbox"
804
- aria-expanded=${this.open ? 'true' : 'false'}
805
- aria-multiselectable=${this.multiple ? 'true' : 'false'}
806
- aria-labelledby="label"
807
- part="listbox"
808
- class="select__listbox ${this.searchEnabled
809
- ? 'select__search-enabled '
810
- : ''}"
811
- tabindex="-1"
812
- @mouseup=${this.handleOptionClick}
813
- >
814
- ${this.renderSearch()}
815
- ${this.renderLoader()}
816
- ${this.getVirtualizedContent()}
817
- </div>
818
- `;
819
- }
820
- renderSearch() {
821
- return this.searchEnabled
822
- ? html `
823
- <div class="select__search">
824
- <nile-input
825
- size="small"
826
- clearable
827
- .value=${this.searchValue}
828
- placeholder="${this.internalSearchPlaceHolder}"
829
- @nile-input=${this.handleSearchChange}
830
- @nile-focus=${this.handleSearchFocus}
831
- @nile-change="${this.onInputChange}"
832
- >
833
- <nile-icon name="search" slot="suffix"> </nile-icon>
834
- </nile-input>
835
- </div>
836
- `
837
- : html ``;
838
- }
839
- renderLoader() {
840
- return this.optionsLoading
841
- ? html `
842
- <span class="select__loader">
843
- <nile-icon
844
- class="select__loader--icon"
845
- name="button-loading-blue"
846
- ></nile-icon>
847
- </span>
848
- `
849
- : html ``;
850
- }
851
- renderHelpText(hasHelpText, hasErrorMessage) {
852
- return html `
853
- ${hasHelpText
854
- ? html ` <nile-form-help-text>${this.helpText}</nile-form-help-text> `
855
- : ``}
856
- ${hasErrorMessage
857
- ? html `
858
- <nile-form-error-message
859
- >${this.errorMessage}</nile-form-error-message
860
- >
861
- `
862
- : ``}
863
- `;
864
- }
865
- getVirtualizedContent() {
866
- return VirtualSelectRenderer.getVirtualizedContent(this.allOptionItems, this.searchEnabled, this.renderItemFunction, this.value, this.multiple);
867
- }
868
- nileInput(value) {
869
- this.emit('nile-input', value);
870
- }
871
- nileChange(value) {
872
- this.emit('nile-change', value);
873
- }
874
- updateValidity() {
875
- this.updateComplete.then(() => {
876
- this.formControlController.updateValidity();
877
- });
878
- }
879
- calculateWidthOfSelectTagsDiv() {
880
- if (this.shadowRoot) {
881
- const selectTagsDiv = this.shadowRoot.querySelector('.select__tags');
882
- if (selectTagsDiv) {
883
- const width = selectTagsDiv.offsetWidth;
884
- return width - 70;
885
- }
886
- }
887
- return null;
888
- }
889
- calculateTotalWidthOfTags() {
890
- if (this.maxOptionsVisible !== Infinity) {
891
- this.oldMaxOptionsVisible = this.maxOptionsVisible;
892
- }
893
- this.maxOptionsVisible = Infinity;
894
- setTimeout(() => {
895
- let widths = [];
896
- if (this.shadowRoot) {
897
- const tags = this.shadowRoot.querySelectorAll('nile-tag');
898
- tags.forEach(tag => {
899
- if (tag instanceof HTMLElement) {
900
- widths.push(tag.offsetWidth);
901
- }
902
- });
903
- }
904
- if (this.value.length !== widths.length) {
905
- return;
906
- }
907
- let sum = widths.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
908
- const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();
909
- if (!widthOfSelectTagsDiv) {
910
- return;
911
- }
912
- let summ = 0;
913
- let lastindex = 0;
914
- for (let i = 0; i < widths.length; i++) {
915
- summ += widths[i];
916
- if (summ > widthOfSelectTagsDiv) {
917
- lastindex = i;
918
- break;
919
- }
920
- }
921
- this.maxOptionsVisible = lastindex;
922
- }, 1);
923
- }
924
- };
925
- NileVirtualSelect.styles = styles;
926
- __decorate([
927
- query('.select')
928
- ], NileVirtualSelect.prototype, "popup", void 0);
929
- __decorate([
930
- query('.select__display-input')
931
- ], NileVirtualSelect.prototype, "displayInput", void 0);
932
- __decorate([
933
- query('.select__value-input')
934
- ], NileVirtualSelect.prototype, "valueInput", void 0);
935
- __decorate([
936
- state()
937
- ], NileVirtualSelect.prototype, "hasFocus", void 0);
938
- __decorate([
939
- state()
940
- ], NileVirtualSelect.prototype, "displayLabel", void 0);
941
- __decorate([
942
- state()
943
- ], NileVirtualSelect.prototype, "selectedOptions", void 0);
944
- __decorate([
945
- state()
946
- ], NileVirtualSelect.prototype, "oldValue", void 0);
947
- __decorate([
948
- property()
949
- ], NileVirtualSelect.prototype, "name", void 0);
950
- __decorate([
951
- property({ type: Array })
952
- ], NileVirtualSelect.prototype, "allOptionItems", void 0);
953
- __decorate([
954
- state()
955
- ], NileVirtualSelect.prototype, "originalOptionItems", void 0);
956
- __decorate([
957
- property({
958
- converter: {
959
- fromAttribute: (value) => value.split(' '),
960
- toAttribute: (value) => value.join(' '),
961
- },
962
- })
963
- ], NileVirtualSelect.prototype, "value", void 0);
964
- __decorate([
965
- defaultValue()
966
- ], NileVirtualSelect.prototype, "defaultValue", void 0);
967
- __decorate([
968
- property()
969
- ], NileVirtualSelect.prototype, "size", void 0);
970
- __decorate([
971
- property()
972
- ], NileVirtualSelect.prototype, "placeholder", void 0);
973
- __decorate([
974
- state()
975
- ], NileVirtualSelect.prototype, "searchValue", void 0);
976
- __decorate([
977
- property({ type: Boolean, reflect: true })
978
- ], NileVirtualSelect.prototype, "searchEnabled", void 0);
979
- __decorate([
980
- property({ attribute: 'internal-search-placeholder' })
981
- ], NileVirtualSelect.prototype, "internalSearchPlaceHolder", void 0);
982
- __decorate([
983
- property({ type: Boolean, reflect: true })
984
- ], NileVirtualSelect.prototype, "disableLocalSearch", void 0);
985
- __decorate([
986
- property({ type: Boolean, reflect: true })
987
- ], NileVirtualSelect.prototype, "optionsLoading", void 0);
988
- __decorate([
989
- property({ type: Boolean, reflect: true })
990
- ], NileVirtualSelect.prototype, "multiple", void 0);
991
- __decorate([
992
- property({ attribute: 'help-text', reflect: true })
993
- ], NileVirtualSelect.prototype, "helpText", void 0);
994
- __decorate([
995
- property({ attribute: 'error-message', reflect: true })
996
- ], NileVirtualSelect.prototype, "errorMessage", void 0);
997
- __decorate([
998
- property({ type: Boolean })
999
- ], NileVirtualSelect.prototype, "warning", void 0);
1000
- __decorate([
1001
- property({ type: Boolean })
1002
- ], NileVirtualSelect.prototype, "error", void 0);
1003
- __decorate([
1004
- property({ type: Boolean })
1005
- ], NileVirtualSelect.prototype, "success", void 0);
1006
- __decorate([
1007
- property({ type: Boolean, reflect: true })
1008
- ], NileVirtualSelect.prototype, "disabled", void 0);
1009
- __decorate([
1010
- property({ type: Boolean, reflect: true })
1011
- ], NileVirtualSelect.prototype, "clearable", void 0);
1012
- __decorate([
1013
- property({ type: Boolean, reflect: true })
1014
- ], NileVirtualSelect.prototype, "open", void 0);
1015
- __decorate([
1016
- property({ type: Boolean })
1017
- ], NileVirtualSelect.prototype, "hoist", void 0);
1018
- __decorate([
1019
- property({ type: Boolean, reflect: true })
1020
- ], NileVirtualSelect.prototype, "filled", void 0);
1021
- __decorate([
1022
- property({ type: Boolean, reflect: true })
1023
- ], NileVirtualSelect.prototype, "pill", void 0);
1024
- __decorate([
1025
- property()
1026
- ], NileVirtualSelect.prototype, "label", void 0);
1027
- __decorate([
1028
- property({ reflect: true })
1029
- ], NileVirtualSelect.prototype, "placement", void 0);
1030
- __decorate([
1031
- property({ reflect: true })
1032
- ], NileVirtualSelect.prototype, "form", void 0);
1033
- __decorate([
1034
- property({ type: Boolean, reflect: true })
1035
- ], NileVirtualSelect.prototype, "required", void 0);
1036
- __decorate([
1037
- property({ type: Boolean })
1038
- ], NileVirtualSelect.prototype, "showNoResults", void 0);
1039
- __decorate([
1040
- property({ type: String })
1041
- ], NileVirtualSelect.prototype, "noResultsMessage", void 0);
1042
- __decorate([
1043
- property({ attribute: false })
1044
- ], NileVirtualSelect.prototype, "renderItemFunction", void 0);
1045
- __decorate([
1046
- property({ type: Boolean, reflect: true })
1047
- ], NileVirtualSelect.prototype, "blockValueChange", void 0);
1048
- __decorate([
1049
- property({ type: Boolean, reflect: true })
1050
- ], NileVirtualSelect.prototype, "noWidthSync", void 0);
1051
- __decorate([
1052
- property({ attribute: 'max-options-visible', type: Number })
1053
- ], NileVirtualSelect.prototype, "maxOptionsVisible", void 0);
1054
- __decorate([
1055
- state()
1056
- ], NileVirtualSelect.prototype, "oldMaxOptionsVisible", void 0);
1057
- __decorate([
1058
- watch('disabled', { waitUntilFirstUpdate: true })
1059
- ], NileVirtualSelect.prototype, "handleDisabledChange", null);
1060
- __decorate([
1061
- watch('value', { waitUntilFirstUpdate: true })
1062
- ], NileVirtualSelect.prototype, "handleValueChange", null);
1063
- __decorate([
1064
- watch('allOptionItems', { waitUntilFirstUpdate: true })
1065
- ], NileVirtualSelect.prototype, "handleAllOptionItemsChange", null);
1066
- __decorate([
1067
- watch('renderItemFunction', { waitUntilFirstUpdate: true })
1068
- ], NileVirtualSelect.prototype, "handleRenderItemFunctionChange", null);
1069
- __decorate([
1070
- watch('open', { waitUntilFirstUpdate: true })
1071
- ], NileVirtualSelect.prototype, "handleOpenChange", null);
1072
- NileVirtualSelect = __decorate([
1073
- customElement('nile-virtual-select')
1074
- ], NileVirtualSelect);
1075
- export { NileVirtualSelect };
1076
- setDefaultAnimation('select.show', {
1077
- keyframes: [
1078
- { opacity: 0, scale: 0.9 },
1079
- { opacity: 1, scale: 1 },
1080
- ],
1081
- options: { duration: 100, easing: 'ease' },
1082
- });
1083
- setDefaultAnimation('select.hide', {
1084
- keyframes: [
1085
- { opacity: 1, scale: 1 },
1086
- { opacity: 0, scale: 0.9 },
1087
- ],
1088
- options: { duration: 100, easing: 'ease' },
1089
- });
1090
- export default NileVirtualSelect;
1091
- //# sourceMappingURL=nile-virtual-select.js.map