@ukic/canary-web-components 3.0.0-canary.1 → 3.0.0-canary.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (646) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-33b42cd6.js → helpers-36cdc6cb.js} +24 -1
  3. package/dist/cjs/helpers-36cdc6cb.js.map +1 -0
  4. package/dist/cjs/{helpers-6817cfbb.js → helpers-a67ad3a4.js} +15 -129
  5. package/dist/cjs/helpers-a67ad3a4.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +17 -16
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card-horizontal.cjs.entry.js +2 -2
  20. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-card-vertical.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -3
  24. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-checkbox.cjs.entry.js +3 -3
  26. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-chip.cjs.entry.js +21 -14
  28. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-data-table.cjs.entry.js +31 -8
  35. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-date-input.cjs.entry.js +11 -10
  37. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-date-picker.cjs.entry.js +4 -2
  39. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-empty-state_2.cjs.entry.js +24 -17
  44. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  53. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1012 -0
  55. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -0
  56. package/dist/cjs/ic-input-label_2.cjs.entry.js +86 -0
  57. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -0
  58. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  63. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  70. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-page-header.cjs.entry.js +5 -5
  72. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-pagination_4.cjs.entry.js +151 -41
  74. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-popover-menu.cjs.entry.js +27 -21
  76. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-radio-group.cjs.entry.js +20 -10
  78. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-radio-option.cjs.entry.js +27 -22
  80. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-search-bar.cjs.entry.js +12 -25
  82. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  84. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -4
  86. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  88. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-step.cjs.entry.js +4 -5
  90. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-stepper.cjs.entry.js +12 -2
  92. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-switch.cjs.entry.js +7 -4
  94. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-tab-context.cjs.entry.js +58 -122
  96. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  98. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  99. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-tab.cjs.entry.js +6 -7
  101. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  103. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  104. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  106. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
  108. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ic-tree-item.cjs.entry.js +5 -3
  110. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ic-tree-view.cjs.entry.js +10 -2
  112. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ic-typography.cjs.entry.js +5 -3
  114. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  115. package/dist/cjs/index-4cf27b16.js +4 -12
  116. package/dist/cjs/loader.cjs.js +1 -1
  117. package/dist/collection/collection-manifest.json +0 -2
  118. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +8 -8
  119. package/dist/collection/components/ic-data-table/ic-data-table.css +20 -4
  120. package/dist/collection/components/ic-data-table/ic-data-table.js +35 -12
  121. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  122. package/dist/collection/components/ic-data-table/story-data.js +46 -5
  123. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  124. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +3 -3
  125. package/dist/collection/components/ic-date-input/ic-date-input.css +3 -3
  126. package/dist/collection/components/ic-date-input/ic-date-input.js +27 -8
  127. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  128. package/dist/collection/components/ic-date-picker/ic-date-picker.css +6 -6
  129. package/dist/collection/components/ic-date-picker/ic-date-picker.js +20 -0
  130. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  131. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +72 -21
  132. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  133. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
  134. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
  135. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +20 -2
  136. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
  137. package/dist/collection/components/ic-tree-item/ic-tree-item.css +13 -2
  138. package/dist/collection/components/ic-tree-item/ic-tree-item.js +23 -3
  139. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  140. package/dist/collection/components/ic-tree-view/ic-tree-view.js +29 -1
  141. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  142. package/dist/collection/utils/helpers.js +1 -1
  143. package/dist/collection/utils/helpers.js.map +1 -1
  144. package/dist/collection/utils/types.js.map +1 -1
  145. package/dist/components/helpers.js +22 -1
  146. package/dist/components/helpers.js.map +1 -1
  147. package/dist/components/helpers2.js +14 -121
  148. package/dist/components/helpers2.js.map +1 -1
  149. package/dist/components/ic-accordion.js +1 -1
  150. package/dist/components/ic-accordion.js.map +1 -1
  151. package/dist/components/ic-alert.js +1 -1
  152. package/dist/components/ic-alert.js.map +1 -1
  153. package/dist/components/ic-badge.js +1 -1
  154. package/dist/components/ic-badge.js.map +1 -1
  155. package/dist/components/ic-breadcrumb2.js +1 -1
  156. package/dist/components/ic-breadcrumb2.js.map +1 -1
  157. package/dist/components/ic-button2.js +6 -7
  158. package/dist/components/ic-button2.js.map +1 -1
  159. package/dist/components/ic-card-horizontal.js +1 -1
  160. package/dist/components/ic-card-horizontal.js.map +1 -1
  161. package/dist/components/ic-card-vertical.js +1 -1
  162. package/dist/components/ic-card-vertical.js.map +1 -1
  163. package/dist/components/ic-checkbox-group.js +2 -2
  164. package/dist/components/ic-checkbox-group.js.map +1 -1
  165. package/dist/components/ic-checkbox.js +2 -2
  166. package/dist/components/ic-checkbox.js.map +1 -1
  167. package/dist/components/ic-chip.js +23 -14
  168. package/dist/components/ic-chip.js.map +1 -1
  169. package/dist/components/ic-classification-banner.js +1 -1
  170. package/dist/components/ic-classification-banner.js.map +1 -1
  171. package/dist/components/ic-data-table-title-bar.js +1 -1
  172. package/dist/components/ic-data-table-title-bar.js.map +1 -1
  173. package/dist/components/ic-data-table.js +31 -8
  174. package/dist/components/ic-data-table.js.map +1 -1
  175. package/dist/components/ic-date-input2.js +12 -10
  176. package/dist/components/ic-date-input2.js.map +1 -1
  177. package/dist/components/ic-date-picker.js +5 -2
  178. package/dist/components/ic-date-picker.js.map +1 -1
  179. package/dist/components/ic-divider2.js +1 -1
  180. package/dist/components/ic-divider2.js.map +1 -1
  181. package/dist/components/ic-footer-link-group.js +1 -1
  182. package/dist/components/ic-footer-link-group.js.map +1 -1
  183. package/dist/components/ic-footer-link.js +1 -1
  184. package/dist/components/ic-footer-link.js.map +1 -1
  185. package/dist/components/ic-footer.js +2 -2
  186. package/dist/components/ic-footer.js.map +1 -1
  187. package/dist/components/ic-horizontal-scroll2.js +2 -2
  188. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  189. package/dist/components/ic-input-component-container2.js +1 -1
  190. package/dist/components/ic-input-component-container2.js.map +1 -1
  191. package/dist/components/ic-input-label2.js +10 -6
  192. package/dist/components/ic-input-label2.js.map +1 -1
  193. package/dist/components/ic-input-validation2.js +1 -1
  194. package/dist/components/ic-input-validation2.js.map +1 -1
  195. package/dist/components/ic-link2.js +1 -1
  196. package/dist/components/ic-link2.js.map +1 -1
  197. package/dist/components/ic-loading-indicator2.js +11 -9
  198. package/dist/components/ic-loading-indicator2.js.map +1 -1
  199. package/dist/components/ic-menu-group.js +1 -1
  200. package/dist/components/ic-menu-group.js.map +1 -1
  201. package/dist/components/ic-menu-item2.js +1 -1
  202. package/dist/components/ic-menu-item2.js.map +1 -1
  203. package/dist/components/ic-menu2.js +450 -167
  204. package/dist/components/ic-menu2.js.map +1 -1
  205. package/dist/components/ic-navigation-group.js +2 -2
  206. package/dist/components/ic-navigation-group.js.map +1 -1
  207. package/dist/components/ic-navigation-item.js +2 -2
  208. package/dist/components/ic-navigation-item.js.map +1 -1
  209. package/dist/components/ic-navigation-menu2.js +2 -2
  210. package/dist/components/ic-navigation-menu2.js.map +1 -1
  211. package/dist/components/ic-page-header.js +4 -4
  212. package/dist/components/ic-page-header.js.map +1 -1
  213. package/dist/components/ic-pagination-bar2.js +27 -17
  214. package/dist/components/ic-pagination-bar2.js.map +1 -1
  215. package/dist/components/ic-pagination-item2.js +2 -2
  216. package/dist/components/ic-pagination-item2.js.map +1 -1
  217. package/dist/components/ic-popover-menu.js +30 -22
  218. package/dist/components/ic-popover-menu.js.map +1 -1
  219. package/dist/components/ic-radio-group.js +19 -9
  220. package/dist/components/ic-radio-group.js.map +1 -1
  221. package/dist/components/ic-radio-option.js +27 -22
  222. package/dist/components/ic-radio-option.js.map +1 -1
  223. package/dist/components/ic-search-bar.js +12 -25
  224. package/dist/components/ic-search-bar.js.map +1 -1
  225. package/dist/components/ic-select2.js +149 -38
  226. package/dist/components/ic-select2.js.map +1 -1
  227. package/dist/components/ic-side-navigation.js +2 -2
  228. package/dist/components/ic-side-navigation.js.map +1 -1
  229. package/dist/components/ic-skeleton.js +5 -5
  230. package/dist/components/ic-skeleton.js.map +1 -1
  231. package/dist/components/ic-status-tag.js +1 -1
  232. package/dist/components/ic-status-tag.js.map +1 -1
  233. package/dist/components/ic-step.js +4 -4
  234. package/dist/components/ic-step.js.map +1 -1
  235. package/dist/components/ic-stepper.js +14 -3
  236. package/dist/components/ic-stepper.js.map +1 -1
  237. package/dist/components/ic-switch.js +7 -3
  238. package/dist/components/ic-switch.js.map +1 -1
  239. package/dist/components/ic-tab-context.js +58 -122
  240. package/dist/components/ic-tab-context.js.map +1 -1
  241. package/dist/components/ic-tab-panel.js +1 -1
  242. package/dist/components/ic-tab-panel.js.map +1 -1
  243. package/dist/components/ic-tab.js +5 -6
  244. package/dist/components/ic-tab.js.map +1 -1
  245. package/dist/components/ic-text-field2.js +3 -3
  246. package/dist/components/ic-text-field2.js.map +1 -1
  247. package/dist/components/ic-theme.js +1 -1
  248. package/dist/components/ic-toast.js +3 -3
  249. package/dist/components/ic-toast.js.map +1 -1
  250. package/dist/components/ic-toggle-button.js +1 -1
  251. package/dist/components/ic-toggle-button.js.map +1 -1
  252. package/dist/components/ic-tooltip2.js +1 -1
  253. package/dist/components/ic-tooltip2.js.map +1 -1
  254. package/dist/components/ic-top-navigation.js +2 -2
  255. package/dist/components/ic-top-navigation.js.map +1 -1
  256. package/dist/components/ic-tree-item.js +5 -2
  257. package/dist/components/ic-tree-item.js.map +1 -1
  258. package/dist/components/ic-tree-view.js +12 -2
  259. package/dist/components/ic-tree-view.js.map +1 -1
  260. package/dist/components/ic-typography2.js +4 -2
  261. package/dist/components/ic-typography2.js.map +1 -1
  262. package/dist/core/core.css +661 -37
  263. package/dist/core/core.esm.js +1 -1
  264. package/dist/core/core.esm.js.map +1 -1
  265. package/dist/core/{p-c033e7d6.entry.js → p-036d251b.entry.js} +2 -2
  266. package/dist/core/{p-9397b15b.js → p-043cf5de.js} +2 -2
  267. package/dist/core/p-043cf5de.js.map +1 -0
  268. package/dist/core/p-044689ef.entry.js +2 -0
  269. package/dist/core/p-044689ef.entry.js.map +1 -0
  270. package/dist/core/p-095da817.entry.js +2 -0
  271. package/dist/core/p-095da817.entry.js.map +1 -0
  272. package/dist/core/{p-cb6cebdd.entry.js → p-13d2db9b.entry.js} +2 -2
  273. package/dist/core/{p-cb6cebdd.entry.js.map → p-13d2db9b.entry.js.map} +1 -1
  274. package/dist/core/p-13e01a1e.entry.js +2 -0
  275. package/dist/core/p-13e01a1e.entry.js.map +1 -0
  276. package/dist/core/p-1ae71507.entry.js +2 -0
  277. package/dist/core/p-1ae71507.entry.js.map +1 -0
  278. package/dist/core/p-2200ca85.entry.js +2 -0
  279. package/dist/core/p-2200ca85.entry.js.map +1 -0
  280. package/dist/core/p-2257f5e8.entry.js +2 -0
  281. package/dist/core/p-2257f5e8.entry.js.map +1 -0
  282. package/dist/core/{p-897b8d16.entry.js → p-24d03bbd.entry.js} +2 -2
  283. package/dist/core/{p-a78cf2cb.entry.js → p-266098ee.entry.js} +2 -2
  284. package/dist/core/{p-5f313e1a.entry.js → p-26613dbd.entry.js} +2 -2
  285. package/dist/core/{p-5f313e1a.entry.js.map → p-26613dbd.entry.js.map} +1 -1
  286. package/dist/core/p-283a2274.entry.js +2 -0
  287. package/dist/core/p-283a2274.entry.js.map +1 -0
  288. package/dist/core/{p-77a32de5.entry.js → p-2a3bd99a.entry.js} +2 -2
  289. package/dist/core/p-42f88966.entry.js +2 -0
  290. package/dist/core/p-42f88966.entry.js.map +1 -0
  291. package/dist/core/p-44ee5375.entry.js +2 -0
  292. package/dist/core/p-44ee5375.entry.js.map +1 -0
  293. package/dist/core/p-48a78218.entry.js +2 -0
  294. package/dist/core/p-48a78218.entry.js.map +1 -0
  295. package/dist/core/p-4e316ae5.entry.js +2 -0
  296. package/dist/core/p-4e316ae5.entry.js.map +1 -0
  297. package/dist/core/p-50dd2744.entry.js +2 -0
  298. package/dist/core/p-50dd2744.entry.js.map +1 -0
  299. package/dist/core/{p-bf670360.entry.js → p-51ea45cb.entry.js} +2 -2
  300. package/dist/core/{p-bf670360.entry.js.map → p-51ea45cb.entry.js.map} +1 -1
  301. package/dist/core/p-5458d818.entry.js +2 -0
  302. package/dist/core/p-5458d818.entry.js.map +1 -0
  303. package/dist/core/{p-202bc922.entry.js → p-5ad1a7fb.entry.js} +2 -2
  304. package/dist/core/p-5b061abc.entry.js +2 -0
  305. package/dist/core/p-5b061abc.entry.js.map +1 -0
  306. package/dist/core/{p-f98b1afc.entry.js → p-6727166b.entry.js} +2 -2
  307. package/dist/core/{p-f98b1afc.entry.js.map → p-6727166b.entry.js.map} +1 -1
  308. package/dist/core/p-6dc00a8f.entry.js +2 -0
  309. package/dist/core/p-6dc00a8f.entry.js.map +1 -0
  310. package/dist/core/p-6dffaac0.entry.js +2 -0
  311. package/dist/core/p-6dffaac0.entry.js.map +1 -0
  312. package/dist/core/p-6fd89ed5.entry.js +2 -0
  313. package/dist/core/p-6fd89ed5.entry.js.map +1 -0
  314. package/dist/core/p-7aa6b76e.entry.js +2 -0
  315. package/dist/core/p-7aa6b76e.entry.js.map +1 -0
  316. package/dist/core/{p-e5d99316.entry.js → p-7b90f0ae.entry.js} +2 -2
  317. package/dist/core/{p-5f5403e2.entry.js → p-7e1603cc.entry.js} +2 -2
  318. package/dist/core/p-7e1603cc.entry.js.map +1 -0
  319. package/dist/core/{p-30b046b2.entry.js → p-7e5b0fff.entry.js} +2 -2
  320. package/dist/core/{p-d8563643.entry.js → p-80b296cd.entry.js} +2 -2
  321. package/dist/core/p-80b296cd.entry.js.map +1 -0
  322. package/dist/core/{p-73b40c79.entry.js → p-82aa8136.entry.js} +2 -2
  323. package/dist/core/{p-73b40c79.entry.js.map → p-82aa8136.entry.js.map} +1 -1
  324. package/dist/core/p-83b4efe2.entry.js +2 -0
  325. package/dist/core/p-83b4efe2.entry.js.map +1 -0
  326. package/dist/core/p-83e4d955.entry.js +2 -0
  327. package/dist/core/p-83e4d955.entry.js.map +1 -0
  328. package/dist/core/p-86b608b5.entry.js +2 -0
  329. package/dist/core/p-86b608b5.entry.js.map +1 -0
  330. package/dist/core/p-878df16f.entry.js +2 -0
  331. package/dist/core/p-878df16f.entry.js.map +1 -0
  332. package/dist/core/p-89be0a21.js +2 -0
  333. package/dist/core/p-89be0a21.js.map +1 -0
  334. package/dist/core/{p-306def43.entry.js → p-8bec76d1.entry.js} +2 -2
  335. package/dist/core/p-8bec76d1.entry.js.map +1 -0
  336. package/dist/core/p-94141606.entry.js +2 -0
  337. package/dist/core/p-94141606.entry.js.map +1 -0
  338. package/dist/core/{p-108a9029.entry.js → p-94416b6b.entry.js} +2 -2
  339. package/dist/core/p-94416b6b.entry.js.map +1 -0
  340. package/dist/core/{p-f743b0eb.entry.js → p-a4439688.entry.js} +2 -2
  341. package/dist/core/{p-f743b0eb.entry.js.map → p-a4439688.entry.js.map} +1 -1
  342. package/dist/core/p-a8106c56.entry.js +2 -0
  343. package/dist/core/p-a8106c56.entry.js.map +1 -0
  344. package/dist/core/p-affd7f55.entry.js +2 -0
  345. package/dist/core/p-affd7f55.entry.js.map +1 -0
  346. package/dist/core/{p-c21d0db8.entry.js → p-b3d93bc1.entry.js} +2 -2
  347. package/dist/core/p-b3d93bc1.entry.js.map +1 -0
  348. package/dist/core/p-bac2beeb.entry.js +2 -0
  349. package/dist/core/p-bac2beeb.entry.js.map +1 -0
  350. package/dist/core/p-c29b2b48.entry.js +2 -0
  351. package/dist/core/p-c29b2b48.entry.js.map +1 -0
  352. package/dist/core/p-c40c57ee.entry.js +2 -0
  353. package/dist/core/p-c40c57ee.entry.js.map +1 -0
  354. package/dist/core/p-c6a62d1b.entry.js +2 -0
  355. package/dist/core/p-c6a62d1b.entry.js.map +1 -0
  356. package/dist/core/{p-266341f5.entry.js → p-cc22644d.entry.js} +2 -2
  357. package/dist/core/{p-266341f5.entry.js.map → p-cc22644d.entry.js.map} +1 -1
  358. package/dist/core/p-cfd81370.entry.js +2 -0
  359. package/dist/core/p-cfd81370.entry.js.map +1 -0
  360. package/dist/core/p-d53fb899.entry.js +2 -0
  361. package/dist/core/p-d53fb899.entry.js.map +1 -0
  362. package/dist/core/p-d5e9cf81.entry.js +2 -0
  363. package/dist/core/p-d5e9cf81.entry.js.map +1 -0
  364. package/dist/core/{p-505250cf.entry.js → p-d7632baf.entry.js} +2 -2
  365. package/dist/core/p-dcccd9c1.entry.js +2 -0
  366. package/dist/core/{p-aee8d45b.entry.js.map → p-dcccd9c1.entry.js.map} +1 -1
  367. package/dist/core/p-edfd0946.entry.js +2 -0
  368. package/dist/core/p-edfd0946.entry.js.map +1 -0
  369. package/dist/core/p-f1842a68.entry.js +2 -0
  370. package/dist/core/p-f1842a68.entry.js.map +1 -0
  371. package/dist/core/{p-f1072c28.entry.js → p-f64abdff.entry.js} +2 -2
  372. package/dist/core/p-f64abdff.entry.js.map +1 -0
  373. package/dist/core/p-f8c1d7e8.entry.js +2 -0
  374. package/dist/core/p-f8c1d7e8.entry.js.map +1 -0
  375. package/dist/core/{p-d03374fc.entry.js → p-fbb5c8f2.entry.js} +2 -2
  376. package/dist/core/p-fc2f336d.entry.js +2 -0
  377. package/dist/core/p-fc2f336d.entry.js.map +1 -0
  378. package/dist/esm/core.js +1 -1
  379. package/dist/esm/{helpers-5bd2012a.js → helpers-a7b13f5a.js} +15 -122
  380. package/dist/esm/helpers-a7b13f5a.js.map +1 -0
  381. package/dist/esm/{helpers-dab8ddfe.js → helpers-c326255f.js} +23 -2
  382. package/dist/esm/helpers-c326255f.js.map +1 -0
  383. package/dist/esm/ic-accordion-group.entry.js +1 -1
  384. package/dist/esm/ic-accordion.entry.js +2 -2
  385. package/dist/esm/ic-accordion.entry.js.map +1 -1
  386. package/dist/esm/ic-alert.entry.js +2 -2
  387. package/dist/esm/ic-alert.entry.js.map +1 -1
  388. package/dist/esm/ic-back-to-top.entry.js +1 -1
  389. package/dist/esm/ic-badge.entry.js +2 -2
  390. package/dist/esm/ic-badge.entry.js.map +1 -1
  391. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  392. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  393. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  394. package/dist/esm/ic-button_3.entry.js +17 -16
  395. package/dist/esm/ic-button_3.entry.js.map +1 -1
  396. package/dist/esm/ic-card-horizontal.entry.js +2 -2
  397. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  398. package/dist/esm/ic-card-vertical.entry.js +2 -2
  399. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  400. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  401. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  402. package/dist/esm/ic-checkbox.entry.js +3 -3
  403. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  404. package/dist/esm/ic-chip.entry.js +22 -15
  405. package/dist/esm/ic-chip.entry.js.map +1 -1
  406. package/dist/esm/ic-classification-banner.entry.js +1 -1
  407. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  408. package/dist/esm/ic-data-row.entry.js +1 -1
  409. package/dist/esm/ic-data-table-title-bar.entry.js +2 -2
  410. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -1
  411. package/dist/esm/ic-data-table.entry.js +31 -8
  412. package/dist/esm/ic-data-table.entry.js.map +1 -1
  413. package/dist/esm/ic-date-input.entry.js +11 -10
  414. package/dist/esm/ic-date-input.entry.js.map +1 -1
  415. package/dist/esm/ic-date-picker.entry.js +4 -2
  416. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  417. package/dist/esm/ic-dialog.entry.js +1 -1
  418. package/dist/esm/ic-divider.entry.js +2 -2
  419. package/dist/esm/ic-divider.entry.js.map +1 -1
  420. package/dist/esm/ic-empty-state_2.entry.js +24 -17
  421. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  422. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  423. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  424. package/dist/esm/ic-footer-link.entry.js +2 -2
  425. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  426. package/dist/esm/ic-footer.entry.js +2 -2
  427. package/dist/esm/ic-footer.entry.js.map +1 -1
  428. package/dist/esm/ic-hero.entry.js +1 -1
  429. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  430. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  431. package/dist/{collection/components/ic-menu-with-multi/ic-menu.js → esm/ic-input-component-container_3.entry.js} +157 -727
  432. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -0
  433. package/dist/esm/ic-input-label_2.entry.js +81 -0
  434. package/dist/esm/ic-input-label_2.entry.js.map +1 -0
  435. package/dist/esm/ic-link.entry.js +2 -2
  436. package/dist/esm/ic-link.entry.js.map +1 -1
  437. package/dist/esm/ic-menu-group.entry.js +2 -2
  438. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  439. package/dist/esm/ic-menu-item.entry.js +2 -2
  440. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  441. package/dist/esm/ic-navigation-button.entry.js +1 -1
  442. package/dist/esm/ic-navigation-group.entry.js +2 -2
  443. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  444. package/dist/esm/ic-navigation-item.entry.js +2 -2
  445. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  446. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  447. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  448. package/dist/esm/ic-page-header.entry.js +5 -5
  449. package/dist/esm/ic-page-header.entry.js.map +1 -1
  450. package/dist/esm/ic-pagination_4.entry.js +151 -41
  451. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  452. package/dist/esm/ic-popover-menu.entry.js +27 -21
  453. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  454. package/dist/esm/ic-radio-group.entry.js +20 -10
  455. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  456. package/dist/esm/ic-radio-option.entry.js +27 -22
  457. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  458. package/dist/esm/ic-search-bar.entry.js +12 -25
  459. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  460. package/dist/esm/ic-side-navigation.entry.js +2 -2
  461. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  462. package/dist/esm/ic-skeleton.entry.js +4 -4
  463. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  464. package/dist/esm/ic-status-tag.entry.js +2 -2
  465. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  466. package/dist/esm/ic-step.entry.js +4 -5
  467. package/dist/esm/ic-step.entry.js.map +1 -1
  468. package/dist/esm/ic-stepper.entry.js +12 -2
  469. package/dist/esm/ic-stepper.entry.js.map +1 -1
  470. package/dist/esm/ic-switch.entry.js +7 -4
  471. package/dist/esm/ic-switch.entry.js.map +1 -1
  472. package/dist/esm/ic-tab-context.entry.js +58 -122
  473. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  474. package/dist/esm/ic-tab-group.entry.js +1 -1
  475. package/dist/esm/ic-tab-panel.entry.js +2 -2
  476. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  477. package/dist/esm/ic-tab.entry.js +6 -7
  478. package/dist/esm/ic-tab.entry.js.map +1 -1
  479. package/dist/esm/ic-theme.entry.js +1 -1
  480. package/dist/esm/ic-toast.entry.js +3 -3
  481. package/dist/esm/ic-toast.entry.js.map +1 -1
  482. package/dist/esm/ic-toggle-button.entry.js +2 -2
  483. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  484. package/dist/esm/ic-top-navigation.entry.js +2 -2
  485. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  486. package/dist/esm/ic-tree-item.entry.js +5 -3
  487. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  488. package/dist/esm/ic-tree-view.entry.js +10 -2
  489. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  490. package/dist/esm/ic-typography.entry.js +5 -3
  491. package/dist/esm/ic-typography.entry.js.map +1 -1
  492. package/dist/esm/index-93509377.js +4 -12
  493. package/dist/esm/loader.js +1 -1
  494. package/dist/types/components/ic-data-table/ic-data-table.d.ts +4 -0
  495. package/dist/types/components/ic-data-table/story-data.d.ts +15 -0
  496. package/dist/types/components/ic-date-input/ic-date-input.d.ts +4 -0
  497. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
  498. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +14 -5
  499. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +4 -0
  500. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +5 -1
  501. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +5 -0
  502. package/dist/types/components.d.ts +63 -472
  503. package/dist/types/utils/helpers.d.ts +1 -1
  504. package/dist/types/utils/types.d.ts +1 -0
  505. package/hydrate/index.js +3695 -6960
  506. package/package.json +3 -3
  507. package/dist/cjs/helpers-33b42cd6.js.map +0 -1
  508. package/dist/cjs/helpers-6817cfbb.js.map +0 -1
  509. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +0 -156
  510. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +0 -1
  511. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +0 -2738
  512. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +0 -1
  513. package/dist/cjs/ic-menu.cjs.entry.js +0 -658
  514. package/dist/cjs/ic-menu.cjs.entry.js.map +0 -1
  515. package/dist/cjs/ic-select-with-multi.cjs.entry.js +0 -788
  516. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +0 -1
  517. package/dist/collection/components/ic-menu-with-multi/ic-menu.css +0 -712
  518. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +0 -1
  519. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +0 -1057
  520. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +0 -1
  521. package/dist/collection/components/ic-select-with-multi/assets/Check.svg +0 -3
  522. package/dist/collection/components/ic-select-with-multi/assets/Clear.svg +0 -3
  523. package/dist/collection/components/ic-select-with-multi/assets/Expand.svg +0 -3
  524. package/dist/collection/components/ic-select-with-multi/ic-select.css +0 -695
  525. package/dist/collection/components/ic-select-with-multi/ic-select.js +0 -1520
  526. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +0 -1
  527. package/dist/collection/components/ic-select-with-multi/story-data.js +0 -216
  528. package/dist/collection/components/ic-select-with-multi/story-data.js.map +0 -1
  529. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +0 -1518
  530. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +0 -1
  531. package/dist/components/ic-menu-with-multi.d.ts +0 -11
  532. package/dist/components/ic-menu-with-multi.js +0 -8
  533. package/dist/components/ic-menu-with-multi.js.map +0 -1
  534. package/dist/components/ic-menu3.js +0 -2803
  535. package/dist/components/ic-menu3.js.map +0 -1
  536. package/dist/components/ic-select-with-multi.d.ts +0 -11
  537. package/dist/components/ic-select-with-multi.js +0 -906
  538. package/dist/components/ic-select-with-multi.js.map +0 -1
  539. package/dist/core/p-06eeb7f2.entry.js +0 -2
  540. package/dist/core/p-06eeb7f2.entry.js.map +0 -1
  541. package/dist/core/p-0922c552.entry.js +0 -2
  542. package/dist/core/p-0922c552.entry.js.map +0 -1
  543. package/dist/core/p-0bc0e852.entry.js +0 -2
  544. package/dist/core/p-0bc0e852.entry.js.map +0 -1
  545. package/dist/core/p-108a9029.entry.js.map +0 -1
  546. package/dist/core/p-13100d3c.entry.js +0 -2
  547. package/dist/core/p-13100d3c.entry.js.map +0 -1
  548. package/dist/core/p-1769df1d.entry.js +0 -2
  549. package/dist/core/p-1769df1d.entry.js.map +0 -1
  550. package/dist/core/p-297e99cf.js +0 -2
  551. package/dist/core/p-297e99cf.js.map +0 -1
  552. package/dist/core/p-306def43.entry.js.map +0 -1
  553. package/dist/core/p-3778cc5e.entry.js +0 -2
  554. package/dist/core/p-3778cc5e.entry.js.map +0 -1
  555. package/dist/core/p-383a5a76.entry.js +0 -2
  556. package/dist/core/p-383a5a76.entry.js.map +0 -1
  557. package/dist/core/p-3a0510e2.entry.js +0 -2
  558. package/dist/core/p-3a0510e2.entry.js.map +0 -1
  559. package/dist/core/p-3ace51f5.entry.js +0 -2
  560. package/dist/core/p-3ace51f5.entry.js.map +0 -1
  561. package/dist/core/p-3f0391c1.entry.js +0 -2
  562. package/dist/core/p-3f0391c1.entry.js.map +0 -1
  563. package/dist/core/p-41fecc61.entry.js +0 -2
  564. package/dist/core/p-41fecc61.entry.js.map +0 -1
  565. package/dist/core/p-46cb94a2.entry.js +0 -2
  566. package/dist/core/p-46cb94a2.entry.js.map +0 -1
  567. package/dist/core/p-4e67f127.entry.js +0 -2
  568. package/dist/core/p-4e67f127.entry.js.map +0 -1
  569. package/dist/core/p-50e48f4d.entry.js +0 -2
  570. package/dist/core/p-50e48f4d.entry.js.map +0 -1
  571. package/dist/core/p-56e7459a.entry.js +0 -2
  572. package/dist/core/p-56e7459a.entry.js.map +0 -1
  573. package/dist/core/p-59028160.entry.js +0 -2
  574. package/dist/core/p-59028160.entry.js.map +0 -1
  575. package/dist/core/p-5e6fd734.entry.js +0 -2
  576. package/dist/core/p-5e6fd734.entry.js.map +0 -1
  577. package/dist/core/p-5f5403e2.entry.js.map +0 -1
  578. package/dist/core/p-710c6a42.entry.js +0 -2
  579. package/dist/core/p-710c6a42.entry.js.map +0 -1
  580. package/dist/core/p-7a9de008.entry.js +0 -2
  581. package/dist/core/p-7a9de008.entry.js.map +0 -1
  582. package/dist/core/p-801414e2.entry.js +0 -2
  583. package/dist/core/p-801414e2.entry.js.map +0 -1
  584. package/dist/core/p-82ba744d.entry.js +0 -2
  585. package/dist/core/p-82ba744d.entry.js.map +0 -1
  586. package/dist/core/p-9397b15b.js.map +0 -1
  587. package/dist/core/p-9af6adb1.entry.js +0 -2
  588. package/dist/core/p-9af6adb1.entry.js.map +0 -1
  589. package/dist/core/p-9b54feca.entry.js +0 -2
  590. package/dist/core/p-9b54feca.entry.js.map +0 -1
  591. package/dist/core/p-a57cd616.entry.js +0 -2
  592. package/dist/core/p-a57cd616.entry.js.map +0 -1
  593. package/dist/core/p-a5eaed1a.entry.js +0 -2
  594. package/dist/core/p-a5eaed1a.entry.js.map +0 -1
  595. package/dist/core/p-a91340b4.entry.js +0 -2
  596. package/dist/core/p-a91340b4.entry.js.map +0 -1
  597. package/dist/core/p-aee8d45b.entry.js +0 -2
  598. package/dist/core/p-badd4c8d.entry.js +0 -2
  599. package/dist/core/p-badd4c8d.entry.js.map +0 -1
  600. package/dist/core/p-c07af2d8.entry.js +0 -2
  601. package/dist/core/p-c07af2d8.entry.js.map +0 -1
  602. package/dist/core/p-c21d0db8.entry.js.map +0 -1
  603. package/dist/core/p-c678f73d.entry.js +0 -2
  604. package/dist/core/p-c678f73d.entry.js.map +0 -1
  605. package/dist/core/p-c6ae9bad.entry.js +0 -2
  606. package/dist/core/p-c6ae9bad.entry.js.map +0 -1
  607. package/dist/core/p-c6c1e08e.entry.js +0 -2
  608. package/dist/core/p-c6c1e08e.entry.js.map +0 -1
  609. package/dist/core/p-d16f364a.entry.js +0 -2
  610. package/dist/core/p-d16f364a.entry.js.map +0 -1
  611. package/dist/core/p-d239c33b.entry.js +0 -2
  612. package/dist/core/p-d239c33b.entry.js.map +0 -1
  613. package/dist/core/p-d8563643.entry.js.map +0 -1
  614. package/dist/core/p-da40757f.entry.js +0 -2
  615. package/dist/core/p-da40757f.entry.js.map +0 -1
  616. package/dist/core/p-de052137.entry.js +0 -2
  617. package/dist/core/p-de052137.entry.js.map +0 -1
  618. package/dist/core/p-e89bb650.entry.js +0 -2
  619. package/dist/core/p-e89bb650.entry.js.map +0 -1
  620. package/dist/core/p-f1072c28.entry.js.map +0 -1
  621. package/dist/core/p-f37df214.entry.js +0 -2
  622. package/dist/core/p-f37df214.entry.js.map +0 -1
  623. package/dist/core/p-fe13f1ba.entry.js +0 -2
  624. package/dist/core/p-fe13f1ba.entry.js.map +0 -1
  625. package/dist/esm/helpers-5bd2012a.js.map +0 -1
  626. package/dist/esm/helpers-dab8ddfe.js.map +0 -1
  627. package/dist/esm/ic-input-component-container_4.entry.js +0 -149
  628. package/dist/esm/ic-input-component-container_4.entry.js.map +0 -1
  629. package/dist/esm/ic-menu-with-multi.entry.js +0 -2734
  630. package/dist/esm/ic-menu-with-multi.entry.js.map +0 -1
  631. package/dist/esm/ic-menu.entry.js +0 -654
  632. package/dist/esm/ic-menu.entry.js.map +0 -1
  633. package/dist/esm/ic-select-with-multi.entry.js +0 -784
  634. package/dist/esm/ic-select-with-multi.entry.js.map +0 -1
  635. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +0 -214
  636. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +0 -259
  637. package/dist/types/components/ic-select-with-multi/story-data.d.ts +0 -32
  638. /package/dist/core/{p-c033e7d6.entry.js.map → p-036d251b.entry.js.map} +0 -0
  639. /package/dist/core/{p-897b8d16.entry.js.map → p-24d03bbd.entry.js.map} +0 -0
  640. /package/dist/core/{p-a78cf2cb.entry.js.map → p-266098ee.entry.js.map} +0 -0
  641. /package/dist/core/{p-77a32de5.entry.js.map → p-2a3bd99a.entry.js.map} +0 -0
  642. /package/dist/core/{p-202bc922.entry.js.map → p-5ad1a7fb.entry.js.map} +0 -0
  643. /package/dist/core/{p-e5d99316.entry.js.map → p-7b90f0ae.entry.js.map} +0 -0
  644. /package/dist/core/{p-30b046b2.entry.js.map → p-7e5b0fff.entry.js.map} +0 -0
  645. /package/dist/core/{p-505250cf.entry.js.map → p-d7632baf.entry.js.map} +0 -0
  646. /package/dist/core/{p-d03374fc.entry.js.map → p-fbb5c8f2.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-pagination-bar.js","sourceRoot":"","sources":["../../../src/components/ic-pagination-bar/ic-pagination-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport { IcThemeForeground } from \"@ukic/web-components/dist/types/interface\";\nimport { checkResizeObserver, capitalize } from \"../../utils/helpers\";\nimport {\n IcPaginationAlignmentOptions,\n IcPaginationLabelTypes,\n IcPaginationTypes,\n} from \"@ukic/web-components/dist/types/components/ic-pagination/ic-pagination.types\";\n\n@Component({\n tag: \"ic-pagination-bar\",\n styleUrl: \"ic-pagination-bar.css\",\n shadow: true,\n})\nexport class PaginationBar {\n private PAGE_INPUT_FIELD_ID = \"go-to-page-input\";\n\n private INVALID_PAGE_ERROR = \"Please enter a valid page\";\n\n private resizeObserver: ResizeObserver = null;\n private pageDropdownEl: HTMLIcSelectElement;\n private pageInputEl: HTMLIcTextFieldElement;\n private pageInputTooltipEl: HTMLIcTooltipElement;\n private paginationBarEl: HTMLElement;\n private paginationEl: HTMLIcPaginationElement;\n\n @Element() el: HTMLIcPaginationBarElement;\n\n @State() capitalizedItemLabel: string;\n\n @State() capitalizedPageLabel: string;\n\n @State() currentPage: number = 1;\n\n @State() displayedItemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @State() inputError: string = \"Please enter a valid page\";\n\n @State() itemsPerPage: number = 0;\n\n @State() itemsPerPageString: string = \"0\";\n\n @State() lowerBound: number = 1;\n\n @State() lowerCaseItemLabel: string;\n\n @State() lowerCasePageLabel: string;\n\n @State() paginationWidth: number;\n\n @State() paginationWrapped: boolean = false;\n\n @State() totalPages: number;\n\n @State() upperBound: number;\n\n /**\n * Sets the alignment of the items in the pagination bar.\n */\n @Prop() alignment?: IcPaginationAlignmentOptions = \"right\";\n\n /**\n * Sets the styling for the items in the pagination bar.\n */\n @Prop() appearance?: IcThemeForeground = \"default\";\n\n /**\n * The text which will be used in place of 'Item' on the pagination bar.\n */\n @Prop() itemLabel?: string = \"Item\";\n\n @Watch(\"itemLabel\")\n watchItemLabelHandler(): void {\n this.capitalizedItemLabel = capitalize(this.itemLabel);\n this.lowerCaseItemLabel = this.itemLabel.toLowerCase();\n }\n\n /**\n * The options which will be displayed for 'items per page' select input. Set a maximum of 4 options including a required 'All' option with value equal to total number of items.\n */\n @Prop() itemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @Watch(\"itemsPerPageOptions\")\n watchItemsPerPageOptionsHandler(\n newVal: {\n label: string;\n value: string;\n }[],\n oldVal: {\n label: string;\n value: string;\n }[]\n ): void {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal)) return;\n this.setPaginationBarContent();\n }\n\n /**\n * Whether the displayed pagination is simple or complex.\n */\n @Prop() type?: IcPaginationTypes = \"simple\";\n\n /**\n * Whether total number of items and current item range or total number of pages and current page is displayed.\n */\n @Prop() rangeLabelType?: IcPaginationLabelTypes = \"page\";\n\n /**\n * The text which will be used in place of 'Page' on the pagination bar.\n */\n @Prop() pageLabel?: string = \"Page\";\n\n @Watch(\"pageLabel\")\n watchPageLabelHandler(): void {\n this.capitalizedPageLabel = capitalize(this.pageLabel);\n this.lowerCasePageLabel = this.pageLabel.toLowerCase();\n }\n\n /**\n * If `true`, the 'go to page' control should be displayed.\n */\n @Prop() showGoToPageControl?: boolean = false;\n\n /**\n * If `true`, the number of total items and current item range or number of total pages and current page will be hidden.\n */\n @Prop() hideRangeLabel?: boolean = false;\n\n /**\n * If `true`, the select input to control 'items per page' should be displayed.\n */\n @Prop() showItemsPerPageControl?: boolean = false;\n\n /**\n * Total number of items to be displayed across all pages.\n */\n @Prop() totalItems!: number;\n\n @Watch(\"totalItems\")\n watchTotalItemsHandler(): void {\n this.setPaginationBarContent();\n }\n\n /**\n * Emitted when a page is navigated to via the 'go to' input.\n */\n @Event() icPageChange: EventEmitter<{ value: number }>;\n\n /**\n * Emitted when the items per page option is changed.\n */\n @Event() icItemsPerPageChange: EventEmitter<{ value: number }>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.watchPageLabelHandler();\n this.watchItemLabelHandler();\n this.setPaginationBarContent();\n }\n\n componentDidLoad(): void {\n this.paginationWidth = this.paginationBarEl.clientWidth;\n checkResizeObserver(this.runResizeObserver);\n const textField = this.el.shadowRoot?.querySelector(\n `.${this.PAGE_INPUT_FIELD_ID}`\n );\n if (textField) {\n const input = textField?.shadowRoot?.querySelector(\"input\");\n if (input) {\n input.style.textAlign = \"center\";\n input.style.padding = \"0\";\n }\n }\n this.paginationShouldWrap();\n }\n\n @Listen(\"icPageChange\")\n pageChangeHandler(ev: CustomEvent): void {\n const page = ev.detail.value;\n this.changePage(page);\n }\n\n private changeItemsPerPage = () => {\n this.setItemsPerPage(Number(this.pageDropdownEl.value));\n };\n\n private changePage = (page: number) => {\n this.currentPage = page;\n this.lowerBound = page !== 1 ? (page - 1) * this.itemsPerPage + 1 : page;\n this.setUpperBound();\n };\n\n private focusElFromLabel = (el: \"ic-select\" | \"ic-text-field\") => {\n this.paginationBarEl.querySelector(el)?.setFocus();\n };\n\n private goToPage = () => {\n const input = this.pageInputEl;\n const page = Number(input.value);\n if (page <= this.totalPages && page > 0) {\n this.changePage(page);\n this.paginationEl.setCurrentPage(page);\n this.currentPage = page;\n input.value = \"\";\n this.icPageChange.emit({ value: page });\n this.pageInputTooltipEl.displayTooltip(false, false);\n input.validationStatus = \"\";\n } else {\n this.setInputError(input, this.INVALID_PAGE_ERROR);\n }\n };\n\n private goToPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-text-field\");\n };\n\n private handleBlur = () => {\n const textField = this.pageInputEl;\n if (\n (Number(textField.value) <= this.totalPages &&\n Number(textField.value) > 0) ||\n textField.value === \"\"\n ) {\n textField.validationStatus = \"\";\n }\n this.pageInputTooltipEl.displayTooltip(false, false);\n };\n\n private handleFocus = () => {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleInputChange = () => {\n const inputValue = parseInt(this.pageInputEl.value);\n\n if (inputValue > this.totalPages || inputValue <= 0) {\n this.setInputError(this.pageInputEl, this.INVALID_PAGE_ERROR);\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\") {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n } else {\n this.goToPage();\n }\n } else {\n this.pageInputTooltipEl.displayTooltip(false, false);\n this.pageInputEl.validationStatus = \"\";\n }\n };\n\n private handleKeyUp = (ev: KeyboardEvent) => {\n if (\n Number.isNaN(parseInt(this.pageInputEl.value)) &&\n ev.key !== \"Backspace\" &&\n ev.key !== \"Enter\" &&\n ev.key !== \"Tab\" &&\n ev.key !== \"Shift\"\n ) {\n this.setInputError(this.pageInputEl, \"Please enter a number\", false);\n this.pageInputTooltipEl.displayTooltip(true, false);\n }\n };\n\n private itemsPerPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-select\");\n };\n\n private paginationShouldWrap = () => {\n if (this.type === \"simple\") {\n this.paginationWrapped = this.paginationEl.clientHeight > 63;\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const { clientWidth } = this.paginationBarEl;\n if (\n clientWidth - this.paginationWidth > 50 ||\n clientWidth - this.paginationWidth < -50\n ) {\n this.paginationWidth = clientWidth;\n this.paginationShouldWrap();\n }\n });\n\n this.resizeObserver.observe(this.paginationBarEl);\n };\n\n private setInputError = (\n el: HTMLIcTextFieldElement,\n error: string,\n focus = true\n ) => {\n this.inputError = error;\n el.validationStatus = \"error\";\n if (focus) el.setFocus();\n };\n\n private setItemsPerPage = (newValue: number) => {\n if (this.itemsPerPage !== newValue) {\n this.itemsPerPage = newValue;\n this.itemsPerPageString = newValue.toString();\n this.icItemsPerPageChange.emit({ value: this.itemsPerPage });\n }\n\n this.totalPages =\n this.totalItems > this.itemsPerPage\n ? Math.ceil(this.totalItems / this.itemsPerPage)\n : 1;\n\n this.setUpperBound();\n if (this.currentPage > this.totalPages) {\n this.paginationEl.setCurrentPage(this.totalPages);\n this.currentPage = this.totalPages;\n }\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private setPaginationBarContent = (): void => {\n const displayedItemsPerPageOptions =\n this.itemsPerPageOptions?.slice(0, 3) ||\n (this.totalItems <= 100\n ? [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n ]\n : [\n { label: \"25\", value: \"25\" },\n { label: \"100\", value: \"100\" },\n { label: \"1000\", value: \"1000\" },\n ]);\n displayedItemsPerPageOptions.push({\n label: \"All\",\n value: String(this.totalItems),\n });\n\n this.displayedItemsPerPageOptions = displayedItemsPerPageOptions.filter(\n ({ value }) => this.totalItems >= Number(value)\n );\n\n let lastOptionValue = 0;\n const updated = this.displayedItemsPerPageOptions.some(({ value }) => {\n lastOptionValue = Number(value);\n return this.itemsPerPage <= lastOptionValue;\n });\n\n this.setItemsPerPage(\n updated || (!updated && this.itemsPerPage > lastOptionValue)\n ? lastOptionValue\n : this.itemsPerPage\n );\n };\n\n private setUpperBound = () => {\n this.upperBound = Math.min(\n this.lowerBound + this.itemsPerPage - 1,\n this.totalItems\n );\n };\n\n render() {\n const {\n appearance,\n alignment,\n displayedItemsPerPageOptions,\n PAGE_INPUT_FIELD_ID,\n type,\n rangeLabelType,\n hideRangeLabel,\n showItemsPerPageControl,\n showGoToPageControl,\n pageLabel,\n capitalizedPageLabel,\n lowerCasePageLabel,\n capitalizedItemLabel,\n lowerCaseItemLabel,\n totalPages,\n currentPage,\n itemsPerPageString,\n } = this;\n\n return (\n <div\n class={{\n [\"pagination-bar\"]: true,\n [`pagination-bar-${alignment}`]: true,\n }}\n ref={(el) => (this.paginationBarEl = el)}\n >\n {(!hideRangeLabel || showItemsPerPageControl) && (\n <div class=\"item-controls\">\n {showItemsPerPageControl && (\n <div class=\"items-per-page-holder\">\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"items-per-page-control-label\"]: true,\n }}\n variant=\"label\"\n onClick={this.itemsPerPageLabelClickHandler}\n >\n {capitalizedItemLabel}s per {lowerCasePageLabel}\n </ic-typography>\n <ic-select\n size=\"small\"\n label=\"items-per-page-input\"\n class=\"items-per-page-input\"\n hideLabel\n options={displayedItemsPerPageOptions}\n value={itemsPerPageString}\n onIcChange={this.changeItemsPerPage}\n ref={(el: HTMLIcSelectElement) => (this.pageDropdownEl = el)}\n ></ic-select>\n </div>\n )}\n {!hideRangeLabel &&\n (rangeLabelType === \"data\" ? (\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"item-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {this.upperBound === 0 && `0 ${lowerCaseItemLabel}s`}\n {this.upperBound > 0 &&\n `${this.lowerBound} - ${this.upperBound} of ${\n this.totalItems\n } ${lowerCaseItemLabel}${this.totalItems > 1 ? \"s\" : \"\"}`}\n </ic-typography>\n ) : (\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"page-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {capitalizedPageLabel} {currentPage} of {totalPages}\n </ic-typography>\n ))}\n </div>\n )}\n <div\n class={{\n [\"pagination-controls\"]: true,\n [\"pagination-controls-wrap\"]: this.paginationWrapped,\n }}\n >\n <div class=\"pagination-holder\">\n <ic-pagination\n appearance={appearance}\n type={type}\n pages={totalPages}\n label={pageLabel}\n ref={(el: HTMLIcPaginationElement) => (this.paginationEl = el)}\n ></ic-pagination>\n </div>\n {showGoToPageControl && (\n <div class=\"go-to-page-holder\">\n <ic-typography\n class={{ [`pagination-text-${appearance}`]: true }}\n variant=\"label\"\n onClick={this.goToPageLabelClickHandler}\n >\n Go to {lowerCasePageLabel}\n </ic-typography>\n <ic-tooltip\n label={this.inputError}\n target={`#${PAGE_INPUT_FIELD_ID}`}\n disableHover\n disableClick\n ref={(el: HTMLIcTooltipElement) =>\n (this.pageInputTooltipEl = el)\n }\n >\n <ic-text-field\n type=\"number\"\n size=\"small\"\n label={PAGE_INPUT_FIELD_ID}\n class={PAGE_INPUT_FIELD_ID}\n id={PAGE_INPUT_FIELD_ID}\n hideLabel\n onKeyDown={this.handleKeydown}\n onKeyUp={this.handleKeyUp}\n onInput={this.handleInputChange}\n max={totalPages}\n min=\"1\"\n validationInlineInternal\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n ref={(el: HTMLIcTextFieldElement) => (this.pageInputEl = el)}\n ></ic-text-field>\n </ic-tooltip>\n <ic-button\n appearance={appearance}\n variant=\"secondary\"\n onClick={this.goToPage}\n size=\"small\"\n class=\"go-to-page-button\"\n >\n Go\n </ic-button>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-pagination-bar.js","sourceRoot":"","sources":["../../../src/components/ic-pagination-bar/ic-pagination-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport { IcThemeForeground } from \"@ukic/web-components/dist/types/interface\";\nimport { checkResizeObserver, capitalize } from \"../../utils/helpers\";\nimport { IcPageChangeEventDetail } from \"./ic-pagination-bar.types\";\nimport {\n IcPaginationAlignmentOptions,\n IcPaginationLabelTypes,\n IcPaginationTypes,\n} from \"@ukic/web-components/dist/types/components/ic-pagination/ic-pagination.types\";\n\n@Component({\n tag: \"ic-pagination-bar\",\n styleUrl: \"ic-pagination-bar.css\",\n shadow: true,\n})\nexport class PaginationBar {\n private PAGE_INPUT_FIELD_ID = \"go-to-page-input\";\n\n private INVALID_PAGE_ERROR = \"Please enter a valid page\";\n\n private resizeObserver: ResizeObserver = null;\n private pageDropdownEl: HTMLIcSelectElement;\n private pageInputEl: HTMLIcTextFieldElement;\n private pageInputTooltipEl: HTMLIcTooltipElement;\n private paginationBarEl: HTMLElement;\n private paginationEl: HTMLIcPaginationElement;\n\n @Element() el: HTMLIcPaginationBarElement;\n\n @State() capitalizedItemLabel: string;\n\n @State() capitalizedPageLabel: string;\n\n @State() activePage: number = 1;\n\n @State() displayedItemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @State() inputError: string = \"Please enter a valid page\";\n\n @State() itemsPerPage: number = 0;\n\n @State() itemsPerPageString: string = \"0\";\n\n @State() lowerBound: number = 1;\n\n @State() lowerCaseItemLabel: string;\n\n @State() lowerCasePageLabel: string;\n\n @State() paginationWidth: number;\n\n @State() paginationWrapped: boolean = false;\n\n @State() totalPages: number;\n\n @State() upperBound: number;\n\n /**\n * Sets the alignment of the items in the pagination bar.\n */\n @Prop() alignment?: IcPaginationAlignmentOptions = \"right\";\n\n /**\n * Sets the styling for the items in the pagination bar.\n */\n @Prop() appearance?: IcThemeForeground = \"default\";\n\n /**\n * The current page number to be displayed on the pagination bar.\n */\n @Prop() currentPage?: number = 1;\n @Watch(\"currentPage\")\n watchPageNumberHandler(): void {\n this.activePage = this.currentPage;\n }\n\n /**\n * If `true`, the 'All' option will be hidden from the 'items per page' select input.\n */\n @Prop() hideAllFromItemsPerPage?: boolean = false;\n\n /**\n * The text which will be used in place of 'Item' on the pagination bar.\n */\n @Prop() itemLabel?: string = \"Item\";\n\n @Watch(\"itemLabel\")\n watchItemLabelHandler(): void {\n this.capitalizedItemLabel = capitalize(this.itemLabel);\n this.lowerCaseItemLabel = this.itemLabel.toLowerCase();\n }\n\n /**\n * The options which will be displayed for 'items per page' select input.\n */\n @Prop() itemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @Watch(\"itemsPerPageOptions\")\n watchItemsPerPageOptionsHandler(\n newVal: {\n label: string;\n value: string;\n }[],\n oldVal: {\n label: string;\n value: string;\n }[]\n ): void {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal)) return;\n this.setPaginationBarContent();\n }\n\n /**\n * Whether the displayed pagination is simple or complex.\n */\n @Prop() type?: IcPaginationTypes = \"simple\";\n\n /**\n * Whether total number of items and current item range or total number of pages and current page is displayed.\n */\n @Prop() rangeLabelType?: IcPaginationLabelTypes = \"page\";\n\n /**\n * The text which will be used in place of 'Page' on the pagination bar.\n */\n @Prop() pageLabel?: string = \"Page\";\n\n @Watch(\"pageLabel\")\n watchPageLabelHandler(): void {\n this.capitalizedPageLabel = capitalize(this.pageLabel);\n this.lowerCasePageLabel = this.pageLabel.toLowerCase();\n }\n\n /**\n * If `true`, the 'go to page' control should be displayed.\n */\n @Prop() showGoToPageControl?: boolean = false;\n\n /**\n * If `true`, the number of total items and current item range or number of total pages and current page will be hidden.\n */\n @Prop() hideRangeLabel?: boolean = false;\n\n /**\n * If `true`, the select input to control 'items per page' should be displayed.\n */\n @Prop() showItemsPerPageControl?: boolean = false;\n\n /**\n * Total number of items to be displayed across all pages.\n */\n @Prop() totalItems!: number;\n\n @Watch(\"totalItems\")\n watchTotalItemsHandler(): void {\n this.setPaginationBarContent();\n }\n\n /**\n * Emitted when a page is navigated to via the 'go to' input.\n * The `detail` property contains `value` (i.e. the page number) and a `fromItemsPerPage` flag to indicate if the event was triggered by the `icItemsPerPageChange` event also occurring.\n */\n @Event() icPageChange: EventEmitter<IcPageChangeEventDetail>;\n\n /**\n * Emitted when the items per page option is changed.\n */\n @Event() icItemsPerPageChange: EventEmitter<{ value: number }>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.watchPageNumberHandler();\n this.watchPageLabelHandler();\n this.watchItemLabelHandler();\n this.setPaginationBarContent();\n }\n\n componentDidLoad(): void {\n this.paginationWidth = this.paginationBarEl.clientWidth;\n checkResizeObserver(this.runResizeObserver);\n const textField = this.el.shadowRoot?.querySelector(\n `.${this.PAGE_INPUT_FIELD_ID}`\n );\n if (textField) {\n const input = textField?.shadowRoot?.querySelector(\"input\");\n if (input) {\n input.style.textAlign = \"center\";\n input.style.padding = \"0\";\n }\n }\n this.paginationShouldWrap();\n }\n\n @Listen(\"icPageChange\")\n pageChangeHandler(ev: CustomEvent): void {\n const page = ev.detail.value;\n this.changePage(page);\n }\n\n private changeItemsPerPage = () => {\n this.setItemsPerPage(Number(this.pageDropdownEl.value));\n };\n\n private changePage = (page: number) => {\n this.activePage = page;\n this.lowerBound = page !== 1 ? (page - 1) * this.itemsPerPage + 1 : page;\n this.setUpperBound();\n };\n\n private focusElFromLabel = (el: \"ic-select\" | \"ic-text-field\") => {\n this.paginationBarEl.querySelector(el)?.setFocus();\n };\n\n private goToPage = () => {\n const input = this.pageInputEl;\n const page = Number(input.value);\n if (page <= this.totalPages && page > 0) {\n this.changePage(page);\n this.paginationEl.setCurrentPage(page);\n this.activePage = page;\n input.value = \"\";\n this.icPageChange.emit({ value: page });\n this.pageInputTooltipEl.displayTooltip(false, false);\n input.validationStatus = \"\";\n } else {\n this.setInputError(input, this.INVALID_PAGE_ERROR);\n }\n };\n\n private goToPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-text-field\");\n };\n\n private handleBlur = () => {\n const textField = this.pageInputEl;\n if (\n (Number(textField.value) <= this.totalPages &&\n Number(textField.value) > 0) ||\n textField.value === \"\"\n ) {\n textField.validationStatus = \"\";\n }\n this.pageInputTooltipEl.displayTooltip(false, false);\n };\n\n private handleFocus = () => {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleInputChange = () => {\n const inputValue = parseInt(this.pageInputEl.value);\n\n if (inputValue > this.totalPages || inputValue <= 0) {\n this.setInputError(this.pageInputEl, this.INVALID_PAGE_ERROR);\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\") {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n } else {\n this.goToPage();\n }\n } else {\n this.pageInputTooltipEl.displayTooltip(false, false);\n this.pageInputEl.validationStatus = \"\";\n }\n };\n\n private handleKeyUp = (ev: KeyboardEvent) => {\n if (\n Number.isNaN(parseInt(this.pageInputEl.value)) &&\n ev.key !== \"Backspace\" &&\n ev.key !== \"Enter\" &&\n ev.key !== \"Tab\" &&\n ev.key !== \"Shift\"\n ) {\n this.setInputError(this.pageInputEl, \"Please enter a number\", false);\n this.pageInputTooltipEl.displayTooltip(true, false);\n }\n };\n\n private itemsPerPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-select\");\n };\n\n private paginationShouldWrap = () => {\n if (this.type === \"simple\") {\n this.paginationWrapped = this.paginationEl.clientHeight > 63;\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const { clientWidth } = this.paginationBarEl;\n if (\n clientWidth - this.paginationWidth > 50 ||\n clientWidth - this.paginationWidth < -50\n ) {\n this.paginationWidth = clientWidth;\n this.paginationShouldWrap();\n }\n });\n\n this.resizeObserver.observe(this.paginationBarEl);\n };\n\n private setInputError = (\n el: HTMLIcTextFieldElement,\n error: string,\n focus = true\n ) => {\n this.inputError = error;\n el.validationStatus = \"error\";\n if (focus) el.setFocus();\n };\n\n private setItemsPerPage = (newValue: number) => {\n if (this.itemsPerPage !== newValue) {\n this.itemsPerPage = newValue;\n this.itemsPerPageString = newValue.toString();\n this.icItemsPerPageChange.emit({ value: this.itemsPerPage });\n }\n\n this.totalPages =\n this.totalItems > this.itemsPerPage\n ? Math.ceil(this.totalItems / this.itemsPerPage)\n : 1;\n\n this.setUpperBound();\n if (this.activePage > this.totalPages) {\n this.paginationEl.setCurrentPage(this.totalPages);\n this.activePage = this.totalPages;\n }\n this.icPageChange.emit({ value: this.activePage, fromItemsPerPage: true });\n };\n\n private setPaginationBarContent = (): void => {\n const displayedItemsPerPageOptions =\n this.itemsPerPageOptions ||\n (this.totalItems <= 100\n ? [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n ]\n : [\n { label: \"25\", value: \"25\" },\n { label: \"100\", value: \"100\" },\n { label: \"1000\", value: \"1000\" },\n ]);\n !this.hideAllFromItemsPerPage &&\n displayedItemsPerPageOptions.push({\n label: \"All\",\n value: String(this.totalItems),\n });\n\n this.displayedItemsPerPageOptions = displayedItemsPerPageOptions.filter(\n ({ value }) => this.totalItems >= Number(value)\n );\n\n let lastOptionValue = 0;\n const updated = this.displayedItemsPerPageOptions.some(({ value }) => {\n lastOptionValue = Number(value);\n return this.itemsPerPage <= lastOptionValue;\n });\n\n this.setItemsPerPage(\n updated || (!updated && this.itemsPerPage > lastOptionValue)\n ? lastOptionValue\n : this.itemsPerPage\n );\n };\n\n private setUpperBound = () => {\n this.upperBound = Math.min(\n this.lowerBound + this.itemsPerPage - 1,\n this.totalItems\n );\n };\n\n render() {\n const {\n appearance,\n alignment,\n displayedItemsPerPageOptions,\n PAGE_INPUT_FIELD_ID,\n type,\n rangeLabelType,\n hideRangeLabel,\n showItemsPerPageControl,\n showGoToPageControl,\n pageLabel,\n capitalizedPageLabel,\n lowerCasePageLabel,\n capitalizedItemLabel,\n lowerCaseItemLabel,\n totalPages,\n activePage,\n itemsPerPageString,\n } = this;\n\n return (\n <div\n class={{\n [\"pagination-bar\"]: true,\n [`pagination-bar-${alignment}`]: true,\n }}\n ref={(el) => (this.paginationBarEl = el)}\n >\n {(!hideRangeLabel || showItemsPerPageControl) && (\n <div class=\"item-controls\">\n {showItemsPerPageControl && (\n <div class=\"items-per-page-holder\">\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"items-per-page-control-label\"]: true,\n }}\n variant=\"label\"\n onClick={this.itemsPerPageLabelClickHandler}\n >\n {capitalizedItemLabel}s per {lowerCasePageLabel}\n </ic-typography>\n <ic-select\n size=\"small\"\n label=\"items-per-page-input\"\n class=\"items-per-page-input\"\n hideLabel\n options={displayedItemsPerPageOptions}\n value={itemsPerPageString}\n onIcChange={this.changeItemsPerPage}\n ref={(el: HTMLIcSelectElement) => (this.pageDropdownEl = el)}\n ></ic-select>\n </div>\n )}\n {!hideRangeLabel &&\n (rangeLabelType === \"data\" ? (\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"item-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {this.upperBound === 0 && `0 ${lowerCaseItemLabel}s`}\n {this.upperBound > 0 &&\n `${this.lowerBound} - ${this.upperBound} of ${\n this.totalItems\n } ${lowerCaseItemLabel}${this.totalItems > 1 ? \"s\" : \"\"}`}\n </ic-typography>\n ) : (\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"page-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {capitalizedPageLabel} {activePage} of {totalPages}\n </ic-typography>\n ))}\n </div>\n )}\n <div\n class={{\n [\"pagination-controls\"]: true,\n [\"pagination-controls-wrap\"]: this.paginationWrapped,\n }}\n >\n <div class=\"pagination-holder\">\n <ic-pagination\n appearance={appearance}\n type={type}\n pages={totalPages}\n label={pageLabel}\n ref={(el: HTMLIcPaginationElement) => (this.paginationEl = el)}\n currentPage={activePage}\n ></ic-pagination>\n </div>\n {showGoToPageControl && (\n <div class=\"go-to-page-holder\">\n <ic-typography\n class={{ [`pagination-text-${appearance}`]: true }}\n variant=\"label\"\n onClick={this.goToPageLabelClickHandler}\n >\n Go to {lowerCasePageLabel}\n </ic-typography>\n <ic-tooltip\n label={this.inputError}\n target={`#${PAGE_INPUT_FIELD_ID}`}\n disableHover\n disableClick\n ref={(el: HTMLIcTooltipElement) =>\n (this.pageInputTooltipEl = el)\n }\n >\n <ic-text-field\n type=\"number\"\n size=\"small\"\n label={PAGE_INPUT_FIELD_ID}\n class={PAGE_INPUT_FIELD_ID}\n id={PAGE_INPUT_FIELD_ID}\n hideLabel\n onKeyDown={this.handleKeydown}\n onKeyUp={this.handleKeyUp}\n onInput={this.handleInputChange}\n max={totalPages}\n min=\"1\"\n validationInlineInternal\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n ref={(el: HTMLIcTextFieldElement) => (this.pageInputEl = el)}\n ></ic-text-field>\n </ic-tooltip>\n <ic-button\n appearance={appearance}\n variant=\"secondary\"\n onClick={this.goToPage}\n size=\"small\"\n class=\"go-to-page-button\"\n >\n Go\n </ic-button>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ic-pagination-bar.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-pagination-bar.types.js","sourceRoot":"","sources":["../../../src/components/ic-pagination-bar/ic-pagination-bar.types.ts"],"names":[],"mappings":"","sourcesContent":["export interface IcPageChangeEventDetail {\n value: number;\n fromItemsPerPage?: boolean;\n}\n"]}
@@ -135,7 +135,6 @@ describe("ic-pagination-bar", () => {
135
135
  { label: "100", value: "100" },
136
136
  { label: "All", value: "150" },
137
137
  ];
138
- page.rootInstance.trimItemsPerPageOptions();
139
138
  await page.waitForChanges();
140
139
  expect(page.rootInstance.displayedItemsPerPageOptions).toEqual([
141
140
  { label: "25", value: "25" },
@@ -164,6 +163,16 @@ describe("ic-pagination-bar", () => {
164
163
  { label: "All", value: "100" },
165
164
  ]);
166
165
  });
166
+ it("should update page details when currentPage prop is changed", async () => {
167
+ const page = await newSpecPage({
168
+ components: [PaginationBar, IcPagination],
169
+ html: `<ic-pagination-bar total-items="100"></ic-pagination-bar>`,
170
+ });
171
+ expect(page.root).toMatchSnapshot();
172
+ page.root.currentPage = 4;
173
+ await page.waitForChanges();
174
+ expect(page.root).toMatchSnapshot();
175
+ });
167
176
  it("should wrap pagination when the device size is small", async () => {
168
177
  const page = await newSpecPage({
169
178
  components: [PaginationBar, IcPagination],
@@ -187,12 +196,21 @@ describe("ic-pagination-bar", () => {
187
196
  const select = paginationBar.shadowRoot.querySelector("ic-select");
188
197
  const text = paginationBar.shadowRoot.querySelector(".page-pagination-label");
189
198
  expect(text.textContent).toEqual("Page 1 of 10");
199
+ const eventSpy = jest.fn();
200
+ paginationBar.addEventListener("icPageChange", eventSpy);
190
201
  select.value = "25";
202
+ expect(eventSpy).toHaveBeenCalledTimes(0);
191
203
  page.rootInstance.changeItemsPerPage();
192
- page.rootInstance.setNumberPages();
193
204
  await page.waitForChanges();
194
205
  expect(select.value).toEqual("25");
195
206
  expect(text.textContent).toEqual("Page 1 of 4");
207
+ expect(eventSpy).toHaveBeenCalledTimes(1);
208
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
209
+ detail: expect.objectContaining({
210
+ value: 1,
211
+ fromItemsPerPage: true,
212
+ }),
213
+ }));
196
214
  });
197
215
  it("should change page when the pagination controls are clicked", async () => {
198
216
  const page = await newSpecPage({
@@ -1 +1 @@
1
- {"version":3,"file":"ic-pagination-bar.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { PaginationBar } from \"../../ic-pagination-bar\";\nimport { IcPagination } from \"@ukic/web-components/dist/components/ic-pagination\";\nimport { IcButton } from \"@ukic/web-components/dist/components/ic-button\";\nimport { IcTooltip } from \"@ukic/web-components/dist/components/ic-tooltip\";\nimport { IcTextField } from \"@ukic/web-components/dist/components/ic-text-field\";\nimport { DEVICE_SIZES } from \"@ukic/web-components/dist/types/utils/helpers\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\nimport { newSpecPage } from \"@stencil/core/testing\";\nimport { IcSelect } from \"@ukic/web-components/dist/components/ic-select\";\nimport { IcTypography } from \"@ukic/web-components/dist/components/ic-typography\";\n\ndescribe(\"ic-pagination-bar\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with items per page controls\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with go to page controls\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with data pagination type\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" range-label-type=\"data\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with complex pagination controls\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination],\n html: `<ic-pagination-bar total-items=\"100\" type=\"complex\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a custom page label\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" page-label=\"Sheet\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.rootInstance.lowerCasePageLabel).toBe(\"sheet\");\n\n page.root.itemLabel = \"sheet\";\n await page.waitForChanges();\n\n expect(page.rootInstance.capitalizedPageLabel).toBe(\"Sheet\");\n });\n\n it(\"should render with a custom item label\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" range-label-type=\"data\" item-label=\"Row\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n expect(page.rootInstance.lowerCaseItemLabel).toBe(\"row\");\n\n page.root.itemLabel = \"row\";\n await page.waitForChanges();\n\n expect(page.rootInstance.capitalizedItemLabel).toBe(\"Row\");\n });\n\n it(\"should render without range text\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" hide-range-label=\"true\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with left alignment\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" alignment=\"left\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with space between alignment\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" alignment=\"space-between\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with light appearance\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" appearance=\"light\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with dark appearance\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" apperance=\"dark\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with custom items per page options\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n paginationBar.itemsPerPageOptions = [\n { label: \"15\", value: \"15\" },\n { label: \"30\", value: \"30\" },\n { label: \"60\", value: \"60\" },\n { label: \"All\", value: \"100\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.displayedItemsPerPageOptions).toEqual([\n { label: \"15\", value: \"15\" },\n { label: \"30\", value: \"30\" },\n { label: \"60\", value: \"60\" },\n { label: \"All\", value: \"100\" },\n ]);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should only allow a maximum of 4 custom items per page options\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"150\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n paginationBar.itemsPerPageOptions = [\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"75\", value: \"75\" },\n { label: \"100\", value: \"100\" },\n { label: \"All\", value: \"150\" },\n ];\n\n page.rootInstance.trimItemsPerPageOptions();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.displayedItemsPerPageOptions).toEqual([\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"75\", value: \"75\" },\n { label: \"All\", value: \"150\" },\n ]);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should remove items per page options larger than the maximum number of items\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n paginationBar.itemsPerPageOptions = [\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"150\", value: \"150\" },\n { label: \"All\", value: \"100\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.displayedItemsPerPageOptions).toEqual([\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"All\", value: \"100\" },\n ]);\n });\n\n it(\"should wrap pagination when the device size is small\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n await page.rootInstance.runResizeObserver();\n\n await page.waitForChanges();\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n\n await page.waitForChanges();\n\n await page.rootInstance.paginationShouldWrap();\n\n await page.waitForChanges();\n\n expect(page).toMatchSnapshot();\n\n await page.rootInstance.disconnectedCallback();\n });\n\n it(\"should adjust the total page count when items per page is changed\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const select = paginationBar.shadowRoot.querySelector(\"ic-select\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n select.value = \"25\";\n\n page.rootInstance.changeItemsPerPage();\n\n page.rootInstance.setNumberPages();\n\n await page.waitForChanges();\n\n expect(select.value).toEqual(\"25\");\n\n expect(text.textContent).toEqual(\"Page 1 of 4\");\n });\n\n it(\"should change page when the pagination controls are clicked\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcButton],\n html: `<ic-pagination-bar total-items=\"100\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const pagination = paginationBar.shadowRoot.querySelector(\"ic-pagination\");\n\n const nextButton = pagination.shadowRoot.querySelector(\n \"#next-page-button\"\n ) as HTMLElement;\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n await nextButton.click();\n\n page.rootInstance.changePage(2);\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 2 of 10\");\n });\n\n it(\"should change page when the go to page button is clicked\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const button = paginationBar.shadowRoot.querySelector(\"ic-button\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n const currentPage = page.rootInstance.currentPage;\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n expect(currentPage).toEqual(1);\n\n input.value = \"3\";\n\n button.click();\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 3 of 10\");\n });\n\n it(\"should change page when enter is pressed on the go to page input\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n const currentPage = page.rootInstance.currentPage;\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Enter\" });\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n expect(currentPage).toEqual(1);\n\n input.value = \"3\";\n\n input.focus();\n\n await page.rootInstance.handleKeydown(event);\n\n await waitForTimeout(100);\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 3 of 10\");\n });\n\n it(\"should error immediately when an invalid page is entered before it is submitted\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip, IcTextField],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n expect(input.validationStatus).toBe(\"\");\n\n input.value = \"15\";\n\n input.focus();\n\n await page.rootInstance.handleInputChange();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n });\n\n it(\"should remain in error state if enter is pressed while in error state\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip, IcTextField],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Enter\" });\n\n expect(input.validationStatus).toBe(\"\");\n\n input.value = \"15\";\n\n input.focus();\n\n await page.rootInstance.handleInputChange();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n\n page.rootInstance.handleKeydown(event);\n\n await waitForTimeout(100);\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n });\n\n it(\"should not change page when the go to page button is clicked with an invalid page\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTextField],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const button = paginationBar.shadowRoot.querySelector(\"ic-button\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n const currentPage = page.rootInstance.currentPage;\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n expect(currentPage).toEqual(1);\n\n input.value = \"15\";\n\n button.click();\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n });\n\n it(\"should not change page when enter is pressed on the go to page input with an invalid page\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip, IcTextField],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n const currentPage = page.rootInstance.currentPage;\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Enter\" });\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n expect(currentPage).toEqual(1);\n\n input.value = \"15\";\n\n input.focus();\n\n await page.rootInstance.handleKeydown(event);\n\n await waitForTimeout(100);\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n });\n\n it(\"should hide the tooltip when the input loses focus\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const tooltip = paginationBar.shadowRoot.querySelector(\"ic-tooltip\");\n\n expect(tooltip.getAttribute(\"data-show\")).toBeNull();\n\n input.focus();\n\n input.value = \"15\";\n\n tooltip.displayTooltip(true, false);\n\n await page.waitForChanges();\n\n input.blur();\n\n await page.waitForChanges();\n\n expect(tooltip.getAttribute(\"data-show\")).toBeNull();\n });\n\n it(\"should remove the error status when the input loses focus if the value is not invalid\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n input.focus();\n\n input.value = \"\";\n\n input.validationStatus = \"error\";\n\n await page.waitForChanges();\n\n input.blur();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toBe(\"\");\n });\n\n it(\"should show the tooltip when the input is focussed if it is in an error state\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n input.focus();\n\n input.value = \"15\";\n\n input.validationStatus = \"error\";\n\n await page.waitForChanges();\n\n input.blur();\n\n await page.waitForChanges();\n\n input.focus();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toBe(\"error\");\n });\n\n it(\"should error when a non numeric value is entered\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const event = new KeyboardEvent(\"keydown\", { key: \"a\" });\n\n expect(input.validationStatus).toBeUndefined();\n\n input.focus();\n\n await page.rootInstance.handleKeyUp(event);\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n });\n\n it(\"should remove the non-numeric error when a number is entered\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const errorEvent = new KeyboardEvent(\"keydown\", { key: \"a\" });\n\n const successEvent = new KeyboardEvent(\"keydown\", { key: \"5\" });\n\n expect(input.validationStatus).toBeUndefined();\n\n input.focus();\n\n await page.rootInstance.handleKeyUp(errorEvent);\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n\n await page.rootInstance.handleKeydown(successEvent);\n\n await waitForTimeout(100);\n\n await page.rootInstance.handleInputChange();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"\");\n });\n\n it(\"should remove the error state when backspace is pressed\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Backspace\" });\n\n expect(input.validationStatus).toBeUndefined();\n\n input.focus();\n\n input.value = \"15\";\n\n input.validationStatus = \"error\";\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n\n await page.rootInstance.handleKeydown(event);\n\n await waitForTimeout(100);\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"\");\n });\n\n it(\"should focus the number of items select when clicking its label\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcSelect, IcTypography],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n const label = document\n .querySelector(\"ic-pagination-bar\")\n .shadowRoot.querySelector(\n \".items-per-page-control-label\"\n ) as HTMLIcTypographyElement;\n\n const event = jest.spyOn(IcSelect.prototype, \"setFocus\");\n label.click();\n\n await page.waitForChanges();\n\n expect(event).toHaveBeenCalled();\n });\n\n // this test currently fails - will need to be fixed before component is moved from canary\n it.skip(\"should focus the go to page text-field when clicking its label\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTextField, IcTypography],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page=\"false\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n const label = document\n .querySelector(\"ic-pagination-bar\")\n .shadowRoot.querySelector(\"ic-typography\");\n\n const event = jest.spyOn(IcTextField.prototype, \"setFocus\");\n label.click();\n\n await page.waitForChanges();\n\n expect(event).toHaveBeenCalled();\n });\n\n it(\"should update pagination when number of item changes\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"0\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n\n page.root.totalItems = \"100\";\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n page.root.totalItems = \"50\";\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"ic-pagination-bar.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { PaginationBar } from \"../../ic-pagination-bar\";\nimport { IcPagination } from \"@ukic/web-components/dist/components/ic-pagination\";\nimport { IcButton } from \"@ukic/web-components/dist/components/ic-button\";\nimport { IcTooltip } from \"@ukic/web-components/dist/components/ic-tooltip\";\nimport { IcTextField } from \"@ukic/web-components/dist/components/ic-text-field\";\nimport { DEVICE_SIZES } from \"@ukic/web-components/dist/types/utils/helpers\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\nimport { newSpecPage } from \"@stencil/core/testing\";\nimport { IcSelect } from \"@ukic/web-components/dist/components/ic-select\";\nimport { IcTypography } from \"@ukic/web-components/dist/components/ic-typography\";\n\ndescribe(\"ic-pagination-bar\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with items per page controls\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with go to page controls\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with data pagination type\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" range-label-type=\"data\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with complex pagination controls\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination],\n html: `<ic-pagination-bar total-items=\"100\" type=\"complex\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a custom page label\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" page-label=\"Sheet\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.rootInstance.lowerCasePageLabel).toBe(\"sheet\");\n\n page.root.itemLabel = \"sheet\";\n await page.waitForChanges();\n\n expect(page.rootInstance.capitalizedPageLabel).toBe(\"Sheet\");\n });\n\n it(\"should render with a custom item label\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" range-label-type=\"data\" item-label=\"Row\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n expect(page.rootInstance.lowerCaseItemLabel).toBe(\"row\");\n\n page.root.itemLabel = \"row\";\n await page.waitForChanges();\n\n expect(page.rootInstance.capitalizedItemLabel).toBe(\"Row\");\n });\n\n it(\"should render without range text\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" hide-range-label=\"true\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with left alignment\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" alignment=\"left\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with space between alignment\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" alignment=\"space-between\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with light appearance\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" appearance=\"light\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with dark appearance\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" apperance=\"dark\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with custom items per page options\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n paginationBar.itemsPerPageOptions = [\n { label: \"15\", value: \"15\" },\n { label: \"30\", value: \"30\" },\n { label: \"60\", value: \"60\" },\n { label: \"All\", value: \"100\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.displayedItemsPerPageOptions).toEqual([\n { label: \"15\", value: \"15\" },\n { label: \"30\", value: \"30\" },\n { label: \"60\", value: \"60\" },\n { label: \"All\", value: \"100\" },\n ]);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should only allow a maximum of 4 custom items per page options\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"150\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n paginationBar.itemsPerPageOptions = [\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"75\", value: \"75\" },\n { label: \"100\", value: \"100\" },\n { label: \"All\", value: \"150\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.displayedItemsPerPageOptions).toEqual([\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"75\", value: \"75\" },\n { label: \"All\", value: \"150\" },\n ]);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should remove items per page options larger than the maximum number of items\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n paginationBar.itemsPerPageOptions = [\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"150\", value: \"150\" },\n { label: \"All\", value: \"100\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.displayedItemsPerPageOptions).toEqual([\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"All\", value: \"100\" },\n ]);\n });\n\n it(\"should update page details when currentPage prop is changed\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination],\n html: `<ic-pagination-bar total-items=\"100\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n\n page.root.currentPage = 4;\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should wrap pagination when the device size is small\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n await page.rootInstance.runResizeObserver();\n\n await page.waitForChanges();\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n\n await page.waitForChanges();\n\n await page.rootInstance.paginationShouldWrap();\n\n await page.waitForChanges();\n\n expect(page).toMatchSnapshot();\n\n await page.rootInstance.disconnectedCallback();\n });\n\n it(\"should adjust the total page count when items per page is changed\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const select = paginationBar.shadowRoot.querySelector(\"ic-select\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n const eventSpy = jest.fn();\n\n paginationBar.addEventListener(\"icPageChange\", eventSpy);\n\n select.value = \"25\";\n expect(eventSpy).toHaveBeenCalledTimes(0);\n\n page.rootInstance.changeItemsPerPage();\n\n await page.waitForChanges();\n\n expect(select.value).toEqual(\"25\");\n\n expect(text.textContent).toEqual(\"Page 1 of 4\");\n\n expect(eventSpy).toHaveBeenCalledTimes(1);\n\n expect(eventSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n detail: expect.objectContaining({\n value: 1,\n fromItemsPerPage: true,\n }),\n })\n );\n });\n\n it(\"should change page when the pagination controls are clicked\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcButton],\n html: `<ic-pagination-bar total-items=\"100\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const pagination = paginationBar.shadowRoot.querySelector(\"ic-pagination\");\n\n const nextButton = pagination.shadowRoot.querySelector(\n \"#next-page-button\"\n ) as HTMLElement;\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n await nextButton.click();\n\n page.rootInstance.changePage(2);\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 2 of 10\");\n });\n\n it(\"should change page when the go to page button is clicked\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const button = paginationBar.shadowRoot.querySelector(\"ic-button\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n const currentPage = page.rootInstance.currentPage;\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n expect(currentPage).toEqual(1);\n\n input.value = \"3\";\n\n button.click();\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 3 of 10\");\n });\n\n it(\"should change page when enter is pressed on the go to page input\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n const currentPage = page.rootInstance.currentPage;\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Enter\" });\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n expect(currentPage).toEqual(1);\n\n input.value = \"3\";\n\n input.focus();\n\n await page.rootInstance.handleKeydown(event);\n\n await waitForTimeout(100);\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 3 of 10\");\n });\n\n it(\"should error immediately when an invalid page is entered before it is submitted\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip, IcTextField],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n expect(input.validationStatus).toBe(\"\");\n\n input.value = \"15\";\n\n input.focus();\n\n await page.rootInstance.handleInputChange();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n });\n\n it(\"should remain in error state if enter is pressed while in error state\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip, IcTextField],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Enter\" });\n\n expect(input.validationStatus).toBe(\"\");\n\n input.value = \"15\";\n\n input.focus();\n\n await page.rootInstance.handleInputChange();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n\n page.rootInstance.handleKeydown(event);\n\n await waitForTimeout(100);\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n });\n\n it(\"should not change page when the go to page button is clicked with an invalid page\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTextField],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const button = paginationBar.shadowRoot.querySelector(\"ic-button\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n const currentPage = page.rootInstance.currentPage;\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n expect(currentPage).toEqual(1);\n\n input.value = \"15\";\n\n button.click();\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n });\n\n it(\"should not change page when enter is pressed on the go to page input with an invalid page\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip, IcTextField],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const text = paginationBar.shadowRoot.querySelector(\n \".page-pagination-label\"\n );\n\n const currentPage = page.rootInstance.currentPage;\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Enter\" });\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n\n expect(currentPage).toEqual(1);\n\n input.value = \"15\";\n\n input.focus();\n\n await page.rootInstance.handleKeydown(event);\n\n await waitForTimeout(100);\n\n await page.waitForChanges();\n\n expect(text.textContent).toEqual(\"Page 1 of 10\");\n });\n\n it(\"should hide the tooltip when the input loses focus\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const tooltip = paginationBar.shadowRoot.querySelector(\"ic-tooltip\");\n\n expect(tooltip.getAttribute(\"data-show\")).toBeNull();\n\n input.focus();\n\n input.value = \"15\";\n\n tooltip.displayTooltip(true, false);\n\n await page.waitForChanges();\n\n input.blur();\n\n await page.waitForChanges();\n\n expect(tooltip.getAttribute(\"data-show\")).toBeNull();\n });\n\n it(\"should remove the error status when the input loses focus if the value is not invalid\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n input.focus();\n\n input.value = \"\";\n\n input.validationStatus = \"error\";\n\n await page.waitForChanges();\n\n input.blur();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toBe(\"\");\n });\n\n it(\"should show the tooltip when the input is focussed if it is in an error state\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n input.focus();\n\n input.value = \"15\";\n\n input.validationStatus = \"error\";\n\n await page.waitForChanges();\n\n input.blur();\n\n await page.waitForChanges();\n\n input.focus();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toBe(\"error\");\n });\n\n it(\"should error when a non numeric value is entered\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const event = new KeyboardEvent(\"keydown\", { key: \"a\" });\n\n expect(input.validationStatus).toBeUndefined();\n\n input.focus();\n\n await page.rootInstance.handleKeyUp(event);\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n });\n\n it(\"should remove the non-numeric error when a number is entered\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const errorEvent = new KeyboardEvent(\"keydown\", { key: \"a\" });\n\n const successEvent = new KeyboardEvent(\"keydown\", { key: \"5\" });\n\n expect(input.validationStatus).toBeUndefined();\n\n input.focus();\n\n await page.rootInstance.handleKeyUp(errorEvent);\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n\n await page.rootInstance.handleKeydown(successEvent);\n\n await waitForTimeout(100);\n\n await page.rootInstance.handleInputChange();\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"\");\n });\n\n it(\"should remove the error state when backspace is pressed\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTooltip],\n html: `<ic-pagination-bar total-items=\"100\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n\n const paginationBar = document.querySelector(\"ic-pagination-bar\");\n\n const input = paginationBar.shadowRoot.querySelector(\"ic-text-field\");\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Backspace\" });\n\n expect(input.validationStatus).toBeUndefined();\n\n input.focus();\n\n input.value = \"15\";\n\n input.validationStatus = \"error\";\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"error\");\n\n await page.rootInstance.handleKeydown(event);\n\n await waitForTimeout(100);\n\n await page.waitForChanges();\n\n expect(input.validationStatus).toEqual(\"\");\n });\n\n it(\"should focus the number of items select when clicking its label\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcSelect, IcTypography],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page-control=\"true\"></ic-pagination-bar>`,\n });\n const label = document\n .querySelector(\"ic-pagination-bar\")\n .shadowRoot.querySelector(\n \".items-per-page-control-label\"\n ) as HTMLIcTypographyElement;\n\n const event = jest.spyOn(IcSelect.prototype, \"setFocus\");\n label.click();\n\n await page.waitForChanges();\n\n expect(event).toHaveBeenCalled();\n });\n\n // this test currently fails - will need to be fixed before component is moved from canary\n it.skip(\"should focus the go to page text-field when clicking its label\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar, IcPagination, IcTextField, IcTypography],\n html: `<ic-pagination-bar total-items=\"100\" show-items-per-page=\"false\" show-go-to-page-control=\"true\"></ic-pagination-bar>`,\n });\n const label = document\n .querySelector(\"ic-pagination-bar\")\n .shadowRoot.querySelector(\"ic-typography\");\n\n const event = jest.spyOn(IcTextField.prototype, \"setFocus\");\n label.click();\n\n await page.waitForChanges();\n\n expect(event).toHaveBeenCalled();\n });\n\n it(\"should update pagination when number of item changes\", async () => {\n const page = await newSpecPage({\n components: [PaginationBar],\n html: `<ic-pagination-bar total-items=\"0\"></ic-pagination-bar>`,\n });\n\n expect(page.root).toMatchSnapshot();\n\n page.root.totalItems = \"100\";\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n page.root.totalItems = \"50\";\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n});\n"]}
@@ -37,6 +37,17 @@
37
37
  outline: none;
38
38
  }
39
39
 
40
+ :host(.ic-tree-item-focus-inset) .tree-item-content:focus,
41
+ :host(.ic-tree-item-focus-inset) ::slotted([slot="router-item"]:focus) {
42
+ box-shadow: var(--ic-border-focus-inset);
43
+ border-radius: var(--ic-border-radius-inset);
44
+ }
45
+
46
+ :host(.ic-tree-item-focus-inset) .tree-item-content,
47
+ :host(.ic-tree-item-focus-inset) ::slotted([slot="router-item"]) {
48
+ padding: 0 var(--ic-space-sm);
49
+ }
50
+
40
51
  :host .tree-item-content:hover,
41
52
  ::slotted([slot="router-item"]:hover) {
42
53
  background-color: var(--ic-action-dark-bg-hover) !important;
@@ -45,7 +56,7 @@
45
56
 
46
57
  :host .tree-item-content:active,
47
58
  ::slotted([slot="router-item"]:active) {
48
- background-color: var(--ic-action-dark-bg-active) !important;
59
+ background-color: var(--ic-action-dark-bg-pressed) !important;
49
60
  }
50
61
 
51
62
  :host(.ic-tree-item-selected) .tree-item-content,
@@ -160,7 +171,7 @@
160
171
 
161
172
  :host .tree-item-content:focus,
162
173
  ::slotted([slot="router-item"]:focus) {
163
- border: var(--ic-hc-border) !important;
174
+ border: var(--ic-border-hc) !important;
164
175
  }
165
176
 
166
177
  :host(.ic-tree-item-selected) .tree-item-content,
@@ -98,6 +98,7 @@ export class TreeItem {
98
98
  this.appearance = "dark";
99
99
  this.disabled = false;
100
100
  this.expanded = false;
101
+ this.focusInset = false;
101
102
  this.hasParentExpanded = false;
102
103
  this.href = undefined;
103
104
  this.hreflang = "";
@@ -201,7 +202,7 @@ export class TreeItem {
201
202
  return !!this.routerSlot;
202
203
  }
203
204
  render() {
204
- const { appearance, disabled, label, selected, size, expanded } = this;
205
+ const { appearance, disabled, label, selected, size, expanded, focusInset, } = this;
205
206
  const Component = this.href && !this.disabled ? "a" : "div";
206
207
  const attrs = Component == "a" && {
207
208
  href: this.href,
@@ -215,6 +216,7 @@ export class TreeItem {
215
216
  "ic-tree-item-disabled": disabled,
216
217
  "ic-tree-item-selected": !disabled && selected,
217
218
  [`ic-tree-item-${size}`]: size !== "medium",
219
+ [`ic-tree-item-focus-inset`]: focusInset,
218
220
  }, id: this.treeItemId }, this.hasRouterSlot() ? (h("slot", { name: "router-item" })) : (h(Component, Object.assign({ class: {
219
221
  "tree-item-content": true,
220
222
  }, tabIndex: disabled ? -1 : 0, onClick: this.handleTreeItemClicked, ref: (el) => (this.treeItemElement = el), "aria-disabled": disabled ? "true" : "false", "aria-live": "polite" }, attrs, { onFocus: () => this.handleDisplayTooltip(true), onBlur: () => this.handleDisplayTooltip(false) }), this.isParent && (h("span", { class: {
@@ -291,14 +293,32 @@ export class TreeItem {
291
293
  },
292
294
  "required": false,
293
295
  "optional": false,
296
+ "docs": {
297
+ "tags": [],
298
+ "text": "If `true`, the tree item appears in the expanded state."
299
+ },
300
+ "attribute": "expanded",
301
+ "reflect": false,
302
+ "defaultValue": "false"
303
+ },
304
+ "focusInset": {
305
+ "type": "boolean",
306
+ "mutable": false,
307
+ "complexType": {
308
+ "original": "boolean",
309
+ "resolved": "boolean",
310
+ "references": {}
311
+ },
312
+ "required": false,
313
+ "optional": true,
294
314
  "docs": {
295
315
  "tags": [{
296
316
  "name": "internal",
297
- "text": "If `true`, the tree item appears in the expanded state."
317
+ "text": "If `true`, the tree item will have an inset focus border."
298
318
  }],
299
319
  "text": ""
300
320
  },
301
- "attribute": "expanded",
321
+ "attribute": "focus-inset",
302
322
  "reflect": false,
303
323
  "defaultValue": "false"
304
324
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tree-item.js","sourceRoot":"","sources":["../../../src/components/ic-tree-item/ic-tree-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n State,\n Listen,\n forceUpdate,\n Method,\n} from \"@stencil/core\";\nimport { IcSizes, IcThemeForegroundNoDefault } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet treeItemIds = 0;\n\n/**\n * @slot label - Content is set as the tree item label.\n * @slot icon - Content is placed to the left of the label.\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n@Component({\n tag: \"ic-tree-item\",\n styleUrl: \"ic-tree-item.css\",\n shadow: true,\n})\nexport class TreeItem {\n private treeItemId = `ic-tree-item-${treeItemIds++}`;\n private treeItemElement: HTMLElement;\n private treeItemTag = \"IC-TREE-ITEM\";\n private routerSlot: HTMLElement;\n private hostMutationObserver: MutationObserver = null;\n private TOOLTIP = \"ic-tooltip\";\n\n @Element() el: HTMLIcTreeItemElement;\n\n @State() childTreeItems: HTMLIcTreeItemElement[];\n\n /**\n * @internal Determines whether the light or dark variant of the tree item should be displayed.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * If `true`, the tree item appears in the disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * @internal If `true`, the tree item appears in the expanded state.\n */\n @Prop({ mutable: true }) expanded: boolean = false;\n\n /**\n * @internal Determines if the parent tree item has been expanded.\n */\n @Prop({ mutable: true }) hasParentExpanded: boolean = false;\n\n /**\n * The URL that the tree item link points to. If set, the tree item will render as an \"a\" tag, otherwise it will render as a div.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * @internal If `true`, the tree item is a parent of other tree items.\n */\n @Prop({ mutable: true }) isParent: boolean = false;\n\n /**\n * The label of the tree item.\n */\n @Prop() label: string = \"\";\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * If `true`, the tree item appears in the selected state.\n */\n @Prop({ mutable: true }) selected: boolean = false;\n @Watch(\"selected\")\n watchSelectedHandler() {\n if (this.selected) {\n this.icTreeItemSelected.emit({ id: this.el.id });\n }\n this.updateAriaLabel();\n }\n\n /**\n * @internal Determines the size of the tree item.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Emitted when tree item is selected.\n */\n @Event() icTreeItemSelected: EventEmitter<{ id: string }>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentDidLoad(): void {\n this.childTreeItems = Array.from((this.el as HTMLElement).children).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n if (this.childTreeItems.length > 0) {\n this.isParent = true;\n }\n\n this.setTreeItemPadding();\n\n this.updateAriaLabel();\n\n this.truncateTreeItemLabel(this.el);\n\n !isSlotUsed(this.el, \"label\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tree item\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n componentDidUpdate(): void {\n if (this.hasParentExpanded) {\n this.childTreeItems.forEach((child) => {\n this.truncateTreeItemLabel(child);\n });\n this.hasParentExpanded = false;\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.stopImmediatePropagation();\n this.handleTreeItemClicked();\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.hasRouterSlot()) {\n this.routerSlot?.focus();\n } else {\n this.treeItemElement?.focus();\n }\n }\n\n private handleTreeItemClicked = (): void => {\n if (this.isParent) {\n this.expanded = !this.expanded;\n this.hasParentExpanded = true;\n }\n\n this.updateAriaLabel();\n this.selected = true;\n this.watchSelectedHandler();\n };\n\n /**\n * @internal Updates the aria-label of the tree item.\n */\n @Method()\n async updateAriaLabel(): Promise<void> {\n let ariaLabel;\n\n if (this.hasRouterSlot()) {\n ariaLabel = this.routerSlot.textContent;\n } else if (isSlotUsed(this.el, \"label\")) {\n ariaLabel = this.el.querySelector('[slot=\"label\"]').textContent;\n } else {\n ariaLabel = this.label;\n }\n\n if (this.isParent) {\n ariaLabel = `${ariaLabel}, triggers submenu, ${\n this.expanded ? \"expanded\" : \"collapsed\"\n }`;\n }\n\n if (this.el.parentElement) {\n const treeItems = Array.from(\n (this.el.parentElement as HTMLElement).children\n ).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n const index = treeItems.indexOf(this.el) + 1;\n const parentChildren = treeItems.length;\n\n ariaLabel = `${ariaLabel}, ${index} of ${parentChildren}`;\n }\n\n if (this.selected) {\n ariaLabel = `${ariaLabel}, active`;\n }\n\n if (this.disabled) {\n ariaLabel = `${ariaLabel}, dimmed`;\n }\n\n if (this.hasRouterSlot()) {\n this.routerSlot.ariaLabel = ariaLabel;\n } else {\n this.treeItemElement.ariaLabel = ariaLabel;\n }\n }\n\n private setTreeItemPadding = () => {\n let level = 1;\n let parentElement = this.el.parentElement;\n const treeItemContent = this.el.shadowRoot.querySelector(\n \".tree-item-content\"\n ) as HTMLElement;\n\n const isSiblingOfParent = Array.from(parentElement.children)\n .map((sibling) => {\n if (\n sibling !== this.el &&\n !sibling.querySelector('[slot=\"router-item\"]') &&\n !sibling.querySelector('[slot=\"label\"]')\n ) {\n return sibling.children.length > 0;\n } else {\n return false;\n }\n })\n .includes(true);\n\n const isChild = parentElement.tagName === this.treeItemTag;\n\n const isRouterItem = this.hasRouterSlot();\n\n if (\n (isSiblingOfParent && !this.el.isParent) ||\n (isChild && !this.el.isParent)\n ) {\n if (isRouterItem) {\n this.routerSlot.classList.add(\"ic-tree-item-single\");\n } else {\n treeItemContent.classList.add(\"ic-tree-item-single\");\n }\n }\n\n while (parentElement) {\n if (parentElement.tagName === this.treeItemTag) {\n level++;\n if (!this.el.isParent && isSiblingOfParent) {\n treeItemContent.style.paddingLeft = `calc(var(--ic-space-xl) + ${\n level * 16\n }px)`;\n } else if (!this.el.isParent) {\n treeItemContent.style.paddingLeft = `calc(var(--ic-space-xs) + ${\n level * 24\n }px`;\n } else {\n treeItemContent.style.paddingLeft = `${level * 16}px`;\n }\n }\n parentElement = parentElement.parentElement;\n }\n };\n\n private truncateTreeItemLabel = (treeItem: HTMLIcTreeItemElement) => {\n const typographyEl: HTMLIcTypographyElement =\n treeItem.shadowRoot.querySelector(\".tree-item-label\");\n const tooltip = typographyEl?.closest(this.TOOLTIP);\n const treeContent: HTMLElement =\n treeItem.shadowRoot.querySelector(\".tree-item-content\");\n\n if (typographyEl?.scrollHeight > treeContent?.clientHeight) {\n typographyEl.classList.add(\"ic-text-overflow\");\n\n if (!tooltip) {\n const tooltipEl = document.createElement(\"ic-tooltip\");\n tooltipEl.setAttribute(\"target\", this.el.id);\n tooltipEl.setAttribute(\"label\", typographyEl.textContent);\n tooltipEl.classList.add(\"ic-tooltip-overflow\");\n tooltipEl.setAttribute(\"placement\", \"right\");\n treeContent.appendChild(tooltipEl);\n tooltipEl.appendChild(typographyEl);\n }\n }\n };\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n return !!this.routerSlot;\n }\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, \"icon\")\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n private handleDisplayTooltip = (display: boolean) => {\n const typographyEl: HTMLIcTypographyElement =\n this.el.shadowRoot.querySelector(\".tree-item-label\");\n const tooltip: HTMLIcTooltipElement = typographyEl?.closest(this.TOOLTIP);\n\n tooltip?.displayTooltip(display);\n };\n\n render() {\n const { appearance, disabled, label, selected, size, expanded } = this;\n\n const Component = this.href && !this.disabled ? \"a\" : \"div\";\n\n const attrs = Component == \"a\" && {\n href: this.href,\n hrefLang: this.hreflang,\n referrerPolicy: this.referrerpolicy,\n rel: this.rel,\n target: this.target,\n };\n\n return (\n <Host\n class={{\n [`ic-tree-item-${appearance}`]: true,\n \"ic-tree-item-disabled\": disabled,\n \"ic-tree-item-selected\": !disabled && selected,\n [`ic-tree-item-${size}`]: size !== \"medium\",\n }}\n id={this.treeItemId}\n >\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\" />\n ) : (\n <Component\n class={{\n \"tree-item-content\": true,\n }}\n tabIndex={disabled ? -1 : 0}\n onClick={this.handleTreeItemClicked}\n ref={(el) => (this.treeItemElement = el)}\n aria-disabled={disabled ? \"true\" : \"false\"}\n aria-live=\"polite\"\n {...attrs}\n onFocus={() => this.handleDisplayTooltip(true)}\n onBlur={() => this.handleDisplayTooltip(false)}\n >\n {this.isParent && (\n <span\n class={{\n [\"arrow-dropdown\"]: true,\n [\"tree-item-expanded\"]: expanded,\n }}\n aria-hidden=\"true\"\n innerHTML={arrowDropdown}\n />\n )}\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography class=\"tree-item-label\">\n {isSlotUsed(this.el, \"label\") ? <slot name=\"label\" /> : label}\n </ic-typography>\n </Component>\n )}\n {expanded && (\n <div aria-hidden={`${!expanded}`}>\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tree-item.js","sourceRoot":"","sources":["../../../src/components/ic-tree-item/ic-tree-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n State,\n Listen,\n forceUpdate,\n Method,\n} from \"@stencil/core\";\nimport { IcSizes, IcThemeForegroundNoDefault } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet treeItemIds = 0;\n\n/**\n * @slot label - Content is set as the tree item label.\n * @slot icon - Content is placed to the left of the label.\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n@Component({\n tag: \"ic-tree-item\",\n styleUrl: \"ic-tree-item.css\",\n shadow: true,\n})\nexport class TreeItem {\n private treeItemId = `ic-tree-item-${treeItemIds++}`;\n private treeItemElement: HTMLElement;\n private treeItemTag = \"IC-TREE-ITEM\";\n private routerSlot: HTMLElement;\n private hostMutationObserver: MutationObserver = null;\n private TOOLTIP = \"ic-tooltip\";\n\n @Element() el: HTMLIcTreeItemElement;\n\n @State() childTreeItems: HTMLIcTreeItemElement[];\n\n /**\n * @internal Determines whether the light or dark variant of the tree item should be displayed.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * If `true`, the tree item appears in the disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the tree item appears in the expanded state.\n */\n @Prop({ mutable: true }) expanded: boolean = false;\n\n /**\n * @internal If `true`, the tree item will have an inset focus border.\n */\n @Prop() focusInset?: boolean = false;\n\n /**\n * @internal Determines if the parent tree item has been expanded.\n */\n @Prop({ mutable: true }) hasParentExpanded: boolean = false;\n\n /**\n * The URL that the tree item link points to. If set, the tree item will render as an \"a\" tag, otherwise it will render as a div.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * @internal If `true`, the tree item is a parent of other tree items.\n */\n @Prop({ mutable: true }) isParent: boolean = false;\n\n /**\n * The label of the tree item.\n */\n @Prop() label: string = \"\";\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * If `true`, the tree item appears in the selected state.\n */\n @Prop({ mutable: true }) selected: boolean = false;\n @Watch(\"selected\")\n watchSelectedHandler() {\n if (this.selected) {\n this.icTreeItemSelected.emit({ id: this.el.id });\n }\n this.updateAriaLabel();\n }\n\n /**\n * @internal Determines the size of the tree item.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Emitted when tree item is selected.\n */\n @Event() icTreeItemSelected: EventEmitter<{ id: string }>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentDidLoad(): void {\n this.childTreeItems = Array.from((this.el as HTMLElement).children).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n if (this.childTreeItems.length > 0) {\n this.isParent = true;\n }\n\n this.setTreeItemPadding();\n\n this.updateAriaLabel();\n\n this.truncateTreeItemLabel(this.el);\n\n !isSlotUsed(this.el, \"label\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tree item\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n componentDidUpdate(): void {\n if (this.hasParentExpanded) {\n this.childTreeItems.forEach((child) => {\n this.truncateTreeItemLabel(child);\n });\n this.hasParentExpanded = false;\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.stopImmediatePropagation();\n this.handleTreeItemClicked();\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.hasRouterSlot()) {\n this.routerSlot?.focus();\n } else {\n this.treeItemElement?.focus();\n }\n }\n\n private handleTreeItemClicked = (): void => {\n if (this.isParent) {\n this.expanded = !this.expanded;\n this.hasParentExpanded = true;\n }\n\n this.updateAriaLabel();\n this.selected = true;\n this.watchSelectedHandler();\n };\n\n /**\n * @internal Updates the aria-label of the tree item.\n */\n @Method()\n async updateAriaLabel(): Promise<void> {\n let ariaLabel;\n\n if (this.hasRouterSlot()) {\n ariaLabel = this.routerSlot.textContent;\n } else if (isSlotUsed(this.el, \"label\")) {\n ariaLabel = this.el.querySelector('[slot=\"label\"]').textContent;\n } else {\n ariaLabel = this.label;\n }\n\n if (this.isParent) {\n ariaLabel = `${ariaLabel}, triggers submenu, ${\n this.expanded ? \"expanded\" : \"collapsed\"\n }`;\n }\n\n if (this.el.parentElement) {\n const treeItems = Array.from(\n (this.el.parentElement as HTMLElement).children\n ).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n const index = treeItems.indexOf(this.el) + 1;\n const parentChildren = treeItems.length;\n\n ariaLabel = `${ariaLabel}, ${index} of ${parentChildren}`;\n }\n\n if (this.selected) {\n ariaLabel = `${ariaLabel}, active`;\n }\n\n if (this.disabled) {\n ariaLabel = `${ariaLabel}, dimmed`;\n }\n\n if (this.hasRouterSlot()) {\n this.routerSlot.ariaLabel = ariaLabel;\n } else {\n this.treeItemElement.ariaLabel = ariaLabel;\n }\n }\n\n private setTreeItemPadding = () => {\n let level = 1;\n let parentElement = this.el.parentElement;\n const treeItemContent = this.el.shadowRoot.querySelector(\n \".tree-item-content\"\n ) as HTMLElement;\n\n const isSiblingOfParent = Array.from(parentElement.children)\n .map((sibling) => {\n if (\n sibling !== this.el &&\n !sibling.querySelector('[slot=\"router-item\"]') &&\n !sibling.querySelector('[slot=\"label\"]')\n ) {\n return sibling.children.length > 0;\n } else {\n return false;\n }\n })\n .includes(true);\n\n const isChild = parentElement.tagName === this.treeItemTag;\n\n const isRouterItem = this.hasRouterSlot();\n\n if (\n (isSiblingOfParent && !this.el.isParent) ||\n (isChild && !this.el.isParent)\n ) {\n if (isRouterItem) {\n this.routerSlot.classList.add(\"ic-tree-item-single\");\n } else {\n treeItemContent.classList.add(\"ic-tree-item-single\");\n }\n }\n\n while (parentElement) {\n if (parentElement.tagName === this.treeItemTag) {\n level++;\n if (!this.el.isParent && isSiblingOfParent) {\n treeItemContent.style.paddingLeft = `calc(var(--ic-space-xl) + ${\n level * 16\n }px)`;\n } else if (!this.el.isParent) {\n treeItemContent.style.paddingLeft = `calc(var(--ic-space-xs) + ${\n level * 24\n }px`;\n } else {\n treeItemContent.style.paddingLeft = `${level * 16}px`;\n }\n }\n parentElement = parentElement.parentElement;\n }\n };\n\n private truncateTreeItemLabel = (treeItem: HTMLIcTreeItemElement) => {\n const typographyEl: HTMLIcTypographyElement =\n treeItem.shadowRoot.querySelector(\".tree-item-label\");\n const tooltip = typographyEl?.closest(this.TOOLTIP);\n const treeContent: HTMLElement =\n treeItem.shadowRoot.querySelector(\".tree-item-content\");\n\n if (typographyEl?.scrollHeight > treeContent?.clientHeight) {\n typographyEl.classList.add(\"ic-text-overflow\");\n\n if (!tooltip) {\n const tooltipEl = document.createElement(\"ic-tooltip\");\n tooltipEl.setAttribute(\"target\", this.el.id);\n tooltipEl.setAttribute(\"label\", typographyEl.textContent);\n tooltipEl.classList.add(\"ic-tooltip-overflow\");\n tooltipEl.setAttribute(\"placement\", \"right\");\n treeContent.appendChild(tooltipEl);\n tooltipEl.appendChild(typographyEl);\n }\n }\n };\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n return !!this.routerSlot;\n }\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, \"icon\")\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n private handleDisplayTooltip = (display: boolean) => {\n const typographyEl: HTMLIcTypographyElement =\n this.el.shadowRoot.querySelector(\".tree-item-label\");\n const tooltip: HTMLIcTooltipElement = typographyEl?.closest(this.TOOLTIP);\n\n tooltip?.displayTooltip(display);\n };\n\n render() {\n const {\n appearance,\n disabled,\n label,\n selected,\n size,\n expanded,\n focusInset,\n } = this;\n\n const Component = this.href && !this.disabled ? \"a\" : \"div\";\n\n const attrs = Component == \"a\" && {\n href: this.href,\n hrefLang: this.hreflang,\n referrerPolicy: this.referrerpolicy,\n rel: this.rel,\n target: this.target,\n };\n\n return (\n <Host\n class={{\n [`ic-tree-item-${appearance}`]: true,\n \"ic-tree-item-disabled\": disabled,\n \"ic-tree-item-selected\": !disabled && selected,\n [`ic-tree-item-${size}`]: size !== \"medium\",\n [`ic-tree-item-focus-inset`]: focusInset,\n }}\n id={this.treeItemId}\n >\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\" />\n ) : (\n <Component\n class={{\n \"tree-item-content\": true,\n }}\n tabIndex={disabled ? -1 : 0}\n onClick={this.handleTreeItemClicked}\n ref={(el) => (this.treeItemElement = el)}\n aria-disabled={disabled ? \"true\" : \"false\"}\n aria-live=\"polite\"\n {...attrs}\n onFocus={() => this.handleDisplayTooltip(true)}\n onBlur={() => this.handleDisplayTooltip(false)}\n >\n {this.isParent && (\n <span\n class={{\n [\"arrow-dropdown\"]: true,\n [\"tree-item-expanded\"]: expanded,\n }}\n aria-hidden=\"true\"\n innerHTML={arrowDropdown}\n />\n )}\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography class=\"tree-item-label\">\n {isSlotUsed(this.el, \"label\") ? <slot name=\"label\" /> : label}\n </ic-typography>\n </Component>\n )}\n {expanded && (\n <div aria-hidden={`${!expanded}`}>\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n"]}