@aquera/nile-elements 1.5.2 → 1.5.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 (517) hide show
  1. package/README.md +6 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +239 -195
  5. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
  6. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  7. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
  8. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
  9. package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +1 -1
  10. package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
  11. package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
  12. package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
  13. package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
  14. package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
  15. package/dist/nile-file-preview/nile-file-preview.css.esm.js +2 -2
  16. package/dist/nile-file-preview/nile-file-preview.esm.js +1 -1
  17. package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
  18. package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
  19. package/dist/nile-file-preview/nile-file-preview.template.esm.js +55 -25
  20. package/dist/nile-file-preview/utils/index.cjs.js +1 -1
  21. package/dist/nile-file-preview/utils/index.esm.js +1 -1
  22. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
  23. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
  24. package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
  25. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  26. package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
  27. package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
  28. package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
  29. package/dist/nile-file-upload/nile-file-upload.css.esm.js +15 -5
  30. package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
  31. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +2 -2
  32. package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
  33. package/dist/nile-file-upload/nile-file-upload.template.esm.js +36 -32
  34. package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
  35. package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
  36. package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
  37. package/dist/nile-file-upload/types/index.cjs.js +1 -1
  38. package/dist/nile-file-upload/types/index.esm.js +1 -1
  39. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +1 -1
  40. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -1
  41. package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -1
  42. package/dist/nile-file-upload/utils/file-validation.util.cjs.js +4 -2
  43. package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
  44. package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
  45. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js +1 -1
  46. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -1
  47. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.esm.js +3 -3
  48. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +1 -1
  49. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -1
  50. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -1
  51. package/dist/nile-grid/nile-grid.cjs.js +1 -1
  52. package/dist/nile-grid/nile-grid.cjs.js.map +1 -1
  53. package/dist/nile-grid/nile-grid.esm.js +2 -2
  54. package/dist/nile-grid/nile-grid.layout.cjs.js +1 -1
  55. package/dist/nile-grid/nile-grid.layout.esm.js +1 -1
  56. package/dist/nile-grid/nile-grid.resize.cjs.js +1 -1
  57. package/dist/nile-grid/nile-grid.resize.esm.js +1 -1
  58. package/dist/nile-grid/nile-grid.utils.cjs.js +1 -1
  59. package/dist/nile-grid/nile-grid.utils.esm.js +1 -1
  60. package/dist/nile-grid/nile-grid.width.cjs.js +1 -1
  61. package/dist/nile-grid/nile-grid.width.cjs.js.map +1 -1
  62. package/dist/nile-grid/nile-grid.width.esm.js +1 -1
  63. package/dist/nile-input/nile-input.cjs.js +1 -1
  64. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  65. package/dist/nile-input/nile-input.esm.js +1 -1
  66. package/dist/nile-popover/index.cjs.js +1 -1
  67. package/dist/nile-popover/index.esm.js +1 -1
  68. package/dist/nile-popover/nile-popover.cjs.js +4 -4
  69. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  70. package/dist/nile-popover/nile-popover.esm.js +11 -6
  71. package/dist/src/nile-accordion/nile-accordian.test.js +101 -99
  72. package/dist/src/nile-accordion/nile-accordian.test.js.map +1 -1
  73. package/dist/src/nile-auto-complete/nile-auto-complete.css.js +1 -1
  74. package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
  75. package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
  76. package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
  77. package/dist/src/nile-auto-complete/nile-auto-complete.test.js +104 -112
  78. package/dist/src/nile-auto-complete/nile-auto-complete.test.js.map +1 -1
  79. package/dist/src/nile-avatar/nile-avatar.test.d.ts +0 -1
  80. package/dist/src/nile-avatar/nile-avatar.test.js +103 -87
  81. package/dist/src/nile-avatar/nile-avatar.test.js.map +1 -1
  82. package/dist/src/nile-badge/nile-badge.test.js +554 -35
  83. package/dist/src/nile-badge/nile-badge.test.js.map +1 -1
  84. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.d.ts +2 -0
  85. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js +106 -0
  86. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js.map +1 -0
  87. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.d.ts +1 -0
  88. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js +108 -0
  89. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js.map +1 -0
  90. package/dist/src/nile-button/nile-button.test.js +499 -39
  91. package/dist/src/nile-button/nile-button.test.js.map +1 -1
  92. package/dist/src/nile-button-filter/nile-button-filter.test.d.ts +1 -0
  93. package/dist/src/nile-button-filter/nile-button-filter.test.js +108 -0
  94. package/dist/src/nile-button-filter/nile-button-filter.test.js.map +1 -0
  95. package/dist/src/nile-button-toggle/nile-button-toggle.test.d.ts +1 -0
  96. package/dist/src/nile-button-toggle/nile-button-toggle.test.js +108 -0
  97. package/dist/src/nile-button-toggle/nile-button-toggle.test.js.map +1 -0
  98. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.d.ts +1 -1
  99. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js +105 -104
  100. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js.map +1 -1
  101. package/dist/src/nile-calendar/nile-calendar.test.d.ts +0 -6
  102. package/dist/src/nile-calendar/nile-calendar.test.js +103 -318
  103. package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
  104. package/dist/src/nile-card/nile-card.test.js +102 -66
  105. package/dist/src/nile-card/nile-card.test.js.map +1 -1
  106. package/dist/src/nile-checkbox/nile-checkbox.test.js +547 -108
  107. package/dist/src/nile-checkbox/nile-checkbox.test.js.map +1 -1
  108. package/dist/src/nile-chip/nile-chip.test.d.ts +0 -2
  109. package/dist/src/nile-chip/nile-chip.test.js +101 -102
  110. package/dist/src/nile-chip/nile-chip.test.js.map +1 -1
  111. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.d.ts +1 -0
  112. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js +108 -0
  113. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js.map +1 -0
  114. package/dist/src/nile-date-picker/nile-date-picker.test.d.ts +1 -0
  115. package/dist/src/nile-date-picker/nile-date-picker.test.js +108 -0
  116. package/dist/src/nile-date-picker/nile-date-picker.test.js.map +1 -0
  117. package/dist/src/nile-dialog/nile-dialog.test.d.ts +0 -1
  118. package/dist/src/nile-dialog/nile-dialog.test.js +104 -126
  119. package/dist/src/nile-dialog/nile-dialog.test.js.map +1 -1
  120. package/dist/src/nile-divider/nile-divider.test.d.ts +1 -0
  121. package/dist/src/nile-divider/nile-divider.test.js +560 -0
  122. package/dist/src/nile-divider/nile-divider.test.js.map +1 -0
  123. package/dist/src/nile-drawer/nile-drawer.test.js +106 -86
  124. package/dist/src/nile-drawer/nile-drawer.test.js.map +1 -1
  125. package/dist/src/nile-dropdown/nile-dropdown.test.js +104 -148
  126. package/dist/src/nile-dropdown/nile-dropdown.test.js.map +1 -1
  127. package/dist/src/nile-empty-state/nile-empty-state.test.js +107 -59
  128. package/dist/src/nile-empty-state/nile-empty-state.test.js.map +1 -1
  129. package/dist/src/nile-error-message/nile-error-message.test.js +105 -55
  130. package/dist/src/nile-error-message/nile-error-message.test.js.map +1 -1
  131. package/dist/src/nile-error-notification/nile-error-notification.test.d.ts +1 -0
  132. package/dist/src/nile-error-notification/nile-error-notification.test.js +108 -0
  133. package/dist/src/nile-error-notification/nile-error-notification.test.js.map +1 -0
  134. package/dist/src/nile-file-preview/nile-file-preview.css.js +2 -2
  135. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
  136. package/dist/src/nile-file-preview/nile-file-preview.d.ts +1 -4
  137. package/dist/src/nile-file-preview/nile-file-preview.js +21 -47
  138. package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
  139. package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +6 -6
  140. package/dist/src/nile-file-preview/nile-file-preview.template.js +53 -23
  141. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
  142. package/dist/src/nile-file-preview/nile-file-preview.test.d.ts +0 -6
  143. package/dist/src/nile-file-preview/nile-file-preview.test.js +106 -28
  144. package/dist/src/nile-file-preview/nile-file-preview.test.js.map +1 -1
  145. package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +3 -2
  146. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +32 -7
  147. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
  148. package/dist/src/nile-file-upload/nile-file-upload.css.js +15 -5
  149. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
  150. package/dist/src/nile-file-upload/nile-file-upload.d.ts +4 -1
  151. package/dist/src/nile-file-upload/nile-file-upload.js +13 -1
  152. package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
  153. package/dist/src/nile-file-upload/nile-file-upload.template.js +19 -15
  154. package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
  155. package/dist/src/nile-file-upload/nile-file-upload.test.d.ts +0 -6
  156. package/dist/src/nile-file-upload/nile-file-upload.test.js +106 -28
  157. package/dist/src/nile-file-upload/nile-file-upload.test.js.map +1 -1
  158. package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +17 -3
  159. package/dist/src/nile-file-upload/types/file-upload.enums.js +17 -1
  160. package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
  161. package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +2 -0
  162. package/dist/src/nile-file-upload/utils/drag-drop.util.js +14 -8
  163. package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -1
  164. package/dist/src/nile-file-upload/utils/file-validation.util.js +89 -10
  165. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
  166. package/dist/src/nile-filter-chip/nile-filter-chip.test.js +102 -77
  167. package/dist/src/nile-filter-chip/nile-filter-chip.test.js.map +1 -1
  168. package/dist/src/nile-form-error-message/nile-form-error-message.test.d.ts +1 -0
  169. package/dist/src/nile-form-error-message/nile-form-error-message.test.js +108 -0
  170. package/dist/src/nile-form-error-message/nile-form-error-message.test.js.map +1 -0
  171. package/dist/src/nile-form-group/nile-form-group.test.js +104 -51
  172. package/dist/src/nile-form-group/nile-form-group.test.js.map +1 -1
  173. package/dist/src/nile-form-help-text/nile-form-help-text.test.js +104 -84
  174. package/dist/src/nile-form-help-text/nile-form-help-text.test.js.map +1 -1
  175. package/dist/src/nile-format-date/nile-format-date.test.d.ts +1 -0
  176. package/dist/src/nile-format-date/nile-format-date.test.js +108 -0
  177. package/dist/src/nile-format-date/nile-format-date.test.js.map +1 -0
  178. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js +6 -5
  179. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js.map +1 -1
  180. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.d.ts +14 -0
  181. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js +24 -0
  182. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -1
  183. package/dist/src/nile-grid/nile-grid.d.ts +1 -0
  184. package/dist/src/nile-grid/nile-grid.js +5 -1
  185. package/dist/src/nile-grid/nile-grid.js.map +1 -1
  186. package/dist/src/nile-grid/nile-grid.utils.d.ts +6 -0
  187. package/dist/src/nile-grid/nile-grid.utils.js +13 -0
  188. package/dist/src/nile-grid/nile-grid.utils.js.map +1 -1
  189. package/dist/src/nile-heading/nile-heading.test.d.ts +1 -0
  190. package/dist/src/nile-heading/nile-heading.test.js +108 -0
  191. package/dist/src/nile-heading/nile-heading.test.js.map +1 -0
  192. package/dist/src/nile-hero/nile-hero.test.js +101 -38
  193. package/dist/src/nile-hero/nile-hero.test.js.map +1 -1
  194. package/dist/src/nile-icon/nile-icon.test.js +103 -40
  195. package/dist/src/nile-icon/nile-icon.test.js.map +1 -1
  196. package/dist/src/nile-icon-button/nile-icon-button.test.d.ts +1 -0
  197. package/dist/src/nile-icon-button/nile-icon-button.test.js +568 -0
  198. package/dist/src/nile-icon-button/nile-icon-button.test.js.map +1 -0
  199. package/dist/src/nile-inline-edit/nile-inline-edit.test.d.ts +1 -0
  200. package/dist/src/nile-inline-edit/nile-inline-edit.test.js +108 -0
  201. package/dist/src/nile-inline-edit/nile-inline-edit.test.js.map +1 -0
  202. package/dist/src/nile-input/nile-input.js +1 -1
  203. package/dist/src/nile-input/nile-input.js.map +1 -1
  204. package/dist/src/nile-input/nile-input.test.js +109 -139
  205. package/dist/src/nile-input/nile-input.test.js.map +1 -1
  206. package/dist/src/nile-link/nile-link.test.js +103 -67
  207. package/dist/src/nile-link/nile-link.test.js.map +1 -1
  208. package/dist/src/nile-list/nile-list.test.d.ts +1 -0
  209. package/dist/src/nile-list/nile-list.test.js +108 -0
  210. package/dist/src/nile-list/nile-list.test.js.map +1 -0
  211. package/dist/src/nile-list-item/nile-list-item.test.d.ts +1 -0
  212. package/dist/src/nile-list-item/nile-list-item.test.js +108 -0
  213. package/dist/src/nile-list-item/nile-list-item.test.js.map +1 -0
  214. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.d.ts +2 -0
  215. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js +109 -0
  216. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js.map +1 -0
  217. package/dist/src/nile-loader/nile-loader.test.js +107 -40
  218. package/dist/src/nile-loader/nile-loader.test.js.map +1 -1
  219. package/dist/src/nile-menu/nile-menu.test.d.ts +1 -0
  220. package/dist/src/nile-menu/nile-menu.test.js +113 -0
  221. package/dist/src/nile-menu/nile-menu.test.js.map +1 -0
  222. package/dist/src/nile-menu-item/nile-menu-item.test.d.ts +1 -0
  223. package/dist/src/nile-menu-item/nile-menu-item.test.js +113 -0
  224. package/dist/src/nile-menu-item/nile-menu-item.test.js.map +1 -0
  225. package/dist/src/nile-option/nile-option.test.d.ts +1 -0
  226. package/dist/src/nile-option/nile-option.test.js +108 -0
  227. package/dist/src/nile-option/nile-option.test.js.map +1 -0
  228. package/dist/src/nile-option-group/nile-option-group.test.d.ts +1 -0
  229. package/dist/src/nile-option-group/nile-option-group.test.js +108 -0
  230. package/dist/src/nile-option-group/nile-option-group.test.js.map +1 -0
  231. package/dist/src/nile-page-header/nile-page-header.test.d.ts +1 -0
  232. package/dist/src/nile-page-header/nile-page-header.test.js +108 -0
  233. package/dist/src/nile-page-header/nile-page-header.test.js.map +1 -0
  234. package/dist/src/nile-pagination/nile-pagination.test.d.ts +1 -0
  235. package/dist/src/nile-pagination/nile-pagination.test.js +108 -0
  236. package/dist/src/nile-pagination/nile-pagination.test.js.map +1 -0
  237. package/dist/src/nile-popover/nile-popover.test.js +103 -68
  238. package/dist/src/nile-popover/nile-popover.test.js.map +1 -1
  239. package/dist/src/nile-popup/nile-popup.test.js +104 -65
  240. package/dist/src/nile-popup/nile-popup.test.js.map +1 -1
  241. package/dist/src/nile-progress-bar/nile-progress-bar.test.js +104 -44
  242. package/dist/src/nile-progress-bar/nile-progress-bar.test.js.map +1 -1
  243. package/dist/src/nile-radio/nile-radio.test.js +103 -66
  244. package/dist/src/nile-radio/nile-radio.test.js.map +1 -1
  245. package/dist/src/nile-radio-group/nile-radio-group.test.d.ts +0 -1
  246. package/dist/src/nile-radio-group/nile-radio-group.test.js +105 -171
  247. package/dist/src/nile-radio-group/nile-radio-group.test.js.map +1 -1
  248. package/dist/src/nile-section-message/nile-section-message.test.d.ts +1 -0
  249. package/dist/src/nile-section-message/nile-section-message.test.js +108 -0
  250. package/dist/src/nile-section-message/nile-section-message.test.js.map +1 -0
  251. package/dist/src/nile-select/nile-select.test.d.ts +0 -5
  252. package/dist/src/nile-select/nile-select.test.js +105 -244
  253. package/dist/src/nile-select/nile-select.test.js.map +1 -1
  254. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.d.ts +1 -0
  255. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js +108 -0
  256. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js.map +1 -0
  257. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js +104 -50
  258. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js.map +1 -1
  259. package/dist/src/nile-slider/nile-slider.test.d.ts +1 -0
  260. package/dist/src/nile-slider/nile-slider.test.js +108 -0
  261. package/dist/src/nile-slider/nile-slider.test.js.map +1 -0
  262. package/dist/src/nile-spinner/nile-spinner.test.d.ts +1 -0
  263. package/dist/src/nile-spinner/nile-spinner.test.js +569 -0
  264. package/dist/src/nile-spinner/nile-spinner.test.js.map +1 -0
  265. package/dist/src/nile-split-panel/nile-split-panel.test.d.ts +1 -0
  266. package/dist/src/nile-split-panel/nile-split-panel.test.js +108 -0
  267. package/dist/src/nile-split-panel/nile-split-panel.test.js.map +1 -0
  268. package/dist/src/nile-stepper/nile-stepper.test.d.ts +2 -0
  269. package/dist/src/nile-stepper/nile-stepper.test.js +109 -0
  270. package/dist/src/nile-stepper/nile-stepper.test.js.map +1 -0
  271. package/dist/src/nile-stepper-item/nile-stepper-item.test.d.ts +1 -0
  272. package/dist/src/nile-stepper-item/nile-stepper-item.test.js +108 -0
  273. package/dist/src/nile-stepper-item/nile-stepper-item.test.js.map +1 -0
  274. package/dist/src/nile-tab/nile-tab.test.d.ts +1 -0
  275. package/dist/src/nile-tab/nile-tab.test.js +108 -0
  276. package/dist/src/nile-tab/nile-tab.test.js.map +1 -0
  277. package/dist/src/nile-tab-group/nile-tab-group.test.js +105 -172
  278. package/dist/src/nile-tab-group/nile-tab-group.test.js.map +1 -1
  279. package/dist/src/nile-tab-panel/nile-tab-panel.test.d.ts +1 -0
  280. package/dist/src/nile-tab-panel/nile-tab-panel.test.js +108 -0
  281. package/dist/src/nile-tab-panel/nile-tab-panel.test.js.map +1 -0
  282. package/dist/src/nile-tag/nile-tag.test.d.ts +1 -0
  283. package/dist/src/nile-tag/nile-tag.test.js +574 -0
  284. package/dist/src/nile-tag/nile-tag.test.js.map +1 -0
  285. package/dist/src/nile-textarea/nile-textarea.test.d.ts +1 -1
  286. package/dist/src/nile-textarea/nile-textarea.test.js +105 -84
  287. package/dist/src/nile-textarea/nile-textarea.test.js.map +1 -1
  288. package/dist/src/nile-title/nile-title.test.d.ts +1 -0
  289. package/dist/src/nile-title/nile-title.test.js +108 -0
  290. package/dist/src/nile-title/nile-title.test.js.map +1 -0
  291. package/dist/src/nile-toast/nile-toast.test.d.ts +1 -0
  292. package/dist/src/nile-toast/nile-toast.test.js +526 -0
  293. package/dist/src/nile-toast/nile-toast.test.js.map +1 -0
  294. package/dist/src/nile-toolbar/nile-toolbar.test.d.ts +1 -0
  295. package/dist/src/nile-toolbar/nile-toolbar.test.js +108 -0
  296. package/dist/src/nile-toolbar/nile-toolbar.test.js.map +1 -0
  297. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +1 -0
  298. package/dist/src/nile-tooltip/nile-tooltip.test.js +546 -0
  299. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +1 -0
  300. package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +1 -7
  301. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +105 -628
  302. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
  303. package/dist/src/version.js +1 -1
  304. package/dist/src/version.js.map +1 -1
  305. package/dist/tsconfig.tsbuildinfo +1 -1
  306. package/package.json +1 -1
  307. package/rollup.config.js +7 -1
  308. package/src/nile-accordion/nile-accordian.test.ts +102 -116
  309. package/src/nile-auto-complete/nile-auto-complete.css.ts +1 -1
  310. package/src/nile-auto-complete/nile-auto-complete.test.ts +102 -145
  311. package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
  312. package/src/nile-avatar/nile-avatar.test.ts +102 -112
  313. package/src/nile-badge/nile-badge.test.ts +642 -30
  314. package/src/nile-breadcrumb/nile-breadcrumb.test.ts +107 -0
  315. package/src/nile-breadcrumb-item/nile-breadcrumb-item.test.ts +106 -0
  316. package/src/nile-button/nile-button.test.ts +593 -61
  317. package/src/nile-button-filter/nile-button-filter.test.ts +106 -0
  318. package/src/nile-button-toggle/nile-button-toggle.test.ts +106 -0
  319. package/src/nile-button-toggle-group/nile-button-toggle-group.test.ts +104 -126
  320. package/src/nile-calendar/nile-calendar.test.ts +102 -406
  321. package/src/nile-card/nile-card.test.ts +103 -71
  322. package/src/nile-checkbox/nile-checkbox.test.ts +614 -108
  323. package/src/nile-chip/nile-chip.test.ts +102 -136
  324. package/src/nile-circular-progressbar/nile-circular-progressbar.test.ts +106 -0
  325. package/src/nile-date-picker/nile-date-picker.test.ts +106 -0
  326. package/src/nile-dialog/nile-dialog.test.ts +102 -164
  327. package/src/nile-divider/nile-divider.test.ts +659 -0
  328. package/src/nile-drawer/nile-drawer.test.ts +105 -105
  329. package/src/nile-dropdown/nile-dropdown.test.ts +102 -190
  330. package/src/nile-empty-state/nile-empty-state.test.ts +104 -67
  331. package/src/nile-error-message/nile-error-message.test.ts +104 -67
  332. package/src/nile-error-notification/nile-error-notification.test.ts +106 -0
  333. package/src/nile-file-preview/nile-file-preview.css.ts +2 -2
  334. package/src/nile-file-preview/nile-file-preview.template.ts +59 -23
  335. package/src/nile-file-preview/nile-file-preview.test.ts +105 -37
  336. package/src/nile-file-preview/nile-file-preview.ts +23 -56
  337. package/src/nile-file-preview/utils/nile-file-preview.util.ts +37 -8
  338. package/src/nile-file-upload/nile-file-upload.css.ts +15 -5
  339. package/src/nile-file-upload/nile-file-upload.template.ts +22 -18
  340. package/src/nile-file-upload/nile-file-upload.test.ts +105 -37
  341. package/src/nile-file-upload/nile-file-upload.ts +11 -3
  342. package/src/nile-file-upload/types/file-upload.enums.ts +20 -4
  343. package/src/nile-file-upload/utils/drag-drop.util.ts +20 -11
  344. package/src/nile-file-upload/utils/file-validation.util.ts +104 -22
  345. package/src/nile-filter-chip/nile-filter-chip.test.ts +103 -89
  346. package/src/nile-form-error-message/nile-form-error-message.test.ts +106 -0
  347. package/src/nile-form-group/nile-form-group.test.ts +103 -60
  348. package/src/nile-form-help-text/nile-form-help-text.test.ts +102 -106
  349. package/src/nile-format-date/nile-format-date.test.ts +106 -0
  350. package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.ts +7 -5
  351. package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.ts +28 -0
  352. package/src/nile-grid/nile-grid.ts +6 -1
  353. package/src/nile-grid/nile-grid.utils.ts +18 -1
  354. package/src/nile-heading/nile-heading.test.ts +106 -0
  355. package/src/nile-hero/nile-hero.test.ts +103 -42
  356. package/src/nile-icon/nile-icon.test.ts +103 -50
  357. package/src/nile-icon-button/nile-icon-button.test.ts +667 -0
  358. package/src/nile-inline-edit/nile-inline-edit.test.ts +106 -0
  359. package/src/nile-input/nile-input.test.ts +105 -164
  360. package/src/nile-input/nile-input.ts +1 -1
  361. package/src/nile-link/nile-link.test.ts +104 -81
  362. package/src/nile-list/nile-list.test.ts +106 -0
  363. package/src/nile-list-item/nile-list-item.test.ts +106 -0
  364. package/src/nile-lite-tooltip/nile-lite-tooltip.test.ts +107 -0
  365. package/src/nile-loader/nile-loader.test.ts +103 -48
  366. package/src/nile-menu/nile-menu.test.ts +106 -0
  367. package/src/nile-menu-item/nile-menu-item.test.ts +106 -0
  368. package/src/nile-option/nile-option.test.ts +106 -0
  369. package/src/nile-option-group/nile-option-group.test.ts +106 -0
  370. package/src/nile-page-header/nile-page-header.test.ts +106 -0
  371. package/src/nile-pagination/nile-pagination.test.ts +106 -0
  372. package/src/nile-popover/nile-popover.test.ts +103 -83
  373. package/src/nile-popup/nile-popup.test.ts +102 -82
  374. package/src/nile-progress-bar/nile-progress-bar.test.ts +103 -52
  375. package/src/nile-radio/nile-radio.test.ts +103 -78
  376. package/src/nile-radio-group/nile-radio-group.test.ts +104 -213
  377. package/src/nile-section-message/nile-section-message.test.ts +106 -0
  378. package/src/nile-select/nile-select.test.ts +105 -308
  379. package/src/nile-skeleton-loader/nile-skeleton-loader.test.ts +106 -0
  380. package/src/nile-slide-toggle/nile-slide-toggle.test.ts +103 -58
  381. package/src/nile-slider/nile-slider.test.ts +106 -0
  382. package/src/nile-spinner/nile-spinner.test.ts +668 -0
  383. package/src/nile-split-panel/nile-split-panel.test.ts +106 -0
  384. package/src/nile-stepper/nile-stepper.test.ts +107 -0
  385. package/src/nile-stepper-item/nile-stepper-item.test.ts +106 -0
  386. package/src/nile-tab/nile-tab.test.ts +106 -0
  387. package/src/nile-tab-group/nile-tab-group.test.ts +104 -211
  388. package/src/nile-tab-panel/nile-tab-panel.test.ts +106 -0
  389. package/src/nile-tag/nile-tag.test.ts +675 -0
  390. package/src/nile-textarea/nile-textarea.test.ts +104 -100
  391. package/src/nile-title/nile-title.test.ts +106 -0
  392. package/src/nile-toast/nile-toast.test.ts +625 -0
  393. package/src/nile-toolbar/nile-toolbar.test.ts +106 -0
  394. package/src/nile-tooltip/nile-tooltip.test.ts +645 -0
  395. package/src/nile-virtual-select/nile-virtual-select.test.ts +104 -772
  396. package/vscode-html-custom-data.json +8 -3
  397. package/web-test-runner.config.mjs +4 -2
  398. package/dist/axe.min-2720cd56.esm.js +0 -1
  399. package/dist/axe.min-69d47269.cjs.js +0 -2
  400. package/dist/axe.min-69d47269.cjs.js.map +0 -1
  401. package/dist/css-tag-bb10c0fa.cjs.js +0 -6
  402. package/dist/css-tag-bb10c0fa.cjs.js.map +0 -1
  403. package/dist/css-tag-dc564feb.esm.js +0 -6
  404. package/dist/fixture-958445f8.cjs.js +0 -395
  405. package/dist/fixture-958445f8.cjs.js.map +0 -1
  406. package/dist/fixture-985bba12.esm.js +0 -569
  407. package/dist/nile-accordion/nile-accordian.test.cjs.js +0 -2
  408. package/dist/nile-accordion/nile-accordian.test.cjs.js.map +0 -1
  409. package/dist/nile-accordion/nile-accordian.test.esm.js +0 -1
  410. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +0 -2
  411. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +0 -1
  412. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +0 -9
  413. package/dist/nile-avatar/nile-avatar.test.cjs.js +0 -2
  414. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +0 -1
  415. package/dist/nile-avatar/nile-avatar.test.esm.js +0 -11
  416. package/dist/nile-badge/nile-badge.test.cjs.js +0 -2
  417. package/dist/nile-badge/nile-badge.test.cjs.js.map +0 -1
  418. package/dist/nile-badge/nile-badge.test.esm.js +0 -1
  419. package/dist/nile-button/nile-button.test.cjs.js +0 -2
  420. package/dist/nile-button/nile-button.test.cjs.js.map +0 -1
  421. package/dist/nile-button/nile-button.test.esm.js +0 -4
  422. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +0 -2
  423. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js.map +0 -1
  424. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +0 -49
  425. package/dist/nile-calendar/nile-calendar.test.cjs.js +0 -2
  426. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +0 -1
  427. package/dist/nile-calendar/nile-calendar.test.esm.js +0 -11
  428. package/dist/nile-card/nile-card.test.cjs.js +0 -2
  429. package/dist/nile-card/nile-card.test.cjs.js.map +0 -1
  430. package/dist/nile-card/nile-card.test.esm.js +0 -51
  431. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +0 -2
  432. package/dist/nile-checkbox/nile-checkbox.test.cjs.js.map +0 -1
  433. package/dist/nile-checkbox/nile-checkbox.test.esm.js +0 -17
  434. package/dist/nile-chip/nile-chip.test.cjs.js +0 -2
  435. package/dist/nile-chip/nile-chip.test.cjs.js.map +0 -1
  436. package/dist/nile-chip/nile-chip.test.esm.js +0 -1
  437. package/dist/nile-dialog/nile-dialog.test.cjs.js +0 -2
  438. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +0 -1
  439. package/dist/nile-dialog/nile-dialog.test.esm.js +0 -7
  440. package/dist/nile-drawer/nile-drawer.test.cjs.js +0 -2
  441. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +0 -1
  442. package/dist/nile-drawer/nile-drawer.test.esm.js +0 -17
  443. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +0 -2
  444. package/dist/nile-dropdown/nile-dropdown.test.cjs.js.map +0 -1
  445. package/dist/nile-dropdown/nile-dropdown.test.esm.js +0 -28
  446. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +0 -2
  447. package/dist/nile-empty-state/nile-empty-state.test.cjs.js.map +0 -1
  448. package/dist/nile-empty-state/nile-empty-state.test.esm.js +0 -9
  449. package/dist/nile-error-message/nile-error-message.test.cjs.js +0 -2
  450. package/dist/nile-error-message/nile-error-message.test.cjs.js.map +0 -1
  451. package/dist/nile-error-message/nile-error-message.test.esm.js +0 -1
  452. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +0 -2
  453. package/dist/nile-file-preview/nile-file-preview.test.cjs.js.map +0 -1
  454. package/dist/nile-file-preview/nile-file-preview.test.esm.js +0 -1
  455. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +0 -2
  456. package/dist/nile-file-upload/nile-file-upload.test.cjs.js.map +0 -1
  457. package/dist/nile-file-upload/nile-file-upload.test.esm.js +0 -1
  458. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +0 -2
  459. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js.map +0 -1
  460. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +0 -20
  461. package/dist/nile-form-group/nile-form-group.test.cjs.js +0 -2
  462. package/dist/nile-form-group/nile-form-group.test.cjs.js.map +0 -1
  463. package/dist/nile-form-group/nile-form-group.test.esm.js +0 -1
  464. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +0 -2
  465. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js.map +0 -1
  466. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +0 -1
  467. package/dist/nile-hero/nile-hero.test.cjs.js +0 -2
  468. package/dist/nile-hero/nile-hero.test.cjs.js.map +0 -1
  469. package/dist/nile-hero/nile-hero.test.esm.js +0 -14
  470. package/dist/nile-icon/nile-icon.test.cjs.js +0 -2
  471. package/dist/nile-icon/nile-icon.test.cjs.js.map +0 -1
  472. package/dist/nile-icon/nile-icon.test.esm.js +0 -1
  473. package/dist/nile-input/nile-input.test.cjs.js +0 -2
  474. package/dist/nile-input/nile-input.test.cjs.js.map +0 -1
  475. package/dist/nile-input/nile-input.test.esm.js +0 -17
  476. package/dist/nile-link/nile-link.test.cjs.js +0 -2
  477. package/dist/nile-link/nile-link.test.cjs.js.map +0 -1
  478. package/dist/nile-link/nile-link.test.esm.js +0 -1
  479. package/dist/nile-loader/nile-loader.test.cjs.js +0 -2
  480. package/dist/nile-loader/nile-loader.test.cjs.js.map +0 -1
  481. package/dist/nile-loader/nile-loader.test.esm.js +0 -1
  482. package/dist/nile-popover/nile-popover.test.cjs.js +0 -2
  483. package/dist/nile-popover/nile-popover.test.cjs.js.map +0 -1
  484. package/dist/nile-popover/nile-popover.test.esm.js +0 -21
  485. package/dist/nile-popup/nile-popup.test.cjs.js +0 -2
  486. package/dist/nile-popup/nile-popup.test.cjs.js.map +0 -1
  487. package/dist/nile-popup/nile-popup.test.esm.js +0 -1
  488. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +0 -2
  489. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js.map +0 -1
  490. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +0 -1
  491. package/dist/nile-radio/nile-radio.test.cjs.js +0 -2
  492. package/dist/nile-radio/nile-radio.test.cjs.js.map +0 -1
  493. package/dist/nile-radio/nile-radio.test.esm.js +0 -1
  494. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +0 -2
  495. package/dist/nile-radio-group/nile-radio-group.test.cjs.js.map +0 -1
  496. package/dist/nile-radio-group/nile-radio-group.test.esm.js +0 -57
  497. package/dist/nile-select/nile-select.test.cjs.js +0 -2
  498. package/dist/nile-select/nile-select.test.cjs.js.map +0 -1
  499. package/dist/nile-select/nile-select.test.esm.js +0 -55
  500. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +0 -2
  501. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js.map +0 -1
  502. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +0 -1
  503. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +0 -2
  504. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +0 -1
  505. package/dist/nile-tab-group/nile-tab-group.test.esm.js +0 -65
  506. package/dist/nile-textarea/nile-textarea.test.cjs.js +0 -2
  507. package/dist/nile-textarea/nile-textarea.test.cjs.js.map +0 -1
  508. package/dist/nile-textarea/nile-textarea.test.esm.js +0 -1
  509. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +0 -2
  510. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +0 -1
  511. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +0 -93
  512. package/dist/scopedElementsWrapper-31107e48.esm.js +0 -1
  513. package/dist/scopedElementsWrapper-9b188ea6.cjs.js +0 -2
  514. package/dist/scopedElementsWrapper-9b188ea6.cjs.js.map +0 -1
  515. package/dist/sinon-esm-68c8e378.esm.js +0 -1
  516. package/dist/sinon-esm-97570c13.cjs.js +0 -2
  517. package/dist/sinon-esm-97570c13.cjs.js.map +0 -1
@@ -1,39 +1,45 @@
1
1
  import { DragHandler } from "./drag-drop.util";
2
- import { FileUploadState, FileUploadError, FileUploadEvent } from "../types";
2
+ import { FileUploadState, FileUploadError, FileUploadEvent, FileUploadErrorReason } from "../types";
3
3
  import { NileFileUpload } from "../nile-file-upload";
4
4
  import { RemoveFileDetail } from "../../nile-file-preview/types";
5
+ import { ErrorType } from "../types";
5
6
 
6
7
  export const setUpDragHandler = (
7
8
  nileFileUpload: NileFileUpload,
8
9
  dragHandler: DragHandler,
9
10
  ): void => {
11
+ dragHandler.setIsDisabled(() => {
12
+ return nileFileUpload.state === FileUploadState.DISABLED;
13
+ });
14
+
10
15
  dragHandler.onStateChange((newState: FileUploadState) => {
11
16
  nileFileUpload.state = newState;
12
17
  });
13
18
 
14
19
  dragHandler.onFileDrop((files: File[]) => {
20
+ if (nileFileUpload.state === FileUploadState.DISABLED) return;
21
+ nileFileUpload.errorMessage = '';
15
22
  const maxSize = parseSize(nileFileUpload.size);
16
23
  const uploadedFiles = nileFileUpload.uploadedFiles;
17
-
24
+
18
25
  if (!nileFileUpload.allowMultiple && (uploadedFiles.length + files.length > 1)) {
19
26
  nileFileUpload.errorMessage = FileUploadError.MULTIPLE_NOT_ALLOWED;
20
- console.error(nileFileUpload.errorMessage);
21
27
  nileFileUpload.requestUpdate();
22
28
  return;
23
29
  }
24
-
30
+
25
31
  let sizeExceeded = false;
26
32
  let duplicatesFound = false;
27
33
  const newFiles: File[] = [];
28
34
  const rejectedFiles: File[] = [];
29
-
35
+
30
36
  for (const file of files) {
31
37
  if (file.size > maxSize) {
32
38
  sizeExceeded = true;
33
39
  rejectedFiles.push(file);
34
40
  continue;
35
41
  }
36
-
42
+
37
43
  if (
38
44
  !nileFileUpload.allowDuplicates &&
39
45
  uploadedFiles.some(
@@ -47,7 +53,7 @@ export const setUpDragHandler = (
47
53
  rejectedFiles.push(file);
48
54
  continue;
49
55
  }
50
-
56
+
51
57
  if(!rejectedFiles.includes(file)) {
52
58
  newFiles.push(file);
53
59
  }
@@ -55,26 +61,44 @@ export const setUpDragHandler = (
55
61
 
56
62
  if (sizeExceeded) {
57
63
  nileFileUpload.errorMessage = FileUploadError.SIZE_LIMIT_EXCEEDED;
58
- console.error(nileFileUpload.errorMessage);
59
- nileFileUpload.requestUpdate();
64
+ const sizeExceededFiles = rejectedFiles.filter(file => file.size > maxSize);
65
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_ERROR, {
66
+ detail: {
67
+ files: sizeExceededFiles,
68
+ type: FileUploadErrorReason.SIZE_LIMIT_EXCEEDED,
69
+ errorType: ErrorType.VALIDATION,
70
+ message: FileUploadError.SIZE_LIMIT_EXCEEDED,
71
+ },
72
+ bubbles: true,
73
+ composed: true,
74
+ }));
75
+
60
76
  nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_SIZE_EXCEED_FILES, {
61
77
  detail: { files: rejectedFiles }
62
78
  }));
79
+ nileFileUpload.requestUpdate();
63
80
  }
64
-
81
+
65
82
  if (duplicatesFound && newFiles.length === 0) {
66
83
  nileFileUpload.errorMessage = FileUploadError.DUPLICATES_NOT_ALLOWED;
67
- console.error(nileFileUpload.errorMessage);
68
84
  nileFileUpload.requestUpdate();
69
85
  }
70
-
71
- nileFileUpload.uploadedFiles = [...uploadedFiles, ...newFiles];
86
+
87
+ let updatedFiles = [];
88
+ for (const file of newFiles) {
89
+ if(nileFileUpload.allowedTypes.includes(file.type)) {
90
+ updatedFiles.push(file);
91
+ } else {
92
+ nileFileUpload.errorMessage = FileUploadError.INVALID_FORMAT;
93
+ }
94
+ }
95
+
96
+ nileFileUpload.uploadedFiles = [...uploadedFiles, ...updatedFiles];
72
97
  nileFileUpload.requestUpdate();
73
98
  });
74
-
99
+
75
100
 
76
101
  dragHandler.setErrorMessage((errorMessage: string) => {
77
- console.error(nileFileUpload.errorMessage);
78
102
  nileFileUpload.errorMessage = errorMessage;
79
103
  });
80
104
  };
@@ -90,7 +114,19 @@ export const addInternalListeners = (nileFileUpload: NileFileUpload, dragHandler
90
114
  nileFileUpload.addEventListener('dragenter', (e) => dragHandler.dragEnter(e));
91
115
  nileFileUpload.addEventListener('dragleave', (e) => dragHandler.dragLeave(e));
92
116
  nileFileUpload.addEventListener('dragover', (e) => dragHandler.dragOver(e));
93
- nileFileUpload.addEventListener('drop', (e) => dragHandler.drop(e));
117
+ nileFileUpload.addEventListener('drop', (e) => dragHandler.drop(e));
118
+ const clickHandler = nileFileUpload.browseFiles.bind(nileFileUpload);
119
+
120
+ const observer = new ResizeObserver(entries => {
121
+ for (const entry of entries) {
122
+ if (entry.contentRect.width < 400) {
123
+ nileFileUpload.horizontalDiv.addEventListener('click', clickHandler);
124
+ } else {
125
+ nileFileUpload.horizontalDiv.removeEventListener('click', clickHandler);
126
+ }
127
+ }
128
+ });
129
+ observer.observe(nileFileUpload.horizontalDiv);
94
130
 
95
131
  cancelFileUpload(nileFileUpload, uploadRequests);
96
132
  removeFile(nileFileUpload.uploadedFiles, nileFileUpload);
@@ -120,7 +156,10 @@ export function uploadFiles(nileFileUpload: NileFileUpload) {
120
156
 
121
157
  for (const file of uploadedFiles) {
122
158
  if (uploadRequests.has(file)) continue;
123
-
159
+ if (nileFileUpload.doNotUpload.includes(file)) continue;
160
+
161
+ if((file as any).errorMessage) continue;
162
+
124
163
  const formData = new FormData();
125
164
  formData.append('file', file);
126
165
 
@@ -131,29 +170,60 @@ export function uploadFiles(nileFileUpload: NileFileUpload) {
131
170
 
132
171
  xhr.upload.onprogress = (e) => {
133
172
  const percent = Math.floor((e.loaded / e.total) * 100);
134
-
173
+
135
174
  nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_UPLOAD_PROGRESS, {
136
- detail: { file, progress: percent }
175
+ detail: { file, progress: percent },
176
+ bubbles: true,
177
+ composed: true,
137
178
  }));
138
179
  };
139
180
 
140
181
  xhr.onload = () => {
141
182
  if (xhr.status >= 200 && xhr.status < 300) {
142
183
  nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_UPLOAD_SUCCESS, {
143
- detail: { file, response: xhr.response }
184
+ detail: { file, response: xhr.response },
185
+ bubbles: true,
186
+ composed: true,
144
187
  }));
145
188
  } else {
146
189
  nileFileUpload.errorMessage = FileUploadError.SERVER_SIDE_ERROR;
147
- nileFileUpload.requestUpdate();
148
190
  nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.SERVER_SIDE_ERROR, {
149
191
  detail: { file, status: xhr.status, response: xhr.response }
150
192
  }));
193
+
194
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_ERROR, {
195
+ detail: {
196
+ type: FileUploadErrorReason.SERVER_SIDE_ERROR,
197
+ file,
198
+ status: xhr?.status || 0,
199
+ response: xhr?.response,
200
+ message: FileUploadError.SERVER_SIDE_ERROR,
201
+ errorType: ErrorType.SERVER,
202
+ },
203
+ bubbles: true,
204
+ composed: true,
205
+ }));
206
+ nileFileUpload.requestUpdate();
151
207
  }
152
208
  };
153
209
 
154
210
  xhr.onerror = () => {
155
211
  uploadRequests.delete(file);
212
+ nileFileUpload.doNotUpload.push(file);
156
213
  nileFileUpload.errorMessage = FileUploadError.NETWORK_ERROR;
214
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_ERROR, {
215
+ detail: {
216
+ type: FileUploadErrorReason.NETWORK_ERROR,
217
+ file,
218
+ status: xhr.status,
219
+ response: xhr.response,
220
+ errorType: ErrorType.NETWORK,
221
+ message: FileUploadError.NETWORK_ERROR,
222
+ },
223
+ bubbles: true,
224
+ composed: true,
225
+ }));
226
+
157
227
  nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_NETWORK_ERROR, {
158
228
  detail: { file, status: xhr.status, response: xhr.response },
159
229
  bubbles: true,
@@ -177,6 +247,17 @@ export const cancelFileUpload = (nileFileUpload: NileFileUpload, uploadRequests:
177
247
  uploadRequests.delete(fileToCancel);
178
248
  nileFileUpload.uploadedFiles = nileFileUpload.uploadedFiles.filter(file => file !== fileToCancel);
179
249
 
250
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_ERROR, {
251
+ detail: {
252
+ type: FileUploadErrorReason.UPLOAD_CANCELLED,
253
+ file: fileToCancel,
254
+ message: FileUploadError.UPLOAD_CANCELLED,
255
+ errorType: ErrorType.UPLOAD_CANCELLED,
256
+ },
257
+ bubbles: true,
258
+ composed: true,
259
+ }));
260
+
180
261
  nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_UPLOAD_CANCELLED, {
181
262
  detail: { file: fileToCancel }
182
263
  }));
@@ -201,6 +282,7 @@ export const removeFile = (uploadedFiles: File[], nileFileUpload: NileFileUpload
201
282
  const { value } = e.detail;
202
283
  uploadedFiles = uploadedFiles.filter(file => file !== value);
203
284
  nileFileUpload.uploadedFiles = uploadedFiles;
285
+ nileFileUpload.errorMessage = '';
204
286
  nileFileUpload.requestUpdate();
205
287
  });
206
288
  }
@@ -213,4 +295,4 @@ export const truncateString = (nileFileUpload: NileFileUpload): void => {
213
295
  nileFileUpload.isStringTruncated = true;
214
296
  nileFileUpload.requestUpdate();
215
297
  }
216
- }
298
+ }
@@ -1,92 +1,106 @@
1
- import { fixture, expect, html, oneEvent } from '@open-wc/testing';
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
2
  import './nile-filter-chip';
3
- import { NileFilterChip } from './nile-filter-chip';
3
+ import type { NileFilterChip } from './nile-filter-chip';
4
4
 
5
- describe('<nile-filter-chip>', () => {
6
- afterEach(() => {
7
- (NileFilterChip as any).activeChips = [];
8
- });
9
-
10
- it('registers and unregisters itself in activeChips', async () => {
11
- const el = await fixture<NileFilterChip>(html`
12
- <nile-filter-chip label="L" value="T"></nile-filter-chip>
13
- `);
14
- expect((NileFilterChip as any).activeChips).to.include(el);
15
- el.remove();
16
- await el.updateComplete;
17
- expect((NileFilterChip as any).activeChips).to.not.include(el);
18
- });
19
-
20
- it('renders fallback label and value', async () => {
21
- const el = await fixture<NileFilterChip>(html`
22
- <nile-filter-chip label="MyLabel" value="MyText"></nile-filter-chip>
23
- `);
24
- const label = el.shadowRoot!.querySelector('.label')! as HTMLElement;
25
- const value = el.shadowRoot!.querySelector('.value')! as HTMLElement;
26
- expect(label.textContent).to.equal('MyLabel:');
27
- expect(value.textContent!.trim()).to.equal('MyText');
28
- });
29
-
30
- it('renders slotted label and value over fallback', async () => {
31
- const el = await fixture<NileFilterChip>(html`
32
- <nile-filter-chip>
33
- <span slot="label">SLOT-LBL</span>
34
- <span slot="value">SLOT-VAL</span>
35
- </nile-filter-chip>
36
- `);
37
- const slottedLabel = el.querySelector('[slot="label"]')! as HTMLElement;
38
- const slottedValue = el.querySelector('[slot="value"]')! as HTMLElement;
39
- expect(slottedLabel.textContent).to.equal('SLOT-LBL');
40
- expect(slottedValue.textContent).to.equal('SLOT-VAL');
41
- });
42
-
43
- it('renders an icon when the `icon` property is set', async () => {
44
- const el = await fixture<NileFilterChip>(html`
45
- <nile-filter-chip icon="★" label="L" value="T"></nile-filter-chip>
46
- `);
47
- const iconSpan = el.shadowRoot!.querySelector('.icon')! as HTMLElement;
48
- expect(iconSpan).to.exist;
49
- expect(iconSpan.textContent).to.equal('★');
50
- });
51
-
52
- it('does not render a badge when viewMoreCount is zero', async () => {
53
- const el = await fixture<NileFilterChip>(html`
54
- <nile-filter-chip viewMoreCount="0" label="L" value="T"></nile-filter-chip>
55
- `);
56
- expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null;
57
- });
58
-
59
- it('renders a +badge when viewMoreCount > 0', async () => {
60
- const el = await fixture<NileFilterChip>(html`
61
- <nile-filter-chip viewMoreCount="5" label="L" value="T"></nile-filter-chip>
62
- `);
63
- const badge = el.shadowRoot!.querySelector('nile-badge')! as HTMLElement;
64
- expect(badge).to.exist;
65
- expect(badge.textContent).to.contain('+5');
66
- });
67
-
68
-
69
-
70
- it('dispatches `nile-click` on chip click', async () => {
71
- const el = await fixture<NileFilterChip>(html`
72
- <nile-filter-chip label="L" value="T"></nile-filter-chip>
73
- `);
74
- const chip = el.shadowRoot!.querySelector('.chip')! as HTMLElement;
75
- setTimeout(() => chip.click());
76
- const ev = await oneEvent(el, 'nile-click');
77
- expect(ev.detail).to.deep.equal({ value: 'T', viewMoreCount: 0 });
78
- });
79
-
80
- it('dispatches `nile-close` on close icon click and removes itself', async () => {
81
- const el = await fixture<NileFilterChip>(html`
82
- <nile-filter-chip closable viewMoreCount="2" value="TT"></nile-filter-chip>
83
- `);
84
- const closeIcon = el.shadowRoot!.querySelector('.close-icon')! as HTMLElement;
85
- setTimeout(() => closeIcon.click());
86
- const ev = await oneEvent(el, 'nile-close');
87
- expect(ev.detail).to.deep.equal({ value: 'TT', viewMoreCount: 2 });
88
- expect(document.body.contains(el)).to.be.false;
89
- });
90
-
91
-
5
+ describe('NileFilterChip', () => {
6
+ it('1. renders', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el).to.exist; });
7
+ it('2. shadow root', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot).to.not.be.null; });
8
+ it('3. tag name', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.tagName.toLowerCase()).to.equal('nile-filter-chip'); });
9
+ it('4. label defaults empty', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.label).to.equal(''); });
10
+ it('5. value defaults empty', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.value).to.equal(''); });
11
+ it('6. viewMoreCount defaults 0', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.viewMoreCount).to.equal(0); });
12
+ it('7. editable defaults false', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.editable).to.be.false; });
13
+ it('8. closable defaults false', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.closable).to.be.false; });
14
+ it('9. icon defaults empty', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.icon).to.equal(''); });
15
+ it('10. removeIcon defaults empty', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.removeIcon).to.equal(''); });
16
+ it('11. active defaults false', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.active).to.be.false; });
17
+ it('12. chip class', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.chip')).to.exist; });
18
+ it('13. label part', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip label="L"></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('[part="label"]')).to.exist; });
19
+ it('14. value part', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip value="V"></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('[part="value"]')).to.exist; });
20
+ it('15. label text', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip label="Status"></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('[part="label"]')!.textContent).to.contain('Status'); });
21
+ it('16. value text', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip value="Active"></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('[part="value"]')!.textContent).to.contain('Active'); });
22
+ it('17. label slot', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('slot[name="label"]')).to.exist; });
23
+ it('18. value slot', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('slot[name="value"]')).to.exist; });
24
+ it('19. icon slot', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('slot[name="icon"]')).to.exist; });
25
+ it('20. suffix slot', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('slot[name="suffix"]')).to.exist; });
26
+ it('21. content slot', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('slot[name="content"]')).to.exist; });
27
+ it('22. close icon shown', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip closable></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.close-icon')).to.exist; });
28
+ it('23. no close icon', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.close-icon')).to.be.null; });
29
+ it('24. badge with viewMoreCount', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip .viewMoreCount=${3}></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('nile-badge')).to.exist; });
30
+ it('25. no badge without viewMoreCount', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null; });
31
+ it('26. icon span shown', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip icon="star"></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.icon')).to.exist; });
32
+ it('27. no icon span default', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.icon')).to.be.null; });
33
+ it('28. active reflected', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip active></nile-filter-chip>`); expect(el.hasAttribute('active')).to.be.true; });
34
+ it('29. nile-click event', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip value="V"></nile-filter-chip>`); let detail: any; el.addEventListener('nile-click', ((e: CustomEvent) => { detail = e.detail; }) as EventListener); el.shadowRoot!.querySelector('.chip')!.dispatchEvent(new Event('click', { bubbles: true })); expect(detail).to.exist; });
35
+ it('30. nile-click detail value', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip value="V"></nile-filter-chip>`); let detail: any; el.addEventListener('nile-click', ((e: CustomEvent) => { detail = e.detail; }) as EventListener); (el.shadowRoot!.querySelector('.chip') as HTMLElement).click(); expect(detail.value).to.equal('V'); });
36
+ it('31. dynamic label', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.label = 'New'; await el.updateComplete; expect(el.shadowRoot!.querySelector('[part="label"]')!.textContent).to.contain('New'); });
37
+ it('32. dynamic value', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.value = 'Val'; await el.updateComplete; expect(el.shadowRoot!.querySelector('[part="value"]')!.textContent).to.contain('Val'); });
38
+ it('33. dynamic closable', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.closable = true; await el.updateComplete; expect(el.shadowRoot!.querySelector('.close-icon')).to.exist; });
39
+ it('34. dynamic active', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.active = true; await el.updateComplete; expect(el.hasAttribute('active')).to.be.true; });
40
+ it('35. label-wrapper class', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.label-wrapper')).to.exist; });
41
+ it('36. value-wrapper class', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.value-wrapper')).to.exist; });
42
+ it('37. has styles', async () => { expect((await import('./nile-filter-chip')).NileFilterChip.styles).to.exist; });
43
+ it('38. is defined', async () => { expect(customElements.get('nile-filter-chip')).to.exist; });
44
+ it('39. shadow mode', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.mode).to.equal('open'); });
45
+ it('40. isConnected', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.isConnected).to.be.true; });
46
+ it('41. removal', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.remove(); expect(el.isConnected).to.be.false; });
47
+ it('42. outerHTML', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.outerHTML).to.contain('nile-filter-chip'); });
48
+ it('43. matches', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip class="x"></nile-filter-chip>`); expect(el.matches('nile-filter-chip.x')).to.be.true; });
49
+ it('44. closest', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.closest('nile-filter-chip')).to.equal(el); });
50
+ it('45. cloneNode', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-filter-chip'); });
51
+ it('46. dispatchEvent', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
52
+ it('47. updateComplete', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
53
+ it('48. requestUpdate', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
54
+ it('49. render method', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.render).to.be.a('function'); });
55
+ it('50. shadowRoot host', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.host).to.equal(el); });
56
+ it('51. class attr', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip class="f"></nile-filter-chip>`); expect(el.classList.contains('f')).to.be.true; });
57
+ it('52. id attr', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip id="f1"></nile-filter-chip>`); expect(el.id).to.equal('f1'); });
58
+ it('53. style attr', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip style="color:red"></nile-filter-chip>`); expect(el.style.color).to.equal('red'); });
59
+ it('54. data attr', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip data-x="1"></nile-filter-chip>`); expect(el.getAttribute('data-x')).to.equal('1'); });
60
+ it('55. hidden', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip hidden></nile-filter-chip>`); expect(el.hidden).to.be.true; });
61
+ it('56. dir', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip dir="rtl"></nile-filter-chip>`); expect(el.dir).to.equal('rtl'); });
62
+ it('57. nodeType', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.nodeType).to.equal(1); });
63
+ it('58. multiple instances', async () => { const c = await fixture(html`<div><nile-filter-chip></nile-filter-chip><nile-filter-chip></nile-filter-chip></div>`); expect(c.querySelectorAll('nile-filter-chip').length).to.equal(2); });
64
+ it('59. parent-child', async () => { const c = await fixture(html`<div><nile-filter-chip></nile-filter-chip></div>`); expect(c.querySelector('nile-filter-chip')!.parentElement).to.equal(c); });
65
+ it('60. localName', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.localName).to.equal('nile-filter-chip'); });
66
+ it('61. namespaceURI', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
67
+ it('62. ownerDocument', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.ownerDocument).to.equal(document); });
68
+ it('63. classList add', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });
69
+ it('64. dataset', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip data-idx="0"></nile-filter-chip>`); expect(el.dataset.idx).to.equal('0'); });
70
+ it('65. getBoundingClientRect', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.getBoundingClientRect()).to.exist; });
71
+ it('66. label type', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(typeof el.label).to.equal('string'); });
72
+ it('67. value type', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(typeof el.value).to.equal('string'); });
73
+ it('68. closable type', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(typeof el.closable).to.equal('boolean'); });
74
+ it('69. editable type', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(typeof el.editable).to.equal('boolean'); });
75
+ it('70. active type', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(typeof el.active).to.equal('boolean'); });
76
+ it('71. viewMoreCount type', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(typeof el.viewMoreCount).to.equal('number'); });
77
+ it('72. close icon nile-icon', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip closable></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.close-icon nile-icon')).to.exist; });
78
+ it('73. badge-wrapper class', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip .viewMoreCount=${2}></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('.badge-wrapper')).to.exist; });
79
+ it('74. badge part', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip .viewMoreCount=${2}></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('[part="badge"]')).to.exist; });
80
+ it('75. badge text', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip .viewMoreCount=${5}></nile-filter-chip>`); expect(el.shadowRoot!.textContent).to.contain('+5'); });
81
+ it('76. aria-label', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip aria-label="Filter"></nile-filter-chip>`); expect(el.getAttribute('aria-label')).to.equal('Filter'); });
82
+ it('77. role', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip role="button"></nile-filter-chip>`); expect(el.getAttribute('role')).to.equal('button'); });
83
+ it('78. createElement', async () => { const el = document.createElement('nile-filter-chip') as NileFilterChip; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
84
+ it('79. title attr', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip title="F"></nile-filter-chip>`); expect(el.title).to.equal('F'); });
85
+ it('80. lang attr', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip lang="en"></nile-filter-chip>`); expect(el.lang).to.equal('en'); });
86
+ it('81. tabindex', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip tabindex="0"></nile-filter-chip>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
87
+ it('82. no form', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });
88
+ it('83. no anchor', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });
89
+ it('84. no img', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });
90
+ it('85. shadow childNodes', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });
91
+ it('86. scrollIntoView', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.scrollIntoView).to.be.a('function'); });
92
+ it('87. focus method', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.focus).to.be.a('function'); });
93
+ it('88. blur method', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); expect(el.blur).to.be.a('function'); });
94
+ it('89. dispatchCustomEvent', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); let d: any; el.addEventListener('t', ((e: CustomEvent) => { d = e.detail; }) as EventListener); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });
95
+ it('90. label colon', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip label="Status"></nile-filter-chip>`); expect(el.shadowRoot!.querySelector('[part="label"]')!.textContent).to.contain(':'); });
96
+ it('91. dynamic viewMoreCount', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.viewMoreCount = 5; await el.updateComplete; expect(el.shadowRoot!.querySelector('nile-badge')).to.exist; });
97
+ it('92. removeIcon applies', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip closable removeIcon="trash"></nile-filter-chip>`); const icon = el.shadowRoot!.querySelector('.close-icon nile-icon'); expect(icon!.getAttribute('name')).to.equal('trash'); });
98
+ it('93. close icon size', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip closable></nile-filter-chip>`); const icon = el.shadowRoot!.querySelector('.close-icon nile-icon'); expect(icon!.getAttribute('size')).to.equal('12'); });
99
+ it('94. dynamic icon', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.icon = 'star'; await el.updateComplete; expect(el.shadowRoot!.querySelector('.icon')).to.exist; });
100
+ it('95. slotted label', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip><span slot="label">Custom</span></nile-filter-chip>`); expect(el.querySelector('[slot="label"]')).to.exist; });
101
+ it('96. slotted value', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip><span slot="value">Custom</span></nile-filter-chip>`); expect(el.querySelector('[slot="value"]')).to.exist; });
102
+ it('97. slotted icon', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip><nile-icon slot="icon" name="star"></nile-icon></nile-filter-chip>`); expect(el.querySelector('[slot="icon"]')).to.exist; });
103
+ it('98. rapid prop changes', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.label = 'A'; el.value = 'B'; el.closable = true; await el.updateComplete; expect(el.shadowRoot!.querySelector('.close-icon')).to.exist; });
104
+ it('99. re-renders', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip></nile-filter-chip>`); el.label = 'A'; await el.updateComplete; el.label = 'B'; await el.updateComplete; expect(el.shadowRoot!.querySelector('[part="label"]')!.textContent).to.contain('B'); });
105
+ it('100. full integration', async () => { const el = await fixture<NileFilterChip>(html`<nile-filter-chip label="Status" value="Active" closable .viewMoreCount=${3} active class="f" id="f1"></nile-filter-chip>`); expect(el.label).to.equal('Status'); expect(el.value).to.equal('Active'); expect(el.closable).to.be.true; expect(el.viewMoreCount).to.equal(3); expect(el.active).to.be.true; expect(el.id).to.equal('f1'); expect(el.shadowRoot!.querySelector('.close-icon')).to.exist; expect(el.shadowRoot!.querySelector('nile-badge')).to.exist; });
92
106
  });
@@ -0,0 +1,106 @@
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
+ import './nile-form-error-message';
3
+ import type { NileFormErrorMessage } from './nile-form-error-message';
4
+
5
+ describe('NileFormErrorMessage', () => {
6
+ it('1. renders', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el).to.exist; });
7
+ it('2. shadow root', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot).to.not.be.null; });
8
+ it('3. tag name', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.tagName.toLowerCase()).to.equal('nile-form-error-message'); });
9
+ it('4. nile-form-error-message class', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('.nile-form-error-message')).to.exist; });
10
+ it('5. nile-icon', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('nile-icon')).to.exist; });
11
+ it('6. icon class', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('.nile-form-error-message__icon')).to.exist; });
12
+ it('7. icon size 14', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); const icon = el.shadowRoot!.querySelector('nile-icon'); expect(icon!.getAttribute('size')).to.equal('14'); });
13
+ it('8. slot', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('slot')).to.exist; });
14
+ it('9. slotted content', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message>Error text</nile-form-error-message>`); expect(el.textContent).to.contain('Error text'); });
15
+ it('10. has styles', async () => { expect((await import('./nile-form-error-message')).NileFormErrorMessage.styles).to.exist; });
16
+ it('11. is defined', async () => { expect(customElements.get('nile-form-error-message')).to.exist; });
17
+ it('12. shadow mode', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.mode).to.equal('open'); });
18
+ it('13. isConnected', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.isConnected).to.be.true; });
19
+ it('14. removal', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.remove(); expect(el.isConnected).to.be.false; });
20
+ it('15. outerHTML', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.outerHTML).to.contain('nile-form-error-message'); });
21
+ it('16. matches', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message class="x"></nile-form-error-message>`); expect(el.matches('nile-form-error-message.x')).to.be.true; });
22
+ it('17. closest', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.closest('nile-form-error-message')).to.equal(el); });
23
+ it('18. cloneNode', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-form-error-message'); });
24
+ it('19. dispatchEvent', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
25
+ it('20. updateComplete', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
26
+ it('21. requestUpdate', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
27
+ it('22. render method', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.render).to.be.a('function'); });
28
+ it('23. shadowRoot host', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.host).to.equal(el); });
29
+ it('24. class attr', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message class="e"></nile-form-error-message>`); expect(el.classList.contains('e')).to.be.true; });
30
+ it('25. id attr', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message id="e1"></nile-form-error-message>`); expect(el.id).to.equal('e1'); });
31
+ it('26. style attr', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message style="color:red"></nile-form-error-message>`); expect(el.style.color).to.equal('red'); });
32
+ it('27. data attr', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message data-x="1"></nile-form-error-message>`); expect(el.getAttribute('data-x')).to.equal('1'); });
33
+ it('28. hidden', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message hidden></nile-form-error-message>`); expect(el.hidden).to.be.true; });
34
+ it('29. dir', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message dir="rtl"></nile-form-error-message>`); expect(el.dir).to.equal('rtl'); });
35
+ it('30. nodeType', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.nodeType).to.equal(1); });
36
+ it('31. multiple instances', async () => { const c = await fixture(html`<div><nile-form-error-message></nile-form-error-message><nile-form-error-message></nile-form-error-message></div>`); expect(c.querySelectorAll('nile-form-error-message').length).to.equal(2); });
37
+ it('32. parent-child', async () => { const c = await fixture(html`<div><nile-form-error-message></nile-form-error-message></div>`); expect(c.querySelector('nile-form-error-message')!.parentElement).to.equal(c); });
38
+ it('33. localName', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.localName).to.equal('nile-form-error-message'); });
39
+ it('34. namespaceURI', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
40
+ it('35. ownerDocument', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.ownerDocument).to.equal(document); });
41
+ it('36. classList add', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });
42
+ it('37. dataset', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message data-idx="0"></nile-form-error-message>`); expect(el.dataset.idx).to.equal('0'); });
43
+ it('38. getBoundingClientRect', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.getBoundingClientRect()).to.exist; });
44
+ it('39. no inputs', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelectorAll('input').length).to.equal(0); });
45
+ it('40. no buttons', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelectorAll('button').length).to.equal(0); });
46
+ it('41. aria-label', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message aria-label="Error"></nile-form-error-message>`); expect(el.getAttribute('aria-label')).to.equal('Error'); });
47
+ it('42. role', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message role="alert"></nile-form-error-message>`); expect(el.getAttribute('role')).to.equal('alert'); });
48
+ it('43. createElement', async () => { const el = document.createElement('nile-form-error-message') as NileFormErrorMessage; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
49
+ it('44. slot count', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelectorAll('slot').length).to.equal(1); });
50
+ it('45. div element', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('div')).to.exist; });
51
+ it('46. title attr', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message title="E"></nile-form-error-message>`); expect(el.title).to.equal('E'); });
52
+ it('47. lang attr', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message lang="en"></nile-form-error-message>`); expect(el.lang).to.equal('en'); });
53
+ it('48. tabindex', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message tabindex="0"></nile-form-error-message>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
54
+ it('49. shadow childNodes', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });
55
+ it('50. scrollIntoView', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.scrollIntoView).to.be.a('function'); });
56
+ it('51. focus method', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.focus).to.be.a('function'); });
57
+ it('52. blur method', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.blur).to.be.a('function'); });
58
+ it('53. children survived update', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span id="s1">Err</span></nile-form-error-message>`); el.requestUpdate(); await el.updateComplete; expect(el.querySelector('#s1')).to.exist; });
59
+ it('54. nested elements', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><strong>Bold</strong> error</nile-form-error-message>`); expect(el.querySelector('strong')).to.exist; });
60
+ it('55. childElementCount', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span>A</span></nile-form-error-message>`); expect(el.childElementCount).to.equal(1); });
61
+ it('56. text content', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message>Test error</nile-form-error-message>`); expect(el.textContent).to.contain('Test error'); });
62
+ it('57. no children default', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.childElementCount).to.equal(0); });
63
+ it('58. class toggle', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.classList.toggle('active'); expect(el.classList.contains('active')).to.be.true; });
64
+ it('59. toggle hidden', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.hidden = true; expect(el.hidden).to.be.true; el.hidden = false; expect(el.hidden).to.be.false; });
65
+ it('60. no form', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });
66
+ it('61. no anchor', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });
67
+ it('62. no img', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });
68
+ it('63. no svg', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('svg')).to.be.null; });
69
+ it('64. dispatchCustomEvent', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); let d: any; el.addEventListener('t', ((e: CustomEvent) => { d = e.detail; }) as EventListener); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });
70
+ it('65. innerHTML', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.innerHTML = '<p>New</p>'; expect(el.querySelector('p')!.textContent).to.equal('New'); });
71
+ it('66. multiple re-renders', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); for (let i = 0; i < 3; i++) { el.requestUpdate(); await el.updateComplete; } expect(el.shadowRoot).to.not.be.null; });
72
+ it('67. nested in div', async () => { const c = await fixture(html`<div><nile-form-error-message>Err</nile-form-error-message></div>`); expect(c.querySelector('nile-form-error-message')).to.exist; });
73
+ it('68. no textarea', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('textarea')).to.be.null; });
74
+ it('69. no select', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('select')).to.be.null; });
75
+ it('70. no video', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('video')).to.be.null; });
76
+ it('71. no audio', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('audio')).to.be.null; });
77
+ it('72. no canvas', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('canvas')).to.be.null; });
78
+ it('73. aria-describedby', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message aria-describedby="d"></nile-form-error-message>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });
79
+ it('74. no ul', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('ul')).to.be.null; });
80
+ it('75. no table', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('table')).to.be.null; });
81
+ it('76. no h1', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('h1')).to.be.null; });
82
+ it('77. no nav', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('nav')).to.be.null; });
83
+ it('78. no aside', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('aside')).to.be.null; });
84
+ it('79. no pre', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('pre')).to.be.null; });
85
+ it('80. no code', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.shadowRoot!.querySelector('code')).to.be.null; });
86
+ it('81. children array', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span>A</span><span>B</span></nile-form-error-message>`); expect(el.children.length).to.equal(2); });
87
+ it('82. firstElementChild', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span>A</span></nile-form-error-message>`); expect(el.firstElementChild!.tagName.toLowerCase()).to.equal('span'); });
88
+ it('83. lastElementChild', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span>A</span><div>B</div></nile-form-error-message>`); expect(el.lastElementChild!.tagName.toLowerCase()).to.equal('div'); });
89
+ it('84. setAttribute class', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.setAttribute('class', 'test'); expect(el.classList.contains('test')).to.be.true; });
90
+ it('85. removeAttribute class', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message class="x"></nile-form-error-message>`); el.removeAttribute('class'); expect(el.classList.contains('x')).to.be.false; });
91
+ it('86. hasAttribute id', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message id="e1"></nile-form-error-message>`); expect(el.hasAttribute('id')).to.be.true; });
92
+ it('87. getAttribute id', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message id="e1"></nile-form-error-message>`); expect(el.getAttribute('id')).to.equal('e1'); });
93
+ it('88. setAttribute id', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.setAttribute('id', 'e2'); expect(el.id).to.equal('e2'); });
94
+ it('89. removeAttribute id', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message id="e1"></nile-form-error-message>`); el.removeAttribute('id'); expect(el.id).to.equal(''); });
95
+ it('90. innerHTML empty default', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.innerHTML.trim()).to.equal(''); });
96
+ it('91. textContent empty default', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); expect(el.textContent!.trim()).to.equal(''); });
97
+ it('92. setAttribute data', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.setAttribute('data-err', 'true'); expect(el.dataset.err).to.equal('true'); });
98
+ it('93. append child', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); const s = document.createElement('span'); s.textContent = 'New'; el.appendChild(s); expect(el.querySelector('span')).to.exist; });
99
+ it('94. remove child', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span id="s1">E</span></nile-form-error-message>`); const s = el.querySelector('#s1')!; el.removeChild(s); expect(el.querySelector('#s1')).to.be.null; });
100
+ it('95. replaceChildren', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span>Old</span></nile-form-error-message>`); const p = document.createElement('p'); p.textContent = 'New'; el.replaceChildren(p); expect(el.querySelector('p')).to.exist; expect(el.querySelector('span')).to.be.null; });
101
+ it('96. insertBefore', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span id="s1">B</span></nile-form-error-message>`); const p = document.createElement('p'); p.textContent = 'A'; el.insertBefore(p, el.querySelector('#s1')!); expect(el.firstElementChild!.tagName.toLowerCase()).to.equal('p'); });
102
+ it('97. multiple with content', async () => { const c = await fixture(html`<div><nile-form-error-message>A</nile-form-error-message><nile-form-error-message>B</nile-form-error-message></div>`); const els = c.querySelectorAll('nile-form-error-message'); expect(els.length).to.equal(2); });
103
+ it('98. contains', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message><span id="s1">E</span></nile-form-error-message>`); expect(el.contains(el.querySelector('#s1'))).to.be.true; });
104
+ it('99. re-renders', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message></nile-form-error-message>`); el.innerHTML = 'A'; await el.updateComplete; el.innerHTML = 'B'; await el.updateComplete; expect(el.textContent).to.contain('B'); });
105
+ it('100. full integration', async () => { const el = await fixture<NileFormErrorMessage>(html`<nile-form-error-message class="e" id="e1" role="alert" aria-label="Error">This field is required</nile-form-error-message>`); expect(el.id).to.equal('e1'); expect(el.getAttribute('role')).to.equal('alert'); expect(el.textContent).to.contain('This field is required'); expect(el.shadowRoot!.querySelector('.nile-form-error-message')).to.exist; expect(el.shadowRoot!.querySelector('nile-icon')).to.exist; expect(el.shadowRoot!.querySelector('slot')).to.exist; });
106
+ });