@cnamts/synapse 0.0.16-alpha → 1.0.1
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/DateFilter-BmRuzQ9Z.js +98 -0
- package/dist/NumberFilter-CnIPDHqx.js +121 -0
- package/dist/PeriodFilter-CZwZ8CnQ.js +112 -0
- package/dist/SelectFilter-Cj-GW2Cc.js +97 -0
- package/dist/TextFilter-DTxZHJwX.js +114 -0
- package/dist/{components/BackBtn → common}/constants/ExpertiseLevelEnum.d.ts +3 -0
- package/dist/components/Accordion/Accordion.d.ts +39 -0
- package/dist/components/Accordion/config.d.ts +9 -0
- package/dist/components/BackBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/BackToTopBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/ChipList/AccessibiliteItems.d.ts +1 -1
- package/dist/components/ChipList/ChipList.d.ts +1 -1
- package/dist/components/CollapsibleList/AccessibiliteItems.d.ts +1 -1
- package/dist/components/ContextualMenu/AccessibiliteItems.d.ts +1 -1
- package/dist/components/CookieBanner/AccessibiliteItems.d.ts +1 -1
- package/dist/components/CopyBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/CopyBtn/CopyBtn.d.ts +2 -0
- package/dist/components/Customs/SyBtnSelect/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SyInputSelect/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +12 -0
- package/dist/components/Customs/SySelect/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SySelect/SySelect.d.ts +43 -16
- package/dist/components/Customs/SyTextField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +17 -17
- package/dist/components/DataList/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DataListGroup/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DatePicker/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +4162 -0
- package/dist/components/DatePicker/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +176 -136
- package/dist/components/DatePicker/{DateTextInput.d.ts → DateTextInput/DateTextInput.d.ts} +48 -42
- package/dist/components/DatePicker/composables/index.d.ts +15 -0
- package/dist/components/DatePicker/composables/useDateFormatValidation.d.ts +25 -0
- package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +33 -0
- package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +16 -0
- package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +27 -0
- package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +29 -0
- package/dist/components/DatePicker/composables/useDateRangeValidation.d.ts +11 -0
- package/dist/components/DatePicker/composables/useDateSelection.d.ts +10 -0
- package/dist/components/DatePicker/composables/useDateValidation.d.ts +35 -0
- package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +16 -0
- package/dist/components/DatePicker/composables/useIconState.d.ts +17 -0
- package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +30 -0
- package/dist/components/DatePicker/composables/useInputHandler.d.ts +32 -0
- package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +33 -0
- package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +9 -0
- package/dist/components/DatePicker/composables/useTodayButton.d.ts +16 -0
- package/dist/components/DatePicker/composables/useWeekendDays.d.ts +11 -0
- package/dist/components/DatePicker/constants/messages.d.ts +29 -0
- package/dist/components/DatePicker/types.d.ts +13 -0
- package/dist/components/DiacriticPicker/DiacriticPicker.d.ts +27 -0
- package/dist/components/DiacriticPicker/config.d.ts +14 -0
- package/dist/components/DiacriticPicker/locales.d.ts +6 -0
- package/dist/components/DialogBox/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DownloadBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DownloadBtn/DownloadBtn.d.ts +1 -1
- package/dist/components/ErrorPage/AccessibiliteItems.d.ts +1 -1
- package/dist/components/ExternalLinks/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FileList/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FilePreview/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FileUpload/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FilterInline/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FilterSideBar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +395 -1
- package/dist/components/FooterBar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FooterBar/FooterBar.d.ts +1 -1
- package/dist/components/FranceConnectBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/HeaderBar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +1 -1
- package/dist/components/HeaderLoading/AccessibiliteItems.d.ts +1 -1
- package/dist/components/HeaderToolbar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/LangBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Logo/AccessibiliteItems.d.ts +1 -1
- package/dist/components/LogoBrandSection/AccessibiliteItems.d.ts +1 -1
- package/dist/components/MaintenancePage/AccessibiliteItems.d.ts +1 -1
- package/dist/components/NirField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/NirField/NirField.d.ts +34 -32
- package/dist/components/NotFoundPage/AccessibiliteItems.d.ts +1 -1
- package/dist/components/NotificationBar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/NotificationBar/NotificationBar.d.ts +1 -1
- package/dist/components/PageContainer/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PaginatedTable/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PasswordField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PasswordField/PasswordField.d.ts +1 -1
- package/dist/components/PeriodField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PeriodField/PeriodField.d.ts +235 -101
- package/dist/components/PhoneField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PhoneField/PhoneField.d.ts +1 -0
- package/dist/components/PhoneField/tests/types.d.ts +18 -0
- package/dist/components/RangeField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/RatingPicker/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SearchListField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SelectBtnField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SkipLink/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SocialMediaLinks/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SubHeader/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SyAlert/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SyTextArea/SyTextArea.d.ts +900 -0
- package/dist/components/SyTextArea/locales.d.ts +3 -0
- package/dist/components/SyTextArea/trimStartOnUpdate.d.ts +1 -0
- package/dist/components/SyTextArea/useTextActions.d.ts +13 -0
- package/dist/components/SyTextArea/wrapText.d.ts +1 -0
- package/dist/components/TableToolbar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/TableToolbar/TableToolbar.d.ts +10 -4
- package/dist/components/TableToolbar/config.d.ts +3 -2
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +647 -0
- package/dist/components/Tables/SyTable/SyTable.d.ts +666 -0
- package/dist/components/Tables/common/SyTableFilter.d.ts +126 -0
- package/dist/components/Tables/common/TableHeader.d.ts +33 -0
- package/dist/components/Tables/common/constants/StateEnum.d.ts +6 -0
- package/dist/components/Tables/common/filters/DateFilter.d.ts +121 -0
- package/dist/components/Tables/common/filters/NumberFilter.d.ts +132 -0
- package/dist/components/Tables/common/filters/PeriodFilter.d.ts +135 -0
- package/dist/components/Tables/common/filters/SelectFilter.d.ts +120 -0
- package/dist/components/Tables/common/filters/TextFilter.d.ts +132 -0
- package/dist/components/Tables/common/formatters.d.ts +17 -0
- package/dist/components/Tables/common/locales.d.ts +7 -0
- package/dist/components/Tables/common/tableAccessibilityUtils.d.ts +8 -0
- package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -0
- package/dist/components/Tables/common/tableStorageUtils.d.ts +29 -0
- package/dist/components/Tables/common/tableUtils.d.ts +42 -0
- package/dist/components/Tables/common/types.d.ts +80 -0
- package/dist/components/Tables/common/useTableFilter.d.ts +9 -0
- package/dist/components/Tables/index.d.ts +2 -0
- package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +1 -1
- package/dist/components/UserMenuBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/index.d.ts +6 -1
- package/dist/composables/date/useHolidayDay.d.ts +36 -0
- package/dist/design-system-v3.js +100 -11271
- package/dist/design-system-v3.umd.cjs +22 -1
- package/dist/designTokens/index.d.ts +3 -1
- package/dist/designTokens/tokens/cnam/cnamFonts.d.ts +140 -0
- package/dist/designTokens/tokens/pa/paFonts.d.ts +140 -0
- package/dist/designTokens/tokens/pa/paLightTheme.d.ts +1 -32
- package/dist/designTokens/utils/createFontVariables.d.ts +39 -0
- package/dist/designTokens/utils/index.d.ts +2 -1
- package/dist/main-WDqeoGM-.js +14788 -0
- package/dist/style.css +1 -1
- package/dist/utils/rules/index.d.ts +1 -0
- package/dist/utils/rules/isHolidayDay/index.d.ts +11 -0
- package/dist/utils/rules/isHolidayDay/locales.d.ts +2 -0
- package/dist/utils/rules/isRequired/index.d.ts +1 -1
- package/dist/vite-env.d.ts +12 -0
- package/package.json +2 -1
- package/src/assets/_spacers.scss +37 -1
- package/src/assets/_typography.scss +158 -0
- package/src/assets/settings.scss +19 -0
- package/src/common/constants/ExpertiseLevelEnum.ts +7 -0
- package/src/components/Accordion/Accordion.mdx +69 -0
- package/src/components/Accordion/Accordion.stories.ts +262 -0
- package/src/components/Accordion/Accordion.vue +319 -0
- package/src/components/Accordion/config.ts +9 -0
- package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +155 -0
- package/src/components/Accordion/tests/accordion.spec.ts +492 -0
- package/src/components/BackBtn/AccessibiliteItems.ts +1 -1
- package/src/components/BackToTopBtn/AccessibiliteItems.ts +1 -1
- package/src/components/ChipList/AccessibiliteItems.ts +1 -1
- package/src/components/CollapsibleList/AccessibiliteItems.ts +1 -1
- package/src/components/ContextualMenu/AccessibiliteItems.ts +1 -1
- package/src/components/CookieBanner/AccessibiliteItems.ts +1 -1
- package/src/components/CopyBtn/AccessibiliteItems.ts +1 -1
- package/src/components/CopyBtn/CopyBtn.stories.ts +189 -0
- package/src/components/CopyBtn/CopyBtn.vue +29 -1
- package/src/components/CopyBtn/tests/CopyBtn.spec.ts +102 -0
- package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +155 -1
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +97 -14
- package/src/components/Customs/SyInputSelect/tests/SyInputSelect.spec.ts +386 -106
- package/src/components/Customs/SySelect/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SySelect/SySelect.stories.ts +121 -2
- package/src/components/Customs/SySelect/SySelect.vue +25 -6
- package/src/components/Customs/SySelect/tests/SySelect.spec.ts +294 -3
- package/src/components/Customs/SyTextField/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SyTextField/SyTextField.vue +5 -3
- package/src/components/DataList/AccessibiliteItems.ts +1 -1
- package/src/components/DataListGroup/AccessibiliteItems.ts +1 -1
- package/src/components/DatePicker/AccessibiliteItems.ts +1 -1
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +212 -0
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1097 -0
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +497 -180
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +941 -0
- package/src/components/DatePicker/DatePicker/DatePicker.mdx +176 -0
- package/src/components/DatePicker/{tests → DatePicker}/DatePicker.spec.ts +1 -1
- package/src/components/DatePicker/{DatePicker.stories.ts → DatePicker/DatePicker.stories.ts} +115 -400
- package/src/components/DatePicker/{DatePicker.vue → DatePicker/DatePicker.vue} +314 -83
- package/src/components/DatePicker/DatePickerOverview.mdx +227 -0
- package/src/components/DatePicker/{DatePickerValidation.mdx → DatePickerValidationExample/DatePickerValidation.mdx} +3 -3
- package/src/components/DatePicker/{DatePickerValidation.stories.ts → DatePickerValidationExample/DatePickerValidation.stories.ts} +2 -2
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +310 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +278 -0
- package/src/components/DatePicker/{tests → DateTextInput}/DateTextInput.spec.ts +8 -7
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +916 -0
- package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +64 -0
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +572 -0
- package/src/components/DatePicker/composables/index.ts +22 -0
- package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +165 -0
- package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +359 -0
- package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +160 -0
- package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +339 -0
- package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +277 -0
- package/src/components/DatePicker/composables/tests/useDateRangeValidation.spec.ts +107 -0
- package/src/components/DatePicker/composables/tests/useDateSelection.spec.ts +171 -0
- package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +245 -0
- package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +98 -0
- package/src/components/DatePicker/composables/tests/useIconState.spec.ts +130 -0
- package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +278 -0
- package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +233 -0
- package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +100 -0
- package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +97 -0
- package/src/components/DatePicker/composables/tests/useWeekendDays.spec.ts +28 -0
- package/src/components/DatePicker/composables/useDateFormatValidation.ts +95 -0
- package/src/components/DatePicker/composables/useDateInputEditing.ts +326 -0
- package/src/components/DatePicker/composables/useDatePickerViewMode.ts +61 -0
- package/src/components/DatePicker/composables/useDatePickerVisibility.ts +146 -0
- package/src/components/DatePicker/composables/useDateRangeInput.ts +375 -0
- package/src/components/DatePicker/composables/useDateRangeValidation.ts +48 -0
- package/src/components/DatePicker/composables/useDateSelection.ts +121 -0
- package/src/components/DatePicker/composables/useDateValidation.ts +225 -0
- package/src/components/DatePicker/composables/useDisplayedDateString.ts +58 -0
- package/src/components/DatePicker/composables/useIconState.ts +53 -0
- package/src/components/DatePicker/composables/useInputBlurHandler.ts +101 -0
- package/src/components/DatePicker/composables/useInputHandler.ts +436 -0
- package/src/components/DatePicker/composables/useManualDateValidation.ts +161 -0
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +89 -0
- package/src/components/DatePicker/composables/useTodayButton.ts +43 -0
- package/src/components/DatePicker/composables/useWeekendDays.ts +21 -0
- package/src/components/DatePicker/constants/messages.ts +50 -0
- package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
- package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
- package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +172 -0
- package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +130 -0
- package/src/components/DatePicker/types.ts +15 -0
- package/src/components/DiacriticPicker/DiacriticPicker.mdx +104 -0
- package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +447 -0
- package/src/components/DiacriticPicker/DiacriticPicker.vue +262 -0
- package/src/components/DiacriticPicker/config.ts +15 -0
- package/src/components/DiacriticPicker/locales.ts +6 -0
- package/src/components/DiacriticPicker/tests/DiatriticPicker.spec.ts +132 -0
- package/src/components/DialogBox/AccessibiliteItems.ts +1 -1
- package/src/components/DialogBox/DialogBox.vue +1 -3
- package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -1
- package/src/components/ErrorPage/AccessibiliteItems.ts +1 -1
- package/src/components/ExternalLinks/AccessibiliteItems.ts +1 -1
- package/src/components/FileList/AccessibiliteItems.ts +1 -1
- package/src/components/FilePreview/AccessibiliteItems.ts +1 -1
- package/src/components/FileUpload/AccessibiliteItems.ts +1 -1
- package/src/components/FilterInline/AccessibiliteItems.ts +1 -1
- package/src/components/FilterSideBar/AccessibiliteItems.ts +1 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +108 -90
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +27 -0
- package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +114 -109
- package/src/components/FooterBar/AccessibiliteItems.ts +1 -1
- package/src/components/FooterBar/FooterBar.vue +2 -1
- package/src/components/FranceConnectBtn/AccessibiliteItems.ts +1 -1
- package/src/components/HeaderBar/AccessibiliteItems.ts +1 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +1 -1
- package/src/components/HeaderLoading/AccessibiliteItems.ts +1 -1
- package/src/components/HeaderToolbar/AccessibiliteItems.ts +1 -1
- package/src/components/LangBtn/AccessibiliteItems.ts +1 -1
- package/src/components/Logo/Accessibilite.stories.ts +4 -0
- package/src/components/Logo/AccessibiliteItems.ts +1 -1
- package/src/components/LogoBrandSection/AccessibiliteItems.ts +1 -1
- package/src/components/MaintenancePage/AccessibiliteItems.ts +1 -1
- package/src/components/NirField/AccessibiliteItems.ts +1 -1
- package/src/components/NirField/NirField.stories.ts +172 -0
- package/src/components/NirField/NirField.vue +15 -7
- package/src/components/NotFoundPage/AccessibiliteItems.ts +1 -1
- package/src/components/NotificationBar/Accessibilite.stories.ts +1 -1
- package/src/components/NotificationBar/AccessibiliteItems.ts +1 -1
- package/src/components/NotificationBar/NotificationBar.stories.ts +14 -0
- package/src/components/NotificationBar/NotificationBar.vue +26 -3
- package/src/components/NotificationBar/{options.ts → config.ts} +0 -1
- package/src/components/PageContainer/AccessibiliteItems.ts +1 -1
- package/src/components/PaginatedTable/AccessibiliteItems.ts +1 -1
- package/src/components/PaginatedTable/PaginatedTable.stories.ts +19 -0
- package/src/components/PaginatedTable/PaginatedTable.vue +51 -24
- package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -2
- package/src/components/PasswordField/AccessibiliteItems.ts +1 -1
- package/src/components/PasswordField/PasswordField.stories.ts +4 -3
- package/src/components/PasswordField/PasswordField.vue +26 -18
- package/src/components/PasswordField/tests/PasswordField.spec.ts +1 -10
- package/src/components/PeriodField/AccessibiliteItems.ts +1 -1
- package/src/components/PeriodField/PeriodField.vue +13 -1
- package/src/components/PhoneField/AccessibiliteItems.ts +1 -1
- package/src/components/PhoneField/PhoneField.stories.ts +143 -0
- package/src/components/PhoneField/PhoneField.vue +88 -30
- package/src/components/PhoneField/tests/PhoneField.additional.spec.ts +266 -0
- package/src/components/PhoneField/tests/PhoneField.spec.ts +248 -28
- package/src/components/PhoneField/tests/types.d.ts +19 -0
- package/src/components/RangeField/AccessibiliteItems.ts +1 -1
- package/src/components/RatingPicker/AccessibiliteItems.ts +1 -1
- package/src/components/SearchListField/AccessibiliteItems.ts +1 -1
- package/src/components/SelectBtnField/AccessibiliteItems.ts +1 -1
- package/src/components/SkipLink/AccessibiliteItems.ts +1 -1
- package/src/components/SocialMediaLinks/AccessibiliteItems.ts +1 -1
- package/src/components/SubHeader/AccessibiliteItems.ts +1 -1
- package/src/components/SyAlert/AccessibiliteItems.ts +1 -1
- package/src/components/SyTextArea/SyTextArea.mdx +17 -0
- package/src/components/SyTextArea/SyTextArea.stories.ts +322 -0
- package/src/components/SyTextArea/SyTextArea.vue +113 -0
- package/src/components/SyTextArea/locales.ts +3 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +194 -0
- package/src/components/SyTextArea/trimStartOnUpdate.ts +12 -0
- package/src/components/SyTextArea/useTextActions.ts +52 -0
- package/src/components/SyTextArea/wrapText.ts +42 -0
- package/src/components/TableToolbar/AccessibiliteItems.ts +1 -1
- package/src/components/TableToolbar/TableToolbar.mdx +86 -1
- package/src/components/TableToolbar/TableToolbar.stories.ts +509 -107
- package/src/components/TableToolbar/TableToolbar.vue +25 -8
- package/src/components/TableToolbar/config.ts +3 -2
- package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +35 -12
- package/src/components/Tables/SyServerTable/FilterRules.stories.ts +83 -0
- package/src/components/Tables/SyServerTable/SyServerTable.mdx +160 -0
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +2887 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +302 -0
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +450 -0
- package/src/components/Tables/SyServerTable/tests/__snapshots__/SyServerTable.spec.ts.snap +521 -0
- package/src/components/Tables/SyTable/FilterRules.stories.ts +235 -0
- package/src/components/Tables/SyTable/SyTable.mdx +129 -0
- package/src/components/Tables/SyTable/SyTable.stories.ts +1966 -0
- package/src/components/Tables/SyTable/SyTable.vue +317 -0
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +345 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/SyTable.spec.ts.snap +521 -0
- package/src/components/Tables/common/SyTableFilter.vue +342 -0
- package/src/components/Tables/common/TableHeader.vue +221 -0
- package/src/components/Tables/common/constants/StateEnum.ts +6 -0
- package/src/components/Tables/common/filters/DateFilter.vue +140 -0
- package/src/components/Tables/common/filters/NumberFilter.vue +234 -0
- package/src/components/Tables/common/filters/PeriodFilter.vue +147 -0
- package/src/components/Tables/common/filters/SelectFilter.vue +126 -0
- package/src/components/Tables/common/filters/TextFilter.vue +191 -0
- package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +187 -0
- package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +280 -0
- package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +192 -0
- package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +219 -0
- package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +260 -0
- package/src/components/Tables/common/formatters.ts +72 -0
- package/src/components/Tables/common/locales.ts +7 -0
- package/src/components/Tables/common/tableAccessibilityUtils.ts +61 -0
- package/src/components/Tables/common/tableFilterUtils.ts +327 -0
- package/src/components/Tables/common/tableStorageUtils.ts +102 -0
- package/src/components/Tables/common/tableStyles.scss +54 -0
- package/src/components/Tables/common/tableUtils.ts +115 -0
- package/src/components/Tables/common/tests/SyTableFilter.spec.ts +312 -0
- package/src/components/Tables/common/tests/resize.spec.ts +161 -0
- package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +106 -0
- package/src/components/Tables/common/tests/tableUtils.spec.ts +272 -0
- package/src/components/Tables/common/types.ts +81 -0
- package/src/components/Tables/common/useTableFilter.ts +19 -0
- package/src/components/Tables/index.ts +3 -0
- package/src/components/UploadWorkflow/AccessibiliteItems.ts +1 -1
- package/src/components/UserMenuBtn/AccessibiliteItems.ts +1 -1
- package/src/components/index.ts +6 -1
- package/src/composables/date/useDateFormatDayjs.ts +8 -3
- package/src/composables/date/useDateInitializationDayjs.ts +28 -36
- package/src/composables/date/useHolidayDay.ts +98 -0
- package/src/composables/rules/useFieldValidation.ts +16 -4
- package/src/composables/validation/useValidation.ts +2 -1
- package/src/designTokens/index.ts +4 -0
- package/src/designTokens/tokens/cnam/cnamFonts.ts +140 -0
- package/src/designTokens/tokens/pa/paFonts.ts +140 -0
- package/src/designTokens/tokens/pa/paLightTheme.ts +10 -41
- package/src/designTokens/utils/createFontVariables.ts +143 -0
- package/src/designTokens/utils/index.ts +2 -1
- package/src/stories/Accessibilite/Introduction.mdx +5 -2
- package/src/stories/Demarrer/Accueil.stories.ts +12 -3
- package/src/stories/DesignTokens/colors.stories.ts +100 -41
- package/src/utils/rules/index.ts +1 -0
- package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +52 -0
- package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +129 -0
- package/src/utils/rules/isHolidayDay/index.ts +36 -0
- package/src/utils/rules/isHolidayDay/locales.ts +5 -0
- package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +35 -0
- package/src/utils/rules/isRequired/index.ts +2 -1
- package/src/vite-env.d.ts +12 -0
- package/src/vuetifyConfig.ts +10 -3
- package/dist/components/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DataList/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FileList/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FooterBar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FranceConnectBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/HeaderBar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/HeaderLoading/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/HeaderToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/LangBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Logo/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/LogoBrandSection/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/MaintenancePage/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/NirField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/NotFoundPage/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/NotificationBar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PageContainer/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PaginatedTable/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PasswordField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PeriodField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PhoneField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/RangeField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/RatingPicker/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SearchListField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SelectBtnField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SkipLink/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SocialMediaLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SubHeader/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SyAlert/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/ChipList/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DataList/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DatePicker/DatePicker.mdx +0 -222
- package/src/components/DatePicker/DateTextInput.vue +0 -493
- package/src/components/DatePicker/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FileList/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FilePreview/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FileUpload/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Logo/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/NirField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PaginatedTable/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PeriodField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/RangeField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/RatingPicker/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SearchListField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SelectBtnField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/TableToolbar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +0 -4
- /package/dist/components/NotificationBar/{options.d.ts → config.d.ts} +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { computed, type ComputedRef } from 'vue'
|
|
2
|
+
import dayjs from 'dayjs'
|
|
3
|
+
import { type DateObjectValue } from '../types'
|
|
4
|
+
|
|
5
|
+
export interface TodayButtonProps {
|
|
6
|
+
displayTodayButton?: boolean
|
|
7
|
+
displayRange?: boolean
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface TodayButtonReturn {
|
|
11
|
+
todayInString: ComputedRef<string>
|
|
12
|
+
selectToday: (selectedDates: { value: DateObjectValue }) => void
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Composable pour gérer le bouton "Aujourd'hui" dans le DatePicker
|
|
17
|
+
*/
|
|
18
|
+
export function useTodayButton(props: TodayButtonProps): TodayButtonReturn {
|
|
19
|
+
// Computed pour le format de la date du jour
|
|
20
|
+
const todayInString = computed(() => {
|
|
21
|
+
return dayjs().locale('fr').format('dddd D MMMM').replace(/\b\w/g, l => l.toUpperCase())
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
// Fonction pour sélectionner la date du jour
|
|
25
|
+
const selectToday = (selectedDates: { value: DateObjectValue }) => {
|
|
26
|
+
const today = new Date()
|
|
27
|
+
if (props.displayRange) {
|
|
28
|
+
// Si c'est une plage de dates, on définit le même jour pour début et fin
|
|
29
|
+
selectedDates.value = [today, today]
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// Sinon, on sélectionne simplement aujourd'hui
|
|
33
|
+
selectedDates.value = today
|
|
34
|
+
}
|
|
35
|
+
// Le watcher sur selectedDates dans le composant parent se chargera de mettre à jour l'affichage
|
|
36
|
+
// et d'émettre l'événement update:modelValue
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
todayInString,
|
|
41
|
+
selectToday,
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { computed, type ComputedRef } from 'vue'
|
|
2
|
+
|
|
3
|
+
export interface WeekendDaysProps {
|
|
4
|
+
displayWeekendDays?: boolean
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface WeekendDaysReturn {
|
|
8
|
+
displayWeekendDays: ComputedRef<boolean>
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Composable pour gérer l'affichage des jours de weekend dans le DatePicker
|
|
13
|
+
*/
|
|
14
|
+
export function useWeekendDays(props: WeekendDaysProps): WeekendDaysReturn {
|
|
15
|
+
// Computed pour l'affichage des jours de weekend
|
|
16
|
+
const displayWeekendDays = computed(() => props.displayWeekendDays ?? true)
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
displayWeekendDays,
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fichier contenant toutes les constantes de textes utilisées dans les composants/composables DatePicker
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const DATE_PICKER_MESSAGES = {
|
|
6
|
+
// Labels et placeholders
|
|
7
|
+
LABEL_DEFAULT: 'Date',
|
|
8
|
+
PLACEHOLDER_DEFAULT: 'Sélectionner une date',
|
|
9
|
+
|
|
10
|
+
// Messages d'erreur
|
|
11
|
+
ERROR_REQUIRED: 'La date est requise.',
|
|
12
|
+
ERROR_INVALID_FORMAT: 'Le format de la date est invalide.',
|
|
13
|
+
ERROR_INVALID_DATE: 'La date saisie est invalide.',
|
|
14
|
+
ERROR_INCOMPLETE_DATE: 'La date est incomplète.',
|
|
15
|
+
ERROR_INVALID_RANGE: 'La plage de dates est invalide.',
|
|
16
|
+
ERROR_START_DATE_MISSING: 'La date de début est manquante.',
|
|
17
|
+
ERROR_END_DATE_MISSING: 'La date de fin est manquante.',
|
|
18
|
+
ERROR_END_BEFORE_START: 'La date de fin doit être postérieure à la date de début.',
|
|
19
|
+
ERROR_INVALID_FORMAT_START: 'Format de date invalide pour la date de début',
|
|
20
|
+
ERROR_INVALID_FORMAT_END: 'Format de date invalide pour la date de fin',
|
|
21
|
+
|
|
22
|
+
// Messages de succès
|
|
23
|
+
SUCCESS_VALID_DATE: 'La date est valide.',
|
|
24
|
+
|
|
25
|
+
// Messages d'accessibilité
|
|
26
|
+
ARIA_DATE_INPUT: 'Date en cours de saisie',
|
|
27
|
+
ARIA_CALENDAR_BUTTON: 'Ouvrir le calendrier',
|
|
28
|
+
ARIA_TODAY_BUTTON: 'Sélectionner aujourd\'hui',
|
|
29
|
+
|
|
30
|
+
// Boutons et actions
|
|
31
|
+
BUTTON_TODAY: 'Aujourd\'hui',
|
|
32
|
+
BUTTON_CLEAR: 'Effacer',
|
|
33
|
+
BUTTON_CLOSE: 'Fermer',
|
|
34
|
+
|
|
35
|
+
// Formats de date
|
|
36
|
+
FORMAT_DEFAULT: 'DD/MM/YYYY',
|
|
37
|
+
|
|
38
|
+
// Descriptions des mois pour l'accessibilité
|
|
39
|
+
MONTH_NAMES: [
|
|
40
|
+
'janvier', 'février', 'mars', 'avril', 'mai', 'juin',
|
|
41
|
+
'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre',
|
|
42
|
+
],
|
|
43
|
+
|
|
44
|
+
// Descriptions des jours pour l'accessibilité
|
|
45
|
+
DAY_NAMES: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
|
|
46
|
+
|
|
47
|
+
// Autres messages
|
|
48
|
+
DATE_SEPARATOR: '/',
|
|
49
|
+
RANGE_SEPARATOR: ' - ',
|
|
50
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
2
|
import { ref, computed, watch } from 'vue'
|
|
3
|
-
import DatePicker from '@/components/DatePicker/DatePicker.vue'
|
|
3
|
+
import DatePicker from '@/components/DatePicker/DatePicker/DatePicker.vue'
|
|
4
4
|
import { useDateFormat } from '@/composables/date/useDateFormat'
|
|
5
5
|
|
|
6
6
|
const { parseDate } = useDateFormat()
|
|
@@ -157,15 +157,15 @@
|
|
|
157
157
|
Validation bidirectionnelle entre deux DatePickers
|
|
158
158
|
</h1>
|
|
159
159
|
|
|
160
|
-
<
|
|
160
|
+
<div class="text-body-2 mb-4">
|
|
161
161
|
Ce composant démontre la validation bidirectionnelle entre deux DatePickers. Les règles de validation sont appliquées dans les deux sens :
|
|
162
|
-
<ul>
|
|
162
|
+
<ul class="ml-4">
|
|
163
163
|
<li>La date de fin doit être postérieure ou égale à la date de début</li>
|
|
164
164
|
<li>La date de début doit être antérieure ou égale à la date de fin</li>
|
|
165
165
|
<li>Lorsque la date de début change, la validation de la date de fin est mise à jour</li>
|
|
166
166
|
<li>Lorsque la date de fin change, la validation de la date de début est mise à jour</li>
|
|
167
167
|
</ul>
|
|
168
|
-
</
|
|
168
|
+
</div>
|
|
169
169
|
|
|
170
170
|
<div class="date-range-container mb-6">
|
|
171
171
|
<div class="date-picker-wrapper">
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import ComplexDatePicker from '../ComplexDatePicker/ComplexDatePicker.vue'
|
|
4
|
+
|
|
5
|
+
// Valeurs pour les différents exemples
|
|
6
|
+
const standardDate = ref<string | null>(null)
|
|
7
|
+
const americanDate = ref<string | null>(null)
|
|
8
|
+
const isoDate = ref<string | null>(null)
|
|
9
|
+
const dotDate = ref<string | null>(null)
|
|
10
|
+
const requiredDate = ref<string | null>(null)
|
|
11
|
+
const dateRange = ref<[string, string] | null>(null)
|
|
12
|
+
const birthDate = ref<string | null>(null)
|
|
13
|
+
const formattedDate = ref<string | null>(null)
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<div class="playground-container">
|
|
18
|
+
<h1>ComplexDatePicker Playground</h1>
|
|
19
|
+
|
|
20
|
+
<div class="demo-section">
|
|
21
|
+
<h2>Format standard (DD/MM/YYYY)</h2>
|
|
22
|
+
<ComplexDatePicker
|
|
23
|
+
v-model="standardDate"
|
|
24
|
+
placeholder="Date standard"
|
|
25
|
+
format="DD/MM/YYYY"
|
|
26
|
+
class="date-picker"
|
|
27
|
+
/>
|
|
28
|
+
<div class="value-display">
|
|
29
|
+
Valeur: {{ standardDate || 'Non définie' }}
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div class="demo-section">
|
|
34
|
+
<h2>Format américain (MM/DD/YYYY)</h2>
|
|
35
|
+
<ComplexDatePicker
|
|
36
|
+
v-model="americanDate"
|
|
37
|
+
placeholder="Date américaine"
|
|
38
|
+
format="MM/DD/YYYY"
|
|
39
|
+
class="date-picker"
|
|
40
|
+
/>
|
|
41
|
+
<div class="value-display">
|
|
42
|
+
Valeur: {{ americanDate || 'Non définie' }}
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<div class="demo-section">
|
|
47
|
+
<h2>Format ISO (YYYY-MM-DD)</h2>
|
|
48
|
+
<ComplexDatePicker
|
|
49
|
+
v-model="isoDate"
|
|
50
|
+
placeholder="Date ISO"
|
|
51
|
+
format="YYYY-MM-DD"
|
|
52
|
+
class="date-picker"
|
|
53
|
+
/>
|
|
54
|
+
<div class="value-display">
|
|
55
|
+
Valeur: {{ isoDate || 'Non définie' }}
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div class="demo-section">
|
|
60
|
+
<h2>Format avec séparateur point (DD.MM.YYYY)</h2>
|
|
61
|
+
<ComplexDatePicker
|
|
62
|
+
v-model="dotDate"
|
|
63
|
+
placeholder="Date avec points"
|
|
64
|
+
format="DD.MM.YYYY"
|
|
65
|
+
class="date-picker"
|
|
66
|
+
/>
|
|
67
|
+
<div class="value-display">
|
|
68
|
+
Valeur: {{ dotDate || 'Non définie' }}
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<div class="demo-section">
|
|
73
|
+
<h2>Champ requis</h2>
|
|
74
|
+
<ComplexDatePicker
|
|
75
|
+
v-model="requiredDate"
|
|
76
|
+
placeholder="Date requise"
|
|
77
|
+
format="DD/MM/YYYY"
|
|
78
|
+
required
|
|
79
|
+
class="date-picker"
|
|
80
|
+
/>
|
|
81
|
+
<div class="value-display">
|
|
82
|
+
Valeur: {{ requiredDate || 'Non définie' }}
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<div class="demo-section">
|
|
87
|
+
<h2>Plage de dates</h2>
|
|
88
|
+
<ComplexDatePicker
|
|
89
|
+
v-model="dateRange"
|
|
90
|
+
placeholder="Plage de dates"
|
|
91
|
+
format="DD/MM/YYYY"
|
|
92
|
+
display-range
|
|
93
|
+
class="date-picker"
|
|
94
|
+
/>
|
|
95
|
+
<div class="value-display">
|
|
96
|
+
Valeur: {{ dateRange ? JSON.stringify(dateRange) : 'Non définie' }}
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<div class="demo-section">
|
|
101
|
+
<h2>Date de naissance (année d'abord)</h2>
|
|
102
|
+
<ComplexDatePicker
|
|
103
|
+
v-model="birthDate"
|
|
104
|
+
placeholder="Date de naissance"
|
|
105
|
+
format="DD/MM/YYYY"
|
|
106
|
+
is-birth-date
|
|
107
|
+
class="date-picker"
|
|
108
|
+
/>
|
|
109
|
+
<div class="value-display">
|
|
110
|
+
Valeur: {{ birthDate || 'Non définie' }}
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<div class="demo-section">
|
|
115
|
+
<h2>Format d'affichage vs format de retour</h2>
|
|
116
|
+
<ComplexDatePicker
|
|
117
|
+
v-model="formattedDate"
|
|
118
|
+
placeholder="Date avec format de retour"
|
|
119
|
+
format="DD/MM/YYYY"
|
|
120
|
+
date-format-return="YYYY-MM-DD"
|
|
121
|
+
class="date-picker"
|
|
122
|
+
/>
|
|
123
|
+
<div class="value-display">
|
|
124
|
+
Valeur: {{ formattedDate || 'Non définie' }}
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</template>
|
|
129
|
+
|
|
130
|
+
<style lang="scss" scoped>
|
|
131
|
+
.playground-container {
|
|
132
|
+
max-width: 800px;
|
|
133
|
+
margin: 0 auto;
|
|
134
|
+
padding: 20px;
|
|
135
|
+
font-family: Roboto, sans-serif;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
h1 {
|
|
139
|
+
text-align: center;
|
|
140
|
+
margin-bottom: 30px;
|
|
141
|
+
color: #2c3e50;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
h2 {
|
|
145
|
+
color: #2c3e50;
|
|
146
|
+
font-size: 1.2rem;
|
|
147
|
+
margin-bottom: 10px;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.demo-section {
|
|
151
|
+
margin-bottom: 30px;
|
|
152
|
+
padding: 20px;
|
|
153
|
+
border-radius: 8px;
|
|
154
|
+
background-color: #f8f9fa;
|
|
155
|
+
box-shadow: 0 2px 4px rgb(0 0 0 / 10%);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.date-picker {
|
|
159
|
+
margin-bottom: 10px;
|
|
160
|
+
width: 100%;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.value-display {
|
|
164
|
+
margin-top: 10px;
|
|
165
|
+
padding: 10px;
|
|
166
|
+
background-color: #e9ecef;
|
|
167
|
+
border-radius: 4px;
|
|
168
|
+
font-family: monospace;
|
|
169
|
+
white-space: pre-wrap;
|
|
170
|
+
word-break: break-all;
|
|
171
|
+
}
|
|
172
|
+
</style>
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref, computed } from 'vue'
|
|
3
|
+
import { useFieldValidation } from '@/composables/rules/useFieldValidation'
|
|
4
|
+
import { useHolidayDay } from '@/composables/date/useHolidayDay'
|
|
5
|
+
|
|
6
|
+
const selectedDate = ref('')
|
|
7
|
+
const { generateRules } = useFieldValidation()
|
|
8
|
+
const { isHolidayDay, getJoursFeries } = useHolidayDay()
|
|
9
|
+
|
|
10
|
+
// Année courante pour afficher les jours fériés
|
|
11
|
+
const currentYear = new Date().getFullYear()
|
|
12
|
+
|
|
13
|
+
// Création de la règle qui vérifie qu'une date n'est pas un jour férié
|
|
14
|
+
const holidayRules = generateRules([
|
|
15
|
+
{
|
|
16
|
+
type: 'isHolidayDay',
|
|
17
|
+
options: {
|
|
18
|
+
fieldName: 'La date',
|
|
19
|
+
message: 'Vous ne pouvez pas sélectionner un jour férié.',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
])
|
|
23
|
+
|
|
24
|
+
// Vérification si la date sélectionnée est un jour férié (pour l'affichage)
|
|
25
|
+
const isDateHoliday = computed(() => {
|
|
26
|
+
if (!selectedDate.value) return false
|
|
27
|
+
return isHolidayDay(selectedDate.value)
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
// Liste des jours fériés de l'année courante
|
|
31
|
+
const currentYearHolidays = computed(() => {
|
|
32
|
+
const holidays = getJoursFeries(currentYear)
|
|
33
|
+
return Array.from(holidays).sort()
|
|
34
|
+
})
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<template>
|
|
38
|
+
<div class="date-picker-holiday-example">
|
|
39
|
+
<h2>DatePicker avec règle de validation pour jours fériés</h2>
|
|
40
|
+
<p>
|
|
41
|
+
Cet exemple montre comment utiliser la règle <code>isHolidayDay</code> pour empêcher
|
|
42
|
+
la sélection de jours fériés dans un DatePicker.
|
|
43
|
+
</p>
|
|
44
|
+
|
|
45
|
+
<div class="date-picker-container">
|
|
46
|
+
<DatePicker
|
|
47
|
+
v-model="selectedDate"
|
|
48
|
+
label="Date (pas de jour férié)"
|
|
49
|
+
:rules="holidayRules"
|
|
50
|
+
error-messages
|
|
51
|
+
placeholder="Sélectionnez une date non fériée"
|
|
52
|
+
/>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<div class="info-container mt-4">
|
|
56
|
+
<h3>Informations</h3>
|
|
57
|
+
<p>Date sélectionnée : <strong>{{ selectedDate || 'Aucune' }}</strong></p>
|
|
58
|
+
|
|
59
|
+
<div
|
|
60
|
+
v-if="selectedDate"
|
|
61
|
+
class="mt-2"
|
|
62
|
+
>
|
|
63
|
+
<p
|
|
64
|
+
v-if="isDateHoliday"
|
|
65
|
+
class="error-text"
|
|
66
|
+
>
|
|
67
|
+
⚠️ Le {{ selectedDate }} est un jour férié.
|
|
68
|
+
</p>
|
|
69
|
+
<p
|
|
70
|
+
v-else
|
|
71
|
+
class="success-text"
|
|
72
|
+
>
|
|
73
|
+
✅ Le {{ selectedDate }} n'est pas un jour férié.
|
|
74
|
+
</p>
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div
|
|
78
|
+
v-if="currentYearHolidays.length"
|
|
79
|
+
class="holiday-list mt-4"
|
|
80
|
+
>
|
|
81
|
+
<h4>Jours fériés {{ currentYear }} :</h4>
|
|
82
|
+
<ul>
|
|
83
|
+
<li
|
|
84
|
+
v-for="(date, index) in currentYearHolidays"
|
|
85
|
+
:key="index"
|
|
86
|
+
>
|
|
87
|
+
{{ date }}
|
|
88
|
+
</li>
|
|
89
|
+
</ul>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</template>
|
|
94
|
+
|
|
95
|
+
<style scoped>
|
|
96
|
+
.date-picker-holiday-example {
|
|
97
|
+
max-width: 800px;
|
|
98
|
+
margin: 0 auto;
|
|
99
|
+
padding: 20px;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.date-picker-container {
|
|
103
|
+
max-width: 400px;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.info-container {
|
|
107
|
+
background-color: #f5f5f5;
|
|
108
|
+
padding: 15px;
|
|
109
|
+
border-radius: 4px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.error-text {
|
|
113
|
+
color: #d32f2f;
|
|
114
|
+
font-weight: bold;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.success-text {
|
|
118
|
+
color: #2e7d32;
|
|
119
|
+
font-weight: bold;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.holiday-list {
|
|
123
|
+
max-height: 200px;
|
|
124
|
+
overflow-y: auto;
|
|
125
|
+
background-color: #fff;
|
|
126
|
+
padding: 10px;
|
|
127
|
+
border-radius: 4px;
|
|
128
|
+
border: 1px solid #e0e0e0;
|
|
129
|
+
}
|
|
130
|
+
</style>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types pour les composants DatePicker
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Type représentant une valeur de date qui peut être une Date, un tableau de Dates ou null
|
|
7
|
+
* Utilisé pour les opérations internes du DatePicker avec des objets Date
|
|
8
|
+
*/
|
|
9
|
+
export type DateObjectValue = Date | (Date | null)[] | null
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Alias pour maintenir la compatibilité avec le code existant
|
|
13
|
+
* @deprecated Utilisez DateObjectValue pour les objets Date ou importez DateValue depuis useDateInitializationDayjs pour les chaînes
|
|
14
|
+
*/
|
|
15
|
+
export type DateValue = DateObjectValue
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import {Controls, Canvas, Meta, Source} from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
import * as DiacriticPickerStories from './DiacriticPicker.stories';
|
|
4
|
+
|
|
5
|
+
<Meta of={DiacriticPickerStories} />
|
|
6
|
+
|
|
7
|
+
# DiacriticPicker
|
|
8
|
+
|
|
9
|
+
Le composant `DiacriticPicker` permet d'ajouter facilement des caractères diacritiques (accents, cédilles, etc.) à un champ de texte ou un textarea. Il ajoute un bouton à côté du champ qui ouvre une boîte de dialogue avec des caractères diacritiques à insérer.
|
|
10
|
+
|
|
11
|
+
<Canvas of={DiacriticPickerStories.Default} />
|
|
12
|
+
|
|
13
|
+
# API
|
|
14
|
+
|
|
15
|
+
<Controls of={DiacriticPickerStories.Default} />
|
|
16
|
+
|
|
17
|
+
## Fonctionnalités
|
|
18
|
+
|
|
19
|
+
### Insertion de caractères
|
|
20
|
+
Cliquer sur un caractère dans la boîte de dialogue l'insère à la position actuelle du curseur dans le champ de texte.
|
|
21
|
+
|
|
22
|
+
### Raccourci clavier
|
|
23
|
+
Le composant offre un raccourci clavier pour changer rapidement entre les variantes d'un même caractère :
|
|
24
|
+
- Tapez un caractère (par exemple "e")
|
|
25
|
+
- Appuyez sur la touche `=` pour parcourir ses variantes diacritiques (é, è, ê, ë)
|
|
26
|
+
|
|
27
|
+
## Personnalisation
|
|
28
|
+
|
|
29
|
+
Le composant utilise le système de personnalisation Vuetify pour les éléments suivants :
|
|
30
|
+
- `btn` : Style du bouton d'ouverture
|
|
31
|
+
- `dialog` : Style de la boîte de dialogue
|
|
32
|
+
|
|
33
|
+
# Exemple d'utilisation
|
|
34
|
+
|
|
35
|
+
<Source dark code={`
|
|
36
|
+
<script setup>
|
|
37
|
+
import { DiacriticPicker } from '@cnamts/synapse'
|
|
38
|
+
import { ref } from 'vue'
|
|
39
|
+
|
|
40
|
+
const nom = ref('')
|
|
41
|
+
</script>
|
|
42
|
+
|
|
43
|
+
<template>
|
|
44
|
+
<DiacriticPicker v-model="nom">
|
|
45
|
+
<v-text-field
|
|
46
|
+
id="diacritic-input"
|
|
47
|
+
v-model="nom"
|
|
48
|
+
label="Nom avec accents"
|
|
49
|
+
color="primary"
|
|
50
|
+
variant="outlined"
|
|
51
|
+
/>
|
|
52
|
+
</DiacriticPicker>
|
|
53
|
+
</template>
|
|
54
|
+
`} />
|
|
55
|
+
|
|
56
|
+
## Utilisation avec un textarea
|
|
57
|
+
|
|
58
|
+
Le composant fonctionne également avec un textarea pour les textes plus longs.
|
|
59
|
+
|
|
60
|
+
<Source dark code={`
|
|
61
|
+
<script setup>
|
|
62
|
+
import { DiacriticPicker } from '@cnamts/synapse'
|
|
63
|
+
import { ref } from 'vue'
|
|
64
|
+
|
|
65
|
+
const adresse = ref('')
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<template>
|
|
69
|
+
<DiacriticPicker v-model="adresse">
|
|
70
|
+
<v-textarea
|
|
71
|
+
id="diacritic-input"
|
|
72
|
+
v-model="adresse"
|
|
73
|
+
label="Adresse"
|
|
74
|
+
color="primary"
|
|
75
|
+
variant="outlined"
|
|
76
|
+
auto-grow
|
|
77
|
+
/>
|
|
78
|
+
</DiacriticPicker>
|
|
79
|
+
</template>
|
|
80
|
+
`} />
|
|
81
|
+
|
|
82
|
+
## Personnalisation des caractères diacritiques
|
|
83
|
+
|
|
84
|
+
Vous pouvez personnaliser la liste des caractères diacritiques affichés dans la boîte de dialogue.
|
|
85
|
+
|
|
86
|
+
<Source dark code={`
|
|
87
|
+
<script setup>
|
|
88
|
+
import { DiacriticPicker } from '@cnamts/synapse'
|
|
89
|
+
import { ref } from 'vue'
|
|
90
|
+
|
|
91
|
+
const text = ref('')
|
|
92
|
+
const caracteres = ['é', 'è', 'ê', 'à', 'ç', 'ù']
|
|
93
|
+
</script>
|
|
94
|
+
|
|
95
|
+
<template>
|
|
96
|
+
<DiacriticPicker v-model="text" :diacritics="caracteres">
|
|
97
|
+
<v-text-field
|
|
98
|
+
v-model="text"
|
|
99
|
+
label="Texte avec accents personnalisés"
|
|
100
|
+
variant="outlined"
|
|
101
|
+
/>
|
|
102
|
+
</DiacriticPicker>
|
|
103
|
+
</template>
|
|
104
|
+
`} />
|