@spw-ds/spw-stencil-library 1.2.4 → 1.2.5
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/loader.cjs.js +1 -1
- package/dist/cjs/spw-button.spw-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-button_2.cjs.entry.js +1 -1
- package/dist/cjs/spw-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-custom-select.cjs.entry.js +43 -7
- package/dist/cjs/spw-custom-select.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-custom-select.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-date-picker.cjs.entry.js +48 -28
- package/dist/cjs/spw-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-date-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-field-label_6.cjs.entry.js +1 -1
- package/dist/cjs/spw-field-label_6.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-pagination.cjs.entry.js +26 -16
- package/dist/cjs/spw-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-pagination.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-search-field.cjs.entry.js +12 -2
- package/dist/cjs/spw-search-field.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-search-field.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-select.cjs.entry.js +3 -1
- package/dist/cjs/spw-select.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-select.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-stencil-library.cjs.js +1 -1
- package/dist/cjs/spw-table-cell.cjs.entry.js +23 -2
- package/dist/cjs/spw-table-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table-footer.cjs.entry.js +1 -1
- package/dist/cjs/spw-table-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-footer.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table-header.cjs.entry.js +33 -3
- package/dist/cjs/spw-table-header.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-header.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table-row.cjs.entry.js +34 -2
- package/dist/cjs/spw-table-row.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-row.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table.cjs.entry.js +26 -3
- package/dist/cjs/spw-table.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table.entry.cjs.js.map +1 -1
- package/dist/cjs/utils-D_vNTY6w.js.map +1 -1
- package/dist/collection/components/spw-button/spw-button.css +1 -1
- package/dist/collection/components/spw-custom-select/spw-custom-select.css +1 -1
- package/dist/collection/components/spw-custom-select/spw-custom-select.js +42 -6
- package/dist/collection/components/spw-custom-select/spw-custom-select.js.map +1 -1
- package/dist/collection/components/spw-date-picker/spw-date-picker.js +48 -28
- package/dist/collection/components/spw-date-picker/spw-date-picker.js.map +1 -1
- package/dist/collection/components/spw-link/spw-link.css +1 -1
- package/dist/collection/components/spw-pagination/spw-pagination.css +1 -1
- package/dist/collection/components/spw-pagination/spw-pagination.js +54 -13
- package/dist/collection/components/spw-pagination/spw-pagination.js.map +1 -1
- package/dist/collection/components/spw-search-field/spw-search-field.js +50 -2
- package/dist/collection/components/spw-search-field/spw-search-field.js.map +1 -1
- package/dist/collection/components/spw-select/spw-select.js +3 -1
- package/dist/collection/components/spw-select/spw-select.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.css +1 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js +82 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.css +1 -1
- package/dist/collection/components/spw-table/spw-table-header/spw-table-header.css +1 -1
- package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js +92 -2
- package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table-row/spw-table-row.css +1 -1
- package/dist/collection/components/spw-table/spw-table-row/spw-table-row.js +66 -1
- package/dist/collection/components/spw-table/spw-table-row/spw-table-row.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table.js +27 -2
- package/dist/collection/components/spw-table/spw-table.js.map +1 -1
- package/dist/collection/stories/organisms/spw-footer/spw-footer.stories.js +1 -1
- package/dist/collection/stories/organisms/spw-footer/spw-footer.stories.js.map +1 -1
- package/dist/collection/utils/utils.js +47 -48
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/{p-du-Bai6S.js → p-B2toBmC2.js} +32 -21
- package/dist/components/p-B2toBmC2.js.map +1 -0
- package/dist/components/p-BBi01mKM.js.map +1 -1
- package/dist/components/{p-AjhBdYbk.js → p-DjyPtAVX.js} +3 -3
- package/dist/components/p-DjyPtAVX.js.map +1 -0
- package/dist/components/{p-CNNUoO2J.js → p-qROlK2WR.js} +3 -3
- package/dist/components/p-qROlK2WR.js.map +1 -0
- package/dist/components/spw-breadcrumb-item.js +1 -1
- package/dist/components/spw-button.js +1 -1
- package/dist/components/spw-cookies.js +1 -1
- package/dist/components/spw-custom-select.js +43 -7
- package/dist/components/spw-custom-select.js.map +1 -1
- package/dist/components/spw-date-picker.js +48 -28
- package/dist/components/spw-date-picker.js.map +1 -1
- package/dist/components/spw-file-upload.js +1 -1
- package/dist/components/spw-header-lang.js +1 -1
- package/dist/components/spw-header.js +1 -1
- package/dist/components/spw-iodda.js +1 -1
- package/dist/components/spw-link.js +1 -1
- package/dist/components/spw-message.js +1 -1
- package/dist/components/spw-pagination.js +1 -1
- package/dist/components/spw-search-field.js +15 -4
- package/dist/components/spw-search-field.js.map +1 -1
- package/dist/components/spw-select.js +3 -1
- package/dist/components/spw-select.js.map +1 -1
- package/dist/components/spw-table-cell.js +26 -2
- package/dist/components/spw-table-cell.js.map +1 -1
- package/dist/components/spw-table-footer.js +1 -1
- package/dist/components/spw-table-footer.js.map +1 -1
- package/dist/components/spw-table-header.js +37 -4
- package/dist/components/spw-table-header.js.map +1 -1
- package/dist/components/spw-table-row.js +39 -3
- package/dist/components/spw-table-row.js.map +1 -1
- package/dist/components/spw-table.js +28 -4
- package/dist/components/spw-table.js.map +1 -1
- package/dist/components_json.json +268 -12
- package/dist/components_vscode.json +3088 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/spw-button.spw-loading.entry.js.map +1 -1
- package/dist/esm/spw-button_2.entry.js +1 -1
- package/dist/esm/spw-button_2.entry.js.map +1 -1
- package/dist/esm/spw-custom-select.entry.js +43 -7
- package/dist/esm/spw-custom-select.entry.js.map +1 -1
- package/dist/esm/spw-date-picker.entry.js +48 -28
- package/dist/esm/spw-date-picker.entry.js.map +1 -1
- package/dist/esm/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.js.map +1 -1
- package/dist/esm/spw-field-label_6.entry.js +1 -1
- package/dist/esm/spw-field-label_6.entry.js.map +1 -1
- package/dist/esm/spw-pagination.entry.js +26 -16
- package/dist/esm/spw-pagination.entry.js.map +1 -1
- package/dist/esm/spw-search-field.entry.js +13 -3
- package/dist/esm/spw-search-field.entry.js.map +1 -1
- package/dist/esm/spw-select.entry.js +3 -1
- package/dist/esm/spw-select.entry.js.map +1 -1
- package/dist/esm/spw-stencil-library.js +1 -1
- package/dist/esm/spw-table-cell.entry.js +23 -2
- package/dist/esm/spw-table-cell.entry.js.map +1 -1
- package/dist/esm/spw-table-footer.entry.js +1 -1
- package/dist/esm/spw-table-footer.entry.js.map +1 -1
- package/dist/esm/spw-table-header.entry.js +33 -3
- package/dist/esm/spw-table-header.entry.js.map +1 -1
- package/dist/esm/spw-table-row.entry.js +35 -3
- package/dist/esm/spw-table-row.entry.js.map +1 -1
- package/dist/esm/spw-table.entry.js +26 -3
- package/dist/esm/spw-table.entry.js.map +1 -1
- package/dist/esm/utils-BBi01mKM.js.map +1 -1
- package/dist/spw-stencil-library/p-0f69442e.entry.js +2 -0
- package/dist/spw-stencil-library/p-0f69442e.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-14722019.entry.js +2 -0
- package/dist/spw-stencil-library/p-14722019.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-b1de48f3.entry.js → p-152525de.entry.js} +2 -2
- package/dist/spw-stencil-library/p-152525de.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-2ad00dfc.entry.js +2 -0
- package/dist/spw-stencil-library/p-2ad00dfc.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-4a273848.entry.js +2 -0
- package/dist/spw-stencil-library/p-4a273848.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-31793077.entry.js → p-5632f307.entry.js} +2 -2
- package/dist/spw-stencil-library/p-5632f307.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-5e43e2ed.entry.js +2 -0
- package/dist/spw-stencil-library/p-5e43e2ed.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-92583499.entry.js +2 -0
- package/dist/spw-stencil-library/p-92583499.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-9d760073.entry.js +2 -0
- package/dist/spw-stencil-library/p-9d760073.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-9e8a779e.entry.js +2 -0
- package/dist/spw-stencil-library/p-9e8a779e.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-BBi01mKM.js.map +1 -1
- package/dist/spw-stencil-library/p-c4e4cfd4.entry.js +2 -0
- package/dist/spw-stencil-library/p-c4e4cfd4.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-f7760a47.entry.js → p-fcc5884a.entry.js} +2 -2
- package/dist/spw-stencil-library/p-fcc5884a.entry.js.map +1 -0
- package/dist/spw-stencil-library/spw-button.spw-loading.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-custom-select.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-date-picker.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-pagination.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-search-field.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-select.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-stencil-library.esm.js +1 -1
- package/dist/spw-stencil-library/spw-table-cell.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table-footer.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table-header.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table-row.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table.entry.esm.js.map +1 -1
- package/dist/stats.json +611 -150
- package/dist/types/components/spw-custom-select/spw-custom-select.d.ts +3 -0
- package/dist/types/components/spw-date-picker/spw-date-picker.d.ts +1 -0
- package/dist/types/components/spw-pagination/spw-pagination.d.ts +4 -1
- package/dist/types/components/spw-search-field/spw-search-field.d.ts +5 -0
- package/dist/types/components/spw-select/spw-select.d.ts +1 -0
- package/dist/types/components/spw-table/spw-table-cell/spw-table-cell.d.ts +6 -0
- package/dist/types/components/spw-table/spw-table-header/spw-table-header.d.ts +6 -0
- package/dist/types/components/spw-table/spw-table-row/spw-table-row.d.ts +8 -0
- package/dist/types/components/spw-table/spw-table.d.ts +2 -0
- package/dist/types/components.d.ts +83 -0
- package/dist/types/utils/utils.d.ts +2 -1
- package/hydrate/index.js +265 -72
- package/hydrate/index.mjs +265 -72
- package/package.json +1 -1
- package/dist/components/p-AjhBdYbk.js.map +0 -1
- package/dist/components/p-CNNUoO2J.js.map +0 -1
- package/dist/components/p-du-Bai6S.js.map +0 -1
- package/dist/spw-stencil-library/p-22f972ca.entry.js +0 -2
- package/dist/spw-stencil-library/p-22f972ca.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-2c28684f.entry.js +0 -2
- package/dist/spw-stencil-library/p-2c28684f.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-31793077.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-4c21a696.entry.js +0 -2
- package/dist/spw-stencil-library/p-4c21a696.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-572188ac.entry.js +0 -2
- package/dist/spw-stencil-library/p-572188ac.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-823b60ae.entry.js +0 -2
- package/dist/spw-stencil-library/p-823b60ae.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-b1de48f3.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-d115a739.entry.js +0 -2
- package/dist/spw-stencil-library/p-d115a739.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-d2258e0a.entry.js +0 -2
- package/dist/spw-stencil-library/p-d2258e0a.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-ecec4588.entry.js +0 -2
- package/dist/spw-stencil-library/p-ecec4588.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-f5caed11.entry.js +0 -2
- package/dist/spw-stencil-library/p-f5caed11.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-f7760a47.entry.js.map +0 -1
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-AjhBdYbk.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/spw-button/spw-button.scss?tag=spw-button&encapsulation=shadow","src/components/spw-button/spw-button.tsx"],"sourcesContent":["@import '../../scss/mixins';\n\n:host {\n display: inline-block;\n vertical-align: top;\n --spw-button-font-size-small: 14px;\n --spw-button-font-size-medium: 16px;\n --spw-button-font-size-large: 18px;\n --spw-button-px-small: 16px;\n --spw-button-px-medium: 20px;\n --spw-button-px-large: 24px;\n --spw-button-py-small: 8px;\n --spw-button-py-medium: 12px;\n --spw-button-py-large: 16px;\n}\n\n:host([is-full-width]) {\n display: block;\n width: 100%;\n}\n\n/* Base */\n\n.spw-button {\n border: 2px solid transparent;\n display: block;\n width: 100%;\n border-radius: 9999px;\n letter-spacing: 0.18px;\n cursor: pointer;\n font-weight: bold;\n outline: 3px solid transparent;\n overflow: hidden;\n transition: all 0.1s ease-in;\n line-height: 1;\n\n &--fullwidth {\n width: 100% !important;\n }\n\n &--fullwidth-mobile {\n width: 100%;\n @include breakpoint(md) {\n width: auto;\n }\n }\n\n &--is-icon-only {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n &:focus-visible {\n outline: 3px solid white;\n outline-offset: -1px;\n box-shadow: 0 0 0 5px black;\n }\n\n spw-loading {\n opacity: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1;\n }\n\n &--loading {\n position: relative;\n pointer-events: none;\n spw-loading {\n opacity: 1;\n }\n }\n\n &__inner {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 2;\n }\n\n &__inner-text {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 2;\n .spw-button--loading & {\n opacity: 0;\n }\n }\n\n &:is(a) {\n text-decoration: none;\n }\n}\n\n/* Variants */\n\n.spw-button {\n &--primary {\n background: var(--spw-ds-primary);\n color: var(--spw-ds-white);\n &:not([disabled]):hover {\n background: var(--spw-ds-variant);\n }\n &:not([disabled]):active {\n background: var(--spw-ds-active);\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.3);\n --spw-loading-spinner-color: white;\n }\n }\n\n &--secondary {\n background: var(--spw-color-themes-grey-grey-200);\n color: var(--spw-color-themes-grey-grey-900);\n &:not([disabled]):hover {\n background: var(--spw-color-themes-grey-grey-300);\n }\n &:not([disabled]):active {\n background: var(--spw-color-themes-grey-grey-400);\n }\n spw-loading {\n --spw-loading-border-color: rgba(0, 0, 0, 0.1);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n }\n }\n\n &--tertiary {\n transition: none;\n border-radius: 4px;\n background: none;\n color: var(--spw-ds-primary);\n &:not([disabled]):hover,\n &:not([disabled]):active {\n text-decoration: underline;\n }\n &:not([disabled]):active {\n color: var(--spw-ds-active);\n }\n spw-loading {\n --spw-loading-border-color: rgba(0, 0, 0, 0.1);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n }\n }\n}\n\n/* Disabled */\n\n.spw-button {\n &--primary[disabled],\n &--secondary[disabled] {\n background: var(--spw-color-themes-grey-grey-100);\n }\n\n &--tertiary[disabled] {\n background: none;\n }\n\n &--primary[disabled],\n &--secondary[disabled],\n &--tertiary[disabled] {\n color: var(--spw-color-themes-grey-grey-400);\n border-color: none;\n cursor: not-allowed;\n }\n}\n\n/* Surface dark */\n\n.spw-button {\n &--surface-dark {\n box-shadow: var(--spw-effect-elevation-8);\n &:not([disabled]):active {\n box-shadow: var(--spw-effect-elevation-active-0), var(--spw-effect-elevation-active-1), var(--spw-effect-elevation-active-2);\n }\n\n &[disabled] {\n box-shadow: none;\n }\n\n &.spw-button--primary {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-ds-white);\n background: var(--spw-ds-white);\n &:not([disabled]):hover {\n background: transparent;\n color: var(--spw-ds-white);\n border-color: var(--spw-ds-white);\n }\n &:not([disabled]):active {\n background: transparent;\n color: var(--spw-colors-support-grey-grey-500);\n border-color: var(--spw-colors-support-grey-grey-500);\n }\n &[disabled] {\n border-color: var(--spw-colors-support-grey-grey-700);\n background: var(--spw-colors-support-grey-grey-700);\n color: var(--spw-colors-support-grey-grey-800);\n }\n spw-loading {\n --spw-loading-border-color: var(--spw-colors-support-grey-grey-300);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n }\n }\n\n &.spw-button--secondary {\n background: transparent;\n color: var(--spw-ds-white);\n border-color: var(--spw-ds-white);\n &:not([disabled]):hover {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-ds-white);\n background: var(--spw-ds-white);\n }\n &:not([disabled]):active {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-colors-support-grey-grey-400);\n background: var(--spw-colors-support-grey-grey-400);\n }\n &[disabled] {\n border-color: var(--spw-colors-support-grey-grey-700);\n background: var(--spw-colors-support-grey-grey-700);\n color: var(--spw-colors-support-grey-grey-800);\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.2);\n --spw-loading-spinner-color: white;\n }\n }\n\n &.spw-button--tertiary {\n box-shadow: none;\n color: var(--spw-ds-white);\n &:not([disabled]):hover,\n &:not([disabled]):active {\n box-shadow: none;\n }\n &:not([disabled]):active {\n color: var(--spw-ds-primary);\n }\n &[disabled] {\n color: var(--spw-colors-support-grey-grey-700);\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.2);\n --spw-loading-spinner-color: white;\n }\n }\n }\n}\n\n/* Surface primary */\n\n.spw-button {\n &--surface-primary {\n box-shadow: none;\n &:not([disabled]):active {\n box-shadow: none;\n }\n\n &[disabled] {\n box-shadow: none;\n }\n\n &.spw-button--primary {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-ds-white);\n background: var(--spw-ds-white);\n &:not([disabled]):hover {\n background: transparent;\n color: var(--spw-ds-white);\n border-color: var(--spw-ds-white);\n }\n &:not([disabled]):active {\n background: transparent;\n color: white;\n border-color: white;\n opacity: 0.9;\n }\n &[disabled] {\n border-color: white;\n background: white;\n color: var(--spw-colors-support-grey-grey-600);\n opacity: 0.5;\n }\n spw-loading {\n --spw-loading-border-color: var(--spw-colors-support-grey-grey-300);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n }\n }\n\n &.spw-button--secondary {\n background: transparent;\n color: var(--spw-ds-white);\n border-color: var(--spw-ds-white);\n &:not([disabled]):hover {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-ds-white);\n background: var(--spw-ds-white);\n }\n &:not([disabled]):active {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: white;\n background: white;\n opacity: 0.9;\n }\n &[disabled] {\n border-color: white;\n background: white;\n color: var(--spw-colors-support-grey-grey-600);\n opacity: 0.5;\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.2);\n --spw-loading-spinner-color: white;\n }\n }\n\n &.spw-button--tertiary {\n box-shadow: none;\n color: var(--spw-ds-white);\n &:not([disabled]):hover,\n &:not([disabled]):active {\n box-shadow: none;\n }\n &:not([disabled]):active {\n color: white;\n opacity: 0.9;\n }\n &[disabled] {\n color: white;\n opacity: 0.5;\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.2);\n --spw-loading-spinner-color: white;\n }\n }\n }\n}\n\n/* Surface light */\n\n.spw-button {\n &--surface-light {\n &.spw-button--primary {\n &[disabled] {\n color: var(--spw-colors-support-grey-grey-600);\n background: var(--spw-colors-support-grey-grey-500);\n }\n }\n\n &.spw-button--secondary {\n color: var(--spw-colors-support-grey-grey-900);\n background: var(--spw-ds-white);\n &:not([disabled]):hover {\n background: var(--spw-colors-support-grey-grey-300);\n }\n &:not([disabled]):active {\n background: var(--spw-colors-support-grey-grey-500);\n }\n &[disabled] {\n color: var(--spw-colors-support-grey-grey-600);\n background: var(--spw-colors-support-grey-grey-500);\n }\n }\n\n &.spw-button--tertiary {\n color: var(--spw-colors-support-grey-grey-900);\n &:not([disabled]):active {\n color: var(--spw-ds-primary);\n }\n &[disabled] {\n color: var(--spw-colors-support-grey-grey-600);\n }\n }\n }\n}\n\n/* Sizes */\n\n.spw-button {\n &--large {\n font-size: var(--spw-button-font-size-large);\n padding: var(--spw-button-py-large) var(--spw-button-px-large);\n .spw-button__inner-text {\n gap: 12px;\n }\n &.spw-button--is-icon-only {\n width: 54px;\n }\n }\n\n &--medium {\n font-size: var(--spw-button-font-size-medium);\n padding: var(--spw-button-py-medium) var(--spw-button-px-medium);\n .spw-button__inner-text {\n gap: 8px;\n }\n &.spw-button--is-icon-only {\n width: 45px;\n }\n }\n\n &--small {\n font-size: var(--spw-button-font-size-small);\n padding: var(--spw-button-py-small) var(--spw-button-px-small);\n .spw-button__inner-text {\n gap: 6px;\n }\n &.spw-button--is-icon-only {\n width: 35px;\n }\n }\n\n &--small,\n &--medium,\n &--large {\n &.spw-button--tertiary {\n padding: 4px;\n }\n }\n}\n","import { Component, Element, Prop, h, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'spw-button',\n styleUrl: 'spw-button.scss',\n shadow: true,\n})\nexport class SpwButton {\n @Element() el: HTMLSpwButtonElement;\n\n /** Spécifie le lien si nécessaire */\n @Prop() href?: string;\n /** Attribut target, s'applique uniquement si href est rempli */\n @Prop() target?: string = '_self';\n /** Remplit l'attribut rel */\n @Prop() rel?: string;\n /** Permet de télécharger un fichier au lieu de naviguer vers le lien */\n @Prop() download?: string;\n /** Nom du bouton */\n @Prop() name?: string = '';\n /** Valeur du bouton */\n @Prop() value?: string | number = '';\n /** Type du bouton */\n @Prop() type?: 'button' | 'submit' | 'reset' = 'button';\n\n /** Permet de sélectionner une variante du bouton */\n @Prop() variant?: 'primary' | 'secondary' | 'tertiary' = 'primary';\n /** Permet de choisir la surface d'arrière-plan du bouton */\n @Prop() surface?: 'default' | 'dark' | 'light' | 'primary' = 'default';\n /** Si désactivé, le bouton n'est pas utilisable */\n @Prop() disabled?: boolean = false;\n /** Permet de spécifier la taille du bouton */\n @Prop() size?: 'large' | 'medium' | 'small' = 'medium';\n\n /** Remplit l'attribut aria-label, utilisé à des fins d'accessibilité */\n @Prop() accAriaLabel?: string;\n\n /** Si rempli, vous pouvez utiliser une référence d'icône font-awesome */\n @Prop() isIconOnly?: boolean = false;\n /** Si rempli, vous pouvez utiliser une référence d'icône font-awesome */\n @Prop() icon?: string;\n /** Position de l'icône à l'intérieur du bouton */\n @Prop() iconPosition?: 'left' | 'right';\n\n /** Si vrai, le bouton prend toute la largeur */\n @Prop() isFullWidth?: boolean = false;\n /** Si vrai, le bouton prend toute la largeur en mobile */\n @Prop({ reflect: true }) isFullWidthMobile?: boolean = true;\n\n /** Affiche un état de chargement, désactive le bouton */\n @Prop() isLoading?: boolean = false;\n\n /** Lors du focus */\n @Event() spwFocus: EventEmitter<void>;\n /** Lors de la perte du focus */\n @Event() spwBlur: EventEmitter<void>;\n /** Navigation vers un lien lors du clic */\n @Event() spwNavigate: EventEmitter<MouseEvent>;\n\n private onFocus = () => {\n this.spwFocus.emit();\n };\n\n private onBlur = () => {\n this.spwBlur.emit();\n };\n\n private resetFormInputs() {\n const form = this.el.closest('form');\n if (!form) return;\n\n const spwInputs = form.querySelectorAll('spw-input');\n spwInputs.forEach(spwInput => {\n const input = spwInput.shadowRoot.querySelector('input');\n if (input) {\n input.value = '';\n }\n });\n }\n\n private onClick = (ev: MouseEvent) => {\n if (this.disabled || this.isLoading) {\n ev.preventDefault();\n return;\n }\n\n if (this.type === 'reset') {\n ev.preventDefault();\n this.resetFormInputs();\n return;\n }\n\n if (this.type === 'submit' && !this.disabled) {\n const form = this.el.closest('form');\n if (form) {\n ev.preventDefault();\n form.requestSubmit();\n return;\n }\n }\n\n if (this.href !== undefined) {\n this.spwNavigate.emit(ev);\n }\n };\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-button': true,\n [`spw-button--${this.variant}`]: true,\n [`spw-button--surface-${this.surface}`]: true,\n [`spw-button--${this.size}`]: true,\n [`spw-button--is-icon-only`]: this.isIconOnly,\n [`spw-button--fullwidth`]: this.isFullWidth,\n [`spw-button--fullwidth-mobile`]: this.isFullWidthMobile,\n [`spw-button--loading`]: this.isLoading,\n };\n }\n\n render() {\n const { type, download, href, rel, target, name, value } = this;\n const TagType = this.href === undefined ? 'button' : 'a';\n const attrs =\n TagType === 'button'\n ? { type: type, name, value }\n : {\n download,\n href,\n rel,\n target,\n };\n\n const iconPosition = this.icon && !this.iconPosition ? 'right' : this.iconPosition;\n const iconClass = `spw-icon--${iconPosition}`;\n const iconElement = this.icon ? <spw-icon class={iconClass} icon={this.icon}></spw-icon> : null;\n\n const isDisabled = this.disabled;\n\n const ariaAttributes = {\n 'aria-label': this?.accAriaLabel,\n 'aria-disabled': isDisabled ? 'true' : null,\n };\n\n return (\n <TagType {...attrs} class={this.elementClass} disabled={isDisabled} onFocus={this.onFocus} onBlur={this.onBlur} onClick={this.onClick} {...ariaAttributes}>\n <div class=\"spw-button__inner\">\n <div class=\"spw-button__inner-text\">\n {iconPosition === 'left' && iconElement}\n {!this.isIconOnly && <slot></slot>}\n {iconPosition === 'right' && iconElement}\n </div>\n </div>\n <spw-loading text=\"\"></spw-loading>\n </TagType>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-CNNUoO2J.js","mappings":";;;AAAA,MAAM,UAAU,GAAG,qlIAAqlI;;MCO3lI,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAAC,CAAA,CAAA;AALpB,IAAA,WAAA,GAAA;;;;;;AAWU,QAAA,IAAM,CAAA,MAAA,GAAY,OAAO;;AAMzB,QAAA,IAAY,CAAA,YAAA,GAAsB,OAAO;;AAEzC,QAAA,IAAQ,CAAA,QAAA,GAAa,KAAK;;AAI1B,QAAA,IAAO,CAAA,OAAA,GAAsB,OAAO;AAKpC,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,EAAc,KAAI;AACnC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,EAAE,CAAC,cAAc,EAAE;gBACnB;;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,SAAC;AAgCF;AA9BC,IAAA,IAAY,YAAY,GAAA;QACtB,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;YAChB,0BAA0B,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO;YACtE,yBAAyB,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM;AACpE,YAAA,CAAC,qBAAqB,IAAI,CAAC,OAAO,CAAE,CAAA,GAAG,IAAI;AAC3C,YAAA,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SAClC;;IAGH,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI;AAC9E,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,YAAY,EAAE,YAAY;YAC1B,eAAe,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;SAC1C;AAED,QAAA,MAAM,SAAS,GAAG,CAAa,UAAA,EAAA,YAAY,EAAE;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,gBAAU,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAA,CAAa,GAAG,IAAI;AAErF,QAAA,QACE,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAM,cAAc,CAAA,EAChI,YAAY,KAAK,MAAM,IAAI,WAAW,EACvC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,EACL,YAAY,KAAK,OAAO,IAAI,WAAW,CACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/spw-link/spw-link.scss?tag=spw-link&encapsulation=shadow","src/components/spw-link/spw-link.tsx"],"sourcesContent":[":host {\n display: inline;\n --spw-link-color: var(--spw-ds-primary);\n --spw-link-hover-color: var(--spw-ds-variant);\n --spw-link-active-color: var(--spw-ds-active);\n --spw-link-font-weight: 700;\n --spw-link-padding: 6px;\n}\n\n.spw-link {\n display: inline;\n text-decoration: none;\n cursor: pointer;\n color: var(--spw-link-color);\n border-radius: 4px;\n font-weight: var(--spw-link-font-weight);\n &--surface-dark {\n color: var(--spw-ds-white);\n }\n\n &__inner {\n display: inline;\n border-bottom: 1px solid var(--spw-link-color);\n .spw-link--surface-dark & {\n border-bottom: 1px solid var(--spw-ds-white);\n }\n }\n\n &:focus-visible {\n outline-offset: 2px;\n outline: 3px solid black;\n }\n\n &:hover {\n color: var(--spw-link-hover-color);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-link-hover-color);\n }\n }\n\n &:active {\n color: var(--spw-link-active-color);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-link-active-color);\n }\n }\n\n &[aria-disabled='true'] {\n pointer-events: none;\n color: var(--spw-color-themes-grey-grey-600);\n cursor: not-allowed;\n }\n\n &--surface-dark {\n &:hover {\n color: var(--spw-ds-white);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-ds-white);\n }\n }\n\n &:active {\n color: var(--spw-ds-white);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-ds-white);\n }\n }\n\n &[aria-disabled='true'] {\n color: var(--spw-ds-white);\n opacity: 0.5;\n }\n }\n\n &--has-icon-right spw-icon {\n margin-left: var(--spw-link-padding);\n margin-right: 4px;\n }\n\n &--has-icon-left spw-icon {\n margin-left: 4px;\n margin-right: var(--spw-link-padding);\n }\n}\n","import { Component, Element, Prop, h, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'spw-link',\n styleUrl: 'spw-link.scss',\n shadow: true,\n})\nexport class SpwLink {\n @Element() el: HTMLSpwLinkElement;\n\n /** Spécifie le lien href */\n @Prop() href: string;\n /** Attribut target (détermine où ouvrir le lien) */\n @Prop() target?: string = '_self';\n /** Remplit l'attribut rel */\n @Prop() rel?: string;\n /** Si rempli, permet d'utiliser une référence d'icône font-awesome */\n @Prop() icon?: string;\n /** Position de l'icône à l'intérieur du lien (gauche ou droite) */\n @Prop() iconPosition?: 'left' | 'right' = 'right';\n /** Si désactivé, le lien n'est pas cliquable */\n @Prop() disabled?: boolean = false;\n /** Remplit l'attribut aria-label, utilisé à des fins d'accessibilité */\n @Prop() accAriaLabel?: string;\n /** Permet de choisir la surface d'arrière-plan du lien */\n @Prop() surface?: 'light' | 'dark' = 'light';\n\n /** Événement déclenché lors du clic sur le lien */\n @Event() spwClick: EventEmitter<MouseEvent>;\n\n private onClick = (ev: MouseEvent) => {\n if (this.disabled) {\n ev.preventDefault();\n return;\n }\n this.spwClick.emit(ev);\n };\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-link': true,\n 'spw-link--has-icon-right': this.icon && this.iconPosition === 'right',\n 'spw-link--has-icon-left': this.icon && this.iconPosition === 'left',\n [`spw-link--surface-${this.surface}`]: true,\n 'spw-link--has-icon': !!this.icon,\n };\n }\n\n render() {\n const { href, rel, target, icon, iconPosition, accAriaLabel, disabled } = this;\n const ariaAttributes = {\n 'aria-label': accAriaLabel,\n 'aria-disabled': disabled ? 'true' : null,\n };\n\n const iconClass = `spw-icon--${iconPosition}`;\n const iconElement = icon ? <spw-icon class={iconClass} icon={icon}></spw-icon> : null;\n\n return (\n <a href={disabled ? undefined : href} rel={rel} target={target} class={this.elementClass} onClick={this.onClick} {...ariaAttributes}>\n {iconPosition === 'left' && iconElement}\n <div class=\"spw-link__inner\">\n <slot></slot>\n </div>\n {iconPosition === 'right' && iconElement}\n </a>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-du-Bai6S.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/spw-pagination/spw-pagination.scss?tag=spw-pagination&encapsulation=shadow","src/components/spw-pagination/spw-pagination.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n%button {\n text-align: center;\n line-height: 32px;\n font-weight: 700;\n border-radius: 32px;\n font-size: 14px;\n min-width: 32px;\n height: 32px;\n &:focus-visible {\n outline: 3px solid white;\n outline-offset: -1px;\n box-shadow: 0 0 0 5px black;\n }\n}\n\n.spw-pagination {\n display: flex;\n flex-direction: column;\n align-items: center;\n @include breakpoint(md) {\n align-items: flex-start;\n }\n\n ul {\n display: flex;\n align-items: center;\n padding: 0;\n }\n\n &__item {\n margin-right: 12px;\n spw-icon {\n font-size: 18px;\n }\n button {\n padding: 0 6px;\n margin: 0;\n border: none;\n cursor: pointer;\n color: var(--spw-color-themes-grey-grey-900);\n background: none;\n @extend %button;\n }\n\n &:not(.spw-pagination__item--active, .spw-pagination__item--dots, .spw-pagination__item--disabled):hover {\n button {\n background: var(--spw-color-themes-grey-grey-200);\n }\n }\n\n &:not(.spw-pagination__item--active, .spw-pagination__item--dots, .spw-pagination__item--disabled):active {\n button {\n background: var(--spw-color-themes-grey-grey-300);\n }\n }\n\n &--arrow {\n button {\n padding: 0 12px;\n display: flex;\n gap: 8px;\n align-items: center;\n text-decoration: underline;\n &:hover {\n text-decoration: none;\n }\n }\n }\n\n &--dots {\n position: relative;\n top: 3px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: default;\n background: none;\n color: var(--spw-color-themes-grey-grey-400);\n @extend %button;\n spw-icon {\n font-size: 16px;\n }\n }\n\n &--desktop {\n display: none;\n @include breakpoint(md) {\n display: inline-block;\n }\n }\n\n &--active {\n button {\n color: white;\n background: var(--spw-ds-primary);\n }\n }\n }\n\n &__input {\n spw-text-field {\n width: 3ch;\n --spw-input-height: 32px;\n --spw-input-padding: 0 4px;\n --spw-input-text-align: center;\n --spw-input-font-size: 14px;\n }\n }\n\n &__mobile-arrows {\n margin-top: 12px;\n @include breakpoint(md) {\n display: none !important;\n }\n }\n\n &__total-pages {\n font-size: 14px;\n margin: 0 12px 0 6px;\n }\n}\n","import { Component, Fragment, Prop, Host, h, Event, EventEmitter, Watch, State } from '@stencil/core';\n\n@Component({\n tag: 'spw-pagination',\n styleUrl: 'spw-pagination.scss',\n shadow: true,\n})\nexport class SpwPagination {\n /** Nombre total d'éléments à paginer */\n @Prop() totalItems: number;\n /** Nombre d'éléments à afficher par page */\n @Prop() itemsPerPage: number;\n /** Indique si la pagination est désactivée */\n @Prop() isDisabled: boolean = false;\n /** Type de variante de la pagination : 'numbers' ou 'input' */\n @Prop() variant: 'numbers' | 'input' = 'numbers';\n /** Page actuellement sélectionnée, mutable */\n @Prop({ mutable: true }) currentPage: number = 1;\n\n /** Événement émis lorsque la page est changée, renvoie le numéro de la nouvelle page */\n @Event() pageChanged: EventEmitter<number>;\n\n private totalPages: number;\n @State() inputPageValue: string = '';\n @State() isMobile: boolean = window.innerWidth < 800;\n private debounceTimer: any;\n\n componentWillLoad() {\n this.calculateTotalPages();\n this.inputPageValue = this.currentPage.toString();\n window.addEventListener('resize', this.updateIsMobile);\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.updateIsMobile);\n }\n\n private updateIsMobile = () => {\n this.isMobile = window.innerWidth < 800;\n };\n\n @Watch('totalItems')\n @Watch('itemsPerPage')\n @Watch('currentPage')\n calculateTotalPages() {\n this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n\n private goToPage(page: number) {\n if (page !== this.currentPage && !this.isDisabled && page >= 1 && page <= this.totalPages) {\n this.currentPage = page;\n this.inputPageValue = this.currentPage.toString();\n this.pageChanged.emit(this.currentPage);\n }\n }\n\n private handleInputChange(event: Event) {\n const inputValue = (event.target as HTMLInputElement).value;\n this.inputPageValue = inputValue;\n const page = parseInt(inputValue, 10);\n\n if (!isNaN(page) && page >= 1 && page <= this.totalPages) {\n clearTimeout(this.debounceTimer);\n this.debounceTimer = setTimeout(() => {\n this.goToPage(page);\n }, 500);\n }\n }\n\n private getPaginationClass() {\n const pages = this.calculatePageRange();\n const ellipsisCount = pages.filter(({ page }) => page === '...').length;\n const hasEllipsisStart = ellipsisCount > 0 && pages[1]?.page === '...';\n const hasEllipsisEnd = ellipsisCount > 0 && pages[pages.length - 2]?.page === '...';\n\n let paginationClass = `spw-pagination spw-pagination--${this.currentPage} spw-pagination--total-${this.totalPages}`;\n\n if (ellipsisCount === 2) {\n paginationClass += ' spw-pagination--double-ellipsis';\n } else if (hasEllipsisStart) {\n paginationClass += ' spw-pagination--ellipsis-start';\n } else if (hasEllipsisEnd) {\n paginationClass += ' spw-pagination--ellipsis-end';\n }\n\n return paginationClass;\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n const page = parseInt(this.inputPageValue, 10);\n if (!isNaN(page)) {\n this.goToPage(page);\n }\n }\n }\n\n private calculateWidth(): string {\n const length = this.inputPageValue.length;\n if (length <= 1) {\n return '3ch';\n }\n return `${length + 1}ch`;\n }\n\n private calculatePageRange() {\n const pages = [];\n const { currentPage, totalPages, isMobile } = this;\n\n if (isMobile) {\n // Mode mobile\n if (totalPages <= 5) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--small-range' });\n }\n } else if (currentPage <= 3) {\n for (let i = 1; i <= 3; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--start-range' });\n }\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n pages.push({ page: totalPages, class: 'spw-pagination__item--end' });\n } else if (currentPage >= totalPages - 2) {\n pages.push({ page: 1, class: 'spw-pagination__item--start' });\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n for (let i = totalPages - 2; i <= totalPages; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--end-range' });\n }\n } else {\n pages.push({ page: 1, class: 'spw-pagination__item--start' });\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n for (let i = currentPage - 1; i <= currentPage + 1; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--middle-range' });\n }\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n pages.push({ page: totalPages, class: 'spw-pagination__item--end' });\n }\n } else {\n // Mode desktop\n if (totalPages <= 7) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--small-range' });\n }\n } else if (currentPage <= 4) {\n for (let i = 1; i <= 4; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--start-range' });\n }\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n pages.push({ page: totalPages, class: 'spw-pagination__item--end' });\n } else if (currentPage >= totalPages - 3) {\n pages.push({ page: 1, class: 'spw-pagination__item--start' });\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n for (let i = totalPages - 3; i <= totalPages; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--end-range' });\n }\n } else {\n pages.push({ page: 1, class: 'spw-pagination__item--start' });\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n for (let i = currentPage - 2; i <= currentPage + 2; i++) {\n pages.push({ page: i, class: 'spw-pagination__item--middle-range' });\n }\n pages.push({ page: '...', class: 'spw-pagination__item--ellipsis' });\n pages.push({ page: totalPages, class: 'spw-pagination__item--end' });\n }\n }\n\n return pages;\n }\n\n render() {\n const pages = this.calculatePageRange();\n const showPrevArrow = this.currentPage > 1;\n const showNextArrow = this.currentPage < this.totalPages;\n\n const prevArrow = showPrevArrow && (\n <li class=\"spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow\">\n <button onClick={() => this.goToPage(this.currentPage - 1)}>\n <spw-icon icon=\"fa-chevron-left\"></spw-icon> <span class=\"spw-pagination__item-arrow-text\">Précédent</span>\n </button>\n </li>\n );\n\n const nextArrow = showNextArrow && (\n <li class=\"spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow\">\n <button onClick={() => this.goToPage(this.currentPage + 1)}>\n <span class=\"spw-pagination__item-arrow-text\">Suivant</span> <spw-icon icon=\"fa-chevron-right\"></spw-icon>\n </button>\n </li>\n );\n\n const prevArrowMobile = this.currentPage > 1 && (\n <li class=\"spw-pagination__item spw-pagination__item--arrow\">\n <button onClick={() => this.goToPage(this.currentPage - 1)}>\n <spw-icon icon=\"fa-chevron-left\"></spw-icon> <span>Précédent</span>\n </button>\n </li>\n );\n\n const nextArrowMobile = this.currentPage < this.totalPages && (\n <li class=\"spw-pagination__item spw-pagination__item--arrow\">\n <button onClick={() => this.goToPage(this.currentPage + 1)} disabled={this.currentPage >= this.totalPages}>\n <span>Suivant</span> <spw-icon icon=\"fa-chevron-right\"></spw-icon>\n </button>\n </li>\n );\n\n const mobileArrows = (\n <ul class=\"spw-pagination__mobile-arrows\">\n {prevArrowMobile}\n {nextArrowMobile}\n </ul>\n );\n\n return (\n <Host>\n <div class={this.getPaginationClass()}>\n {this.variant === 'input' && (\n <Fragment>\n <ul>\n {prevArrow}\n <li class=\"spw-pagination__input\">\n <spw-text-field\n value={this.inputPageValue}\n type=\"text\"\n onInput={event => this.handleInputChange(event)}\n onKeyDown={event => this.handleKeyDown(event)}\n disabled={this.isDisabled}\n style={{ width: this.calculateWidth() }}\n ></spw-text-field>\n </li>\n <li class=\"spw-pagination__total-pages\">sur {this.totalPages} pages</li>\n {nextArrow}\n </ul>\n {mobileArrows}\n </Fragment>\n )}\n {this.variant === 'numbers' && (\n <Fragment>\n <ul>\n {prevArrow}\n\n {pages.map(({ page, class: pageClass }) => {\n if (page === '...') {\n return (\n <li class={`spw-pagination__item spw-pagination__item--dots ${pageClass}`}>\n <spw-icon icon=\"fa-ellipsis\"></spw-icon>\n </li>\n );\n }\n\n return (\n <li\n class={{\n 'spw-pagination__item': true,\n 'spw-pagination__item--active': page === this.currentPage,\n [pageClass]: true,\n }}\n >\n <button onClick={() => this.goToPage(page as number)} disabled={page === this.currentPage}>\n {page}\n </button>\n </li>\n );\n })}\n\n {nextArrow}\n </ul>\n {mobileArrows}\n </Fragment>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,h as t,H as o}from"./p-CvfVJV8a.js";const n="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:contents;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}:host([data-row-style=odd]) .spw-table-row{background-color:var(--spw-color-themes-grey-grey-50)}.spw-table-row{position:relative}.spw-table-row--disabled{cursor:not-allowed;opacity:.3;pointer-events:none}.spw-table-row--selected{background-color:var(--spw-color-themes-blue-blue-50);box-shadow:inset 3px 0 0 var(--spw-color-themes-blue-blue-500)}";const i=class{constructor(t){e(this,t);this.state="default"}get elementClass(){return{"spw-table-row":true,[`spw-table-row--${this.state}`]:true}}render(){return t(o,{key:"8bb4a99a8b04cc7ace91667f02b19728c297f9a0",part:"row"},t("tr",{key:"6e97f682648e12ef2f570cce380259e8d45a7f7c",class:this.elementClass,part:"row"},t("slot",{key:"b1abbcd9b1c6f2a39cb2e6c4284f5aff22310dde"})))}};i.style=n;export{i as spw_table_row};
|
|
2
|
-
//# sourceMappingURL=p-22f972ca.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwTableRowCss","SpwTableRow","constructor","hostRef","this","state","elementClass","render","h","Host","key","part","class"],"sources":["src/components/spw-table/spw-table-row/spw-table-row.scss?tag=spw-table-row&encapsulation=shadow","src/components/spw-table/spw-table-row/spw-table-row.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\n:host([data-row-style='odd']) {\n .spw-table-row {\n background-color: var(--spw-color-themes-grey-grey-50);\n }\n}\n\n.spw-table-row {\n position: relative;\n &--disabled {\n opacity: 0.3;\n pointer-events: none;\n cursor: not-allowed;\n }\n &--selected {\n background-color: var(--spw-color-themes-blue-blue-50);\n box-shadow: inset 3px 0 0 var(--spw-color-themes-blue-blue-500);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-table-row',\n styleUrl: 'spw-table-row.scss',\n shadow: true,\n})\nexport class SpwTableRow {\n /** Permet de changer le state du spw-table-row */\n @Prop() state?: 'default' | 'selected' | 'disabled' = 'default';\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-table-row': true,\n [`spw-table-row--${this.state}`]: true,\n };\n }\n\n render() {\n return (\n <Host part=\"row\">\n <tr class={this.elementClass} part=\"row\">\n <slot />\n </tr>\n </Host>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAiB,26F,MCOVC,EAAW,MALxB,WAAAC,CAAAC,G,UAOUC,KAAKC,MAAyC,SAkBvD,CAhBC,gBAAYC,GACV,MAAO,CACL,gBAAiB,KACjB,CAAC,kBAAkBF,KAAKC,SAAU,K,CAItC,MAAAE,GACE,OACEC,EAACC,EAAK,CAAAC,IAAA,2CAAAC,KAAK,OACTH,EAAI,MAAAE,IAAA,2CAAAE,MAAOR,KAAKE,aAAcK,KAAK,OACjCH,EAAQ,QAAAE,IAAA,8C","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as o,h as e,g as r,H as s}from"./p-CvfVJV8a.js";const n="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;--spw-button-font-size-small:14px;--spw-button-font-size-medium:16px;--spw-button-font-size-large:18px;--spw-button-px-small:16px;--spw-button-px-medium:20px;--spw-button-px-large:24px;--spw-button-py-small:8px;--spw-button-py-medium:12px;--spw-button-py-large:16px;box-sizing:border-box;display:inline-block;font-size:100%;line-height:1.3;vertical-align:top}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}:host([is-full-width]){display:block;width:100%}.spw-button{border:2px solid transparent;border-radius:9999px;cursor:pointer;display:block;font-weight:700;letter-spacing:.18px;line-height:1;outline:3px solid transparent;overflow:hidden;transition:all .1s ease-in;width:100%}.spw-button--fullwidth{width:100%!important}.spw-button--fullwidth-mobile{width:100%}@media (min-width:768px){.spw-button--fullwidth-mobile{width:auto}}.spw-button--is-icon-only{padding-left:0!important;padding-right:0!important}.spw-button:focus-visible{box-shadow:0 0 0 5px #000;outline:3px solid #fff;outline-offset:-1px}.spw-button spw-loading{left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.spw-button--loading{pointer-events:none;position:relative}.spw-button--loading spw-loading{opacity:1}.spw-button__inner,.spw-button__inner-text{align-items:center;display:flex;justify-content:center;position:relative;z-index:2}.spw-button--loading .spw-button__inner-text{opacity:0}.spw-button:is(a){text-decoration:none}.spw-button--primary{background:var(--spw-ds-primary);color:var(--spw-ds-white)}.spw-button--primary:not([disabled]):hover{background:var(--spw-ds-variant)}.spw-button--primary:not([disabled]):active{background:var(--spw-ds-active)}.spw-button--primary spw-loading{--spw-loading-border-color:hsla(0,0%,100%,.3);--spw-loading-spinner-color:#fff}.spw-button--secondary{background:var(--spw-color-themes-grey-grey-200);color:var(--spw-color-themes-grey-grey-900)}.spw-button--secondary:not([disabled]):hover{background:var(--spw-color-themes-grey-grey-300)}.spw-button--secondary:not([disabled]):active{background:var(--spw-color-themes-grey-grey-400)}.spw-button--secondary spw-loading{--spw-loading-border-color:rgba(0,0,0,.1);--spw-loading-spinner-color:var(--spw-ds-primary)}.spw-button--tertiary{background:none;border-radius:4px;color:var(--spw-ds-primary);transition:none}.spw-button--tertiary:not([disabled]):active,.spw-button--tertiary:not([disabled]):hover{text-decoration:underline}.spw-button--tertiary:not([disabled]):active{color:var(--spw-ds-active)}.spw-button--tertiary spw-loading{--spw-loading-border-color:rgba(0,0,0,.1);--spw-loading-spinner-color:var(--spw-ds-primary)}.spw-button--primary[disabled],.spw-button--secondary[disabled]{background:var(--spw-color-themes-grey-grey-100)}.spw-button--tertiary[disabled]{background:none}.spw-button--primary[disabled],.spw-button--secondary[disabled],.spw-button--tertiary[disabled]{border-color:none;color:var(--spw-color-themes-grey-grey-400);cursor:not-allowed}.spw-button--surface-dark{box-shadow:var(--spw-effect-elevation-8)}.spw-button--surface-dark:not([disabled]):active{box-shadow:var(--spw-effect-elevation-active-0),var(--spw-effect-elevation-active-1),var(--spw-effect-elevation-active-2)}.spw-button--surface-dark[disabled]{box-shadow:none}.spw-button--surface-dark.spw-button--primary{background:var(--spw-ds-white);border-color:var(--spw-ds-white);color:var(--spw-colors-support-grey-grey-900)}.spw-button--surface-dark.spw-button--primary:not([disabled]):hover{background:transparent;border-color:var(--spw-ds-white);color:var(--spw-ds-white)}.spw-button--surface-dark.spw-button--primary:not([disabled]):active{background:transparent;border-color:var(--spw-colors-support-grey-grey-500);color:var(--spw-colors-support-grey-grey-500)}.spw-button--surface-dark.spw-button--primary[disabled]{background:var(--spw-colors-support-grey-grey-700);border-color:var(--spw-colors-support-grey-grey-700);color:var(--spw-colors-support-grey-grey-800)}.spw-button--surface-dark.spw-button--primary spw-loading{--spw-loading-border-color:var(--spw-colors-support-grey-grey-300);--spw-loading-spinner-color:var(--spw-ds-primary)}.spw-button--surface-dark.spw-button--secondary{background:transparent;border-color:var(--spw-ds-white);color:var(--spw-ds-white)}.spw-button--surface-dark.spw-button--secondary:not([disabled]):hover{background:var(--spw-ds-white);border-color:var(--spw-ds-white);color:var(--spw-colors-support-grey-grey-900)}.spw-button--surface-dark.spw-button--secondary:not([disabled]):active{background:var(--spw-colors-support-grey-grey-400);border-color:var(--spw-colors-support-grey-grey-400);color:var(--spw-colors-support-grey-grey-900)}.spw-button--surface-dark.spw-button--secondary[disabled]{background:var(--spw-colors-support-grey-grey-700);border-color:var(--spw-colors-support-grey-grey-700);color:var(--spw-colors-support-grey-grey-800)}.spw-button--surface-dark.spw-button--secondary spw-loading{--spw-loading-border-color:hsla(0,0%,100%,.2);--spw-loading-spinner-color:#fff}.spw-button--surface-dark.spw-button--tertiary{box-shadow:none;color:var(--spw-ds-white)}.spw-button--surface-dark.spw-button--tertiary:not([disabled]):active,.spw-button--surface-dark.spw-button--tertiary:not([disabled]):hover{box-shadow:none}.spw-button--surface-dark.spw-button--tertiary:not([disabled]):active{color:var(--spw-ds-primary)}.spw-button--surface-dark.spw-button--tertiary[disabled]{color:var(--spw-colors-support-grey-grey-700)}.spw-button--surface-dark.spw-button--tertiary spw-loading{--spw-loading-border-color:hsla(0,0%,100%,.2);--spw-loading-spinner-color:#fff}.spw-button--surface-primary,.spw-button--surface-primary:not([disabled]):active,.spw-button--surface-primary[disabled]{box-shadow:none}.spw-button--surface-primary.spw-button--primary{background:var(--spw-ds-white);border-color:var(--spw-ds-white);color:var(--spw-colors-support-grey-grey-900)}.spw-button--surface-primary.spw-button--primary:not([disabled]):hover{background:transparent;border-color:var(--spw-ds-white);color:var(--spw-ds-white)}.spw-button--surface-primary.spw-button--primary:not([disabled]):active{background:transparent;border-color:#fff;color:#fff;opacity:.9}.spw-button--surface-primary.spw-button--primary[disabled]{background:#fff;border-color:#fff;color:var(--spw-colors-support-grey-grey-600);opacity:.5}.spw-button--surface-primary.spw-button--primary spw-loading{--spw-loading-border-color:var(--spw-colors-support-grey-grey-300);--spw-loading-spinner-color:var(--spw-ds-primary)}.spw-button--surface-primary.spw-button--secondary{background:transparent;border-color:var(--spw-ds-white);color:var(--spw-ds-white)}.spw-button--surface-primary.spw-button--secondary:not([disabled]):hover{background:var(--spw-ds-white);border-color:var(--spw-ds-white);color:var(--spw-colors-support-grey-grey-900)}.spw-button--surface-primary.spw-button--secondary:not([disabled]):active{background:#fff;border-color:#fff;color:var(--spw-colors-support-grey-grey-900);opacity:.9}.spw-button--surface-primary.spw-button--secondary[disabled]{background:#fff;border-color:#fff;color:var(--spw-colors-support-grey-grey-600);opacity:.5}.spw-button--surface-primary.spw-button--secondary spw-loading{--spw-loading-border-color:hsla(0,0%,100%,.2);--spw-loading-spinner-color:#fff}.spw-button--surface-primary.spw-button--tertiary{box-shadow:none;color:var(--spw-ds-white)}.spw-button--surface-primary.spw-button--tertiary:not([disabled]):active,.spw-button--surface-primary.spw-button--tertiary:not([disabled]):hover{box-shadow:none}.spw-button--surface-primary.spw-button--tertiary:not([disabled]):active{color:#fff;opacity:.9}.spw-button--surface-primary.spw-button--tertiary[disabled]{color:#fff;opacity:.5}.spw-button--surface-primary.spw-button--tertiary spw-loading{--spw-loading-border-color:hsla(0,0%,100%,.2);--spw-loading-spinner-color:#fff}.spw-button--surface-light.spw-button--primary[disabled]{background:var(--spw-colors-support-grey-grey-500);color:var(--spw-colors-support-grey-grey-600)}.spw-button--surface-light.spw-button--secondary{background:var(--spw-ds-white);color:var(--spw-colors-support-grey-grey-900)}.spw-button--surface-light.spw-button--secondary:not([disabled]):hover{background:var(--spw-colors-support-grey-grey-300)}.spw-button--surface-light.spw-button--secondary:not([disabled]):active{background:var(--spw-colors-support-grey-grey-500)}.spw-button--surface-light.spw-button--secondary[disabled]{background:var(--spw-colors-support-grey-grey-500);color:var(--spw-colors-support-grey-grey-600)}.spw-button--surface-light.spw-button--tertiary{color:var(--spw-colors-support-grey-grey-900)}.spw-button--surface-light.spw-button--tertiary:not([disabled]):active{color:var(--spw-ds-primary)}.spw-button--surface-light.spw-button--tertiary[disabled]{color:var(--spw-colors-support-grey-grey-600)}.spw-button--large{font-size:var(--spw-button-font-size-large);padding:var(--spw-button-py-large) var(--spw-button-px-large)}.spw-button--large .spw-button__inner-text{gap:12px}.spw-button--large.spw-button--is-icon-only{width:54px}.spw-button--medium{font-size:var(--spw-button-font-size-medium);padding:var(--spw-button-py-medium) var(--spw-button-px-medium)}.spw-button--medium .spw-button__inner-text{gap:8px}.spw-button--medium.spw-button--is-icon-only{width:45px}.spw-button--small{font-size:var(--spw-button-font-size-small);padding:var(--spw-button-py-small) var(--spw-button-px-small)}.spw-button--small .spw-button__inner-text{gap:6px}.spw-button--small.spw-button--is-icon-only{width:35px}.spw-button--large.spw-button--tertiary,.spw-button--medium.spw-button--tertiary,.spw-button--small.spw-button--tertiary{padding:4px}.spw-tw-mr-2{margin-right:.5rem}.spw-tw-relative{position:relative}.spw-tw-flex{display:flex}.spw-tw-w-full{width:100%}.spw-tw-items-center{align-items:center}.spw-tw-justify-between{justify-content:space-between}.spw-tw-gap-x-2{column-gap:.5rem}.spw-tw-gap-y-2{row-gap:.5rem}.spw-tw-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}";const a=class{constructor(e){t(this,e);this.spwFocus=o(this,"spwFocus",7);this.spwBlur=o(this,"spwBlur",7);this.spwNavigate=o(this,"spwNavigate",7);this.target="_self";this.name="";this.value="";this.type="button";this.variant="primary";this.surface="default";this.disabled=false;this.size="medium";this.isIconOnly=false;this.isFullWidth=false;this.isFullWidthMobile=true;this.isLoading=false;this.onFocus=()=>{this.spwFocus.emit()};this.onBlur=()=>{this.spwBlur.emit()};this.onClick=t=>{if(this.disabled||this.isLoading){t.preventDefault();return}if(this.type==="reset"){t.preventDefault();this.resetFormInputs();return}if(this.type==="submit"&&!this.disabled){const o=this.el.closest("form");if(o){t.preventDefault();o.requestSubmit();return}}if(this.href!==undefined){this.spwNavigate.emit(t)}}}resetFormInputs(){const t=this.el.closest("form");if(!t)return;const o=t.querySelectorAll("spw-input");o.forEach((t=>{const o=t.shadowRoot.querySelector("input");if(o){o.value=""}}))}get elementClass(){return{"spw-button":true,[`spw-button--${this.variant}`]:true,[`spw-button--surface-${this.surface}`]:true,[`spw-button--${this.size}`]:true,[`spw-button--is-icon-only`]:this.isIconOnly,[`spw-button--fullwidth`]:this.isFullWidth,[`spw-button--fullwidth-mobile`]:this.isFullWidthMobile,[`spw-button--loading`]:this.isLoading}}render(){const{type:t,download:o,href:r,rel:s,target:n,name:a,value:i}=this;const p=this.href===undefined?"button":"a";const d=p==="button"?{type:t,name:a,value:i}:{download:o,href:r,rel:s,target:n};const l=this.icon&&!this.iconPosition?"right":this.iconPosition;const w=`spw-icon--${l}`;const c=this.icon?e("spw-icon",{class:w,icon:this.icon}):null;const u=this.disabled;const b={"aria-label":this===null||this===void 0?void 0:this.accAriaLabel,"aria-disabled":u?"true":null};return e(p,Object.assign({key:"e9eef72fb99c615172917acc24f70ebd45952829"},d,{class:this.elementClass,disabled:u,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick},b),e("div",{key:"6a855c4097ae1aa79900f755448c03990f21a5cd",class:"spw-button__inner"},e("div",{key:"df7af3c99186aa808a65526d4c205a29d36ed285",class:"spw-button__inner-text"},l==="left"&&c,!this.isIconOnly&&e("slot",{key:"9909ce45a0e6e832fc98f5ea96da6c6c0a934399"}),l==="right"&&c)),e("spw-loading",{key:"5433366a7c599fcedd58cc6361bcb058c407689c",text:""}))}get el(){return r(this)}};a.style=n;const i="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;--spw-loading-border-color:var(--spw-color-themes-grey-grey-200);--spw-loading-spinner-color:var(--spw-ds-primary);box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-loading{display:flex}.spw-loading__spinner{animation:loading 1s linear infinite;border:4px solid var(--spw-loading-border-color);border-radius:50%;border-top-color:var(--spw-loading-spinner-color);height:20px;width:20px}@keyframes loading{to{transform:rotate(1turn)}}.spw-loading__text{color:var(--spw-color-themes-grey-grey-800);margin-left:8px}.spw-tw-mr-2{margin-right:.5rem}.spw-tw-relative{position:relative}.spw-tw-flex{display:flex}.spw-tw-w-full{width:100%}.spw-tw-items-center{align-items:center}.spw-tw-justify-between{justify-content:space-between}.spw-tw-gap-x-2{column-gap:.5rem}.spw-tw-gap-y-2{row-gap:.5rem}.spw-tw-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.spw-tw-mb-10{margin-bottom:2.5rem}.spw-tw-mb-6{margin-bottom:1.5rem}.spw-tw-ml-2{margin-left:.5rem}.spw-tw-mr-4{margin-right:1rem}.spw-tw-mt-12{margin-top:3rem}.-spw-tw-mt-1{margin-top:-.25rem}.spw-tw-mb-2{margin-bottom:.5rem}";const p=class{constructor(o){t(this,o);this.text="Chargement..."}render(){return e(s,{key:"407115d12f98004dce5494c8307e2e9a6a96c069"},e("div",{key:"d8d178a2e22ec41314d221847c024abe1ef2599a",class:"spw-loading"},e("div",{key:"c173f74b988d9e9f84f5819b6d244143ec303e29",class:"spw-loading__spinner"}),this.text&&e("p",{key:"71770d28ebe8c1a034a93fdda549d08bc680eced",class:"spw-loading__text"},this.text)))}};p.style=i;export{a as spw_button,p as spw_loading};
|
|
2
|
-
//# sourceMappingURL=p-2c28684f.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwButtonCss","SpwButton","constructor","hostRef","this","target","name","value","type","variant","surface","disabled","size","isIconOnly","isFullWidth","isFullWidthMobile","isLoading","onFocus","spwFocus","emit","onBlur","spwBlur","onClick","ev","preventDefault","resetFormInputs","form","el","closest","requestSubmit","href","undefined","spwNavigate","spwInputs","querySelectorAll","forEach","spwInput","input","shadowRoot","querySelector","elementClass","render","download","rel","TagType","attrs","iconPosition","icon","iconClass","iconElement","h","class","isDisabled","ariaAttributes","accAriaLabel","Object","assign","key","text","spwLoadingCss","SpwLoading","Host"],"sources":["src/components/spw-button/spw-button.scss?tag=spw-button&encapsulation=shadow","src/components/spw-button/spw-button.tsx","src/components/spw-loading/spw-loading.scss?tag=spw-loading&encapsulation=shadow","src/components/spw-loading/spw-loading.tsx"],"sourcesContent":["@import '../../scss/mixins';\n\n:host {\n display: inline-block;\n vertical-align: top;\n --spw-button-font-size-small: 14px;\n --spw-button-font-size-medium: 16px;\n --spw-button-font-size-large: 18px;\n --spw-button-px-small: 16px;\n --spw-button-px-medium: 20px;\n --spw-button-px-large: 24px;\n --spw-button-py-small: 8px;\n --spw-button-py-medium: 12px;\n --spw-button-py-large: 16px;\n}\n\n:host([is-full-width]) {\n display: block;\n width: 100%;\n}\n\n/* Base */\n\n.spw-button {\n border: 2px solid transparent;\n display: block;\n width: 100%;\n border-radius: 9999px;\n letter-spacing: 0.18px;\n cursor: pointer;\n font-weight: bold;\n outline: 3px solid transparent;\n overflow: hidden;\n transition: all 0.1s ease-in;\n line-height: 1;\n\n &--fullwidth {\n width: 100% !important;\n }\n\n &--fullwidth-mobile {\n width: 100%;\n @include breakpoint(md) {\n width: auto;\n }\n }\n\n &--is-icon-only {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n &:focus-visible {\n outline: 3px solid white;\n outline-offset: -1px;\n box-shadow: 0 0 0 5px black;\n }\n\n spw-loading {\n opacity: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1;\n }\n\n &--loading {\n position: relative;\n pointer-events: none;\n spw-loading {\n opacity: 1;\n }\n }\n\n &__inner {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 2;\n }\n\n &__inner-text {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 2;\n .spw-button--loading & {\n opacity: 0;\n }\n }\n\n &:is(a) {\n text-decoration: none;\n }\n}\n\n/* Variants */\n\n.spw-button {\n &--primary {\n background: var(--spw-ds-primary);\n color: var(--spw-ds-white);\n &:not([disabled]):hover {\n background: var(--spw-ds-variant);\n }\n &:not([disabled]):active {\n background: var(--spw-ds-active);\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.3);\n --spw-loading-spinner-color: white;\n }\n }\n\n &--secondary {\n background: var(--spw-color-themes-grey-grey-200);\n color: var(--spw-color-themes-grey-grey-900);\n &:not([disabled]):hover {\n background: var(--spw-color-themes-grey-grey-300);\n }\n &:not([disabled]):active {\n background: var(--spw-color-themes-grey-grey-400);\n }\n spw-loading {\n --spw-loading-border-color: rgba(0, 0, 0, 0.1);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n }\n }\n\n &--tertiary {\n transition: none;\n border-radius: 4px;\n background: none;\n color: var(--spw-ds-primary);\n &:not([disabled]):hover,\n &:not([disabled]):active {\n text-decoration: underline;\n }\n &:not([disabled]):active {\n color: var(--spw-ds-active);\n }\n spw-loading {\n --spw-loading-border-color: rgba(0, 0, 0, 0.1);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n }\n }\n}\n\n/* Disabled */\n\n.spw-button {\n &--primary[disabled],\n &--secondary[disabled] {\n background: var(--spw-color-themes-grey-grey-100);\n }\n\n &--tertiary[disabled] {\n background: none;\n }\n\n &--primary[disabled],\n &--secondary[disabled],\n &--tertiary[disabled] {\n color: var(--spw-color-themes-grey-grey-400);\n border-color: none;\n cursor: not-allowed;\n }\n}\n\n/* Surface dark */\n\n.spw-button {\n &--surface-dark {\n box-shadow: var(--spw-effect-elevation-8);\n &:not([disabled]):active {\n box-shadow: var(--spw-effect-elevation-active-0), var(--spw-effect-elevation-active-1), var(--spw-effect-elevation-active-2);\n }\n\n &[disabled] {\n box-shadow: none;\n }\n\n &.spw-button--primary {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-ds-white);\n background: var(--spw-ds-white);\n &:not([disabled]):hover {\n background: transparent;\n color: var(--spw-ds-white);\n border-color: var(--spw-ds-white);\n }\n &:not([disabled]):active {\n background: transparent;\n color: var(--spw-colors-support-grey-grey-500);\n border-color: var(--spw-colors-support-grey-grey-500);\n }\n &[disabled] {\n border-color: var(--spw-colors-support-grey-grey-700);\n background: var(--spw-colors-support-grey-grey-700);\n color: var(--spw-colors-support-grey-grey-800);\n }\n spw-loading {\n --spw-loading-border-color: var(--spw-colors-support-grey-grey-300);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n }\n }\n\n &.spw-button--secondary {\n background: transparent;\n color: var(--spw-ds-white);\n border-color: var(--spw-ds-white);\n &:not([disabled]):hover {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-ds-white);\n background: var(--spw-ds-white);\n }\n &:not([disabled]):active {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-colors-support-grey-grey-400);\n background: var(--spw-colors-support-grey-grey-400);\n }\n &[disabled] {\n border-color: var(--spw-colors-support-grey-grey-700);\n background: var(--spw-colors-support-grey-grey-700);\n color: var(--spw-colors-support-grey-grey-800);\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.2);\n --spw-loading-spinner-color: white;\n }\n }\n\n &.spw-button--tertiary {\n box-shadow: none;\n color: var(--spw-ds-white);\n &:not([disabled]):hover,\n &:not([disabled]):active {\n box-shadow: none;\n }\n &:not([disabled]):active {\n color: var(--spw-ds-primary);\n }\n &[disabled] {\n color: var(--spw-colors-support-grey-grey-700);\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.2);\n --spw-loading-spinner-color: white;\n }\n }\n }\n}\n\n/* Surface primary */\n\n.spw-button {\n &--surface-primary {\n box-shadow: none;\n &:not([disabled]):active {\n box-shadow: none;\n }\n\n &[disabled] {\n box-shadow: none;\n }\n\n &.spw-button--primary {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-ds-white);\n background: var(--spw-ds-white);\n &:not([disabled]):hover {\n background: transparent;\n color: var(--spw-ds-white);\n border-color: var(--spw-ds-white);\n }\n &:not([disabled]):active {\n background: transparent;\n color: white;\n border-color: white;\n opacity: 0.9;\n }\n &[disabled] {\n border-color: white;\n background: white;\n color: var(--spw-colors-support-grey-grey-600);\n opacity: 0.5;\n }\n spw-loading {\n --spw-loading-border-color: var(--spw-colors-support-grey-grey-300);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n }\n }\n\n &.spw-button--secondary {\n background: transparent;\n color: var(--spw-ds-white);\n border-color: var(--spw-ds-white);\n &:not([disabled]):hover {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: var(--spw-ds-white);\n background: var(--spw-ds-white);\n }\n &:not([disabled]):active {\n color: var(--spw-colors-support-grey-grey-900);\n border-color: white;\n background: white;\n opacity: 0.9;\n }\n &[disabled] {\n border-color: white;\n background: white;\n color: var(--spw-colors-support-grey-grey-600);\n opacity: 0.5;\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.2);\n --spw-loading-spinner-color: white;\n }\n }\n\n &.spw-button--tertiary {\n box-shadow: none;\n color: var(--spw-ds-white);\n &:not([disabled]):hover,\n &:not([disabled]):active {\n box-shadow: none;\n }\n &:not([disabled]):active {\n color: white;\n opacity: 0.9;\n }\n &[disabled] {\n color: white;\n opacity: 0.5;\n }\n spw-loading {\n --spw-loading-border-color: rgba(255, 255, 255, 0.2);\n --spw-loading-spinner-color: white;\n }\n }\n }\n}\n\n/* Surface light */\n\n.spw-button {\n &--surface-light {\n &.spw-button--primary {\n &[disabled] {\n color: var(--spw-colors-support-grey-grey-600);\n background: var(--spw-colors-support-grey-grey-500);\n }\n }\n\n &.spw-button--secondary {\n color: var(--spw-colors-support-grey-grey-900);\n background: var(--spw-ds-white);\n &:not([disabled]):hover {\n background: var(--spw-colors-support-grey-grey-300);\n }\n &:not([disabled]):active {\n background: var(--spw-colors-support-grey-grey-500);\n }\n &[disabled] {\n color: var(--spw-colors-support-grey-grey-600);\n background: var(--spw-colors-support-grey-grey-500);\n }\n }\n\n &.spw-button--tertiary {\n color: var(--spw-colors-support-grey-grey-900);\n &:not([disabled]):active {\n color: var(--spw-ds-primary);\n }\n &[disabled] {\n color: var(--spw-colors-support-grey-grey-600);\n }\n }\n }\n}\n\n/* Sizes */\n\n.spw-button {\n &--large {\n font-size: var(--spw-button-font-size-large);\n padding: var(--spw-button-py-large) var(--spw-button-px-large);\n .spw-button__inner-text {\n gap: 12px;\n }\n &.spw-button--is-icon-only {\n width: 54px;\n }\n }\n\n &--medium {\n font-size: var(--spw-button-font-size-medium);\n padding: var(--spw-button-py-medium) var(--spw-button-px-medium);\n .spw-button__inner-text {\n gap: 8px;\n }\n &.spw-button--is-icon-only {\n width: 45px;\n }\n }\n\n &--small {\n font-size: var(--spw-button-font-size-small);\n padding: var(--spw-button-py-small) var(--spw-button-px-small);\n .spw-button__inner-text {\n gap: 6px;\n }\n &.spw-button--is-icon-only {\n width: 35px;\n }\n }\n\n &--small,\n &--medium,\n &--large {\n &.spw-button--tertiary {\n padding: 4px;\n }\n }\n}\n","import { Component, Element, Prop, h, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'spw-button',\n styleUrl: 'spw-button.scss',\n shadow: true,\n})\nexport class SpwButton {\n @Element() el: HTMLSpwButtonElement;\n\n /** Spécifie le lien si nécessaire */\n @Prop() href?: string;\n /** Attribut target, s'applique uniquement si href est rempli */\n @Prop() target?: string = '_self';\n /** Remplit l'attribut rel */\n @Prop() rel?: string;\n /** Permet de télécharger un fichier au lieu de naviguer vers le lien */\n @Prop() download?: string;\n /** Nom du bouton */\n @Prop() name?: string = '';\n /** Valeur du bouton */\n @Prop() value?: string | number = '';\n /** Type du bouton */\n @Prop() type?: 'button' | 'submit' | 'reset' = 'button';\n\n /** Permet de sélectionner une variante du bouton */\n @Prop() variant?: 'primary' | 'secondary' | 'tertiary' = 'primary';\n /** Permet de choisir la surface d'arrière-plan du bouton */\n @Prop() surface?: 'default' | 'dark' | 'light' | 'primary' = 'default';\n /** Si désactivé, le bouton n'est pas utilisable */\n @Prop() disabled?: boolean = false;\n /** Permet de spécifier la taille du bouton */\n @Prop() size?: 'large' | 'medium' | 'small' = 'medium';\n\n /** Remplit l'attribut aria-label, utilisé à des fins d'accessibilité */\n @Prop() accAriaLabel?: string;\n\n /** Si rempli, vous pouvez utiliser une référence d'icône font-awesome */\n @Prop() isIconOnly?: boolean = false;\n /** Si rempli, vous pouvez utiliser une référence d'icône font-awesome */\n @Prop() icon?: string;\n /** Position de l'icône à l'intérieur du bouton */\n @Prop() iconPosition?: 'left' | 'right';\n\n /** Si vrai, le bouton prend toute la largeur */\n @Prop() isFullWidth?: boolean = false;\n /** Si vrai, le bouton prend toute la largeur en mobile */\n @Prop({ reflect: true }) isFullWidthMobile?: boolean = true;\n\n /** Affiche un état de chargement, désactive le bouton */\n @Prop() isLoading?: boolean = false;\n\n /** Lors du focus */\n @Event() spwFocus: EventEmitter<void>;\n /** Lors de la perte du focus */\n @Event() spwBlur: EventEmitter<void>;\n /** Navigation vers un lien lors du clic */\n @Event() spwNavigate: EventEmitter<MouseEvent>;\n\n private onFocus = () => {\n this.spwFocus.emit();\n };\n\n private onBlur = () => {\n this.spwBlur.emit();\n };\n\n private resetFormInputs() {\n const form = this.el.closest('form');\n if (!form) return;\n\n const spwInputs = form.querySelectorAll('spw-input');\n spwInputs.forEach(spwInput => {\n const input = spwInput.shadowRoot.querySelector('input');\n if (input) {\n input.value = '';\n }\n });\n }\n\n private onClick = (ev: MouseEvent) => {\n if (this.disabled || this.isLoading) {\n ev.preventDefault();\n return;\n }\n\n if (this.type === 'reset') {\n ev.preventDefault();\n this.resetFormInputs();\n return;\n }\n\n if (this.type === 'submit' && !this.disabled) {\n const form = this.el.closest('form');\n if (form) {\n ev.preventDefault();\n form.requestSubmit();\n return;\n }\n }\n\n if (this.href !== undefined) {\n this.spwNavigate.emit(ev);\n }\n };\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-button': true,\n [`spw-button--${this.variant}`]: true,\n [`spw-button--surface-${this.surface}`]: true,\n [`spw-button--${this.size}`]: true,\n [`spw-button--is-icon-only`]: this.isIconOnly,\n [`spw-button--fullwidth`]: this.isFullWidth,\n [`spw-button--fullwidth-mobile`]: this.isFullWidthMobile,\n [`spw-button--loading`]: this.isLoading,\n };\n }\n\n render() {\n const { type, download, href, rel, target, name, value } = this;\n const TagType = this.href === undefined ? 'button' : 'a';\n const attrs =\n TagType === 'button'\n ? { type: type, name, value }\n : {\n download,\n href,\n rel,\n target,\n };\n\n const iconPosition = this.icon && !this.iconPosition ? 'right' : this.iconPosition;\n const iconClass = `spw-icon--${iconPosition}`;\n const iconElement = this.icon ? <spw-icon class={iconClass} icon={this.icon}></spw-icon> : null;\n\n const isDisabled = this.disabled;\n\n const ariaAttributes = {\n 'aria-label': this?.accAriaLabel,\n 'aria-disabled': isDisabled ? 'true' : null,\n };\n\n return (\n <TagType {...attrs} class={this.elementClass} disabled={isDisabled} onFocus={this.onFocus} onBlur={this.onBlur} onClick={this.onClick} {...ariaAttributes}>\n <div class=\"spw-button__inner\">\n <div class=\"spw-button__inner-text\">\n {iconPosition === 'left' && iconElement}\n {!this.isIconOnly && <slot></slot>}\n {iconPosition === 'right' && iconElement}\n </div>\n </div>\n <spw-loading text=\"\"></spw-loading>\n </TagType>\n );\n }\n}\n",":host {\n display: block;\n --spw-loading-border-color: var(--spw-color-themes-grey-grey-200);\n --spw-loading-spinner-color: var(--spw-ds-primary);\n}\n\n.spw-loading {\n display: flex;\n &__spinner {\n width: 20px;\n height: 20px;\n border-radius: 50%;\n border: 4px solid var(--spw-loading-border-color);\n border-top-color: var(--spw-loading-spinner-color);\n animation: loading 1s linear infinite;\n }\n @keyframes loading {\n to {\n transform: rotate(360deg);\n }\n }\n &__text {\n margin-left: 8px;\n color: var(--spw-color-themes-grey-grey-800);\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'spw-loading',\n styleUrl: 'spw-loading.scss',\n shadow: true,\n})\nexport class SpwLoading {\n /** Permet de spécifier un texte de chargement */\n @Prop() text?: string = 'Chargement...';\n\n render() {\n return (\n <Host>\n <div class=\"spw-loading\">\n <div class=\"spw-loading__spinner\"></div>\n {this.text && <p class=\"spw-loading__text\">{this.text}</p>}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAe,21Y,MCORC,EAAS,MALtB,WAAAC,CAAAC,G,uHAWUC,KAAMC,OAAY,QAMlBD,KAAIE,KAAY,GAEhBF,KAAKG,MAAqB,GAE1BH,KAAII,KAAmC,SAGvCJ,KAAOK,QAA0C,UAEjDL,KAAOM,QAA8C,UAErDN,KAAQO,SAAa,MAErBP,KAAIQ,KAAkC,SAMtCR,KAAUS,WAAa,MAOvBT,KAAWU,YAAa,MAEPV,KAAiBW,kBAAa,KAG/CX,KAASY,UAAa,MAStBZ,KAAOa,QAAG,KAChBb,KAAKc,SAASC,MAAM,EAGdf,KAAMgB,OAAG,KACfhB,KAAKiB,QAAQF,MAAM,EAgBbf,KAAAkB,QAAWC,IACjB,GAAInB,KAAKO,UAAYP,KAAKY,UAAW,CACnCO,EAAGC,iBACH,M,CAGF,GAAIpB,KAAKI,OAAS,QAAS,CACzBe,EAAGC,iBACHpB,KAAKqB,kBACL,M,CAGF,GAAIrB,KAAKI,OAAS,WAAaJ,KAAKO,SAAU,CAC5C,MAAMe,EAAOtB,KAAKuB,GAAGC,QAAQ,QAC7B,GAAIF,EAAM,CACRH,EAAGC,iBACHE,EAAKG,gBACL,M,EAIJ,GAAIzB,KAAK0B,OAASC,UAAW,CAC3B3B,KAAK4B,YAAYb,KAAKI,E,EAsD3B,CAzFS,eAAAE,GACN,MAAMC,EAAOtB,KAAKuB,GAAGC,QAAQ,QAC7B,IAAKF,EAAM,OAEX,MAAMO,EAAYP,EAAKQ,iBAAiB,aACxCD,EAAUE,SAAQC,IAChB,MAAMC,EAAQD,EAASE,WAAWC,cAAc,SAChD,GAAIF,EAAO,CACTA,EAAM9B,MAAQ,E,KA+BpB,gBAAYiC,GACV,MAAO,CACL,aAAc,KACd,CAAC,eAAepC,KAAKK,WAAY,KACjC,CAAC,uBAAuBL,KAAKM,WAAY,KACzC,CAAC,eAAeN,KAAKQ,QAAS,KAC9B,CAAC,4BAA6BR,KAAKS,WACnC,CAAC,yBAA0BT,KAAKU,YAChC,CAAC,gCAAiCV,KAAKW,kBACvC,CAAC,uBAAwBX,KAAKY,U,CAIlC,MAAAyB,GACE,MAAMjC,KAAEA,EAAIkC,SAAEA,EAAQZ,KAAEA,EAAIa,IAAEA,EAAGtC,OAAEA,EAAMC,KAAEA,EAAIC,MAAEA,GAAUH,KAC3D,MAAMwC,EAAUxC,KAAK0B,OAASC,UAAY,SAAW,IACrD,MAAMc,EACJD,IAAY,SACR,CAAEpC,KAAMA,EAAMF,OAAMC,SACpB,CACEmC,WACAZ,OACAa,MACAtC,UAGR,MAAMyC,EAAe1C,KAAK2C,OAAS3C,KAAK0C,aAAe,QAAU1C,KAAK0C,aACtE,MAAME,EAAY,aAAaF,IAC/B,MAAMG,EAAc7C,KAAK2C,KAAOG,EAAA,YAAUC,MAAOH,EAAWD,KAAM3C,KAAK2C,OAAoB,KAE3F,MAAMK,EAAahD,KAAKO,SAExB,MAAM0C,EAAiB,CACrB,aAAcjD,OAAI,MAAJA,YAAA,SAAAA,KAAMkD,aACpB,gBAAiBF,EAAa,OAAS,MAGzC,OACEF,EAACN,EAAOW,OAAAC,OAAA,CAAAC,IAAA,4CAAKZ,EAAO,CAAAM,MAAO/C,KAAKoC,aAAc7B,SAAUyC,EAAYnC,QAASb,KAAKa,QAASG,OAAQhB,KAAKgB,OAAQE,QAASlB,KAAKkB,SAAa+B,GACzIH,EAAK,OAAAO,IAAA,2CAAAN,MAAM,qBACTD,EAAK,OAAAO,IAAA,2CAAAN,MAAM,0BACRL,IAAiB,QAAUG,GAC1B7C,KAAKS,YAAcqC,EAAa,QAAAO,IAAA,6CACjCX,IAAiB,SAAWG,IAGjCC,EAAA,eAAAO,IAAA,2CAAaC,KAAK,K,qCCxJ1B,MAAMC,EAAgB,ssH,MCOTC,EAAU,MALvB,WAAA1D,CAAAC,G,UAOUC,KAAIsD,KAAY,eAYzB,CAVC,MAAAjB,GACE,OACES,EAACW,EAAI,CAAAJ,IAAA,4CACHP,EAAK,OAAAO,IAAA,2CAAAN,MAAM,eACTD,EAAK,OAAAO,IAAA,2CAAAN,MAAM,yBACV/C,KAAKsD,MAAQR,EAAA,KAAAO,IAAA,2CAAGN,MAAM,qBAAqB/C,KAAKsD,O","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwTableFooterCss","SpwTableFooter","render","h","key","part","style","captionSide","class","name"],"sources":["src/components/spw-table/spw-table-footer/spw-table-footer.scss?tag=spw-table-footer&encapsulation=shadow","src/components/spw-table/spw-table-footer/spw-table-footer.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\ncaption {\n :host-context(.spw-table--is-sticky) & {\n position: sticky;\n bottom: 0;\n z-index: 20;\n background: var(--spw-ds-white);\n border: 1px solid var(--spw-color-themes-grey-grey-300);\n }\n}\n\n.spw-table-footer {\n padding: 16px 24px;\n caption-side: bottom;\n font-size: 14px;\n color: var(--spw-color-themes-grey-grey-900);\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n ::slotted([slot='right']) {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n }\n}\n","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-table-footer',\n styleUrl: 'spw-table-footer.scss',\n shadow: true,\n})\nexport class SpwTableFooter {\n render() {\n return (\n <caption part=\"tfoot\" style={{ captionSide: 'bottom' }}>\n <div class=\"spw-table-footer\">\n <slot name=\"left\" />\n <slot name=\"center\" />\n <slot name=\"right\" />\n </div>\n </caption>\n );\n }\n}\n"],"mappings":"2CAAA,MAAMA,EAAoB,0gG,MCObC,EAAc,M,yBACzB,MAAAC,GACE,OACEC,EAAA,WAAAC,IAAA,2CAASC,KAAK,QAAQC,MAAO,CAAEC,YAAa,WAC1CJ,EAAK,OAAAC,IAAA,2CAAAI,MAAM,oBACTL,EAAM,QAAAC,IAAA,2CAAAK,KAAK,SACXN,EAAM,QAAAC,IAAA,2CAAAK,KAAK,WACXN,EAAA,QAAAC,IAAA,2CAAMK,KAAK,W","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,h as e}from"./p-CvfVJV8a.js";const i="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-search-field{position:relative}.spw-search-field--large spw-text-field{--spw-input-height:54px;--spw-input-padding:16px 24px;--spw-input-radius:60px;--spw-input-border:transparent;--spw-input-icon-search-color:var(--spw-ds-primary)}.spw-search-field__options{background-color:#fff;border:1px solid var(--spw-color-themes-grey-grey-800);border-radius:0 0 4px 4px;margin-top:-2px;max-height:200px;overflow-y:auto;position:absolute;transition:transform .3s ease,opacity .3s ease;width:100%;z-index:44}.spw-search-field__options--down,.spw-search-field__options--up{top:100%;transform:translateY(0)}.spw-search-field__option{border-bottom:1px solid var(--spw-color-themes-grey-grey-900);color:var(--spw-color-themes-grey-grey-900);cursor:pointer;padding:12px;text-align:left;transition:background-color .2s ease}.spw-search-field__option:hover{background-color:var(--spw-color-themes-grey-grey-200)}.spw-search-field__option:last-child{border-bottom:none}.spw-search-field__option--focused{background-color:var(--spw-color-themes-grey-grey-300)}.spw-search-field__option--selected{font-weight:700}.spw-search-field__no-results{color:var(--spw-color-themes-grey-grey-600);cursor:not-allowed;padding:12px;text-align:left}.spw-tw-italic{font-style:italic}.-spw-tw-mt-1{margin-top:-.25rem}.spw-tw-mb-2{margin-bottom:.5rem}";const s=class{constructor(e){t(this,e);this.placeholder="Recherche...";this.size="medium";this.label="";this.required=false;this.filteredItems=[];this.searchText="";this.isOpen=false;this.focusedItemIndex=null;this.dropdownDirection="down";this.handleClickOutside=t=>{if(this.isOpen){const e=t.composedPath()[0];const i=this.hostElement.contains(e);if(!i){this.isOpen=false}}}}componentWillLoad(){if(this.items){this.parseItems(this.items)}else{this.filteredItems=[]}}componentDidLoad(){document.addEventListener("click",this.handleClickOutside)}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside)}parseItems(t){if(!t){this.filteredItems=[];return}try{this.filteredItems=JSON.parse(t)}catch(e){console.error("Invalid JSON format for items:",t);this.filteredItems=[]}}handleSearchInput(t){const e=t.target;this.searchText=e.value;this.filterItems();this.determineDropdownDirection();this.isOpen=true}filterItems(){if(!this.items){this.filteredItems=[];return}const t=this.normalizeString(this.searchText);this.filteredItems=JSON.parse(this.items).filter((e=>this.normalizeString(e.label).includes(t)))}normalizeString(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase()}selectItem(t){this.searchText=t.label;this.isOpen=false;if(t.url){window.location.href=t.url}}determineDropdownDirection(){const t=this.hostElement.getBoundingClientRect();const e=window.innerHeight;if(t.bottom+200>e&&t.top>200){this.dropdownDirection="up"}else{this.dropdownDirection="down"}}handleKeyDown(t){switch(t.key){case"ArrowDown":t.preventDefault();if(this.isOpen){this.focusedItemIndex=this.focusedItemIndex===null?0:(this.focusedItemIndex+1)%this.filteredItems.length}break;case"ArrowUp":t.preventDefault();if(this.isOpen){this.focusedItemIndex=this.focusedItemIndex===null?this.filteredItems.length-1:(this.focusedItemIndex-1+this.filteredItems.length)%this.filteredItems.length}break;case"Enter":t.preventDefault();if(this.isOpen&&this.focusedItemIndex!==null){this.selectItem(this.filteredItems[this.focusedItemIndex])}break;case"Escape":this.isOpen=false;break}}highlightMatch(t){const i=this.normalizeString(this.searchText);const s=this.normalizeString(t);const o=s.indexOf(i);if(o===-1||!this.searchText){return t}const n=o+i.length;return e("span",null,t.slice(0,o),e("strong",null,t.slice(o,n)),t.slice(n))}get elementClass(){return{"spw-search-field":true,[`spw-search-field--${this.size}`]:true}}render(){return e("div",{key:"d00840338c82da443e332932278054e498365138",ref:t=>this.hostElement=t,class:this.elementClass},e("spw-text-field",{key:"9c05d301ae19f15d1e1669b8addf0474ab403802",placeholder:this.placeholder,name:this.name,label:this.label,size:this.size,"is-search":true,"is-clear":true,required:this.required,disabled:this.disabled,assistiveText:this.assistiveText,value:this.searchText,onInput:t=>this.handleSearchInput(t),onKeyDown:t=>this.handleKeyDown(t)}),this.isOpen&&!!this.items&&e("div",{key:"4f249bd675da1df764386f15f30b721d15e14ebc",class:`spw-search-field__options spw-search-field__options--${this.dropdownDirection}`},!!this.filteredItems.length&&e("ul",{key:"404416e18cbd2eb5b5679f4353febc3994e438f8"},this.filteredItems.map(((t,i)=>e("li",{class:{"spw-search-field__option":true,"spw-search-field__option--focused":i===this.focusedItemIndex},onClick:()=>this.selectItem(t)},this.highlightMatch(t.label)," ",t.category&&e("span",{class:"spw-tw-italic"}," - ",t.category))))),!this.filteredItems.length&&e("p",{key:"a8f3a1c750733ae59470cc3fe378e996ba6dd31c",class:"spw-search-field__no-results"},"Pas de résultats.")))}static get watchers(){return{items:["parseItems"]}}};s.style=i;export{s as spw_search_field};
|
|
2
|
-
//# sourceMappingURL=p-4c21a696.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwSearchFieldCss","SpwSearchField","constructor","hostRef","this","placeholder","size","label","required","filteredItems","searchText","isOpen","focusedItemIndex","dropdownDirection","handleClickOutside","event","target","composedPath","isInsideHost","hostElement","contains","componentWillLoad","items","parseItems","componentDidLoad","document","addEventListener","disconnectedCallback","removeEventListener","newValue","JSON","parse","e","console","error","handleSearchInput","input","value","filterItems","determineDropdownDirection","normalizedSearchText","normalizeString","filter","item","includes","str","normalize","replace","toLowerCase","selectItem","url","window","location","href","rect","getBoundingClientRect","viewportHeight","innerHeight","bottom","top","handleKeyDown","key","preventDefault","length","highlightMatch","normalizedItem","startIndex","indexOf","endIndex","h","slice","elementClass","render","ref","el","class","name","disabled","assistiveText","onInput","onKeyDown","map","index","onClick","category"],"sources":["src/components/spw-search-field/spw-search-field.scss?tag=spw-search-field&encapsulation=shadow","src/components/spw-search-field/spw-search-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.spw-search-field {\n position: relative;\n &--large {\n spw-text-field {\n --spw-input-height: 54px;\n --spw-input-padding: 16px 24px;\n --spw-input-radius: 60px;\n --spw-input-border: transparent;\n --spw-input-icon-search-color: var(--spw-ds-primary);\n }\n }\n}\n\n.spw-search-field__options {\n position: absolute;\n width: 100%;\n background-color: #fff;\n border: 1px solid var(--spw-color-themes-grey-grey-800);\n border-radius: 0 0 4px 4px;\n max-height: 200px;\n overflow-y: auto;\n z-index: 44;\n margin-top: -2px;\n transition:\n transform 0.3s ease,\n opacity 0.3s ease;\n}\n\n.spw-search-field__options--down {\n top: 100%;\n transform: translateY(0);\n}\n\n.spw-search-field__options--up {\n top: 100%;\n transform: translateY(0);\n}\n\n.spw-search-field__option {\n padding: 12px;\n color: var(--spw-color-themes-grey-grey-900);\n text-align: left;\n border-bottom: 1px solid var(--spw-color-themes-grey-grey-900);\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--spw-color-themes-grey-grey-200);\n }\n\n &:last-child {\n border-bottom: none;\n }\n\n &--focused {\n background-color: var(--spw-color-themes-grey-grey-300);\n }\n\n &--selected {\n font-weight: 700;\n }\n}\n\n.spw-search-field__no-results {\n padding: 12px;\n cursor: not-allowed;\n text-align: left;\n color: var(--spw-color-themes-grey-grey-600);\n}\n","import { Component, Prop, State, h, Watch } from '@stencil/core';\n\n@Component({\n tag: 'spw-search-field',\n styleUrl: 'spw-search-field.scss',\n shadow: true,\n})\nexport class SpwSearchField {\n private hostElement: HTMLElement;\n\n /** Liste des éléments à filtrer, passée sous forme de chaîne JSON */\n @Prop() items?: string;\n /** Placeholder à afficher dans le champ de recherche */\n @Prop() placeholder: string = 'Recherche...';\n /** Taille du champ de recherche */\n @Prop() size?: 'large' | 'medium' = 'medium';\n /** Label associé au champ de recherche */\n @Prop() label?: string = '';\n /** Indique si le champ de recherche est désactivé */\n @Prop() disabled?: boolean;\n /** Nom du champ de recherche, utilisé pour les formulaires */\n @Prop() name: string;\n /** Indique si le champ est requis */\n @Prop() required?: boolean = false;\n /** Texte d'assistance affiché sous le champ de recherche */\n @Prop() assistiveText?: string;\n\n @State() filteredItems: Array<{ url?: string; label: string; category?: string }> = [];\n @State() searchText: string = '';\n @State() isOpen: boolean = false;\n @State() focusedItemIndex: number | null = null;\n @State() dropdownDirection: 'up' | 'down' = 'down';\n\n componentWillLoad() {\n if (this.items) {\n this.parseItems(this.items);\n } else {\n this.filteredItems = [];\n }\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n @Watch('items')\n parseItems(newValue: string) {\n if (!newValue) {\n this.filteredItems = [];\n return;\n }\n\n try {\n this.filteredItems = JSON.parse(newValue);\n } catch (e) {\n console.error('Invalid JSON format for items:', newValue);\n this.filteredItems = [];\n }\n }\n\n private handleClickOutside = (event: MouseEvent) => {\n if (this.isOpen) {\n const target = event.composedPath()[0] as Node;\n const isInsideHost = this.hostElement.contains(target);\n\n if (!isInsideHost) {\n this.isOpen = false;\n }\n }\n };\n\n private handleSearchInput(event: Event) {\n const input = event.target as HTMLInputElement;\n this.searchText = input.value;\n this.filterItems();\n this.determineDropdownDirection();\n this.isOpen = true;\n }\n\n private filterItems() {\n if (!this.items) {\n this.filteredItems = [];\n return;\n }\n\n const normalizedSearchText = this.normalizeString(this.searchText);\n\n this.filteredItems = JSON.parse(this.items).filter(item => this.normalizeString(item.label).includes(normalizedSearchText));\n }\n\n private normalizeString(str: string): string {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n }\n\n private selectItem(item: { url?: string; label: string }) {\n this.searchText = item.label;\n this.isOpen = false;\n\n if (item.url) {\n window.location.href = item.url;\n }\n }\n\n private determineDropdownDirection() {\n const rect = this.hostElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n\n if (rect.bottom + 200 > viewportHeight && rect.top > 200) {\n this.dropdownDirection = 'up';\n } else {\n this.dropdownDirection = 'down';\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (this.isOpen) {\n this.focusedItemIndex = this.focusedItemIndex === null ? 0 : (this.focusedItemIndex + 1) % this.filteredItems.length;\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (this.isOpen) {\n this.focusedItemIndex =\n this.focusedItemIndex === null ? this.filteredItems.length - 1 : (this.focusedItemIndex - 1 + this.filteredItems.length) % this.filteredItems.length;\n }\n break;\n case 'Enter':\n event.preventDefault();\n if (this.isOpen && this.focusedItemIndex !== null) {\n this.selectItem(this.filteredItems[this.focusedItemIndex]);\n }\n break;\n case 'Escape':\n this.isOpen = false;\n break;\n }\n }\n\n private highlightMatch(item: string) {\n const normalizedSearchText = this.normalizeString(this.searchText);\n const normalizedItem = this.normalizeString(item);\n\n const startIndex = normalizedItem.indexOf(normalizedSearchText);\n\n if (startIndex === -1 || !this.searchText) {\n return item;\n }\n\n const endIndex = startIndex + normalizedSearchText.length;\n\n return (\n <span>\n {item.slice(0, startIndex)}\n <strong>{item.slice(startIndex, endIndex)}</strong>\n {item.slice(endIndex)}\n </span>\n );\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-search-field': true,\n [`spw-search-field--${this.size}`]: true,\n };\n }\n\n render() {\n return (\n <div ref={el => (this.hostElement = el as HTMLElement)} class={this.elementClass}>\n <spw-text-field\n placeholder={this.placeholder}\n name={this.name}\n label={this.label}\n size={this.size}\n is-search={true}\n is-clear={true}\n required={this.required}\n disabled={this.disabled}\n assistiveText={this.assistiveText}\n value={this.searchText}\n onInput={event => this.handleSearchInput(event)}\n onKeyDown={event => this.handleKeyDown(event)}\n ></spw-text-field>\n {this.isOpen && !!this.items && (\n <div class={`spw-search-field__options spw-search-field__options--${this.dropdownDirection}`}>\n {!!this.filteredItems.length && (\n <ul>\n {this.filteredItems.map((item, index) => (\n <li\n class={{\n 'spw-search-field__option': true,\n 'spw-search-field__option--focused': index === this.focusedItemIndex,\n }}\n onClick={() => this.selectItem(item)}\n >\n {this.highlightMatch(item.label)} {item.category && <span class=\"spw-tw-italic\"> - {item.category}</span>}\n </li>\n ))}\n </ul>\n )}\n {!this.filteredItems.length && <p class=\"spw-search-field__no-results\">Pas de résultats.</p>}\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as s}from"./p-CvfVJV8a.js";const i="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-custom-select{position:relative}.spw-custom-select__container{align-items:center;background-color:#fff;border:1px solid var(--spw-color-themes-grey-grey-800);border-radius:4px;display:flex;height:40px;justify-content:space-between;line-height:40px;padding:0 12px;width:100%}.spw-custom-select__container:hover{outline:4px solid var(--spw-color-themes-grey-grey-300)}.spw-custom-select__container:focus-visible,.spw-custom-select__container:focus-within{box-shadow:0 0 0 6px #000;outline:3px solid #fff;outline-offset:0}.spw-custom-select--disabled .spw-custom-select__container{background:var(--spw-color-themes-grey-grey-100);border-color:var(--spw-color-themes-grey-grey-400);color:var(--spw-color-themes-grey-grey-500);cursor:not-allowed}.spw-custom-select--disabled .spw-custom-select__container::-moz-placeholder{color:var(--spw-color-themes-grey-grey-500)}.spw-custom-select--disabled .spw-custom-select__container::placeholder{color:var(--spw-color-themes-grey-grey-500)}.spw-custom-select--disabled .spw-custom-select__container:focus,.spw-custom-select--disabled .spw-custom-select__container:focus-visible,.spw-custom-select--disabled .spw-custom-select__container:hover{outline:none}.spw-custom-select--is-error .spw-custom-select__container{border-color:var(--spw-colors-states-error-error-300)}.spw-custom-select--large .spw-custom-select__container{height:60px;line-height:60px;padding:0 24px}.spw-custom-select--is-opened .spw-custom-select__container{border-bottom-color:transparent;border-radius:4px 4px 0 0;height:auto;line-height:1;min-height:40px}.spw-custom-select__selected{flex:1;max-width:100%;padding-right:30px}.spw-custom-select__selected-item{align-items:center;background:var(--spw-color-themes-grey-grey-200);border:1px solid var(--spw-color-themes-grey-grey-900);border-radius:999px;color:var(--spw-color-themes-grey-grey-900);display:inline-flex;font-size:14px;gap:6px;height:24px;line-height:24px;margin:4px 6px 2px 0;padding:0 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.spw-custom-select__selected-items{text-wrap:nowrap;flex:1;overflow:hidden;text-overflow:ellipsis}.spw-custom-select--is-opened .spw-custom-select__selected-items{text-wrap:initial;overflow:visible;padding-bottom:4px;padding-top:3px;text-overflow:clip}.spw-custom-select__arrow{color:var(--spw-color-themes-grey-grey-600);font-size:16px;pointer-events:none;position:absolute;right:12px;top:10px}.spw-custom-select__wrapper{position:relative}.spw-custom-select--is-opened .spw-custom-select__search{left:0;margin-top:1px;position:absolute;top:0;width:100%;z-index:11}.spw-custom-select--has-value.spw-custom-select--is-opened .spw-custom-select__search{margin-top:-3px;top:auto;top:100%}.spw-custom-select__search-input{border:none;height:38px;line-height:40px;margin:0;padding:0;text-overflow:ellipsis;width:calc(100% - 30px)}.spw-custom-select__search-input:focus{outline:none}.spw-custom-select--is-opened .spw-custom-select__search-input{border-left:1px solid var(--spw-color-themes-grey-grey-800);padding:0 12px}.spw-custom-select--is-opened.spw-custom-select--has-value .spw-custom-select__search-input{border-right:1px solid var(--spw-color-themes-grey-grey-800);width:100%}.spw-custom-select__options{background-color:#fff;border:1px solid var(--spw-color-themes-grey-grey-800);border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;position:absolute;width:100%;z-index:12}.spw-custom-select__options--down,.spw-custom-select__options--up{top:100%;transform:translateY(0)}.spw-custom-select--has-value.spw-custom-select--is-opened:not(.spw-custom-select--not-searchable) .spw-custom-select__options{margin-top:35px}.spw-custom-select__no-results{color:var(--spw-color-themes-grey-grey-600);cursor:not-allowed;padding:12px}.spw-custom-select__option{border-bottom:1px solid var(--spw-color-themes-grey-grey-900);cursor:pointer;padding:12px}.spw-custom-select__option:hover{background-color:var(--spw-color-themes-grey-grey-200)}.spw-custom-select__option:last-child{border-bottom:none}.spw-custom-select__option--selected{font-weight:700}.spw-custom-select__error{color:var(--spw-color-themes-grey-grey-600);display:block;font-size:12px;margin-top:8px}.spw-custom-select__option--focused{background-color:var(--spw-color-themes-grey-grey-300)}.-spw-tw-mt-1{margin-top:-.25rem}.spw-tw-mb-2{margin-bottom:.5rem}.spw-tw-mr-2{margin-right:.5rem}";const o=class{constructor(s){e(this,s);this.valueChanged=t(this,"valueChanged",7);if(s.$hostElement$["s-ei"]){this.internals=s.$hostElement$["s-ei"]}else{this.internals=s.$hostElement$.attachInternals();s.$hostElement$["s-ei"]=this.internals}this.isOpen=false;this.parsedOptions=[];this.focusedOptionIndex=null;this.searchText="";this.dropdownDirection="down";this.hasSelectedValue=false;this.value=[];this.label="";this.placeholder="Sélectionnez une option";this.required=false;this.size="medium";this.multiple=false;this.isSearch=false;this.error="";this.hint="";this.success="";this.warning="";this.showErrorIcon=true;this.showHintIcon=true;this.showSuccessIcon=true;this.showWarningIcon=true;this.handleClickOutside=e=>{var t,s;if(this.isOpen){const i=e.composedPath()[0];const o=this.host.contains(i);const r=(t=this.host.shadowRoot)===null||t===void 0?void 0:t.querySelector(".spw-custom-select__search-input");const n=r===null||r===void 0?void 0:r.contains(i);if(!o&&!n){if(this.multiple){const e=(s=this.host.shadowRoot)===null||s===void 0?void 0:s.querySelector(".spw-custom-select__options");if(e&&e.contains(i)){return}}this.closeDropdown()}}}}componentWillLoad(){if(this.multiple){if(typeof this.value==="string"){try{this.internalValue=JSON.parse(this.value)}catch(e){this.internalValue=[]}}else if(Array.isArray(this.value)){this.internalValue=this.value}else{this.internalValue=[]}}else{this.internalValue=this.value}if(this.items){this.parseOptions(this.items)}this.updateSelectedOption()}async resetSelect(){if(this.multiple){this.internalValue=[];this.value=[]}else{this.internalValue="";this.value=""}this.searchText="";this.focusedOptionIndex=null;this.internals.setFormValue(this.getFormValue());this.valueChanged.emit(this.internalValue);this.updateSelectedOption()}formResetCallback(){this.resetSelect()}componentDidLoad(){document.addEventListener("click",this.handleClickOutside);this.internals.setFormValue(this.getFormValue())}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside)}parseOptions(e){try{if(Array.isArray(e)){this.parsedOptions=e.map((e=>({value:e.value,label:e.label})))}else if(typeof e==="string"){this.parsedOptions=JSON.parse(e).map((e=>({value:e.value,label:e.label})))}else{this.parsedOptions=[]}this.updateSelectedOption()}catch(e){this.parsedOptions=[]}}valueChangedHandler(e){if(this.multiple){this.internalValue=Array.isArray(e)?e:[e]}else{this.internalValue=e}this.updateSelectedOption();this.internals.setFormValue(this.getFormValue());this.valueChanged.emit(this.internalValue)}updateSelectedOption(){this.internals.setFormValue(this.getFormValue());if(!this.multiple&&this.internalValue!==undefined){this.focusedOptionIndex=this.parsedOptions.findIndex((e=>String(e.value)===String(this.internalValue)))}else if(this.multiple&&Array.isArray(this.internalValue)){this.internalValue=this.internalValue.filter((e=>this.parsedOptions.some((t=>String(t.value)===String(e))))).sort(((e,t)=>this.parsedOptions.findIndex((t=>String(t.value)===String(e)))-this.parsedOptions.findIndex((e=>String(e.value)===String(t)))))}}internalValueChanged(){this.hasSelectedValue=Array.isArray(this.internalValue)?this.internalValue.length>0:Boolean(this.internalValue)}getFormValue(){if(this.multiple){return Array.isArray(this.internalValue)&&this.internalValue.length>0?this.internalValue.map((e=>String(e))).join(","):null}return this.internalValue?String(this.internalValue):null}toggleDropdown(e){if(!this.disabled){if(e){const t=e.composedPath()[0];if(t.classList.contains("spw-custom-select__search-input")){return}e.stopPropagation()}this.determineDropdownDirection();this.isOpen=!this.isOpen;if(!this.isOpen){this.focusedOptionIndex=null}}}determineDropdownDirection(){const e=this.selectContainer.getBoundingClientRect();const t=window.innerHeight;if(e.bottom+200>t&&e.top>200){this.dropdownDirection="up"}else{this.dropdownDirection="down"}}openDropdownWithKeyboard(){this.determineDropdownDirection();this.isOpen=true;this.focusedOptionIndex=0}closeDropdown(){this.isOpen=false;this.focusedOptionIndex=null;this.searchText=""}selectOption(e,t){if(t){t.stopPropagation()}if(this.multiple){const t=this.internalValue.findIndex((t=>String(t)===String(e)));if(t>-1){this.internalValue=[...this.internalValue.slice(0,t),...this.internalValue.slice(t+1)]}else{this.internalValue=[...this.internalValue,e]}this.internalValue=this.internalValue.sort(((e,t)=>this.parsedOptions.findIndex((t=>String(t.value)===String(e)))-this.parsedOptions.findIndex((e=>String(e.value)===String(t)))))}else{this.internalValue=e;this.closeDropdown()}this.value=this.internalValue;this.internals.setFormValue(this.getFormValue());this.valueChanged.emit(this.internalValue);this.updateSelectedOption()}handleOptionKeyDown(e,t){if(e.key==="Enter"||e.key===" "){e.preventDefault();this.selectOption(t)}}handleKeyDown(e){if(e.target.classList.contains("spw-custom-select__search-input")){return}switch(e.key){case" ":e.preventDefault();if(!this.isOpen){this.openDropdownWithKeyboard()}break;case"ArrowDown":e.preventDefault();if(this.isOpen){this.focusedOptionIndex=this.focusedOptionIndex===null?0:(this.focusedOptionIndex+1)%this.parsedOptions.length}else{this.openDropdownWithKeyboard()}break;case"ArrowUp":e.preventDefault();if(this.isOpen){this.focusedOptionIndex=this.focusedOptionIndex===null?this.parsedOptions.length-1:(this.focusedOptionIndex-1+this.parsedOptions.length)%this.parsedOptions.length}break;case"Enter":e.preventDefault();if(this.isOpen&&this.focusedOptionIndex!==null){this.selectOption(this.parsedOptions[this.focusedOptionIndex].value)}break;case"Escape":if(this.isOpen){this.closeDropdown()}break}}renderErrorMessage(){if(this.error){return s("spw-field-message",{variant:"error",showIcon:this.showErrorIcon},this.error)}}renderHintMessage(){if(this.hint){return s("spw-field-message",{variant:"hint",showIcon:this.showHintIcon},this.hint)}}renderWarningMessage(){if(this.warning){return s("spw-field-message",{variant:"warning",showIcon:this.showWarningIcon},this.warning)}}renderSuccessMessage(){if(this.success){return s("spw-field-message",{variant:"success",showIcon:this.showSuccessIcon},this.success)}}get elementClass(){return{"spw-custom-select":true,[`spw-custom-select--${this.size}`]:true,"spw-custom-select--is-error":!!this.error,"spw-custom-select--disabled":this.disabled,"spw-custom-select--is-opened":this.isOpen,"spw-custom-select--has-value":this.hasSelectedValue,"spw-custom-select--no-value":!this.hasSelectedValue,"spw-custom-select--is-searchable":this.isSearch,"spw-custom-select--not-searchable":!this.isSearch}}normalizeString(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase()}getSelectedLabels(){if(this.multiple){return Array.isArray(this.internalValue)&&this.internalValue.length>0?this.internalValue.map((e=>{var t;return(t=this.parsedOptions.find((t=>String(t.value)===String(e))))===null||t===void 0?void 0:t.label})).filter(Boolean).join(", "):null}else{const e=this.parsedOptions.find((e=>String(e.value)===String(this.internalValue)));return e?e.label:null}}getFilteredOptions(){const e=this.normalizeString(this.searchText);return this.parsedOptions.filter((t=>this.normalizeString(t.label).includes(e)))}handleSearchInput(e){const t=e.target;this.searchText=t.value;this.focusedOptionIndex=0;if(!this.isOpen){this.isOpen=true}}isSearchVisible(){if(!this.isSearch)return false;if(!this.hasSelectedValue&&!this.isOpen)return true;if(this.isSearch&&this.isOpen)return true;return this.isOpen}showPlaceholder(){if(this.isSearch)return false;if(this.hasSelectedValue)return false;return true}render(){const e=this.getFilteredOptions();const t=this.showPlaceholder();return s("div",{key:"1c601a0ca0e05f76e83cc6abee2101d70ac85acc",class:this.elementClass,ref:e=>this.host=e},this.label&&s("spw-field-label",{key:"f98dbcdb1f0fa237841a32425f2b8d8874539456",label:this.label,name:this.name,required:this.required}),this.assistiveText&&s("spw-field-message",{key:"24e6c78477f2ffab50a5f21f3e3a4b1cc277f141",class:"spw-tw-mb-2 -spw-tw-mt-1",variant:"hint",showIcon:false},this.assistiveText),s("div",{key:"eb4403fec5ae5e5fe7f7ab66423d3439f205a357",class:"spw-custom-select__wrapper"},s("div",{key:"4a94938cd3c308132a645748829e077dde0e66be",class:"spw-custom-select__container",id:this.name,ref:e=>this.selectContainer=e,onClick:e=>this.toggleDropdown(e),onKeyDown:e=>this.handleKeyDown(e),tabindex:this.disabled?-1:0},s("div",{key:"74400d409d65ac85334737d3b4a103a956f3ee02",class:"spw-custom-select__selected"},this.isSearchVisible()&&s("div",{key:"de36e073a3aa9d2bfc5fc1e8c3dcf19359e84738",class:"spw-custom-select__search"},s("input",{key:"87101b79c5b37a927cce19846740fda3917e0673",class:"spw-custom-select__search-input",placeholder:"Entrez votre recherche",onInput:e=>this.handleSearchInput(e),value:this.searchText})),t&&s("span",{key:"59246ab1acc9e4ce73456c651fa08228aa6cab8e"},this.placeholder),this.multiple&&this.internalValue.length>0&&s("div",{key:"fac04a5fe55d9e103aad0cce359b7604fb29caa4",class:"spw-custom-select__selected-items"},this.internalValue.map((e=>{var t;return s("span",{class:"spw-custom-select__selected-item"},(t=this.parsedOptions.find((t=>String(t.value)===String(e))))===null||t===void 0?void 0:t.label,s("spw-icon",{icon:"fa-times",class:"spw-custom-select__deselect-icon",onClick:t=>this.selectOption(e,t)}))}))),!this.multiple&&s("span",{key:"75405b1d4d912c2cd859a1fafd9f31853f61a232"},this.getSelectedLabels()))),s("div",{key:"b1194635644b2224d40a83c4067f9f9da35219f1",class:"spw-custom-select__arrow"},s("spw-icon",{key:"8df5d320d83ce092fc6c9fff6795f3b244f1e8a0",icon:this.isOpen?"fa-chevron-up":"fa-chevron-down"})),this.isOpen&&s("div",{key:"24917d7da42d1d6993452e4558b9d8850837932b",class:`spw-custom-select__options spw-custom-select__options--${this.dropdownDirection}`},!!e.length&&s("ul",{key:"ac7320dadb06fe189eb6e03aeaa8ddc21ed04565"},e.map(((e,t)=>s("li",{class:{"spw-custom-select__option":true,"spw-custom-select__option--selected":this.multiple?this.internalValue.some((t=>String(t)===String(e.value))):e.value===this.internalValue,"spw-custom-select__option--focused":t===this.focusedOptionIndex},onClick:()=>this.selectOption(e.value)},this.multiple&&s("spw-checkbox",{onKeyDown:t=>this.handleOptionKeyDown(t,e.value),class:"spw-tw-mr-2",checked:this.internalValue.some((t=>String(t)===String(e.value)))}),e.label)))),!e.length&&s("p",{key:"d03034401172fee26f3c26f65e0c411f5aa62858",class:"spw-custom-select__no-results"},"Pas de résultats pour cette recherche."))),this.renderErrorMessage(),this.renderHintMessage(),this.renderSuccessMessage(),this.renderWarningMessage())}static get formAssociated(){return true}static get watchers(){return{items:["parseOptions"],value:["valueChangedHandler"],internalValue:["internalValueChanged"]}}};o.style=i;export{o as spw_custom_select};
|
|
2
|
-
//# sourceMappingURL=p-572188ac.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwCustomSelectCss","SpwCustomSelect","constructor","hostRef","this","isOpen","parsedOptions","focusedOptionIndex","searchText","dropdownDirection","hasSelectedValue","value","label","placeholder","required","size","multiple","isSearch","error","hint","success","warning","showErrorIcon","showHintIcon","showSuccessIcon","showWarningIcon","handleClickOutside","event","target","composedPath","isInsideHost","host","contains","searchField","_a","shadowRoot","querySelector","isInsideSearchField","optionsContainer","_b","closeDropdown","componentWillLoad","internalValue","JSON","parse","e","Array","isArray","items","parseOptions","updateSelectedOption","resetSelect","internals","setFormValue","getFormValue","valueChanged","emit","formResetCallback","componentDidLoad","document","addEventListener","disconnectedCallback","removeEventListener","newValue","map","option","valueChangedHandler","undefined","findIndex","String","filter","val","some","sort","a","b","internalValueChanged","length","Boolean","v","join","toggleDropdown","disabled","classList","stopPropagation","determineDropdownDirection","rect","selectContainer","getBoundingClientRect","viewportHeight","window","innerHeight","bottom","top","openDropdownWithKeyboard","selectOption","optionValue","index","slice","handleOptionKeyDown","key","preventDefault","handleKeyDown","renderErrorMessage","h","variant","showIcon","renderHintMessage","renderWarningMessage","renderSuccessMessage","elementClass","normalizeString","str","normalize","replace","toLowerCase","getSelectedLabels","find","selectedOption","getFilteredOptions","normalizedSearchText","includes","handleSearchInput","input","isSearchVisible","showPlaceholder","render","filteredOptions","class","ref","el","name","assistiveText","id","onClick","onKeyDown","tabindex","onInput","icon","checked"],"sources":["src/components/spw-custom-select/spw-custom-select.scss?tag=spw-custom-select&encapsulation=shadow","src/components/spw-custom-select/spw-custom-select.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.spw-custom-select {\n position: relative;\n &__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: 40px;\n padding: 0 12px;\n line-height: 40px;\n border-radius: 4px;\n border: 1px solid var(--spw-color-themes-grey-grey-800);\n background-color: #fff;\n &:hover {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n &:focus-within,\n &:focus-visible {\n outline: 3px solid white;\n outline-offset: 0;\n box-shadow: 0 0 0 6px black;\n }\n .spw-custom-select--disabled & {\n border-color: var(--spw-color-themes-grey-grey-400);\n background: var(--spw-color-themes-grey-grey-100);\n color: var(--spw-color-themes-grey-grey-500);\n cursor: not-allowed;\n &::placeholder {\n color: var(--spw-color-themes-grey-grey-500);\n }\n &:hover,\n &:focus,\n &:focus-visible {\n outline: none;\n }\n }\n .spw-custom-select--is-error & {\n border-color: var(--spw-colors-states-error-error-300);\n }\n .spw-custom-select--large & {\n height: 60px;\n padding: 0 24px;\n line-height: 60px;\n }\n .spw-custom-select--is-opened & {\n height: auto;\n line-height: 1;\n min-height: 40px;\n border-radius: 4px 4px 0 0;\n border-bottom-color: transparent;\n }\n }\n\n &__selected {\n flex: 1;\n padding-right: 30px;\n max-width: 100%;\n }\n\n &__selected-item {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--spw-color-themes-grey-grey-900);\n border: 1px solid var(--spw-color-themes-grey-grey-900);\n background: var(--spw-color-themes-grey-grey-200);\n line-height: 24px;\n height: 24px;\n padding: 0 8px;\n margin: 4px 6px 2px 0;\n border-radius: 999px;\n font-size: 14px;\n user-select: none;\n }\n\n &__selected-items {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n text-wrap: nowrap;\n .spw-custom-select--is-opened & {\n padding-top: 3px;\n padding-bottom: 4px;\n overflow: visible;\n text-overflow: initial;\n text-wrap: initial;\n }\n }\n\n &__arrow {\n position: absolute;\n right: 12px;\n top: 10px;\n font-size: 16px;\n color: var(--spw-color-themes-grey-grey-600);\n pointer-events: none;\n }\n\n &__wrapper {\n position: relative;\n }\n\n &__search {\n .spw-custom-select--is-opened & {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 11;\n width: 100%;\n margin-top: 1px;\n }\n .spw-custom-select--has-value.spw-custom-select--is-opened & {\n top: auto;\n top: 100%;\n margin-top: -3px;\n }\n &-input {\n padding: 0;\n height: 38px;\n line-height: 40px;\n border: none;\n margin: 0;\n width: calc(100% - 30px);\n text-overflow: ellipsis;\n &:focus {\n outline: none;\n }\n .spw-custom-select--is-opened & {\n border-left: 1px solid var(--spw-color-themes-grey-grey-800);\n padding: 0 12px;\n }\n .spw-custom-select--is-opened.spw-custom-select--has-value & {\n border-right: 1px solid var(--spw-color-themes-grey-grey-800);\n width: 100%;\n }\n }\n }\n\n &__options {\n position: absolute;\n width: 100%;\n background-color: #fff;\n border: 1px solid var(--spw-color-themes-grey-grey-800);\n border-radius: 0 0 4px 4px;\n max-height: 200px;\n overflow-y: auto;\n z-index: 12;\n\n &--down {\n top: 100%;\n transform: translateY(0);\n }\n\n &--up {\n top: 100%;\n transform: translateY(0);\n }\n\n .spw-custom-select--has-value.spw-custom-select--is-opened:not(.spw-custom-select--not-searchable) & {\n margin-top: 35px;\n }\n }\n\n &__no-results {\n padding: 12px;\n cursor: not-allowed;\n color: var(--spw-color-themes-grey-grey-600);\n }\n\n &__option {\n border-bottom: 1px solid var(--spw-color-themes-grey-grey-900);\n padding: 12px;\n cursor: pointer;\n &:hover {\n background-color: var(--spw-color-themes-grey-grey-200);\n }\n &:last-child {\n border-bottom: none;\n }\n &--selected {\n font-weight: 700;\n }\n }\n\n &__error {\n display: block;\n font-size: 12px;\n color: var(--spw-color-themes-grey-grey-600);\n margin-top: 8px;\n }\n}\n\n.spw-custom-select__option--focused {\n background-color: var(--spw-color-themes-grey-grey-300);\n}\n","import { AttachInternals, Component, Method, Prop, State, Event, EventEmitter, h, Watch } from '@stencil/core';\n\n@Component({\n tag: 'spw-custom-select',\n styleUrl: 'spw-custom-select.scss',\n formAssociated: true,\n shadow: true,\n})\nexport class SpwCustomSelect {\n private host: HTMLElement;\n private selectContainer: HTMLElement;\n\n /** Événement émis lorsque la valeur sélectionnée change */\n @Event() valueChanged: EventEmitter<(string | number)[] | string | number>;\n\n @State() internalValue: (string | number)[] | string | number;\n @State() isOpen: boolean = false;\n @State() parsedOptions: { value: string | number; label: string }[] = [];\n @State() focusedOptionIndex: number | null = null;\n @State() searchText: string = '';\n @State() dropdownDirection: 'up' | 'down' = 'down';\n @State() hasSelectedValue: boolean = false;\n\n /** Valeur actuelle sélectionnée dans le composant, peut être une chaîne, un nombre ou un tableau */\n @Prop({ mutable: true, reflect: true }) value: (string | number)[] | string | number = [];\n /** Label associé au champ de sélection personnalisé */\n @Prop() label: string = '';\n /** Placeholder à afficher lorsque aucune option n'est sélectionnée */\n @Prop() placeholder: string = 'Sélectionnez une option';\n /** Indique si le champ est désactivé et donc non interactif */\n @Prop() disabled: boolean;\n /** Nom de l'élément dans les formulaires, utilisé pour associer la valeur */\n @Prop() name: string;\n /** Indique si la sélection est obligatoire dans le formulaire */\n @Prop() required: boolean = false;\n /** Chaîne JSON des options disponibles dans le select (valeur et label) */\n @Prop() items: string | any[];\n /** Taille du select, peut être \"large\" ou \"medium\" */\n @Prop() size: 'large' | 'medium' = 'medium';\n /** Permet la sélection multiple si vrai */\n @Prop() multiple: boolean = false;\n /** Active la fonction de recherche dans la liste des items */\n @Prop() isSearch: boolean = false;\n /** Texte d'assistance à afficher sous le champ */\n @Prop() assistiveText?: string;\n /** Message d'erreur à afficher sous le champ */\n @Prop() error?: string = '';\n /** Message d'indication (hint) à afficher sous le champ */\n @Prop() hint?: string = '';\n /** Message de succès à afficher sous le champ */\n @Prop() success?: string = '';\n /** Message de warning à afficher sous le champ */\n @Prop() warning?: string = '';\n /** Affiche une icône d'erreur si vrai */\n @Prop() showErrorIcon?: boolean = true;\n /** Affiche une icône d'indication si vrai */\n @Prop() showHintIcon?: boolean = true;\n /** Affiche une icône de succès si vrai */\n @Prop() showSuccessIcon?: boolean = true;\n /** Affiche une icône de warning si vrai */\n @Prop() showWarningIcon?: boolean = true;\n\n @AttachInternals() internals: ElementInternals;\n\n componentWillLoad() {\n if (this.multiple) {\n if (typeof this.value === 'string') {\n try {\n this.internalValue = JSON.parse(this.value);\n } catch (e) {\n this.internalValue = [];\n }\n } else if (Array.isArray(this.value)) {\n this.internalValue = this.value;\n } else {\n this.internalValue = [];\n }\n } else {\n this.internalValue = this.value as string | number;\n }\n\n if (this.items) {\n this.parseOptions(this.items);\n }\n this.updateSelectedOption();\n }\n\n @Method()\n async resetSelect() {\n if (this.multiple) {\n this.internalValue = [];\n this.value = [];\n } else {\n this.internalValue = '';\n this.value = '';\n }\n this.searchText = '';\n this.focusedOptionIndex = null;\n this.internals.setFormValue(this.getFormValue());\n this.valueChanged.emit(this.internalValue);\n this.updateSelectedOption();\n }\n\n formResetCallback() {\n this.resetSelect();\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside);\n this.internals.setFormValue(this.getFormValue());\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n private handleClickOutside = (event: MouseEvent) => {\n if (this.isOpen) {\n const target = event.composedPath()[0] as Node;\n const isInsideHost = this.host.contains(target);\n const searchField = this.host.shadowRoot?.querySelector('.spw-custom-select__search-input');\n\n const isInsideSearchField = searchField?.contains(target);\n\n if (!isInsideHost && !isInsideSearchField) {\n if (this.multiple) {\n const optionsContainer = this.host.shadowRoot?.querySelector('.spw-custom-select__options');\n if (optionsContainer && optionsContainer.contains(target)) {\n return;\n }\n }\n\n this.closeDropdown();\n }\n }\n };\n\n @Watch('items')\n parseOptions(newValue: string | any[]) {\n try {\n if (Array.isArray(newValue)) {\n this.parsedOptions = newValue.map(option => ({\n value: option.value,\n label: option.label,\n }));\n } else if (typeof newValue === 'string') {\n this.parsedOptions = JSON.parse(newValue).map(option => ({\n value: option.value,\n label: option.label,\n }));\n } else {\n this.parsedOptions = [];\n }\n this.updateSelectedOption();\n } catch (e) {\n this.parsedOptions = [];\n }\n }\n\n @Watch('value')\n valueChangedHandler(newValue: (string | number)[] | string | number) {\n if (this.multiple) {\n this.internalValue = Array.isArray(newValue) ? newValue : [newValue];\n } else {\n this.internalValue = newValue;\n }\n this.updateSelectedOption();\n this.internals.setFormValue(this.getFormValue());\n this.valueChanged.emit(this.internalValue);\n }\n\n private updateSelectedOption() {\n this.internals.setFormValue(this.getFormValue());\n\n if (!this.multiple && this.internalValue !== undefined) {\n this.focusedOptionIndex = this.parsedOptions.findIndex(option => String(option.value) === String(this.internalValue));\n } else if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = (this.internalValue as (string | number)[])\n .filter(val => this.parsedOptions.some(option => String(option.value) === String(val)))\n .sort((a, b) => this.parsedOptions.findIndex(option => String(option.value) === String(a)) - this.parsedOptions.findIndex(option => String(option.value) === String(b)));\n }\n }\n\n @Watch('internalValue')\n internalValueChanged() {\n this.hasSelectedValue = Array.isArray(this.internalValue) ? this.internalValue.length > 0 : Boolean(this.internalValue);\n }\n\n private getFormValue(): string | null {\n if (this.multiple) {\n return Array.isArray(this.internalValue) && this.internalValue.length > 0 ? this.internalValue.map(v => String(v)).join(',') : null;\n }\n return this.internalValue ? String(this.internalValue) : null;\n }\n\n private toggleDropdown(event?: MouseEvent) {\n if (!this.disabled) {\n if (event) {\n const target = event.composedPath()[0] as HTMLElement;\n\n if (target.classList.contains('spw-custom-select__search-input')) {\n return;\n }\n\n event.stopPropagation();\n }\n this.determineDropdownDirection();\n this.isOpen = !this.isOpen;\n if (!this.isOpen) {\n this.focusedOptionIndex = null;\n }\n }\n }\n\n private determineDropdownDirection() {\n const rect = this.selectContainer.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n\n if (rect.bottom + 200 > viewportHeight && rect.top > 200) {\n this.dropdownDirection = 'up';\n } else {\n this.dropdownDirection = 'down';\n }\n }\n\n private openDropdownWithKeyboard() {\n this.determineDropdownDirection();\n this.isOpen = true;\n this.focusedOptionIndex = 0;\n }\n\n private closeDropdown() {\n this.isOpen = false;\n this.focusedOptionIndex = null;\n this.searchText = '';\n }\n\n private selectOption(optionValue: string | number, event?: MouseEvent) {\n if (event) {\n event.stopPropagation();\n }\n\n if (this.multiple) {\n const index = (this.internalValue as (string | number)[]).findIndex(val => String(val) === String(optionValue));\n if (index > -1) {\n this.internalValue = [...(this.internalValue as (string | number)[]).slice(0, index), ...(this.internalValue as (string | number)[]).slice(index + 1)];\n } else {\n this.internalValue = [...(this.internalValue as (string | number)[]), optionValue];\n }\n this.internalValue = (this.internalValue as (string | number)[]).sort(\n (a, b) => this.parsedOptions.findIndex(option => String(option.value) === String(a)) - this.parsedOptions.findIndex(option => String(option.value) === String(b)),\n );\n } else {\n this.internalValue = optionValue;\n this.closeDropdown();\n }\n\n this.value = this.internalValue;\n this.internals.setFormValue(this.getFormValue());\n this.valueChanged.emit(this.internalValue);\n this.updateSelectedOption();\n }\n\n private handleOptionKeyDown(event: KeyboardEvent, optionValue: string | number) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectOption(optionValue);\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if ((event.target as HTMLElement).classList.contains('spw-custom-select__search-input')) {\n return;\n }\n switch (event.key) {\n case ' ':\n event.preventDefault();\n if (!this.isOpen) {\n this.openDropdownWithKeyboard();\n }\n break;\n case 'ArrowDown':\n event.preventDefault();\n if (this.isOpen) {\n this.focusedOptionIndex = this.focusedOptionIndex === null ? 0 : (this.focusedOptionIndex + 1) % this.parsedOptions.length;\n } else {\n this.openDropdownWithKeyboard();\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (this.isOpen) {\n this.focusedOptionIndex =\n this.focusedOptionIndex === null ? this.parsedOptions.length - 1 : (this.focusedOptionIndex - 1 + this.parsedOptions.length) % this.parsedOptions.length;\n }\n break;\n case 'Enter':\n event.preventDefault();\n if (this.isOpen && this.focusedOptionIndex !== null) {\n this.selectOption(this.parsedOptions[this.focusedOptionIndex].value);\n }\n break;\n case 'Escape':\n if (this.isOpen) {\n this.closeDropdown();\n }\n break;\n }\n }\n\n private renderErrorMessage() {\n if (this.error) {\n return (\n <spw-field-message variant=\"error\" showIcon={this.showErrorIcon}>\n {this.error}\n </spw-field-message>\n );\n }\n }\n\n private renderHintMessage() {\n if (this.hint) {\n return (\n <spw-field-message variant=\"hint\" showIcon={this.showHintIcon}>\n {this.hint}\n </spw-field-message>\n );\n }\n }\n\n private renderWarningMessage() {\n if (this.warning) {\n return (\n <spw-field-message variant=\"warning\" showIcon={this.showWarningIcon}>\n {this.warning}\n </spw-field-message>\n );\n }\n }\n\n private renderSuccessMessage() {\n if (this.success) {\n return (\n <spw-field-message variant=\"success\" showIcon={this.showSuccessIcon}>\n {this.success}\n </spw-field-message>\n );\n }\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-custom-select': true,\n [`spw-custom-select--${this.size}`]: true,\n 'spw-custom-select--is-error': !!this.error,\n 'spw-custom-select--disabled': this.disabled,\n 'spw-custom-select--is-opened': this.isOpen,\n 'spw-custom-select--has-value': this.hasSelectedValue,\n 'spw-custom-select--no-value': !this.hasSelectedValue,\n 'spw-custom-select--is-searchable': this.isSearch,\n 'spw-custom-select--not-searchable': !this.isSearch,\n };\n }\n\n private normalizeString(str: string): string {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n }\n\n private getSelectedLabels(): string {\n if (this.multiple) {\n return Array.isArray(this.internalValue) && this.internalValue.length > 0\n ? (this.internalValue as (string | number)[])\n .map(val => this.parsedOptions.find(option => String(option.value) === String(val))?.label)\n .filter(Boolean)\n .join(', ')\n : null;\n } else {\n const selectedOption = this.parsedOptions.find(option => String(option.value) === String(this.internalValue));\n return selectedOption ? selectedOption.label : null;\n }\n }\n\n private getFilteredOptions() {\n const normalizedSearchText = this.normalizeString(this.searchText);\n return this.parsedOptions.filter(option => this.normalizeString(option.label).includes(normalizedSearchText));\n }\n\n private handleSearchInput(event: Event) {\n const input = event.target as HTMLInputElement;\n this.searchText = input.value;\n this.focusedOptionIndex = 0;\n\n if (!this.isOpen) {\n this.isOpen = true;\n }\n }\n\n private isSearchVisible(): boolean {\n if (!this.isSearch) return false;\n if (!this.hasSelectedValue && !this.isOpen) return true;\n if (this.isSearch && this.isOpen) return true;\n return this.isOpen;\n }\n\n private showPlaceholder(): boolean {\n if (this.isSearch) return false;\n if (this.hasSelectedValue) return false;\n return true;\n }\n\n render() {\n const filteredOptions = this.getFilteredOptions();\n const showPlaceholder = this.showPlaceholder();\n\n return (\n <div class={this.elementClass} ref={el => (this.host = el as HTMLElement)}>\n {this.label && <spw-field-label label={this.label} name={this.name} required={this.required}></spw-field-label>}\n {this.assistiveText && (\n <spw-field-message class=\"spw-tw-mb-2 -spw-tw-mt-1\" variant=\"hint\" showIcon={false}>\n {this.assistiveText}\n </spw-field-message>\n )}\n <div class=\"spw-custom-select__wrapper\">\n <div\n class=\"spw-custom-select__container\"\n id={this.name}\n ref={el => (this.selectContainer = el as HTMLElement)}\n onClick={event => this.toggleDropdown(event)}\n onKeyDown={event => this.handleKeyDown(event)}\n tabindex={this.disabled ? -1 : 0}\n >\n <div class=\"spw-custom-select__selected\">\n {this.isSearchVisible() && (\n <div class=\"spw-custom-select__search\">\n <input class=\"spw-custom-select__search-input\" placeholder=\"Entrez votre recherche\" onInput={event => this.handleSearchInput(event)} value={this.searchText} />\n </div>\n )}\n {showPlaceholder && <span>{this.placeholder}</span>}\n {this.multiple && (this.internalValue as (string | number)[]).length > 0 && (\n <div class=\"spw-custom-select__selected-items\">\n {(this.internalValue as (string | number)[]).map(val => (\n <span class=\"spw-custom-select__selected-item\">\n {this.parsedOptions.find(option => String(option.value) === String(val))?.label}\n <spw-icon icon=\"fa-times\" class=\"spw-custom-select__deselect-icon\" onClick={event => this.selectOption(val, event)}></spw-icon>\n </span>\n ))}\n </div>\n )}\n {!this.multiple && <span>{this.getSelectedLabels()}</span>}\n </div>\n </div>\n <div class=\"spw-custom-select__arrow\">\n <spw-icon icon={this.isOpen ? 'fa-chevron-up' : 'fa-chevron-down'}></spw-icon>\n </div>\n {this.isOpen && (\n <div class={`spw-custom-select__options spw-custom-select__options--${this.dropdownDirection}`}>\n {!!filteredOptions.length && (\n <ul>\n {filteredOptions.map((option, index) => (\n <li\n class={{\n 'spw-custom-select__option': true,\n 'spw-custom-select__option--selected': this.multiple\n ? (this.internalValue as (string | number)[]).some(val => String(val) === String(option.value))\n : option.value === this.internalValue,\n 'spw-custom-select__option--focused': index === this.focusedOptionIndex,\n }}\n onClick={() => this.selectOption(option.value)}\n >\n {this.multiple && (\n <spw-checkbox\n onKeyDown={event => this.handleOptionKeyDown(event, option.value)}\n class=\"spw-tw-mr-2\"\n checked={(this.internalValue as (string | number)[]).some(val => String(val) === String(option.value))}\n ></spw-checkbox>\n )}\n {option.label}\n </li>\n ))}\n </ul>\n )}\n {!filteredOptions.length && <p class=\"spw-custom-select__no-results\">Pas de résultats pour cette recherche.</p>}\n </div>\n )}\n </div>\n {this.renderErrorMessage()}\n {this.renderHintMessage()}\n {this.renderSuccessMessage()}\n {this.renderWarningMessage()}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,h as t,g as i}from"./p-CvfVJV8a.js";const s="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:contents;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-table-cell{border:1px solid var(--spw-color-themes-grey-grey-300);border-top:0;color:var(--spw-color-themes-grey-grey-800);font-size:14px;text-align:left}.spw-table-cell--is-highlighted{background:var(--spw-color-themes-grey-grey-100);font-weight:700}.spw-table-cell--text-align-left{text-align:left}.spw-table-cell--text-align-center{text-align:center}.spw-table-cell--text-align-right{text-align:right}.spw-table-cell--vertical-align-top{vertical-align:top}.spw-table-cell--vertical-align-bottom{vertical-align:bottom}.spw-table-cell--vertical-align-middle{vertical-align:middle}.spw-table-cell--padding-small{padding:8px}.spw-table-cell--padding-medium{padding:16px}.spw-table-cell--disabled{cursor:not-allowed;opacity:.3;pointer-events:none}.spw-table-cell--selected{background-color:var(--spw-color-themes-blue-blue-50)}.spw-table-cell--selected.spw-table-cell--first-in-row{box-shadow:inset 3px 0 0 var(--spw-color-themes-blue-blue-500)}.spw-table-cell ::slotted(spw-checkbox){--spw-ds-checkbox-checked-color:#000}";const n=class{constructor(t){e(this,t);this.isHighlighted=false;this.textAlign="left";this.verticalAlign="middle";this.width="auto";this.padding="medium";this.state="default";this.isFirst=false}componentDidLoad(){this.checkIfFirst();this.observeRowSlot()}disconnectedCallback(){var e;(e=this.slotObserver)===null||e===void 0?void 0:e.disconnect()}checkIfFirst(){const e=this.el.closest("spw-table-row");if(!e){this.isFirst=false;return}const t=Array.from(e.children).filter((e=>e.tagName==="SPW-TABLE-CELL"||e.tagName==="SPW-TABLE-HEADER"||e.tagName==="TD"||e.tagName==="TH"));this.isFirst=t[0]===this.el}observeRowSlot(){const e=this.el.closest("spw-table-row");if(!e)return;this.slotObserver=new MutationObserver((()=>this.checkIfFirst()));this.slotObserver.observe(e,{childList:true,subtree:false})}get elementClass(){return{"spw-table-cell":true,"spw-table-cell--is-highlighted":this.isHighlighted,[`spw-table-cell--text-align-${this.textAlign}`]:true,[`spw-table-cell--padding-${this.padding}`]:true,[`spw-table-cell--vertical-align-${this.verticalAlign}`]:true,[`spw-table-cell--${this.state}`]:true,"spw-table-cell--first-in-row":this.isFirst}}render(){const e={width:this.width,class:this.elementClass,part:"cell"};if(this.colspan!==undefined)e.colSpan=this.colspan;if(this.rowspan!==undefined)e.rowSpan=this.rowspan;if(this.headers!==undefined)e.headers=this.headers;return t("td",Object.assign({key:"3a357e150b2f178f9de1df42331d098d59c509d5"},e),t("slot",{key:"f81c4748cb80da4cb8e0b1c3cfe38467e2ab2e13"}))}get el(){return i(this)}};n.style=s;export{n as spw_table_cell};
|
|
2
|
-
//# sourceMappingURL=p-823b60ae.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwTableCellCss","SpwTableCell","constructor","hostRef","this","isHighlighted","textAlign","verticalAlign","width","padding","state","isFirst","componentDidLoad","checkIfFirst","observeRowSlot","disconnectedCallback","_a","slotObserver","disconnect","parentRow","el","closest","cells","Array","from","children","filter","tagName","MutationObserver","observe","childList","subtree","elementClass","render","attrs","class","part","colspan","undefined","colSpan","rowspan","rowSpan","headers","h","Object","assign","key"],"sources":["src/components/spw-table/spw-table-cell/spw-table-cell.scss?tag=spw-table-cell&encapsulation=shadow","src/components/spw-table/spw-table-cell/spw-table-cell.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\n.spw-table-cell {\n border: 1px solid var(--spw-color-themes-grey-grey-300);\n color: var(--spw-color-themes-grey-grey-800);\n font-size: 14px;\n text-align: left;\n border-top: 0;\n &--is-highlighted {\n font-weight: 700;\n background: var(--spw-color-themes-grey-grey-100);\n }\n &--text-align-left {\n text-align: left;\n }\n &--text-align-center {\n text-align: center;\n }\n &--text-align-right {\n text-align: right;\n }\n &--vertical-align-top {\n vertical-align: top;\n }\n &--vertical-align-bottom {\n vertical-align: bottom;\n }\n &--vertical-align-middle {\n vertical-align: middle;\n }\n &--padding-small {\n padding: 8px;\n }\n &--padding-medium {\n padding: 16px;\n }\n &--disabled {\n opacity: 0.3;\n pointer-events: none;\n cursor: not-allowed;\n }\n &--selected {\n background-color: var(--spw-color-themes-blue-blue-50);\n &.spw-table-cell--first-in-row {\n box-shadow: inset 3px 0 0 var(--spw-color-themes-blue-blue-500);\n }\n }\n ::slotted(spw-checkbox) {\n --spw-ds-checkbox-checked-color: #000;\n }\n}\n","import { Component, Element, State, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-table-cell',\n styleUrl: 'spw-table-cell.scss',\n shadow: true,\n})\nexport class SpwTableCell {\n @Element() el: HTMLElement;\n /** Définit un colspan pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() colspan?: HTMLTableCellElement['colSpan'];\n /** Définit un header relationnel pour la cellule, à des fins d'accessibilité (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() headers?: HTMLTableCellElement['headers'];\n /** Définit un rowspan pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() rowspan?: HTMLTableCellElement['rowSpan'];\n /** Définit un style visuel qui met en avant la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() isHighlighted?: boolean = false;\n /** Définit un alignement de texte pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() textAlign?: 'center' | 'left' | 'right' = 'left';\n /** Définit un alignement vertical pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() verticalAlign?: 'top' | 'bottom' | 'middle' = 'middle';\n /** Définit une largeur si nécessaire (à appliquer sur spw-table-cell) */\n @Prop() width?: string = 'auto';\n /** Définit le padding pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() padding?: 'small' | 'medium' = 'medium';\n /** Permet de changer le state du spw-table-cell */\n @Prop() state?: 'default' | 'selected' | 'disabled' = 'default';\n\n @State() isFirst: boolean = false;\n\n private slotObserver?: MutationObserver;\n\n componentDidLoad() {\n this.checkIfFirst();\n this.observeRowSlot();\n }\n\n disconnectedCallback() {\n this.slotObserver?.disconnect();\n }\n\n private checkIfFirst() {\n const parentRow = this.el.closest('spw-table-row');\n if (!parentRow) {\n this.isFirst = false;\n return;\n }\n const cells = Array.from(parentRow.children).filter(\n (el: Element) => el.tagName === 'SPW-TABLE-CELL' || el.tagName === 'SPW-TABLE-HEADER' || el.tagName === 'TD' || el.tagName === 'TH',\n );\n this.isFirst = cells[0] === this.el;\n }\n\n private observeRowSlot() {\n const parentRow = this.el.closest('spw-table-row');\n if (!parentRow) return;\n this.slotObserver = new MutationObserver(() => this.checkIfFirst());\n this.slotObserver.observe(parentRow, { childList: true, subtree: false });\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-table-cell': true,\n 'spw-table-cell--is-highlighted': this.isHighlighted,\n [`spw-table-cell--text-align-${this.textAlign}`]: true,\n [`spw-table-cell--padding-${this.padding}`]: true,\n [`spw-table-cell--vertical-align-${this.verticalAlign}`]: true,\n [`spw-table-cell--${this.state}`]: true,\n 'spw-table-cell--first-in-row': this.isFirst,\n };\n }\n\n render() {\n const attrs: { [key: string]: any } = {\n width: this.width,\n class: this.elementClass,\n part: 'cell',\n };\n\n if (this.colspan !== undefined) attrs.colSpan = this.colspan;\n if (this.rowspan !== undefined) attrs.rowSpan = this.rowspan;\n if (this.headers !== undefined) attrs.headers = this.headers;\n\n return (\n <td {...attrs}>\n <slot />\n </td>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAkB,ilH,MCOXC,EAAY,MALzB,WAAAC,CAAAC,G,UAcUC,KAAaC,cAAa,MAE1BD,KAASE,UAAiC,OAE1CF,KAAaG,cAAiC,SAE9CH,KAAKI,MAAY,OAEjBJ,KAAOK,QAAwB,SAE/BL,KAAKM,MAAyC,UAE7CN,KAAOO,QAAY,KA6D7B,CAzDC,gBAAAC,GACER,KAAKS,eACLT,KAAKU,gB,CAGP,oBAAAC,G,OACEC,EAAAZ,KAAKa,gBAAc,MAAAD,SAAA,SAAAA,EAAAE,Y,CAGb,YAAAL,GACN,MAAMM,EAAYf,KAAKgB,GAAGC,QAAQ,iBAClC,IAAKF,EAAW,CACdf,KAAKO,QAAU,MACf,M,CAEF,MAAMW,EAAQC,MAAMC,KAAKL,EAAUM,UAAUC,QAC1CN,GAAgBA,EAAGO,UAAY,kBAAoBP,EAAGO,UAAY,oBAAsBP,EAAGO,UAAY,MAAQP,EAAGO,UAAY,OAEjIvB,KAAKO,QAAUW,EAAM,KAAOlB,KAAKgB,E,CAG3B,cAAAN,GACN,MAAMK,EAAYf,KAAKgB,GAAGC,QAAQ,iBAClC,IAAKF,EAAW,OAChBf,KAAKa,aAAe,IAAIW,kBAAiB,IAAMxB,KAAKS,iBACpDT,KAAKa,aAAaY,QAAQV,EAAW,CAAEW,UAAW,KAAMC,QAAS,O,CAGnE,gBAAYC,GACV,MAAO,CACL,iBAAkB,KAClB,iCAAkC5B,KAAKC,cACvC,CAAC,8BAA8BD,KAAKE,aAAc,KAClD,CAAC,2BAA2BF,KAAKK,WAAY,KAC7C,CAAC,kCAAkCL,KAAKG,iBAAkB,KAC1D,CAAC,mBAAmBH,KAAKM,SAAU,KACnC,+BAAgCN,KAAKO,Q,CAIzC,MAAAsB,GACE,MAAMC,EAAgC,CACpC1B,MAAOJ,KAAKI,MACZ2B,MAAO/B,KAAK4B,aACZI,KAAM,QAGR,GAAIhC,KAAKiC,UAAYC,UAAWJ,EAAMK,QAAUnC,KAAKiC,QACrD,GAAIjC,KAAKoC,UAAYF,UAAWJ,EAAMO,QAAUrC,KAAKoC,QACrD,GAAIpC,KAAKsC,UAAYJ,UAAWJ,EAAMQ,QAAUtC,KAAKsC,QAErD,OACEC,EAAA,KAAAC,OAAAC,OAAA,CAAAC,IAAA,4CAAQZ,GACNS,EAAQ,QAAAG,IAAA,6C","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwSelectCss","SpwSelect","constructor","hostRef","this","label","placeholder","required","size","error","hint","success","warning","showErrorIcon","showHintIcon","showSuccessIcon","showWarningIcon","defaultValue","handleItemsChange","selectElement","syncDynamicOptions","resetSelect","internalValue","value","internals","setFormValue","valueChanged","emit","componentWillLoad","_a","getInitialSelectedValue","componentDidLoad","getFormValue","items","moveOptionsToLightDom","formResetCallback","setValue","val","String","length","assignedNodes","Array","from","el","querySelectorAll","option","hasAttribute","getAttribute","handleSelectChange","event","select","target","slot","shadowRoot","querySelector","flatten","forEach","node","nodeName","appendChild","options","remove","item","document","createElement","itemValue","itemLabel","textContent","renderErrorMessage","h","variant","showIcon","renderHintMessage","renderSuccessMessage","renderWarningMessage","elementClass","disabled","render","Host","key","class","name","assistiveText","id","onChange","ref","tabindex","selected","icon"],"sources":["src/components/spw-select/spw-select.scss?tag=spw-select&encapsulation=shadow","src/components/spw-select/spw-select.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.spw-select {\n position: relative;\n &__container {\n position: relative;\n }\n &__arrow {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 12px;\n pointer-events: none;\n color: var(--spw-color-themes-grey-grey-600);\n font-size: 16px;\n }\n &__trigger {\n width: 100%;\n height: 40px;\n border-radius: 4px;\n border: 1px solid var(--spw-color-themes-grey-grey-800);\n background-color: #fff;\n font-size: 16px;\n color: var(--spw-color-themes-grey-grey-800);\n position: relative;\n padding: 0;\n margin: 0;\n appearance: none;\n padding: 0 12px;\n padding-right: 40px;\n\n &:hover {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n\n &:focus-visible {\n outline: 3px solid white;\n outline-offset: 0;\n box-shadow: 0 0 0 6px black;\n }\n\n &::after {\n content: '\\f078';\n font-family: var(--spw-ds-font-icons-solid);\n font-weight: 900;\n font-size: 14px;\n color: var(--spw-color-themes-grey-grey-800);\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n }\n\n .spw-select--is-error & {\n border-color: var(--spw-colors-states-error-error-300);\n }\n\n .spw-select--large & {\n height: 60px;\n padding: 0 24px;\n font-size: 18px;\n }\n\n .spw-select--disabled & {\n border-color: var(--spw-color-themes-grey-grey-400);\n background: var(--spw-color-themes-grey-grey-100);\n color: var(--spw-color-themes-grey-grey-500);\n cursor: not-allowed;\n &::placeholder {\n color: var(--spw-color-themes-grey-grey-500);\n }\n &:hover,\n &:focus,\n &:focus-visible {\n outline: none;\n }\n }\n }\n}\n","import { AttachInternals, Host, Component, Method, Prop, State, Event, EventEmitter, h, Element, Watch } from '@stencil/core';\n\nexport interface SelectItem {\n label: string;\n value: string | number;\n}\n\n@Component({\n tag: 'spw-select',\n styleUrl: 'spw-select.scss',\n formAssociated: true,\n shadow: true,\n})\nexport class SpwSelect {\n @Element() el: HTMLSpwSelectElement;\n\n /** Emet un event si la valeur change */\n @Event() valueChanged: EventEmitter<string | number>;\n @State() internalValue: string | number;\n\n /** Valeur sélectionnée actuelle, mutable et reflétée dans le DOM */\n @Prop({ mutable: true, reflect: true }) value: string | number;\n /** Label associé au champ de sélection */\n @Prop() label: string = '';\n /** Texte du placeholder à afficher lorsque rien n'est sélectionné */\n @Prop() placeholder: string = 'Sélectionner une option';\n /** Indique si le champ de sélection est désactivé */\n @Prop() disabled: boolean;\n /** Nom de l'élément utilisé dans les formulaires pour associer la valeur sélectionnée */\n @Prop() name: string;\n /** Indique si la sélection est obligatoire dans le formulaire */\n @Prop() required: boolean = false;\n /** Taille du champ de sélection : 'large' ou 'medium' */\n @Prop() size: 'large' | 'medium' = 'medium';\n /** Texte d'assistance affiché sous le champ de sélection */\n @Prop() assistiveText?: string;\n /** Message d'erreur à afficher sous le champ de sélection */\n @Prop() error?: string = '';\n /** Message d'indication (hint) à afficher sous le champ de sélection */\n @Prop() hint?: string = '';\n /** Message de succès à afficher sous le champ de sélection */\n @Prop() success?: string = '';\n /** Message de warning à afficher sous le champ */\n @Prop() warning?: string = '';\n /** Affiche une icône d'erreur si vrai */\n @Prop() showErrorIcon?: boolean = true;\n /** Affiche une icône d'indication si vrai */\n @Prop() showHintIcon?: boolean = true;\n /** Affiche une icône de succès si vrai */\n @Prop() showSuccessIcon?: boolean = true;\n /** Affiche une icône de warning si vrai */\n @Prop() showWarningIcon?: boolean = true;\n /** Liste d'items dynamiques pour générer les options (array d'objects avec label + value) */\n @Prop() items?: SelectItem[];\n /** Propriété à utiliser comme label des options */\n @Prop() itemLabel?: string;\n /** Propriété à utiliser comme valeur des options */\n @Prop() itemValue?: string;\n\n private selectElement!: HTMLSelectElement;\n private defaultValue: string | number | null = null;\n\n @AttachInternals() internals: ElementInternals;\n\n @Watch('items')\n handleItemsChange() {\n if (this.selectElement) {\n this.syncDynamicOptions();\n }\n }\n\n @Method()\n async resetSelect() {\n this.internalValue = '';\n this.value = '';\n if (this.selectElement) {\n this.selectElement.value = '';\n }\n this.internals.setFormValue('');\n this.valueChanged.emit('');\n }\n\n componentWillLoad() {\n this.defaultValue = this.value ?? this.getInitialSelectedValue();\n this.internalValue = this.value || this.getInitialSelectedValue();\n }\n\n componentDidLoad() {\n this.internals.setFormValue(this.getFormValue());\n if (!this.items) {\n this.moveOptionsToLightDom();\n } else {\n this.syncDynamicOptions();\n }\n }\n\n formResetCallback() {\n this.setValue(this.defaultValue ?? '');\n this.resetSelect();\n }\n\n private setValue(val: string | number) {\n this.internalValue = val;\n this.value = val;\n\n if (this.selectElement) {\n this.selectElement.value = String(val);\n }\n\n this.internals.setFormValue(this.getFormValue());\n this.valueChanged.emit(this.internalValue);\n }\n\n private getFormValue(): string | null {\n return this.internalValue ? String(this.internalValue) : null;\n }\n\n private getInitialSelectedValue(): string | number | null {\n if (this.items && this.items.length > 0) {\n return null;\n }\n const assignedNodes = Array.from(this.el.querySelectorAll('option')) as HTMLOptionElement[];\n for (const option of assignedNodes) {\n if (option.hasAttribute('selected')) {\n return option.getAttribute('value');\n }\n }\n return null;\n }\n\n private handleSelectChange(event: Event) {\n const select = event.target as HTMLSelectElement;\n this.internalValue = select.value;\n this.value = this.internalValue;\n this.internals.setFormValue(this.getFormValue());\n this.valueChanged.emit(this.internalValue);\n }\n\n private moveOptionsToLightDom() {\n const slot = this.el.shadowRoot.querySelector('slot');\n if (slot) {\n const assignedNodes = slot.assignedNodes({ flatten: true }) as HTMLElement[];\n assignedNodes.forEach(node => {\n if (node.nodeName === 'OPTION' || node.nodeName === 'OPTGROUP') {\n this.selectElement.appendChild(node);\n }\n });\n }\n }\n\n private syncDynamicOptions() {\n while (this.selectElement.options.length > 1) {\n this.selectElement.remove(1);\n }\n\n if (this.items && this.items.length > 0) {\n this.items.forEach(item => {\n const option = document.createElement('option');\n const value = this.itemValue ? item[this.itemValue] : item;\n const label = this.itemLabel ? item[this.itemLabel] : item;\n option.value = String(value);\n option.textContent = String(label);\n this.selectElement.appendChild(option);\n });\n }\n\n if (this.selectElement.value !== String(this.internalValue || '')) {\n this.selectElement.value = String(this.internalValue || '');\n }\n }\n\n private renderErrorMessage() {\n if (this.error) {\n return (\n <spw-field-message variant=\"error\" showIcon={this.showErrorIcon}>\n {this.error}\n </spw-field-message>\n );\n }\n }\n\n private renderHintMessage() {\n if (this.hint) {\n return (\n <spw-field-message variant=\"hint\" showIcon={this.showHintIcon}>\n {this.hint}\n </spw-field-message>\n );\n }\n }\n\n private renderSuccessMessage() {\n if (this.success) {\n return (\n <spw-field-message variant=\"success\" showIcon={this.showSuccessIcon}>\n {this.success}\n </spw-field-message>\n );\n }\n }\n\n private renderWarningMessage() {\n if (this.warning) {\n return (\n <spw-field-message variant=\"warning\" showIcon={this.showWarningIcon}>\n {this.warning}\n </spw-field-message>\n );\n }\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-select': true,\n [`spw-select--${this.size}`]: true,\n 'spw-select--disabled': this.disabled,\n 'spw-select--is-error': !!this.error,\n };\n }\n\n render() {\n return (\n <Host>\n <div class={this.elementClass}>\n {this.label && <spw-field-label label={this.label} name={this.name} required={this.required}></spw-field-label>}\n {this.assistiveText && (\n <spw-field-message class=\"spw-tw-mb-2 -spw-tw-mt-1\" variant=\"hint\" showIcon={false}>\n {this.assistiveText}\n </spw-field-message>\n )}\n <div class=\"spw-select__container\">\n <select\n id={this.name}\n class=\"spw-select__trigger\"\n onChange={event => this.handleSelectChange(event)}\n disabled={this.disabled}\n ref={el => (this.selectElement = el as HTMLSelectElement)}\n tabindex={this.disabled ? -1 : 0}\n >\n <option value=\"\" disabled selected={!this.internalValue}>\n {this.placeholder}\n </option>\n </select>\n <spw-icon class=\"spw-select__arrow\" icon=\"fa-chevron-down\"></spw-icon>\n </div>\n {!this.items && <slot />}\n </div>\n {this.renderErrorMessage()}\n {this.renderHintMessage()}\n {this.renderSuccessMessage()}\n {this.renderWarningMessage()}\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAe,8zI,MCaRC,EAAS,MANtB,WAAAC,CAAAC,G,qNAgBUC,KAAKC,MAAW,GAEhBD,KAAWE,YAAW,0BAMtBF,KAAQG,SAAY,MAEpBH,KAAII,KAAuB,SAI3BJ,KAAKK,MAAY,GAEjBL,KAAIM,KAAY,GAEhBN,KAAOO,QAAY,GAEnBP,KAAOQ,QAAY,GAEnBR,KAAaS,cAAa,KAE1BT,KAAYU,aAAa,KAEzBV,KAAeW,gBAAa,KAE5BX,KAAeY,gBAAa,KAS5BZ,KAAYa,aAA2B,IAkMhD,CA7LC,iBAAAC,GACE,GAAId,KAAKe,cAAe,CACtBf,KAAKgB,oB,EAKT,iBAAMC,GACJjB,KAAKkB,cAAgB,GACrBlB,KAAKmB,MAAQ,GACb,GAAInB,KAAKe,cAAe,CACtBf,KAAKe,cAAcI,MAAQ,E,CAE7BnB,KAAKoB,UAAUC,aAAa,IAC5BrB,KAAKsB,aAAaC,KAAK,G,CAGzB,iBAAAC,G,MACExB,KAAKa,cAAeY,EAAAzB,KAAKmB,SAAK,MAAAM,SAAA,EAAAA,EAAIzB,KAAK0B,0BACvC1B,KAAKkB,cAAgBlB,KAAKmB,OAASnB,KAAK0B,yB,CAG1C,gBAAAC,GACE3B,KAAKoB,UAAUC,aAAarB,KAAK4B,gBACjC,IAAK5B,KAAK6B,MAAO,CACf7B,KAAK8B,uB,KACA,CACL9B,KAAKgB,oB,EAIT,iBAAAe,G,MACE/B,KAAKgC,UAASP,EAAAzB,KAAKa,gBAAY,MAAAY,SAAA,EAAAA,EAAI,IACnCzB,KAAKiB,a,CAGC,QAAAe,CAASC,GACfjC,KAAKkB,cAAgBe,EACrBjC,KAAKmB,MAAQc,EAEb,GAAIjC,KAAKe,cAAe,CACtBf,KAAKe,cAAcI,MAAQe,OAAOD,E,CAGpCjC,KAAKoB,UAAUC,aAAarB,KAAK4B,gBACjC5B,KAAKsB,aAAaC,KAAKvB,KAAKkB,c,CAGtB,YAAAU,GACN,OAAO5B,KAAKkB,cAAgBgB,OAAOlC,KAAKkB,eAAiB,I,CAGnD,uBAAAQ,GACN,GAAI1B,KAAK6B,OAAS7B,KAAK6B,MAAMM,OAAS,EAAG,CACvC,OAAO,I,CAET,MAAMC,EAAgBC,MAAMC,KAAKtC,KAAKuC,GAAGC,iBAAiB,WAC1D,IAAK,MAAMC,KAAUL,EAAe,CAClC,GAAIK,EAAOC,aAAa,YAAa,CACnC,OAAOD,EAAOE,aAAa,Q,EAG/B,OAAO,I,CAGD,kBAAAC,CAAmBC,GACzB,MAAMC,EAASD,EAAME,OACrB/C,KAAKkB,cAAgB4B,EAAO3B,MAC5BnB,KAAKmB,MAAQnB,KAAKkB,cAClBlB,KAAKoB,UAAUC,aAAarB,KAAK4B,gBACjC5B,KAAKsB,aAAaC,KAAKvB,KAAKkB,c,CAGtB,qBAAAY,GACN,MAAMkB,EAAOhD,KAAKuC,GAAGU,WAAWC,cAAc,QAC9C,GAAIF,EAAM,CACR,MAAMZ,EAAgBY,EAAKZ,cAAc,CAAEe,QAAS,OACpDf,EAAcgB,SAAQC,IACpB,GAAIA,EAAKC,WAAa,UAAYD,EAAKC,WAAa,WAAY,CAC9DtD,KAAKe,cAAcwC,YAAYF,E,MAM/B,kBAAArC,GACN,MAAOhB,KAAKe,cAAcyC,QAAQrB,OAAS,EAAG,CAC5CnC,KAAKe,cAAc0C,OAAO,E,CAG5B,GAAIzD,KAAK6B,OAAS7B,KAAK6B,MAAMM,OAAS,EAAG,CACvCnC,KAAK6B,MAAMuB,SAAQM,IACjB,MAAMjB,EAASkB,SAASC,cAAc,UACtC,MAAMzC,EAAQnB,KAAK6D,UAAYH,EAAK1D,KAAK6D,WAAaH,EACtD,MAAMzD,EAAQD,KAAK8D,UAAYJ,EAAK1D,KAAK8D,WAAaJ,EACtDjB,EAAOtB,MAAQe,OAAOf,GACtBsB,EAAOsB,YAAc7B,OAAOjC,GAC5BD,KAAKe,cAAcwC,YAAYd,EAAO,G,CAI1C,GAAIzC,KAAKe,cAAcI,QAAUe,OAAOlC,KAAKkB,eAAiB,IAAK,CACjElB,KAAKe,cAAcI,MAAQe,OAAOlC,KAAKkB,eAAiB,G,EAIpD,kBAAA8C,GACN,GAAIhE,KAAKK,MAAO,CACd,OACE4D,EAAmB,qBAAAC,QAAQ,QAAQC,SAAUnE,KAAKS,eAC/CT,KAAKK,M,EAMN,iBAAA+D,GACN,GAAIpE,KAAKM,KAAM,CACb,OACE2D,EAAmB,qBAAAC,QAAQ,OAAOC,SAAUnE,KAAKU,cAC9CV,KAAKM,K,EAMN,oBAAA+D,GACN,GAAIrE,KAAKO,QAAS,CAChB,OACE0D,EAAmB,qBAAAC,QAAQ,UAAUC,SAAUnE,KAAKW,iBACjDX,KAAKO,Q,EAMN,oBAAA+D,GACN,GAAItE,KAAKQ,QAAS,CAChB,OACEyD,EAAmB,qBAAAC,QAAQ,UAAUC,SAAUnE,KAAKY,iBACjDZ,KAAKQ,Q,EAMd,gBAAY+D,GACV,MAAO,CACL,aAAc,KACd,CAAC,eAAevE,KAAKI,QAAS,KAC9B,uBAAwBJ,KAAKwE,SAC7B,yBAA0BxE,KAAKK,M,CAInC,MAAAoE,GACE,OACER,EAACS,EAAI,CAAAC,IAAA,4CACHV,EAAA,OAAAU,IAAA,2CAAKC,MAAO5E,KAAKuE,cACdvE,KAAKC,OAASgE,EAAA,mBAAAU,IAAA,2CAAiB1E,MAAOD,KAAKC,MAAO4E,KAAM7E,KAAK6E,KAAM1E,SAAUH,KAAKG,WAClFH,KAAK8E,eACJb,EAAA,qBAAAU,IAAA,2CAAmBC,MAAM,2BAA2BV,QAAQ,OAAOC,SAAU,OAC1EnE,KAAK8E,eAGVb,EAAK,OAAAU,IAAA,2CAAAC,MAAM,yBACTX,EACE,UAAAU,IAAA,2CAAAI,GAAI/E,KAAK6E,KACTD,MAAM,sBACNI,SAAUnC,GAAS7C,KAAK4C,mBAAmBC,GAC3C2B,SAAUxE,KAAKwE,SACfS,IAAK1C,GAAOvC,KAAKe,cAAgBwB,EACjC2C,SAAUlF,KAAKwE,UAAW,EAAK,GAE/BP,EAAA,UAAAU,IAAA,2CAAQxD,MAAM,GAAGqD,SAAQ,KAACW,UAAWnF,KAAKkB,eACvClB,KAAKE,cAGV+D,EAAU,YAAAU,IAAA,2CAAAC,MAAM,oBAAoBQ,KAAK,sBAEzCpF,KAAK6B,OAASoC,EAAA,QAAAU,IAAA,8CAEjB3E,KAAKgE,qBACLhE,KAAKoE,oBACLpE,KAAKqE,uBACLrE,KAAKsE,uB","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as e,F as a,H as n}from"./p-CvfVJV8a.js";const s="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-pagination__item button,.spw-pagination__item--dots{border-radius:32px;font-size:14px;font-weight:700;height:32px;line-height:32px;min-width:32px;text-align:center}.spw-pagination__item button:focus-visible,.spw-pagination__item--dots:focus-visible{box-shadow:0 0 0 5px #000;outline:3px solid #fff;outline-offset:-1px}.spw-pagination{align-items:center;display:flex;flex-direction:column}@media (min-width:768px){.spw-pagination{align-items:flex-start}}.spw-pagination ul{align-items:center;display:flex;padding:0}.spw-pagination__item{margin-right:12px}.spw-pagination__item spw-icon{font-size:18px}.spw-pagination__item button{background:none;border:none;color:var(--spw-color-themes-grey-grey-900);cursor:pointer;margin:0;padding:0 6px}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):hover button{background:var(--spw-color-themes-grey-grey-200)}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):active button{background:var(--spw-color-themes-grey-grey-300)}.spw-pagination__item--arrow button{align-items:center;display:flex;gap:8px;padding:0 12px;text-decoration:underline}.spw-pagination__item--arrow button:hover{text-decoration:none}.spw-pagination__item--dots{align-items:center;background:none;color:var(--spw-color-themes-grey-grey-400);cursor:default;display:inline-flex;justify-content:center;position:relative;top:3px}.spw-pagination__item--dots spw-icon{font-size:16px}.spw-pagination__item--desktop{display:none}@media (min-width:768px){.spw-pagination__item--desktop{display:inline-block}}.spw-pagination__item--active button{background:var(--spw-ds-primary);color:#fff}.spw-pagination__input spw-text-field{--spw-input-height:32px;--spw-input-padding:0 4px;--spw-input-text-align:center;--spw-input-font-size:14px;width:3ch}.spw-pagination__mobile-arrows{margin-top:12px}@media (min-width:768px){.spw-pagination__mobile-arrows{display:none!important}}.spw-pagination__total-pages{font-size:14px;margin:0 12px 0 6px}.spw-tw-mb-10{margin-bottom:2.5rem}.spw-tw-mb-6{margin-bottom:1.5rem}.spw-tw-ml-2{margin-left:.5rem}.spw-tw-mr-4{margin-right:1rem}.spw-tw-mt-12{margin-top:3rem}.-spw-tw-mt-1{margin-top:-.25rem}.spw-tw-mb-2{margin-bottom:.5rem}";const o=class{constructor(e){t(this,e);this.pageChanged=i(this,"pageChanged",7);this.isDisabled=false;this.variant="numbers";this.currentPage=1;this.inputPageValue="";this.isMobile=window.innerWidth<800;this.updateIsMobile=()=>{this.isMobile=window.innerWidth<800}}componentWillLoad(){this.calculateTotalPages();this.inputPageValue=this.currentPage.toString();window.addEventListener("resize",this.updateIsMobile)}disconnectedCallback(){window.removeEventListener("resize",this.updateIsMobile)}calculateTotalPages(){this.totalPages=Math.ceil(this.totalItems/this.itemsPerPage)}goToPage(t){if(t!==this.currentPage&&!this.isDisabled&&t>=1&&t<=this.totalPages){this.currentPage=t;this.inputPageValue=this.currentPage.toString();this.pageChanged.emit(this.currentPage)}}handleInputChange(t){const i=t.target.value;this.inputPageValue=i;const e=parseInt(i,10);if(!isNaN(e)&&e>=1&&e<=this.totalPages){clearTimeout(this.debounceTimer);this.debounceTimer=setTimeout((()=>{this.goToPage(e)}),500)}}getPaginationClass(){var t,i;const e=this.calculatePageRange();const a=e.filter((({page:t})=>t==="...")).length;const n=a>0&&((t=e[1])===null||t===void 0?void 0:t.page)==="...";const s=a>0&&((i=e[e.length-2])===null||i===void 0?void 0:i.page)==="...";let o=`spw-pagination spw-pagination--${this.currentPage} spw-pagination--total-${this.totalPages}`;if(a===2){o+=" spw-pagination--double-ellipsis"}else if(n){o+=" spw-pagination--ellipsis-start"}else if(s){o+=" spw-pagination--ellipsis-end"}return o}handleKeyDown(t){if(t.key==="Enter"){const t=parseInt(this.inputPageValue,10);if(!isNaN(t)){this.goToPage(t)}}}calculateWidth(){const t=this.inputPageValue.length;if(t<=1){return"3ch"}return`${t+1}ch`}calculatePageRange(){const t=[];const{currentPage:i,totalPages:e,isMobile:a}=this;if(a){if(e<=5){for(let i=1;i<=e;i++){t.push({page:i,class:"spw-pagination__item--small-range"})}}else if(i<=3){for(let i=1;i<=3;i++){t.push({page:i,class:"spw-pagination__item--start-range"})}t.push({page:"...",class:"spw-pagination__item--ellipsis"});t.push({page:e,class:"spw-pagination__item--end"})}else if(i>=e-2){t.push({page:1,class:"spw-pagination__item--start"});t.push({page:"...",class:"spw-pagination__item--ellipsis"});for(let i=e-2;i<=e;i++){t.push({page:i,class:"spw-pagination__item--end-range"})}}else{t.push({page:1,class:"spw-pagination__item--start"});t.push({page:"...",class:"spw-pagination__item--ellipsis"});for(let e=i-1;e<=i+1;e++){t.push({page:e,class:"spw-pagination__item--middle-range"})}t.push({page:"...",class:"spw-pagination__item--ellipsis"});t.push({page:e,class:"spw-pagination__item--end"})}}else{if(e<=7){for(let i=1;i<=e;i++){t.push({page:i,class:"spw-pagination__item--small-range"})}}else if(i<=4){for(let i=1;i<=4;i++){t.push({page:i,class:"spw-pagination__item--start-range"})}t.push({page:"...",class:"spw-pagination__item--ellipsis"});t.push({page:e,class:"spw-pagination__item--end"})}else if(i>=e-3){t.push({page:1,class:"spw-pagination__item--start"});t.push({page:"...",class:"spw-pagination__item--ellipsis"});for(let i=e-3;i<=e;i++){t.push({page:i,class:"spw-pagination__item--end-range"})}}else{t.push({page:1,class:"spw-pagination__item--start"});t.push({page:"...",class:"spw-pagination__item--ellipsis"});for(let e=i-2;e<=i+2;e++){t.push({page:e,class:"spw-pagination__item--middle-range"})}t.push({page:"...",class:"spw-pagination__item--ellipsis"});t.push({page:e,class:"spw-pagination__item--end"})}}return t}render(){const t=this.calculatePageRange();const i=this.currentPage>1;const s=this.currentPage<this.totalPages;const o=i&&e("li",{key:"310d6881f5ca26e72e291ff46f3702430f04c156",class:"spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow"},e("button",{key:"7bf0984d6ca0e452a1af393378029132360d0f88",onClick:()=>this.goToPage(this.currentPage-1)},e("spw-icon",{key:"22a2118f590923421f7939c43d2a5219d8f7b83b",icon:"fa-chevron-left"})," ",e("span",{key:"759c5b353af09965af21490c10ad5769aedd5b8c",class:"spw-pagination__item-arrow-text"},"Précédent")));const p=s&&e("li",{key:"f53c2e57b5c522b1cbfddd2065051cc6f12a8989",class:"spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow"},e("button",{key:"3956b0e4c17fcb36d186d0da90f9a12876f32880",onClick:()=>this.goToPage(this.currentPage+1)},e("span",{key:"415a566238d6628eef7f7076931b1dd6117c59cc",class:"spw-pagination__item-arrow-text"},"Suivant")," ",e("spw-icon",{key:"c692184f2e32af5cecda53da9693097cfe714237",icon:"fa-chevron-right"})));const c=this.currentPage>1&&e("li",{key:"73f7a0999c00ea9a7bc4824b5a5ecb0c7e39a361",class:"spw-pagination__item spw-pagination__item--arrow"},e("button",{key:"3032dadbad8440c930f08187b3f13a5f3792fa22",onClick:()=>this.goToPage(this.currentPage-1)},e("spw-icon",{key:"a8c783e83bb884f27765b8353f4a248e51a30436",icon:"fa-chevron-left"})," ",e("span",{key:"a16dec2d98c14d3f46e043d6085f8da949e36ec0"},"Précédent")));const r=this.currentPage<this.totalPages&&e("li",{key:"c8bc3cb1a2579704de138011dac511eb6d9cb4d8",class:"spw-pagination__item spw-pagination__item--arrow"},e("button",{key:"b1bed9428d39534a9b4132b99abc6abcb503a523",onClick:()=>this.goToPage(this.currentPage+1),disabled:this.currentPage>=this.totalPages},e("span",{key:"295d1d532e9bf87abe1aecfbbe2348f0aceb5aa8"},"Suivant")," ",e("spw-icon",{key:"a57dfaf1c64201cf2ba9a8c8348159f24cb5162a",icon:"fa-chevron-right"})));const l=e("ul",{key:"13e17fdac8c7924ddfd7e9a0efead49d1219d00c",class:"spw-pagination__mobile-arrows"},c,r);return e(n,{key:"327f0c39d4ff811b3b336a3b7ddebfd980631197"},e("div",{key:"91582fe920ccc6122016e349e08f5e0ee8e134b4",class:this.getPaginationClass()},this.variant==="input"&&e(a,{key:"fc891f9ab8a03f988e1f71a3c7e8a82de146c1cf"},e("ul",{key:"ce69c066495c083e6231ea94596498f28df2d946"},o,e("li",{key:"6aa4b5c1eb79fe1c364cfa474d3909c5dfc9a6e7",class:"spw-pagination__input"},e("spw-text-field",{key:"b63bc14dff14f025c6503a2ec1a6250573e51f79",value:this.inputPageValue,type:"text",onInput:t=>this.handleInputChange(t),onKeyDown:t=>this.handleKeyDown(t),disabled:this.isDisabled,style:{width:this.calculateWidth()}})),e("li",{key:"fc3afd361ff6457b0cefc381ed210d1ca8b9cae5",class:"spw-pagination__total-pages"},"sur ",this.totalPages," pages"),p),l),this.variant==="numbers"&&e(a,{key:"db332f9578f6a3dc6e7776b2acd98a09c60a5800"},e("ul",{key:"3f4c352d2ed4673cfe15497d83088a3fc9b7caba"},o,t.map((({page:t,class:i})=>{if(t==="..."){return e("li",{class:`spw-pagination__item spw-pagination__item--dots ${i}`},e("spw-icon",{icon:"fa-ellipsis"}))}return e("li",{class:{"spw-pagination__item":true,"spw-pagination__item--active":t===this.currentPage,[i]:true}},e("button",{onClick:()=>this.goToPage(t),disabled:t===this.currentPage},t))})),p),l)))}static get watchers(){return{totalItems:["calculateTotalPages"],itemsPerPage:["calculateTotalPages"],currentPage:["calculateTotalPages"]}}};o.style=s;export{o as spw_pagination};
|
|
2
|
-
//# sourceMappingURL=p-d115a739.entry.js.map
|