@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spw-date-picker.js","sourceRoot":"","sources":["../../../src/components/spw-date-picker/spw-date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
|
1
|
+
{"version":3,"file":"spw-date-picker.js","sourceRoot":"","sources":["../../../src/components/spw-date-picker/spw-date-picker.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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 connectedCallback() {\n if (!this.datepickerInstance && this.inputElement) {\n requestAnimationFrame(() => {\n this.initializeDatepicker();\n });\n }\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 if (this.inputElement) {\n this.inputElement.value = this.formatDate(initialDate);\n this.internalValue = this.formatDate(initialDate);\n }\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 setTimeout(() => {\n if (!this.el.isConnected && this.datepickerInstance) {\n this.datepickerInstance.remove();\n this.datepickerInstance = null;\n }\n }, 100);\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 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 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 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 const currentMonth = this.datepickerInstance.currentMonth;\n const currentYear = this.datepickerInstance.currentYear;\n const cellDate = new Date(currentYear, currentMonth, dateNum);\n\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 if (cellDateOnly >= startDateOnly && cellDateOnly <= endDateOnly) {\n if (cellDateOnly.getTime() === startDateOnly.getTime()) {\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 dateEl.classList.add('spw-date-range-end');\n dateEl.classList.remove('spw-date-range-middle', 'spw-date-range-start');\n } else {\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) {\n const shadowInput = this.el.shadowRoot?.querySelector('input[type=\"text\"]') as HTMLInputElement;\n if (shadowInput) {\n this.inputElement = shadowInput;\n } else {\n return;\n }\n }\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 setTimeout(() => {\n this.highlightRangeInCalendar();\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 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 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 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 }\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) return;\n\n if (!this.datepickerInstance) {\n this.initializeDatepicker();\n }\n\n if (this.datepickerInstance && typeof this.datepickerInstance.show === 'function') {\n try {\n this.datepickerInstance.show();\n } catch (error) {\n console.warn(\"Erreur lors de l'ouverture du datepicker, réinitialisation...\", error);\n this.datepickerInstance = null;\n this.initializeDatepicker();\n if (this.datepickerInstance && typeof this.datepickerInstance.show === 'function') {\n this.datepickerInstance.show();\n }\n }\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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;--spw-link-color:var(--spw-ds-primary);--spw-link-hover-color:var(--spw-ds-variant);--spw-link-active-color:var(--spw-ds-active);--spw-link-font-weight:700;--spw-link-padding:6px;box-sizing:border-box;display:inline;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-link{border-radius:4px;color:var(--spw-link-color);cursor:pointer;display:inline;font-weight:var(--spw-link-font-weight);text-decoration:none}.spw-link--surface-dark{color:var(--spw-ds-white)}.spw-link__inner{border-bottom:1px solid var(--spw-link-color);display:inline}.spw-link--surface-dark .spw-link__inner{border-bottom:1px solid var(--spw-ds-white)}.spw-link:focus-visible{outline:3px solid #000;outline-offset:2px}.spw-link:hover{color:var(--spw-link-hover-color)}.spw-link:hover .spw-link__inner{border-bottom:2px solid var(--spw-link-hover-color)}.spw-link:active{color:var(--spw-link-active-color)}.spw-link:active .spw-link__inner{border-bottom:2px solid var(--spw-link-active-color)}.spw-link[aria-disabled=true]{color:var(--spw-color-themes-grey-grey-600);cursor:not-allowed;pointer-events:none}.spw-link--surface-dark:hover{color:var(--spw-ds-white)}.spw-link--surface-dark:hover .spw-link__inner{border-bottom:2px solid var(--spw-ds-white)}.spw-link--surface-dark:active{color:var(--spw-ds-white)}.spw-link--surface-dark:active .spw-link__inner{border-bottom:2px solid var(--spw-ds-white)}.spw-link--surface-dark[aria-disabled=true]{color:var(--spw-ds-white);opacity:.5}.spw-link--has-icon-right spw-icon{margin-left:var(--spw-link-padding);margin-right:4px}.spw-link--has-icon-left spw-icon{margin-left:4px;margin-right:var(--spw-link-padding)}
|
|
2
|
+
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;--spw-link-color:var(--spw-ds-primary);--spw-link-hover-color:var(--spw-ds-variant);--spw-link-active-color:var(--spw-ds-active);--spw-link-font-weight:700;--spw-link-padding:6px;box-sizing:border-box;display:inline;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-link{border-radius:4px;color:var(--spw-link-color);cursor:pointer;display:inline;font-weight:var(--spw-link-font-weight);text-decoration:none}.spw-link--surface-dark{color:var(--spw-ds-white)}.spw-link__inner{border-bottom:1px solid var(--spw-link-color);display:inline;overflow-wrap:break-word}.spw-link--surface-dark .spw-link__inner{border-bottom:1px solid var(--spw-ds-white)}.spw-link:focus-visible{outline:3px solid #000;outline-offset:2px}.spw-link:hover{color:var(--spw-link-hover-color)}.spw-link:hover .spw-link__inner{border-bottom:2px solid var(--spw-link-hover-color)}.spw-link:active{color:var(--spw-link-active-color)}.spw-link:active .spw-link__inner{border-bottom:2px solid var(--spw-link-active-color)}.spw-link[aria-disabled=true]{color:var(--spw-color-themes-grey-grey-600);cursor:not-allowed;pointer-events:none}.spw-link--surface-dark:hover{color:var(--spw-ds-white)}.spw-link--surface-dark:hover .spw-link__inner{border-bottom:2px solid var(--spw-ds-white)}.spw-link--surface-dark:active{color:var(--spw-ds-white)}.spw-link--surface-dark:active .spw-link__inner{border-bottom:2px solid var(--spw-ds-white)}.spw-link--surface-dark[aria-disabled=true]{color:var(--spw-ds-white);opacity:.5}.spw-link--has-icon-right spw-icon{margin-left:var(--spw-link-padding);margin-right:4px}.spw-link--has-icon-left spw-icon{margin-left:4px;margin-right:var(--spw-link-padding)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-pagination__item button,.spw-pagination__item--dots{border-radius:32px;font-size:14px;font-weight:700;height:32px;line-height:32px;min-width:32px;text-align:center}.spw-pagination__item button:focus-visible,.spw-pagination__item--dots:focus-visible{box-shadow:0 0 0 5px #000;outline:3px solid #fff;outline-offset:-1px}.spw-pagination{align-items:center;display:flex;flex-direction:column}@media (min-width:768px){.spw-pagination{align-items:flex-start}}.spw-pagination ul{align-items:center;display:flex;padding:0}.spw-pagination__item{margin-right:12px}.spw-pagination__item spw-icon{font-size:18px}.spw-pagination__item button{background:none;border:none;color:var(--spw-color-themes-grey-grey-900);cursor:pointer;margin:0;padding:0 6px}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):hover button{background:var(--spw-color-themes-grey-grey-200)}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):active button{background:var(--spw-color-themes-grey-grey-300)}.spw-pagination__item--arrow button{align-items:center;display:flex;gap:8px;padding:0 12px;text-decoration:underline}.spw-pagination__item--arrow button:hover{text-decoration:none}.spw-pagination__item--dots{align-items:center;background:none;color:var(--spw-color-themes-grey-grey-400);cursor:default;display:inline-flex;justify-content:center;position:relative;top:3px}.spw-pagination__item--dots spw-icon{font-size:16px}.spw-pagination__item--desktop{display:none}@media (min-width:768px){.spw-pagination__item--desktop{display:inline-block}}.spw-pagination__item--active button{background:var(--spw-ds-primary);color:#fff}.spw-pagination__input spw-text-field{--spw-input-height:32px;--spw-input-padding:0 4px;--spw-input-text-align:center;--spw-input-font-size:14px;width:
|
|
2
|
+
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-pagination__item button,.spw-pagination__item--dots{border-radius:32px;font-size:14px;font-weight:700;height:32px;line-height:32px;min-width:32px;text-align:center}.spw-pagination__item button:focus-visible,.spw-pagination__item--dots:focus-visible{box-shadow:0 0 0 5px #000;outline:3px solid #fff;outline-offset:-1px}.spw-pagination{align-items:center;display:flex;flex-direction:column}@media (min-width:768px){.spw-pagination{align-items:flex-start}}.spw-pagination ul{align-items:center;display:flex;padding:0}.spw-pagination__item{margin-right:12px}.spw-pagination__item spw-icon{font-size:18px}.spw-pagination__item button{background:none;border:none;color:var(--spw-color-themes-grey-grey-900);cursor:pointer;margin:0;padding:0 6px}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):hover button{background:var(--spw-color-themes-grey-grey-200)}.spw-pagination__item:not(.spw-pagination__item--active,.spw-pagination__item--dots,.spw-pagination__item--disabled):active button{background:var(--spw-color-themes-grey-grey-300)}.spw-pagination__item--arrow button{align-items:center;display:flex;gap:8px;padding:0 12px;text-decoration:underline}.spw-pagination__item--arrow button:hover{text-decoration:none}.spw-pagination__item--dots{align-items:center;background:none;color:var(--spw-color-themes-grey-grey-400);cursor:default;display:inline-flex;justify-content:center;position:relative;top:3px}.spw-pagination__item--dots spw-icon{font-size:16px}.spw-pagination__item--desktop{display:none}@media (min-width:768px){.spw-pagination__item--desktop{display:inline-block}}.spw-pagination__item--active button{background:var(--spw-ds-primary);color:#fff}.spw-pagination__input spw-text-field{--spw-input-height:32px;--spw-input-padding:0 4px;--spw-input-text-align:center;--spw-input-font-size:14px;width:36px}.spw-pagination__mobile-arrows{margin-top:12px}@media (min-width:768px){.spw-pagination__mobile-arrows{display:none!important}}.spw-pagination__total-pages{font-size:14px;margin:0 12px 0 6px}.spw-tw-mb-10{margin-bottom:2.5rem}.spw-tw-mb-6{margin-bottom:1.5rem}.spw-tw-ml-2{margin-left:.5rem}.spw-tw-mr-4{margin-right:1rem}.spw-tw-mt-12{margin-top:3rem}.-spw-tw-mt-1{margin-top:-.25rem}.spw-tw-mb-2{margin-bottom:.5rem}
|
|
@@ -24,6 +24,23 @@ export class SpwPagination {
|
|
|
24
24
|
calculateTotalPages() {
|
|
25
25
|
this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);
|
|
26
26
|
}
|
|
27
|
+
onItemsPerPageChange() {
|
|
28
|
+
this.currentPage = 1;
|
|
29
|
+
this.inputPageValue = '1';
|
|
30
|
+
this.pageChanged.emit(this.currentPage);
|
|
31
|
+
}
|
|
32
|
+
onTotalItemsChange() {
|
|
33
|
+
const newTotalPages = Math.ceil(this.totalItems / this.itemsPerPage);
|
|
34
|
+
if (this.currentPage > newTotalPages || this.currentPage === 0) {
|
|
35
|
+
this.currentPage = 1;
|
|
36
|
+
this.inputPageValue = '1';
|
|
37
|
+
this.pageChanged.emit(this.currentPage);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Méthode publique pour définir la page courante */
|
|
41
|
+
async setPage(page) {
|
|
42
|
+
this.goToPage(page);
|
|
43
|
+
}
|
|
27
44
|
goToPage(page) {
|
|
28
45
|
if (page !== this.currentPage && !this.isDisabled && page >= 1 && page <= this.totalPages) {
|
|
29
46
|
this.currentPage = page;
|
|
@@ -68,13 +85,6 @@ export class SpwPagination {
|
|
|
68
85
|
}
|
|
69
86
|
}
|
|
70
87
|
}
|
|
71
|
-
calculateWidth() {
|
|
72
|
-
const length = this.inputPageValue.length;
|
|
73
|
-
if (length <= 1) {
|
|
74
|
-
return '3ch';
|
|
75
|
-
}
|
|
76
|
-
return `${length + 1}ch`;
|
|
77
|
-
}
|
|
78
88
|
calculatePageRange() {
|
|
79
89
|
const pages = [];
|
|
80
90
|
const { currentPage, totalPages, isMobile } = this;
|
|
@@ -146,12 +156,12 @@ export class SpwPagination {
|
|
|
146
156
|
const pages = this.calculatePageRange();
|
|
147
157
|
const showPrevArrow = this.currentPage > 1;
|
|
148
158
|
const showNextArrow = this.currentPage < this.totalPages;
|
|
149
|
-
const prevArrow = showPrevArrow && (h("li", { key: '
|
|
150
|
-
const nextArrow = showNextArrow && (h("li", { key: '
|
|
151
|
-
const prevArrowMobile = this.currentPage > 1 && (h("li", { key: '
|
|
152
|
-
const nextArrowMobile = this.currentPage < this.totalPages && (h("li", { key: '
|
|
153
|
-
const mobileArrows = (h("ul", { key: '
|
|
154
|
-
return (h(Host, { key: '
|
|
159
|
+
const prevArrow = showPrevArrow && (h("li", { key: 'c96747975f1283f426b16fc5d6b9169641bf937a', class: "spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow" }, h("button", { key: '2cb14838bb36158b08708be2a6c851eab28d8a9e', onClick: () => this.goToPage(this.currentPage - 1) }, h("spw-icon", { key: '4a97d865f50b82f807b699d2c9962cadb2fa3c49', icon: "fa-chevron-left" }), " ", h("span", { key: '85d4eba965c575bf620ac2775fc8b8ab91582c53', class: "spw-pagination__item-arrow-text" }, "Pr\u00E9c\u00E9dent"))));
|
|
160
|
+
const nextArrow = showNextArrow && (h("li", { key: 'db5e31a07af299158c0730b2c8ffdc647eb9c798', class: "spw-pagination__item spw-pagination__item--desktop spw-pagination__item--arrow" }, h("button", { key: 'a2c031078bce4993152b5441e149c00d4633cefe', onClick: () => this.goToPage(this.currentPage + 1) }, h("span", { key: '28cdbfbcca8698294fae48d72a3d0a8932f0a94f', class: "spw-pagination__item-arrow-text" }, "Suivant"), " ", h("spw-icon", { key: '8af477a9a0eb495234278335eca66b7ca0b06fbe', icon: "fa-chevron-right" }))));
|
|
161
|
+
const prevArrowMobile = this.currentPage > 1 && (h("li", { key: '7509af0d29a02f64d67717753d71f2aa05349177', class: "spw-pagination__item spw-pagination__item--arrow" }, h("button", { key: 'c3707cdd586dd519eaa00621eed632f73c5b00b6', onClick: () => this.goToPage(this.currentPage - 1) }, h("spw-icon", { key: 'f1fcf011715c381330865d20f1628ef24edb1778', icon: "fa-chevron-left" }), " ", h("span", { key: 'b9753065430534df7f5b499d97bf4bbad12c32d5' }, "Pr\u00E9c\u00E9dent"))));
|
|
162
|
+
const nextArrowMobile = this.currentPage < this.totalPages && (h("li", { key: '0c3fcbc4f482b151ef5355c2cd24378a7a2c7af3', class: "spw-pagination__item spw-pagination__item--arrow" }, h("button", { key: 'f363b0de0131d011336fccdbf17dc9bc2b5eca15', onClick: () => this.goToPage(this.currentPage + 1), disabled: this.currentPage >= this.totalPages }, h("span", { key: '74df65c99c48fc1aec8084359866227ecdd26dbc' }, "Suivant"), " ", h("spw-icon", { key: '98e057e8cb6318ea06c2543fb4eae8500fcef87c', icon: "fa-chevron-right" }))));
|
|
163
|
+
const mobileArrows = (h("ul", { key: 'a4bff20ae94b1b94d70a8781cf311997c54c87e7', class: "spw-pagination__mobile-arrows" }, prevArrowMobile, nextArrowMobile));
|
|
164
|
+
return (h(Host, { key: 'fc202908905cb6da3eea73312068961b60cc776b' }, h("div", { key: '351bc8518011e937ee51c4831ac13797be51a6cb', class: this.getPaginationClass() }, this.variant === 'input' && (h(Fragment, { key: '684feca5a1724c030f21733850370eaf87153c13' }, h("ul", { key: '14de6cc555d4cab07ef9cb8dbdc0d3e83a25f67b' }, prevArrow, h("li", { key: '825297b0b82ef635497f3470ffcc5478646a558d', class: "spw-pagination__input" }, h("spw-text-field", { key: '3010c66645025021ca8b678b1dedcc65810e3742', value: this.inputPageValue, type: "text", onInput: event => this.handleInputChange(event), onKeyDown: event => this.handleKeyDown(event), disabled: this.isDisabled })), h("li", { key: '4273e7a738ef59ff77229580d89effeaeda18091', class: "spw-pagination__total-pages" }, "sur ", this.totalPages, " pages"), nextArrow), mobileArrows)), this.variant === 'numbers' && (h(Fragment, { key: '159503f57df6936053bbffeb4ed28bd01dff38ff' }, h("ul", { key: '87e707dd1060d3c3ccb6367f99e1c6cefabf99b8' }, prevArrow, pages.map(({ page, class: pageClass }) => {
|
|
155
165
|
if (page === '...') {
|
|
156
166
|
return (h("li", { class: `spw-pagination__item spw-pagination__item--dots ${pageClass}` }, h("spw-icon", { icon: "fa-ellipsis" })));
|
|
157
167
|
}
|
|
@@ -300,6 +310,31 @@ export class SpwPagination {
|
|
|
300
310
|
}
|
|
301
311
|
}];
|
|
302
312
|
}
|
|
313
|
+
static get methods() {
|
|
314
|
+
return {
|
|
315
|
+
"setPage": {
|
|
316
|
+
"complexType": {
|
|
317
|
+
"signature": "(page: number) => Promise<void>",
|
|
318
|
+
"parameters": [{
|
|
319
|
+
"name": "page",
|
|
320
|
+
"type": "number",
|
|
321
|
+
"docs": ""
|
|
322
|
+
}],
|
|
323
|
+
"references": {
|
|
324
|
+
"Promise": {
|
|
325
|
+
"location": "global",
|
|
326
|
+
"id": "global::Promise"
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"return": "Promise<void>"
|
|
330
|
+
},
|
|
331
|
+
"docs": {
|
|
332
|
+
"text": "M\u00E9thode publique pour d\u00E9finir la page courante",
|
|
333
|
+
"tags": []
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
}
|
|
303
338
|
static get watchers() {
|
|
304
339
|
return [{
|
|
305
340
|
"propName": "totalItems",
|
|
@@ -310,6 +345,12 @@ export class SpwPagination {
|
|
|
310
345
|
}, {
|
|
311
346
|
"propName": "currentPage",
|
|
312
347
|
"methodName": "calculateTotalPages"
|
|
348
|
+
}, {
|
|
349
|
+
"propName": "itemsPerPage",
|
|
350
|
+
"methodName": "onItemsPerPageChange"
|
|
351
|
+
}, {
|
|
352
|
+
"propName": "totalItems",
|
|
353
|
+
"methodName": "onTotalItemsChange"
|
|
313
354
|
}];
|
|
314
355
|
}
|
|
315
356
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spw-pagination.js","sourceRoot":"","sources":["../../../src/components/spw-pagination/spw-pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
|
1
|
+
{"version":3,"file":"spw-pagination.js","sourceRoot":"","sources":["../../../src/components/spw-pagination/spw-pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Fragment, Prop, Host, h, Event, EventEmitter, Watch, State, Method } 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 @Watch('itemsPerPage')\n onItemsPerPageChange() {\n this.currentPage = 1;\n this.inputPageValue = '1';\n this.pageChanged.emit(this.currentPage);\n }\n\n @Watch('totalItems')\n onTotalItemsChange() {\n const newTotalPages = Math.ceil(this.totalItems / this.itemsPerPage);\n if (this.currentPage > newTotalPages || this.currentPage === 0) {\n this.currentPage = 1;\n this.inputPageValue = '1';\n this.pageChanged.emit(this.currentPage);\n }\n }\n\n /** Méthode publique pour définir la page courante */\n @Method()\n async setPage(page: number): Promise<void> {\n this.goToPage(page);\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 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 ></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"]}
|