@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwPaginationCss","SpwPagination","constructor","hostRef","this","isDisabled","variant","currentPage","inputPageValue","isMobile","window","innerWidth","updateIsMobile","componentWillLoad","calculateTotalPages","toString","addEventListener","disconnectedCallback","removeEventListener","totalPages","Math","ceil","totalItems","itemsPerPage","goToPage","page","pageChanged","emit","handleInputChange","event","inputValue","target","value","parseInt","isNaN","clearTimeout","debounceTimer","setTimeout","getPaginationClass","pages","calculatePageRange","ellipsisCount","filter","length","hasEllipsisStart","_a","hasEllipsisEnd","_b","paginationClass","handleKeyDown","key","calculateWidth","i","push","class","render","showPrevArrow","showNextArrow","prevArrow","h","onClick","icon","nextArrow","prevArrowMobile","nextArrowMobile","disabled","mobileArrows","Host","Fragment","type","onInput","onKeyDown","style","width","map","pageClass"],"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"],"mappings":"gEAAA,MAAMA,EAAmB,20J,MCOZC,EAAa,MAL1B,WAAAC,CAAAC,G,mDAWUC,KAAUC,WAAY,MAEtBD,KAAOE,QAAwB,UAEdF,KAAWG,YAAW,EAMtCH,KAAcI,eAAW,GACzBJ,KAAAK,SAAoBC,OAAOC,WAAa,IAazCP,KAAcQ,eAAG,KACvBR,KAAKK,SAAWC,OAAOC,WAAa,GAAG,CA2O1C,CAtPC,iBAAAE,GACET,KAAKU,sBACLV,KAAKI,eAAiBJ,KAAKG,YAAYQ,WACvCL,OAAOM,iBAAiB,SAAUZ,KAAKQ,e,CAGzC,oBAAAK,GACEP,OAAOQ,oBAAoB,SAAUd,KAAKQ,e,CAU5C,mBAAAE,GACEV,KAAKe,WAAaC,KAAKC,KAAKjB,KAAKkB,WAAalB,KAAKmB,a,CAG7C,QAAAC,CAASC,GACf,GAAIA,IAASrB,KAAKG,cAAgBH,KAAKC,YAAcoB,GAAQ,GAAKA,GAAQrB,KAAKe,WAAY,CACzFf,KAAKG,YAAckB,EACnBrB,KAAKI,eAAiBJ,KAAKG,YAAYQ,WACvCX,KAAKsB,YAAYC,KAAKvB,KAAKG,Y,EAIvB,iBAAAqB,CAAkBC,GACxB,MAAMC,EAAcD,EAAME,OAA4BC,MACtD5B,KAAKI,eAAiBsB,EACtB,MAAML,EAAOQ,SAASH,EAAY,IAElC,IAAKI,MAAMT,IAASA,GAAQ,GAAKA,GAAQrB,KAAKe,WAAY,CACxDgB,aAAa/B,KAAKgC,eAClBhC,KAAKgC,cAAgBC,YAAW,KAC9BjC,KAAKoB,SAASC,EAAK,GAClB,I,EAIC,kBAAAa,G,QACN,MAAMC,EAAQnC,KAAKoC,qBACnB,MAAMC,EAAgBF,EAAMG,QAAO,EAAGjB,UAAWA,IAAS,QAAOkB,OACjE,MAAMC,EAAmBH,EAAgB,KAAKI,EAAAN,EAAM,MAAE,MAAAM,SAAA,SAAAA,EAAEpB,QAAS,MACjE,MAAMqB,EAAiBL,EAAgB,KAAKM,EAAAR,EAAMA,EAAMI,OAAS,MAAE,MAAAI,SAAA,SAAAA,EAAEtB,QAAS,MAE9E,IAAIuB,EAAkB,kCAAkC5C,KAAKG,qCAAqCH,KAAKe,aAEvG,GAAIsB,IAAkB,EAAG,CACvBO,GAAmB,kC,MACd,GAAIJ,EAAkB,CAC3BI,GAAmB,iC,MACd,GAAIF,EAAgB,CACzBE,GAAmB,+B,CAGrB,OAAOA,C,CAGD,aAAAC,CAAcpB,GACpB,GAAIA,EAAMqB,MAAQ,QAAS,CACzB,MAAMzB,EAAOQ,SAAS7B,KAAKI,eAAgB,IAC3C,IAAK0B,MAAMT,GAAO,CAChBrB,KAAKoB,SAASC,E,GAKZ,cAAA0B,GACN,MAAMR,EAASvC,KAAKI,eAAemC,OACnC,GAAIA,GAAU,EAAG,CACf,MAAO,K,CAET,MAAO,GAAGA,EAAS,K,CAGb,kBAAAH,GACN,MAAMD,EAAQ,GACd,MAAMhC,YAAEA,EAAWY,WAAEA,EAAUV,SAAEA,GAAaL,KAE9C,GAAIK,EAAU,CAEZ,GAAIU,GAAc,EAAG,CACnB,IAAK,IAAIiC,EAAI,EAAGA,GAAKjC,EAAYiC,IAAK,CACpCb,EAAMc,KAAK,CAAE5B,KAAM2B,EAAGE,MAAO,qC,OAE1B,GAAI/C,GAAe,EAAG,CAC3B,IAAK,IAAI6C,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3Bb,EAAMc,KAAK,CAAE5B,KAAM2B,EAAGE,MAAO,qC,CAE/Bf,EAAMc,KAAK,CAAE5B,KAAM,MAAO6B,MAAO,mCACjCf,EAAMc,KAAK,CAAE5B,KAAMN,EAAYmC,MAAO,6B,MACjC,GAAI/C,GAAeY,EAAa,EAAG,CACxCoB,EAAMc,KAAK,CAAE5B,KAAM,EAAG6B,MAAO,gCAC7Bf,EAAMc,KAAK,CAAE5B,KAAM,MAAO6B,MAAO,mCACjC,IAAK,IAAIF,EAAIjC,EAAa,EAAGiC,GAAKjC,EAAYiC,IAAK,CACjDb,EAAMc,KAAK,CAAE5B,KAAM2B,EAAGE,MAAO,mC,MAE1B,CACLf,EAAMc,KAAK,CAAE5B,KAAM,EAAG6B,MAAO,gCAC7Bf,EAAMc,KAAK,CAAE5B,KAAM,MAAO6B,MAAO,mCACjC,IAAK,IAAIF,EAAI7C,EAAc,EAAG6C,GAAK7C,EAAc,EAAG6C,IAAK,CACvDb,EAAMc,KAAK,CAAE5B,KAAM2B,EAAGE,MAAO,sC,CAE/Bf,EAAMc,KAAK,CAAE5B,KAAM,MAAO6B,MAAO,mCACjCf,EAAMc,KAAK,CAAE5B,KAAMN,EAAYmC,MAAO,6B,MAEnC,CAEL,GAAInC,GAAc,EAAG,CACnB,IAAK,IAAIiC,EAAI,EAAGA,GAAKjC,EAAYiC,IAAK,CACpCb,EAAMc,KAAK,CAAE5B,KAAM2B,EAAGE,MAAO,qC,OAE1B,GAAI/C,GAAe,EAAG,CAC3B,IAAK,IAAI6C,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3Bb,EAAMc,KAAK,CAAE5B,KAAM2B,EAAGE,MAAO,qC,CAE/Bf,EAAMc,KAAK,CAAE5B,KAAM,MAAO6B,MAAO,mCACjCf,EAAMc,KAAK,CAAE5B,KAAMN,EAAYmC,MAAO,6B,MACjC,GAAI/C,GAAeY,EAAa,EAAG,CACxCoB,EAAMc,KAAK,CAAE5B,KAAM,EAAG6B,MAAO,gCAC7Bf,EAAMc,KAAK,CAAE5B,KAAM,MAAO6B,MAAO,mCACjC,IAAK,IAAIF,EAAIjC,EAAa,EAAGiC,GAAKjC,EAAYiC,IAAK,CACjDb,EAAMc,KAAK,CAAE5B,KAAM2B,EAAGE,MAAO,mC,MAE1B,CACLf,EAAMc,KAAK,CAAE5B,KAAM,EAAG6B,MAAO,gCAC7Bf,EAAMc,KAAK,CAAE5B,KAAM,MAAO6B,MAAO,mCACjC,IAAK,IAAIF,EAAI7C,EAAc,EAAG6C,GAAK7C,EAAc,EAAG6C,IAAK,CACvDb,EAAMc,KAAK,CAAE5B,KAAM2B,EAAGE,MAAO,sC,CAE/Bf,EAAMc,KAAK,CAAE5B,KAAM,MAAO6B,MAAO,mCACjCf,EAAMc,KAAK,CAAE5B,KAAMN,EAAYmC,MAAO,6B,EAI1C,OAAOf,C,CAGT,MAAAgB,GACE,MAAMhB,EAAQnC,KAAKoC,qBACnB,MAAMgB,EAAgBpD,KAAKG,YAAc,EACzC,MAAMkD,EAAgBrD,KAAKG,YAAcH,KAAKe,WAE9C,MAAMuC,EAAYF,GAChBG,EAAI,MAAAT,IAAA,2CAAAI,MAAM,kFACRK,EAAA,UAAAT,IAAA,2CAAQU,QAAS,IAAMxD,KAAKoB,SAASpB,KAAKG,YAAc,IACtDoD,EAAU,YAAAT,IAAA,2CAAAW,KAAK,oBAA6B,IAACF,EAAA,QAAAT,IAAA,2CAAMI,MAAM,mCAAiC,eAKhG,MAAMQ,EAAYL,GAChBE,EAAI,MAAAT,IAAA,2CAAAI,MAAM,kFACRK,EAAA,UAAAT,IAAA,2CAAQU,QAAS,IAAMxD,KAAKoB,SAASpB,KAAKG,YAAc,IACtDoD,EAAM,QAAAT,IAAA,2CAAAI,MAAM,mCAAgD,eAACK,EAAA,YAAAT,IAAA,2CAAUW,KAAK,uBAKlF,MAAME,EAAkB3D,KAAKG,YAAc,GACzCoD,EAAA,MAAAT,IAAA,2CAAII,MAAM,oDACRK,EAAA,UAAAT,IAAA,2CAAQU,QAAS,IAAMxD,KAAKoB,SAASpB,KAAKG,YAAc,IACtDoD,EAAU,YAAAT,IAAA,2CAAAW,KAAK,oBAA6B,IAACF,EAAsB,QAAAT,IAAA,2DAKzE,MAAMc,EAAkB5D,KAAKG,YAAcH,KAAKe,YAC9CwC,EAAI,MAAAT,IAAA,2CAAAI,MAAM,oDACRK,EAAQ,UAAAT,IAAA,2CAAAU,QAAS,IAAMxD,KAAKoB,SAASpB,KAAKG,YAAc,GAAI0D,SAAU7D,KAAKG,aAAeH,KAAKe,YAC7FwC,EAAoB,QAAAT,IAAA,2DAACS,EAAA,YAAAT,IAAA,2CAAUW,KAAK,uBAK1C,MAAMK,EACJP,EAAI,MAAAT,IAAA,2CAAAI,MAAM,iCACPS,EACAC,GAIL,OACEL,EAACQ,EAAI,CAAAjB,IAAA,4CACHS,EAAA,OAAAT,IAAA,2CAAKI,MAAOlD,KAAKkC,sBACdlC,KAAKE,UAAY,SAChBqD,EAACS,EAAQ,CAAAlB,IAAA,4CACPS,EAAA,MAAAT,IAAA,4CACGQ,EACDC,EAAI,MAAAT,IAAA,2CAAAI,MAAM,yBACRK,EACE,kBAAAT,IAAA,2CAAAlB,MAAO5B,KAAKI,eACZ6D,KAAK,OACLC,QAASzC,GAASzB,KAAKwB,kBAAkBC,GACzC0C,UAAW1C,GAASzB,KAAK6C,cAAcpB,GACvCoC,SAAU7D,KAAKC,WACfmE,MAAO,CAAEC,MAAOrE,KAAK+C,qBAGzBQ,EAAI,MAAAT,IAAA,2CAAAI,MAAM,+BAA6B,OAAMlD,KAAKe,WAAsB,UACvE2C,GAEFI,GAGJ9D,KAAKE,UAAY,WAChBqD,EAACS,EAAQ,CAAAlB,IAAA,4CACPS,EAAA,MAAAT,IAAA,4CACGQ,EAEAnB,EAAMmC,KAAI,EAAGjD,OAAM6B,MAAOqB,MACzB,GAAIlD,IAAS,MAAO,CAClB,OACEkC,EAAI,MAAAL,MAAO,mDAAmDqB,KAC5DhB,EAAA,YAAUE,KAAK,gB,CAKrB,OACEF,EACE,MAAAL,MAAO,CACL,uBAAwB,KACxB,+BAAgC7B,IAASrB,KAAKG,YAC9CoE,CAACA,GAAY,OAGfhB,EAAQ,UAAAC,QAAS,IAAMxD,KAAKoB,SAASC,GAAiBwC,SAAUxC,IAASrB,KAAKG,aAC3EkB,GAEA,IAIRqC,GAEFI,I","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,h as s,H as i,g 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:block;font-size:100%;line-height:1.3;position:relative}: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-container{scrollbar-face-color:var(--spw-color-themes-grey-grey-400);scrollbar-track-color:var(--spw-ds-white);border-radius:4px;max-height:var(--spw-table-max-height);outline:1px solid var(--spw-color-themes-grey-grey-300);outline-offset:-1px;overflow-x:auto;overflow-y:auto;position:relative;width:100%}.spw-table-container::-webkit-scrollbar{height:14px;width:14px}.spw-table-container::-webkit-scrollbar-thumb{background:var(--spw-color-themes-grey-grey-400);border:4px solid var(--spw-ds-white);border-radius:20px}.spw-table-container::-webkit-scrollbar-track{background:var(--spw-ds-white)}.spw-table{border-collapse:collapse;border-radius:4px;min-width:var(--spw-table-min-width);position:relative;width:100%}.spw-table--layout-fixed{table-layout:fixed}.spw-table--layout-auto{table-layout:auto}";const r=class{constructor(s){t(this,s);this.spwSort=e(this,"spwSort",7);this.isSticky=false;this.minWidth="600";this.tableLayout="auto";this.isZebra=false;this.disableSort=false;this.checkboxChangeHandler=()=>this.updateMasterCheckboxState()}onCurrentSortChange(t){if(t){this.updateHeadersSortState(t)}}componentDidLoad(){var t;this.updateZebra();const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot");if(e){e.addEventListener("slotchange",(()=>{this.setupHeaderCheckboxListener();this.updateMasterCheckboxState()}))}this.setupHeaderCheckboxListener();this.setupBodyCheckboxListener();this.setupTableBodyObserver();setTimeout((()=>{this.updateMasterCheckboxState()}),0)}disconnectedCallback(){if(this.mutationObserver){this.mutationObserver.disconnect()}}setupTableBodyObserver(){const t=Array.from(this.el.children).find((t=>t.tagName.toLowerCase()==="spw-table-body"));if(!t)return;this.mutationObserver=new MutationObserver((()=>{this.setupBodyCheckboxListener();setTimeout((()=>{this.updateMasterCheckboxState()}),0)}));this.mutationObserver.observe(t,{childList:true,subtree:true,attributes:true,attributeFilter:["checked","disabled"]})}getMasterCheckboxColumnIndex(){var t;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot");if(!e)return null;const s=e.assignedElements({flatten:true});const i=s.find((t=>t.tagName.toLowerCase()==="spw-table-head"));if(!i)return null;const o=i.querySelector("spw-table-row");if(!o)return null;const n=Array.from(o.querySelectorAll("spw-table-header"));for(let t=0;t<n.length;t++){if(n[t].querySelector("spw-checkbox")){return t}}return null}isCheckboxDisabled(t){return(t===null||t===void 0?void 0:t.disabled)===true||(t===null||t===void 0?void 0:t.getAttribute("disabled"))==="true"||(t===null||t===void 0?void 0:t.getAttribute("disabled"))===""}updateMasterCheckboxState(){var t;const e=this.getMasterCheckboxColumnIndex();if(e===null)return;const s=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot");const i=s===null||s===void 0?void 0:s.assignedElements({flatten:true});if(!i)return;const o=i.find((t=>t.tagName.toLowerCase()==="spw-table-head"));const n=i.find((t=>t.tagName.toLowerCase()==="spw-table-body"));if(!o||!n)return;const r=o.querySelector("spw-table-row");const a=r===null||r===void 0?void 0:r.querySelectorAll("spw-table-header")[e];const l=a===null||a===void 0?void 0:a.querySelector("spw-checkbox");const c=n.querySelectorAll("spw-table-row");const d=Array.from(c).map((t=>{const s=t.querySelectorAll("spw-table-cell")[e];const i=s===null||s===void 0?void 0:s.querySelector("spw-checkbox");return{checked:(i===null||i===void 0?void 0:i.checked)===true||(i===null||i===void 0?void 0:i.getAttribute("checked"))==="true",disabled:this.isCheckboxDisabled(i)}}));const b=d.filter((t=>!t.disabled));if(b.length===0)return;const u=b.every((t=>t.checked));const h=b.every((t=>!t.checked));if(!l)return;if(u){l.checked=true;l.setAttribute("checked","true");l.setAttribute("icon","fa-check")}else if(h){l.checked=false;l.setAttribute("checked","false");l.setAttribute("icon","fa-check")}else{l.checked=true;l.setAttribute("checked","true");l.setAttribute("icon","fa-minus")}}setupHeaderCheckboxListener(){var t,e;const s=(e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot"))===null||e===void 0?void 0:e.assignedElements({flatten:true});if(!s)return;const i=s.find((t=>t.tagName.toLowerCase()==="spw-table-head"));if(!i)return;const o=i.querySelectorAll("spw-table-row");o.forEach((t=>{const e=t.querySelectorAll("spw-checkbox");e.forEach((t=>{t.addEventListener("spwChange",(t=>{this.toggleAllRowCheckboxes(t.detail)}))}))}))}setupBodyCheckboxListener(){const t=Array.from(this.el.children).find((t=>t.tagName.toLowerCase()==="spw-table-body"));if(!t)return;const e=t.querySelectorAll("spw-table-row");e.forEach((t=>{const e=t.querySelectorAll("spw-checkbox");e.forEach((t=>{t.removeEventListener("spwChange",this.checkboxChangeHandler);t.addEventListener("spwChange",this.checkboxChangeHandler)}))}))}toggleAllRowCheckboxes(t){var e;const s=this.getMasterCheckboxColumnIndex();if(s===null)return;const i=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot");const o=i===null||i===void 0?void 0:i.assignedElements({flatten:true});if(!o)return;const n=o.find((t=>t.tagName.toLowerCase()==="spw-table-body"));if(!n)return;const r=n.querySelectorAll("spw-table-row");r.forEach((e=>{const i=Array.from(e.querySelectorAll("spw-table-cell"));const o=i[s];const n=o===null||o===void 0?void 0:o.querySelector("spw-checkbox");if(n&&!this.isCheckboxDisabled(n)){n.checked=t;n.setAttribute("checked",t.toString())}}));setTimeout((()=>{this.updateMasterCheckboxState()}),0)}handleHeaderClick(t){const e=t.detail;const s=this.currentSort;const i={column:e,direction:(s===null||s===void 0?void 0:s.column)===e&&s.direction==="asc"?"desc":"asc"};this.currentSort=i;this.spwSort.emit(i);if(!this.disableSort){this.sortRows(i.column,i.direction)}this.updateHeadersSortState(i);this.updateZebra()}updateZebra(){const t=this.el.shadowRoot.querySelector("slot");if(!t)return;const e=t.assignedElements({flatten:true});const s=e.find((t=>t.tagName.toLowerCase()==="spw-table-body"));if(s){if(this.isZebra){s.setAttribute("is-zebra","true")}else{s.removeAttribute("is-zebra")}if(typeof s.updateZebraStyles==="function"){s.updateZebraStyles()}}}sortRows(t,e){var s;const i=(s=this.el.shadowRoot.querySelector("slot"))===null||s===void 0?void 0:s.assignedElements().find((t=>t.tagName.toLowerCase()==="spw-table-body"));if(!i)return;const o=Array.from(i.querySelectorAll("spw-table-row"));const n=Array.from(this.el.querySelectorAll("spw-table-header")).findIndex((e=>e.columnId===t));if(n===-1)return;o.sort(((t,s)=>{const i=t.querySelectorAll("spw-table-cell")[n];const o=s.querySelectorAll("spw-table-cell")[n];if(!i||!o)return 0;const r=i.textContent.trim();const a=o.textContent.trim();if(!isNaN(Number(r))&&!isNaN(Number(a))){return e==="asc"?+r-+a:+a-+r}return e==="asc"?r.localeCompare(a):a.localeCompare(r)}));o.forEach((t=>i.appendChild(t)));const r=i;if(r===null||r===void 0?void 0:r.updateZebraStyles){r.updateZebraStyles()}}updateHeadersSortState(t){const e=this.el.querySelectorAll("spw-table-header");e.forEach((e=>{const s=e.columnId===t.column;e.isSorted=s;e.sortDirection=s?t.direction:undefined}))}formatSize(t){if(t===undefined||t===null){return"auto"}return`${t}px`}get elementClass(){return{"spw-table":true,"spw-table--is-sticky":this.isSticky,[`spw-table--layout-${this.tableLayout}`]:true}}render(){return s(i,{key:"1742538080b1ac32644a8d00b9a25779e72ee08e",style:{"--spw-table-max-height":this.formatSize(this.maxHeight),"--spw-table-min-width":this.formatSize(this.minWidth)}},s("div",{key:"7d15c468ce94b645b2a8f040617b88151df1b615",class:"spw-table-container"},s("table",{key:"bc98737e0850bfedc5b3a83b4d8c3e5c33a30256",part:"table",class:this.elementClass,role:"table","aria-label":this.accAriaLabel},s("slot",{key:"b075fc150e453269afbc585dea5304c6e795517d"}))))}get el(){return o(this)}static get watchers(){return{currentSort:["onCurrentSortChange"]}}};r.style=n;export{r as spw_table};
|
|
2
|
-
//# sourceMappingURL=p-d2258e0a.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwTableCss","SpwTable","constructor","hostRef","this","isSticky","minWidth","tableLayout","isZebra","disableSort","checkboxChangeHandler","updateMasterCheckboxState","onCurrentSortChange","newSort","updateHeadersSortState","componentDidLoad","updateZebra","slot","_a","el","shadowRoot","querySelector","addEventListener","setupHeaderCheckboxListener","setupBodyCheckboxListener","setupTableBodyObserver","setTimeout","disconnectedCallback","mutationObserver","disconnect","body","Array","from","children","find","tagName","toLowerCase","MutationObserver","observe","childList","subtree","attributes","attributeFilter","getMasterCheckboxColumnIndex","assignedElements","flatten","head","headerRow","headerCells","querySelectorAll","i","length","isCheckboxDisabled","checkbox","disabled","getAttribute","columnIndex","headerCell","masterCheckbox","rows","checkboxData","map","row","cell","cb","checked","enabledCheckboxes","filter","item","allChecked","every","noneChecked","setAttribute","_b","headerRows","forEach","checkboxes","event","toggleAllRowCheckboxes","detail","removeEventListener","cells","targetCell","toString","handleHeaderClick","columnId","current","currentSort","column","direction","spwSort","emit","sortRows","removeAttribute","updateZebraStyles","findIndex","header","sort","a","b","aCell","bCell","aValue","textContent","trim","bValue","isNaN","Number","localeCompare","appendChild","bodyComponent","headers","isCurrent","isSorted","sortDirection","undefined","formatSize","value","elementClass","render","h","Host","key","style","maxHeight","class","part","role","accAriaLabel"],"sources":["src/components/spw-table/spw-table.scss?tag=spw-table&encapsulation=shadow","src/components/spw-table/spw-table.tsx"],"sourcesContent":[":host {\n display: block;\n position: relative;\n}\n\n%highlight {\n font-weight: 700;\n background: var(--spw-color-themes-grey-grey-100);\n}\n\n.spw-table-container {\n width: 100%;\n overflow-x: auto;\n overflow-y: auto;\n max-height: var(--spw-table-max-height);\n border-radius: 4px;\n outline: 1px solid var(--spw-color-themes-grey-grey-300);\n outline-offset: -1px;\n position: relative;\n @include scrollbars(var(--spw-color-themes-grey-grey-400), var(--spw-ds-white));\n}\n\n.spw-table {\n width: 100%;\n border-collapse: collapse;\n min-width: var(--spw-table-min-width);\n border-radius: 4px;\n position: relative;\n &--layout-fixed {\n table-layout: fixed;\n }\n &--layout-auto {\n table-layout: auto;\n }\n}\n","import { Component, Element, Event, Listen, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\n\nexport interface SortEvent {\n column: string;\n direction: 'asc' | 'desc';\n}\n\n@Component({\n tag: 'spw-table',\n styleUrl: 'spw-table.scss',\n shadow: true,\n})\nexport class SpwTable {\n @Element() el: HTMLSpwTableElement;\n\n /** Propriété pour l'aria-label, à des fins d'accessibilité */\n @Prop() accAriaLabel?: string;\n /** Si le header du tableau doit être sticky ou non */\n @Prop() isSticky?: boolean = false;\n /** Si défini, apparition d'une scrollbar verticale et max-height */\n @Prop() maxHeight?: string;\n /** Si défini, apparition d'une scrollbar horizontale et max-width */\n @Prop() minWidth?: string = '600';\n /** Permet de définir le table-layout (auto ou fixed) */\n @Prop() tableLayout?: 'auto' | 'fixed' = 'auto';\n /** Définit un background de couleur différent une ligne sur 2 */\n @Prop() isZebra?: boolean = false;\n /** Désactive le tri natif pour permettre l'utilisation d'une fonction de tri personnalisée */\n @Prop() disableSort?: boolean = false;\n /** État du tri actuel (colonne et direction). Peut être défini de l'extérieur pour un tri personnalisé */\n @Prop({ mutable: true }) currentSort?: SortEvent;\n\n @Event() spwSort: EventEmitter<SortEvent>;\n\n private mutationObserver?: MutationObserver;\n\n @Watch('currentSort')\n onCurrentSortChange(newSort: SortEvent | undefined) {\n if (newSort) {\n this.updateHeadersSortState(newSort);\n }\n }\n\n componentDidLoad() {\n this.updateZebra();\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.setupHeaderCheckboxListener();\n this.updateMasterCheckboxState();\n });\n }\n this.setupHeaderCheckboxListener();\n this.setupBodyCheckboxListener();\n this.setupTableBodyObserver();\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n private setupTableBodyObserver() {\n const body = Array.from(this.el.children).find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n this.mutationObserver = new MutationObserver(() => {\n this.setupBodyCheckboxListener();\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n });\n\n this.mutationObserver.observe(body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['checked', 'disabled'],\n });\n }\n\n private getMasterCheckboxColumnIndex(): number | null {\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (!slot) return null;\n\n const assignedElements = slot.assignedElements({ flatten: true }) as HTMLElement[];\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n if (!head) return null;\n\n const headerRow = head.querySelector('spw-table-row');\n if (!headerRow) return null;\n\n const headerCells = Array.from(headerRow.querySelectorAll('spw-table-header'));\n\n for (let i = 0; i < headerCells.length; i++) {\n if (headerCells[i].querySelector('spw-checkbox')) {\n return i;\n }\n }\n\n return null;\n }\n\n private isCheckboxDisabled(checkbox: any): boolean {\n return checkbox?.disabled === true || checkbox?.getAttribute('disabled') === 'true' || checkbox?.getAttribute('disabled') === '';\n }\n\n private updateMasterCheckboxState() {\n const columnIndex = this.getMasterCheckboxColumnIndex();\n if (columnIndex === null) return;\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n if (!assignedElements) return;\n\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!head || !body) return;\n\n const headerRow = head.querySelector('spw-table-row');\n const headerCell = headerRow?.querySelectorAll('spw-table-header')[columnIndex];\n const masterCheckbox = headerCell?.querySelector('spw-checkbox') as any;\n\n const rows = body.querySelectorAll('spw-table-row');\n const checkboxData = Array.from(rows).map(row => {\n const cell = row.querySelectorAll('spw-table-cell')[columnIndex];\n const cb = cell?.querySelector('spw-checkbox') as any;\n return {\n checked: cb?.checked === true || cb?.getAttribute('checked') === 'true',\n disabled: this.isCheckboxDisabled(cb),\n };\n });\n\n const enabledCheckboxes = checkboxData.filter(item => !item.disabled);\n\n if (enabledCheckboxes.length === 0) return;\n\n const allChecked = enabledCheckboxes.every(item => item.checked);\n const noneChecked = enabledCheckboxes.every(item => !item.checked);\n\n if (!masterCheckbox) return;\n\n if (allChecked) {\n masterCheckbox.checked = true;\n masterCheckbox.setAttribute('checked', 'true');\n masterCheckbox.setAttribute('icon', 'fa-check');\n } else if (noneChecked) {\n masterCheckbox.checked = false;\n masterCheckbox.setAttribute('checked', 'false');\n masterCheckbox.setAttribute('icon', 'fa-check');\n } else {\n masterCheckbox.checked = true;\n masterCheckbox.setAttribute('checked', 'true');\n masterCheckbox.setAttribute('icon', 'fa-minus');\n }\n }\n\n private setupHeaderCheckboxListener() {\n const assignedElements = this.el.shadowRoot?.querySelector('slot')?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n\n if (!assignedElements) return;\n\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n if (!head) return;\n\n const headerRows = head.querySelectorAll('spw-table-row');\n\n headerRows.forEach(row => {\n const checkboxes = row.querySelectorAll('spw-checkbox');\n checkboxes.forEach(cb => {\n cb.addEventListener('spwChange', (event: CustomEvent<boolean>) => {\n this.toggleAllRowCheckboxes(event.detail);\n });\n });\n });\n }\n\n private checkboxChangeHandler = () => this.updateMasterCheckboxState();\n\n private setupBodyCheckboxListener() {\n const body = Array.from(this.el.children).find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = body.querySelectorAll('spw-table-row');\n rows.forEach(row => {\n const checkboxes = row.querySelectorAll('spw-checkbox');\n checkboxes.forEach(cb => {\n cb.removeEventListener('spwChange', this.checkboxChangeHandler);\n cb.addEventListener('spwChange', this.checkboxChangeHandler);\n });\n });\n }\n\n private toggleAllRowCheckboxes(checked: boolean) {\n const columnIndex = this.getMasterCheckboxColumnIndex();\n if (columnIndex === null) return;\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n if (!assignedElements) return;\n\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = body.querySelectorAll('spw-table-row');\n\n rows.forEach(row => {\n const cells = Array.from(row.querySelectorAll('spw-table-cell'));\n const targetCell = cells[columnIndex];\n const checkbox = targetCell?.querySelector('spw-checkbox') as any;\n\n if (checkbox && !this.isCheckboxDisabled(checkbox)) {\n checkbox.checked = checked;\n checkbox.setAttribute('checked', checked.toString());\n }\n });\n\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n }\n\n @Listen('spwHeaderClick')\n handleHeaderClick(event: CustomEvent<string>) {\n const columnId = event.detail;\n const current = this.currentSort;\n\n const newSort: SortEvent = {\n column: columnId,\n direction: current?.column === columnId && current.direction === 'asc' ? 'desc' : 'asc',\n };\n\n this.currentSort = newSort;\n this.spwSort.emit(newSort);\n\n if (!this.disableSort) {\n this.sortRows(newSort.column, newSort.direction);\n }\n\n this.updateHeadersSortState(newSort);\n this.updateZebra();\n }\n\n private updateZebra() {\n const slot = this.el.shadowRoot.querySelector('slot');\n if (!slot) return;\n\n const assignedElements = slot.assignedElements({ flatten: true });\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body') as any;\n\n if (body) {\n if (this.isZebra) {\n body.setAttribute('is-zebra', 'true');\n } else {\n body.removeAttribute('is-zebra');\n }\n\n if (typeof body.updateZebraStyles === 'function') {\n body.updateZebraStyles();\n }\n }\n }\n\n private sortRows(columnId: string, direction: 'asc' | 'desc') {\n const body = this.el.shadowRoot\n .querySelector('slot')\n ?.assignedElements()\n .find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = Array.from(body.querySelectorAll('spw-table-row'));\n\n const columnIndex = Array.from(this.el.querySelectorAll('spw-table-header')).findIndex((header: any) => header.columnId === columnId);\n if (columnIndex === -1) return;\n\n rows.sort((a: any, b: any) => {\n const aCell = a.querySelectorAll('spw-table-cell')[columnIndex];\n const bCell = b.querySelectorAll('spw-table-cell')[columnIndex];\n if (!aCell || !bCell) return 0;\n\n const aValue = aCell.textContent.trim();\n const bValue = bCell.textContent.trim();\n\n if (!isNaN(Number(aValue)) && !isNaN(Number(bValue))) {\n return direction === 'asc' ? +aValue - +bValue : +bValue - +aValue;\n }\n\n return direction === 'asc' ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n });\n\n rows.forEach(row => body.appendChild(row));\n\n const bodyComponent = body as HTMLSpwTableBodyElement;\n if (bodyComponent?.updateZebraStyles) {\n bodyComponent.updateZebraStyles();\n }\n }\n\n private updateHeadersSortState(sort: SortEvent) {\n const headers = this.el.querySelectorAll('spw-table-header');\n headers.forEach((header: any) => {\n const isCurrent = header.columnId === sort.column;\n header.isSorted = isCurrent;\n header.sortDirection = isCurrent ? sort.direction : undefined;\n });\n }\n\n private formatSize(value?: string): string {\n if (value === undefined || value === null) {\n return 'auto';\n }\n return `${value}px`;\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-table': true,\n 'spw-table--is-sticky': this.isSticky,\n [`spw-table--layout-${this.tableLayout}`]: true,\n };\n }\n\n render() {\n return (\n <Host\n style={{\n '--spw-table-max-height': this.formatSize(this.maxHeight),\n '--spw-table-min-width': this.formatSize(this.minWidth),\n }}\n >\n <div class=\"spw-table-container\">\n <table part=\"table\" class={this.elementClass} role=\"table\" aria-label={this.accAriaLabel}>\n <slot />\n </table>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as a}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-header{background:var(--spw-color-themes-grey-grey-200);background-clip:padding-box;border:1px solid var(--spw-color-themes-grey-grey-300);border-bottom:none!important;border-top:none!important;box-shadow:inset 0 1px 0 var(--spw-color-themes-grey-grey-300),inset 0 -1px 0 var(--spw-color-themes-grey-grey-300);color:var(--spw-color-themes-grey-grey-800);font-size:14px;font-weight:700;text-align:left;transition:all .2s linear;white-space:nowrap}:host-context(.spw-table--is-sticky) .spw-table-header{position:sticky;top:0;z-index:20}.spw-table-header--text-align-left{text-align:left}.spw-table-header--text-align-center{text-align:center}.spw-table-header--text-align-right{text-align:right}.spw-table-header--vertical-align-top{vertical-align:top}.spw-table-header--vertical-align-bottom{vertical-align:bottom}.spw-table-header--vertical-align-middle{vertical-align:middle}.spw-table-header--has-tooltip .spw-table-header__content{align-items:center;display:flex;gap:16px;justify-content:space-between}.spw-table-header--has-tooltip .spw-table-header__content spw-icon{color:var(--spw-color-themes-grey-grey-500)}.spw-table-header--has-tooltip .spw-table-header__content spw-icon:hover{color:var(--spw-color-themes-grey-grey-900)}.spw-table-header--sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.spw-table-header--sortable:hover{background:var(--spw-color-themes-grey-grey-300)}.spw-table-header--sortable .spw-table-header__content{align-items:center;display:flex;gap:16px;justify-content:space-between}.spw-table-header--sortable .spw-table-header__content spw-icon{color:var(--spw-color-themes-grey-grey-500)}.spw-table-header--sortable .spw-table-header__content spw-icon:hover,.spw-table-header--sortable .spw-table-header__content--is-sorted .spw-table-header__sort-icon{color:var(--spw-color-themes-grey-grey-900)}.spw-table-header__sort-icons{display:flex;gap:0}.spw-table-header--padding-small{padding:8px}.spw-table-header--padding-medium{padding:16px}.spw-table-header__icons{align-items:center;color:var(--spw-color-themes-grey-grey-500);display:flex;gap:8px}.spw-table-header ::slotted(spw-checkbox){--spw-ds-checkbox-checked-color:#000}";const o=class{constructor(a){e(this,a);this.spwHeaderClick=t(this,"spwHeaderClick",7);this.isHighlighted=false;this.textAlign="left";this.verticalAlign="top";this.padding="medium";this.sortable=false;this.isSorted=false;this.handleClick=e=>{if(e.target.closest('[slot="filters"]')){e.stopPropagation();return}if(this.sortable){this.spwHeaderClick.emit(this.columnId)}}}get elementClass(){return{"spw-table-header":true,"spw-table-header--sortable":this.sortable,"spw-table-header--is-sorted":this.isSorted,"spw-table-header--has-tooltip":!!(this.tooltipTitle||this.tooltipText),[`spw-table-header--padding-${this.padding}`]:true,[`spw-table-header--text-align-${this.textAlign}`]:true,[`spw-table-header--vertical-align-${this.verticalAlign}`]:true}}render(){return a("th",{key:"f6b876e9a0abd09b83ac0fb6d4ed56069db623b2","aria-sort":this.isSorted?this.sortDirection:"none",onClick:this.handleClick,class:this.elementClass,colSpan:this.colspan,headers:this.headers,part:"cell",rowSpan:this.rowspan},a("div",{key:"59bc5d894c9693eb3fc3bccd050dac2b79c505ee",class:{"spw-table-header__content":true,"spw-table-header__content--is-sorted":this.isSorted}},a("slot",{key:"3e37a6205e94db70faa13e6f362ef66e191b24c7"}),a("div",{key:"671ddc146285bc6b717b904180559d16636bca64",class:"spw-table-header__icons"},a("slot",{key:"448450b9a1c7dd13e54e707de3dc4e230a4787f8",name:"filters"}),(this.tooltipTitle||this.tooltipText)&&a("spw-tooltip",{key:"c516faefd3239efc3e3c8c35e98d0713afe86848","tooltip-title":this.tooltipTitle,"tooltip-text":this.tooltipText},a("spw-icon",{key:"ced1ef2406a68e6b1ce5da441ba5376063930ec3",variant:"fa-regular",icon:"fa-circle-question"})),this.sortable&&a("spw-icon",{key:"89022b197525a6b6e2a0ccda404798f1e9b13a6a",class:"spw-table-header__sort-icon",icon:this.isSorted?this.sortDirection==="asc"?"fa-arrow-up-short-wide":"fa-arrow-down-wide-short":"fa-arrow-up-arrow-down"}))))}};o.style=s;export{o as spw_table_header};
|
|
2
|
-
//# sourceMappingURL=p-ecec4588.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["spwTableHeaderCss","SpwTableHeader","constructor","hostRef","this","isHighlighted","textAlign","verticalAlign","padding","sortable","isSorted","handleClick","event","target","closest","stopPropagation","spwHeaderClick","emit","columnId","elementClass","tooltipTitle","tooltipText","render","h","key","sortDirection","onClick","class","colSpan","colspan","headers","part","rowSpan","rowspan","name","variant","icon"],"sources":["src/components/spw-table/spw-table-header/spw-table-header.scss?tag=spw-table-header&encapsulation=shadow","src/components/spw-table/spw-table-header/spw-table-header.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\n.spw-table-header {\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 font-weight: 700;\n transition: all 0.2s linear;\n background: var(--spw-color-themes-grey-grey-200);\n white-space: nowrap;\n border-top: none !important;\n border-bottom: none !important;\n box-shadow:\n inset 0 1px 0 var(--spw-color-themes-grey-grey-300),\n inset 0 -1px 0 var(--spw-color-themes-grey-grey-300);\n\n background-clip: padding-box;\n\n :host-context(.spw-table--is-sticky) & {\n position: sticky;\n top: 0;\n z-index: 20;\n }\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\n &--has-tooltip {\n .spw-table-header__content {\n display: flex;\n gap: 16px;\n justify-content: space-between;\n align-items: center;\n spw-icon {\n color: var(--spw-color-themes-grey-grey-500);\n &:hover {\n color: var(--spw-color-themes-grey-grey-900);\n }\n }\n }\n }\n &--sortable {\n user-select: none;\n cursor: pointer;\n &:hover {\n background: var(--spw-color-themes-grey-grey-300);\n }\n .spw-table-header__content {\n display: flex;\n gap: 16px;\n justify-content: space-between;\n align-items: center;\n spw-icon {\n color: var(--spw-color-themes-grey-grey-500);\n &:hover {\n color: var(--spw-color-themes-grey-grey-900);\n }\n }\n &--is-sorted {\n .spw-table-header__sort-icon {\n color: var(--spw-color-themes-grey-grey-900);\n }\n }\n }\n }\n &__sort-icons {\n display: flex;\n gap: 0;\n }\n &--padding-small {\n padding: 8px;\n }\n &--padding-medium {\n padding: 16px;\n }\n &__icons {\n display: flex;\n gap: 8px;\n align-items: center;\n color: var(--spw-color-themes-grey-grey-500);\n }\n ::slotted(spw-checkbox) {\n --spw-ds-checkbox-checked-color: #000;\n }\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-table-header',\n styleUrl: 'spw-table-header.scss',\n shadow: true,\n})\nexport class SpwTableHeader {\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' = 'top';\n /** Définit le padding pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() padding?: 'small' | 'medium' = 'medium';\n /** Définit id pour la colonne (en cas de tri) (à appliquer sur spw-table-header) */\n @Prop() columnId: string;\n /** Définit si la colonne est triable (à appliquer sur spw-table-header) */\n @Prop() sortable?: boolean = false;\n /** Définit la direction pour le tri sur la colonne (ascendant ou descendant) (à appliquer sur spw-table-header) */\n @Prop() sortDirection?: 'asc' | 'desc';\n /** Définit si la colonne est triée ou non (à appliquer sur spw-table-header) */\n @Prop() isSorted?: boolean = false;\n /** Définit un titre pour le tooltip (à appliquer sur spw-table-header) */\n @Prop() tooltipTitle?: string;\n /** Définit un contenu pour le tooltip (à appliquer sur spw-table-header) */\n @Prop() tooltipText?: string;\n\n @Event() spwHeaderClick: EventEmitter<string>;\n\n private handleClick = (event: MouseEvent) => {\n if ((event.target as HTMLElement).closest('[slot=\"filters\"]')) {\n event.stopPropagation();\n return;\n }\n if (this.sortable) {\n this.spwHeaderClick.emit(this.columnId);\n }\n };\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-table-header': true,\n 'spw-table-header--sortable': this.sortable,\n 'spw-table-header--is-sorted': this.isSorted,\n 'spw-table-header--has-tooltip': !!(this.tooltipTitle || this.tooltipText),\n [`spw-table-header--padding-${this.padding}`]: true,\n [`spw-table-header--text-align-${this.textAlign}`]: true,\n [`spw-table-header--vertical-align-${this.verticalAlign}`]: true,\n };\n }\n\n render() {\n return (\n <th\n aria-sort={this.isSorted ? this.sortDirection : 'none'}\n onClick={this.handleClick}\n class={this.elementClass}\n colSpan={this.colspan}\n headers={this.headers}\n part=\"cell\"\n rowSpan={this.rowspan}\n >\n <div\n class={{\n 'spw-table-header__content': true,\n 'spw-table-header__content--is-sorted': this.isSorted,\n }}\n >\n <slot />\n <div class=\"spw-table-header__icons\">\n <slot name=\"filters\"></slot>\n {(this.tooltipTitle || this.tooltipText) && (\n <spw-tooltip tooltip-title={this.tooltipTitle} tooltip-text={this.tooltipText}>\n <spw-icon variant=\"fa-regular\" icon=\"fa-circle-question\"></spw-icon>\n </spw-tooltip>\n )}\n {this.sortable && (\n <spw-icon\n class=\"spw-table-header__sort-icon\"\n icon={this.isSorted ? (this.sortDirection === 'asc' ? 'fa-arrow-up-short-wide' : 'fa-arrow-down-wide-short') : 'fa-arrow-up-arrow-down'}\n ></spw-icon>\n )}\n </div>\n </div>\n </th>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAoB,8uJ,MCObC,EAAc,MAL3B,WAAAC,CAAAC,G,yDAaUC,KAAaC,cAAa,MAE1BD,KAASE,UAAiC,OAE1CF,KAAaG,cAAiC,MAE9CH,KAAOI,QAAwB,SAI/BJ,KAAQK,SAAa,MAIrBL,KAAQM,SAAa,MAQrBN,KAAAO,YAAeC,IACrB,GAAKA,EAAMC,OAAuBC,QAAQ,oBAAqB,CAC7DF,EAAMG,kBACN,M,CAEF,GAAIX,KAAKK,SAAU,CACjBL,KAAKY,eAAeC,KAAKb,KAAKc,S,EAoDnC,CAhDC,gBAAYC,GACV,MAAO,CACL,mBAAoB,KACpB,6BAA8Bf,KAAKK,SACnC,8BAA+BL,KAAKM,SACpC,mCAAoCN,KAAKgB,cAAgBhB,KAAKiB,aAC9D,CAAC,6BAA6BjB,KAAKI,WAAY,KAC/C,CAAC,gCAAgCJ,KAAKE,aAAc,KACpD,CAAC,oCAAoCF,KAAKG,iBAAkB,K,CAIhE,MAAAe,GACE,OACEC,EAAA,MAAAC,IAAA,uDACapB,KAAKM,SAAWN,KAAKqB,cAAgB,OAChDC,QAAStB,KAAKO,YACdgB,MAAOvB,KAAKe,aACZS,QAASxB,KAAKyB,QACdC,QAAS1B,KAAK0B,QACdC,KAAK,OACLC,QAAS5B,KAAK6B,SAEdV,EAAA,OAAAC,IAAA,2CACEG,MAAO,CACL,4BAA6B,KAC7B,uCAAwCvB,KAAKM,WAG/Ca,EAAQ,QAAAC,IAAA,6CACRD,EAAK,OAAAC,IAAA,2CAAAG,MAAM,2BACTJ,EAAM,QAAAC,IAAA,2CAAAU,KAAK,aACT9B,KAAKgB,cAAgBhB,KAAKiB,cAC1BE,EAAA,eAAAC,IAAA,2DAA4BpB,KAAKgB,aAA4B,eAAAhB,KAAKiB,aAChEE,EAAU,YAAAC,IAAA,2CAAAW,QAAQ,aAAaC,KAAK,wBAGvChC,KAAKK,UACJc,EACE,YAAAC,IAAA,2CAAAG,MAAM,8BACNS,KAAMhC,KAAKM,SAAYN,KAAKqB,gBAAkB,MAAQ,yBAA2B,2BAA8B,6B","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as i,H as r,g as s}from"./p-CvfVJV8a.js";import{g as n}from"./p-B85MJLTf.js";var o={exports:{}};var a;function d(){if(a)return o.exports;a=1;(function(e,t){!function(t,i){e.exports=i()}(window,(function(){return function(e){var t={};function i(r){if(t[r])return t[r].exports;var s=t[r]={i:r,l:false,exports:{}};return e[r].call(s.exports,s,s.exports,i),s.l=true,s.exports}return i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:true,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:true})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:true,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(r,s,function(t){return e[t]}.bind(null,s));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(e,t,i){i.r(t);var r=[],s=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],o={t:"top",r:"right",b:"bottom",l:"left",c:"centered"};function a(){}var d=["click","focusin","keydown","input"];function c(e){d.forEach((function(t){e.addEventListener(t,e===document?N:S)}))}function l(e){return Array.isArray(e)?e.map(l):"[object Object]"===z(e)?Object.keys(e).reduce((function(t,i){return t[i]=l(e[i]),t}),{}):e}function p(e,t){var i=e.calendar.querySelector(".qs-overlay"),r=i&&!i.classList.contains("qs-hidden");t=t||new Date(e.currentYear,e.currentMonth),e.calendar.innerHTML=[u(t,e,r),h(t,e,r),f(e,r)].join(""),r&&window.requestAnimationFrame((function(){D(true,e)}))}function u(e,t,i){return['<div class="qs-controls'+(i?" qs-blur":"")+'">','<div class="qs-arrow qs-left"></div>','<div class="qs-month-year'+(t.disableYearOverlay?" qs-disabled-year-overlay":"")+'">','<span class="qs-month">'+t.months[e.getMonth()]+"</span>",'<span class="qs-year">'+e.getFullYear()+"</span>","</div>",'<div class="qs-arrow qs-right"></div>',"</div>"].join("")}function h(e,t,i){var r=t.currentMonth,s=t.currentYear,n=t.dateSelected,o=t.maxDate,a=t.minDate,d=t.showAllDates,c=t.days,l=t.disabledDates,p=t.startDay,u=t.weekendIndices,h=t.events,f=t.getRange?t.getRange():{},b=+f.start,w=+f.end,m=q(new Date(e).setDate(1)),g=m.getDay()-p,y=g<0?7:0;m.setMonth(m.getMonth()+1),m.setDate(0);var v=m.getDate(),k=[],x=y+7*((g+v)/7|0);x+=(g+v)%7?7:0;for(var D=1;D<=x;D++){var _=(D-1)%7,z=c[_],M=D-(g>=0?g:7+g),N=new Date(s,r,M),S=h[+N],j=M<1||M>v,E=j?M<1?-1:1:0,A=j&&!d,I=A?"":N.getDate(),O=+N==+n,T=_===u[0]||_===u[1],J=b!==w,C="qs-square "+z;S&&!A&&(C+=" qs-event"),j&&(C+=" qs-outside-current-month"),!d&&j||(C+=" qs-num"),O&&(C+=" qs-active"),(l[+N]||t.disabler(N)||T&&t.noWeekends||a&&+N<+a||o&&+N>+o)&&!A&&(C+=" qs-disabled"),+q(new Date)==+N&&(C+=" qs-current"),+N===b&&w&&J&&(C+=" qs-range-start"),+N>b&&+N<w&&(C+=" qs-range-middle"),+N===w&&b&&J&&(C+=" qs-range-end"),A&&(C+=" qs-empty",I=""),k.push('<div class="'+C+'" data-direction="'+E+'">'+I+"</div>")}var R=c.map((function(e){return'<div class="qs-square qs-day">'+e+"</div>"})).concat(k);return R.unshift('<div class="qs-squares'+(i?" qs-blur":"")+'">'),R.push("</div>"),R.join("")}function f(e,t){var i=e.overlayPlaceholder,r=e.overlayButton;return['<div class="qs-overlay'+(t?"":" qs-hidden")+'">',"<div>",'<input class="qs-overlay-year" placeholder="'+i+'" inputmode="numeric" />','<div class="qs-close">✕</div>',"</div>",'<div class="qs-overlay-month-container">'+e.overlayMonths.map((function(e,t){return'<div class="qs-overlay-month" data-month-num="'+t+'">'+e+"</div>"})).join("")+"</div>",'<div class="qs-submit qs-disabled">'+r+"</div>","</div>"].join("")}function b(e,t,i){var r=t.el,s=t.calendar.querySelector(".qs-active"),n=e.textContent,o=t.sibling;(r.disabled||r.readOnly)&&t.respectDisabledReadOnly||(t.dateSelected=i?void 0:new Date(t.currentYear,t.currentMonth,n),s&&s.classList.remove("qs-active"),i||e.classList.add("qs-active"),m(r,t,i),i||k(t),o&&(w({instance:t,deselect:i}),t.first&&!o.dateSelected&&(o.currentYear=t.currentYear,o.currentMonth=t.currentMonth,o.currentMonthName=t.currentMonthName),p(t),p(o)),t.onSelect(t,i?void 0:new Date(t.dateSelected)))}function w(e){var t=e.instance.first?e.instance:e.instance.sibling,i=t.sibling;t===e.instance?e.deselect?(t.minDate=t.originalMinDate,i.minDate=i.originalMinDate):i.minDate=t.dateSelected:e.deselect?(i.maxDate=i.originalMaxDate,t.maxDate=t.originalMaxDate):t.maxDate=i.dateSelected}function m(e,t,i){if(!t.nonInput)return i?e.value="":t.formatter!==a?t.formatter(e,t.dateSelected,t):void(e.value=t.dateSelected.toDateString())}function g(e,t,i,r){i||r?(i&&(t.currentYear=+i),r&&(t.currentMonth=+r)):(t.currentMonth+=e.contains("qs-right")?1:-1,12===t.currentMonth?(t.currentMonth=0,t.currentYear++):-1===t.currentMonth&&(t.currentMonth=11,t.currentYear--)),t.currentMonthName=t.months[t.currentMonth],p(t),t.onMonthChange(t)}function y(e){if(!e.noPosition){var t=e.position.top,i=e.position.right;if(e.position.centered)return e.calendarContainer.classList.add("qs-centered");var r=e.positionedEl.getBoundingClientRect(),s=e.el.getBoundingClientRect(),n=e.calendarContainer.getBoundingClientRect(),o=s.top-r.top+(t?-1*n.height:s.height)+"px",a=s.left-r.left+(i?s.width-n.width:0)+"px";e.calendarContainer.style.setProperty("top",o),e.calendarContainer.style.setProperty("left",a)}}function v(e){return"[object Date]"===z(e)&&"Invalid Date"!==e.toString()}function q(e){if(v(e)||"number"==typeof e&&!isNaN(e)){var t=new Date(+e);return new Date(t.getFullYear(),t.getMonth(),t.getDate())}}function k(e){e.disabled||!e.calendarContainer.classList.contains("qs-hidden")&&!e.alwaysShow&&("overlay"!==e.defaultView&&D(true,e),e.calendarContainer.classList.add("qs-hidden"),e.onHide(e))}function x(e){e.disabled||(e.calendarContainer.classList.remove("qs-hidden"),"overlay"===e.defaultView&&D(false,e),y(e),e.onShow(e))}function D(e,t){var i=t.calendar,r=i.querySelector(".qs-overlay"),s=r.querySelector(".qs-overlay-year"),n=i.querySelector(".qs-controls"),o=i.querySelector(".qs-squares");e?(r.classList.add("qs-hidden"),n.classList.remove("qs-blur"),o.classList.remove("qs-blur"),s.value=""):(r.classList.remove("qs-hidden"),n.classList.add("qs-blur"),o.classList.add("qs-blur"),s.focus())}function _(e,t,i,r){var s=isNaN(+(new Date).setFullYear(t.value||void 0)),n=s?null:t.value;if(13===e.which||13===e.keyCode||"click"===e.type)r?g(null,i,n,r):s||t.classList.contains("qs-disabled")||g(null,i,n);else if(i.calendar.contains(t)){i.calendar.querySelector(".qs-submit").classList[s?"add":"remove"]("qs-disabled")}}function z(e){return{}.toString.call(e)}function M(e){r.forEach((function(t){t!==e&&k(t)}))}function N(e){if(!e.__qs_shadow_dom){var t=e.which||e.keyCode,i=e.type,s=e.target,o=s.classList,a=r.filter((function(e){return e.calendar.contains(s)||e.el===s}))[0],d=a&&a.calendar.contains(s);if(!(a&&a.isMobile&&a.disableMobile))if("click"===i){if(!a)return r.forEach(k);if(a.disabled)return;var c=a.calendar,l=a.calendarContainer,u=a.disableYearOverlay,h=a.nonInput,f=c.querySelector(".qs-overlay-year"),w=!!c.querySelector(".qs-hidden"),m=c.querySelector(".qs-month-year").contains(s),y=s.dataset.monthNum;if(a.noPosition&&!d)(l.classList.contains("qs-hidden")?x:k)(a);else if(o.contains("qs-arrow"))g(o,a);else if(m||o.contains("qs-close"))u||D(!w,a);else if(y)_(e,f,a,y);else{if(o.contains("qs-disabled"))return;if(o.contains("qs-num")){var v=s.textContent,q=+s.dataset.direction,z=new Date(a.currentYear,a.currentMonth+q,v);if(q){a.currentYear=z.getFullYear(),a.currentMonth=z.getMonth(),a.currentMonthName=n[a.currentMonth],p(a);for(var N,S=a.calendar.querySelectorAll('[data-direction="0"]'),j=0;!N;){var E=S[j];E.textContent===v&&(N=E),j++}s=N}return void(+z==+a.dateSelected?b(s,a,true):s.classList.contains("qs-disabled")||b(s,a))}o.contains("qs-submit")?_(e,f,a):h&&s===a.el&&(x(a),M(a))}}else if("focusin"===i&&a)x(a),M(a);else if("keydown"===i&&9===t&&a)k(a);else if("keydown"===i&&a&&!a.disabled){var A=!a.calendar.querySelector(".qs-overlay").classList.contains("qs-hidden");13===t&&A&&d?_(e,s,a):27===t&&A&&d&&D(true,a)}else if("input"===i){if(!a||!a.calendar.contains(s))return;var I=a.calendar.querySelector(".qs-submit"),O=s.value.split("").reduce((function(e,t){return e||"0"!==t?e+(t.match(/[0-9]/)?t:""):""}),"").slice(0,4);s.value=O,I.classList[4===O.length?"remove":"add"]("qs-disabled")}}}function S(e){N(e),e.__qs_shadow_dom=true}function j(e,t){d.forEach((function(i){e.removeEventListener(i,t)}))}function E(){x(this)}function A(){k(this)}function I(e,t){var i=q(e),r=this.currentYear,s=this.currentMonth,n=this.sibling;if(null==e)return this.dateSelected=void 0,m(this.el,this,true),n&&(w({instance:this,deselect:true}),p(n)),p(this),this;if(!v(e))throw new Error("`setDate` needs a JavaScript Date object.");if(this.disabledDates[+i]||i<this.minDate||i>this.maxDate)throw new Error("You can't manually set a date that's disabled.");this.dateSelected=i,t&&(this.currentYear=i.getFullYear(),this.currentMonth=i.getMonth(),this.currentMonthName=this.months[i.getMonth()]),m(this.el,this),n&&(w({instance:this}),p(n));var o=r===i.getFullYear()&&s===i.getMonth();return o||t?p(this,i):o||p(this,new Date(r,s,1)),this}function O(e){return J(this,e,true)}function T(e){return J(this,e)}function J(e,t,i){var r=e.dateSelected,s=e.first,n=e.sibling,o=e.minDate,a=e.maxDate,d=q(t),c=i?"Min":"Max";function l(){return"original"+c+"Date"}function u(){return c.toLowerCase()+"Date"}function h(){return"set"+c}function f(){throw new Error("Out-of-range date passed to "+h())}if(null==t)e[l()]=void 0,n?(n[l()]=void 0,i?(s&&!r||!s&&!n.dateSelected)&&(e.minDate=void 0,n.minDate=void 0):(s&&!n.dateSelected||!s&&!r)&&(e.maxDate=void 0,n.maxDate=void 0)):e[u()]=void 0;else{if(!v(t))throw new Error("Invalid date passed to "+h());n?((s&&i&&d>(r||a)||s&&!i&&d<(n.dateSelected||o)||!s&&i&&d>(n.dateSelected||a)||!s&&!i&&d<(r||o))&&f(),e[l()]=d,n[l()]=d,(i&&(s&&!r||!s&&!n.dateSelected)||!i&&(s&&!n.dateSelected||!s&&!r))&&(e[u()]=d,n[u()]=d)):((i&&d>(r||a)||!i&&d<(r||o))&&f(),e[u()]=d)}return n&&p(n),p(e),e}function C(){var e=this.first?this:this.sibling,t=e.sibling;return{start:e.dateSelected,end:t.dateSelected}}function R(){var e=this.shadowDom,t=this.positionedEl,i=this.calendarContainer,s=this.sibling,n=this;this.inlinePosition&&(r.some((function(e){return e!==n&&e.positionedEl===t}))||t.style.setProperty("position",null));i.remove(),r=r.filter((function(e){return e!==n})),s&&delete s.sibling,r.length||j(document,N);var o=r.some((function(t){return t.shadowDom===e}));for(var a in e&&!o&&j(e,S),this)delete this[a];r.length||d.forEach((function(e){document.removeEventListener(e,N)}))}function V(e,t){var i=new Date(e);if(!v(i))throw new Error("Invalid date passed to `navigate`");this.currentYear=i.getFullYear(),this.currentMonth=i.getMonth(),p(this),t&&this.onMonthChange(this)}function $(){var e=!this.calendarContainer.classList.contains("qs-hidden"),t=!this.calendarContainer.querySelector(".qs-overlay").classList.contains("qs-hidden");e&&D(t,this)}t.default=function(e,t){var i=function(e,t){var i,d,c=function(e){var t=l(e);t.events&&(t.events=t.events.reduce((function(e,t){if(!v(t))throw new Error('"options.events" must only contain valid JavaScript Date objects.');return e[+q(t)]=true,e}),{}));["startDate","dateSelected","minDate","maxDate"].forEach((function(e){var i=t[e];if(i&&!v(i))throw new Error('"options.'+e+'" needs to be a valid JavaScript Date object.');t[e]=q(i)}));var i=t.position,n=t.maxDate,d=t.minDate,c=t.dateSelected,p=t.overlayPlaceholder,u=t.overlayButton,h=t.startDay,f=t.id;if(t.startDate=q(t.startDate||c||new Date),t.disabledDates=(t.disabledDates||[]).reduce((function(e,t){var i=+q(t);if(!v(t))throw new Error('You supplied an invalid date to "options.disabledDates".');if(i===+q(c))throw new Error('"disabledDates" cannot contain the same date as "dateSelected".');return e[i]=1,e}),{}),t.hasOwnProperty("id")&&null==f)throw new Error("`id` cannot be `null` or `undefined`");if(null!=f){var b=r.filter((function(e){return e.id===f}));if(b.length>1)throw new Error("Only two datepickers can share an id.");b.length?(t.second=true,t.sibling=b[0]):t.first=true}var w=["tr","tl","br","bl","c"].some((function(e){return i===e}));if(i&&!w)throw new Error('"options.position" must be one of the following: tl, tr, bl, br, or c.');function m(e){throw new Error('"dateSelected" in options is '+(e?"less":"greater")+' than "'+(e||"max")+'Date".')}if(t.position=function(e){var t=e[0],i=e[1],r={};r[o[t]]=1,i&&(r[o[i]]=1);return r}(i||"bl"),n<d)throw new Error('"maxDate" in options is less than "minDate".');c&&(d>c&&m("min"),n<c&&m());if(["onSelect","onShow","onHide","onMonthChange","formatter","disabler"].forEach((function(e){"function"!=typeof t[e]&&(t[e]=a)})),["customDays","customMonths","customOverlayMonths"].forEach((function(e,i){var r=t[e],s=i?12:7;if(r){if(!Array.isArray(r)||r.length!==s||r.some((function(e){return"string"!=typeof e})))throw new Error('"'+e+'" must be an array with '+s+" strings.");t[i?i<2?"months":"overlayMonths":"days"]=r}})),h&&h>0&&h<7){var g=(t.customDays||s).slice(),y=g.splice(0,h);t.customDays=g.concat(y),t.startDay=+h,t.weekendIndices=[g.length-1,g.length]}else t.startDay=0,t.weekendIndices=[6,0];"string"!=typeof p&&delete t.overlayPlaceholder;"string"!=typeof u&&delete t.overlayButton;var k=t.defaultView;if(k&&"calendar"!==k&&"overlay"!==k)throw new Error('options.defaultView must either be "calendar" or "overlay".');return t.defaultView=k||"calendar",t}(t||{startDate:q(new Date),position:"bl",defaultView:"calendar"}),p=e;if("string"==typeof p)p="#"===p[0]?document.getElementById(p.slice(1)):document.querySelector(p);else{if("[object ShadowRoot]"===z(p))throw new Error("Using a shadow DOM as your selector is not supported.");for(var u,h=p.parentNode;!u;){var f=z(h);"[object HTMLDocument]"===f?u=true:"[object ShadowRoot]"===f?(u=true,i=h,d=h.host):h=h.parentNode}}if(!p)throw new Error("No selector / element found.");if(r.some((function(e){return e.el===p})))throw new Error("A datepicker already exists on that element.");var b=p===document.body,w=i?p.parentElement||i:b?document.body:p.parentElement,g=i?p.parentElement||d:w,y=document.createElement("div"),k=document.createElement("div");y.className="qs-datepicker-container qs-hidden",k.className="qs-datepicker";var D={shadowDom:i,customElement:d,positionedEl:g,el:p,parent:w,nonInput:"INPUT"!==p.nodeName,noPosition:b,position:!b&&c.position,startDate:c.startDate,dateSelected:c.dateSelected,disabledDates:c.disabledDates,minDate:c.minDate,maxDate:c.maxDate,noWeekends:!!c.noWeekends,weekendIndices:c.weekendIndices,calendarContainer:y,calendar:k,currentMonth:(c.startDate||c.dateSelected).getMonth(),currentMonthName:(c.months||n)[(c.startDate||c.dateSelected).getMonth()],currentYear:(c.startDate||c.dateSelected).getFullYear(),events:c.events||{},defaultView:c.defaultView,setDate:I,remove:R,setMin:O,setMax:T,show:E,hide:A,navigate:V,toggleOverlay:$,onSelect:c.onSelect,onShow:c.onShow,onHide:c.onHide,onMonthChange:c.onMonthChange,formatter:c.formatter,disabler:c.disabler,months:c.months||n,days:c.customDays||s,startDay:c.startDay,overlayMonths:c.overlayMonths||(c.months||n).map((function(e){return e.slice(0,3)})),overlayPlaceholder:c.overlayPlaceholder||"4-digit year",overlayButton:c.overlayButton||"Submit",disableYearOverlay:!!c.disableYearOverlay,disableMobile:!!c.disableMobile,isMobile:"ontouchstart"in window,alwaysShow:!!c.alwaysShow,id:c.id,showAllDates:!!c.showAllDates,respectDisabledReadOnly:!!c.respectDisabledReadOnly,first:c.first,second:c.second};if(c.sibling){var _=c.sibling,M=D,N=_.minDate||M.minDate,S=_.maxDate||M.maxDate;M.sibling=_,_.sibling=M,_.minDate=N,_.maxDate=S,M.minDate=N,M.maxDate=S,_.originalMinDate=N,_.originalMaxDate=S,M.originalMinDate=N,M.originalMaxDate=S,_.getRange=C,M.getRange=C}c.dateSelected&&m(p,D);var j=getComputedStyle(g).position;b||j&&"static"!==j||(D.inlinePosition=true,g.style.setProperty("position","relative"));var J=r.filter((function(e){return e.positionedEl===D.positionedEl}));J.some((function(e){return e.inlinePosition}))&&(D.inlinePosition=true,J.forEach((function(e){e.inlinePosition=true})));y.appendChild(k),w.appendChild(y),D.alwaysShow&&x(D);return D}(e,t);if(r.length||c(document),i.shadowDom&&(r.some((function(e){return e.shadowDom===i.shadowDom}))||c(i.shadowDom)),r.push(i),i.second){var d=i.sibling;w({instance:i,deselect:!i.dateSelected}),w({instance:d,deselect:!d.dateSelected}),p(d)}return p(i,i.startDate||i.dateSelected),i.alwaysShow&&y(i),i}}]).default}))})(o);return o.exports}var c=d();var l=n(c);const p='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */.qs-datepicker-container{font-size:1rem;font-family:sans-serif;color:#000;position:absolute;width:15.625em;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;z-index:9001;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid grey;border-radius:.263921875em;overflow:hidden;background:#fff;-webkit-box-shadow:0 1.25em 1.25em -.9375em rgba(0,0,0,.3);box-shadow:0 1.25em 1.25em -.9375em rgba(0,0,0,.3)}.qs-datepicker-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.qs-centered{position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.qs-hidden{display:none}.qs-overlay{position:absolute;top:0;left:0;background:rgba(0,0,0,.75);color:#fff;width:100%;height:100%;padding:.5em;z-index:1;opacity:1;-webkit-transition:opacity .3s;transition:opacity .3s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.qs-overlay.qs-hidden{opacity:0;z-index:-1}.qs-overlay .qs-overlay-year{background:rgba(0,0,0,0);border:none;border-bottom:1px solid #fff;border-radius:0;color:#fff;font-size:.875em;padding:.25em 0;width:80%;text-align:center;margin:0 auto;display:block}.qs-overlay .qs-overlay-year::-webkit-inner-spin-button{-webkit-appearance:none}.qs-overlay .qs-close{padding:.5em;cursor:pointer;position:absolute;top:0;right:0}.qs-overlay .qs-submit{border:1px solid #fff;border-radius:.263921875em;padding:.5em;margin:0 auto auto;cursor:pointer;background:hsla(0,0%,50.2%,.4)}.qs-overlay .qs-submit.qs-disabled{color:grey;border-color:grey;cursor:not-allowed}.qs-overlay .qs-overlay-month-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.qs-overlay .qs-overlay-month{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:calc(100% / 3);cursor:pointer;opacity:.5;-webkit-transition:opacity .15s;transition:opacity .15s}.qs-overlay .qs-overlay-month.active,.qs-overlay .qs-overlay-month:hover{opacity:1}.qs-controls{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;background:#d3d3d3;-webkit-filter:blur(0);filter:blur(0);-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;transition:filter .3s;transition:filter .3s, -webkit-filter .3s}.qs-controls.qs-blur{-webkit-filter:blur(5px);filter:blur(5px)}.qs-arrow{height:1.5625em;width:1.5625em;position:relative;cursor:pointer;border-radius:.263921875em;-webkit-transition:background .15s;transition:background .15s}.qs-arrow:hover.qs-left:after{border-right-color:#000}.qs-arrow:hover.qs-right:after{border-left-color:#000}.qs-arrow:hover{background:rgba(0,0,0,.1)}.qs-arrow:after{content:"";border:.390625em solid rgba(0,0,0,0);position:absolute;top:50%;-webkit-transition:border .2s;transition:border .2s}.qs-arrow.qs-left:after{border-right-color:grey;right:50%;-webkit-transform:translate(25%,-50%);-ms-transform:translate(25%,-50%);transform:translate(25%,-50%)}.qs-arrow.qs-right:after{border-left-color:grey;left:50%;-webkit-transform:translate(-25%,-50%);-ms-transform:translate(-25%,-50%);transform:translate(-25%,-50%)}.qs-month-year{font-weight:700;-webkit-transition:border .2s;transition:border .2s;border-bottom:1px solid rgba(0,0,0,0)}.qs-month-year:not(.qs-disabled-year-overlay){cursor:pointer}.qs-month-year:not(.qs-disabled-year-overlay):hover{border-bottom:1px solid grey}.qs-month-year:active:focus,.qs-month-year:focus{outline:none}.qs-month{padding-right:.5ex}.qs-year{padding-left:.5ex}.qs-squares{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.3125em;-webkit-filter:blur(0);filter:blur(0);-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;transition:filter .3s;transition:filter .3s, -webkit-filter .3s}.qs-squares.qs-blur{-webkit-filter:blur(5px);filter:blur(5px)}.qs-square{width:calc(100% / 7);height:1.5625em;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;-webkit-transition:background .1s;transition:background .1s;border-radius:.263921875em}.qs-square:not(.qs-empty):not(.qs-disabled):not(.qs-day):not(.qs-active):hover{background:orange}.qs-current{font-weight:700;text-decoration:underline}.qs-active,.qs-range-end,.qs-range-start{background:#add8e6}.qs-range-start:not(.qs-range-6){border-top-right-radius:0;border-bottom-right-radius:0}.qs-range-middle{background:#d4ebf2}.qs-range-middle:not(.qs-range-0):not(.qs-range-6){border-radius:0}.qs-range-middle.qs-range-0{border-top-right-radius:0;border-bottom-right-radius:0}.qs-range-end:not(.qs-range-0),.qs-range-middle.qs-range-6{border-top-left-radius:0;border-bottom-left-radius:0}.qs-disabled,.qs-outside-current-month{opacity:.2}.qs-disabled{cursor:not-allowed}.qs-day,.qs-empty{cursor:default}.qs-day{font-weight:700;color:grey}.qs-event{position:relative}.qs-event:after{content:"";position:absolute;width:.46875em;height:.46875em;border-radius:50%;background:#07f;bottom:0;right:0}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-input-height:40px;--spw-input-padding:0 12px;--spw-input-text-align:left;--spw-input-font-size:16px;--spw-input-radius:4px;--spw-input-icon-search-color:var(--spw-color-themes-grey-grey-900);--spw-input-border:var(--spw-color-themes-grey-grey-800);box-sizing:border-box;display:block;font-family:inherit;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)}}.qs-datepicker-container .qs-overlay .qs-overlay-year,.spw-date-picker__input{border:1px solid var(--spw-input-border);border-radius:var(--spw-input-radius);flex:1;font-size:var(--spw-input-font-size);height:var(--spw-input-height);line-height:var(--spw-input-height);padding:var(--spw-input-padding);text-align:var(--spw-input-text-align);text-overflow:ellipsis;width:100%}.qs-datepicker-container .qs-overlay .qs-overlay-year:hover,.spw-date-picker__input:hover{outline:4px solid var(--spw-color-themes-grey-grey-300)}.qs-datepicker-container .qs-overlay .qs-overlay-year:focus,.qs-datepicker-container .qs-overlay .qs-overlay-year:focus-visible,.spw-date-picker__input:focus,.spw-date-picker__input:focus-visible{box-shadow:0 0 0 6px #000;outline:3px solid #fff;outline-offset:0}.qs-datepicker-container .qs-overlay .qs-overlay-year:active,.spw-date-picker__input:active{border-color:var(--spw-input-border)}.spw-date-picker__input-container{align-items:center;display:flex;position:relative}.spw-date-picker__input--error,.spw-date-picker__input--error:focus{border-color:var(--spw-color-error,#dc2626)}.spw-date-picker__input--error:focus{box-shadow:0 0 0 3px var(--spw-color-error-light,rgba(220,38,38,.1))}.spw-date-picker__input--disabled{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-date-picker__input--disabled::-moz-placeholder{color:var(--spw-color-themes-grey-grey-500)}.spw-date-picker__input--disabled::placeholder{color:var(--spw-color-themes-grey-grey-500)}.spw-date-picker__input--disabled:focus,.spw-date-picker__input--disabled:focus-visible,.spw-date-picker__input--disabled:hover{outline:none}.spw-date-picker__input--open{box-shadow:0 0 0 6px #000;outline:3px solid #fff;outline-offset:0}.spw-date-picker__input::-moz-placeholder{color:var(--spw-color-text-placeholder,#9ca3af)}.spw-date-picker__input::placeholder{color:var(--spw-color-text-placeholder,#9ca3af)}.spw-date-picker__icon{font-size:1rem;pointer-events:none;position:absolute;right:.75rem}.spw-date-picker__help,.spw-date-picker__icon{color:var(--spw-color-text-secondary,#6b7280)}.spw-date-picker__error,.spw-date-picker__help{font-size:.75rem;line-height:1rem;margin-top:.25rem}.spw-date-picker__error{align-items:center;color:var(--spw-color-error,#dc2626);display:flex}.spw-date-picker__error spw-icon{font-size:.75rem;margin-right:.25rem}.qs-datepicker-container{border:none;box-shadow:var(--spw-effect-elevation-6);margin-top:6px;width:320px}.qs-datepicker-container .qs-controls{background:none;margin-bottom:16px;padding:24px 24px 0;position:relative}.qs-datepicker-container .qs-month-year{border:1px solid var(--spw-colors-support-grey-grey-300);border-radius:6px;font-size:14px;padding:8px 16px}.qs-datepicker-container .qs-month-year:hover{border-color:var(--spw-colors-support-grey-grey-800)}.qs-datepicker-container .qs-arrow{color:transparent;height:36px;position:absolute;top:24px;width:36px}.qs-datepicker-container .qs-arrow:before{align-items:center;color:var(--spw-colors-support-grey-grey-800);content:"";display:inline-flex;font-family:var(--spw-ds-font-icons-solid);font-size:16px;font-weight:700;height:100%;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.qs-datepicker-container .qs-arrow:after{display:none}.qs-datepicker-container .qs-arrow:hover{background:var(--spw-colors-support-grey-grey-200)}.qs-datepicker-container .qs-arrow:active{background:var(--spw-colors-support-grey-grey-300)}.qs-datepicker-container .qs-left{right:60px}.qs-datepicker-container .qs-left:before{content:"\\f053"}.qs-datepicker-container .qs-right{right:24px}.qs-datepicker-container .qs-right:before{content:"\\f054"}.qs-datepicker-container .qs-squares{gap:4px 0;padding:0 24px 24px}.qs-datepicker-container .qs-square{font-size:14px;height:36px;text-transform:lowercase}.qs-datepicker-container .qs-square:not(.qs-empty):not(.qs-disabled):not(.qs-day):not(.qs-active):hover{background:var(--spw-colors-support-grey-grey-400)}.qs-datepicker-container .qr-range-start:hover,.qs-datepicker-container .qs-range-end:hover{background:var(--spw-colors-support-grey-grey-800)}.qs-datepicker-container .qs-active,.qs-datepicker-container .qs-range-end,.qs-datepicker-container .qs-range-start,.qs-datepicker-container .qs-range-start.qs-disabled{background:var(--spw-colors-support-grey-grey-900);color:#fff;opacity:1}.qs-datepicker-container .qs-range-middle{background:var(--spw-colors-support-grey-grey-300)}.qs-datepicker-container .spw-date-range-start{background:var(--spw-colors-support-grey-grey-900)!important;border-radius:4px 0 0 4px!important;color:#fff!important;font-weight:700;opacity:1!important}.qs-datepicker-container .spw-date-range-start:hover{background:var(--spw-colors-support-grey-grey-800)!important}.qs-datepicker-container .spw-date-range-end{background:var(--spw-colors-support-grey-grey-900)!important;border-radius:0 4px 4px 0!important;color:#fff!important;font-weight:700;opacity:1!important}.qs-datepicker-container .spw-date-range-end:hover{background:var(--spw-colors-support-grey-grey-800)!important}.qs-datepicker-container .spw-date-range-middle{background:var(--spw-colors-support-grey-grey-300)!important;border-radius:0!important}.qs-datepicker-container .spw-date-range-middle:hover{background:var(--spw-colors-support-grey-grey-400)!important}.qs-datepicker-container .qs-day{border-radius:0;color:var(--spw-colors-support-grey-grey-800);font-weight:400;padding-bottom:12px;position:relative}.qs-datepicker-container .qs-day:after{background:var(--spw-colors-support-grey-grey-300);bottom:0;content:"";height:1px;left:0;position:absolute;width:68px}.qs-datepicker-container .qs-day:nth-child(7):after{display:none}.qs-datepicker-container .qs-overlay{background:#fff;padding:24px;transition:none}.qs-datepicker-container .qs-overlay-month{color:var(--spw-colors-support-grey-grey-800);font-size:14px;width:25%}.qs-datepicker-container .qs-close{color:var(--spw-colors-support-grey-grey-600);height:40px;left:24px;padding:0;right:auto;text-indent:-9999px;top:24px;transition:all .2s ease-in;width:32px}.qs-datepicker-container .qs-close:after{content:"\\f060";font-family:var(--spw-ds-font-icons-solid);font-size:14px;font-weight:700;left:0;position:absolute;text-indent:0;top:50%;transform:translateY(-50%)}.qs-datepicker-container .qs-close:hover{color:var(--spw-colors-support-grey-grey-900)}.qs-datepicker-container .qs-blur{filter:none}.qs-datepicker-container .qs-overlay .qs-overlay-year{color:var(--spw-colors-support-grey-grey-900);margin-bottom:24px;margin-left:28px;width:calc(100% - 80px)}.qs-datepicker-container .qs-submit{background:var(--spw-ds-primary);border:2px solid transparent;border-radius:9999px;color:#fff;font-size:14px;font-weight:700;height:40px;position:absolute;right:24px;text-indent:-9999px;top:24px;transition:all .2s ease-in;width:40px}.qs-datepicker-container .qs-submit:after{content:"\\f00c";font-family:var(--spw-ds-font-icons-solid);font-size:14px;font-weight:700;left:50%;position:absolute;text-indent:0;top:50%;transform:translate(-50%,-50%)}.qs-datepicker-container .qs-submit:hover{background:var(--spw-ds-variant)}.qs-datepicker-container .qs-submit:active{background:var(--spw-ds-active)}.qs-datepicker-container .qs-submit.qs-disabled{background:var(--spw-colors-support-grey-grey-400);border-color:var(--spw-colors-support-grey-grey-400);color:var(--spw-colors-support-grey-grey-500);opacity:1}.-spw-tw-mt-1{margin-top:-.25rem}.spw-tw-mb-2{margin-bottom:.5rem}';const u=class{constructor(i){e(this,i);this.dateChange=t(this,"dateChange",7);this.datePickerOpen=t(this,"datePickerOpen",7);this.datePickerClose=t(this,"datePickerClose",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.placeholder="JJ/MM/AAAA";this.required=false;this.disabled=false;this.dateFormat="dd/MM/yyyy";this.disabledDays=[];this.disabledDates=[];this.position="bl";this.error="";this.hint="";this.success="";this.warning="";this.showErrorIcon=true;this.showHintIcon=true;this.showSuccessIcon=true;this.showWarningIcon=true;this.range=false;this.isStart=false;this.isOpen=false;this.hasError=false;this.internalValue="";this.lastInputValue="";this.isDeleting=false;this.handleMaskedInput=e=>{const t=e.target;const i=t.value;const r=t.selectionStart||0;this.isDeleting=i.length<this.lastInputValue.length;if(this.isDeleting){this.internalValue=i;t.value=i;this.lastInputValue=i;setTimeout((()=>{if(this.inputElement){this.inputElement.setSelectionRange(r,r)}}),0)}else{const e=this.unmask(this.lastInputValue).length;const s=this.applyMaskSmart(i);const n=this.unmask(s).length;this.internalValue=s;t.value=s;this.lastInputValue=s;setTimeout((()=>{if(this.inputElement){let t=r;if(n>e){if(n===3&&e===2||n===5&&e===4){t=r+1}}t=Math.min(t,s.length);this.inputElement.setSelectionRange(t,t)}}),0)}const s=this.unmask(this.internalValue);if(s.length===8){const e=this.parseDate(this.internalValue);if(e&&!isNaN(e.getTime())){const t=this.toISODateString(e);this.value=t;this.internals.setFormValue(t);this.dateChange.emit({value:t,date:e});if(this.datepickerInstance){this.datepickerInstance.setDate(e,true)}}}else if(!this.internalValue){this.value="";this.internals.setFormValue(null);this.dateChange.emit({value:"",date:null});if(this.datepickerInstance){this.datepickerInstance.setDate(undefined,true)}}};this.handleInputChange=e=>{this.handleMaskedInput(e)};this.handleInputFocus=()=>{if(!this.disabled&&this.datepickerInstance){this.datepickerInstance.show()}};this.handleKeyDown=e=>{const t=e.target;const i=t===this.inputElement;const r=t.closest(".qs-datepicker")!==null;if(i){switch(e.key){case"Tab":if(!e.shiftKey&&this.isOpen){e.preventDefault();e.stopPropagation();setTimeout((()=>{var e;const t=(e=this.datepickerInstance)===null||e===void 0?void 0:e.calendarContainer;if(t){const e=[...Array.from(t.querySelectorAll(".qs-arrow")),t.querySelector(".qs-month-year"),...Array.from(t.querySelectorAll(".qs-square:not(.qs-day):not(.qs-empty)"))].filter(Boolean);if(e[0]){e[0].focus()}}}),0)}break;case"Escape":if(this.isOpen){e.preventDefault();this.datepickerInstance.hide();this.inputElement.focus()}break}}else if(r){switch(e.key){case"Escape":e.preventDefault();this.datepickerInstance.hide();this.inputElement.focus();break;case"Tab":if(e.shiftKey){e.preventDefault();this.inputElement.focus()}break}}}}componentWillLoad(){this.uniqueId=`spw-date-picker-${Math.random().toString(36).substr(2,9)}`;if(typeof this.disabledDays==="string"){try{const e=JSON.parse(this.disabledDays);if(Array.isArray(e)&&e.every((e=>typeof e==="number"))){this.disabledDays=e}else{this.disabledDays=[]}}catch(e){this.disabledDays=[]}}const e=this.value?this.formatDate(new Date(this.value)):"";this.internalValue=e;this.lastInputValue=this.internalValue}componentDidLoad(){this.initializeDatepicker();if(this.value){const e=new Date(this.value);if(!isNaN(e.getTime())){this.datepickerInstance.setDate(e,true);this.inputElement.value=this.formatDate(e);this.internalValue=this.formatDate(e)}}this.internals.setFormValue(this.value?this.value:null)}disconnectedCallback(){if(this.datepickerInstance&&typeof this.datepickerInstance.remove==="function"){this.datepickerInstance.remove()}}watchValue(e){if(this.datepickerInstance&&e){const t=new Date(e);if(!isNaN(t.getTime())){this.datepickerInstance.setDate(t,true);const e=this.formatDate(t);this.inputElement.value=e;this.internalValue=e;this.lastInputValue=e}}else if(this.datepickerInstance){this.datepickerInstance.setDate(undefined,true);this.inputElement.value="";this.internalValue="";this.lastInputValue=""}this.internals.setFormValue(e?e:null);this.updateRangeConstraints()}watchDisabled(e){if(this.inputElement){this.inputElement.disabled=e}}watchMinDate(e){if(this.datepickerInstance&&e){this.datepickerInstance.setMin(new Date(e))}else if(this.datepickerInstance){this.datepickerInstance.setMin(undefined)}}watchMaxDate(e){if(this.datepickerInstance&&e){this.datepickerInstance.setMax(new Date(e))}else if(this.datepickerInstance){this.datepickerInstance.setMax(undefined)}}async open(){if(this.datepickerInstance){this.datepickerInstance.show()}}async close(){if(this.datepickerInstance){this.datepickerInstance.hide()}}async setDate(e){if(this.datepickerInstance){const t=typeof e==="string"?new Date(e):e;this.datepickerInstance.setDate(t,true)}}async getDate(){return this.datepickerInstance?this.datepickerInstance.dateSelected:null}async getRange(){var e;if(this.range&&((e=this.datepickerInstance)===null||e===void 0?void 0:e.getRange)){return this.datepickerInstance.getRange()}return{start:null,end:null}}async updateConstraints(e,t){if(!this.datepickerInstance)return;if(e!==undefined){if(typeof this.datepickerInstance.setMin==="function"){this.datepickerInstance.setMin(e)}else{this.datepickerInstance.minDate=e}}if(t!==undefined){if(typeof this.datepickerInstance.setMax==="function"){this.datepickerInstance.setMax(t)}else{this.datepickerInstance.maxDate=t}}if(this.isOpen&&this.datepickerInstance.calendar){this.datepickerInstance.hide();setTimeout((()=>{this.datepickerInstance.show()}),0)}}async resetInput(){this.value="";this.internalValue="";this.lastInputValue="";this.internals.setFormValue(null);if(this.inputElement){this.inputElement.value=""}if(this.datepickerInstance){this.datepickerInstance.setDate(undefined,true)}this.dateChange.emit({value:"",date:null});this.updateRangeConstraints()}toISODateString(e){const t=e.getFullYear();const i=`${e.getMonth()+1}`.padStart(2,"0");const r=`${e.getDate()}`.padStart(2,"0");return`${t}-${i}-${r}`}getRangeSiblings(){if(!this.range||!this.rangeId)return{start:null,end:null};const e=`spw-date-picker[range][range-id="${this.rangeId}"]`;const t=Array.from(document.querySelectorAll(e));let i=null;let r=null;t.forEach((e=>{if(e.hasAttribute("is-start")){i=e}else{r=e}}));return{start:i,end:r}}highlightRangeInCalendar(){var e;if(!this.range||!this.rangeId||!((e=this.datepickerInstance)===null||e===void 0?void 0:e.calendar))return;const{start:t,end:i}=this.getRangeSiblings();if(!t||!i)return;const r=t.value;const s=i.value;if(!r||!s){const e=this.datepickerInstance.calendar.querySelectorAll(".qs-square");e.forEach((e=>{e.classList.remove("spw-date-range-start","spw-date-range-end","spw-date-range-middle")}));return}const n=new Date(r);const o=new Date(s);if(isNaN(n.getTime())||isNaN(o.getTime()))return;const a=this.datepickerInstance.calendar.querySelectorAll(".qs-square:not(.qs-empty)");a.forEach((e=>{const t=parseInt(e.textContent||"0",10);if(!t)return;const i=this.datepickerInstance.currentMonth;const r=this.datepickerInstance.currentYear;const s=new Date(r,i,t);const a=new Date(s.getFullYear(),s.getMonth(),s.getDate());const d=new Date(n.getFullYear(),n.getMonth(),n.getDate());const c=new Date(o.getFullYear(),o.getMonth(),o.getDate());if(a>=d&&a<=c){if(a.getTime()===d.getTime()){e.classList.add("spw-date-range-start");e.classList.remove("spw-date-range-middle","spw-date-range-end")}else if(a.getTime()===c.getTime()){e.classList.add("spw-date-range-end");e.classList.remove("spw-date-range-middle","spw-date-range-start")}else{e.classList.add("spw-date-range-middle");e.classList.remove("spw-date-range-start","spw-date-range-end")}}else{e.classList.remove("spw-date-range-start","spw-date-range-end","spw-date-range-middle")}}))}async updateRangeConstraints(){var e,t;if(!this.range||!this.rangeId)return;const{start:i,end:r}=this.getRangeSiblings();if(this.isStart&&r){await((e=r.componentOnReady)===null||e===void 0?void 0:e.call(r));const t=this.value?new Date(this.value):null;if(t&&!isNaN(t.getTime())){await r.updateConstraints(t,undefined)}else{const e=r.minDate?new Date(r.minDate):undefined;await r.updateConstraints(e,undefined)}}if(!this.isStart&&i){await((t=i.componentOnReady)===null||t===void 0?void 0:t.call(i));const e=this.value?new Date(this.value):null;if(e&&!isNaN(e.getTime())){await i.updateConstraints(undefined,e)}else{const e=i.maxDate?new Date(i.maxDate):undefined;await i.updateConstraints(undefined,e)}}}unmask(e){return e?e.replace(/[^0-9]/g,""):""}applyMaskSmart(e){if(!e)return"";const t=this.unmask(e);let i="";for(let e=0;e<t.length&&e<8;e++){if(e===2||e===4){i+="/"}i+=t[e]}return i}setupCalendarNavigation(){if(!this.datepickerInstance)return;const e=this.datepickerInstance.calendarContainer;if(!e)return;const t=[...Array.from(e.querySelectorAll(".qs-arrow")),e.querySelector(".qs-month-year"),...Array.from(e.querySelectorAll(".qs-square:not(.qs-day):not(.qs-empty)"))].filter(Boolean);t.forEach((e=>{e.setAttribute("tabindex","0");e.addEventListener("keydown",(i=>{this.handleCalendarKeyDown(i,e,t)}))}))}handleCalendarKeyDown(e,t,i){const r=i.indexOf(t);let s=r;switch(e.key){case"ArrowRight":e.preventDefault();s=Math.min(r+1,i.length-1);break;case"ArrowLeft":e.preventDefault();s=Math.max(r-1,0);break;case"ArrowDown":e.preventDefault();s=t.classList.contains("qs-square")?Math.min(r+7,i.length-1):Math.min(r+1,i.length-1);break;case"ArrowUp":e.preventDefault();s=t.classList.contains("qs-square")?Math.max(r-7,0):Math.max(r-1,0);break;case"Home":e.preventDefault();s=0;break;case"End":e.preventDefault();s=i.length-1;break;case"Enter":case" ":e.preventDefault();if(t.classList.contains("qs-arrow")){t.click();setTimeout((()=>t.focus()),0)}else{t.click()}return;case"Escape":e.preventDefault();this.datepickerInstance.hide();this.inputElement.focus();return}if(s!==r){const e=i[s];if(e&&!e.matches(".qs-day, .qs-disabled, .qs-empty")){e.focus()}}}initializeDatepicker(){if(!this.inputElement)return;const e={position:this.position,startDay:1,customDays:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],customMonths:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],overlayPlaceholder:"Année",overlayButton:"Valider",formatter:(e,t)=>{const i=this.formatDate(t);e.value=i;this.internalValue=i;this.lastInputValue=i},disabler:e=>{const t=this.disabledDays;if(t.includes(e.getDay()))return true;const i=e.toISOString().split("T")[0];return this.disabledDates.includes(i)},onSelect:e=>{const t=e instanceof Date?e:e===null||e===void 0?void 0:e.dateSelected;if(!t||isNaN(t.getTime()))return;const i=this.toISODateString(t);this.value=i;const r=this.formatDate(t);this.inputElement.value=r;this.internalValue=r;this.lastInputValue=r;this.internals.setFormValue(i);this.dateChange.emit({value:i,date:t});this.updateRangeConstraints();setTimeout((()=>{var e,t;this.highlightRangeInCalendar();const{start:i,end:r}=this.getRangeSiblings();const s=this.isStart?r:i;if(s&&s.isOpen){(t=(e=s).highlightRangeInCalendar)===null||t===void 0?void 0:t.call(e)}}),50)},onShow:()=>{this.isOpen=true;this.datePickerOpen.emit();setTimeout((()=>{this.setupCalendarNavigation();this.highlightRangeInCalendar();setTimeout((()=>this.highlightRangeInCalendar()),50);setTimeout((()=>this.highlightRangeInCalendar()),150)}),100)},onHide:()=>{this.isOpen=false;this.datePickerClose.emit()}};if(this.range&&this.rangeId){const{start:t,end:i}=this.getRangeSiblings();if(this.isStart){if(i&&i.value){const t=new Date(i.value);if(!isNaN(t.getTime())){e.maxDate=t}}}else{if(t&&t.value){const i=new Date(t.value);if(!isNaN(i.getTime())){e.minDate=i}}}}else{if(this.minDate)e.minDate=new Date(this.minDate);if(this.maxDate)e.maxDate=new Date(this.maxDate)}if(this.datepickerInstance){if(typeof this.datepickerInstance.remove==="function"){this.datepickerInstance.remove()}}this.datepickerInstance=l(this.inputElement,e);if(this.value){const e=new Date(this.value);if(!isNaN(e.getTime())){try{this.datepickerInstance.setDate(e,true);const t=this.formatDate(e);this.inputElement.value=t;this.internalValue=t;this.lastInputValue=t}catch(e){}}}}formatDate(e){if(!(e instanceof Date)||isNaN(e.getTime()))return"";const t=e.getDate().toString().padStart(2,"0");const i=(e.getMonth()+1).toString().padStart(2,"0");const r=e.getFullYear();return this.dateFormat.replace("dd",t).replace("MM",i).replace("yyyy",r.toString())}parseDate(e){const t=e.split("/");if(t.length===3){const e=parseInt(t[0],10);const i=parseInt(t[1],10)-1;const r=parseInt(t[2],10);if(!isNaN(e)&&!isNaN(i)&&!isNaN(r)){return new Date(r,i,e)}}return null}formResetCallback(){this.value="";this.internalValue="";this.lastInputValue="";this.internals.setFormValue(null);if(this.inputElement){this.inputElement.value=""}if(this.datepickerInstance){this.datepickerInstance.setDate(undefined,true)}this.dateChange.emit({value:"",date:null});this.updateRangeConstraints()}render(){const e={"spw-date-picker__input":true,"spw-date-picker__input--error":this.hasError,"spw-date-picker__input--disabled":this.disabled,"spw-date-picker__input--open":this.isOpen};const t=this.error||this.internalError;return i(r,{key:"657ed1e69aaeb89fe38dd244e5744bf3caf5ca21"},i("div",{key:"dc957192b9d4b8c3eb9bd9f055a84c8ac67f6150",class:"spw-date-picker"},this.label&&i("spw-field-label",{key:"34adf8491363afcb0bce2aed2dfb72d4d3655b81",label:this.label,required:this.required}),this.assistiveText&&i("spw-field-message",{key:"098a6382c0558a436b17c605654c1edcb1447408",class:"spw-tw-mb-2 -spw-tw-mt-1",variant:"hint",showIcon:false},this.assistiveText),i("div",{key:"9d6684f543f9300f5bc528a6ee6a88d79f19c9fa",class:"spw-date-picker__input-container"},i("input",{key:"56f8098297fada855c2672f7d3b4d926e7ac2e71",ref:e=>this.inputElement=e,id:this.uniqueId,type:"text",class:e,value:this.internalValue,placeholder:this.placeholder,disabled:this.disabled,required:this.required,onFocus:this.handleInputFocus,onInput:this.handleInputChange,onKeyDown:this.handleKeyDown,"aria-describedby":this.assistiveText||t?`${this.uniqueId}-help ${this.uniqueId}-error`:undefined,"aria-invalid":this.hasError}),i("spw-icon",{key:"c18e7b4405c18d553036c5fd0301aa9bf2403be8",icon:"fa-calendar",class:"spw-date-picker__icon"})),this.error&&i("spw-field-message",{key:"83103ba00956d37bc8369d220f1b80591d840fea",variant:"error",showIcon:this.showErrorIcon},this.error),this.hint&&i("spw-field-message",{key:"fbcb99394e7fac065b25141b14f57247993efb09",variant:"hint",showIcon:this.showHintIcon},this.hint),this.success&&i("spw-field-message",{key:"a0041903b10368ad8f2c9482603868565ab20ee2",variant:"success",showIcon:this.showSuccessIcon},this.success),this.warning&&i("spw-field-message",{key:"d52fdb1f562529df9d9e10f7ee5c92e221a8debe",variant:"warning",showIcon:this.showWarningIcon},this.warning)))}static get formAssociated(){return true}get el(){return s(this)}static get watchers(){return{value:["watchValue"],disabled:["watchDisabled"],minDate:["watchMinDate"],maxDate:["watchMaxDate"]}}};u.style=p;export{u as spw_date_picker};
|
|
2
|
-
//# sourceMappingURL=p-f5caed11.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["e","t","module","exports","window","n","a","r","i","l","call","m","c","d","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","b","forEach","addEventListener","document","L","Y","Array","isArray","map","x","keys","reduce","u","calendar","querySelector","classList","contains","Date","currentYear","currentMonth","innerHTML","h","f","v","join","requestAnimationFrame","M","disableYearOverlay","months","getMonth","getFullYear","dateSelected","maxDate","minDate","showAllDates","days","disabledDates","startDay","weekendIndices","events","getRange","start","y","end","g","setDate","w","getDay","D","setMonth","getDate","q","S","E","C","j","O","P","k","N","_","I","A","disabler","noWeekends","push","R","concat","unshift","overlayPlaceholder","overlayButton","overlayMonths","el","textContent","sibling","disabled","readOnly","respectDisabledReadOnly","remove","add","instance","deselect","first","currentMonthName","onSelect","originalMinDate","originalMaxDate","nonInput","formatter","toDateString","onMonthChange","noPosition","position","top","right","centered","calendarContainer","positionedEl","getBoundingClientRect","height","left","width","style","setProperty","toString","isNaN","alwaysShow","defaultView","onHide","onShow","focus","setFullYear","which","keyCode","type","__qs_shadow_dom","target","filter","isMobile","disableMobile","dataset","monthNum","direction","querySelectorAll","split","match","slice","length","removeEventListener","this","Error","toLowerCase","shadowDom","inlinePosition","some","F","B","id","startDate","second","customDays","splice","getElementById","parentNode","host","body","parentElement","createElement","className","customElement","parent","nodeName","setMin","setMax","show","hide","navigate","toggleOverlay","getComputedStyle","appendChild","spwDatePickerCss","SpwDatePicker","constructor","hostRef","placeholder","required","dateFormat","disabledDays","error","hint","success","warning","showErrorIcon","showHintIcon","showSuccessIcon","showWarningIcon","range","isStart","isOpen","hasError","internalValue","lastInputValue","isDeleting","handleMaskedInput","event","newValue","cursorPosition","selectionStart","setTimeout","inputElement","setSelectionRange","oldDigitCount","unmask","maskedValue","applyMaskSmart","newDigitCount","newCursorPos","Math","min","digits","parsedDate","parseDate","getTime","isoString","toISODateString","internals","setFormValue","dateChange","emit","date","datepickerInstance","undefined","handleInputChange","handleInputFocus","handleKeyDown","ev","isInputFocused","isCalendarFocused","closest","key","shiftKey","preventDefault","stopPropagation","calendarEl","_a","focusableEls","from","Boolean","componentWillLoad","uniqueId","random","substr","parsed","JSON","parse","every","val","formatDate","componentDidLoad","initializeDatepicker","initialDate","disconnectedCallback","watchValue","formattedDate","updateRangeConstraints","watchDisabled","isDisabled","watchMinDate","newMinDate","watchMaxDate","newMaxDate","open","close","dateObj","updateConstraints","resetInput","year","month","padStart","day","getRangeSiblings","rangeId","selector","siblings","pickerEl","hasAttribute","highlightRangeInCalendar","startValue","endValue","allDates","dateEl","endDate","dateNum","parseInt","cellDate","cellDateOnly","startDateOnly","endDateOnly","componentOnReady","endMinDate","_b","startMaxDate","replace","result","setupCalendarNavigation","setAttribute","handleCalendarKeyDown","currentElement","currentIndex","indexOf","newIndex","max","click","newElement","matches","options","customMonths","input","includes","dateStr","toISOString","selectedDateOrInstance","selectedDate","datePickerOpen","datePickerClose","datepicker","dateString","parts","formResetCallback","render","inputClass","errorMessage","internalError","Host","class","label","assistiveText","variant","showIcon","ref","onFocus","onInput","onKeyDown","icon"],"sources":["../../node_modules/js-datepicker/dist/datepicker.min.js","src/components/spw-date-picker/spw-date-picker.scss?tag=spw-date-picker&encapsulation=shadow","src/components/spw-date-picker/spw-date-picker.tsx"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.datepicker=t():e.datepicker=t()}(window,(function(){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(a,r,function(t){return e[t]}.bind(null,r));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t,n){\"use strict\";n.r(t);var a=[],r=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],i=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],o={t:\"top\",r:\"right\",b:\"bottom\",l:\"left\",c:\"centered\"};function s(){}var l=[\"click\",\"focusin\",\"keydown\",\"input\"];function d(e){l.forEach((function(t){e.addEventListener(t,e===document?L:Y)}))}function c(e){return Array.isArray(e)?e.map(c):\"[object Object]\"===x(e)?Object.keys(e).reduce((function(t,n){return t[n]=c(e[n]),t}),{}):e}function u(e,t){var n=e.calendar.querySelector(\".qs-overlay\"),a=n&&!n.classList.contains(\"qs-hidden\");t=t||new Date(e.currentYear,e.currentMonth),e.calendar.innerHTML=[h(t,e,a),f(t,e,a),v(e,a)].join(\"\"),a&&window.requestAnimationFrame((function(){M(!0,e)}))}function h(e,t,n){return['<div class=\"qs-controls'+(n?\" qs-blur\":\"\")+'\">','<div class=\"qs-arrow qs-left\"></div>','<div class=\"qs-month-year'+(t.disableYearOverlay?\" qs-disabled-year-overlay\":\"\")+'\">','<span class=\"qs-month\">'+t.months[e.getMonth()]+\"</span>\",'<span class=\"qs-year\">'+e.getFullYear()+\"</span>\",\"</div>\",'<div class=\"qs-arrow qs-right\"></div>',\"</div>\"].join(\"\")}function f(e,t,n){var a=t.currentMonth,r=t.currentYear,i=t.dateSelected,o=t.maxDate,s=t.minDate,l=t.showAllDates,d=t.days,c=t.disabledDates,u=t.startDay,h=t.weekendIndices,f=t.events,v=t.getRange?t.getRange():{},m=+v.start,y=+v.end,p=g(new Date(e).setDate(1)),w=p.getDay()-u,D=w<0?7:0;p.setMonth(p.getMonth()+1),p.setDate(0);var b=p.getDate(),q=[],S=D+7*((w+b)/7|0);S+=(w+b)%7?7:0;for(var M=1;M<=S;M++){var E=(M-1)%7,x=d[E],C=M-(w>=0?w:7+w),L=new Date(r,a,C),Y=f[+L],j=C<1||C>b,O=j?C<1?-1:1:0,P=j&&!l,k=P?\"\":L.getDate(),N=+L==+i,_=E===h[0]||E===h[1],I=m!==y,A=\"qs-square \"+x;Y&&!P&&(A+=\" qs-event\"),j&&(A+=\" qs-outside-current-month\"),!l&&j||(A+=\" qs-num\"),N&&(A+=\" qs-active\"),(c[+L]||t.disabler(L)||_&&t.noWeekends||s&&+L<+s||o&&+L>+o)&&!P&&(A+=\" qs-disabled\"),+g(new Date)==+L&&(A+=\" qs-current\"),+L===m&&y&&I&&(A+=\" qs-range-start\"),+L>m&&+L<y&&(A+=\" qs-range-middle\"),+L===y&&m&&I&&(A+=\" qs-range-end\"),P&&(A+=\" qs-empty\",k=\"\"),q.push('<div class=\"'+A+'\" data-direction=\"'+O+'\">'+k+\"</div>\")}var R=d.map((function(e){return'<div class=\"qs-square qs-day\">'+e+\"</div>\"})).concat(q);return R.unshift('<div class=\"qs-squares'+(n?\" qs-blur\":\"\")+'\">'),R.push(\"</div>\"),R.join(\"\")}function v(e,t){var n=e.overlayPlaceholder,a=e.overlayButton;return['<div class=\"qs-overlay'+(t?\"\":\" qs-hidden\")+'\">',\"<div>\",'<input class=\"qs-overlay-year\" placeholder=\"'+n+'\" inputmode=\"numeric\" />','<div class=\"qs-close\">✕</div>',\"</div>\",'<div class=\"qs-overlay-month-container\">'+e.overlayMonths.map((function(e,t){return'<div class=\"qs-overlay-month\" data-month-num=\"'+t+'\">'+e+\"</div>\"})).join(\"\")+\"</div>\",'<div class=\"qs-submit qs-disabled\">'+a+\"</div>\",\"</div>\"].join(\"\")}function m(e,t,n){var a=t.el,r=t.calendar.querySelector(\".qs-active\"),i=e.textContent,o=t.sibling;(a.disabled||a.readOnly)&&t.respectDisabledReadOnly||(t.dateSelected=n?void 0:new Date(t.currentYear,t.currentMonth,i),r&&r.classList.remove(\"qs-active\"),n||e.classList.add(\"qs-active\"),p(a,t,n),n||q(t),o&&(y({instance:t,deselect:n}),t.first&&!o.dateSelected&&(o.currentYear=t.currentYear,o.currentMonth=t.currentMonth,o.currentMonthName=t.currentMonthName),u(t),u(o)),t.onSelect(t,n?void 0:new Date(t.dateSelected)))}function y(e){var t=e.instance.first?e.instance:e.instance.sibling,n=t.sibling;t===e.instance?e.deselect?(t.minDate=t.originalMinDate,n.minDate=n.originalMinDate):n.minDate=t.dateSelected:e.deselect?(n.maxDate=n.originalMaxDate,t.maxDate=t.originalMaxDate):t.maxDate=n.dateSelected}function p(e,t,n){if(!t.nonInput)return n?e.value=\"\":t.formatter!==s?t.formatter(e,t.dateSelected,t):void(e.value=t.dateSelected.toDateString())}function w(e,t,n,a){n||a?(n&&(t.currentYear=+n),a&&(t.currentMonth=+a)):(t.currentMonth+=e.contains(\"qs-right\")?1:-1,12===t.currentMonth?(t.currentMonth=0,t.currentYear++):-1===t.currentMonth&&(t.currentMonth=11,t.currentYear--)),t.currentMonthName=t.months[t.currentMonth],u(t),t.onMonthChange(t)}function D(e){if(!e.noPosition){var t=e.position.top,n=e.position.right;if(e.position.centered)return e.calendarContainer.classList.add(\"qs-centered\");var a=e.positionedEl.getBoundingClientRect(),r=e.el.getBoundingClientRect(),i=e.calendarContainer.getBoundingClientRect(),o=r.top-a.top+(t?-1*i.height:r.height)+\"px\",s=r.left-a.left+(n?r.width-i.width:0)+\"px\";e.calendarContainer.style.setProperty(\"top\",o),e.calendarContainer.style.setProperty(\"left\",s)}}function b(e){return\"[object Date]\"===x(e)&&\"Invalid Date\"!==e.toString()}function g(e){if(b(e)||\"number\"==typeof e&&!isNaN(e)){var t=new Date(+e);return new Date(t.getFullYear(),t.getMonth(),t.getDate())}}function q(e){e.disabled||!e.calendarContainer.classList.contains(\"qs-hidden\")&&!e.alwaysShow&&(\"overlay\"!==e.defaultView&&M(!0,e),e.calendarContainer.classList.add(\"qs-hidden\"),e.onHide(e))}function S(e){e.disabled||(e.calendarContainer.classList.remove(\"qs-hidden\"),\"overlay\"===e.defaultView&&M(!1,e),D(e),e.onShow(e))}function M(e,t){var n=t.calendar,a=n.querySelector(\".qs-overlay\"),r=a.querySelector(\".qs-overlay-year\"),i=n.querySelector(\".qs-controls\"),o=n.querySelector(\".qs-squares\");e?(a.classList.add(\"qs-hidden\"),i.classList.remove(\"qs-blur\"),o.classList.remove(\"qs-blur\"),r.value=\"\"):(a.classList.remove(\"qs-hidden\"),i.classList.add(\"qs-blur\"),o.classList.add(\"qs-blur\"),r.focus())}function E(e,t,n,a){var r=isNaN(+(new Date).setFullYear(t.value||void 0)),i=r?null:t.value;if(13===e.which||13===e.keyCode||\"click\"===e.type)a?w(null,n,i,a):r||t.classList.contains(\"qs-disabled\")||w(null,n,i);else if(n.calendar.contains(t)){n.calendar.querySelector(\".qs-submit\").classList[r?\"add\":\"remove\"](\"qs-disabled\")}}function x(e){return{}.toString.call(e)}function C(e){a.forEach((function(t){t!==e&&q(t)}))}function L(e){if(!e.__qs_shadow_dom){var t=e.which||e.keyCode,n=e.type,r=e.target,o=r.classList,s=a.filter((function(e){return e.calendar.contains(r)||e.el===r}))[0],l=s&&s.calendar.contains(r);if(!(s&&s.isMobile&&s.disableMobile))if(\"click\"===n){if(!s)return a.forEach(q);if(s.disabled)return;var d=s.calendar,c=s.calendarContainer,h=s.disableYearOverlay,f=s.nonInput,v=d.querySelector(\".qs-overlay-year\"),y=!!d.querySelector(\".qs-hidden\"),p=d.querySelector(\".qs-month-year\").contains(r),D=r.dataset.monthNum;if(s.noPosition&&!l)(c.classList.contains(\"qs-hidden\")?S:q)(s);else if(o.contains(\"qs-arrow\"))w(o,s);else if(p||o.contains(\"qs-close\"))h||M(!y,s);else if(D)E(e,v,s,D);else{if(o.contains(\"qs-disabled\"))return;if(o.contains(\"qs-num\")){var b=r.textContent,g=+r.dataset.direction,x=new Date(s.currentYear,s.currentMonth+g,b);if(g){s.currentYear=x.getFullYear(),s.currentMonth=x.getMonth(),s.currentMonthName=i[s.currentMonth],u(s);for(var L,Y=s.calendar.querySelectorAll('[data-direction=\"0\"]'),j=0;!L;){var O=Y[j];O.textContent===b&&(L=O),j++}r=L}return void(+x==+s.dateSelected?m(r,s,!0):r.classList.contains(\"qs-disabled\")||m(r,s))}o.contains(\"qs-submit\")?E(e,v,s):f&&r===s.el&&(S(s),C(s))}}else if(\"focusin\"===n&&s)S(s),C(s);else if(\"keydown\"===n&&9===t&&s)q(s);else if(\"keydown\"===n&&s&&!s.disabled){var P=!s.calendar.querySelector(\".qs-overlay\").classList.contains(\"qs-hidden\");13===t&&P&&l?E(e,r,s):27===t&&P&&l&&M(!0,s)}else if(\"input\"===n){if(!s||!s.calendar.contains(r))return;var k=s.calendar.querySelector(\".qs-submit\"),N=r.value.split(\"\").reduce((function(e,t){return e||\"0\"!==t?e+(t.match(/[0-9]/)?t:\"\"):\"\"}),\"\").slice(0,4);r.value=N,k.classList[4===N.length?\"remove\":\"add\"](\"qs-disabled\")}}}function Y(e){L(e),e.__qs_shadow_dom=!0}function j(e,t){l.forEach((function(n){e.removeEventListener(n,t)}))}function O(){S(this)}function P(){q(this)}function k(e,t){var n=g(e),a=this.currentYear,r=this.currentMonth,i=this.sibling;if(null==e)return this.dateSelected=void 0,p(this.el,this,!0),i&&(y({instance:this,deselect:!0}),u(i)),u(this),this;if(!b(e))throw new Error(\"`setDate` needs a JavaScript Date object.\");if(this.disabledDates[+n]||n<this.minDate||n>this.maxDate)throw new Error(\"You can't manually set a date that's disabled.\");this.dateSelected=n,t&&(this.currentYear=n.getFullYear(),this.currentMonth=n.getMonth(),this.currentMonthName=this.months[n.getMonth()]),p(this.el,this),i&&(y({instance:this}),u(i));var o=a===n.getFullYear()&&r===n.getMonth();return o||t?u(this,n):o||u(this,new Date(a,r,1)),this}function N(e){return I(this,e,!0)}function _(e){return I(this,e)}function I(e,t,n){var a=e.dateSelected,r=e.first,i=e.sibling,o=e.minDate,s=e.maxDate,l=g(t),d=n?\"Min\":\"Max\";function c(){return\"original\"+d+\"Date\"}function h(){return d.toLowerCase()+\"Date\"}function f(){return\"set\"+d}function v(){throw new Error(\"Out-of-range date passed to \"+f())}if(null==t)e[c()]=void 0,i?(i[c()]=void 0,n?(r&&!a||!r&&!i.dateSelected)&&(e.minDate=void 0,i.minDate=void 0):(r&&!i.dateSelected||!r&&!a)&&(e.maxDate=void 0,i.maxDate=void 0)):e[h()]=void 0;else{if(!b(t))throw new Error(\"Invalid date passed to \"+f());i?((r&&n&&l>(a||s)||r&&!n&&l<(i.dateSelected||o)||!r&&n&&l>(i.dateSelected||s)||!r&&!n&&l<(a||o))&&v(),e[c()]=l,i[c()]=l,(n&&(r&&!a||!r&&!i.dateSelected)||!n&&(r&&!i.dateSelected||!r&&!a))&&(e[h()]=l,i[h()]=l)):((n&&l>(a||s)||!n&&l<(a||o))&&v(),e[h()]=l)}return i&&u(i),u(e),e}function A(){var e=this.first?this:this.sibling,t=e.sibling;return{start:e.dateSelected,end:t.dateSelected}}function R(){var e=this.shadowDom,t=this.positionedEl,n=this.calendarContainer,r=this.sibling,i=this;this.inlinePosition&&(a.some((function(e){return e!==i&&e.positionedEl===t}))||t.style.setProperty(\"position\",null));n.remove(),a=a.filter((function(e){return e!==i})),r&&delete r.sibling,a.length||j(document,L);var o=a.some((function(t){return t.shadowDom===e}));for(var s in e&&!o&&j(e,Y),this)delete this[s];a.length||l.forEach((function(e){document.removeEventListener(e,L)}))}function F(e,t){var n=new Date(e);if(!b(n))throw new Error(\"Invalid date passed to `navigate`\");this.currentYear=n.getFullYear(),this.currentMonth=n.getMonth(),u(this),t&&this.onMonthChange(this)}function B(){var e=!this.calendarContainer.classList.contains(\"qs-hidden\"),t=!this.calendarContainer.querySelector(\".qs-overlay\").classList.contains(\"qs-hidden\");e&&M(t,this)}t.default=function(e,t){var n=function(e,t){var n,l,d=function(e){var t=c(e);t.events&&(t.events=t.events.reduce((function(e,t){if(!b(t))throw new Error('\"options.events\" must only contain valid JavaScript Date objects.');return e[+g(t)]=!0,e}),{}));[\"startDate\",\"dateSelected\",\"minDate\",\"maxDate\"].forEach((function(e){var n=t[e];if(n&&!b(n))throw new Error('\"options.'+e+'\" needs to be a valid JavaScript Date object.');t[e]=g(n)}));var n=t.position,i=t.maxDate,l=t.minDate,d=t.dateSelected,u=t.overlayPlaceholder,h=t.overlayButton,f=t.startDay,v=t.id;if(t.startDate=g(t.startDate||d||new Date),t.disabledDates=(t.disabledDates||[]).reduce((function(e,t){var n=+g(t);if(!b(t))throw new Error('You supplied an invalid date to \"options.disabledDates\".');if(n===+g(d))throw new Error('\"disabledDates\" cannot contain the same date as \"dateSelected\".');return e[n]=1,e}),{}),t.hasOwnProperty(\"id\")&&null==v)throw new Error(\"`id` cannot be `null` or `undefined`\");if(null!=v){var m=a.filter((function(e){return e.id===v}));if(m.length>1)throw new Error(\"Only two datepickers can share an id.\");m.length?(t.second=!0,t.sibling=m[0]):t.first=!0}var y=[\"tr\",\"tl\",\"br\",\"bl\",\"c\"].some((function(e){return n===e}));if(n&&!y)throw new Error('\"options.position\" must be one of the following: tl, tr, bl, br, or c.');function p(e){throw new Error('\"dateSelected\" in options is '+(e?\"less\":\"greater\")+' than \"'+(e||\"max\")+'Date\".')}if(t.position=function(e){var t=e[0],n=e[1],a={};a[o[t]]=1,n&&(a[o[n]]=1);return a}(n||\"bl\"),i<l)throw new Error('\"maxDate\" in options is less than \"minDate\".');d&&(l>d&&p(\"min\"),i<d&&p());if([\"onSelect\",\"onShow\",\"onHide\",\"onMonthChange\",\"formatter\",\"disabler\"].forEach((function(e){\"function\"!=typeof t[e]&&(t[e]=s)})),[\"customDays\",\"customMonths\",\"customOverlayMonths\"].forEach((function(e,n){var a=t[e],r=n?12:7;if(a){if(!Array.isArray(a)||a.length!==r||a.some((function(e){return\"string\"!=typeof e})))throw new Error('\"'+e+'\" must be an array with '+r+\" strings.\");t[n?n<2?\"months\":\"overlayMonths\":\"days\"]=a}})),f&&f>0&&f<7){var w=(t.customDays||r).slice(),D=w.splice(0,f);t.customDays=w.concat(D),t.startDay=+f,t.weekendIndices=[w.length-1,w.length]}else t.startDay=0,t.weekendIndices=[6,0];\"string\"!=typeof u&&delete t.overlayPlaceholder;\"string\"!=typeof h&&delete t.overlayButton;var q=t.defaultView;if(q&&\"calendar\"!==q&&\"overlay\"!==q)throw new Error('options.defaultView must either be \"calendar\" or \"overlay\".');return t.defaultView=q||\"calendar\",t}(t||{startDate:g(new Date),position:\"bl\",defaultView:\"calendar\"}),u=e;if(\"string\"==typeof u)u=\"#\"===u[0]?document.getElementById(u.slice(1)):document.querySelector(u);else{if(\"[object ShadowRoot]\"===x(u))throw new Error(\"Using a shadow DOM as your selector is not supported.\");for(var h,f=u.parentNode;!h;){var v=x(f);\"[object HTMLDocument]\"===v?h=!0:\"[object ShadowRoot]\"===v?(h=!0,n=f,l=f.host):f=f.parentNode}}if(!u)throw new Error(\"No selector / element found.\");if(a.some((function(e){return e.el===u})))throw new Error(\"A datepicker already exists on that element.\");var m=u===document.body,y=n?u.parentElement||n:m?document.body:u.parentElement,w=n?u.parentElement||l:y,D=document.createElement(\"div\"),q=document.createElement(\"div\");D.className=\"qs-datepicker-container qs-hidden\",q.className=\"qs-datepicker\";var M={shadowDom:n,customElement:l,positionedEl:w,el:u,parent:y,nonInput:\"INPUT\"!==u.nodeName,noPosition:m,position:!m&&d.position,startDate:d.startDate,dateSelected:d.dateSelected,disabledDates:d.disabledDates,minDate:d.minDate,maxDate:d.maxDate,noWeekends:!!d.noWeekends,weekendIndices:d.weekendIndices,calendarContainer:D,calendar:q,currentMonth:(d.startDate||d.dateSelected).getMonth(),currentMonthName:(d.months||i)[(d.startDate||d.dateSelected).getMonth()],currentYear:(d.startDate||d.dateSelected).getFullYear(),events:d.events||{},defaultView:d.defaultView,setDate:k,remove:R,setMin:N,setMax:_,show:O,hide:P,navigate:F,toggleOverlay:B,onSelect:d.onSelect,onShow:d.onShow,onHide:d.onHide,onMonthChange:d.onMonthChange,formatter:d.formatter,disabler:d.disabler,months:d.months||i,days:d.customDays||r,startDay:d.startDay,overlayMonths:d.overlayMonths||(d.months||i).map((function(e){return e.slice(0,3)})),overlayPlaceholder:d.overlayPlaceholder||\"4-digit year\",overlayButton:d.overlayButton||\"Submit\",disableYearOverlay:!!d.disableYearOverlay,disableMobile:!!d.disableMobile,isMobile:\"ontouchstart\"in window,alwaysShow:!!d.alwaysShow,id:d.id,showAllDates:!!d.showAllDates,respectDisabledReadOnly:!!d.respectDisabledReadOnly,first:d.first,second:d.second};if(d.sibling){var E=d.sibling,C=M,L=E.minDate||C.minDate,Y=E.maxDate||C.maxDate;C.sibling=E,E.sibling=C,E.minDate=L,E.maxDate=Y,C.minDate=L,C.maxDate=Y,E.originalMinDate=L,E.originalMaxDate=Y,C.originalMinDate=L,C.originalMaxDate=Y,E.getRange=A,C.getRange=A}d.dateSelected&&p(u,M);var j=getComputedStyle(w).position;m||j&&\"static\"!==j||(M.inlinePosition=!0,w.style.setProperty(\"position\",\"relative\"));var I=a.filter((function(e){return e.positionedEl===M.positionedEl}));I.some((function(e){return e.inlinePosition}))&&(M.inlinePosition=!0,I.forEach((function(e){e.inlinePosition=!0})));D.appendChild(q),y.appendChild(D),M.alwaysShow&&S(M);return M}(e,t);if(a.length||d(document),n.shadowDom&&(a.some((function(e){return e.shadowDom===n.shadowDom}))||d(n.shadowDom)),a.push(n),n.second){var l=n.sibling;y({instance:n,deselect:!n.dateSelected}),y({instance:l,deselect:!l.dateSelected}),u(l)}return u(n,n.startDate||n.dateSelected),n.alwaysShow&&D(n),n}}]).default}));","@import '~js-datepicker/dist/datepicker.min.css';\n\n:host {\n display: block;\n font-family: inherit;\n --spw-input-height: 40px;\n --spw-input-padding: 0 12px;\n --spw-input-text-align: left;\n --spw-input-font-size: 16px;\n --spw-input-radius: 4px;\n --spw-input-icon-search-color: var(--spw-color-themes-grey-grey-900);\n --spw-input-border: var(--spw-color-themes-grey-grey-800);\n}\n\n%input {\n flex: 1;\n width: 100%;\n height: var(--spw-input-height);\n padding: var(--spw-input-padding);\n text-overflow: ellipsis;\n line-height: var(--spw-input-height);\n border-radius: var(--spw-input-radius);\n font-size: var(--spw-input-font-size);\n text-align: var(--spw-input-text-align);\n border: 1px solid var(--spw-input-border);\n &:hover {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n &:focus,\n &:focus-visible {\n outline: 3px solid white;\n outline-offset: 0;\n box-shadow: 0 0 0 6px black;\n }\n &:active {\n border-color: var(--spw-input-border);\n }\n}\n\n.spw-date-picker {\n &__input-container {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n &__input {\n @extend %input;\n\n &--error {\n border-color: var(--spw-color-error, #dc2626);\n\n &:focus {\n border-color: var(--spw-color-error, #dc2626);\n box-shadow: 0 0 0 3px var(--spw-color-error-light, rgba(220, 38, 38, 0.1));\n }\n }\n\n &--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 &--open {\n outline: 3px solid white;\n outline-offset: 0;\n box-shadow: 0 0 0 6px black;\n }\n\n &::placeholder {\n color: var(--spw-color-text-placeholder, #9ca3af);\n }\n }\n\n &__icon {\n position: absolute;\n right: 0.75rem;\n color: var(--spw-color-text-secondary, #6b7280);\n pointer-events: none;\n font-size: 1rem;\n }\n\n &__help {\n margin-top: 0.25rem;\n font-size: 0.75rem;\n line-height: 1rem;\n color: var(--spw-color-text-secondary, #6b7280);\n }\n\n &__error {\n display: flex;\n align-items: center;\n margin-top: 0.25rem;\n font-size: 0.75rem;\n line-height: 1rem;\n color: var(--spw-color-error, #dc2626);\n\n spw-icon {\n margin-right: 0.25rem;\n font-size: 0.75rem;\n }\n }\n}\n\n.qs-datepicker-container {\n box-shadow: var(--spw-effect-elevation-6);\n border: none;\n width: 320px;\n margin-top: 6px;\n .qs-controls {\n padding: 24px;\n padding-bottom: 0;\n background: none;\n margin-bottom: 16px;\n position: relative;\n }\n .qs-month-year {\n font-size: 14px;\n border: 1px solid var(--spw-colors-support-grey-grey-300);\n border-radius: 6px;\n padding: 8px 16px;\n &:hover {\n border-color: var(--spw-colors-support-grey-grey-800);\n }\n }\n .qs-arrow {\n position: absolute;\n top: 24px;\n width: 36px;\n height: 36px;\n color: transparent;\n &:before {\n content: '';\n width: 100%;\n height: 100%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-family: var(--spw-ds-font-icons-solid);\n font-weight: 700;\n font-size: 16px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: var(--spw-colors-support-grey-grey-800);\n }\n &:after {\n display: none;\n }\n &:hover {\n background: var(--spw-colors-support-grey-grey-200);\n }\n &:active {\n background: var(--spw-colors-support-grey-grey-300);\n }\n }\n .qs-left {\n right: 60px;\n &:before {\n content: '\\f053';\n }\n }\n .qs-right {\n right: 24px;\n &:before {\n content: '\\f054';\n }\n }\n .qs-squares {\n padding: 24px;\n padding-top: 0;\n gap: 4px 0;\n }\n .qs-square {\n font-size: 14px;\n text-transform: lowercase;\n height: 36px;\n }\n .qs-square:not(.qs-empty):not(.qs-disabled):not(.qs-day):not(.qs-active):hover {\n background: var(--spw-colors-support-grey-grey-400);\n }\n .qs-range-end:hover,\n .qr-range-start:hover {\n background: var(--spw-colors-support-grey-grey-800);\n }\n .qs-active,\n .qs-range-end,\n .qs-range-start,\n .qs-range-start.qs-disabled {\n background: var(--spw-colors-support-grey-grey-900);\n color: white;\n opacity: 1;\n }\n .qs-range-middle {\n background: var(--spw-colors-support-grey-grey-300);\n }\n .spw-date-range-start {\n background: var(--spw-colors-support-grey-grey-900) !important;\n color: white !important;\n opacity: 1 !important;\n font-weight: 700;\n border-radius: 4px 0 0 4px !important;\n &:hover {\n background: var(--spw-colors-support-grey-grey-800) !important;\n }\n }\n .spw-date-range-end {\n background: var(--spw-colors-support-grey-grey-900) !important;\n color: white !important;\n opacity: 1 !important;\n font-weight: 700;\n border-radius: 0 4px 4px 0 !important;\n &:hover {\n background: var(--spw-colors-support-grey-grey-800) !important;\n }\n }\n .spw-date-range-middle {\n background: var(--spw-colors-support-grey-grey-300) !important;\n border-radius: 0 !important;\n &:hover {\n background: var(--spw-colors-support-grey-grey-400) !important;\n }\n }\n .qs-day {\n font-weight: 400;\n color: var(--spw-colors-support-grey-grey-800);\n padding-bottom: 12px;\n border-radius: 0;\n position: relative;\n &:after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 68px;\n height: 1px;\n background: var(--spw-colors-support-grey-grey-300);\n }\n &:nth-child(7) {\n &:after {\n display: none;\n }\n }\n }\n .qs-overlay {\n padding: 24px;\n background: #fff;\n }\n .qs-overlay-month {\n font-size: 14px;\n color: var(--spw-colors-support-grey-grey-800);\n width: calc(100% / 4);\n }\n .qs-close {\n color: var(--spw-colors-support-grey-grey-600);\n top: 24px;\n left: 24px;\n right: auto;\n padding: 0;\n height: 40px;\n width: 32px;\n text-indent: -9999px;\n transition: all ease-in 0.2s;\n &:after {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 0;\n font-family: var(--spw-ds-font-icons-solid);\n font-weight: 700;\n content: '\\f060';\n font-size: 14px;\n text-indent: 0;\n }\n &:hover {\n color: var(--spw-colors-support-grey-grey-900);\n }\n }\n .qs-blur {\n filter: none;\n }\n .qs-overlay {\n transition: none;\n }\n .qs-overlay .qs-overlay-year {\n @extend %input;\n color: var(--spw-colors-support-grey-grey-900);\n margin-bottom: 24px;\n width: calc(100% - 80px);\n margin-left: 28px;\n }\n .qs-submit {\n position: absolute;\n text-indent: -9999px;\n top: 24px;\n right: 24px;\n width: 40px;\n height: 40px;\n border-radius: 9999px;\n border: 2px solid transparent;\n color: white;\n background: var(--spw-ds-primary);\n font-weight: 700;\n font-size: 14px;\n transition: all ease-in 0.2s;\n &:after {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-family: var(--spw-ds-font-icons-solid);\n font-weight: 700;\n content: '\\f00c';\n font-size: 14px;\n text-indent: 0;\n }\n &:hover {\n background: var(--spw-ds-variant);\n }\n &:active {\n background: var(--spw-ds-active);\n }\n &.qs-disabled {\n background: var(--spw-colors-support-grey-grey-400);\n border-color: var(--spw-colors-support-grey-grey-400);\n color: var(--spw-colors-support-grey-grey-500);\n opacity: 1;\n }\n }\n}\n","import { Component, Host, h, Prop, State, Element, Event, EventEmitter, Watch, Method, AttachInternals } from '@stencil/core';\nimport datepicker from 'js-datepicker';\n\n@Component({\n tag: 'spw-date-picker',\n styleUrl: 'spw-date-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class SpwDatePicker {\n @Element() el: HTMLSpwDatePickerElement;\n\n /** Valeur de la date sélectionnée */\n @Prop({ mutable: true, reflect: true }) value: string;\n /** Placeholder du champ de saisie */\n @Prop() placeholder: string = 'JJ/MM/AAAA';\n /** Label du champ */\n @Prop() label: string;\n /** Attribut `name` utilisé par le formulaire */\n @Prop() name: string;\n /** Indique si le champ est requis */\n @Prop() required: boolean = false;\n /** Indique si le champ est désactivé */\n @Prop() disabled: boolean = false;\n /** Format de date à afficher */\n @Prop() dateFormat: string = 'dd/MM/yyyy';\n /** Date minimale sélectionnable */\n @Prop() minDate: string;\n /** Date maximale sélectionnable */\n @Prop() maxDate: string;\n /** Jours de la semaine désactivés (0=dimanche, 1=lundi, etc.) */\n @Prop() disabledDays: string | number[] = [];\n /** Dates spécifiques désactivées (format ISO) */\n @Prop() disabledDates: string[] = [];\n /** Position du datepicker */\n @Prop() position: 'tr' | 'tl' | 'br' | 'bl' = 'bl';\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 /** Texte d'assistance à afficher sous le champ de saisie */\n @Prop() assistiveText?: string;\n\n /** Si vrai, permet de définir un range de dates */\n @Prop() range: boolean = false;\n /** Permet de définir un id pour le range de date (corrélation entre les 2 inputs) */\n @Prop() rangeId?: string;\n /** Permet de définir l'input de début pour un range */\n @Prop() isStart: boolean = false;\n\n @State() isOpen: boolean = false;\n @State() hasError: boolean = false;\n @State() internalError: string;\n @State() internalValue: string = '';\n\n /** Evenement émis au changement de date */\n @Event() dateChange: EventEmitter<{ value: string; date: Date }>;\n /** Evenement émis à l'ouverture du datepicker */\n @Event() datePickerOpen: EventEmitter<void>;\n /** Evenement émis à la fermeture du datepicker */\n @Event() datePickerClose: EventEmitter<void>;\n\n private inputElement: HTMLInputElement;\n private datepickerInstance: any;\n private uniqueId: string;\n private lastInputValue: string = '';\n private isDeleting: boolean = false;\n\n @AttachInternals() internals: ElementInternals;\n\n componentWillLoad() {\n this.uniqueId = `spw-date-picker-${Math.random().toString(36).substr(2, 9)}`;\n if (typeof this.disabledDays === 'string') {\n try {\n const parsed = JSON.parse(this.disabledDays);\n if (Array.isArray(parsed) && parsed.every(val => typeof val === 'number')) {\n this.disabledDays = parsed;\n } else {\n this.disabledDays = [];\n }\n } catch {\n this.disabledDays = [];\n }\n }\n\n const start = this.value ? this.formatDate(new Date(this.value)) : '';\n this.internalValue = start;\n this.lastInputValue = this.internalValue;\n }\n\n componentDidLoad() {\n this.initializeDatepicker();\n if (this.value) {\n const initialDate = new Date(this.value);\n if (!isNaN(initialDate.getTime())) {\n this.datepickerInstance.setDate(initialDate, true);\n this.inputElement.value = this.formatDate(initialDate);\n this.internalValue = this.formatDate(initialDate);\n }\n }\n this.internals.setFormValue(this.value ? this.value : null);\n }\n\n disconnectedCallback() {\n if (this.datepickerInstance && typeof this.datepickerInstance.remove === 'function') {\n this.datepickerInstance.remove();\n }\n }\n\n @Watch('value')\n watchValue(newValue: string) {\n if (this.datepickerInstance && newValue) {\n const date = new Date(newValue);\n if (!isNaN(date.getTime())) {\n this.datepickerInstance.setDate(date, true);\n const formattedDate = this.formatDate(date);\n this.inputElement.value = formattedDate;\n this.internalValue = formattedDate;\n this.lastInputValue = formattedDate;\n }\n } else if (this.datepickerInstance) {\n this.datepickerInstance.setDate(undefined, true);\n this.inputElement.value = '';\n this.internalValue = '';\n this.lastInputValue = '';\n }\n this.internals.setFormValue(newValue ? newValue : null);\n this.updateRangeConstraints();\n }\n\n @Watch('disabled')\n watchDisabled(isDisabled: boolean) {\n if (this.inputElement) {\n this.inputElement.disabled = isDisabled;\n }\n }\n\n @Watch('minDate')\n watchMinDate(newMinDate: string) {\n if (this.datepickerInstance && newMinDate) {\n this.datepickerInstance.setMin(new Date(newMinDate));\n } else if (this.datepickerInstance) {\n this.datepickerInstance.setMin(undefined);\n }\n }\n\n @Watch('maxDate')\n watchMaxDate(newMaxDate: string) {\n if (this.datepickerInstance && newMaxDate) {\n this.datepickerInstance.setMax(new Date(newMaxDate));\n } else if (this.datepickerInstance) {\n this.datepickerInstance.setMax(undefined);\n }\n }\n\n /** Méthode pour ouvrir le datepicker */\n @Method()\n async open() {\n if (this.datepickerInstance) {\n this.datepickerInstance.show();\n }\n }\n\n /** Méthode pour fermer le datepicker */\n @Method()\n async close() {\n if (this.datepickerInstance) {\n this.datepickerInstance.hide();\n }\n }\n\n /** Méthode pour définir la date */\n @Method()\n async setDate(date: Date | string) {\n if (this.datepickerInstance) {\n const dateObj = typeof date === 'string' ? new Date(date) : date;\n this.datepickerInstance.setDate(dateObj, true);\n }\n }\n\n /** Méthode pour récupérer la date */\n @Method()\n async getDate(): Promise<Date | null> {\n return this.datepickerInstance ? this.datepickerInstance.dateSelected : null;\n }\n\n /** Méthode pour récupérer le range de dates */\n @Method()\n async getRange(): Promise<{ start: Date | null; end: Date | null }> {\n if (this.range && this.datepickerInstance?.getRange) {\n return this.datepickerInstance.getRange();\n }\n return { start: null, end: null };\n }\n\n /** Méthode pour mettre à jour les contraintes min/max du datepicker */\n @Method()\n async updateConstraints(minDate?: Date, maxDate?: Date) {\n if (!this.datepickerInstance) return;\n\n if (minDate !== undefined) {\n if (typeof this.datepickerInstance.setMin === 'function') {\n this.datepickerInstance.setMin(minDate);\n } else {\n this.datepickerInstance.minDate = minDate;\n }\n }\n\n if (maxDate !== undefined) {\n if (typeof this.datepickerInstance.setMax === 'function') {\n this.datepickerInstance.setMax(maxDate);\n } else {\n this.datepickerInstance.maxDate = maxDate;\n }\n }\n\n if (this.isOpen && this.datepickerInstance.calendar) {\n this.datepickerInstance.hide();\n setTimeout(() => {\n this.datepickerInstance.show();\n }, 0);\n }\n }\n\n /** Méthode pour réinitialiser le datepicker */\n @Method()\n async resetInput() {\n this.value = '';\n this.internalValue = '';\n this.lastInputValue = '';\n this.internals.setFormValue(null);\n\n if (this.inputElement) {\n this.inputElement.value = '';\n }\n\n if (this.datepickerInstance) {\n this.datepickerInstance.setDate(undefined, true);\n }\n\n this.dateChange.emit({ value: '', date: null });\n this.updateRangeConstraints();\n }\n\n private toISODateString(date: Date): string {\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, '0');\n const day = `${date.getDate()}`.padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n\n private getRangeSiblings(): { start: HTMLSpwDatePickerElement | null; end: HTMLSpwDatePickerElement | null } {\n if (!this.range || !this.rangeId) return { start: null, end: null };\n\n const selector = `spw-date-picker[range][range-id=\"${this.rangeId}\"]`;\n const siblings = Array.from(document.querySelectorAll(selector)) as HTMLSpwDatePickerElement[];\n\n let start: HTMLSpwDatePickerElement | null = null;\n let end: HTMLSpwDatePickerElement | null = null;\n\n siblings.forEach(pickerEl => {\n // Accéder à l'attribut HTML pour déterminer si c'est le début ou la fin\n if (pickerEl.hasAttribute('is-start')) {\n start = pickerEl;\n } else {\n end = pickerEl;\n }\n });\n\n return { start, end };\n }\n\n private highlightRangeInCalendar() {\n if (!this.range || !this.rangeId || !this.datepickerInstance?.calendar) return;\n\n const { start, end } = this.getRangeSiblings();\n if (!start || !end) return;\n\n const startValue = start.value;\n const endValue = end.value;\n\n if (!startValue || !endValue) {\n // Pas de range complet, supprimer le highlighting\n const allDates = this.datepickerInstance.calendar.querySelectorAll('.qs-square');\n allDates.forEach((dateEl: HTMLElement) => {\n dateEl.classList.remove('spw-date-range-start', 'spw-date-range-end', 'spw-date-range-middle');\n });\n return;\n }\n\n const startDate = new Date(startValue);\n const endDate = new Date(endValue);\n\n if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) return;\n\n // Highlighter les dates dans le range\n const allDates = this.datepickerInstance.calendar.querySelectorAll('.qs-square:not(.qs-empty)');\n allDates.forEach((dateEl: HTMLElement) => {\n const dateNum = parseInt(dateEl.textContent || '0', 10);\n if (!dateNum) return;\n\n // Récupérer le mois/année actuellement affiché\n const currentMonth = this.datepickerInstance.currentMonth;\n const currentYear = this.datepickerInstance.currentYear;\n const cellDate = new Date(currentYear, currentMonth, dateNum);\n\n // Normaliser les dates pour comparer uniquement jour/mois/année (sans heures)\n const cellDateOnly = new Date(cellDate.getFullYear(), cellDate.getMonth(), cellDate.getDate());\n const startDateOnly = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate());\n const endDateOnly = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate());\n\n // Vérifier si cette date est dans le range\n if (cellDateOnly >= startDateOnly && cellDateOnly <= endDateOnly) {\n if (cellDateOnly.getTime() === startDateOnly.getTime()) {\n // Date de début\n dateEl.classList.add('spw-date-range-start');\n dateEl.classList.remove('spw-date-range-middle', 'spw-date-range-end');\n } else if (cellDateOnly.getTime() === endDateOnly.getTime()) {\n // Date de fin\n dateEl.classList.add('spw-date-range-end');\n dateEl.classList.remove('spw-date-range-middle', 'spw-date-range-start');\n } else {\n // Date au milieu\n dateEl.classList.add('spw-date-range-middle');\n dateEl.classList.remove('spw-date-range-start', 'spw-date-range-end');\n }\n } else {\n dateEl.classList.remove('spw-date-range-start', 'spw-date-range-end', 'spw-date-range-middle');\n }\n });\n }\n\n private async updateRangeConstraints() {\n if (!this.range || !this.rangeId) return;\n\n const { start, end } = this.getRangeSiblings();\n\n if (this.isStart && end) {\n await end.componentOnReady?.();\n const startDate = this.value ? new Date(this.value) : null;\n\n if (startDate && !isNaN(startDate.getTime())) {\n await end.updateConstraints(startDate, undefined);\n } else {\n const endMinDate = end.minDate ? new Date(end.minDate) : undefined;\n await end.updateConstraints(endMinDate, undefined);\n }\n }\n\n if (!this.isStart && start) {\n await start.componentOnReady?.();\n const endDate = this.value ? new Date(this.value) : null;\n\n if (endDate && !isNaN(endDate.getTime())) {\n await start.updateConstraints(undefined, endDate);\n } else {\n const startMaxDate = start.maxDate ? new Date(start.maxDate) : undefined;\n await start.updateConstraints(undefined, startMaxDate);\n }\n }\n }\n\n private unmask(value: string): string {\n return value ? value.replace(/[^0-9]/g, '') : '';\n }\n\n private applyMaskSmart(value: string): string {\n if (!value) return '';\n\n const digits = this.unmask(value);\n let result = '';\n\n for (let i = 0; i < digits.length && i < 8; i++) {\n if (i === 2 || i === 4) {\n result += '/';\n }\n result += digits[i];\n }\n\n return result;\n }\n\n private handleMaskedInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n const newValue = target.value;\n const cursorPosition = target.selectionStart || 0;\n\n this.isDeleting = newValue.length < this.lastInputValue.length;\n\n if (this.isDeleting) {\n this.internalValue = newValue;\n target.value = newValue;\n this.lastInputValue = newValue;\n\n setTimeout(() => {\n if (this.inputElement) {\n this.inputElement.setSelectionRange(cursorPosition, cursorPosition);\n }\n }, 0);\n } else {\n const oldDigitCount = this.unmask(this.lastInputValue).length;\n const maskedValue = this.applyMaskSmart(newValue);\n const newDigitCount = this.unmask(maskedValue).length;\n\n this.internalValue = maskedValue;\n target.value = maskedValue;\n this.lastInputValue = maskedValue;\n\n setTimeout(() => {\n if (this.inputElement) {\n let newCursorPos = cursorPosition;\n\n if (newDigitCount > oldDigitCount) {\n if ((newDigitCount === 3 && oldDigitCount === 2) || (newDigitCount === 5 && oldDigitCount === 4)) {\n newCursorPos = cursorPosition + 1;\n }\n }\n\n newCursorPos = Math.min(newCursorPos, maskedValue.length);\n this.inputElement.setSelectionRange(newCursorPos, newCursorPos);\n }\n }, 0);\n }\n\n const digits = this.unmask(this.internalValue);\n if (digits.length === 8) {\n const parsedDate = this.parseDate(this.internalValue);\n if (parsedDate && !isNaN(parsedDate.getTime())) {\n const isoString = this.toISODateString(parsedDate);\n this.value = isoString;\n this.internals.setFormValue(isoString);\n this.dateChange.emit({ value: isoString, date: parsedDate });\n if (this.datepickerInstance) {\n this.datepickerInstance.setDate(parsedDate, true);\n }\n }\n } else if (!this.internalValue) {\n this.value = '';\n this.internals.setFormValue(null);\n this.dateChange.emit({ value: '', date: null });\n if (this.datepickerInstance) {\n this.datepickerInstance.setDate(undefined, true);\n }\n }\n };\n\n private setupCalendarNavigation() {\n if (!this.datepickerInstance) return;\n\n const calendarEl = this.datepickerInstance.calendarContainer;\n if (!calendarEl) return;\n\n const focusableEls: any = [\n ...Array.from(calendarEl.querySelectorAll('.qs-arrow')),\n calendarEl.querySelector('.qs-month-year') as HTMLElement,\n ...Array.from(calendarEl.querySelectorAll('.qs-square:not(.qs-day):not(.qs-empty)')),\n ].filter(Boolean) as HTMLElement[];\n\n focusableEls.forEach((el: HTMLElement) => {\n el.setAttribute('tabindex', '0');\n el.addEventListener('keydown', (e: KeyboardEvent) => {\n this.handleCalendarKeyDown(e, el, focusableEls);\n });\n // if (el.classList.contains('qs-square')) {\n // el.addEventListener('click', () => {\n // setTimeout(() => this.inputElement.focus(), 100);\n // });\n // }\n });\n }\n\n private handleCalendarKeyDown(e: KeyboardEvent, currentElement: HTMLElement, focusableEls: HTMLElement[]) {\n const currentIndex = focusableEls.indexOf(currentElement);\n let newIndex = currentIndex;\n\n switch (e.key) {\n case 'ArrowRight':\n e.preventDefault();\n newIndex = Math.min(currentIndex + 1, focusableEls.length - 1);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n newIndex = Math.max(currentIndex - 1, 0);\n break;\n case 'ArrowDown':\n e.preventDefault();\n newIndex = currentElement.classList.contains('qs-square') ? Math.min(currentIndex + 7, focusableEls.length - 1) : Math.min(currentIndex + 1, focusableEls.length - 1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n newIndex = currentElement.classList.contains('qs-square') ? Math.max(currentIndex - 7, 0) : Math.max(currentIndex - 1, 0);\n break;\n case 'Home':\n e.preventDefault();\n newIndex = 0;\n break;\n case 'End':\n e.preventDefault();\n newIndex = focusableEls.length - 1;\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (currentElement.classList.contains('qs-arrow')) {\n currentElement.click();\n setTimeout(() => currentElement.focus(), 0);\n } else {\n currentElement.click();\n }\n return;\n case 'Escape':\n e.preventDefault();\n this.datepickerInstance.hide();\n this.inputElement.focus();\n return;\n }\n\n if (newIndex !== currentIndex) {\n const newElement = focusableEls[newIndex];\n if (newElement && !newElement.matches('.qs-day, .qs-disabled, .qs-empty')) {\n newElement.focus();\n }\n }\n }\n\n private initializeDatepicker() {\n if (!this.inputElement) return;\n\n const options: any = {\n position: this.position,\n startDay: 1,\n customDays: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],\n customMonths: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],\n overlayPlaceholder: 'Année',\n overlayButton: 'Valider',\n formatter: (input: HTMLInputElement, date: Date) => {\n const formattedDate = this.formatDate(date);\n input.value = formattedDate;\n this.internalValue = formattedDate;\n this.lastInputValue = formattedDate;\n },\n disabler: (date: Date) => {\n const disabledDays = this.disabledDays as number[];\n if (disabledDays.includes(date.getDay())) return true;\n const dateStr = date.toISOString().split('T')[0];\n return this.disabledDates.includes(dateStr);\n },\n onSelect: (selectedDateOrInstance: any) => {\n const selectedDate = selectedDateOrInstance instanceof Date ? selectedDateOrInstance : selectedDateOrInstance?.dateSelected;\n\n if (!selectedDate || isNaN(selectedDate.getTime())) return;\n\n const isoString = this.toISODateString(selectedDate);\n this.value = isoString;\n const formattedDate = this.formatDate(selectedDate);\n this.inputElement.value = formattedDate;\n this.internalValue = formattedDate;\n this.lastInputValue = formattedDate;\n this.internals.setFormValue(isoString);\n this.dateChange.emit({ value: isoString, date: selectedDate });\n\n this.updateRangeConstraints();\n\n // Mettre à jour le highlighting visuel du range\n setTimeout(() => {\n this.highlightRangeInCalendar();\n // Mettre aussi à jour le highlighting sur l'autre datepicker s'il est ouvert\n const { start, end } = this.getRangeSiblings();\n const sibling = this.isStart ? end : start;\n if (sibling && (sibling as any).isOpen) {\n (sibling as any).highlightRangeInCalendar?.();\n }\n }, 50);\n },\n onShow: () => {\n this.isOpen = true;\n this.datePickerOpen.emit();\n setTimeout(() => {\n this.setupCalendarNavigation();\n this.highlightRangeInCalendar();\n // Réappliquer plusieurs fois pour contrer js-datepicker\n setTimeout(() => this.highlightRangeInCalendar(), 50);\n setTimeout(() => this.highlightRangeInCalendar(), 150);\n }, 100);\n },\n onHide: () => {\n this.isOpen = false;\n this.datePickerClose.emit();\n },\n };\n\n if (this.range && this.rangeId) {\n // NOTE: On ne définit PAS options.id car js-datepicker applique alors des contraintes\n // automatiques qui sont inversées. On gère nous-mêmes les contraintes.\n // options.id = this.rangeId;\n\n const { start, end } = this.getRangeSiblings();\n\n if (this.isStart) {\n if (end && end.value) {\n const endDate = new Date(end.value);\n if (!isNaN(endDate.getTime())) {\n options.maxDate = endDate;\n }\n }\n } else {\n if (start && start.value) {\n const startDate = new Date(start.value);\n if (!isNaN(startDate.getTime())) {\n options.minDate = startDate;\n }\n }\n }\n } else {\n if (this.minDate) options.minDate = new Date(this.minDate);\n if (this.maxDate) options.maxDate = new Date(this.maxDate);\n }\n\n if (this.datepickerInstance) {\n // js-datepicker utilise remove() pour détruire l'instance\n if (typeof this.datepickerInstance.remove === 'function') {\n this.datepickerInstance.remove();\n }\n }\n\n this.datepickerInstance = datepicker(this.inputElement, options);\n\n if (this.value) {\n const initialDate = new Date(this.value);\n if (!isNaN(initialDate.getTime())) {\n try {\n this.datepickerInstance.setDate(initialDate, true);\n const formattedDate = this.formatDate(initialDate);\n this.inputElement.value = formattedDate;\n this.internalValue = formattedDate;\n this.lastInputValue = formattedDate;\n } catch (error) {\n // Si la date n'est pas valide avec les contraintes actuelles, on la laisse vide\n }\n }\n }\n }\n\n private formatDate(date: Date): string {\n if (!(date instanceof Date) || isNaN(date.getTime())) return '';\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n return this.dateFormat.replace('dd', day).replace('MM', month).replace('yyyy', year.toString());\n }\n\n private handleInputChange = (event: Event) => {\n this.handleMaskedInput(event);\n };\n\n private parseDate(dateString: string): Date | null {\n const parts = dateString.split('/');\n if (parts.length === 3) {\n const day = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10) - 1;\n const year = parseInt(parts[2], 10);\n if (!isNaN(day) && !isNaN(month) && !isNaN(year)) {\n return new Date(year, month, day);\n }\n }\n return null;\n }\n\n private handleInputFocus = () => {\n if (!this.disabled && this.datepickerInstance) {\n this.datepickerInstance.show();\n }\n };\n\n private handleKeyDown = (ev: KeyboardEvent) => {\n const target = ev.target as HTMLElement;\n const isInputFocused = target === this.inputElement;\n const isCalendarFocused = target.closest('.qs-datepicker') !== null;\n\n if (isInputFocused) {\n switch (ev.key) {\n case 'Tab':\n if (!ev.shiftKey && this.isOpen) {\n ev.preventDefault();\n ev.stopPropagation();\n setTimeout(() => {\n const calendarEl = this.datepickerInstance?.calendarContainer;\n if (calendarEl) {\n const focusableEls: HTMLElement[] = [\n ...Array.from(calendarEl.querySelectorAll('.qs-arrow')),\n calendarEl.querySelector('.qs-month-year') as HTMLElement,\n ...Array.from(calendarEl.querySelectorAll('.qs-square:not(.qs-day):not(.qs-empty)')),\n ].filter(Boolean) as HTMLElement[];\n if (focusableEls[0]) {\n focusableEls[0].focus();\n }\n }\n }, 0);\n }\n break;\n case 'Escape':\n if (this.isOpen) {\n ev.preventDefault();\n this.datepickerInstance.hide();\n this.inputElement.focus();\n }\n break;\n }\n } else if (isCalendarFocused) {\n switch (ev.key) {\n case 'Escape':\n ev.preventDefault();\n this.datepickerInstance.hide();\n this.inputElement.focus();\n break;\n case 'Tab':\n if (ev.shiftKey) {\n ev.preventDefault();\n this.inputElement.focus();\n }\n break;\n }\n }\n };\n\n formResetCallback() {\n this.value = '';\n this.internalValue = '';\n this.lastInputValue = '';\n this.internals.setFormValue(null);\n if (this.inputElement) {\n this.inputElement.value = '';\n }\n if (this.datepickerInstance) {\n this.datepickerInstance.setDate(undefined, true);\n }\n this.dateChange.emit({ value: '', date: null });\n this.updateRangeConstraints();\n }\n\n render() {\n const inputClass = {\n 'spw-date-picker__input': true,\n 'spw-date-picker__input--error': this.hasError,\n 'spw-date-picker__input--disabled': this.disabled,\n 'spw-date-picker__input--open': this.isOpen,\n };\n\n const errorMessage = this.error || this.internalError;\n\n return (\n <Host>\n <div class=\"spw-date-picker\">\n {this.label && <spw-field-label label={this.label} 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\n <div class=\"spw-date-picker__input-container\">\n <input\n ref={el => (this.inputElement = el)}\n id={this.uniqueId}\n type=\"text\"\n class={inputClass}\n value={this.internalValue}\n placeholder={this.placeholder}\n disabled={this.disabled}\n required={this.required}\n onFocus={this.handleInputFocus}\n onInput={this.handleInputChange}\n onKeyDown={this.handleKeyDown}\n aria-describedby={this.assistiveText || errorMessage ? `${this.uniqueId}-help ${this.uniqueId}-error` : undefined}\n aria-invalid={this.hasError}\n ></input>\n <spw-icon icon=\"fa-calendar\" class=\"spw-date-picker__icon\"></spw-icon>\n </div>\n\n {this.error && (\n <spw-field-message variant=\"error\" showIcon={this.showErrorIcon}>\n {this.error}\n </spw-field-message>\n )}\n {this.hint && (\n <spw-field-message variant=\"hint\" showIcon={this.showHintIcon}>\n {this.hint}\n </spw-field-message>\n )}\n {this.success && (\n <spw-field-message variant=\"success\" showIcon={this.showSuccessIcon}>\n {this.success}\n </spw-field-message>\n )}\n {this.warning && (\n <spw-field-message variant=\"warning\" showIcon={this.showWarningIcon}>\n {this.warning}\n </spw-field-message>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|