@ukic/canary-web-components 2.0.0-canary.13 → 2.0.0-canary.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (479) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-6acbb97e.js → helpers-191dca49.js} +56 -89
  3. package/dist/cjs/helpers-191dca49.js.map +1 -0
  4. package/dist/cjs/{helpers-f75cf7cf.js → helpers-765a5118.js} +30 -1
  5. package/dist/cjs/helpers-765a5118.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +3 -1
  7. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +15 -9
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-badge.cjs.entry.js +55 -84
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +3 -1
  15. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +35 -86
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js +23 -16
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-checkbox.cjs.entry.js +32 -30
  23. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-chip.cjs.entry.js +34 -21
  25. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +57 -0
  28. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -0
  29. package/dist/cjs/ic-data-table.cjs.entry.js +154 -31
  30. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-date-input.cjs.entry.js +6 -6
  32. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-date-picker.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-empty-state_2.cjs.entry.js +322 -0
  37. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -0
  38. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-link.cjs.entry.js +34 -16
  45. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +176 -35
  50. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-menu.cjs.entry.js +3 -3
  52. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-navigation-button.cjs.entry.js +26 -5
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-pagination_4.cjs.entry.js +58 -17
  60. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-popover-menu.cjs.entry.js +3 -2
  62. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-radio-group.cjs.entry.js +40 -26
  64. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -4
  66. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-select-with-multi.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-step.cjs.entry.js +5 -2
  72. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-stepper.cjs.entry.js +2 -1
  74. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  79. package/dist/cjs/ic-theme.cjs.entry.js +13 -22
  80. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  82. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  83. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  84. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  85. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  86. package/dist/cjs/index-4cf27b16.js +8 -8
  87. package/dist/cjs/loader.cjs.js +1 -1
  88. package/dist/collection/collection-manifest.json +1 -0
  89. package/dist/collection/components/ic-data-table/ic-data-table.css +76 -1
  90. package/dist/collection/components/ic-data-table/ic-data-table.js +368 -43
  91. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  92. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  93. package/dist/collection/components/ic-data-table/story-data.js +258 -0
  94. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  95. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +320 -1
  96. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  97. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +91 -0
  98. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +160 -0
  99. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -0
  100. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js +11 -0
  101. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +1 -0
  102. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +70 -0
  103. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +1 -0
  104. package/dist/collection/components/ic-date-input/ic-date-input.css +1 -1
  105. package/dist/collection/components/ic-date-input/ic-date-input.js +4 -4
  106. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  107. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +176 -35
  108. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
  109. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +180 -3
  110. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -1
  111. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +145 -116
  112. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  113. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +47 -10
  114. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
  115. package/dist/collection/utils/types.js.map +1 -1
  116. package/dist/components/helpers.js +55 -87
  117. package/dist/components/helpers.js.map +1 -1
  118. package/dist/components/helpers2.js +28 -1
  119. package/dist/components/helpers2.js.map +1 -1
  120. package/dist/components/ic-accordion-group.js +2 -1
  121. package/dist/components/ic-accordion-group.js.map +1 -1
  122. package/dist/components/ic-back-to-top.js +22 -9
  123. package/dist/components/ic-back-to-top.js.map +1 -1
  124. package/dist/components/ic-badge.js +59 -84
  125. package/dist/components/ic-badge.js.map +1 -1
  126. package/dist/components/ic-breadcrumb-group.js +2 -0
  127. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  128. package/dist/components/ic-button2.js +33 -84
  129. package/dist/components/ic-button2.js.map +1 -1
  130. package/dist/components/ic-card.js +1 -1
  131. package/dist/components/ic-checkbox-group.js +27 -17
  132. package/dist/components/ic-checkbox-group.js.map +1 -1
  133. package/dist/components/ic-checkbox.js +32 -30
  134. package/dist/components/ic-checkbox.js.map +1 -1
  135. package/dist/components/ic-chip.js +39 -23
  136. package/dist/components/ic-chip.js.map +1 -1
  137. package/dist/components/ic-data-table-title-bar.d.ts +11 -0
  138. package/dist/components/ic-data-table-title-bar.js +136 -0
  139. package/dist/components/ic-data-table-title-bar.js.map +1 -0
  140. package/dist/components/ic-data-table.js +179 -37
  141. package/dist/components/ic-data-table.js.map +1 -1
  142. package/dist/components/ic-date-input2.js +6 -6
  143. package/dist/components/ic-date-input2.js.map +1 -1
  144. package/dist/components/ic-date-picker.js +1 -1
  145. package/dist/components/ic-divider2.js +1 -1
  146. package/dist/components/ic-empty-state.js +1 -57
  147. package/dist/components/ic-empty-state.js.map +1 -1
  148. package/dist/{esm/ic-empty-state.entry.js → components/ic-empty-state2.js} +38 -11
  149. package/dist/components/ic-empty-state2.js.map +1 -0
  150. package/dist/components/ic-footer-link-group.js +1 -1
  151. package/dist/components/ic-footer-link.js +1 -1
  152. package/dist/components/ic-footer.js +1 -1
  153. package/dist/components/ic-hero.js +1 -1
  154. package/dist/components/ic-horizontal-scroll2.js +1 -1
  155. package/dist/components/ic-link2.js +35 -17
  156. package/dist/components/ic-link2.js.map +1 -1
  157. package/dist/components/ic-loading-indicator2.js +1 -1
  158. package/dist/components/ic-loading-indicator2.js.map +1 -1
  159. package/dist/components/ic-menu-item2.js +2 -2
  160. package/dist/components/ic-menu-item2.js.map +1 -1
  161. package/dist/components/ic-menu2.js +2 -2
  162. package/dist/components/ic-menu2.js.map +1 -1
  163. package/dist/components/ic-menu3.js +177 -36
  164. package/dist/components/ic-menu3.js.map +1 -1
  165. package/dist/components/ic-navigation-button.js +27 -6
  166. package/dist/components/ic-navigation-button.js.map +1 -1
  167. package/dist/components/ic-navigation-group.js +1 -1
  168. package/dist/components/ic-navigation-item.js +1 -1
  169. package/dist/components/ic-navigation-menu2.js +1 -1
  170. package/dist/components/ic-pagination-bar2.js +126 -99
  171. package/dist/components/ic-pagination-bar2.js.map +1 -1
  172. package/dist/components/ic-pagination-item2.js +2 -2
  173. package/dist/components/ic-pagination-item2.js.map +1 -1
  174. package/dist/components/ic-pagination2.js +1 -1
  175. package/dist/components/ic-popover-menu.js +3 -2
  176. package/dist/components/ic-popover-menu.js.map +1 -1
  177. package/dist/components/ic-radio-group.js +40 -26
  178. package/dist/components/ic-radio-group.js.map +1 -1
  179. package/dist/components/ic-radio-option.js +11 -5
  180. package/dist/components/ic-radio-option.js.map +1 -1
  181. package/dist/components/ic-search-bar.js +1 -1
  182. package/dist/components/ic-select-with-multi.js +1 -1
  183. package/dist/components/ic-select2.js +33 -11
  184. package/dist/components/ic-select2.js.map +1 -1
  185. package/dist/components/ic-side-navigation.js +1 -1
  186. package/dist/components/ic-step.js +4 -1
  187. package/dist/components/ic-step.js.map +1 -1
  188. package/dist/components/ic-stepper.js +3 -1
  189. package/dist/components/ic-stepper.js.map +1 -1
  190. package/dist/components/ic-switch.js +1 -1
  191. package/dist/components/ic-tab.js +1 -1
  192. package/dist/components/ic-text-field2.js +27 -8
  193. package/dist/components/ic-text-field2.js.map +1 -1
  194. package/dist/components/ic-theme.js +13 -22
  195. package/dist/components/ic-theme.js.map +1 -1
  196. package/dist/components/ic-toast.js +1 -1
  197. package/dist/components/ic-toggle-button.js +1 -1
  198. package/dist/components/ic-tooltip2.js +1 -1
  199. package/dist/components/ic-tooltip2.js.map +1 -1
  200. package/dist/components/ic-top-navigation.js +1 -1
  201. package/dist/components/ic-typography2.js +1 -1
  202. package/dist/components/ic-typography2.js.map +1 -1
  203. package/dist/core/core.css +2 -2
  204. package/dist/core/core.esm.js +1 -1
  205. package/dist/core/core.esm.js.map +1 -1
  206. package/dist/core/{p-b3d21d06.entry.js → p-005e83b0.entry.js} +2 -2
  207. package/dist/core/{p-b8a3b16d.entry.js → p-05df3901.entry.js} +2 -2
  208. package/dist/core/{p-3d0185a4.entry.js → p-0646ef0c.entry.js} +2 -2
  209. package/dist/core/p-0ec09955.entry.js +2 -0
  210. package/dist/core/p-0ec09955.entry.js.map +1 -0
  211. package/dist/core/p-114bea92.entry.js +2 -0
  212. package/dist/core/p-114bea92.entry.js.map +1 -0
  213. package/dist/core/p-11bbb09c.js +2 -0
  214. package/dist/core/p-11bbb09c.js.map +1 -0
  215. package/dist/core/p-11e736a3.entry.js +2 -0
  216. package/dist/core/p-11e736a3.entry.js.map +1 -0
  217. package/dist/core/{p-e0e26834.entry.js → p-16c82b13.entry.js} +2 -2
  218. package/dist/core/{p-094a0455.entry.js → p-1b35b6af.entry.js} +2 -2
  219. package/dist/core/p-1cf8a04e.entry.js +2 -0
  220. package/dist/core/p-1cf8a04e.entry.js.map +1 -0
  221. package/dist/core/{p-849f43c3.entry.js → p-2170f59e.entry.js} +2 -2
  222. package/dist/core/p-2e167ebb.entry.js +2 -0
  223. package/dist/core/p-2e167ebb.entry.js.map +1 -0
  224. package/dist/core/p-3f20608d.entry.js +2 -0
  225. package/dist/core/p-3f20608d.entry.js.map +1 -0
  226. package/dist/core/p-41606de1.entry.js +2 -0
  227. package/dist/core/p-41606de1.entry.js.map +1 -0
  228. package/dist/core/{p-8b1d128c.entry.js → p-4415c93f.entry.js} +2 -2
  229. package/dist/core/{p-6b68ee01.entry.js → p-457dd939.entry.js} +2 -2
  230. package/dist/core/p-457dd939.entry.js.map +1 -0
  231. package/dist/core/{p-04f46dac.entry.js → p-4737844f.entry.js} +2 -2
  232. package/dist/core/p-4737844f.entry.js.map +1 -0
  233. package/dist/core/{p-8ef85b15.entry.js → p-53374a27.entry.js} +2 -2
  234. package/dist/core/{p-7c8f85fd.entry.js → p-53e45d51.entry.js} +2 -2
  235. package/dist/core/{p-0707f2fc.entry.js → p-593f0318.entry.js} +2 -2
  236. package/dist/core/{p-aabab75f.entry.js → p-5d5979fa.entry.js} +2 -2
  237. package/dist/core/{p-c7b52046.entry.js → p-66af5958.entry.js} +2 -2
  238. package/dist/core/p-67b0faac.entry.js +2 -0
  239. package/dist/core/p-67b0faac.entry.js.map +1 -0
  240. package/dist/core/p-6b277e09.entry.js +2 -0
  241. package/dist/core/p-6b277e09.entry.js.map +1 -0
  242. package/dist/core/{p-2ec33c00.entry.js → p-72cea8fd.entry.js} +2 -2
  243. package/dist/core/p-73dad5cf.entry.js +2 -0
  244. package/dist/core/p-73dad5cf.entry.js.map +1 -0
  245. package/dist/core/{p-05d0ac42.entry.js → p-85e2a9af.entry.js} +2 -2
  246. package/dist/core/p-85e2a9af.entry.js.map +1 -0
  247. package/dist/core/{p-bbcd6d06.entry.js → p-872c3555.entry.js} +2 -2
  248. package/dist/core/{p-dae1779d.entry.js → p-87743c4a.entry.js} +2 -2
  249. package/dist/core/{p-55d819a6.entry.js → p-8cfc74da.entry.js} +2 -2
  250. package/dist/core/{p-bf316546.entry.js → p-9729086f.entry.js} +2 -2
  251. package/dist/core/{p-f4965c26.entry.js → p-9cc19e91.entry.js} +2 -2
  252. package/dist/core/{p-da578abf.entry.js → p-9de20265.entry.js} +2 -2
  253. package/dist/core/p-a088373e.entry.js +2 -0
  254. package/dist/core/p-a088373e.entry.js.map +1 -0
  255. package/dist/core/{p-169dcfdd.entry.js → p-a0e42564.entry.js} +2 -2
  256. package/dist/core/p-a8110c27.entry.js +2 -0
  257. package/dist/core/p-a8110c27.entry.js.map +1 -0
  258. package/dist/core/{p-f9fcdd21.entry.js → p-a9d07792.entry.js} +2 -2
  259. package/dist/core/p-a9d07792.entry.js.map +1 -0
  260. package/dist/core/{p-66b8f0a7.entry.js → p-b08f4371.entry.js} +2 -2
  261. package/dist/core/{p-a9ed6a71.entry.js → p-b79c0631.entry.js} +2 -2
  262. package/dist/core/p-b79c0631.entry.js.map +1 -0
  263. package/dist/core/p-b8247636.entry.js +2 -0
  264. package/dist/core/p-b8247636.entry.js.map +1 -0
  265. package/dist/core/{p-fdd8f3a5.entry.js → p-badfdf2a.entry.js} +2 -2
  266. package/dist/core/p-be56fa17.entry.js +2 -0
  267. package/dist/core/{p-31800427.entry.js.map → p-be56fa17.entry.js.map} +1 -1
  268. package/dist/core/{p-ed7379e3.entry.js → p-bebf535f.entry.js} +2 -2
  269. package/dist/core/p-c07cef0e.js +2 -0
  270. package/dist/core/p-c07cef0e.js.map +1 -0
  271. package/dist/core/p-c0d88af8.entry.js +2 -0
  272. package/dist/core/p-c0d88af8.entry.js.map +1 -0
  273. package/dist/core/p-c3af5dab.entry.js +2 -0
  274. package/dist/core/p-c3af5dab.entry.js.map +1 -0
  275. package/dist/core/{p-981b6f12.entry.js → p-c3dabce4.entry.js} +2 -2
  276. package/dist/core/{p-bcfbd465.entry.js → p-c7e932b5.entry.js} +2 -2
  277. package/dist/core/{p-1a4bce88.entry.js → p-d09aaa5b.entry.js} +2 -2
  278. package/dist/core/{p-3f4c408a.entry.js → p-d59a72a9.entry.js} +2 -2
  279. package/dist/core/p-d59a72a9.entry.js.map +1 -0
  280. package/dist/core/{p-1170c02d.entry.js → p-d71e9cb5.entry.js} +2 -2
  281. package/dist/core/{p-b612d68b.entry.js → p-ecd6d123.entry.js} +2 -2
  282. package/dist/core/p-ecd6d123.entry.js.map +1 -0
  283. package/dist/core/p-ee52a11a.entry.js +2 -0
  284. package/dist/core/p-ee52a11a.entry.js.map +1 -0
  285. package/dist/core/p-f11597df.entry.js +2 -0
  286. package/dist/core/p-f11597df.entry.js.map +1 -0
  287. package/dist/core/p-f1f3acd2.entry.js +2 -0
  288. package/dist/core/p-f1f3acd2.entry.js.map +1 -0
  289. package/dist/core/{p-e676069e.entry.js → p-f659e5eb.entry.js} +2 -2
  290. package/dist/core/{p-ffa94639.entry.js → p-fc2551c0.entry.js} +2 -2
  291. package/dist/esm/core.js +1 -1
  292. package/dist/esm/{helpers-f328a7b6.js → helpers-8df79303.js} +29 -2
  293. package/dist/esm/helpers-8df79303.js.map +1 -0
  294. package/dist/esm/{helpers-451953f9.js → helpers-da05c476.js} +56 -88
  295. package/dist/esm/helpers-da05c476.js.map +1 -0
  296. package/dist/esm/ic-accordion-group.entry.js +3 -1
  297. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  298. package/dist/esm/ic-accordion.entry.js +1 -1
  299. package/dist/esm/ic-alert.entry.js +1 -1
  300. package/dist/esm/ic-back-to-top.entry.js +15 -9
  301. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  302. package/dist/esm/ic-badge.entry.js +55 -84
  303. package/dist/esm/ic-badge.entry.js.map +1 -1
  304. package/dist/esm/ic-breadcrumb-group.entry.js +3 -1
  305. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  306. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  307. package/dist/esm/ic-button_3.entry.js +35 -86
  308. package/dist/esm/ic-button_3.entry.js.map +1 -1
  309. package/dist/esm/ic-card.entry.js +1 -1
  310. package/dist/esm/ic-checkbox-group.entry.js +23 -16
  311. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  312. package/dist/esm/ic-checkbox.entry.js +32 -30
  313. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  314. package/dist/esm/ic-chip.entry.js +34 -21
  315. package/dist/esm/ic-chip.entry.js.map +1 -1
  316. package/dist/esm/ic-data-row.entry.js +1 -1
  317. package/dist/esm/ic-data-table-title-bar.entry.js +53 -0
  318. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -0
  319. package/dist/esm/ic-data-table.entry.js +155 -32
  320. package/dist/esm/ic-data-table.entry.js.map +1 -1
  321. package/dist/esm/ic-date-input.entry.js +6 -6
  322. package/dist/esm/ic-date-input.entry.js.map +1 -1
  323. package/dist/esm/ic-date-picker.entry.js +1 -1
  324. package/dist/esm/ic-dialog.entry.js +1 -1
  325. package/dist/esm/ic-divider.entry.js +1 -1
  326. package/dist/esm/ic-empty-state_2.entry.js +317 -0
  327. package/dist/esm/ic-empty-state_2.entry.js.map +1 -0
  328. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  329. package/dist/esm/ic-footer-link.entry.js +1 -1
  330. package/dist/esm/ic-footer.entry.js +1 -1
  331. package/dist/esm/ic-hero.entry.js +1 -1
  332. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  333. package/dist/esm/ic-input-component-container_4.entry.js +1 -1
  334. package/dist/esm/ic-link.entry.js +35 -17
  335. package/dist/esm/ic-link.entry.js.map +1 -1
  336. package/dist/esm/ic-menu-group.entry.js +1 -1
  337. package/dist/esm/ic-menu-item.entry.js +2 -2
  338. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  339. package/dist/esm/ic-menu-with-multi.entry.js +176 -35
  340. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
  341. package/dist/esm/ic-menu.entry.js +3 -3
  342. package/dist/esm/ic-menu.entry.js.map +1 -1
  343. package/dist/esm/ic-navigation-button.entry.js +27 -6
  344. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  345. package/dist/esm/ic-navigation-group.entry.js +1 -1
  346. package/dist/esm/ic-navigation-item.entry.js +1 -1
  347. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  348. package/dist/esm/ic-page-header.entry.js +1 -1
  349. package/dist/esm/ic-pagination_4.entry.js +59 -18
  350. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  351. package/dist/esm/ic-popover-menu.entry.js +3 -2
  352. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  353. package/dist/esm/ic-radio-group.entry.js +40 -26
  354. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  355. package/dist/esm/ic-radio-option.entry.js +9 -4
  356. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  357. package/dist/esm/ic-search-bar.entry.js +1 -1
  358. package/dist/esm/ic-select-with-multi.entry.js +1 -1
  359. package/dist/esm/ic-side-navigation.entry.js +1 -1
  360. package/dist/esm/ic-status-tag.entry.js +1 -1
  361. package/dist/esm/ic-step.entry.js +5 -2
  362. package/dist/esm/ic-step.entry.js.map +1 -1
  363. package/dist/esm/ic-stepper.entry.js +2 -1
  364. package/dist/esm/ic-stepper.entry.js.map +1 -1
  365. package/dist/esm/ic-switch.entry.js +1 -1
  366. package/dist/esm/ic-tab-group.entry.js +1 -1
  367. package/dist/esm/ic-tab-panel.entry.js +1 -1
  368. package/dist/esm/ic-tab.entry.js +1 -1
  369. package/dist/esm/ic-theme.entry.js +13 -22
  370. package/dist/esm/ic-theme.entry.js.map +1 -1
  371. package/dist/esm/ic-toast.entry.js +1 -1
  372. package/dist/esm/ic-toggle-button.entry.js +1 -1
  373. package/dist/esm/ic-top-navigation.entry.js +1 -1
  374. package/dist/esm/ic-typography.entry.js +2 -2
  375. package/dist/esm/ic-typography.entry.js.map +1 -1
  376. package/dist/esm/index-93509377.js +8 -8
  377. package/dist/esm/loader.js +1 -1
  378. package/dist/types/components/ic-data-table/ic-data-table.d.ts +79 -3
  379. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +9 -0
  380. package/dist/types/components/ic-data-table/story-data.d.ts +59 -0
  381. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +36 -0
  382. package/dist/types/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts +1 -0
  383. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +10 -0
  384. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +24 -14
  385. package/dist/types/components.d.ts +207 -28
  386. package/dist/types/utils/types.d.ts +5 -5
  387. package/hydrate/index.js +1445 -1050
  388. package/package.json +3 -3
  389. package/dist/cjs/helpers-6acbb97e.js.map +0 -1
  390. package/dist/cjs/helpers-f75cf7cf.js.map +0 -1
  391. package/dist/cjs/ic-empty-state.cjs.entry.js +0 -38
  392. package/dist/cjs/ic-empty-state.cjs.entry.js.map +0 -1
  393. package/dist/cjs/ic-pagination-bar.cjs.entry.js +0 -269
  394. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +0 -1
  395. package/dist/collection/components/ic-pagination/ic-pagination.types.js +0 -2
  396. package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +0 -1
  397. package/dist/core/p-04f46dac.entry.js.map +0 -1
  398. package/dist/core/p-05d0ac42.entry.js.map +0 -1
  399. package/dist/core/p-1c3bd46d.entry.js +0 -2
  400. package/dist/core/p-1c3bd46d.entry.js.map +0 -1
  401. package/dist/core/p-28bddd8d.entry.js +0 -2
  402. package/dist/core/p-28bddd8d.entry.js.map +0 -1
  403. package/dist/core/p-31800427.entry.js +0 -2
  404. package/dist/core/p-3b0caac0.js +0 -2
  405. package/dist/core/p-3b0caac0.js.map +0 -1
  406. package/dist/core/p-3f4c408a.entry.js.map +0 -1
  407. package/dist/core/p-4020d7f7.entry.js +0 -2
  408. package/dist/core/p-4020d7f7.entry.js.map +0 -1
  409. package/dist/core/p-402fd288.entry.js +0 -2
  410. package/dist/core/p-402fd288.entry.js.map +0 -1
  411. package/dist/core/p-49449a2d.entry.js +0 -2
  412. package/dist/core/p-49449a2d.entry.js.map +0 -1
  413. package/dist/core/p-4a30b0fc.entry.js +0 -2
  414. package/dist/core/p-4a30b0fc.entry.js.map +0 -1
  415. package/dist/core/p-4b361789.entry.js +0 -2
  416. package/dist/core/p-4b361789.entry.js.map +0 -1
  417. package/dist/core/p-50cfc2bb.entry.js +0 -2
  418. package/dist/core/p-50cfc2bb.entry.js.map +0 -1
  419. package/dist/core/p-58c87b3d.entry.js +0 -2
  420. package/dist/core/p-58c87b3d.entry.js.map +0 -1
  421. package/dist/core/p-623f911f.entry.js +0 -2
  422. package/dist/core/p-623f911f.entry.js.map +0 -1
  423. package/dist/core/p-6b68ee01.entry.js.map +0 -1
  424. package/dist/core/p-7d1381ef.entry.js +0 -2
  425. package/dist/core/p-7d1381ef.entry.js.map +0 -1
  426. package/dist/core/p-925da2d2.entry.js +0 -2
  427. package/dist/core/p-925da2d2.entry.js.map +0 -1
  428. package/dist/core/p-9e3178e8.entry.js +0 -2
  429. package/dist/core/p-9e3178e8.entry.js.map +0 -1
  430. package/dist/core/p-a9ed6a71.entry.js.map +0 -1
  431. package/dist/core/p-b612d68b.entry.js.map +0 -1
  432. package/dist/core/p-c51496ee.entry.js +0 -2
  433. package/dist/core/p-c51496ee.entry.js.map +0 -1
  434. package/dist/core/p-c7590421.entry.js +0 -2
  435. package/dist/core/p-c7590421.entry.js.map +0 -1
  436. package/dist/core/p-cd799087.js +0 -2
  437. package/dist/core/p-cd799087.js.map +0 -1
  438. package/dist/core/p-e189f1d0.entry.js +0 -2
  439. package/dist/core/p-e189f1d0.entry.js.map +0 -1
  440. package/dist/core/p-e30f2623.entry.js +0 -2
  441. package/dist/core/p-e30f2623.entry.js.map +0 -1
  442. package/dist/core/p-f9ee48f7.entry.js +0 -2
  443. package/dist/core/p-f9ee48f7.entry.js.map +0 -1
  444. package/dist/core/p-f9fcdd21.entry.js.map +0 -1
  445. package/dist/esm/helpers-451953f9.js.map +0 -1
  446. package/dist/esm/helpers-f328a7b6.js.map +0 -1
  447. package/dist/esm/ic-empty-state.entry.js.map +0 -1
  448. package/dist/esm/ic-pagination-bar.entry.js +0 -265
  449. package/dist/esm/ic-pagination-bar.entry.js.map +0 -1
  450. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +0 -6
  451. /package/dist/core/{p-b3d21d06.entry.js.map → p-005e83b0.entry.js.map} +0 -0
  452. /package/dist/core/{p-b8a3b16d.entry.js.map → p-05df3901.entry.js.map} +0 -0
  453. /package/dist/core/{p-3d0185a4.entry.js.map → p-0646ef0c.entry.js.map} +0 -0
  454. /package/dist/core/{p-e0e26834.entry.js.map → p-16c82b13.entry.js.map} +0 -0
  455. /package/dist/core/{p-094a0455.entry.js.map → p-1b35b6af.entry.js.map} +0 -0
  456. /package/dist/core/{p-849f43c3.entry.js.map → p-2170f59e.entry.js.map} +0 -0
  457. /package/dist/core/{p-8b1d128c.entry.js.map → p-4415c93f.entry.js.map} +0 -0
  458. /package/dist/core/{p-8ef85b15.entry.js.map → p-53374a27.entry.js.map} +0 -0
  459. /package/dist/core/{p-7c8f85fd.entry.js.map → p-53e45d51.entry.js.map} +0 -0
  460. /package/dist/core/{p-0707f2fc.entry.js.map → p-593f0318.entry.js.map} +0 -0
  461. /package/dist/core/{p-aabab75f.entry.js.map → p-5d5979fa.entry.js.map} +0 -0
  462. /package/dist/core/{p-c7b52046.entry.js.map → p-66af5958.entry.js.map} +0 -0
  463. /package/dist/core/{p-2ec33c00.entry.js.map → p-72cea8fd.entry.js.map} +0 -0
  464. /package/dist/core/{p-bbcd6d06.entry.js.map → p-872c3555.entry.js.map} +0 -0
  465. /package/dist/core/{p-dae1779d.entry.js.map → p-87743c4a.entry.js.map} +0 -0
  466. /package/dist/core/{p-55d819a6.entry.js.map → p-8cfc74da.entry.js.map} +0 -0
  467. /package/dist/core/{p-bf316546.entry.js.map → p-9729086f.entry.js.map} +0 -0
  468. /package/dist/core/{p-f4965c26.entry.js.map → p-9cc19e91.entry.js.map} +0 -0
  469. /package/dist/core/{p-da578abf.entry.js.map → p-9de20265.entry.js.map} +0 -0
  470. /package/dist/core/{p-169dcfdd.entry.js.map → p-a0e42564.entry.js.map} +0 -0
  471. /package/dist/core/{p-66b8f0a7.entry.js.map → p-b08f4371.entry.js.map} +0 -0
  472. /package/dist/core/{p-fdd8f3a5.entry.js.map → p-badfdf2a.entry.js.map} +0 -0
  473. /package/dist/core/{p-ed7379e3.entry.js.map → p-bebf535f.entry.js.map} +0 -0
  474. /package/dist/core/{p-981b6f12.entry.js.map → p-c3dabce4.entry.js.map} +0 -0
  475. /package/dist/core/{p-bcfbd465.entry.js.map → p-c7e932b5.entry.js.map} +0 -0
  476. /package/dist/core/{p-1a4bce88.entry.js.map → p-d09aaa5b.entry.js.map} +0 -0
  477. /package/dist/core/{p-1170c02d.entry.js.map → p-d71e9cb5.entry.js.map} +0 -0
  478. /package/dist/core/{p-e676069e.entry.js.map → p-f659e5eb.entry.js.map} +0 -0
  479. /package/dist/core/{p-ffa94639.entry.js.map → p-fc2551c0.entry.js.map} +0 -0
@@ -2,86 +2,59 @@ import { h, } from "@stencil/core";
2
2
  import { checkResizeObserver } from "../../utils/helpers";
3
3
  export class PaginationBar {
4
4
  constructor() {
5
- this.PAGINATION = "ic-pagination";
6
- this.TEXT_FIELD = "ic-text-field";
7
- this.TOOLTIP = "ic-tooltip";
8
5
  this.PAGE_INPUT_FIELD_ID = "go-to-page-input";
9
6
  this.INVALID_PAGE_ERROR = "Please enter a valid page";
10
7
  this.NAN_ERROR = "Please enter a number";
11
8
  this.resizeObserver = null;
12
9
  this.changeItemsPerPage = () => {
13
- const select = this.el.shadowRoot.querySelector("ic-select");
14
- const value = select.value;
15
- this.itemsPerPage = value;
16
- this.setNumberPages();
17
- this.setUpperBound();
18
- const pagination = this.el.shadowRoot.querySelector(this.PAGINATION);
19
- if (this.currentPage > this.totalPages) {
20
- pagination.setCurrentPage(this.totalPages);
21
- this.currentPage = this.totalPages;
22
- }
23
- this.icItemsPerPageChange.emit({ value: Number(this.itemsPerPage) });
24
- this.icPageChange.emit({ value: this.currentPage });
10
+ this.setItemsPerPage(Number(this.pageDropdownEl.value));
25
11
  };
26
12
  this.changePage = (page) => {
27
13
  this.currentPage = page;
28
- this.lowerBound =
29
- page !== 1 ? (page - 1) * Number(this.itemsPerPage) + 1 : page;
14
+ this.lowerBound = page !== 1 ? (page - 1) * this.itemsPerPage + 1 : page;
30
15
  this.setUpperBound();
31
16
  };
32
17
  this.goToPage = () => {
33
- const input = this.el.shadowRoot.querySelector(this.TEXT_FIELD);
18
+ const input = this.pageInputEl;
34
19
  const page = Number(input.value);
35
- const tooltip = this.el.shadowRoot.querySelector("ic-tooltip");
36
20
  if (page <= this.totalPages && page > 0) {
37
21
  this.changePage(page);
38
- const pagination = this.el.shadowRoot.querySelector(this.PAGINATION);
39
- pagination.setCurrentPage(page);
22
+ this.paginationEl.setCurrentPage(page);
40
23
  this.currentPage = page;
41
24
  input.value = "";
42
25
  this.icPageChange.emit({ value: page });
43
- tooltip.displayTooltip(false, false);
26
+ this.pageInputTooltipEl.displayTooltip(false, false);
44
27
  input.validationStatus = "";
45
28
  }
46
29
  else {
47
- this.inputError = this.INVALID_PAGE_ERROR;
48
- input.validationStatus = "error";
49
- input.setFocus();
30
+ this.setInputError(input, this.INVALID_PAGE_ERROR);
50
31
  }
51
32
  };
52
33
  this.handleBlur = () => {
53
- var _a, _b;
54
- const textField = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(this.TEXT_FIELD);
55
- const tooltip = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(this.TOOLTIP);
34
+ const textField = this.pageInputEl;
56
35
  if ((Number(textField.value) <= this.totalPages &&
57
36
  Number(textField.value) > 0) ||
58
37
  textField.value === "") {
59
38
  textField.validationStatus = "";
60
39
  }
61
- tooltip.displayTooltip(false, false);
40
+ this.pageInputTooltipEl.displayTooltip(false, false);
62
41
  };
63
42
  this.handleFocus = () => {
64
- var _a, _b;
65
- const textField = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(this.TEXT_FIELD);
66
- const tooltip = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(this.TOOLTIP);
67
- if (textField.validationStatus === "error") {
68
- tooltip.displayTooltip(true, true);
43
+ if (this.pageInputEl.validationStatus === "error") {
44
+ this.pageInputTooltipEl.displayTooltip(true, true);
69
45
  }
70
46
  };
71
47
  this.handleInputChange = () => {
72
- const tooltip = this.el.shadowRoot.querySelector(this.TOOLTIP);
73
- const textField = this.el.shadowRoot.querySelector(this.TEXT_FIELD);
48
+ const textField = this.pageInputEl;
74
49
  const inputValue = parseInt(textField.value);
75
50
  if (inputValue > this.totalPages || inputValue <= 0) {
76
- this.inputError = this.INVALID_PAGE_ERROR;
77
- tooltip.displayTooltip(true, true);
78
- textField.validationStatus = "error";
79
- textField.focus();
51
+ this.setInputError(textField, this.INVALID_PAGE_ERROR);
52
+ this.pageInputTooltipEl.displayTooltip(true, true);
80
53
  }
81
54
  };
82
55
  this.handleKeydown = (ev) => {
83
- const tooltip = this.el.shadowRoot.querySelector(this.TOOLTIP);
84
- const textField = this.el.shadowRoot.querySelector(this.TEXT_FIELD);
56
+ const tooltip = this.pageInputTooltipEl;
57
+ const textField = this.pageInputEl;
85
58
  if (ev.key === "Enter") {
86
59
  if (textField.validationStatus === "error") {
87
60
  tooltip.displayTooltip(true, true);
@@ -96,23 +69,20 @@ export class PaginationBar {
96
69
  }
97
70
  };
98
71
  this.handleKeyUp = (ev) => {
99
- const tooltip = this.el.shadowRoot.querySelector(this.TOOLTIP);
100
- const textField = this.el.shadowRoot.querySelector(this.TEXT_FIELD);
72
+ const textField = this.pageInputEl;
101
73
  const inputValue = parseInt(textField.value);
102
74
  if (Number.isNaN(inputValue) &&
103
75
  ev.key !== "Backspace" &&
104
76
  ev.key !== "Enter" &&
105
77
  ev.key !== "Tab" &&
106
78
  ev.key !== "Shift") {
107
- this.inputError = this.NAN_ERROR;
108
- tooltip.displayTooltip(true, false);
109
- textField.validationStatus = "error";
79
+ this.setInputError(textField, this.NAN_ERROR, false);
80
+ this.pageInputTooltipEl.displayTooltip(true, false);
110
81
  }
111
82
  };
112
83
  this.paginationShouldWrap = () => {
113
- const pagination = this.el.shadowRoot.querySelector(this.PAGINATION);
114
- if (this.paginationControl === "simple") {
115
- if (pagination.clientHeight > 63) {
84
+ if (this.type === "simple") {
85
+ if (this.paginationEl.clientHeight > 63) {
116
86
  this.paginationWrapped = true;
117
87
  }
118
88
  else {
@@ -134,24 +104,25 @@ export class PaginationBar {
134
104
  });
135
105
  this.resizeObserver.observe(this.paginationBarEl);
136
106
  };
137
- this.setDefaultItemsPerPage = () => {
138
- this.itemsPerPage = this.itemsPerPageOptions[0].value;
139
- };
140
- this.setDefaultItemsPerPageOptions = () => {
141
- this.itemsPerPageOptions =
142
- this.totalItems <= 100
143
- ? [
144
- { label: "10", value: "10" },
145
- { label: "25", value: "25" },
146
- { label: "50", value: "50" },
147
- { label: "All", value: String(this.totalItems) },
148
- ]
149
- : [
150
- { label: "25", value: "25" },
151
- { label: "100", value: "100" },
152
- { label: "1000", value: "1000" },
153
- { label: "All", value: String(this.totalItems) },
154
- ];
107
+ this.setDisplayedItemsPerPageOptions = () => {
108
+ if (this.itemsPerPageOptions === undefined ||
109
+ this.itemsPerPageOptions === null) {
110
+ this.displayedItemsPerPageOptions =
111
+ this.totalItems <= 100
112
+ ? [
113
+ { label: "10", value: "10" },
114
+ { label: "25", value: "25" },
115
+ { label: "50", value: "50" },
116
+ ]
117
+ : [
118
+ { label: "25", value: "25" },
119
+ { label: "100", value: "100" },
120
+ { label: "1000", value: "1000" },
121
+ ];
122
+ }
123
+ else {
124
+ this.displayedItemsPerPageOptions = this.itemsPerPageOptions.slice(0, 3);
125
+ }
155
126
  };
156
127
  this.setGoToPageInputStyles = () => {
157
128
  var _a, _b;
@@ -164,27 +135,74 @@ export class PaginationBar {
164
135
  }
165
136
  }
166
137
  };
138
+ this.setInputError = (el, error, focus = true) => {
139
+ this.inputError = error;
140
+ el.validationStatus = "error";
141
+ if (focus)
142
+ el.setFocus();
143
+ };
144
+ this.setItemsPerPage = (newValue) => {
145
+ if (this.itemsPerPage !== newValue) {
146
+ this.itemsPerPage = newValue;
147
+ this.icItemsPerPageChange.emit({ value: this.itemsPerPage });
148
+ }
149
+ this.setNumberPages();
150
+ this.setUpperBound();
151
+ if (this.currentPage > this.totalPages) {
152
+ this.paginationEl.setCurrentPage(this.totalPages);
153
+ this.currentPage = this.totalPages;
154
+ }
155
+ this.icPageChange.emit({ value: this.currentPage });
156
+ };
167
157
  this.setNumberPages = () => {
168
- this.totalPages = Math.ceil(this.totalItems / Number(this.itemsPerPage));
158
+ const numItemsPerPage = this.itemsPerPage;
159
+ if (this.totalItems <= numItemsPerPage) {
160
+ this.totalPages = 1;
161
+ }
162
+ else {
163
+ this.totalPages = Math.ceil(this.totalItems / numItemsPerPage);
164
+ }
165
+ };
166
+ this.setPaginationBarContent = () => {
167
+ this.setDisplayedItemsPerPageOptions();
168
+ this.trimItemsPerPageOptions();
169
+ this.updateItemsPerPage();
169
170
  };
170
171
  this.setUpperBound = () => {
171
- this.upperBound = Math.min(this.lowerBound + Number(this.itemsPerPage) - 1, this.totalItems);
172
+ this.upperBound = Math.min(this.lowerBound + this.itemsPerPage - 1, this.totalItems);
172
173
  };
173
174
  this.trimItemsPerPageOptions = () => {
174
- this.itemsPerPageOptions = this.itemsPerPageOptions.slice(0, 3);
175
- this.itemsPerPageOptions.push({
175
+ this.displayedItemsPerPageOptions.push({
176
176
  label: "All",
177
177
  value: String(this.totalItems),
178
178
  });
179
- for (let i = 0; i < this.itemsPerPageOptions.length - 1; i++) {
180
- if (this.totalItems <= Number(this.itemsPerPageOptions[i].value)) {
181
- this.itemsPerPageOptions.splice(i, this.itemsPerPageOptions.length - (i + 1));
179
+ for (let i = 0; i < this.displayedItemsPerPageOptions.length - 1; i++) {
180
+ if (this.totalItems <= Number(this.displayedItemsPerPageOptions[i].value)) {
181
+ this.displayedItemsPerPageOptions.splice(i, this.displayedItemsPerPageOptions.length - (i + 1));
182
182
  }
183
183
  }
184
184
  };
185
+ this.updateItemsPerPage = () => {
186
+ let newItemsPerPage = this.itemsPerPage;
187
+ let updated = false;
188
+ let lastOptionValue = 0;
189
+ for (let i = 0; i < this.displayedItemsPerPageOptions.length; i++) {
190
+ lastOptionValue = Number(this.displayedItemsPerPageOptions[i].value);
191
+ if (this.itemsPerPage <= lastOptionValue) {
192
+ newItemsPerPage = lastOptionValue;
193
+ updated = true;
194
+ i = this.displayedItemsPerPageOptions.length;
195
+ }
196
+ }
197
+ if (!updated && this.itemsPerPage > lastOptionValue) {
198
+ newItemsPerPage = lastOptionValue;
199
+ }
200
+ this.setItemsPerPage(newItemsPerPage);
201
+ };
185
202
  this.currentPage = 1;
203
+ this.displayedItemsPerPageOptions = undefined;
186
204
  this.inputError = "Please enter a valid page";
187
- this.itemsPerPage = undefined;
205
+ this.itemsPerPage = 0;
188
206
  this.lowerBound = 1;
189
207
  this.paginationWidth = undefined;
190
208
  this.paginationWrapped = false;
@@ -192,30 +210,29 @@ export class PaginationBar {
192
210
  this.upperBound = undefined;
193
211
  this.alignment = "right";
194
212
  this.appearance = "default";
195
- this.itemLabel = "Item";
213
+ this.rangeItemLabel = "Item";
196
214
  this.itemsPerPageOptions = undefined;
197
- this.paginationControl = "simple";
198
- this.paginationType = "page";
215
+ this.type = "simple";
216
+ this.rangeLabelType = "page";
199
217
  this.pageLabel = "Page";
200
218
  this.showGoToPageControl = false;
201
- this.showItemsPerPage = true;
219
+ this.hideRangeLabel = false;
202
220
  this.showItemsPerPageControl = false;
203
221
  this.totalItems = undefined;
204
222
  }
223
+ watchItemsPerPageOptionsHandler() {
224
+ this.setPaginationBarContent();
225
+ }
226
+ watchTotalItemsHandler() {
227
+ this.setPaginationBarContent();
228
+ }
205
229
  disconnectedCallback() {
206
230
  if (this.resizeObserver !== null) {
207
231
  this.resizeObserver.disconnect();
208
232
  }
209
233
  }
210
234
  componentWillLoad() {
211
- if (this.itemsPerPageOptions === undefined ||
212
- this.itemsPerPageOptions === null) {
213
- this.setDefaultItemsPerPageOptions();
214
- }
215
- this.trimItemsPerPageOptions();
216
- this.setDefaultItemsPerPage();
217
- this.setNumberPages();
218
- this.setUpperBound();
235
+ this.setPaginationBarContent();
219
236
  }
220
237
  componentDidLoad() {
221
238
  this.paginationWidth = this.paginationBarEl.clientWidth;
@@ -228,7 +245,7 @@ export class PaginationBar {
228
245
  this.changePage(page);
229
246
  }
230
247
  render() {
231
- const { appearance, alignment, itemsPerPageOptions, PAGE_INPUT_FIELD_ID, paginationControl, paginationType, showItemsPerPage, showItemsPerPageControl, showGoToPageControl, } = this;
248
+ const { appearance, alignment, displayedItemsPerPageOptions, PAGE_INPUT_FIELD_ID, type, rangeLabelType, hideRangeLabel, showItemsPerPageControl, showGoToPageControl, } = this;
232
249
  const focusElFromLabel = (el) => {
233
250
  var _a;
234
251
  (_a = this.paginationBarEl.querySelector(el)) === null || _a === void 0 ? void 0 : _a.setFocus();
@@ -236,19 +253,21 @@ export class PaginationBar {
236
253
  return (h("div", { class: {
237
254
  ["pagination-bar"]: true,
238
255
  [`pagination-bar-${alignment}`]: true,
239
- }, ref: (el) => (this.paginationBarEl = el) }, (showItemsPerPage || showItemsPerPageControl) && (h("div", { class: "item-controls" }, showItemsPerPageControl && (h("div", { class: "items-per-page-holder" }, h("ic-typography", { class: {
256
+ }, ref: (el) => (this.paginationBarEl = el) }, (!hideRangeLabel || showItemsPerPageControl) && (h("div", { class: "item-controls" }, showItemsPerPageControl && (h("div", { class: "items-per-page-holder" }, h("ic-typography", { class: {
240
257
  [`pagination-text-${appearance}`]: true,
241
258
  ["items-per-page-control-label"]: true,
242
- }, variant: "label", onClick: () => focusElFromLabel("ic-select") }, this.itemLabel, "s per ", this.pageLabel.toLowerCase()), h("ic-select", { small: true, label: "items-per-page-input", class: "items-per-page-input", hideLabel: true, options: itemsPerPageOptions, value: this.itemsPerPage, onIcChange: () => this.changeItemsPerPage() }))), showItemsPerPage && paginationType === "data" ? (h("ic-typography", { class: {
259
+ }, variant: "label", onClick: () => focusElFromLabel("ic-select") }, this.rangeItemLabel, "s per ", this.pageLabel.toLowerCase()), h("ic-select", { small: true, label: "items-per-page-input", class: "items-per-page-input", hideLabel: true, options: displayedItemsPerPageOptions, value: this.itemsPerPage.toString(), onIcChange: () => this.changeItemsPerPage(), ref: (el) => (this.pageDropdownEl = el) }))), !hideRangeLabel && rangeLabelType === "data" ? (h("ic-typography", { class: {
243
260
  [`pagination-text-${appearance}`]: true,
244
261
  ["item-pagination-label"]: true,
245
- }, variant: "label", "aria-live": "polite" }, this.lowerBound, " - ", this.upperBound, " of ", this.totalItems, " ", this.itemLabel.toLowerCase(), this.totalItems > 1 ? "s" : "")) : (showItemsPerPage && (h("ic-typography", { class: {
262
+ }, variant: "label", "aria-live": "polite" }, this.upperBound === 0 &&
263
+ `0 ${this.rangeItemLabel.toLowerCase()}s`, this.upperBound > 0 &&
264
+ `${this.lowerBound} - ${this.upperBound} of ${this.totalItems} ${this.rangeItemLabel.toLowerCase()}${this.totalItems > 1 ? "s" : ""}`)) : (!hideRangeLabel && (h("ic-typography", { class: {
246
265
  [`pagination-text-${appearance}`]: true,
247
266
  ["page-pagination-label"]: true,
248
267
  }, variant: "label", "aria-live": "polite" }, this.pageLabel, " ", this.currentPage, " of ", this.totalPages))))), h("div", { class: {
249
268
  ["pagination-controls"]: true,
250
269
  ["pagination-controls-wrap"]: this.paginationWrapped,
251
- } }, h("div", { class: "pagination-holder" }, h("ic-pagination", { appearance: appearance, type: paginationControl, pages: this.totalPages })), showGoToPageControl && (h("div", { class: "go-to-page-holder" }, h("ic-typography", { class: { [`pagination-text-${appearance}`]: true }, variant: "label", onClick: () => focusElFromLabel("ic-text-field") }, "Go to ", this.pageLabel.toLowerCase()), h("ic-tooltip", { label: this.inputError, target: `#${PAGE_INPUT_FIELD_ID}`, disableHover: true, disableClick: true }, h("ic-text-field", { type: "number", size: "small", label: PAGE_INPUT_FIELD_ID, class: PAGE_INPUT_FIELD_ID, id: PAGE_INPUT_FIELD_ID, hideLabel: true, onKeyDown: (ev) => this.handleKeydown(ev), onKeyUp: (ev) => this.handleKeyUp(ev), onInput: () => this.handleInputChange(), max: this.totalPages, min: "1", validationInlineInternal: true, onBlur: () => this.handleBlur(), onFocus: () => this.handleFocus() })), h("ic-button", { appearance: appearance, variant: "secondary", onClick: () => this.goToPage(), size: "small", class: "go-to-page-button" }, "Go"))))));
270
+ } }, h("div", { class: "pagination-holder" }, h("ic-pagination", { appearance: appearance, type: type, pages: this.totalPages, ref: (el) => (this.paginationEl = el) })), showGoToPageControl && (h("div", { class: "go-to-page-holder" }, h("ic-typography", { class: { [`pagination-text-${appearance}`]: true }, variant: "label", onClick: () => focusElFromLabel("ic-text-field") }, "Go to ", this.pageLabel.toLowerCase()), h("ic-tooltip", { label: this.inputError, target: `#${PAGE_INPUT_FIELD_ID}`, disableHover: true, disableClick: true, ref: (el) => (this.pageInputTooltipEl = el) }, h("ic-text-field", { type: "number", size: "small", label: PAGE_INPUT_FIELD_ID, class: PAGE_INPUT_FIELD_ID, id: PAGE_INPUT_FIELD_ID, hideLabel: true, onKeyDown: (ev) => this.handleKeydown(ev), onKeyUp: (ev) => this.handleKeyUp(ev), onInput: () => this.handleInputChange(), max: this.totalPages, min: "1", validationInlineInternal: true, onBlur: () => this.handleBlur(), onFocus: () => this.handleFocus(), ref: (el) => (this.pageInputEl = el) })), h("ic-button", { appearance: appearance, variant: "secondary", onClick: () => this.goToPage(), size: "small", class: "go-to-page-button" }, "Go"))))));
252
271
  }
253
272
  static get is() { return "ic-pagination-bar"; }
254
273
  static get encapsulation() { return "shadow"; }
@@ -273,8 +292,8 @@ export class PaginationBar {
273
292
  "references": {
274
293
  "IcPaginationAlignmentOptions": {
275
294
  "location": "import",
276
- "path": "../ic-pagination/ic-pagination.types",
277
- "id": "src/components/ic-pagination/ic-pagination.types.ts::IcPaginationAlignmentOptions"
295
+ "path": "@ukic/web-components/dist/types/components/ic-pagination/ic-pagination.types",
296
+ "id": "../web-components/dist/types/components/ic-pagination/ic-pagination.types.d.ts::IcPaginationAlignmentOptions"
278
297
  }
279
298
  }
280
299
  },
@@ -312,7 +331,7 @@ export class PaginationBar {
312
331
  "reflect": false,
313
332
  "defaultValue": "\"default\""
314
333
  },
315
- "itemLabel": {
334
+ "rangeItemLabel": {
316
335
  "type": "string",
317
336
  "mutable": false,
318
337
  "complexType": {
@@ -324,15 +343,15 @@ export class PaginationBar {
324
343
  "optional": true,
325
344
  "docs": {
326
345
  "tags": [],
327
- "text": "The label which will be used in place of 'items' if paginationType is data. Should be capitalised."
346
+ "text": "The label which will be used in place of 'items' if type is data. Should be capitalised."
328
347
  },
329
- "attribute": "item-label",
348
+ "attribute": "range-item-label",
330
349
  "reflect": false,
331
350
  "defaultValue": "\"Item\""
332
351
  },
333
352
  "itemsPerPageOptions": {
334
353
  "type": "unknown",
335
- "mutable": true,
354
+ "mutable": false,
336
355
  "complexType": {
337
356
  "original": "{\n label: string;\n value: string;\n }[]",
338
357
  "resolved": "{ label: string; value: string; }[]",
@@ -345,17 +364,17 @@ export class PaginationBar {
345
364
  "text": "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."
346
365
  }
347
366
  },
348
- "paginationControl": {
367
+ "type": {
349
368
  "type": "string",
350
369
  "mutable": false,
351
370
  "complexType": {
352
- "original": "IcPaginationControlTypes",
371
+ "original": "IcPaginationTypes",
353
372
  "resolved": "\"complex\" | \"simple\"",
354
373
  "references": {
355
- "IcPaginationControlTypes": {
374
+ "IcPaginationTypes": {
356
375
  "location": "import",
357
- "path": "../ic-pagination/ic-pagination.types",
358
- "id": "src/components/ic-pagination/ic-pagination.types.ts::IcPaginationControlTypes"
376
+ "path": "@ukic/web-components/dist/types/components/ic-pagination/ic-pagination.types",
377
+ "id": "../web-components/dist/types/components/ic-pagination/ic-pagination.types.d.ts::IcPaginationTypes"
359
378
  }
360
379
  }
361
380
  },
@@ -365,21 +384,21 @@ export class PaginationBar {
365
384
  "tags": [],
366
385
  "text": "Whether the displayed pagination is simple or complex."
367
386
  },
368
- "attribute": "pagination-control",
387
+ "attribute": "type",
369
388
  "reflect": false,
370
389
  "defaultValue": "\"simple\""
371
390
  },
372
- "paginationType": {
391
+ "rangeLabelType": {
373
392
  "type": "string",
374
393
  "mutable": false,
375
394
  "complexType": {
376
- "original": "IcPaginationTypes",
395
+ "original": "IcPaginationLabelTypes",
377
396
  "resolved": "\"data\" | \"page\"",
378
397
  "references": {
379
- "IcPaginationTypes": {
398
+ "IcPaginationLabelTypes": {
380
399
  "location": "import",
381
- "path": "../ic-pagination/ic-pagination.types",
382
- "id": "src/components/ic-pagination/ic-pagination.types.ts::IcPaginationTypes"
400
+ "path": "@ukic/web-components/dist/types/components/ic-pagination/ic-pagination.types",
401
+ "id": "../web-components/dist/types/components/ic-pagination/ic-pagination.types.d.ts::IcPaginationLabelTypes"
383
402
  }
384
403
  }
385
404
  },
@@ -389,7 +408,7 @@ export class PaginationBar {
389
408
  "tags": [],
390
409
  "text": "Whether total number of items and current item range or total number of pages and current page is displayed."
391
410
  },
392
- "attribute": "pagination-type",
411
+ "attribute": "range-label-type",
393
412
  "reflect": false,
394
413
  "defaultValue": "\"page\""
395
414
  },
@@ -405,7 +424,7 @@ export class PaginationBar {
405
424
  "optional": true,
406
425
  "docs": {
407
426
  "tags": [],
408
- "text": "The label which will be used in place of 'Page' if paginationType is page. Should be capitalised."
427
+ "text": "The label which will be used in place of 'Page' if rangeLabelType is page. Should be capitalised."
409
428
  },
410
429
  "attribute": "page-label",
411
430
  "reflect": false,
@@ -429,7 +448,7 @@ export class PaginationBar {
429
448
  "reflect": false,
430
449
  "defaultValue": "false"
431
450
  },
432
- "showItemsPerPage": {
451
+ "hideRangeLabel": {
433
452
  "type": "boolean",
434
453
  "mutable": false,
435
454
  "complexType": {
@@ -441,11 +460,11 @@ export class PaginationBar {
441
460
  "optional": true,
442
461
  "docs": {
443
462
  "tags": [],
444
- "text": "If `true`, the number of total items and current item range or number of total pages and current page should be displayed."
463
+ "text": "If `true`, the number of total items and current item range or number of total pages and current page will be hidden."
445
464
  },
446
- "attribute": "show-items-per-page",
465
+ "attribute": "hide-range-label",
447
466
  "reflect": false,
448
- "defaultValue": "true"
467
+ "defaultValue": "false"
449
468
  },
450
469
  "showItemsPerPageControl": {
451
470
  "type": "boolean",
@@ -487,6 +506,7 @@ export class PaginationBar {
487
506
  static get states() {
488
507
  return {
489
508
  "currentPage": {},
509
+ "displayedItemsPerPageOptions": {},
490
510
  "inputError": {},
491
511
  "itemsPerPage": {},
492
512
  "lowerBound": {},
@@ -530,6 +550,15 @@ export class PaginationBar {
530
550
  }];
531
551
  }
532
552
  static get elementRef() { return "el"; }
553
+ static get watchers() {
554
+ return [{
555
+ "propName": "itemsPerPageOptions",
556
+ "methodName": "watchItemsPerPageOptionsHandler"
557
+ }, {
558
+ "propName": "totalItems",
559
+ "methodName": "watchTotalItemsHandler"
560
+ }];
561
+ }
533
562
  static get listeners() {
534
563
  return [{
535
564
  "name": "icPageChange",
@@ -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} from \"@stencil/core\";\nimport { IcThemeForeground } from \"@ukic/web-components/dist/types/interface\";\nimport { checkResizeObserver } from \"../../utils/helpers\";\nimport {\n IcPaginationAlignmentOptions,\n IcPaginationControlTypes,\n IcPaginationTypes,\n} from \"../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 PAGINATION = \"ic-pagination\";\n private TEXT_FIELD = \"ic-text-field\";\n private TOOLTIP = \"ic-tooltip\";\n private PAGE_INPUT_FIELD_ID = \"go-to-page-input\";\n\n private INVALID_PAGE_ERROR = \"Please enter a valid page\";\n private NAN_ERROR = \"Please enter a number\";\n\n private resizeObserver: ResizeObserver = null;\n private paginationBarEl: HTMLElement;\n\n @Element() el: HTMLIcPaginationBarElement;\n\n @State() currentPage: number = 1;\n\n @State() inputError: string = \"Please enter a valid page\";\n\n @State() itemsPerPage: string;\n\n @State() lowerBound: number = 1;\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 label which will be used in place of 'items' if paginationType is data. Should be capitalised.\n */\n @Prop() itemLabel?: string = \"Item\";\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({ mutable: true }) itemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n /**\n * Whether the displayed pagination is simple or complex.\n */\n @Prop() paginationControl?: IcPaginationControlTypes = \"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() paginationType?: IcPaginationTypes = \"page\";\n\n /**\n * The label which will be used in place of 'Page' if paginationType is page. Should be capitalised.\n */\n @Prop() pageLabel?: string = \"Page\";\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 should be displayed.\n */\n @Prop() showItemsPerPage?: boolean = true;\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 /**\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 if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n if (\n this.itemsPerPageOptions === undefined ||\n this.itemsPerPageOptions === null\n ) {\n this.setDefaultItemsPerPageOptions();\n }\n this.trimItemsPerPageOptions();\n this.setDefaultItemsPerPage();\n this.setNumberPages();\n this.setUpperBound();\n }\n\n componentDidLoad(): void {\n this.paginationWidth = this.paginationBarEl.clientWidth;\n checkResizeObserver(this.runResizeObserver);\n this.setGoToPageInputStyles();\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 const select = this.el.shadowRoot.querySelector(\"ic-select\");\n const value = select.value;\n this.itemsPerPage = value;\n this.setNumberPages();\n this.setUpperBound();\n const pagination = this.el.shadowRoot.querySelector(\n this.PAGINATION\n ) as HTMLIcPaginationElement;\n if (this.currentPage > this.totalPages) {\n pagination.setCurrentPage(this.totalPages);\n this.currentPage = this.totalPages;\n }\n this.icItemsPerPageChange.emit({ value: Number(this.itemsPerPage) });\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private changePage = (page: number) => {\n this.currentPage = page;\n this.lowerBound =\n page !== 1 ? (page - 1) * Number(this.itemsPerPage) + 1 : page;\n this.setUpperBound();\n };\n\n private goToPage = () => {\n const input = this.el.shadowRoot.querySelector(\n this.TEXT_FIELD\n ) as HTMLIcTextFieldElement;\n const page = Number(input.value);\n const tooltip = this.el.shadowRoot.querySelector(\"ic-tooltip\");\n if (page <= this.totalPages && page > 0) {\n this.changePage(page);\n const pagination = this.el.shadowRoot.querySelector(\n this.PAGINATION\n ) as HTMLIcPaginationElement;\n pagination.setCurrentPage(page);\n this.currentPage = page;\n input.value = \"\";\n this.icPageChange.emit({ value: page });\n tooltip.displayTooltip(false, false);\n input.validationStatus = \"\";\n } else {\n this.inputError = this.INVALID_PAGE_ERROR;\n input.validationStatus = \"error\";\n input.setFocus();\n }\n };\n\n private handleBlur = () => {\n const textField = this.el.shadowRoot?.querySelector(\n this.TEXT_FIELD\n ) as HTMLIcTextFieldElement;\n const tooltip = this.el.shadowRoot?.querySelector(\n this.TOOLTIP\n ) as HTMLIcTooltipElement;\n if (\n (Number(textField.value) <= this.totalPages &&\n Number(textField.value) > 0) ||\n textField.value === \"\"\n ) {\n textField.validationStatus = \"\";\n }\n tooltip.displayTooltip(false, false);\n };\n\n private handleFocus = () => {\n const textField = this.el.shadowRoot?.querySelector(\n this.TEXT_FIELD\n ) as HTMLIcTextFieldElement;\n const tooltip = this.el.shadowRoot?.querySelector(\n this.TOOLTIP\n ) as HTMLIcTooltipElement;\n if (textField.validationStatus === \"error\") {\n tooltip.displayTooltip(true, true);\n }\n };\n\n private handleInputChange = () => {\n const tooltip = this.el.shadowRoot.querySelector(\n this.TOOLTIP\n ) as HTMLIcTooltipElement;\n const textField = this.el.shadowRoot.querySelector(\n this.TEXT_FIELD\n ) as HTMLIcTextFieldElement;\n const inputValue = parseInt(textField.value);\n\n if (inputValue > this.totalPages || inputValue <= 0) {\n this.inputError = this.INVALID_PAGE_ERROR;\n tooltip.displayTooltip(true, true);\n textField.validationStatus = \"error\";\n textField.focus();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n const tooltip = this.el.shadowRoot.querySelector(\n this.TOOLTIP\n ) as HTMLIcTooltipElement;\n const textField = this.el.shadowRoot.querySelector(\n this.TEXT_FIELD\n ) as HTMLIcTextFieldElement;\n\n if (ev.key === \"Enter\") {\n if (textField.validationStatus === \"error\") {\n tooltip.displayTooltip(true, true);\n } else {\n this.goToPage();\n }\n } else {\n tooltip.displayTooltip(false, false);\n textField.validationStatus = \"\";\n }\n };\n\n private handleKeyUp = (ev: KeyboardEvent) => {\n const tooltip = this.el.shadowRoot.querySelector(\n this.TOOLTIP\n ) as HTMLIcTooltipElement;\n const textField = this.el.shadowRoot.querySelector(\n this.TEXT_FIELD\n ) as HTMLIcTextFieldElement;\n const inputValue = parseInt(textField.value);\n\n if (\n Number.isNaN(inputValue) &&\n ev.key !== \"Backspace\" &&\n ev.key !== \"Enter\" &&\n ev.key !== \"Tab\" &&\n ev.key !== \"Shift\"\n ) {\n this.inputError = this.NAN_ERROR;\n tooltip.displayTooltip(true, false);\n textField.validationStatus = \"error\";\n }\n };\n\n private paginationShouldWrap = () => {\n const pagination = this.el.shadowRoot.querySelector(\n this.PAGINATION\n ) as HTMLIcPaginationElement;\n if (this.paginationControl === \"simple\") {\n if (pagination.clientHeight > 63) {\n this.paginationWrapped = true;\n } else {\n this.paginationWrapped = false;\n }\n }\n };\n\n private resizeObserverCallback = (currSize: number) => {\n if (\n currSize - this.paginationWidth > 50 ||\n currSize - this.paginationWidth < -50\n ) {\n this.paginationWidth = currSize;\n this.paginationShouldWrap();\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = this.paginationBarEl.clientWidth;\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.paginationBarEl);\n };\n\n private setDefaultItemsPerPage = () => {\n this.itemsPerPage = this.itemsPerPageOptions[0].value;\n };\n\n private setDefaultItemsPerPageOptions = () => {\n this.itemsPerPageOptions =\n this.totalItems <= 100\n ? [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"All\", value: String(this.totalItems) },\n ]\n : [\n { label: \"25\", value: \"25\" },\n { label: \"100\", value: \"100\" },\n { label: \"1000\", value: \"1000\" },\n { label: \"All\", value: String(this.totalItems) },\n ];\n };\n\n private setGoToPageInputStyles = () => {\n const textField = this.el.shadowRoot?.querySelector(\n `.${this.PAGE_INPUT_FIELD_ID}`\n );\n if (textField !== undefined) {\n const input = textField?.shadowRoot?.querySelector(\"input\");\n if (input !== undefined) {\n input.style.textAlign = \"center\";\n input.style.padding = \"0\";\n }\n }\n };\n\n private setNumberPages = () => {\n this.totalPages = Math.ceil(this.totalItems / Number(this.itemsPerPage));\n };\n\n private setUpperBound = () => {\n this.upperBound = Math.min(\n this.lowerBound + Number(this.itemsPerPage) - 1,\n this.totalItems\n );\n };\n\n private trimItemsPerPageOptions = () => {\n this.itemsPerPageOptions = this.itemsPerPageOptions.slice(0, 3);\n this.itemsPerPageOptions.push({\n label: \"All\",\n value: String(this.totalItems),\n });\n\n for (let i = 0; i < this.itemsPerPageOptions.length - 1; i++) {\n if (this.totalItems <= Number(this.itemsPerPageOptions[i].value)) {\n this.itemsPerPageOptions.splice(\n i,\n this.itemsPerPageOptions.length - (i + 1)\n );\n }\n }\n };\n\n render() {\n const {\n appearance,\n alignment,\n itemsPerPageOptions,\n PAGE_INPUT_FIELD_ID,\n paginationControl,\n paginationType,\n showItemsPerPage,\n showItemsPerPageControl,\n showGoToPageControl,\n } = this;\n\n const focusElFromLabel = (el: \"ic-select\" | \"ic-text-field\") => {\n this.paginationBarEl.querySelector(el)?.setFocus();\n };\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 {(showItemsPerPage || 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={() => focusElFromLabel(\"ic-select\")}\n >\n {this.itemLabel}s per {this.pageLabel.toLowerCase()}\n </ic-typography>\n <ic-select\n small\n label=\"items-per-page-input\"\n class=\"items-per-page-input\"\n hideLabel\n options={itemsPerPageOptions}\n value={this.itemsPerPage}\n onIcChange={() => this.changeItemsPerPage()}\n ></ic-select>\n </div>\n )}\n {showItemsPerPage && paginationType === \"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.lowerBound} - {this.upperBound} of {this.totalItems}{\" \"}\n {this.itemLabel.toLowerCase()}\n {this.totalItems > 1 ? \"s\" : \"\"}\n </ic-typography>\n ) : (\n showItemsPerPage && (\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 {this.pageLabel} {this.currentPage} of {this.totalPages}\n </ic-typography>\n )\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={paginationControl}\n pages={this.totalPages}\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={() => focusElFromLabel(\"ic-text-field\")}\n >\n Go to {this.pageLabel.toLowerCase()}\n </ic-typography>\n <ic-tooltip\n label={this.inputError}\n target={`#${PAGE_INPUT_FIELD_ID}`}\n disableHover\n disableClick\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={(ev: KeyboardEvent) => this.handleKeydown(ev)}\n onKeyUp={(ev: KeyboardEvent) => this.handleKeyUp(ev)}\n onInput={() => this.handleInputChange()}\n max={this.totalPages}\n min=\"1\"\n validationInlineInternal\n onBlur={() => this.handleBlur()}\n onFocus={() => this.handleFocus()}\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 } 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 private NAN_ERROR = \"Please enter a number\";\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() 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() lowerBound: number = 1;\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 label which will be used in place of 'items' if type is data. Should be capitalised.\n */\n @Prop() rangeItemLabel?: string = \"Item\";\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(): void {\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 label which will be used in place of 'Page' if rangeLabelType is page. Should be capitalised.\n */\n @Prop() pageLabel?: string = \"Page\";\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 if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.setPaginationBarContent();\n }\n\n componentDidLoad(): void {\n this.paginationWidth = this.paginationBarEl.clientWidth;\n checkResizeObserver(this.runResizeObserver);\n this.setGoToPageInputStyles();\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 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 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 textField = this.pageInputEl;\n const inputValue = parseInt(textField.value);\n\n if (inputValue > this.totalPages || inputValue <= 0) {\n this.setInputError(textField, this.INVALID_PAGE_ERROR);\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n const tooltip = this.pageInputTooltipEl;\n const textField = this.pageInputEl;\n\n if (ev.key === \"Enter\") {\n if (textField.validationStatus === \"error\") {\n tooltip.displayTooltip(true, true);\n } else {\n this.goToPage();\n }\n } else {\n tooltip.displayTooltip(false, false);\n textField.validationStatus = \"\";\n }\n };\n\n private handleKeyUp = (ev: KeyboardEvent) => {\n const textField = this.pageInputEl;\n const inputValue = parseInt(textField.value);\n\n if (\n Number.isNaN(inputValue) &&\n ev.key !== \"Backspace\" &&\n ev.key !== \"Enter\" &&\n ev.key !== \"Tab\" &&\n ev.key !== \"Shift\"\n ) {\n this.setInputError(textField, this.NAN_ERROR, false);\n this.pageInputTooltipEl.displayTooltip(true, false);\n }\n };\n\n private paginationShouldWrap = () => {\n if (this.type === \"simple\") {\n if (this.paginationEl.clientHeight > 63) {\n this.paginationWrapped = true;\n } else {\n this.paginationWrapped = false;\n }\n }\n };\n\n private resizeObserverCallback = (currSize: number) => {\n if (\n currSize - this.paginationWidth > 50 ||\n currSize - this.paginationWidth < -50\n ) {\n this.paginationWidth = currSize;\n this.paginationShouldWrap();\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = this.paginationBarEl.clientWidth;\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.paginationBarEl);\n };\n\n private setDisplayedItemsPerPageOptions = () => {\n if (\n this.itemsPerPageOptions === undefined ||\n this.itemsPerPageOptions === null\n ) {\n this.displayedItemsPerPageOptions =\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 } else {\n this.displayedItemsPerPageOptions = this.itemsPerPageOptions.slice(0, 3);\n }\n };\n\n private setGoToPageInputStyles = () => {\n const textField = this.el.shadowRoot?.querySelector(\n `.${this.PAGE_INPUT_FIELD_ID}`\n );\n if (textField !== undefined) {\n const input = textField?.shadowRoot?.querySelector(\"input\");\n if (input !== undefined) {\n input.style.textAlign = \"center\";\n input.style.padding = \"0\";\n }\n }\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.icItemsPerPageChange.emit({ value: this.itemsPerPage });\n }\n this.setNumberPages();\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 setNumberPages = () => {\n const numItemsPerPage = this.itemsPerPage;\n if (this.totalItems <= numItemsPerPage) {\n this.totalPages = 1;\n } else {\n this.totalPages = Math.ceil(this.totalItems / numItemsPerPage);\n }\n };\n\n private setPaginationBarContent = (): void => {\n this.setDisplayedItemsPerPageOptions();\n this.trimItemsPerPageOptions();\n this.updateItemsPerPage();\n };\n\n private setUpperBound = () => {\n this.upperBound = Math.min(\n this.lowerBound + this.itemsPerPage - 1,\n this.totalItems\n );\n };\n\n private trimItemsPerPageOptions = () => {\n this.displayedItemsPerPageOptions.push({\n label: \"All\",\n value: String(this.totalItems),\n });\n\n for (let i = 0; i < this.displayedItemsPerPageOptions.length - 1; i++) {\n if (\n this.totalItems <= Number(this.displayedItemsPerPageOptions[i].value)\n ) {\n this.displayedItemsPerPageOptions.splice(\n i,\n this.displayedItemsPerPageOptions.length - (i + 1)\n );\n }\n }\n };\n\n private updateItemsPerPage = () => {\n let newItemsPerPage = this.itemsPerPage;\n let updated = false;\n let lastOptionValue = 0;\n for (let i = 0; i < this.displayedItemsPerPageOptions.length; i++) {\n lastOptionValue = Number(this.displayedItemsPerPageOptions[i].value);\n if (this.itemsPerPage <= lastOptionValue) {\n newItemsPerPage = lastOptionValue;\n updated = true;\n i = this.displayedItemsPerPageOptions.length;\n }\n }\n if (!updated && this.itemsPerPage > lastOptionValue) {\n newItemsPerPage = lastOptionValue;\n }\n this.setItemsPerPage(newItemsPerPage);\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 } = this;\n\n const focusElFromLabel = (el: \"ic-select\" | \"ic-text-field\") => {\n this.paginationBarEl.querySelector(el)?.setFocus();\n };\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={() => focusElFromLabel(\"ic-select\")}\n >\n {this.rangeItemLabel}s per {this.pageLabel.toLowerCase()}\n </ic-typography>\n <ic-select\n small\n label=\"items-per-page-input\"\n class=\"items-per-page-input\"\n hideLabel\n options={displayedItemsPerPageOptions}\n value={this.itemsPerPage.toString()}\n onIcChange={() => this.changeItemsPerPage()}\n ref={(el: HTMLIcSelectElement) => (this.pageDropdownEl = el)}\n ></ic-select>\n </div>\n )}\n {!hideRangeLabel && 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 &&\n `0 ${this.rangeItemLabel.toLowerCase()}s`}\n {this.upperBound > 0 &&\n `${this.lowerBound} - ${this.upperBound} of ${\n this.totalItems\n } ${this.rangeItemLabel.toLowerCase()}${\n this.totalItems > 1 ? \"s\" : \"\"\n }`}\n </ic-typography>\n ) : (\n !hideRangeLabel && (\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 {this.pageLabel} {this.currentPage} of {this.totalPages}\n </ic-typography>\n )\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={this.totalPages}\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={() => focusElFromLabel(\"ic-text-field\")}\n >\n Go to {this.pageLabel.toLowerCase()}\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={(ev: KeyboardEvent) => this.handleKeydown(ev)}\n onKeyUp={(ev: KeyboardEvent) => this.handleKeyUp(ev)}\n onInput={() => this.handleInputChange()}\n max={this.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"]}