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