@cnamts/synapse 0.0.12-alpha → 0.0.14-alpha
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/{src/components → components}/BackBtn/BackBtn.d.ts +4 -1
- package/dist/components/CookiesSelection/CookiesSelection.d.ts +611 -0
- package/dist/{src/components → components}/CopyBtn/config.d.ts +1 -0
- package/dist/{src/components → components}/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
- package/dist/components/Customs/SySelect/SySelect.d.ts +1534 -0
- package/dist/{src/components → components}/Customs/SyTextField/SyTextField.d.ts +6 -4
- package/dist/{src/components → components}/DatePicker/DatePicker.d.ts +60 -66
- package/dist/{src/components → components}/DatePicker/DateTextInput.d.ts +47 -50
- package/dist/components/DialogBox/DialogBox.d.ts +274 -0
- package/dist/{src/components → components}/DownloadBtn/DownloadBtn.d.ts +7 -0
- package/dist/components/DownloadBtn/locales.d.ts +3 -0
- package/dist/components/FilterInline/AccessibiliteItems.d.ts +30 -0
- package/dist/{src/components → components}/FilterInline/FilterInline.d.ts +2 -3
- package/dist/{src/components → components}/FilterSideBar/FilterSideBar.d.ts +1 -1
- package/dist/{src/components → components}/FranceConnectBtn/locales.d.ts +1 -0
- package/dist/{src/components → components}/HeaderToolbar/HeaderToolbar.d.ts +5 -1
- package/dist/{src/components → components}/NirField/NirField.d.ts +39 -28
- package/dist/{src/components → components}/NotificationBar/NotificationBar.d.ts +5 -5
- package/dist/{src/components → components}/PasswordField/PasswordField.d.ts +6 -4
- package/dist/{src/components → components}/PeriodField/PeriodField.d.ts +223 -211
- package/dist/{src/components → components}/PhoneField/PhoneField.d.ts +49 -1
- package/dist/components/SyAlert/AccessibiliteItems.d.ts +29 -0
- package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +4 -0
- package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +29 -0
- package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +783 -0
- package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +4 -0
- package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +4 -0
- package/dist/{src/components → components}/index.d.ts +4 -0
- package/dist/composables/date/useDateFormat.d.ts +26 -0
- package/dist/composables/date/useDateInitialization.d.ts +18 -0
- package/dist/composables/date/useDatePickerAccessibility.d.ts +9 -0
- package/dist/{src/composables → composables}/useFilterable/useFilterable.d.ts +1 -1
- package/dist/{src/composables → composables}/validation/useValidation.d.ts +1 -0
- package/dist/design-system-v3.js +4959 -3902
- package/dist/design-system-v3.umd.cjs +1 -1
- package/dist/{src/designTokens → designTokens}/tokens/cnam/cnamColors.d.ts +5 -10
- package/dist/{src/designTokens → designTokens}/tokens/cnam/cnamLightTheme.d.ts +0 -2
- package/dist/{src/designTokens → designTokens}/tokens/pa/paColors.d.ts +5 -10
- package/dist/{src/designTokens → designTokens}/tokens/pa/paLightTheme.d.ts +4 -5
- package/dist/{src/main.d.ts → main.d.ts} +1 -0
- package/dist/style.css +1 -1
- package/dist/utils/formatDate/index.d.ts +3 -0
- package/dist/utils/functions/validation/isDateAfter/index.d.ts +2 -0
- package/dist/utils/functions/validation/isDateBefore/index.d.ts +2 -0
- package/dist/utils/functions/validation/isDateInRange/index.d.ts +3 -0
- package/dist/utils/functions/validation/isDateValid/index.d.ts +9 -0
- package/dist/utils/functions/validation/isWeekend/index.d.ts +3 -0
- package/dist/utils/parseDate/index.d.ts +3 -0
- package/dist/utils/rules/doMatchPattern/index.d.ts +3 -0
- package/dist/utils/rules/index.d.ts +11 -0
- package/dist/utils/rules/isDateValid/index.d.ts +4 -0
- package/dist/utils/rules/isExactLength/index.d.ts +3 -0
- package/dist/utils/rules/isExactLength/locales.d.ts +2 -0
- package/dist/utils/rules/isMaxLength/index.d.ts +3 -0
- package/dist/utils/rules/isMaxLength/locales.d.ts +2 -0
- package/dist/utils/rules/isMinLength/index.d.ts +3 -0
- package/dist/utils/rules/isMinLength/locales.d.ts +2 -0
- package/dist/utils/rules/isNotAfterDate/index.d.ts +3 -0
- package/dist/utils/rules/isNotAfterToday/index.d.ts +4 -0
- package/dist/utils/rules/isNotAfterToday/locales.d.ts +2 -0
- package/dist/utils/rules/isNotBeforeDate/index.d.ts +3 -0
- package/dist/utils/rules/isNotBeforeDate/locales.d.ts +2 -0
- package/dist/utils/rules/isNotBeforeToday/index.d.ts +4 -0
- package/dist/utils/rules/isNotBeforeToday/locales.d.ts +2 -0
- package/dist/utils/rules/isRequired/index.d.ts +4 -0
- package/dist/utils/rules/isRequired/locales.d.ts +2 -0
- package/dist/utils/rules/isValidEmail/index.d.ts +4 -0
- package/dist/utils/rules/isValidEmail/locales.d.ts +2 -0
- package/dist/{src/vuetifyConfig.d.ts → vuetifyConfig.d.ts} +1 -0
- package/package.json +10 -7
- package/src/assets/_radius.scss +12 -6
- package/src/assets/settings.scss +8 -0
- package/src/components/BackBtn/BackBtn.stories.ts +34 -6
- package/src/components/BackBtn/BackBtn.vue +17 -8
- package/src/components/BackBtn/tests/BackBtn.spec.ts +2 -2
- package/src/components/BackBtn/tests/__snapshots__/BackBtn.spec.ts.snap +39 -3
- package/src/components/BackToTopBtn/tests/__snapshots__/BackToTopBtn.spec.ts.snap +98 -6
- package/src/components/ChipList/ChipList.stories.ts +26 -27
- package/src/components/ChipList/ChipList.vue +6 -1
- package/src/components/ChipList/config.ts +1 -0
- package/src/components/ContextualMenu/tests/__snapshots__/ContextualMenu.spec.ts.snap +31 -5
- package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +570 -101
- package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +2 -2
- package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +28 -2
- package/src/components/CookiesSelection/CookiesTable/tests/__snapshots__/CookiesTable.spec.ts.snap +13 -1
- package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +568 -99
- package/src/components/CopyBtn/CopyBtn.stories.ts +2 -2
- package/src/components/CopyBtn/CopyBtn.vue +28 -22
- package/src/components/CopyBtn/config.ts +2 -1
- package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +28 -3
- package/src/components/Customs/SyBtnSelect/SyBtnSelect.mdx +1 -1
- package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +6 -5
- package/src/components/Customs/SyBtnSelect/tests/SyBtnSelect.spec.ts +2 -2
- package/src/components/Customs/SyInputSelect/SyInputSelect.mdx +1 -1
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +3 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +4 -0
- package/src/components/Customs/SySelect/SySelect.mdx +1 -1
- package/src/components/Customs/SySelect/SySelect.vue +31 -6
- package/src/components/Customs/SyTextField/SyTextField.mdx +2 -2
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +241 -2
- package/src/components/Customs/SyTextField/SyTextField.vue +9 -6
- package/src/components/DataList/DataList.vue +2 -2
- package/src/components/DataList/DataListLoading/DataListLoading.vue +2 -2
- package/src/components/DataList/DataListLoading/tests/DataListLoading.spec.ts +1 -1
- package/src/components/DataList/tests/DataList.spec.ts +10 -10
- package/src/components/DataListGroup/tests/DataListGroup.spec.ts +1 -1
- package/src/components/DataListItem/DataListItem.vue +9 -9
- package/src/components/DataListItem/tests/DataListItem.spec.ts +5 -5
- package/src/components/DatePicker/DatePicker.mdx +1 -1
- package/src/components/DatePicker/DatePicker.stories.ts +187 -15
- package/src/components/DatePicker/DatePicker.vue +161 -355
- package/src/components/DatePicker/DateTextInput.vue +97 -257
- package/src/components/DatePicker/tests/DatePicker.spec.ts +118 -48
- package/src/components/DatePicker/tests/DateTextInput.spec.ts +206 -10
- package/src/components/DialogBox/DialogBox.vue +4 -4
- package/src/components/DialogBox/tests/DialogBox.spec.ts +1 -1
- package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +158 -19
- package/src/components/DownloadBtn/DownloadBtn.stories.ts +18 -4
- package/src/components/DownloadBtn/DownloadBtn.vue +37 -3
- package/src/components/DownloadBtn/locales.ts +3 -0
- package/src/components/DownloadBtn/tests/__snapshots__/DownloadBtn.spec.ts.snap +77 -6
- package/src/components/ErrorPage/ErrorPage.vue +2 -2
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +212 -38
- package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +796 -86
- package/src/components/FileList/Accessibilite.stories.ts +1 -1
- package/src/components/FileList/AccessibiliteItems.ts +22 -0
- package/src/components/FilePreview/tests/FilePreview.spec.ts +1 -1
- package/src/components/FilePreview/tests/__snapshots__/FilePreview.spec.ts.snap +27 -5
- package/src/components/FileUpload/FileUpload.stories.ts +9 -7
- package/src/components/FilterInline/Accessibilite.mdx +14 -0
- package/src/components/FilterInline/Accessibilite.stories.ts +216 -0
- package/src/components/FilterInline/AccessibiliteItems.ts +132 -0
- package/src/components/FilterInline/FilterInline.stories.ts +308 -2
- package/src/components/FilterInline/FilterInline.vue +3 -3
- package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +235 -21
- package/src/components/FilterSideBar/Accessibilite.mdx +14 -0
- package/src/components/FilterSideBar/Accessibilite.stories.ts +216 -0
- package/src/components/FilterSideBar/AccessibiliteItems.ts +153 -0
- package/src/components/FilterSideBar/FilterSideBar.vue +1 -1
- package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +144 -15
- package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +92 -18
- package/src/components/FranceConnectBtn/FranceConnectBtn.vue +18 -21
- package/src/components/FranceConnectBtn/locales.ts +2 -0
- package/src/components/FranceConnectBtn/tests/FranceConnectBtn.spec.ts +1 -1
- package/src/components/FranceConnectBtn/tests/__snapshots__/FranceConnectBtn.spec.ts.snap +235 -26
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/tests/__snapshots__/HeaderMenuItem.spec.ts.snap +5 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/HeaderBurgerMenu.spec.ts.snap +20 -6
- package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +68 -37
- package/src/components/HeaderToolbar/HeaderToolbar.mdx +1 -1
- package/src/components/HeaderToolbar/HeaderToolbar.vue +346 -117
- package/src/components/HeaderToolbar/tests/{HeaderToolbar.spec.ts → HeaderToolBar.spec.ts} +2 -2
- package/src/components/LangBtn/LangBtn.vue +1 -0
- package/src/components/LangBtn/tests/__snapshots__/LangBtn.spec.ts.snap +41 -3
- package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +55 -8
- package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +10 -1
- package/src/components/NirField/NirField.stories.ts +172 -7
- package/src/components/NirField/NirField.vue +16 -14
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +229 -37
- package/src/components/NotificationBar/NotificationBar.mdx +2 -2
- package/src/components/NotificationBar/NotificationBar.stories.ts +59 -11
- package/src/components/NotificationBar/NotificationBar.vue +42 -114
- package/src/components/NotificationBar/tests/NotificationBar.spec.ts +28 -33
- package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +30 -3
- package/src/components/PageContainer/tests/__snapshots__/PageContainer.spec.ts.snap +16 -3
- package/src/components/PaginatedTable/PaginatedTable.vue +6 -10
- package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +731 -94
- package/src/components/PasswordField/PasswordField.stories.ts +204 -17
- package/src/components/PasswordField/PasswordField.vue +9 -6
- package/src/components/PeriodField/PeriodField.stories.ts +227 -131
- package/src/components/PeriodField/PeriodField.vue +203 -152
- package/src/components/PeriodField/tests/PeriodField.spec.ts +146 -0
- package/src/components/PhoneField/PhoneField.stories.ts +174 -0
- package/src/components/PhoneField/PhoneField.vue +81 -17
- package/src/components/PhoneField/tests/PhoneField.spec.ts +40 -0
- package/src/components/RangeField/RangeSlider/tests/__snapshots__/rangeSlider.spec.ts.snap +80 -17
- package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +981 -162
- package/src/components/RatingPicker/EmotionPicker/tests/__snapshots__/EmotionPicker.spec.ts.snap +634 -25
- package/src/components/RatingPicker/NumberPicker/tests/__snapshots__/NumberPicker.spec.ts.snap +477 -38
- package/src/components/RatingPicker/RatingPicker.stories.ts +7 -7
- package/src/components/RatingPicker/StarsPicker/tests/__snapshots__/StarsPicker.spec.ts.snap +218 -10
- package/src/components/RatingPicker/tests/__snapshots__/RatingPicker.spec.ts.snap +476 -41
- package/src/components/SearchListField/SearchListField.stories.ts +2 -2
- package/src/components/SelectBtnField/SelectBtnField.stories.ts +1 -1
- package/src/components/SelectBtnField/SelectBtnField.vue +11 -15
- package/src/components/SelectBtnField/config.ts +1 -1
- package/src/components/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +881 -65
- package/src/components/SkipLink/tests/__snapshots__/skipLink.spec.ts.snap +15 -1
- package/src/components/SocialMediaLinks/tests/__snapshots__/SocialMediaLinks.spec.ts.snap +110 -16
- package/src/components/SubHeader/SubHeader.stories.ts +1 -1
- package/src/components/SubHeader/tests/SubHeader.spec.ts +1 -1
- package/src/components/SyAlert/tests/__snapshots__/SyAlert.spec.ts.snap +78 -6
- package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +1034 -124
- package/src/components/UploadWorkflow/Accessibilite.mdx +14 -0
- package/src/components/UploadWorkflow/Accessibilite.stories.ts +216 -0
- package/src/components/UploadWorkflow/AccessibiliteItems.ts +192 -0
- package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +11 -11
- package/src/components/UploadWorkflow/UploadWorkflow.vue +2 -2
- package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +328 -29
- package/src/components/Usages/tests/Usages.spec.ts +183 -0
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +8 -8
- package/src/components/index.ts +4 -0
- package/src/composables/date/tests/useDateFormat.spec.ts +67 -0
- package/src/composables/date/tests/useDateInitialization.spec.ts +89 -0
- package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +180 -0
- package/src/composables/date/useDateFormat.ts +94 -0
- package/src/composables/date/useDateInitialization.ts +92 -0
- package/src/composables/date/useDatePickerAccessibility.ts +123 -0
- package/src/composables/rules/tests/useFieldValidation.spec.ts +385 -4
- package/src/composables/useFilterable/useFilterable.ts +5 -4
- package/src/composables/validation/useValidation.ts +15 -0
- package/src/designTokens/tokens/cnam/cnamColors.ts +5 -10
- package/src/designTokens/tokens/cnam/cnamLightTheme.ts +0 -2
- package/src/designTokens/tokens/cnam/cnamSemantic.ts +3 -3
- package/src/designTokens/tokens/pa/paColors.ts +5 -10
- package/src/designTokens/tokens/pa/paLightTheme.ts +4 -5
- package/src/designTokens/tokens/pa/paSemantic.ts +3 -3
- package/src/main.ts +1 -0
- package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +28 -0
- package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +2 -2
- package/src/stories/Accessibilite/Audit/RGAA.mdx +6 -6
- package/src/stories/Accessibilite/Introduction.mdx +2 -1
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +1 -1
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +1 -1
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +8 -11
- package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +77 -0
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +9 -3
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +2 -2
- package/src/stories/Demarrer/Introduction.stories.ts +3 -3
- package/src/stories/Demarrer/Releases.mdx +8 -0
- package/src/stories/Demarrer/Releases.stories.ts +66 -0
- package/src/stories/DesignTokens/ColorDisplay.vue +58 -0
- package/src/stories/DesignTokens/Colors.mdx +81 -212
- package/src/stories/DesignTokens/Conteneurs.stories.ts +3 -3
- package/src/stories/DesignTokens/colors.stories.ts +1078 -0
- package/src/stories/GuideDuDev/LesBreackingChanges.mdx +36 -0
- package/src/stories/GuideDuDev/UtiliserLesRules.mdx +32 -10
- package/src/utils/formatDate/index.ts +6 -0
- package/src/utils/formatDate/tests/formatDate.spec.ts +18 -0
- package/src/utils/functions/validation/isDateAfter/index.ts +9 -0
- package/src/utils/functions/validation/isDateAfter/tests/isDateAfter.spec.ts +18 -0
- package/src/utils/functions/validation/isDateBefore/index.ts +9 -0
- package/src/utils/functions/validation/isDateBefore/tests/isDateBefore.spec.ts +23 -0
- package/src/utils/functions/validation/isDateInRange/index.ts +22 -0
- package/src/utils/functions/validation/isDateInRange/tests/isDateInRange.spec.ts +28 -0
- package/src/utils/functions/validation/isDateValid/index.ts +67 -0
- package/src/utils/functions/validation/isDateValid/tests/isDateValid.spec.ts +46 -0
- package/src/utils/functions/validation/isEmailValid/index.ts +9 -0
- package/src/utils/functions/validation/isWeekend/index.ts +10 -0
- package/src/utils/functions/validation/isWeekend/tests/isWeekend.spec.ts +16 -0
- package/src/utils/parseDate/index.ts +29 -0
- package/src/utils/parseDate/tests/parseDate.spec.ts +52 -0
- package/src/utils/rules/Rules.mdx +16 -0
- package/src/utils/rules/doMatchPattern/DoMachPattern.mdx +66 -0
- package/src/utils/rules/doMatchPattern/DoMatchPattern.stories.ts +106 -0
- package/src/utils/rules/doMatchPattern/index.ts +28 -0
- package/src/utils/rules/doMatchPattern/locales.ts +5 -0
- package/src/utils/rules/doMatchPattern/tests/matchPattern.spec.ts +38 -0
- package/src/utils/rules/index.ts +11 -0
- package/src/utils/rules/isDateValid/IsDateValid.mdx +87 -0
- package/src/utils/rules/isDateValid/IsDateValid.stories.ts +113 -0
- package/src/utils/rules/isDateValid/index.ts +32 -0
- package/src/utils/rules/isDateValid/locales.ts +10 -0
- package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +27 -0
- package/src/utils/rules/isExactLength/IsExactLenght.mdx +68 -0
- package/src/utils/rules/isExactLength/IsExactLength.stories.ts +151 -0
- package/src/utils/rules/{exactLength → isExactLength}/index.ts +2 -4
- package/src/utils/rules/isExactLength/tests/exactLength.spec.ts +48 -0
- package/src/utils/rules/isMaxLength/IsMaxLength.mdx +68 -0
- package/src/utils/rules/isMaxLength/IsMaxLength.stories.ts +152 -0
- package/src/utils/rules/isMaxLength/index.ts +30 -0
- package/src/utils/rules/isMaxLength/locales.ts +6 -0
- package/src/utils/rules/isMaxLength/tests/isMaxLength.spec.ts +42 -0
- package/src/utils/rules/isMinLength/IsMinLength.mdx +68 -0
- package/src/utils/rules/isMinLength/IsMinLength.stories.ts +152 -0
- package/src/utils/rules/isMinLength/index.ts +30 -0
- package/src/utils/rules/isMinLength/locales.ts +6 -0
- package/src/utils/rules/isMinLength/tests/isMinLength.spec.ts +42 -0
- package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +68 -0
- package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +109 -0
- package/src/utils/rules/isNotAfterDate/index.ts +25 -0
- package/src/utils/rules/isNotAfterDate/locales.ts +6 -0
- package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +25 -0
- package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +83 -0
- package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +110 -0
- package/src/utils/rules/isNotAfterToday/index.ts +28 -0
- package/src/utils/rules/isNotAfterToday/locales.ts +5 -0
- package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +30 -0
- package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +68 -0
- package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.stories.ts +114 -0
- package/src/utils/rules/isNotBeforeDate/index.ts +25 -0
- package/src/utils/rules/isNotBeforeDate/locales.ts +6 -0
- package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +25 -0
- package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +83 -0
- package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +110 -0
- package/src/utils/rules/isNotBeforeToday/index.ts +28 -0
- package/src/utils/rules/isNotBeforeToday/locales.ts +5 -0
- package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +36 -0
- package/src/utils/rules/isRequired/IsRequired.mdx +81 -0
- package/src/utils/rules/isRequired/IsRequired.stories.ts +101 -0
- package/src/utils/rules/{required → isRequired}/index.ts +3 -3
- package/src/utils/rules/{required/tests/index.spec.ts → isRequired/tests/isRequred.spec.ts} +9 -9
- package/src/utils/rules/isValidEmail/IsValidEmail.mdx +81 -0
- package/src/utils/rules/isValidEmail/IsValidEmail.stories.ts +101 -0
- package/src/utils/rules/{email → isValidEmail}/index.ts +3 -5
- package/src/utils/rules/{email/tests/email.spec.ts → isValidEmail/tests/isValidEmail.spec.ts} +5 -5
- package/dist/src/components/Amelipro/types/languages.d.ts +0 -6
- package/dist/src/components/Amelipro/types/types.d.ts +0 -65
- package/dist/src/components/BackBtn/tests/BackBtn.spec.d.ts +0 -1
- package/dist/src/components/BackToTopBtn/tests/BackToTopBtn.spec.d.ts +0 -1
- package/dist/src/components/ChipList/tests/chipList.spec.d.ts +0 -1
- package/dist/src/components/CollapsibleList/tests/CollapsibleList.spec.d.ts +0 -1
- package/dist/src/components/ContextualMenu/tests/ContextualMenu.spec.d.ts +0 -1
- package/dist/src/components/CookieBanner/tests/CookieBanner.spec.d.ts +0 -1
- package/dist/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.d.ts +0 -1
- package/dist/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.spec.d.ts +0 -1
- package/dist/src/components/CookiesSelection/tests/CookiesSelection.spec.d.ts +0 -1
- package/dist/src/components/CopyBtn/tests/CopyBtn.spec.d.ts +0 -1
- package/dist/src/components/Customs/SyBtnSelect/tests/SyBtnSelect.spec.d.ts +0 -1
- package/dist/src/components/Customs/SyInputSelect/tests/SyInputSelect.spec.d.ts +0 -1
- package/dist/src/components/Customs/SySelect/tests/SySelect.spec.d.ts +0 -1
- package/dist/src/components/Customs/SyTextField/tests/SyTextField.spec.d.ts +0 -1
- package/dist/src/components/DataList/DataListLoading/tests/DataListLoading.spec.d.ts +0 -1
- package/dist/src/components/DataList/tests/DataList.spec.d.ts +0 -1
- package/dist/src/components/DataListGroup/tests/DataListGroup.spec.d.ts +0 -1
- package/dist/src/components/DataListItem/tests/DataListItem.spec.d.ts +0 -1
- package/dist/src/components/DatePicker/tests/DatePicker.spec.d.ts +0 -1
- package/dist/src/components/DatePicker/tests/DateTextInput.spec.d.ts +0 -1
- package/dist/src/components/DialogBox/tests/DialogBox.spec.d.ts +0 -1
- package/dist/src/components/DownloadBtn/tests/DownloadBtn.spec.d.ts +0 -1
- package/dist/src/components/ErrorPage/tests/ErrorPage.spec.d.ts +0 -1
- package/dist/src/components/ExternalLinks/tests/ExternalLinks.spec.d.ts +0 -1
- package/dist/src/components/FileList/tests/FileList.spec.d.ts +0 -1
- package/dist/src/components/FilePreview/tests/FilePreview.spec.d.ts +0 -1
- package/dist/src/components/FileUpload/tests/FileUpload.spec.d.ts +0 -1
- package/dist/src/components/FilterInline/tests/FilterInline.spec.d.ts +0 -1
- package/dist/src/components/FilterSideBar/tests/FilterSideBar.spec.d.ts +0 -1
- package/dist/src/components/FooterBar/tests/FooterBar.spec.d.ts +0 -1
- package/dist/src/components/FooterBar/tests/FooterBarConfig.spec.d.ts +0 -1
- package/dist/src/components/FranceConnectBtn/tests/FranceConnectBtn.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/tests/HeaderMenuItem.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/tests/HeaderMenuSection.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/tests/HeaderSubMenu.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/HeaderBurgerMenu/tests/useHandleSubMenus.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/HeaderMenuBtn/tests/HeaderMenuBtn.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/tests/HeaderBar.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/tests/useHeaderResponsiveMode.spec.d.ts +0 -1
- package/dist/src/components/HeaderBar/tests/useScrollDirection.spec.d.ts +0 -1
- package/dist/src/components/HeaderLoading/tests/HeaderLoading.spec.d.ts +0 -1
- package/dist/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.d.ts +0 -1
- package/dist/src/components/HeaderToolbar/tests/HeaderToolbar.spec.d.ts +0 -1
- package/dist/src/components/LangBtn/tests/Config.spec.d.ts +0 -1
- package/dist/src/components/LangBtn/tests/LangBtn.spec.d.ts +0 -1
- package/dist/src/components/Logo/tests/Logo.spec.d.ts +0 -1
- package/dist/src/components/LogoBrandSection/tests/LogoBrandSection.spec.d.ts +0 -1
- package/dist/src/components/MaintenancePage/tests/MaintenancePage.spec.d.ts +0 -1
- package/dist/src/components/NirField/config.d.ts +0 -15
- package/dist/src/components/NirField/tests/NirField.spec.d.ts +0 -1
- package/dist/src/components/NotFoundPage/tests/NotFoundPage.spec.d.ts +0 -1
- package/dist/src/components/NotificationBar/tests/NotificationBar.spec.d.ts +0 -1
- package/dist/src/components/PageContainer/tests/PageContainer.spec.d.ts +0 -1
- package/dist/src/components/PaginatedTable/tests/PaginatedTable.spec.d.ts +0 -1
- package/dist/src/components/PasswordField/tests/PasswordField.spec.d.ts +0 -1
- package/dist/src/components/PeriodField/tests/PeriodField.spec.d.ts +0 -1
- package/dist/src/components/PhoneField/tests/PhoneField.spec.d.ts +0 -1
- package/dist/src/components/RangeField/RangeSlider/tests/rangeSlider.spec.d.ts +0 -1
- package/dist/src/components/RangeField/RangeSlider/tests/useDoubleSlider.spec.d.ts +0 -1
- package/dist/src/components/RangeField/RangeSlider/tests/useMouseSlide.spec.d.ts +0 -1
- package/dist/src/components/RangeField/RangeSlider/tests/useThumb.spec.d.ts +0 -1
- package/dist/src/components/RangeField/RangeSlider/tests/useThumbKeyboard.spec.d.ts +0 -1
- package/dist/src/components/RangeField/RangeSlider/tests/useTooltipsNudge.spec.d.ts +0 -1
- package/dist/src/components/RangeField/RangeSlider/tests/useTrack.spec.d.ts +0 -1
- package/dist/src/components/RangeField/RangeSlider/tests/vAnimateClick.spec.d.ts +0 -1
- package/dist/src/components/RangeField/tests/RangeField.spec.d.ts +0 -1
- package/dist/src/components/RatingPicker/EmotionPicker/tests/EmotionPicker.spec.d.ts +0 -1
- package/dist/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.d.ts +0 -1
- package/dist/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.d.ts +0 -1
- package/dist/src/components/RatingPicker/tests/Rating.spec.d.ts +0 -1
- package/dist/src/components/RatingPicker/tests/RatingPicker.spec.d.ts +0 -1
- package/dist/src/components/SearchListField/tests/SearchListField.spec.d.ts +0 -1
- package/dist/src/components/SelectBtnField/tests/SelectBtnField.spec.d.ts +0 -1
- package/dist/src/components/SkipLink/tests/skipLink.spec.d.ts +0 -1
- package/dist/src/components/SocialMediaLinks/tests/DefaultSocialMediaLinks.spec.d.ts +0 -1
- package/dist/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.d.ts +0 -1
- package/dist/src/components/SubHeader/tests/SubHeader.spec.d.ts +0 -1
- package/dist/src/components/SyAlert/tests/SyAlert.spec.d.ts +0 -1
- package/dist/src/components/TableToolbar/tests/TableToolbar.spec.d.ts +0 -1
- package/dist/src/components/UploadWorkflow/tests/UploadWorkflow.spec.d.ts +0 -1
- package/dist/src/components/UserMenuBtn/tests/UserMenuBtn.spec.d.ts +0 -1
- package/dist/src/composables/rules/tests/useFieldValidation.spec.d.ts +0 -1
- package/dist/src/composables/useFilterable/useFilterable.spec.d.ts +0 -1
- package/dist/src/composables/validation/tests/useValidation.spec.d.ts +0 -1
- package/dist/src/composables/widthable/tests/widthable.spec.d.ts +0 -1
- package/dist/src/utils/calcHumanFileSize/tests/calcHumanFileSize.spec.d.ts +0 -1
- package/dist/src/utils/convertToUnit/test/convertToUnit.spec.d.ts +0 -1
- package/dist/src/utils/functions/copyToClipboard/tests/copyToClipboard.spec.d.ts +0 -1
- package/dist/src/utils/functions/deepCopy/tests/deepCopy.spec.d.ts +0 -1
- package/dist/src/utils/functions/downloadFile/tests/downloadFile.spec.d.ts +0 -1
- package/dist/src/utils/functions/isEmailValid/tests/isEmailValid.spec.d.ts +0 -1
- package/dist/src/utils/functions/throttleDisplayFn/tests/throttleDisplayFn.spec.d.ts +0 -1
- package/dist/src/utils/localStorageUtility/tests/localStorageUtility.spec.d.ts +0 -1
- package/dist/src/utils/propValidator/tests/propValidator.spec.d.ts +0 -1
- package/dist/src/utils/ruleMessage/tests/ruleMessages.spec.d.ts +0 -1
- package/dist/src/utils/rules/email/index.d.ts +0 -4
- package/dist/src/utils/rules/email/tests/email.spec.d.ts +0 -1
- package/dist/src/utils/rules/exactLength/index.d.ts +0 -4
- package/dist/src/utils/rules/required/index.d.ts +0 -4
- package/dist/src/utils/rules/required/ruleMessageHelper.d.ts +0 -3
- package/dist/src/utils/rules/required/tests/index.spec.d.ts +0 -1
- package/dist/src/utils/rules/required/tests/rulesMessageHelper.spec.d.ts +0 -1
- package/src/components/Amelipro/types/languages.d.ts +0 -6
- package/src/components/Amelipro/types/types.d.ts +0 -65
- package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +0 -58
- package/src/components/NirField/config.ts +0 -16
- package/src/utils/functions/isEmailValid/index.ts +0 -8
- package/src/utils/rules/required/ruleMessageHelper.ts +0 -14
- package/src/utils/rules/required/tests/rulesMessageHelper.spec.ts +0 -22
- /package/dist/{src/components → components}/BackBtn/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/BackBtn/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/BackBtn/locales.d.ts +0 -0
- /package/dist/{src/components → components}/BackToTopBtn/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/BackToTopBtn/BackToTopBtn.d.ts +0 -0
- /package/dist/{src/components → components}/BackToTopBtn/config.d.ts +0 -0
- /package/dist/{src/components → components}/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/BackToTopBtn/locales.d.ts +0 -0
- /package/dist/{src/components → components}/ChipList/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/ChipList/ChipList.d.ts +0 -0
- /package/dist/{src/components → components}/ChipList/config.d.ts +0 -0
- /package/dist/{src/components → components}/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/ChipList/locales.d.ts +0 -0
- /package/dist/{src/components → components}/ChipList/types.d.ts +0 -0
- /package/dist/{src/components → components}/CollapsibleList/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/CollapsibleList/CollapsibleList.d.ts +0 -0
- /package/dist/{src/components → components}/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/CollapsibleList/types.d.ts +0 -0
- /package/dist/{src/components → components}/ContextualMenu/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/ContextualMenu/ContextualMenu.d.ts +0 -0
- /package/dist/{src/components → components}/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/ContextualMenu/types.d.ts +0 -0
- /package/dist/{src/components → components}/CookieBanner/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/CookieBanner/CookieBanner.d.ts +0 -0
- /package/dist/{src/components → components}/CookieBanner/config.d.ts +0 -0
- /package/dist/{src/components → components}/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/CookieBanner/locales.d.ts +0 -0
- /package/dist/{src/components → components}/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +0 -0
- /package/dist/{src/components → components}/CookiesSelection/CookiesInformation/locales.d.ts +0 -0
- /package/dist/{src/components → components}/CookiesSelection/CookiesTable/CookiesTable.d.ts +0 -0
- /package/dist/{src/components → components}/CookiesSelection/CookiesTable/headers.d.ts +0 -0
- /package/dist/{src/components → components}/CookiesSelection/locales.d.ts +0 -0
- /package/dist/{src/components → components}/CookiesSelection/types.d.ts +0 -0
- /package/dist/{src/components → components}/CopyBtn/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/CopyBtn/CopyBtn.d.ts +0 -0
- /package/dist/{src/components → components}/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/CopyBtn/locales.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyBtnSelect/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyBtnSelect/SyBtnSelect.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyInputSelect/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyInputSelect/config.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SySelect/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyTextField/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/Customs/SyTextField/types.d.ts +0 -0
- /package/dist/{src/components → components}/DataList/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/DataList/DataList.d.ts +0 -0
- /package/dist/{src/components → components}/DataList/DataListLoading/DataListLoading.d.ts +0 -0
- /package/dist/{src/components → components}/DataList/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/DataList/locales.d.ts +0 -0
- /package/dist/{src/components → components}/DataList/types.d.ts +0 -0
- /package/dist/{src/components → components}/DataListGroup/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/DataListGroup/DataListGroup.d.ts +0 -0
- /package/dist/{src/components → components}/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/DataListGroup/tests/data/dataListGroupItems.d.ts +0 -0
- /package/dist/{src/components → components}/DataListGroup/types.d.ts +0 -0
- /package/dist/{src/components → components}/DataListItem/DataListItem.d.ts +0 -0
- /package/dist/{src/components → components}/DataListItem/config.d.ts +0 -0
- /package/dist/{src/components → components}/DataListItem/locales.d.ts +0 -0
- /package/dist/{src/components → components}/DataListItem/types.d.ts +0 -0
- /package/dist/{src/components → components}/DatePicker/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/DialogBox/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/DialogBox/config.d.ts +0 -0
- /package/dist/{src/components → components}/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/DialogBox/locales.d.ts +0 -0
- /package/dist/{src/components → components}/DownloadBtn/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/DownloadBtn/config.d.ts +0 -0
- /package/dist/{src/components → components}/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/DownloadBtn/tests/data/filePromise.d.ts +0 -0
- /package/dist/{src/components → components}/ErrorPage/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/ErrorPage/ErrorPage.d.ts +0 -0
- /package/dist/{src/components → components}/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/ErrorPage/locales.d.ts +0 -0
- /package/dist/{src/components → components}/ExternalLinks/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/ExternalLinks/ExternalLinks.d.ts +0 -0
- /package/dist/{src/components → components}/ExternalLinks/config.d.ts +0 -0
- /package/dist/{src/components → components}/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/ExternalLinks/locales.d.ts +0 -0
- /package/dist/{src/components → components}/FileList/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/FileList/FileList.d.ts +0 -0
- /package/dist/{src/components → components}/FileList/UploadItem/UploadItem.d.ts +0 -0
- /package/dist/{src/components → components}/FileList/UploadItem/locales.d.ts +0 -0
- /package/dist/{src/components → components}/FileList/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/FilePreview/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/FilePreview/FilePreview.d.ts +0 -0
- /package/dist/{src/components → components}/FilePreview/config.d.ts +0 -0
- /package/dist/{src/components → components}/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/FilePreview/locales.d.ts +0 -0
- /package/dist/{src/components → components}/FileUpload/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/FileUpload/FileUpload.d.ts +0 -0
- /package/dist/{src/components → components}/FileUpload/FileUploadContent.d.ts +0 -0
- /package/dist/{src/components → components}/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/FileUpload/locales.d.ts +0 -0
- /package/dist/{src/components → components}/FileUpload/useFileDrop.d.ts +0 -0
- /package/dist/{src/components → components}/FileUpload/validateFiles.d.ts +0 -0
- /package/dist/{src/components/FooterBar → components/FilterInline}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/FilterInline/locales.d.ts +0 -0
- /package/dist/{src/components/NotificationBar → components/FilterSideBar}/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components/FranceConnectBtn → components/FilterSideBar}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/FilterSideBar/locales.d.ts +0 -0
- /package/dist/{src/components → components}/FooterBar/A11yCompliance.d.ts +0 -0
- /package/dist/{src/components → components}/FooterBar/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/FooterBar/FooterBar.d.ts +0 -0
- /package/dist/{src/components → components}/FooterBar/config.d.ts +0 -0
- /package/dist/{src/components/HeaderBar/HeaderBurgerMenu → components/FooterBar}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/FooterBar/defaultSocialMediaLinks.d.ts +0 -0
- /package/dist/{src/components → components}/FooterBar/locales.d.ts +0 -0
- /package/dist/{src/components → components}/FooterBar/types.d.ts +0 -0
- /package/dist/{src/components → components}/FranceConnectBtn/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/FranceConnectBtn/FranceConnectBtn.d.ts +0 -0
- /package/dist/{src/components/HeaderBar → components/FranceConnectBtn}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBar.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.d.ts +0 -0
- /package/dist/{src/components/HeaderLoading → components/HeaderBar/HeaderBurgerMenu}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBurgerMenu/conts.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBurgerMenu/locals.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderBurgerMenu/useHandleSubMenus.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderLogo/HeaderLogo.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderLogo/locales.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderLogo/logos/Logo-mobile.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderLogo/logos/Logo.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/HeaderMenuBtn/locals.d.ts +0 -0
- /package/dist/{src/components/HeaderToolbar → components/HeaderBar}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/consts.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/locales.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/useHeaderResponsiveMode.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderBar/useScrollDirection.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderLoading/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderLoading/HeaderLoading.d.ts +0 -0
- /package/dist/{src/components/LangBtn → components/HeaderLoading}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderNavigationBar/HeaderNavigationBar.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderNavigationBar/HorizontalNavbar/config.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderNavigationBar/types.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderToolbar/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components/Logo → components/HeaderToolbar}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/HeaderToolbar/types.d.ts +0 -0
- /package/dist/{src/components → components}/LangBtn/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/LangBtn/LangBtn.d.ts +0 -0
- /package/dist/{src/components → components}/LangBtn/config.d.ts +0 -0
- /package/dist/{src/components/LogoBrandSection → components/LangBtn}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/LangBtn/locales.d.ts +0 -0
- /package/dist/{src/components → components}/LangBtn/types.d.ts +0 -0
- /package/dist/{src/components → components}/Logo/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/Logo/Logo.d.ts +0 -0
- /package/dist/{src/components → components}/Logo/LogoSize.d.ts +0 -0
- /package/dist/{src/components/MaintenancePage → components/Logo}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/Logo/locales.d.ts +0 -0
- /package/dist/{src/components → components}/Logo/logoDimensionsMapping.d.ts +0 -0
- /package/dist/{src/components → components}/Logo/types.d.ts +0 -0
- /package/dist/{src/components → components}/LogoBrandSection/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/LogoBrandSection/LogoBrandSection.d.ts +0 -0
- /package/dist/{src/components/NirField → components/LogoBrandSection}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/LogoBrandSection/dividerDimensionsMapping.d.ts +0 -0
- /package/dist/{src/components → components}/LogoBrandSection/locales.d.ts +0 -0
- /package/dist/{src/components → components}/LogoBrandSection/secondaryLogoMapping.d.ts +0 -0
- /package/dist/{src/components → components}/LogoBrandSection/types.d.ts +0 -0
- /package/dist/{src/components → components}/MaintenancePage/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/MaintenancePage/MaintenancePage.d.ts +0 -0
- /package/dist/{src/components/NotFoundPage → components/MaintenancePage}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/MaintenancePage/index.d.ts +0 -0
- /package/dist/{src/components → components}/MaintenancePage/locales.d.ts +0 -0
- /package/dist/{src/components → components}/NirField/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components/NotificationBar → components/NirField}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/NirField/locales.d.ts +0 -0
- /package/dist/{src/components → components}/NirField/nirValidation.d.ts +0 -0
- /package/dist/{src/components → components}/NotFoundPage/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/NotFoundPage/NotFoundPage.d.ts +0 -0
- /package/dist/{src/components/PageContainer → components/NotFoundPage}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/NotFoundPage/locales.d.ts +0 -0
- /package/dist/{src/components/PageContainer → components/NotificationBar}/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components/PaginatedTable → components/NotificationBar}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/NotificationBar/options.d.ts +0 -0
- /package/dist/{src/components → components}/NotificationBar/types.d.ts +0 -0
- /package/dist/{src/components/SubHeader → components/PageContainer}/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/PageContainer/PageContainer.d.ts +0 -0
- /package/dist/{src/components/PasswordField → components/PageContainer}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/PaginatedTable/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/PaginatedTable/PaginatedTable.d.ts +0 -0
- /package/dist/{src/components/PeriodField → components/PaginatedTable}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/PaginatedTable/constants/StateEnum.d.ts +0 -0
- /package/dist/{src/components → components}/PaginatedTable/types.d.ts +0 -0
- /package/dist/{src/components → components}/PasswordField/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/PasswordField/config.d.ts +0 -0
- /package/dist/{src/components/PhoneField → components/PasswordField}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/PasswordField/locales.d.ts +0 -0
- /package/dist/{src/components → components}/PeriodField/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components/RangeField → components/PeriodField}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/PhoneField/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components/RatingPicker → components/PhoneField}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/PhoneField/indicatifs.d.ts +0 -0
- /package/dist/{src/components → components}/PhoneField/locales.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeField.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/RangeSlider.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/Tooltip/Tooltip.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/types.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/useMouseSlide.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/useRangeSlider.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/useThumb.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/useThumbKeyboard.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/useTooltipsNudge.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/useTrack.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/RangeSlider/vAnimateClick.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/config.d.ts +0 -0
- /package/dist/{src/components/SearchListField → components/RangeField}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/RangeField/locales.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/EmotionPicker/EmotionPicker.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/EmotionPicker/locales.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/NumberPicker/NumberPicker.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/NumberPicker/locales.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/Rating.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/RatingPicker.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/StarsPicker/StarsPicker.d.ts +0 -0
- /package/dist/{src/components/SelectBtnField → components/RatingPicker}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/RatingPicker/locales.d.ts +0 -0
- /package/dist/{src/components → components}/SearchListField/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/SearchListField/SearchListField.d.ts +0 -0
- /package/dist/{src/components/SkipLink → components/SearchListField}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/SearchListField/locales.d.ts +0 -0
- /package/dist/{src/components → components}/SearchListField/types.d.ts +0 -0
- /package/dist/{src/components → components}/SelectBtnField/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/SelectBtnField/SelectBtnField.d.ts +0 -0
- /package/dist/{src/components → components}/SelectBtnField/config.d.ts +0 -0
- /package/dist/{src/components/SocialMediaLinks → components/SelectBtnField}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/SelectBtnField/types.d.ts +0 -0
- /package/dist/{src/components → components}/SkipLink/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/SkipLink/SkipLink.d.ts +0 -0
- /package/dist/{src/components/SubHeader → components/SkipLink}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/SkipLink/locales.d.ts +0 -0
- /package/dist/{src/components → components}/SocialMediaLinks/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/SocialMediaLinks/DefaultSocialMediaLinks.d.ts +0 -0
- /package/dist/{src/components → components}/SocialMediaLinks/SocialMediaLinks.d.ts +0 -0
- /package/dist/{src/components/SyAlert → components/SocialMediaLinks}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/SocialMediaLinks/locales.d.ts +0 -0
- /package/dist/{src/components → components}/SocialMediaLinks/types.d.ts +0 -0
- /package/dist/{src/components/SyAlert → components/SubHeader}/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/SubHeader/SubHeader.d.ts +0 -0
- /package/dist/{src/components → components}/SubHeader/config.d.ts +0 -0
- /package/dist/{src/components/TableToolbar → components/SubHeader}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/SubHeader/locales.d.ts +0 -0
- /package/dist/{src/components → components}/SyAlert/SyAlert.d.ts +0 -0
- /package/dist/{src/components/UserMenuBtn → components/SyAlert}/constants/ExpertiseLevelEnum.d.ts +0 -0
- /package/dist/{src/components → components}/SyAlert/locales.d.ts +0 -0
- /package/dist/{src/components → components}/TableToolbar/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/TableToolbar/TableToolbar.d.ts +0 -0
- /package/dist/{src/components → components}/TableToolbar/config.d.ts +0 -0
- /package/dist/{src/components → components}/TableToolbar/locales.d.ts +0 -0
- /package/dist/{src/components → components}/UploadWorkflow/config.d.ts +0 -0
- /package/dist/{src/components → components}/UploadWorkflow/locales.d.ts +0 -0
- /package/dist/{src/components → components}/UploadWorkflow/types.d.ts +0 -0
- /package/dist/{src/components → components}/UploadWorkflow/useFileList.d.ts +0 -0
- /package/dist/{src/components → components}/UploadWorkflow/useFileUploadJourney.d.ts +0 -0
- /package/dist/{src/components → components}/UserMenuBtn/AccessibiliteItems.d.ts +0 -0
- /package/dist/{src/components → components}/UserMenuBtn/UserMenuBtn.d.ts +0 -0
- /package/dist/{src/components → components}/UserMenuBtn/config.d.ts +0 -0
- /package/dist/{src/composables → composables}/index.d.ts +0 -0
- /package/dist/{src/composables → composables}/rules/useFieldValidation.d.ts +0 -0
- /package/dist/{src/composables → composables}/useCustomizableOptions.d.ts +0 -0
- /package/dist/{src/composables → composables}/widthable/index.d.ts +0 -0
- /package/dist/{src/constants → constants}/icons.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/index.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/tokens/cnam/cnamContextual.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/tokens/cnam/cnamDarkTheme.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/tokens/cnam/cnamSemantic.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/tokens/pa/paContextual.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/tokens/pa/paDarkTheme.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/tokens/pa/paSemantic.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/utils/convertGaps.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/utils/convertSemanticsToken.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/utils/createFlattenTheme.d.ts +0 -0
- /package/dist/{src/designTokens → designTokens}/utils/index.d.ts +0 -0
- /package/dist/{src/directives → directives}/clickOutside.d.ts +0 -0
- /package/dist/{src/modules.d.ts → modules.d.ts} +0 -0
- /package/dist/{src/services → services}/NotificationService.d.ts +0 -0
- /package/dist/{src/services → services}/index.d.ts +0 -0
- /package/dist/{src/stories → stories}/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -0
- /package/dist/{src/stories → stories}/EcoConception/ecoDesignItems.d.ts +0 -0
- /package/dist/{src/types → types}/vuetifyTypes.d.ts +0 -0
- /package/dist/{src/utils → utils}/calcHumanFileSize/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/convertToUnit/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/functions/copyToClipboard/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/functions/deepCopy/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/functions/downloadFile/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/functions/downloadFile/types.d.ts +0 -0
- /package/dist/{src/utils → utils}/functions/throttleDisplayFn/throttleDisplayFn.d.ts +0 -0
- /package/dist/{src/utils/functions → utils/functions/validation}/isEmailValid/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/localStorageUtility/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/propValidator/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/ruleMessage/index.d.ts +0 -0
- /package/dist/{src/utils/rules/exactLength → utils/rules/doMatchPattern}/locales.d.ts +0 -0
- /package/dist/{src/utils/rules/email → utils/rules/isDateValid}/locales.d.ts +0 -0
- /package/dist/{src/utils/rules/required → utils/rules/isNotAfterDate}/locales.d.ts +0 -0
- /package/dist/{src/utils → utils}/rules/types.d.ts +0 -0
- /package/src/components/NirField/{tests → examples}//342/200/257dataset/342/200/257.md" +0 -0
- /package/src/utils/functions/{isEmailValid → validation/isEmailValid}/tests/isEmailValid.spec.ts +0 -0
- /package/src/utils/rules/{exactLength → isExactLength}/locales.ts +0 -0
- /package/src/utils/rules/{required → isRequired}/locales.ts +0 -0
- /package/src/utils/rules/{email → isValidEmail}/locales.ts +0 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any -- Nécessaire pour gérer différents types d'entrée */
|
|
3
|
+
import { ref, watch, computed, onMounted } from 'vue'
|
|
3
4
|
import DatePicker from '@/components/DatePicker/DatePicker.vue'
|
|
4
|
-
import {
|
|
5
|
+
import { useFieldValidation } from '@/composables'
|
|
6
|
+
import { useValidation, type ValidationRule } from '@/composables/validation/useValidation'
|
|
5
7
|
|
|
6
8
|
const { parseDate } = useFieldValidation()
|
|
7
9
|
|
|
@@ -18,13 +20,15 @@
|
|
|
18
20
|
required?: boolean
|
|
19
21
|
displayIcon?: boolean
|
|
20
22
|
displayAppendIcon?: boolean
|
|
21
|
-
|
|
23
|
+
disabled?: boolean
|
|
22
24
|
noIcon?: boolean
|
|
23
25
|
noCalendar?: boolean
|
|
24
26
|
isOutlined?: boolean
|
|
25
27
|
showSuccessMessages?: boolean
|
|
26
|
-
customRules?:
|
|
27
|
-
customWarningRules?:
|
|
28
|
+
customRules?: ValidationRule[]
|
|
29
|
+
customWarningRules?: ValidationRule[]
|
|
30
|
+
disableErrorHandling?: boolean
|
|
31
|
+
readOnly?: boolean
|
|
28
32
|
}>(), {
|
|
29
33
|
modelValue: () => ({ from: null, to: null }),
|
|
30
34
|
placeholderFrom: 'Début',
|
|
@@ -35,99 +39,45 @@
|
|
|
35
39
|
required: false,
|
|
36
40
|
displayIcon: true,
|
|
37
41
|
displayAppendIcon: false,
|
|
38
|
-
|
|
42
|
+
disabled: false,
|
|
39
43
|
noIcon: false,
|
|
40
44
|
noCalendar: false,
|
|
41
45
|
isOutlined: true,
|
|
42
|
-
showSuccessMessages:
|
|
46
|
+
showSuccessMessages: true,
|
|
43
47
|
customRules: () => [],
|
|
44
48
|
customWarningRules: () => [],
|
|
49
|
+
disableErrorHandling: false,
|
|
50
|
+
readOnly: false,
|
|
45
51
|
})
|
|
46
52
|
|
|
47
53
|
const emit = defineEmits(['update:modelValue'])
|
|
48
54
|
|
|
55
|
+
// Références aux composants DatePicker
|
|
56
|
+
const fromDateRef = ref()
|
|
57
|
+
const toDateRef = ref()
|
|
58
|
+
|
|
59
|
+
// Valeurs internes pour les dates
|
|
49
60
|
const internalFromDate = ref<string | null>(null)
|
|
50
61
|
const internalToDate = ref<string | null>(null)
|
|
51
62
|
|
|
52
|
-
//
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (value === null) return true
|
|
59
|
-
if (tempToDate.value === undefined || tempToDate.value === null) return true
|
|
60
|
-
return value <= tempToDate.value
|
|
61
|
-
},
|
|
62
|
-
message: 'La date de début ne peut pas être supérieure à la date de fin.',
|
|
63
|
-
successMessage: 'La date de début est valide.',
|
|
64
|
-
fieldIdentifier: 'fromDateRef',
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
...(props.required
|
|
68
|
-
? [{
|
|
69
|
-
type: 'required',
|
|
70
|
-
options: {
|
|
71
|
-
validate: (value: Date | null) => {
|
|
72
|
-
// Si les deux champs sont vides, on affiche l'erreur sur les deux
|
|
73
|
-
if (!value && !tempToDate.value) {
|
|
74
|
-
return false
|
|
75
|
-
}
|
|
76
|
-
// Si l'autre champ est rempli, on force la validation de celui-ci
|
|
77
|
-
if (!value && tempToDate.value) {
|
|
78
|
-
return false
|
|
79
|
-
}
|
|
80
|
-
return true
|
|
81
|
-
},
|
|
82
|
-
message: 'La date de début est requise.',
|
|
83
|
-
successMessage: 'La date de début est renseignée.',
|
|
84
|
-
fieldIdentifier: 'fromDateRef',
|
|
85
|
-
},
|
|
86
|
-
}]
|
|
87
|
-
: []),
|
|
88
|
-
...props.customRules,
|
|
89
|
-
]
|
|
63
|
+
// Utiliser le composable de validation
|
|
64
|
+
const fromDateValidation = useValidation({
|
|
65
|
+
showSuccessMessages: props.showSuccessMessages,
|
|
66
|
+
fieldIdentifier: 'fromDate',
|
|
67
|
+
disableErrorHandling: props.disableErrorHandling,
|
|
68
|
+
})
|
|
90
69
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
validate: (value: Date | null) => {
|
|
97
|
-
if (value === null) return true
|
|
98
|
-
if (tempFromDate.value === undefined || tempFromDate.value === null) return true
|
|
99
|
-
return value >= tempFromDate.value
|
|
100
|
-
},
|
|
101
|
-
message: 'La date de fin ne peut pas être inférieure à la date de début.',
|
|
102
|
-
successMessage: 'La date de fin est valide.',
|
|
103
|
-
fieldIdentifier: 'toDate',
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
...(props.required
|
|
107
|
-
? [{
|
|
108
|
-
type: 'required',
|
|
109
|
-
options: {
|
|
110
|
-
validate: (value: Date | null) => {
|
|
111
|
-
// Si les deux champs sont vides, on affiche l'erreur sur les deux
|
|
112
|
-
if (!value && !tempFromDate.value) {
|
|
113
|
-
return false
|
|
114
|
-
}
|
|
115
|
-
// Si l'autre champ est rempli, on force la validation de celui-ci
|
|
116
|
-
if (!value && tempFromDate.value) {
|
|
117
|
-
return false
|
|
118
|
-
}
|
|
119
|
-
return true
|
|
120
|
-
},
|
|
121
|
-
message: 'La date de fin est requise.',
|
|
122
|
-
successMessage: 'La date de fin est renseignée.',
|
|
123
|
-
fieldIdentifier: 'toDate',
|
|
124
|
-
},
|
|
125
|
-
}]
|
|
126
|
-
: []),
|
|
127
|
-
...props.customRules,
|
|
128
|
-
]
|
|
70
|
+
const toDateValidation = useValidation({
|
|
71
|
+
showSuccessMessages: props.showSuccessMessages,
|
|
72
|
+
fieldIdentifier: 'toDate',
|
|
73
|
+
disableErrorHandling: props.disableErrorHandling,
|
|
74
|
+
})
|
|
129
75
|
|
|
130
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Formate une valeur de date en chaîne de caractères au format spécifié
|
|
78
|
+
* @param value - La valeur de date à formater
|
|
79
|
+
* @returns La date formatée ou null
|
|
80
|
+
*/
|
|
131
81
|
function formatDateValue(value: any): string | null {
|
|
132
82
|
if (!value) return null
|
|
133
83
|
if (typeof value === 'string') return value
|
|
@@ -145,25 +95,102 @@
|
|
|
145
95
|
const formattedFromDate = computed(() => formatDateValue(internalFromDate.value))
|
|
146
96
|
const formattedToDate = computed(() => formatDateValue(internalToDate.value))
|
|
147
97
|
|
|
148
|
-
// Computed properties pour les dates
|
|
149
|
-
const
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
// Sets pour optimiser la recherche des erreurs et succès
|
|
153
|
-
const fromDateErrorsSet = computed(() => new Set(errors.value.filter(error => error.includes('fromDate'))))
|
|
154
|
-
const toDateErrorsSet = computed(() => new Set(errors.value.filter(error => error.includes('toDate'))))
|
|
155
|
-
const fromDateSuccessesSet = computed(() => new Set(successes.value.filter(success => success.includes('fromDate'))))
|
|
156
|
-
const toDateSuccessesSet = computed(() => new Set(successes.value.filter(success => success.includes('toDate'))))
|
|
98
|
+
// Computed properties pour les dates parsées
|
|
99
|
+
const parsedFromDate = computed(() => formattedFromDate.value ? parseDate(formattedFromDate.value, props.format) : null)
|
|
100
|
+
const parsedToDate = computed(() => formattedToDate.value ? parseDate(formattedToDate.value, props.format) : null)
|
|
157
101
|
|
|
158
|
-
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
102
|
+
// Règles de validation pour la date de début
|
|
103
|
+
const fromDateRules = computed<ValidationRule[]>(() =>
|
|
104
|
+
!props.disableErrorHandling
|
|
105
|
+
? [
|
|
106
|
+
{
|
|
107
|
+
type: 'custom',
|
|
108
|
+
options: {
|
|
109
|
+
validate: (value: Date | null) => {
|
|
110
|
+
if (value === null) return true
|
|
111
|
+
if (parsedToDate.value === null) return true
|
|
112
|
+
return value <= parsedToDate.value
|
|
113
|
+
},
|
|
114
|
+
message: 'La date de début ne peut pas être supérieure à la date de fin.',
|
|
115
|
+
successMessage: 'La date de début est valide.',
|
|
116
|
+
fieldIdentifier: 'fromDate',
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
...(props.required && !props.disableErrorHandling
|
|
120
|
+
? [{
|
|
121
|
+
type: 'required',
|
|
122
|
+
options: {
|
|
123
|
+
validate: (value: Date | null) => {
|
|
124
|
+
// Si les deux champs sont vides, on affiche l'erreur sur les deux
|
|
125
|
+
if (!value && !parsedToDate.value) {
|
|
126
|
+
return false
|
|
127
|
+
}
|
|
128
|
+
// Si l'autre champ est rempli, on force la validation de celui-ci
|
|
129
|
+
if (!value && parsedToDate.value) {
|
|
130
|
+
return false
|
|
131
|
+
}
|
|
132
|
+
return true
|
|
133
|
+
},
|
|
134
|
+
message: 'La date de début est requise.',
|
|
135
|
+
successMessage: 'La date de début est renseignée.',
|
|
136
|
+
fieldIdentifier: 'fromDate',
|
|
137
|
+
},
|
|
138
|
+
}]
|
|
139
|
+
: []),
|
|
140
|
+
...(!props.disableErrorHandling ? props.customRules : []),
|
|
141
|
+
]
|
|
142
|
+
: [],
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
// Variable réactive pour contrôler l'affichage des messages de succès
|
|
146
|
+
const showSuccessMessagesActual = computed(() =>
|
|
147
|
+
props.disableErrorHandling ? false : props.showSuccessMessages,
|
|
148
|
+
)
|
|
165
149
|
|
|
166
|
-
//
|
|
150
|
+
// Règles de validation pour la date de fin
|
|
151
|
+
const toDateRules = computed<ValidationRule[]>(() =>
|
|
152
|
+
!props.disableErrorHandling
|
|
153
|
+
? [
|
|
154
|
+
{
|
|
155
|
+
type: 'custom',
|
|
156
|
+
options: {
|
|
157
|
+
validate: (value: Date | null) => {
|
|
158
|
+
if (value === null) return true
|
|
159
|
+
if (parsedFromDate.value === null) return true
|
|
160
|
+
return value >= parsedFromDate.value
|
|
161
|
+
},
|
|
162
|
+
message: 'La date de fin ne peut pas être inférieure à la date de début.',
|
|
163
|
+
successMessage: 'La date de fin est valide.',
|
|
164
|
+
fieldIdentifier: 'toDate',
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
...(props.required
|
|
168
|
+
? [{
|
|
169
|
+
type: 'required',
|
|
170
|
+
options: {
|
|
171
|
+
validate: (value: Date | null) => {
|
|
172
|
+
// Si les deux champs sont vides, on affiche l'erreur sur les deux
|
|
173
|
+
if (!value && !parsedFromDate.value) {
|
|
174
|
+
return false
|
|
175
|
+
}
|
|
176
|
+
// Si l'autre champ est rempli, on force la validation de celui-ci
|
|
177
|
+
if (!value && parsedFromDate.value) {
|
|
178
|
+
return false
|
|
179
|
+
}
|
|
180
|
+
return true
|
|
181
|
+
},
|
|
182
|
+
message: 'La date de fin est requise.',
|
|
183
|
+
successMessage: 'La date de fin est renseignée.',
|
|
184
|
+
fieldIdentifier: 'toDate',
|
|
185
|
+
},
|
|
186
|
+
}]
|
|
187
|
+
: []),
|
|
188
|
+
...props.customRules,
|
|
189
|
+
]
|
|
190
|
+
: [],
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
// Vérification de la validité du formulaire en utilisant les validations
|
|
167
194
|
const isValid = computed(() => {
|
|
168
195
|
// Si aucune date n'est renseignée et que ce n'est pas required, c'est valide
|
|
169
196
|
if (!props.required && !formattedFromDate.value && !formattedToDate.value) {
|
|
@@ -184,35 +211,57 @@
|
|
|
184
211
|
}
|
|
185
212
|
|
|
186
213
|
// Si les deux dates sont renseignées, vérifier qu'elles sont cohérentes
|
|
187
|
-
if (formattedFromDate.value && formattedToDate.value) {
|
|
188
|
-
|
|
189
|
-
const toDate = parseDate(formattedToDate.value, props.format)
|
|
190
|
-
if (!fromDate || !toDate || fromDate > toDate) {
|
|
214
|
+
if (formattedFromDate.value && formattedToDate.value && parsedFromDate.value && parsedToDate.value) {
|
|
215
|
+
if (parsedFromDate.value > parsedToDate.value) {
|
|
191
216
|
return false
|
|
192
217
|
}
|
|
193
218
|
}
|
|
194
219
|
|
|
195
|
-
// Vérifier
|
|
196
|
-
return
|
|
220
|
+
// Vérifier que les deux validations ne signalent pas d'erreurs
|
|
221
|
+
return !fromDateValidation.hasError.value && !toDateValidation.hasError.value
|
|
197
222
|
})
|
|
198
223
|
|
|
199
|
-
//
|
|
224
|
+
// Synchronisation lorsque l'une des dates change
|
|
225
|
+
function validateBothDates() {
|
|
226
|
+
if (fromDateRef.value) {
|
|
227
|
+
fromDateRef.value.validateOnSubmit()
|
|
228
|
+
}
|
|
229
|
+
if (toDateRef.value) {
|
|
230
|
+
toDateRef.value.validateOnSubmit()
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Validation complète du PeriodField
|
|
235
|
+
function validateFields() {
|
|
236
|
+
fromDateValidation.validateField(parsedFromDate.value, fromDateRules.value, props.customWarningRules)
|
|
237
|
+
toDateValidation.validateField(parsedToDate.value, toDateRules.value, props.customWarningRules)
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// Gestionnaires d'événements closed
|
|
241
|
+
function handleFromDateClosed() {
|
|
242
|
+
validateBothDates()
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
function handleToDateClosed() {
|
|
246
|
+
validateBothDates()
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// Watch pour les changements des dates - validation croisée
|
|
200
250
|
watch(formattedFromDate, () => {
|
|
201
|
-
|
|
251
|
+
validateFields()
|
|
202
252
|
if (formattedToDate.value && toDateRef.value) {
|
|
203
253
|
toDateRef.value.validateOnSubmit()
|
|
204
254
|
}
|
|
205
255
|
})
|
|
206
256
|
|
|
207
|
-
// Watch pour les changements de la date de fin
|
|
208
257
|
watch(formattedToDate, () => {
|
|
209
|
-
|
|
258
|
+
validateFields()
|
|
210
259
|
if (formattedFromDate.value && fromDateRef.value) {
|
|
211
260
|
fromDateRef.value.validateOnSubmit()
|
|
212
261
|
}
|
|
213
262
|
})
|
|
214
263
|
|
|
215
|
-
// Watch pour les changements internes
|
|
264
|
+
// Watch pour les changements internes - Mise à jour du modèle
|
|
216
265
|
watch([internalFromDate, internalToDate], () => {
|
|
217
266
|
emit('update:modelValue', {
|
|
218
267
|
from: formattedFromDate.value,
|
|
@@ -220,7 +269,7 @@
|
|
|
220
269
|
})
|
|
221
270
|
})
|
|
222
271
|
|
|
223
|
-
// Watch pour les changements externes
|
|
272
|
+
// Watch pour les changements externes - Synchronisation
|
|
224
273
|
watch(() => props.modelValue, (newValue) => {
|
|
225
274
|
if (!newValue) return
|
|
226
275
|
|
|
@@ -233,52 +282,52 @@
|
|
|
233
282
|
if (internalToDate.value !== newToDate) {
|
|
234
283
|
internalToDate.value = newToDate
|
|
235
284
|
}
|
|
285
|
+
// Valider les champs après la mise à jour des valeurs
|
|
286
|
+
validateFields()
|
|
236
287
|
}, { deep: true, immediate: true })
|
|
237
288
|
|
|
238
|
-
//
|
|
239
|
-
internalFromDate.value = formatDateValue(props.modelValue?.from)
|
|
240
|
-
internalToDate.value = formatDateValue(props.modelValue?.to)
|
|
241
|
-
|
|
242
|
-
const fromDateRef = ref()
|
|
243
|
-
const toDateRef = ref()
|
|
244
|
-
|
|
245
|
-
// Gestionnaires d'événements closed
|
|
246
|
-
const handleFromDateClosed = () => {
|
|
247
|
-
if (fromDateRef.value) {
|
|
248
|
-
fromDateRef.value.validateOnSubmit()
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
const handleToDateClosed = () => {
|
|
253
|
-
if (toDateRef.value) {
|
|
254
|
-
toDateRef.value.validateOnSubmit()
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
289
|
+
// Fonction publique de validation
|
|
258
290
|
const validateOnSubmit = (): boolean => {
|
|
259
291
|
// Valider les deux DatePicker
|
|
260
292
|
const fromDateValid = fromDateRef.value?.validateOnSubmit() ?? true
|
|
261
293
|
const toDateValid = toDateRef.value?.validateOnSubmit() ?? true
|
|
262
294
|
|
|
263
|
-
//
|
|
264
|
-
|
|
295
|
+
// Valider avec les règles personnalisées
|
|
296
|
+
validateFields()
|
|
265
297
|
|
|
266
|
-
|
|
298
|
+
// Retourner true seulement si tout est valide
|
|
299
|
+
return fromDateValid && toDateValid && isValid.value
|
|
267
300
|
}
|
|
268
301
|
|
|
302
|
+
// Initialisation
|
|
303
|
+
onMounted(() => {
|
|
304
|
+
internalFromDate.value = formatDateValue(props.modelValue?.from)
|
|
305
|
+
internalToDate.value = formatDateValue(props.modelValue?.to)
|
|
306
|
+
// Validation initiale
|
|
307
|
+
validateFields()
|
|
308
|
+
})
|
|
309
|
+
|
|
269
310
|
defineExpose({
|
|
270
311
|
validateOnSubmit,
|
|
271
|
-
errors
|
|
272
|
-
|
|
312
|
+
errors: {
|
|
313
|
+
fromDate: fromDateValidation.errors,
|
|
314
|
+
toDate: toDateValidation.errors,
|
|
315
|
+
},
|
|
316
|
+
successes: {
|
|
317
|
+
fromDate: fromDateValidation.successes,
|
|
318
|
+
toDate: toDateValidation.successes,
|
|
319
|
+
},
|
|
320
|
+
warnings: {
|
|
321
|
+
fromDate: fromDateValidation.warnings,
|
|
322
|
+
toDate: toDateValidation.warnings,
|
|
323
|
+
},
|
|
273
324
|
isValid,
|
|
274
325
|
})
|
|
275
326
|
</script>
|
|
276
327
|
|
|
277
328
|
<template>
|
|
278
329
|
<div class="period-field">
|
|
279
|
-
<div
|
|
280
|
-
class="period-field__col"
|
|
281
|
-
>
|
|
330
|
+
<div class="period-field__col">
|
|
282
331
|
<DatePicker
|
|
283
332
|
ref="fromDateRef"
|
|
284
333
|
v-model="internalFromDate"
|
|
@@ -287,22 +336,22 @@
|
|
|
287
336
|
:date-format-return="props.dateFormatReturn"
|
|
288
337
|
:display-append-icon="props.displayAppendIcon"
|
|
289
338
|
:display-icon="props.displayIcon"
|
|
290
|
-
:error-message="
|
|
339
|
+
:error-message="fromDateValidation.hasError"
|
|
291
340
|
:format="props.format"
|
|
292
|
-
:
|
|
341
|
+
:disabled="props.disabled"
|
|
293
342
|
:is-outlined="props.isOutlined"
|
|
294
343
|
:no-calendar="props.noCalendar"
|
|
295
344
|
:no-icon="props.noIcon"
|
|
296
345
|
:placeholder="props.placeholderFrom"
|
|
297
|
-
:required="props.required"
|
|
346
|
+
:required="props.disableErrorHandling ? false : props.required"
|
|
298
347
|
:show-week-number="props.showWeekNumber"
|
|
299
|
-
:success-
|
|
348
|
+
:show-success-messages="showSuccessMessagesActual"
|
|
349
|
+
:success-message="fromDateValidation.hasSuccess"
|
|
350
|
+
:read-only="props.readOnly"
|
|
300
351
|
@closed="handleFromDateClosed"
|
|
301
352
|
/>
|
|
302
353
|
</div>
|
|
303
|
-
<div
|
|
304
|
-
class="period-field__col"
|
|
305
|
-
>
|
|
354
|
+
<div class="period-field__col">
|
|
306
355
|
<DatePicker
|
|
307
356
|
ref="toDateRef"
|
|
308
357
|
v-model="internalToDate"
|
|
@@ -311,16 +360,18 @@
|
|
|
311
360
|
:date-format-return="props.dateFormatReturn"
|
|
312
361
|
:display-append-icon="props.displayAppendIcon"
|
|
313
362
|
:display-icon="props.displayIcon"
|
|
314
|
-
:error-message="
|
|
363
|
+
:error-message="toDateValidation.hasError"
|
|
315
364
|
:format="props.format"
|
|
316
|
-
:
|
|
365
|
+
:disabled="props.disabled"
|
|
317
366
|
:is-outlined="props.isOutlined"
|
|
318
367
|
:no-calendar="props.noCalendar"
|
|
319
368
|
:no-icon="props.noIcon"
|
|
320
369
|
:placeholder="props.placeholderTo"
|
|
321
|
-
:required="props.required"
|
|
370
|
+
:required="props.disableErrorHandling ? false : props.required"
|
|
322
371
|
:show-week-number="props.showWeekNumber"
|
|
323
|
-
:success-
|
|
372
|
+
:show-success-messages="showSuccessMessagesActual"
|
|
373
|
+
:success-message="toDateValidation.hasSuccess"
|
|
374
|
+
:read-only="props.readOnly"
|
|
324
375
|
@closed="handleToDateClosed"
|
|
325
376
|
/>
|
|
326
377
|
</div>
|
|
@@ -254,6 +254,152 @@ describe('PeriodField.vue', () => {
|
|
|
254
254
|
await wrapper.vm.$nextTick()
|
|
255
255
|
expect(wrapper.vm.isValid).toBe(true)
|
|
256
256
|
})
|
|
257
|
+
|
|
258
|
+
it('validates correctly the required rule when fields are empty or partially filled', async () => {
|
|
259
|
+
// Cas 1: Tester la validation quand les deux champs sont vides
|
|
260
|
+
const wrapper1 = mount(PeriodField, {
|
|
261
|
+
global: {
|
|
262
|
+
plugins: [vuetify],
|
|
263
|
+
},
|
|
264
|
+
props: {
|
|
265
|
+
required: true,
|
|
266
|
+
modelValue: {
|
|
267
|
+
from: null,
|
|
268
|
+
to: null,
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
})
|
|
272
|
+
|
|
273
|
+
await wrapper1.vm.validateOnSubmit()
|
|
274
|
+
await wrapper1.vm.$nextTick()
|
|
275
|
+
|
|
276
|
+
// Vérifier que la fonction de validation renvoie false quand les deux champs sont vides
|
|
277
|
+
const fromDatePicker1 = wrapper1.findAllComponents({ name: 'DatePicker' })[0]
|
|
278
|
+
const requiredRule1 = fromDatePicker1.props('customRules').find(rule => rule.type === 'required')
|
|
279
|
+
expect(requiredRule1.options.validate(null)).toBe(false)
|
|
280
|
+
expect(wrapper1.vm.isValid).toBe(false)
|
|
281
|
+
|
|
282
|
+
// Cas 2: Tester la validation quand un champ est rempli mais l'autre est vide
|
|
283
|
+
const wrapper2 = mount(PeriodField, {
|
|
284
|
+
global: {
|
|
285
|
+
plugins: [vuetify],
|
|
286
|
+
},
|
|
287
|
+
props: {
|
|
288
|
+
required: true,
|
|
289
|
+
modelValue: {
|
|
290
|
+
from: null,
|
|
291
|
+
to: '20/12/2023',
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
})
|
|
295
|
+
|
|
296
|
+
await wrapper2.vm.validateOnSubmit()
|
|
297
|
+
await wrapper2.vm.$nextTick()
|
|
298
|
+
|
|
299
|
+
// Vérifier que la fonction de validation renvoie false quand from est vide mais to est rempli
|
|
300
|
+
const fromDatePicker2 = wrapper2.findAllComponents({ name: 'DatePicker' })[0]
|
|
301
|
+
const requiredRule2 = fromDatePicker2.props('customRules').find(rule => rule.type === 'required')
|
|
302
|
+
// Simuler le scénario où parsedToDate.value est non-null
|
|
303
|
+
expect(requiredRule2.options.validate(null)).toBe(false)
|
|
304
|
+
expect(wrapper2.vm.isValid).toBe(false)
|
|
305
|
+
|
|
306
|
+
// Cas 3: Tester que la validation renvoie true quand le champ n'est pas vide
|
|
307
|
+
const wrapper3 = mount(PeriodField, {
|
|
308
|
+
global: {
|
|
309
|
+
plugins: [vuetify],
|
|
310
|
+
},
|
|
311
|
+
props: {
|
|
312
|
+
required: true,
|
|
313
|
+
modelValue: {
|
|
314
|
+
from: '15/12/2023',
|
|
315
|
+
to: '20/12/2023',
|
|
316
|
+
},
|
|
317
|
+
},
|
|
318
|
+
})
|
|
319
|
+
|
|
320
|
+
await wrapper3.vm.validateOnSubmit()
|
|
321
|
+
await wrapper3.vm.$nextTick()
|
|
322
|
+
|
|
323
|
+
// Vérifier que la fonction de validation renvoie true quand le champ a une valeur
|
|
324
|
+
const fromDatePicker3 = wrapper3.findAllComponents({ name: 'DatePicker' })[0]
|
|
325
|
+
const requiredRule3 = fromDatePicker3.props('customRules').find(rule => rule.type === 'required')
|
|
326
|
+
const mockDate = new Date('2023-12-15')
|
|
327
|
+
expect(requiredRule3.options.validate(mockDate)).toBe(true)
|
|
328
|
+
expect(wrapper3.vm.isValid).toBe(true)
|
|
329
|
+
})
|
|
330
|
+
|
|
331
|
+
it('validates correctly the to-date required rule when fields are empty or partially filled', async () => {
|
|
332
|
+
// Cas 1: Tester la validation quand les deux champs sont vides
|
|
333
|
+
const wrapper1 = mount(PeriodField, {
|
|
334
|
+
global: {
|
|
335
|
+
plugins: [vuetify],
|
|
336
|
+
},
|
|
337
|
+
props: {
|
|
338
|
+
required: true,
|
|
339
|
+
modelValue: {
|
|
340
|
+
from: null,
|
|
341
|
+
to: null,
|
|
342
|
+
},
|
|
343
|
+
},
|
|
344
|
+
})
|
|
345
|
+
|
|
346
|
+
await wrapper1.vm.validateOnSubmit()
|
|
347
|
+
await wrapper1.vm.$nextTick()
|
|
348
|
+
|
|
349
|
+
// Vérifier que la fonction de validation renvoie false quand les deux champs sont vides
|
|
350
|
+
const toDatePicker1 = wrapper1.findAllComponents({ name: 'DatePicker' })[1]
|
|
351
|
+
const requiredRule1 = toDatePicker1.props('customRules').find(rule => rule.type === 'required')
|
|
352
|
+
expect(requiredRule1.options.validate(null)).toBe(false)
|
|
353
|
+
expect(wrapper1.vm.isValid).toBe(false)
|
|
354
|
+
|
|
355
|
+
// Cas 2: Tester la validation quand un champ est rempli mais l'autre est vide
|
|
356
|
+
const wrapper2 = mount(PeriodField, {
|
|
357
|
+
global: {
|
|
358
|
+
plugins: [vuetify],
|
|
359
|
+
},
|
|
360
|
+
props: {
|
|
361
|
+
required: true,
|
|
362
|
+
modelValue: {
|
|
363
|
+
from: '15/12/2023',
|
|
364
|
+
to: null,
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
})
|
|
368
|
+
|
|
369
|
+
await wrapper2.vm.validateOnSubmit()
|
|
370
|
+
await wrapper2.vm.$nextTick()
|
|
371
|
+
|
|
372
|
+
// Vérifier que la fonction de validation renvoie false quand to est vide mais from est rempli
|
|
373
|
+
const toDatePicker2 = wrapper2.findAllComponents({ name: 'DatePicker' })[1]
|
|
374
|
+
const requiredRule2 = toDatePicker2.props('customRules').find(rule => rule.type === 'required')
|
|
375
|
+
// Simuler le scénario où parsedFromDate.value est non-null
|
|
376
|
+
expect(requiredRule2.options.validate(null)).toBe(false)
|
|
377
|
+
expect(wrapper2.vm.isValid).toBe(false)
|
|
378
|
+
|
|
379
|
+
// Cas 3: Tester que la validation renvoie true quand le champ n'est pas vide
|
|
380
|
+
const wrapper3 = mount(PeriodField, {
|
|
381
|
+
global: {
|
|
382
|
+
plugins: [vuetify],
|
|
383
|
+
},
|
|
384
|
+
props: {
|
|
385
|
+
required: true,
|
|
386
|
+
modelValue: {
|
|
387
|
+
from: '15/12/2023',
|
|
388
|
+
to: '20/12/2023',
|
|
389
|
+
},
|
|
390
|
+
},
|
|
391
|
+
})
|
|
392
|
+
|
|
393
|
+
await wrapper3.vm.validateOnSubmit()
|
|
394
|
+
await wrapper3.vm.$nextTick()
|
|
395
|
+
|
|
396
|
+
// Vérifier que la fonction de validation renvoie true quand le champ a une valeur
|
|
397
|
+
const toDatePicker3 = wrapper3.findAllComponents({ name: 'DatePicker' })[1]
|
|
398
|
+
const requiredRule3 = toDatePicker3.props('customRules').find(rule => rule.type === 'required')
|
|
399
|
+
const mockDate = new Date('2023-12-20')
|
|
400
|
+
expect(requiredRule3.options.validate(mockDate)).toBe(true)
|
|
401
|
+
expect(wrapper3.vm.isValid).toBe(true)
|
|
402
|
+
})
|
|
257
403
|
})
|
|
258
404
|
|
|
259
405
|
describe('Utils', () => {
|