@infineon/infineon-design-system-stencil 39.4.4--canary.1723.e4323cb727c1b785c590fb74fe461a95eae530fd.0 → 39.4.4--canary.2134.cd83647d2771e1e22b8c6c80a0df75f24ca168b6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/dist/cjs/{icons-BOElayqb.js → icons-B_27O3dI.js} +5 -20
  2. package/dist/cjs/icons-B_27O3dI.js.map +1 -0
  3. package/dist/cjs/ifx-action-list-item.cjs.entry.js +1 -2
  4. package/dist/cjs/ifx-action-list-item.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ifx-action-list-item.entry.cjs.js.map +1 -1
  6. package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -2
  7. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ifx-basic-table.entry.cjs.js.map +1 -1
  9. package/dist/cjs/ifx-button.ifx-checkbox.ifx-chip.ifx-chip-item.ifx-icon.ifx-icon-button.ifx-indicator.ifx-pagination.ifx-select.ifx-table.entry.cjs.js.map +1 -0
  10. package/dist/cjs/ifx-button_10.cjs.entry.js +9551 -0
  11. package/dist/cjs/ifx-button_10.cjs.entry.js.map +1 -0
  12. package/dist/cjs/ifx-icons-preview.cjs.entry.js +1 -1
  13. package/dist/cjs/ifx-link.cjs.entry.js +1 -2
  14. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-link.entry.cjs.js.map +1 -1
  16. package/dist/cjs/ifx-search-field.cjs.entry.js +1 -2
  17. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ifx-search-field.entry.cjs.js.map +1 -1
  19. package/dist/cjs/ifx-spinner.ifx-text-field.entry.cjs.js.map +1 -1
  20. package/dist/cjs/ifx-spinner_2.cjs.entry.js +1 -2
  21. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  22. package/dist/cjs/index-Dc5gCGlQ.js +2 -30
  23. package/dist/cjs/{index-CVw4GUo6.js → index-DihxupoM.js} +7 -4
  24. package/dist/{esm/index-Bt32KzDW.js.map → cjs/index-DihxupoM.js.map} +1 -1
  25. package/dist/cjs/infineon-design-system-stencil.cjs.js +1 -1
  26. package/dist/cjs/loader.cjs.js +1 -1
  27. package/dist/collection/components/table-advanced-version/table.js +87 -38
  28. package/dist/collection/components/table-advanced-version/table.js.map +1 -1
  29. package/dist/components/ifx-accordion-item.js +1 -1
  30. package/dist/components/ifx-alert.js +1 -1
  31. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  32. package/dist/components/ifx-checkbox-group.js +1 -1
  33. package/dist/components/ifx-checkbox.js +1 -1
  34. package/dist/components/ifx-chip-item.js +1 -1
  35. package/dist/components/ifx-chip.js +1 -1
  36. package/dist/components/ifx-date-picker.js +1 -1
  37. package/dist/components/ifx-dropdown-item.js +1 -1
  38. package/dist/components/ifx-dropdown-trigger-button.js +1 -1
  39. package/dist/components/ifx-faq.js +2 -2
  40. package/dist/components/ifx-file-upload.js +2 -2
  41. package/dist/components/ifx-filter-accordion.js +1 -1
  42. package/dist/components/ifx-filter-bar.js +1 -1
  43. package/dist/components/ifx-filter-search.js +2 -2
  44. package/dist/components/ifx-icon-button.js +1 -1
  45. package/dist/components/ifx-icon.js +1 -1
  46. package/dist/components/ifx-icons-preview.js +3 -3
  47. package/dist/components/ifx-list-entry.js +2 -2
  48. package/dist/components/ifx-list.js +1 -1
  49. package/dist/components/ifx-modal.js +2 -2
  50. package/dist/components/ifx-multiselect-option.js +1 -1
  51. package/dist/components/ifx-multiselect.js +1 -1
  52. package/dist/components/ifx-navbar-item.js +1 -1
  53. package/dist/components/ifx-navbar.js +1 -1
  54. package/dist/components/ifx-notification.js +1 -1
  55. package/dist/components/ifx-overview-table.js +1 -1
  56. package/dist/components/ifx-pagination.js +1 -1
  57. package/dist/components/ifx-radio-button-group.js +1 -1
  58. package/dist/components/ifx-search-bar.js +2 -2
  59. package/dist/components/ifx-search-field.js +1 -1
  60. package/dist/components/ifx-segment.js +1 -1
  61. package/dist/components/ifx-segmented-control.js +1 -1
  62. package/dist/components/ifx-select.js +1 -1
  63. package/dist/components/ifx-set-filter.js +7 -7
  64. package/dist/components/ifx-sidebar-item.js +1 -1
  65. package/dist/components/ifx-sidebar.js +1 -1
  66. package/dist/components/ifx-slider.js +1 -1
  67. package/dist/components/ifx-step.js +1 -1
  68. package/dist/components/ifx-table.js +93 -44
  69. package/dist/components/ifx-table.js.map +1 -1
  70. package/dist/components/ifx-tabs.js +2 -2
  71. package/dist/components/ifx-template.js +1 -1
  72. package/dist/components/ifx-templates-ui.js +5 -5
  73. package/dist/components/ifx-text-field.js +1 -1
  74. package/dist/components/ifx-tooltip.js +1 -1
  75. package/dist/components/ifx-tree-view-item.js +2 -2
  76. package/dist/components/{p-DD80oicI.js → p-4wfkxGlJ.js} +4 -4
  77. package/dist/components/{p-DD80oicI.js.map → p-4wfkxGlJ.js.map} +1 -1
  78. package/dist/components/{p-DkRZn47g.js → p-BG0cmSVP.js} +5 -5
  79. package/dist/components/{p-DkRZn47g.js.map → p-BG0cmSVP.js.map} +1 -1
  80. package/dist/components/{p-DlFdNq4F.js → p-BQj9WQQe.js} +3 -3
  81. package/dist/components/{p-DlFdNq4F.js.map → p-BQj9WQQe.js.map} +1 -1
  82. package/dist/components/{p-CbDS7fbn.js → p-CRSbKJxa.js} +3 -3
  83. package/dist/components/{p-CbDS7fbn.js.map → p-CRSbKJxa.js.map} +1 -1
  84. package/dist/components/{p-CIw3efEg.js → p-CcGE_f9F.js} +5 -5
  85. package/dist/components/{p-CIw3efEg.js.map → p-CcGE_f9F.js.map} +1 -1
  86. package/dist/components/{p-BVJl-hTu.js → p-CnXEcTdH.js} +3 -3
  87. package/dist/components/{p-BVJl-hTu.js.map → p-CnXEcTdH.js.map} +1 -1
  88. package/dist/components/{p-DX0ddaB9.js → p-DFInpODO.js} +3 -3
  89. package/dist/components/{p-DX0ddaB9.js.map → p-DFInpODO.js.map} +1 -1
  90. package/dist/components/{p-BnMuxXaP.js → p-DHLzWSzN.js} +3 -3
  91. package/dist/components/{p-BnMuxXaP.js.map → p-DHLzWSzN.js.map} +1 -1
  92. package/dist/components/{p-CKT_EeVj.js → p-DNZFFt4T.js} +3 -3
  93. package/dist/components/{p-CKT_EeVj.js.map → p-DNZFFt4T.js.map} +1 -1
  94. package/dist/components/{p-CLqzdlSR.js → p-DRqwZrk0.js} +3 -3
  95. package/dist/components/{p-CLqzdlSR.js.map → p-DRqwZrk0.js.map} +1 -1
  96. package/dist/components/{p-B2e3orJn.js → p-DhNY6ZGA.js} +5 -20
  97. package/dist/components/p-DhNY6ZGA.js.map +1 -0
  98. package/dist/components/{p-DCkKdm37.js → p-Djr4amRx.js} +4 -4
  99. package/dist/components/{p-DCkKdm37.js.map → p-Djr4amRx.js.map} +1 -1
  100. package/dist/components/{p-CYCBkVYd.js → p-F-WOWp_H.js} +3 -3
  101. package/dist/components/{p-CYCBkVYd.js.map → p-F-WOWp_H.js.map} +1 -1
  102. package/dist/components/{p-Enb5HFzA.js → p-esRQWwdS.js} +4 -4
  103. package/dist/components/{p-Enb5HFzA.js.map → p-esRQWwdS.js.map} +1 -1
  104. package/dist/components/{p-B2vrW4WM.js → p-v3vmQuAS.js} +3 -3
  105. package/dist/components/{p-B2vrW4WM.js.map → p-v3vmQuAS.js.map} +1 -1
  106. package/dist/esm/{icons-CjdLRP3d.js → icons-CmdmgBUp.js} +5 -20
  107. package/dist/esm/icons-CmdmgBUp.js.map +1 -0
  108. package/dist/esm/ifx-action-list-item.entry.js +1 -2
  109. package/dist/esm/ifx-action-list-item.entry.js.map +1 -1
  110. package/dist/esm/ifx-basic-table.entry.js +1 -2
  111. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  112. package/dist/esm/ifx-button.ifx-checkbox.ifx-chip.ifx-chip-item.ifx-icon.ifx-icon-button.ifx-indicator.ifx-pagination.ifx-select.ifx-table.entry.js.map +1 -0
  113. package/dist/esm/ifx-button_10.entry.js +9540 -0
  114. package/dist/esm/ifx-button_10.entry.js.map +1 -0
  115. package/dist/esm/ifx-icons-preview.entry.js +1 -1
  116. package/dist/esm/ifx-link.entry.js +1 -2
  117. package/dist/esm/ifx-link.entry.js.map +1 -1
  118. package/dist/esm/ifx-search-field.entry.js +1 -2
  119. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  120. package/dist/esm/ifx-spinner.ifx-text-field.entry.js.map +1 -1
  121. package/dist/esm/ifx-spinner_2.entry.js +1 -2
  122. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  123. package/dist/esm/{index-Bt32KzDW.js → index-Beav1bNT.js} +6 -4
  124. package/dist/{cjs/index-CVw4GUo6.js.map → esm/index-Beav1bNT.js.map} +1 -1
  125. package/dist/esm/index-PqnYwNKt.js +2 -30
  126. package/dist/esm/infineon-design-system-stencil.js +1 -1
  127. package/dist/esm/loader.js +1 -1
  128. package/dist/infineon-design-system-stencil/ifx-action-list-item.entry.esm.js.map +1 -1
  129. package/dist/infineon-design-system-stencil/ifx-basic-table.entry.esm.js.map +1 -1
  130. package/dist/infineon-design-system-stencil/ifx-button.ifx-checkbox.ifx-chip.ifx-chip-item.ifx-icon.ifx-icon-button.ifx-indicator.ifx-pagination.ifx-select.ifx-table.entry.esm.js.map +1 -0
  131. package/dist/infineon-design-system-stencil/ifx-link.entry.esm.js.map +1 -1
  132. package/dist/infineon-design-system-stencil/ifx-search-field.entry.esm.js.map +1 -1
  133. package/dist/infineon-design-system-stencil/ifx-spinner.ifx-text-field.entry.esm.js.map +1 -1
  134. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  135. package/dist/infineon-design-system-stencil/p-1b5dce92.entry.js +2 -0
  136. package/dist/infineon-design-system-stencil/{p-6e115707.entry.js.map → p-1b5dce92.entry.js.map} +1 -1
  137. package/dist/infineon-design-system-stencil/p-3f6242bc.entry.js +3 -0
  138. package/dist/infineon-design-system-stencil/p-3f6242bc.entry.js.map +1 -0
  139. package/dist/infineon-design-system-stencil/p-646620f9.entry.js +2 -0
  140. package/dist/infineon-design-system-stencil/{p-fcae5dc1.entry.js.map → p-646620f9.entry.js.map} +1 -1
  141. package/dist/infineon-design-system-stencil/{p-f85c9454.entry.js → p-6eb6af05.entry.js} +2 -2
  142. package/dist/infineon-design-system-stencil/p-6fd710a6.entry.js +2 -0
  143. package/dist/infineon-design-system-stencil/{p-169f26ae.entry.js.map → p-6fd710a6.entry.js.map} +1 -1
  144. package/dist/infineon-design-system-stencil/p-7b705420.entry.js +2 -0
  145. package/dist/infineon-design-system-stencil/{p-4fba0543.entry.js.map → p-7b705420.entry.js.map} +1 -1
  146. package/dist/infineon-design-system-stencil/p-81f0d6ad.entry.js +2 -0
  147. package/dist/infineon-design-system-stencil/{p-3d77ef02.entry.js.map → p-81f0d6ad.entry.js.map} +1 -1
  148. package/dist/infineon-design-system-stencil/{p-DMLRPGid.js → p-Beav1bNT.js} +3 -3
  149. package/dist/infineon-design-system-stencil/{p-DMLRPGid.js.map → p-Beav1bNT.js.map} +1 -1
  150. package/dist/infineon-design-system-stencil/p-CmdmgBUp.js +2 -0
  151. package/dist/infineon-design-system-stencil/p-CmdmgBUp.js.map +1 -0
  152. package/dist/types/components/table-advanced-version/table.d.ts +1 -0
  153. package/package.json +1 -1
  154. package/dist/cjs/_commonjsHelpers-CFO10eej.js +0 -10
  155. package/dist/cjs/_commonjsHelpers-CFO10eej.js.map +0 -1
  156. package/dist/cjs/icons-BOElayqb.js.map +0 -1
  157. package/dist/cjs/ifx-button.cjs.entry.js +0 -146
  158. package/dist/cjs/ifx-button.cjs.entry.js.map +0 -1
  159. package/dist/cjs/ifx-button.entry.cjs.js.map +0 -1
  160. package/dist/cjs/ifx-checkbox.cjs.entry.js +0 -125
  161. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +0 -1
  162. package/dist/cjs/ifx-checkbox.entry.cjs.js.map +0 -1
  163. package/dist/cjs/ifx-chip.ifx-chip-item.ifx-pagination.entry.cjs.js.map +0 -1
  164. package/dist/cjs/ifx-chip_3.cjs.entry.js +0 -615
  165. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +0 -1
  166. package/dist/cjs/ifx-icon-button.cjs.entry.js +0 -76
  167. package/dist/cjs/ifx-icon-button.cjs.entry.js.map +0 -1
  168. package/dist/cjs/ifx-icon-button.entry.cjs.js.map +0 -1
  169. package/dist/cjs/ifx-icon.cjs.entry.js +0 -127
  170. package/dist/cjs/ifx-icon.cjs.entry.js.map +0 -1
  171. package/dist/cjs/ifx-icon.entry.cjs.js.map +0 -1
  172. package/dist/cjs/ifx-indicator.cjs.entry.js +0 -42
  173. package/dist/cjs/ifx-indicator.cjs.entry.js.map +0 -1
  174. package/dist/cjs/ifx-indicator.entry.cjs.js.map +0 -1
  175. package/dist/cjs/ifx-select.cjs.entry.js +0 -7323
  176. package/dist/cjs/ifx-select.cjs.entry.js.map +0 -1
  177. package/dist/cjs/ifx-select.entry.cjs.js.map +0 -1
  178. package/dist/cjs/ifx-table.cjs.entry.js +0 -1118
  179. package/dist/cjs/ifx-table.cjs.entry.js.map +0 -1
  180. package/dist/cjs/ifx-table.entry.cjs.js.map +0 -1
  181. package/dist/components/p-B2e3orJn.js.map +0 -1
  182. package/dist/esm/_commonjsHelpers-B85MJLTf.js +0 -8
  183. package/dist/esm/_commonjsHelpers-B85MJLTf.js.map +0 -1
  184. package/dist/esm/icons-CjdLRP3d.js.map +0 -1
  185. package/dist/esm/ifx-button.entry.js +0 -144
  186. package/dist/esm/ifx-button.entry.js.map +0 -1
  187. package/dist/esm/ifx-checkbox.entry.js +0 -123
  188. package/dist/esm/ifx-checkbox.entry.js.map +0 -1
  189. package/dist/esm/ifx-chip.ifx-chip-item.ifx-pagination.entry.js.map +0 -1
  190. package/dist/esm/ifx-chip_3.entry.js +0 -611
  191. package/dist/esm/ifx-chip_3.entry.js.map +0 -1
  192. package/dist/esm/ifx-icon-button.entry.js +0 -74
  193. package/dist/esm/ifx-icon-button.entry.js.map +0 -1
  194. package/dist/esm/ifx-icon.entry.js +0 -125
  195. package/dist/esm/ifx-icon.entry.js.map +0 -1
  196. package/dist/esm/ifx-indicator.entry.js +0 -40
  197. package/dist/esm/ifx-indicator.entry.js.map +0 -1
  198. package/dist/esm/ifx-select.entry.js +0 -7321
  199. package/dist/esm/ifx-select.entry.js.map +0 -1
  200. package/dist/esm/ifx-table.entry.js +0 -1116
  201. package/dist/esm/ifx-table.entry.js.map +0 -1
  202. package/dist/infineon-design-system-stencil/ifx-button.entry.esm.js.map +0 -1
  203. package/dist/infineon-design-system-stencil/ifx-checkbox.entry.esm.js.map +0 -1
  204. package/dist/infineon-design-system-stencil/ifx-chip.ifx-chip-item.ifx-pagination.entry.esm.js.map +0 -1
  205. package/dist/infineon-design-system-stencil/ifx-icon-button.entry.esm.js.map +0 -1
  206. package/dist/infineon-design-system-stencil/ifx-icon.entry.esm.js.map +0 -1
  207. package/dist/infineon-design-system-stencil/ifx-indicator.entry.esm.js.map +0 -1
  208. package/dist/infineon-design-system-stencil/ifx-select.entry.esm.js.map +0 -1
  209. package/dist/infineon-design-system-stencil/ifx-table.entry.esm.js.map +0 -1
  210. package/dist/infineon-design-system-stencil/p-169f26ae.entry.js +0 -2
  211. package/dist/infineon-design-system-stencil/p-39561a49.entry.js +0 -2
  212. package/dist/infineon-design-system-stencil/p-39561a49.entry.js.map +0 -1
  213. package/dist/infineon-design-system-stencil/p-3d77ef02.entry.js +0 -2
  214. package/dist/infineon-design-system-stencil/p-4da5a2a5.entry.js +0 -2
  215. package/dist/infineon-design-system-stencil/p-4da5a2a5.entry.js.map +0 -1
  216. package/dist/infineon-design-system-stencil/p-4fba0543.entry.js +0 -2
  217. package/dist/infineon-design-system-stencil/p-5e3d0ff0.entry.js +0 -2
  218. package/dist/infineon-design-system-stencil/p-5e3d0ff0.entry.js.map +0 -1
  219. package/dist/infineon-design-system-stencil/p-5fb3eb8b.entry.js +0 -2
  220. package/dist/infineon-design-system-stencil/p-5fb3eb8b.entry.js.map +0 -1
  221. package/dist/infineon-design-system-stencil/p-6e115707.entry.js +0 -2
  222. package/dist/infineon-design-system-stencil/p-77e54475.entry.js +0 -2
  223. package/dist/infineon-design-system-stencil/p-77e54475.entry.js.map +0 -1
  224. package/dist/infineon-design-system-stencil/p-B85MJLTf.js +0 -2
  225. package/dist/infineon-design-system-stencil/p-B85MJLTf.js.map +0 -1
  226. package/dist/infineon-design-system-stencil/p-CjdLRP3d.js +0 -2
  227. package/dist/infineon-design-system-stencil/p-CjdLRP3d.js.map +0 -1
  228. package/dist/infineon-design-system-stencil/p-a85754a5.entry.js +0 -3
  229. package/dist/infineon-design-system-stencil/p-a85754a5.entry.js.map +0 -1
  230. package/dist/infineon-design-system-stencil/p-abd8bd80.entry.js +0 -2
  231. package/dist/infineon-design-system-stencil/p-abd8bd80.entry.js.map +0 -1
  232. package/dist/infineon-design-system-stencil/p-fcae5dc1.entry.js +0 -2
  233. package/dist/infineon-design-system-stencil/p-ff4cc197.entry.js +0 -2
  234. package/dist/infineon-design-system-stencil/p-ff4cc197.entry.js.map +0 -1
  235. /package/dist/infineon-design-system-stencil/{p-f85c9454.entry.js.map → p-6eb6af05.entry.js.map} +0 -0
@@ -1,611 +0,0 @@
1
- import { r as registerInstance, c as createEvent, h, a as getElement } from './index-PqnYwNKt.js';
2
- import { d as detectFramework, t as trackComponent } from './framework-detection-DcmcuUOA.js';
3
- import { i as isNestedInIfxComponent } from './dom-utils-Bw2fh5LT.js';
4
-
5
- const chipCss = ":root{--ifx-font-family:\"Source Sans 3\", \"Arial, sans-serif\"}:host{display:inline-block}.chip{position:relative}.chip__wrapper{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;border-radius:9999px;background:#FFFFFF;cursor:pointer;transition:border 100ms ease;font:400 0.875rem/1.25rem \"Source Sans 3\"}.chip__wrapper .icon__wrapper{display:flex}.chip__wrapper.outlined,.chip__wrapper.filled-dark,.chip__wrapper.filled-light{outline:2px solid transparent}.chip__wrapper.outlined:focus-visible,.chip__wrapper.filled-dark:focus-visible,.chip__wrapper.filled-light:focus-visible{outline:2px solid #0A8276;outline-offset:2px}.chip__wrapper.outlined.chip__wrapper--opened .wrapper__open-button,.chip__wrapper.filled-dark.chip__wrapper--opened .wrapper__open-button,.chip__wrapper.filled-light.chip__wrapper--opened .wrapper__open-button{transform:rotate(-180deg)}.chip__wrapper.outlined.chip__wrapper--selected .wrapper__label .label__selected-options,.chip__wrapper.filled-dark.chip__wrapper--selected .wrapper__label .label__selected-options,.chip__wrapper.filled-light.chip__wrapper--selected .wrapper__label .label__selected-options{font:400 0.875rem/1.25rem \"Source Sans 3\"}.chip__wrapper.filled-dark.chip__wrapper--selected:not(.read-only),.chip__wrapper.filled-light.chip__wrapper--selected:not(.read-only){background-color:#0A8276;color:white}.chip__wrapper.filled-dark.chip__wrapper--selected:not(.read-only):hover,.chip__wrapper.filled-light.chip__wrapper--selected:not(.read-only):hover{background-color:#08665C}.chip__wrapper.filled-dark.chip__wrapper--selected:not(.read-only):hover.disabled,.chip__wrapper.filled-light.chip__wrapper--selected:not(.read-only):hover.disabled{background-color:#0A8276}.chip__wrapper.outlined{border:1px solid #8D8786}.chip__wrapper.outlined:hover:not(.read-only){border-color:#575352;background-color:#F7F7F7}.chip__wrapper.outlined:active:not(.read-only){border-color:#575352;background-color:#BFBBBB}.chip__wrapper.outlined.chip__wrapper--opened{border:1px solid #0A8276}.chip__wrapper.outlined.chip__wrapper--selected{outline:3px solid #0A8276;border:1px solid transparent;background-color:white}.chip__wrapper.outlined.chip__wrapper--selected:focus-visible{outline-offset:0px}.chip__wrapper.outlined.chip__wrapper--selected:hover:not(.read-only){outline-color:#08665C}.chip__wrapper.outlined.chip__wrapper--selected.read-only{outline:none;border:1px solid black}.chip__wrapper.outlined.disabled{outline:none;color:#BFBBBB;border:1px solid #BFBBBB}.chip__wrapper.outlined.disabled:hover{outline:none;border-color:#BFBBBB;background-color:white}.chip__wrapper.outlined.read-only{border:1px solid black}.chip__wrapper.outlined.read-only:focus-visible{outline:2px solid #0A8276;outline-offset:2px}.chip__wrapper.filled-dark{background-color:#3C3A39;color:white}.chip__wrapper.filled-dark:hover:not(.chip__wrapper--selected,.disabled,.read-only){background-color:#575352}.chip__wrapper.filled-dark:active:not(.chip__wrapper--selected,.disabled,.read-only){background-color:#8D8786;color:black}.chip__wrapper.filled-dark.disabled{outline:none;color:#BFBBBB}.chip__wrapper.filled-dark.disabled:hover:not(.chip__wrapper--selected){background-color:#3C3A39}.chip__wrapper.filled-dark.chip__wrapper--selected.read-only{border:1px solid #8D8786}.chip__wrapper.filled-dark.read-only{border:1px solid #8D8786}.chip__wrapper.filled-light{background-color:#EEEDED}.chip__wrapper.filled-light:hover:not(.read-only){background-color:#BFBBBB}.chip__wrapper.filled-light:active:not(.read-only){background-color:#8D8786}.chip__wrapper.filled-light.disabled{outline:none;color:#BFBBBB}.chip__wrapper.filled-light.disabled:hover:not(.chip__wrapper--selected){background-color:#EEEDED}.chip__wrapper.filled-light.chip__wrapper--selected.read-only{border:1px solid black}.chip__wrapper.filled-light.read-only{border:1px solid black}.chip__wrapper.chip__wrapper--small{padding:4px 8px;height:24px}.chip__wrapper.chip__wrapper--medium{padding:4px 12px;height:28px}.chip__wrapper.chip__wrapper--large{padding:8px 12px;height:36px}.wrapper__label{display:inline-flex;align-items:center;gap:4px}.wrapper__label .label__selected-options{font:600 0.875rem/1.25rem \"Source Sans 3\"}.wrapper__open-button{display:flex;align-items:center}.wrapper__unselect-button{display:flex;align-items:center}.chip__dropdown{position:absolute;z-index:1;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843);border:1px solid #EEEDED;border-radius:1px;padding:8px 0;min-width:222px;background-color:#FFFFFF}";
6
-
7
- const Chip = class {
8
- constructor(hostRef) {
9
- registerInstance(this, hostRef);
10
- this.ifxChange = createEvent(this, "ifxChange", 7);
11
- this.placeholder = '';
12
- this.size = 'medium';
13
- this.value = undefined;
14
- this.variant = 'single';
15
- this.theme = 'outlined';
16
- this.readOnly = false;
17
- this.disabled = false;
18
- this.icon = "";
19
- this.opened = false;
20
- this.selectedOptions = [];
21
- }
22
- handleValueChange(newValue) {
23
- this.syncSelectedOptionsWithProp(newValue);
24
- }
25
- handleReadOnlyChange(newValue) {
26
- if (newValue) {
27
- this.opened = false;
28
- }
29
- }
30
- closeDropdownOnOutsideClick(event) {
31
- const path = event.composedPath();
32
- const chipWrapper = this.chip.shadowRoot.querySelector('.chip__wrapper');
33
- const chipDropdown = this.chip.shadowRoot.querySelector('.chip__dropdown');
34
- if (!path.includes(chipDropdown) && !path.includes(chipWrapper) && this.opened) {
35
- this.toggleDropdownMenu();
36
- }
37
- }
38
- handleKeyDown(event) {
39
- // override behavior of all keys except Tab. Users should be able to tab out of the component.
40
- if (event.code !== 'Tab') {
41
- event.preventDefault();
42
- }
43
- if (event.target.tagName === 'IFX-CHIP') {
44
- this.handleWrapperKeyDown(event);
45
- }
46
- else if (event.target.tagName === 'IFX-CHIP-ITEM') {
47
- this.handleDropdownKeyDown(event);
48
- }
49
- }
50
- updateSelectedOptions(event) {
51
- const eventDetail = event.detail;
52
- const previousSelection = [...this.selectedOptions];
53
- if (this.variant !== 'multi') {
54
- if (eventDetail.selected) {
55
- this.opened = false;
56
- const chipItems = this.getChipItems();
57
- chipItems.forEach((chipItem) => {
58
- if (chipItem.selected && chipItem !== event.target) {
59
- chipItem.chipState = Object.assign(Object.assign({}, chipItem.chipState), { emitIfxChipItemSelect: false });
60
- chipItem.selected = false;
61
- }
62
- });
63
- this.selectedOptions = [eventDetail];
64
- }
65
- else {
66
- this.selectedOptions = [];
67
- }
68
- this.value = this.selectedOptions[0] ? this.selectedOptions[0].value : undefined;
69
- }
70
- else {
71
- if (eventDetail.selected) {
72
- // Prevent duplicate entries
73
- if (!this.selectedOptions.find(option => option.value === eventDetail.value)) {
74
- this.selectedOptions = [...this.selectedOptions, eventDetail];
75
- }
76
- }
77
- else {
78
- this.selectedOptions = this.selectedOptions.filter((option) => option.value !== eventDetail.value);
79
- }
80
- this.value = this.selectedOptions.map((option) => option.value);
81
- }
82
- if (eventDetail.emitIfxChange) {
83
- this.ifxChange.emit({
84
- previousSelection: previousSelection,
85
- currentSelection: this.selectedOptions,
86
- name: this.placeholder
87
- });
88
- }
89
- }
90
- getChipItems() {
91
- return this.chip.querySelectorAll('ifx-chip-item');
92
- }
93
- getSelectedOptions() {
94
- if (this.variant !== 'multi') {
95
- return this.selectedOptions.map(option => option.label).join('');
96
- }
97
- return this.selectedOptions.slice(0, 2).map(option => option.label).join(', ');
98
- }
99
- toggleDropdownMenu() {
100
- if (this.readOnly)
101
- return;
102
- this.opened = !this.opened;
103
- }
104
- /**
105
- * Focuses the chip item at the specified index.
106
- * @param index the index of the chip item to focus. -1 will focus the last chip item.
107
- */
108
- focusChipItemAt(index = 0) {
109
- this.opened = true;
110
- const chipItems = this.getChipItems();
111
- let item;
112
- if (index === -1) {
113
- item = chipItems.item(chipItems.length - 1);
114
- }
115
- else if (index >= 0 && index < chipItems.length) {
116
- item = chipItems.item(index);
117
- }
118
- else {
119
- console.error(`Invalid index: ${index}`);
120
- return;
121
- }
122
- const shadowItem = item.shadowRoot.querySelector('.chip-item');
123
- if (shadowItem) {
124
- // Delay needed for the shadow item to be rendered.
125
- setTimeout(() => {
126
- shadowItem.focus();
127
- }, 1);
128
- }
129
- }
130
- focusChip() {
131
- const chipWrapper = this.chip.shadowRoot.querySelector('.chip__wrapper');
132
- chipWrapper.focus();
133
- }
134
- handleUnselectButtonClick(event) {
135
- event.stopPropagation();
136
- this.opened = false;
137
- let itemGotUnselected = false;
138
- const chipItems = this.getChipItems();
139
- chipItems.forEach((chipItem) => {
140
- if (chipItem.selected) {
141
- itemGotUnselected = true;
142
- chipItem.chipState = Object.assign(Object.assign({}, chipItem.chipState), { emitIfxChipItemSelect: false });
143
- chipItem.selected = false;
144
- }
145
- });
146
- /* Emit event only if at least one item was unselected. */
147
- if (itemGotUnselected) {
148
- const previousSelection = this.selectedOptions;
149
- this.selectedOptions = [];
150
- this.value = [];
151
- this.ifxChange.emit({
152
- previousSelection: previousSelection,
153
- currentSelection: [],
154
- name: this.placeholder
155
- });
156
- }
157
- }
158
- handleWrapperClick() {
159
- if (!this.readOnly) {
160
- this.toggleDropdownMenu();
161
- }
162
- }
163
- handleWrapperKeyDown(event) {
164
- // Keymap oriented at https://www.w3.org/WAI/ARIA/apg/patterns/combobox/#keyboard_interaction
165
- if (this.readOnly)
166
- return;
167
- if (!this.opened) {
168
- switch (event.code) {
169
- case 'Space':
170
- case 'Enter':
171
- case 'ArrowDown':
172
- this.focusChipItemAt(0);
173
- break;
174
- case 'ArrowUp':
175
- this.focusChipItemAt(-1);
176
- break;
177
- }
178
- }
179
- else {
180
- switch (event.code) {
181
- case 'Escape':
182
- this.opened = false;
183
- this.focusChip();
184
- break;
185
- }
186
- }
187
- }
188
- handleDropdownKeyDown(event) {
189
- let chipitems = this.getChipItems();
190
- let targetIndex = Array.from(chipitems).indexOf(event.target);
191
- if (targetIndex === -1) {
192
- console.error('Target not found in chip items');
193
- return;
194
- }
195
- switch (event.code) {
196
- case 'ArrowDown':
197
- if (targetIndex === chipitems.length - 1)
198
- break;
199
- this.focusChipItemAt(targetIndex + 1);
200
- break;
201
- case 'ArrowUp':
202
- if (targetIndex === 0)
203
- break;
204
- this.focusChipItemAt(targetIndex - 1);
205
- break;
206
- case 'Escape':
207
- this.opened = false;
208
- this.focusChip();
209
- break;
210
- case 'Space':
211
- // selection is handled by the chip-item component
212
- if (this.variant === 'single') {
213
- // only close dropdown if single select
214
- this.opened = false;
215
- this.focusChip();
216
- }
217
- break;
218
- case 'Enter':
219
- // selection is handled by the chip-item component
220
- this.opened = false;
221
- this.focusChip();
222
- break;
223
- }
224
- }
225
- syncChipState() {
226
- const chipItems = this.getChipItems();
227
- let key = 0;
228
- chipItems.forEach((chipItem) => {
229
- chipItem.chipState = {
230
- emitIfxChipItemSelect: true,
231
- size: this.size ? this.size : 'medium',
232
- variant: (this.variant === 'multi' ? 'multi' : 'single'),
233
- key: key++
234
- };
235
- });
236
- }
237
- syncSelectedOptionsWithProp(newValue) {
238
- // Clear old selected options
239
- this.selectedOptions = [];
240
- const generateKey = (() => {
241
- let count = 0;
242
- return () => count++;
243
- })();
244
- if (Array.isArray(newValue)) {
245
- this.selectedOptions = newValue.map(value => ({
246
- value,
247
- label: value,
248
- selected: true,
249
- key: generateKey(),
250
- emitIfxChange: true
251
- }));
252
- }
253
- else if (typeof newValue === 'string') {
254
- this.selectedOptions = [{
255
- value: newValue,
256
- label: newValue,
257
- selected: true,
258
- key: generateKey(),
259
- emitIfxChange: true
260
- }];
261
- }
262
- this.syncChipState();
263
- }
264
- componentWillLoad() {
265
- this.syncSelectedOptionsWithProp(this.value);
266
- }
267
- async componentDidLoad() {
268
- if (!isNestedInIfxComponent(this.chip)) {
269
- const framework = detectFramework();
270
- trackComponent('ifx-chip', await framework);
271
- }
272
- }
273
- render() {
274
- return (h("div", { key: 'cd16644a94a1e31cea0b2cbbe39394d4a05a5a5b', class: 'chip' }, h("div", { key: '951decf38e88ff684f283a09f6bc513ca4a2c704', class: `chip__wrapper chip__wrapper--${this.size ? this.size : 'medium'}
275
- chip__wrapper--${this.variant === 'multi' ? 'multi' : 'single'}
276
- ${this.opened && !this.readOnly ? 'chip__wrapper--opened' : ''}
277
- ${this.selectedOptions.length ? 'chip__wrapper--selected' : ''}
278
- ${this.theme ? this.theme : 'outlined'}
279
- ${this.disabled ? 'disabled' : ""}
280
- ${this.readOnly ? 'read-only' : ""}`, tabIndex: 0, onClick: !this.readOnly && !this.disabled ? () => { this.handleWrapperClick(); } : undefined, role: 'combobox', "aria-label": this.ariaLabel, "aria-value": this.getSelectedOptions(), "aria-haspopup": !this.readOnly ? 'listbox' : undefined, "aria-expanded": !this.readOnly ? this.opened.toString() : undefined, "aria-controls": !this.readOnly ? 'dropdown' : undefined, "aria-readonly": this.readOnly ? 'true' : undefined, "aria-multiselectable": this.variant === 'multi' ? 'true' : undefined }, this.icon &&
281
- h("div", { key: 'cd8ab00ddfde3ba1dcdb7a82f963df1b81e4b5d5', class: "icon__wrapper" }, h("ifx-icon", { key: 'b14f92a609f24bc0b4617bb2b0d8262c52f11fab', icon: this.icon })), h("div", { key: '7ac3305d90985ddf45eb4df3cc22f9de89bf60de', class: 'wrapper__label' }, (this.selectedOptions.length === 0) && `${this.placeholder}`, (this.selectedOptions.length !== 0 && (this.variant === 'multi') && this.placeholder !== '') &&
282
- `${this.placeholder}:`, (this.selectedOptions.length !== 0) &&
283
- h("div", { key: 'e7c907adafd7e1601a4cbd05e1a7b415e1da05b6', class: 'label__selected-options' }, this.getSelectedOptions()), (this.selectedOptions.length > 2 && this.variant === 'multi') &&
284
- h("ifx-indicator", { key: '4520777b0d729d95d57d87d5a32a95fcf44e0d84', variant: 'number', inverted: this.theme === 'outlined' ? false : true, number: this.selectedOptions.length - 2 })), !this.readOnly && (this.variant !== 'multi' || (this.variant === 'multi' && this.selectedOptions.length === 0)) &&
285
- h("div", { key: 'ade24c6456b5443be577a4c0bd61d1b2dba68c91', class: 'wrapper__open-button' }, h("ifx-icon", { key: 1, icon: `chevron-down-16` })), ((this.selectedOptions.length >= 1) && this.variant === 'multi') &&
286
- h("div", { key: '8b1937382b467ca305493896aaf065c10f7a01e8', class: 'wrapper__unselect-button', onClick: !this.readOnly && !this.disabled ? (e) => { this.handleUnselectButtonClick(e); } : undefined }, h("ifx-icon", { key: 2, icon: `cross16` }))), this.opened && !this.readOnly &&
287
- h("div", { key: '073b6641d2320716a6d4b1149e72b61fa9b47dd8', id: 'dropdown', role: 'listbox', class: 'chip__dropdown' }, h("slot", { key: '55587cb1d438b11f0682c3b1d596a5dfb1d251d0' }))));
288
- }
289
- get chip() { return getElement(this); }
290
- static get watchers() { return {
291
- "value": ["handleValueChange"],
292
- "readOnly": ["handleReadOnlyChange"]
293
- }; }
294
- };
295
- Chip.style = chipCss;
296
-
297
- const chipItemCss = ":root{--ifx-font-family:\"Source Sans 3\", \"Arial, sans-serif\"}.chip-item{display:flex;align-items:center;gap:8px;padding:8px 16px;user-select:none;transition:all 100ms ease;transition-property:background, color}.chip-item:hover{cursor:pointer;background-color:#EEEDED}.chip-item:active{background-color:#BFBBBB}.chip-item:focus{outline:2px solid #0A8276}.chip-item.chip-item--large{font:400 1rem/1.5rem \"Source Sans 3\"}.chip-item.chip-item--small{font:400 0.875rem/1.25rem \"Source Sans 3\"}.chip-item.chip-item--selected{color:#0A8276}.chip-item.chip-item--selected .chip-item__selected-indicator{display:block}.chip-item__selected-indicator{display:none;margin-left:auto}";
298
-
299
- const ChipItem = class {
300
- constructor(hostRef) {
301
- registerInstance(this, hostRef);
302
- this.ifxChipItemSelect = createEvent(this, "ifxChipItemSelect", 5);
303
- this.value = undefined;
304
- this.chipState = { emitIfxChipItemSelect: true, variant: 'multi', size: 'large' };
305
- this.selected = false;
306
- }
307
- updateItemSelection(event) {
308
- if (this.chipState.variant === 'single') {
309
- const target = event.target;
310
- /* Also making sure chip items are from the same group (parent) while unselecting. */
311
- if (this.chipItem !== target && this.chipItem.parentElement === target.parentElement) {
312
- this.selected = false;
313
- }
314
- }
315
- }
316
- validateSelected(newValue, oldValue) {
317
- if (newValue !== oldValue) {
318
- /* Do not emit if ChipState does not allow. */
319
- if (this.chipState.emitIfxChipItemSelect) {
320
- this.emitIfxChipItemSelectEvent();
321
- }
322
- else {
323
- this.chipState.emitIfxChipItemSelect = true;
324
- }
325
- }
326
- }
327
- getItemLabel() {
328
- return this.chipItem.innerText;
329
- }
330
- toggleItemSelection() {
331
- this.selected = !this.selected;
332
- }
333
- emitIfxChipItemSelectEvent(emitIfxChange = true) {
334
- this.ifxChipItemSelect.emit({ emitIfxChange: emitIfxChange,
335
- key: this.chipState.key,
336
- label: this.getItemLabel(),
337
- selected: this.selected,
338
- value: this.value });
339
- }
340
- handleItemClick() {
341
- this.toggleItemSelection();
342
- }
343
- handleItemKeyDown(event) {
344
- if (event.code === 'Enter' || event.code === 'Space') {
345
- this.toggleItemSelection();
346
- }
347
- }
348
- handleSelectedState() {
349
- if (this.selected) {
350
- this.emitIfxChipItemSelectEvent(false);
351
- }
352
- }
353
- componentWillLoad() {
354
- /* Propogating the selected state to the Chip (Parent) component if it is set. */
355
- this.handleSelectedState();
356
- }
357
- render() {
358
- return (h("div", { key: '4d5ace01c02658ed46fbf42c36138a06c3d46049', class: `chip-item chip-item--${this.chipState.size}
359
- chip-item--${(this.selected && this.chipState.variant) === 'single' ? 'selected' : ''}`, tabIndex: 0, onClick: () => { this.handleItemClick(); }, onKeyDown: (e) => { this.handleItemKeyDown(e); }, role: "option", "aria-selected": this.selected.toString() }, this.chipState.variant === 'multi' &&
360
- h("ifx-checkbox", { key: 'bf1af2aaf0944351eb33ace8c704bbb4973951d6', checked: this.selected, tabIndex: -1, size: 's' }), h("div", { key: '50347975f1554b7a02ef2bde34750b361daad549', class: 'chip-item__label' }, " ", h("slot", { key: '9667dd32c70e5f4a7946499f828883efb10caff2' }), " "), h("div", { key: 'f2fcab283b717837bc8b6c09b6b3c6c72675e40c', class: 'chip-item__selected-indicator' }, h("ifx-icon", { key: '84e489e9a638f2165c436b10bea8d826ae6db11c', icon: 'check-16' }, " "))));
361
- }
362
- get chipItem() { return getElement(this); }
363
- static get watchers() { return {
364
- "selected": ["validateSelected"]
365
- }; }
366
- };
367
- ChipItem.style = chipItemCss;
368
-
369
- const paginationCss = ":root{--ifx-font-family:\"Source Sans 3\", \"Arial, sans-serif\"}:host{display:inline-flex}.container{display:inline-flex;justify-content:center;align-items:center;gap:32px;font-family:var(--ifx-font-family);flex-wrap:wrap}.container .items__per-page-wrapper{display:flex;align-items:center;gap:16px}.container .items__per-page-wrapper .items__per-page-label{color:#1D1D1D;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.container .items__per-page-wrapper .items__per-page-field{display:flex;flex-direction:column;align-items:flex-start}.container .items__per-page-wrapper .items__per-page-field ifx-select{width:92px}.container .items__total-wrapper{display:flex;justify-content:center;align-items:center;gap:12px}.container .items__total-wrapper .items__total-button{display:flex;width:40px;height:40px;justify-content:center;align-items:center;border-radius:100px;border:1px solid #BFBBBB;background:#FFF}.container .items__total-wrapper .page__numbers-wrapper{display:flex;justify-content:center;align-items:center;gap:12px}.container .items__total-wrapper .page__numbers-wrapper .page__number-item{display:flex;padding:6px;flex-direction:column;justify-content:center;align-items:center;gap:10px;border-radius:100px}.container .items__total-wrapper .page__numbers-wrapper .page__number-item.active{background-color:#0A8276}.container .items__total-wrapper .page__numbers-wrapper .page__number-item.active span{color:#fff}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:hover{cursor:pointer}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:hover:not(.active){background-color:#ddd}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:active:not(.active){background-color:#575352}.container .items__total-wrapper .page__numbers-wrapper .page__number-item span{display:flex;width:16px;height:16px;flex-direction:column;justify-content:center;color:#1D1D1D;text-align:center;font-size:13px;font-style:normal;font-weight:400;line-height:20px}.pagination{display:flex}.pagination ifx-icon-button:first-of-type{margin-right:12px}.pagination ifx-icon-button:last-of-type{margin-left:12px}.page__button{padding:8px;border-radius:100px}ol{list-style-type:none;padding:0;margin:0;display:inline-flex;align-items:center;gap:12px}li{display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:100px}li:hover:not(.active) page__button{background-color:#EEEDED}li:active:not(.active) .page__button{background-color:#575352;color:#fff}li.active{background-color:#0A8276}li.active .page__button{color:#fff}li:hover{cursor:pointer}li .page__button{text-decoration:none;display:flex;width:16px;height:16px;flex-direction:column;justify-content:center;color:#1D1D1D;text-align:center;font-size:13px;font-style:normal;font-weight:400;line-height:20px;align-items:center}.prev.disabled,.next.disabled{cursor:default}.prev.disabled:hover,.next.disabled:hover{cursor:default;text-decoration:none}.prev{margin-right:2.5px}.next{margin-left:2.5px}@media (max-width: 768px){.container{gap:16px;justify-content:left}.container .items__total-wrapper .pagination ol{gap:12px}}@media (max-width: 374px){.pagination .ellipsis+.active{margin-left:8px}.pagination .active+.ellipsis{margin-left:8px}}";
370
-
371
- const Pagination = class {
372
- constructor(hostRef) {
373
- registerInstance(this, hostRef);
374
- this.ifxPageChange = createEvent(this, "ifxPageChange", 7);
375
- this.ifxItemsPerPageChange = createEvent(this, "ifxItemsPerPageChange", 7);
376
- this.currentPage = 1;
377
- this.showItemsPerPage = true;
378
- this.internalPage = 1;
379
- this.internalItemsPerPage = 10;
380
- this.numberOfPages = [];
381
- this.total = 1;
382
- this.filteredItemsPerPage = [];
383
- this.visiblePages = [];
384
- this.CLASS_DISABLED = "disabled";
385
- this.CLASS_ACTIVE = "active";
386
- this.handlePageClick = (e) => {
387
- const li = e.currentTarget;
388
- const page = parseInt(li.dataset.page);
389
- if (!isNaN(page))
390
- this.changePage(page);
391
- };
392
- this.handleResize = () => {
393
- // Debounce resize events to prevent excessive calls
394
- clearTimeout(this.resizeTimeout);
395
- this.resizeTimeout = setTimeout(() => {
396
- this.updateVisiblePages();
397
- }, 100);
398
- };
399
- }
400
- watchTotalHandler() {
401
- this.calculateNumberOfPages();
402
- this.updateVisiblePages();
403
- }
404
- currentPageWatcher(newVal) {
405
- this.internalPage = Math.max(1, Math.min(newVal, this.numberOfPages.length));
406
- this.calculateNumberOfPages();
407
- this.updateVisiblePages();
408
- }
409
- setItemsPerPage(e) {
410
- var _a, _b;
411
- const selectedValue = ((_a = e.detail) === null || _a === void 0 ? void 0 : _a.value) || ((_b = e.detail) === null || _b === void 0 ? void 0 : _b.label);
412
- const newItemsPerPage = parseInt(selectedValue) || 10;
413
- if (newItemsPerPage === this.internalItemsPerPage) {
414
- return;
415
- }
416
- this.internalItemsPerPage = newItemsPerPage;
417
- this.internalPage = 1;
418
- this.calculateNumberOfPages();
419
- this.updateVisiblePages();
420
- this.handleEventEmission();
421
- }
422
- emitItemsPerPage(e) {
423
- this.ifxItemsPerPageChange.emit(e.detail.label);
424
- }
425
- async componentDidLoad() {
426
- if (this.showItemsPerPage) {
427
- const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');
428
- if (select) {
429
- select.addEventListener('ifxSelect', (e) => this.emitItemsPerPage(e));
430
- }
431
- }
432
- // Add resize listener to update pagination on screen size changes
433
- window.addEventListener('resize', this.handleResize);
434
- if (!isNestedInIfxComponent(this.el)) {
435
- const framework = detectFramework();
436
- trackComponent('ifx-pagination', await framework);
437
- }
438
- this.initPagination();
439
- }
440
- disconnectedCallback() {
441
- if (this.showItemsPerPage) {
442
- const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');
443
- if (select) {
444
- select.removeEventListener('ifxSelect', (e) => this.emitItemsPerPage(e));
445
- }
446
- }
447
- // Remove resize listener
448
- window.removeEventListener('resize', this.handleResize);
449
- // Clear any pending resize timeout
450
- if (this.resizeTimeout) {
451
- clearTimeout(this.resizeTimeout);
452
- }
453
- }
454
- updateVisiblePages() {
455
- // Check if screen is mobile (< 375px)
456
- const isMobile = window.innerWidth < 375;
457
- const totalPages = this.numberOfPages.length;
458
- const current = this.internalPage;
459
- let pages = [];
460
- if (isMobile) {
461
- // Mobile logic: maximum 5 elements
462
- if (totalPages <= 5) {
463
- pages = [...this.numberOfPages];
464
- }
465
- else {
466
- // Always show first page
467
- pages.push(1);
468
- if (current <= 2) {
469
- // Show: 1 2 3 … 10 (for pages 1 and 2)
470
- pages.push(2, 3, '...', totalPages);
471
- }
472
- else if (current >= totalPages - 1) {
473
- // Show: 1 … 23 24 25 (for last 2 pages only)
474
- pages.push('...', totalPages - 2, totalPages - 1, totalPages);
475
- }
476
- else {
477
- // Show: 1 … 5 … 10 (for middle pages, including page 3 and third-to-last page)
478
- pages.push('...', current, '...', totalPages);
479
- }
480
- }
481
- }
482
- else {
483
- // Desktop logic: maximum 7 elements
484
- const buffer = 2;
485
- if (totalPages <= 7) {
486
- pages = [...this.numberOfPages];
487
- }
488
- else {
489
- // Always show first page
490
- pages.push(1);
491
- // Determine the range around current page
492
- let start = Math.max(2, current - buffer);
493
- let end = Math.min(totalPages - 1, current + buffer);
494
- // Adjust range to ensure we show enough pages
495
- // If we're close to the beginning, extend the end
496
- if (current <= 4) {
497
- start = 2;
498
- end = Math.min(totalPages - 1, 5);
499
- }
500
- // If we're close to the end, extend the start
501
- else if (current >= totalPages - 3) {
502
- start = Math.max(2, totalPages - 4);
503
- end = totalPages - 1;
504
- }
505
- // For middle pages, show current +/- 1
506
- else {
507
- start = current - 1;
508
- end = current + 1;
509
- }
510
- // Add ellipsis before the range if there's a gap
511
- if (start > 2) {
512
- pages.push('...');
513
- }
514
- // Add the range of pages
515
- for (let i = start; i <= end; i++) {
516
- pages.push(i);
517
- }
518
- // Add ellipsis after the range if there's a gap
519
- if (end < totalPages - 1) {
520
- pages.push('...');
521
- }
522
- // Always show last page
523
- pages.push(totalPages);
524
- }
525
- }
526
- this.visiblePages = pages;
527
- }
528
- calculateNumberOfPages() {
529
- const totalPages = Math.ceil(this.total / this.internalItemsPerPage);
530
- this.numberOfPages = Array.from({ length: totalPages }, (_, i) => i + 1);
531
- this.internalPage = Math.max(1, Math.min(this.currentPage, totalPages));
532
- }
533
- filterOptionsArray() {
534
- const items = typeof this.itemsPerPage === 'string' ?
535
- JSON.parse(this.itemsPerPage) : this.itemsPerPage;
536
- this.filteredItemsPerPage = items.map(item => (Object.assign(Object.assign({}, item), { label: item.label || item.value })));
537
- }
538
- componentWillLoad() {
539
- this.filterOptionsArray();
540
- const selectedOption = this.filteredItemsPerPage.find(option => option.selected);
541
- if (selectedOption) {
542
- this.internalItemsPerPage = Number(selectedOption.value);
543
- }
544
- else if (this.filteredItemsPerPage.length > 0) {
545
- this.internalItemsPerPage = Number(this.filteredItemsPerPage[0].value);
546
- }
547
- this.calculateNumberOfPages();
548
- this.internalPage = Math.max(1, Math.min(this.currentPage, this.numberOfPages.length));
549
- this.updateVisiblePages();
550
- }
551
- componentWillUpdate() {
552
- if (this.prevInternalPage !== this.internalPage) {
553
- this.updateVisiblePages();
554
- this.prevInternalPage = this.internalPage;
555
- }
556
- }
557
- componentDidUpdate() {
558
- this.initPagination();
559
- }
560
- handleEventEmission() {
561
- this.ifxPageChange.emit({
562
- currentPage: this.internalPage,
563
- totalPages: this.numberOfPages.length,
564
- itemsPerPage: this.internalItemsPerPage
565
- });
566
- }
567
- initPagination() {
568
- const pagination = this.el.shadowRoot.querySelector('.pagination');
569
- if (!pagination)
570
- return;
571
- const updateButtons = () => {
572
- const prev = pagination.querySelector('.prev');
573
- const next = pagination.querySelector('.next');
574
- if (prev) {
575
- prev.disabled = this.internalPage === 1;
576
- prev.classList.toggle(this.CLASS_DISABLED, this.internalPage === 1);
577
- }
578
- if (next) {
579
- next.disabled = this.internalPage === this.numberOfPages.length;
580
- next.classList.toggle(this.CLASS_DISABLED, this.internalPage === this.numberOfPages.length);
581
- }
582
- };
583
- pagination.querySelectorAll('li').forEach(li => {
584
- li.removeEventListener('click', this.handlePageClick);
585
- li.addEventListener('click', this.handlePageClick);
586
- });
587
- updateButtons();
588
- }
589
- changePage(newPage) {
590
- newPage = Math.max(1, Math.min(newPage, this.numberOfPages.length));
591
- if (newPage === this.internalPage)
592
- return;
593
- this.internalPage = newPage;
594
- this.handleEventEmission();
595
- this.initPagination();
596
- }
597
- render() {
598
- return (h("div", { key: '9a4b41bb714202dcc144f626b9a2096480852ad6', class: "container" }, this.showItemsPerPage && (h("div", { key: '9e829381e98967180e89bf8f8988c67bbb998814', class: "items__per-page-wrapper" }, h("div", { key: 'be5d328337c18096cd1363f3c7c0c060693fe525', class: "items__per-page-label" }, "Results per Page"), h("div", { key: '37f663194a695059779305e0723321c26f55d191', class: "items__per-page-field" }, h("ifx-select", { key: '916cc188fd2f7d86243db5955f091e188defbacc', id: 'itemsPerPageSelect', placeholder: 'false', "show-search": 'false', value: undefined, disabled: false, error: false, size: "s", options: this.filteredItemsPerPage, "placeholder-value": "Select" })))), h("div", { key: 'f6531ac8c0710f53ff375e8ee4fa19bb47be5cef', class: "items__total-wrapper" }, h("div", { key: '4edaf3f1bc17c3423c2b39473a0f5ddc959278d6', class: "pagination" }, h("ifx-icon-button", { key: '7341fced786739f5970cfc9940381b2b2901de63', class: "prev", icon: "arrow-left-16", "aria-label": 'Previous Page', onClick: () => this.changePage(this.internalPage - 1), variant: "secondary" }), h("ol", { key: 'b7af29f3b08ee99b3c880c7af51b4d491630e55c' }, this.visiblePages.map((page, i) => typeof page === 'number' ? (h("li", { key: `page-${page}`, class: { [this.CLASS_ACTIVE]: page === this.internalPage }, "data-page": page }, h("span", { class: 'page__button', role: "button", tabindex: "0", "aria-current": page === this.internalPage ? "page" : undefined, "aria-label": `Page ${page}`, onClick: () => this.changePage(page), onKeyDown: (e) => (e.key === 'Enter' || e.key === ' ') && this.changePage(page) }, page))) : (h("li", { class: "ellipsis", key: `ellipsis-${i}` }, h("span", { "aria-hidden": "true" }, "..."))))), h("ifx-icon-button", { key: '5bdcefa2773fb49f8d7c4190a48fe5a98f6e0442', class: "next", icon: "arrow-right-16", "aria-label": 'Next Page', onClick: () => this.changePage(this.internalPage + 1), variant: "secondary" })))));
599
- }
600
- get el() { return getElement(this); }
601
- static get watchers() { return {
602
- "total": ["watchTotalHandler"],
603
- "currentPage": ["currentPageWatcher"]
604
- }; }
605
- };
606
- Pagination.style = paginationCss;
607
-
608
- export { Chip as ifx_chip, ChipItem as ifx_chip_item, Pagination as ifx_pagination };
609
- //# sourceMappingURL=ifx-chip.ifx-chip-item.ifx-pagination.entry.js.map
610
-
611
- //# sourceMappingURL=ifx-chip_3.entry.js.map