@cnamts/synapse 1.0.14 → 1.0.16
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/README.md +0 -0
- package/dist/{DateFilter-isr8mXVb.js → DateFilter-DSwJUvBu.js} +12 -12
- package/dist/{NumberFilter-BOe7DqWX.js → NumberFilter-CwsbYyz4.js} +1 -1
- package/dist/{PeriodFilter-WTprpO40.js → PeriodFilter-csnEZU30.js} +1 -1
- package/dist/{SelectFilter-CqlG5dmI.js → SelectFilter-Bd5fndzR.js} +1 -1
- package/dist/{TextFilter-fVW5bsRw.js → TextFilter-B6gxzq2a.js} +1 -1
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +2836 -2845
- package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +7 -7
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +18 -18
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +9 -9
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +3 -1
- package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +5 -3
- package/dist/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +9 -0
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1288 -1284
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1936 -1930
- package/dist/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2838 -2865
- package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2843 -2870
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +397 -397
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +642 -640
- package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +233 -5
- package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
- package/dist/components/Captcha/CaptchaHelpdesk.d.ts +6 -0
- package/dist/components/CookieBanner/CookieBanner.d.ts +117 -119
- package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +484 -484
- package/dist/components/CookiesSelection/CookiesSelection.d.ts +104 -106
- package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +14 -10
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +118 -129
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -3
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
- package/dist/components/Customs/SyForm/SyForm.d.ts +60 -53
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +88 -0
- package/dist/components/Customs/SyRadioGroup/locales.d.ts +3 -0
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +644 -642
- package/dist/components/DataList/DataList.d.ts +6 -1
- package/dist/components/DataListGroup/DataListGroup.d.ts +14 -2
- package/dist/components/DataListItem/DataListItem.d.ts +3 -0
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2988 -3100
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1458 -1558
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +655 -651
- package/dist/components/DatePicker/composables/index.d.ts +4 -0
- package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +1 -1
- package/dist/components/DatePicker/composables/useCalendarKeyboardNavigation.d.ts +11 -0
- package/dist/components/DatePicker/composables/useDatePickerState.d.ts +25 -0
- package/dist/components/DatePicker/composables/useDateTextField.d.ts +61 -0
- package/dist/components/DatePicker/composables/useHolidayHighlighting.d.ts +15 -0
- package/dist/components/DatePicker/constants/messages.d.ts +0 -1
- package/dist/components/DialogBox/DialogBox.d.ts +175 -177
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +161 -171
- package/dist/components/FooterBar/FooterBar.d.ts +5 -5
- package/dist/components/HeaderBar/HeaderBar.d.ts +2 -2
- package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +1 -1
- package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +234 -258
- package/dist/components/LangBtn/LangBtn.d.ts +173 -179
- package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
- package/dist/components/LunarCalendar/LunarCalendar.d.ts +29 -0
- package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +5 -0
- package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +13 -0
- package/dist/components/NirField/NirField.d.ts +1296 -1292
- package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
- package/dist/components/PeriodField/PeriodField.d.ts +5844 -6068
- package/dist/components/PhoneField/PhoneField.d.ts +645 -643
- package/dist/components/SyAlert/SyAlert.d.ts +31 -31
- package/dist/components/SyTextArea/SyTextArea.d.ts +395 -395
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +193 -227
- package/dist/components/Tables/SyTable/SyTable.d.ts +192 -226
- package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
- package/dist/components/Tables/common/SyTablePagination.d.ts +118 -129
- package/dist/components/Tables/common/TableHeader.d.ts +52 -2
- package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
- package/dist/components/Tables/common/locales.d.ts +1 -0
- package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +86 -90
- package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -2
- package/dist/components/Tables/common/types.d.ts +3 -2
- package/dist/components/Tables/common/useTableCheckbox.d.ts +3 -2
- package/dist/components/Tables/common/useTableFilter.d.ts +1 -1
- package/dist/components/Tables/common/useTableItems.d.ts +6 -8
- package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +18 -18
- package/dist/components/index.d.ts +2 -0
- package/dist/design-system-v3.js +101 -98
- package/dist/design-system-v3.umd.cjs +25 -33
- package/dist/main-DkZZpa3S.js +35197 -0
- package/dist/style.css +1 -1
- package/dist/utils/formatNir/formatNir.d.ts +2 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/insertAt.d.ts +1 -0
- package/dist/utils/rules/validateDateValue.d.ts +14 -0
- package/dist/vuetifyConfig.d.ts +6 -6
- package/package.json +4 -4
- package/src/assets/tokens.scss +2 -0
- package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +1 -18
- package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +178 -9
- package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +28 -121
- package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +15 -270
- package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +12 -194
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +1 -18
- package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +1 -18
- package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +12 -194
- package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +9 -9
- package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +5 -4
- package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +6 -6
- package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -0
- package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +135 -9
- package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +20 -5
- package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +195 -28
- package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +193 -124
- package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
- package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +364 -12
- package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +30 -390
- package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +4 -36
- package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +10 -10
- package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +7 -7
- package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +5 -5
- package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +1 -1
- package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +7 -6
- package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +6 -6
- package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +6 -6
- package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -43
- package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +80 -9
- package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +25 -4
- package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +1 -13
- package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +7 -6
- package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +5 -5
- package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +187 -39
- package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +147 -147
- package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +1 -1
- package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +0 -2
- package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +160 -20
- package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +34 -177
- package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +1 -0
- package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +248 -19
- package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +34 -203
- package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +6 -144
- package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.vue +20 -2
- package/src/components/Amelipro/AmeliproIcon/__tests__/__snapshots__/AmeliproIcon.spec.ts.snap +1 -25
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +5 -5
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -6
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +22 -22
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/AmeliproMultipleFoldingCard.spec.ts +304 -0
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +373 -0
- package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +2 -0
- package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +28 -2
- package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -173
- package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -1
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +162 -72
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +2 -2
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +6 -39
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +3 -3
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +8 -8
- package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/AmeliproPostalAddressField.spec.ts +2 -2
- package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +11 -52
- package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +7 -7
- package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +8 -8
- package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +6 -6
- package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -14
- package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +7 -7
- package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +4 -4
- package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +12 -12
- package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +2 -2
- package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -2
- package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +463 -68
- package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +176 -511
- package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +6 -6
- package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -4
- package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +3 -3
- package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +1 -2
- package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +10 -10
- package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +4 -4
- package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +5 -5
- package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +162 -0
- package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +44 -0
- package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +79 -1
- package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -2
- package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +2 -2
- package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +21 -7
- package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +252 -44
- package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +166 -0
- package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/ServiceBtn.spec.ts +137 -0
- package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/__snapshots__/ServiceBtn.spec.ts.snap +56 -0
- package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/ServiceList.spec.ts +116 -0
- package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/__snapshots__/ServiceList.spec.ts.snap +58 -0
- package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/ServiceMenuContent.spec.ts +118 -0
- package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/__snapshots__/ServiceMenuContent.spec.ts.snap +151 -0
- package/src/components/Amelipro/ServiceMenu/__tests__/ServiceMenu.spec.ts +259 -0
- package/src/components/Amelipro/ServiceMenu/__tests__/__snapshots__/ServiceMenu.spec.ts.snap +102 -0
- package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +90 -0
- package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +63 -0
- package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/StructureItem.spec.ts +133 -0
- package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +143 -0
- package/src/components/Amelipro/StructureMenu/StructureList/__tests__/StructureList.spec.ts +190 -0
- package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +109 -0
- package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +159 -0
- package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +103 -0
- package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +165 -0
- package/src/components/Amelipro/StructureMenu/__tests__/__snapshots__/StructureMenu.spec.ts.snap +39 -0
- package/src/components/Amelipro/UserInformationSummary/__tests__/UserInformationSummary.spec.ts +140 -0
- package/src/components/Amelipro/UserInformationSummary/{tests → __tests__}/__snapshots__/UserInformationSummary.spec.ts.snap +17 -24
- package/src/components/Amelipro/UserMenu/UserMenu.stories.ts +3 -3
- package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -2
- package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/UserMenuDetails.spec.ts +150 -0
- package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/__snapshots__/UserMenuDetails.spec.ts.snap +117 -0
- package/src/components/Amelipro/UserMenu/__tests__/UserMenu.spec.ts +141 -0
- package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +103 -0
- package/src/components/Captcha/Captcha.vue +9 -24
- package/src/components/Captcha/CaptchaHelpdesk.vue +42 -0
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +256 -268
- package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +0 -1
- package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +4 -0
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +154 -82
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +229 -125
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +12 -12
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +344 -826
- package/src/components/Customs/Selects/SySelect/SySelect.vue +215 -169
- package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +4 -2
- package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +7 -9
- package/src/components/Customs/SyForm/SyForm.mdx +47 -7
- package/src/components/Customs/SyForm/SyForm.stories.ts +38 -34
- package/src/components/Customs/SyForm/SyForm.vue +27 -6
- package/src/components/Customs/SyRadioGroup/Accessibilite.mdx +263 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +37 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +665 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +324 -0
- package/src/components/Customs/SyRadioGroup/locales.ts +3 -0
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +135 -0
- package/src/components/Customs/SyTabs/SyTabs.vue +1 -1
- package/src/components/Customs/SyTextField/SyTextField.vue +225 -194
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +32 -2
- package/src/components/DataList/DataList.mdx +3 -1
- package/src/components/DataList/DataList.stories.ts +67 -17
- package/src/components/DataList/DataList.vue +13 -1
- package/src/components/DataListGroup/DataListGroup.stories.ts +42 -12
- package/src/components/DataListGroup/DataListGroup.vue +14 -1
- package/src/components/DataListItem/DataListItem.vue +10 -2
- package/src/components/DataListItem/tests/DataListItem.spec.ts +1 -1
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +157 -178
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +5 -0
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +179 -179
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +261 -258
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +234 -827
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +46 -73
- package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +350 -0
- package/src/components/DatePicker/composables/index.ts +4 -0
- package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +270 -0
- package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +61 -3
- package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +198 -0
- package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +36 -2
- package/src/components/DatePicker/composables/tests/useInputHandler.spec.ts +755 -0
- package/src/components/DatePicker/composables/tests/useKeyboardEvents.spec.ts +168 -0
- package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +40 -34
- package/src/components/DatePicker/composables/useAsteriskDisplay.ts +1 -2
- package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +155 -0
- package/src/components/DatePicker/composables/useDatePickerState.ts +163 -0
- package/src/components/DatePicker/composables/useDateRangeInput.ts +4 -8
- package/src/components/DatePicker/composables/useDateTextField.ts +156 -0
- package/src/components/DatePicker/composables/useHolidayHighlighting.ts +64 -0
- package/src/components/DatePicker/composables/useInputHandler.ts +25 -19
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +52 -26
- package/src/components/DatePicker/constants/messages.ts +0 -1
- package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
- package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +16 -8
- package/src/components/ErrorPage/ErrorPage.vue +1 -1
- package/src/components/ErrorPage/tests/ErrorPage.spec.ts +17 -0
- package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +0 -1
- package/src/components/LunarCalendar/LunarCalendar.mdx +33 -0
- package/src/components/LunarCalendar/LunarCalendar.stories.ts +232 -0
- package/src/components/LunarCalendar/LunarCalendar.vue +57 -0
- package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +79 -0
- package/src/components/LunarCalendar/useLunarCalendarRules.ts +96 -0
- package/src/components/LunarCalendar/useLunarCalendarValidation.ts +47 -0
- package/src/components/NotificationBar/NotificationBar.vue +2 -2
- package/src/components/PaginatedTable/PaginatedTable.stories.ts +15 -10
- package/src/components/PaginatedTable/PaginatedTable.vue +24 -35
- package/src/components/PhoneField/PhoneField.vue +102 -83
- package/src/components/SearchListField/tests/SearchListField.spec.ts +7 -53
- package/src/components/SyAlert/SyAlert.vue +5 -2
- package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +24 -72
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +521 -23
- package/src/components/Tables/SyServerTable/SyServerTable.vue +19 -13
- package/src/components/Tables/SyTable/SyTable.stories.ts +391 -18
- package/src/components/Tables/SyTable/SyTable.vue +16 -11
- package/src/components/Tables/common/TableHeader.vue +16 -7
- package/src/components/Tables/common/filters/DateFilter.vue +1 -1
- package/src/components/Tables/common/locales.ts +1 -0
- package/src/components/Tables/common/tableFilterUtils.ts +3 -3
- package/src/components/Tables/common/types.ts +4 -2
- package/src/components/Tables/common/useTableCheckbox.ts +4 -3
- package/src/components/Tables/common/useTableFilter.ts +2 -2
- package/src/components/Tables/common/useTableItems.ts +4 -19
- package/src/components/index.ts +2 -0
- package/src/composables/validation/tests/useFormValidation.spec.ts +251 -0
- package/src/composables/validation/tests/useValidatable.spec.ts +90 -0
- package/src/stories/Accessibilite/Audit/Exemptions-derogations.mdx +241 -0
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +17 -10
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -0
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +160 -106
- package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +2 -1
- package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +20 -0
- package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +10 -0
- package/src/utils/formatNir/formatNir.ts +15 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/insertAt.ts +11 -0
- package/src/utils/rules/isDateValid/IsDateValid.mdx +2 -2
- package/src/utils/rules/isDateValid/IsDateValid.stories.ts +6 -4
- package/src/utils/rules/isDateValid/index.ts +23 -8
- package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +9 -0
- package/src/utils/rules/isExactLength/IsExactLenght.mdx +1 -1
- package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +19 -7
- package/src/utils/rules/isHolidayDay/index.ts +6 -8
- package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +13 -1
- package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +2 -2
- package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +9 -2
- package/src/utils/rules/isNotAfterDate/index.ts +5 -12
- package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +20 -0
- package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +2 -2
- package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +8 -2
- package/src/utils/rules/isNotAfterToday/index.ts +6 -6
- package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +20 -0
- package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +2 -2
- package/src/utils/rules/isNotBeforeDate/index.ts +5 -12
- package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +20 -0
- package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +2 -2
- package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +8 -2
- package/src/utils/rules/isNotBeforeToday/index.ts +6 -6
- package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +19 -0
- package/src/utils/rules/validateDateValue.ts +37 -0
- package/src/vuetifyConfig.ts +6 -2
- package/dist/components/Customs/Selects/SelectBtnField/config.d.ts +0 -11
- package/dist/components/DatePicker/tests/setup.d.ts +0 -75370
- package/dist/components/Tables/common/formatters.d.ts +0 -17
- package/dist/main-CbBVJ_le.js +0 -34377
- package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -70
- package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +0 -8
- package/dist/stories/DesignTokens/TypographyDisplay.d.ts +0 -28
- package/dist/stories/DesignTokens/vue-shims.d.ts +0 -6
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -40
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +0 -369
- package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -21
- package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +0 -100
- package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -25
- package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +0 -245
- package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -45
- package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +0 -787
- package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -46
- package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -111
- package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -17
- package/src/components/Amelipro/StructureMenu/StructureBtn/tests/__snapshots__/StructureBtn.spec.ts.snap +0 -34
- package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -21
- package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +0 -106
- package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -33
- package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +0 -353
- package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -60
- package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +0 -824
- package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -69
- package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +0 -1383
- package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -24
- package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -33
- package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/__snapshots__/UserMenuDetails.spec.ts.snap +0 -3
- package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -34
- package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +0 -101
- package/src/components/Customs/Selects/SelectBtnField/config.ts +0 -11
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -151
- package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -148
- package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -361
- package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -709
- package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -4111
- package/src/components/DatePicker/tests/archiTest.md +0 -33
- package/src/components/DatePicker/tests/navigation.regression.spec.ts +0 -74
- package/src/components/DatePicker/tests/navigation.simple.spec.ts +0 -137
- package/src/components/DatePicker/tests/setup.ts +0 -243
- package/src/components/Tables/common/formatters.ts +0 -72
|
@@ -192,7 +192,7 @@ import '../../styles/shared.css';
|
|
|
192
192
|
|
|
193
193
|
<div className="info-section">
|
|
194
194
|
<h2>🌟 Objectif</h2>
|
|
195
|
-
<p>L'objectif du pré-audit est d'atteindre en semi-autonomie un premier palier de conformité de votre service web avant de convenir d'un réel audit <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr
|
|
195
|
+
<p>L'objectif du pré-audit est d'atteindre en semi-autonomie un premier palier de conformité de votre service web avant de convenir d'un réel audit <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>. La procédure se fait en autonomie par l'équipe de développement du produit. Le relevé des non-conformités relève de la responsabilité de l’équipe de développement, ce kit étant conçu pour guider l’auto-évaluation.</p>
|
|
196
196
|
|
|
197
197
|
<p>Pour prouver ce palier et être éligible à la demande d'audit complet vous devez compléter <a href="/documents/Checklist_pre-audit_CNAM_NOM_DU_PRODUIT.xlsx" target="_blank">ce fichier</a> qui mentionne les exigences requises par la vérification assistée des outils automatisés et la vérification manuelle.</p>
|
|
198
198
|
</div>
|
|
@@ -227,9 +227,9 @@ import '../../styles/shared.css';
|
|
|
227
227
|
|
|
228
228
|
<div className="info-section">
|
|
229
229
|
<h2>👤 Vérification manuelle</h2>
|
|
230
|
-
|
|
231
|
-
<p>L'objectif est de vérifier chacun des 8 points suivants pour chaque page de l'échantillon de test
|
|
232
|
-
|
|
230
|
+
|
|
231
|
+
<p>L'objectif est de vérifier chacun des 8 points suivants pour chaque page de l'échantillon de test. Nous recommandons vivement, au préalable, de naviguer sur la totalité de la page via le lecteur d'écran car il s'agit d'un moyen concret de vérifier si le code sémantique et la navigation au clavier sont réellement conformes. Vous pouvez consulter notre <a href="/?path=/docs/accessibilité-kit-de-pré-audit-outils-lecteurs-d-écran--docs">mode d'emploi sur les lecteurs d'écran</a>.</p>
|
|
232
|
+
|
|
233
233
|
<div className="alert">
|
|
234
234
|
<p><strong>Notation :</strong> Au sein de la check-list, il faudra choisir entre <span className="highlight">"Conforme"</span>, <span className="highlight">"Non conforme"</span>, <span className="highlight">"Non applicable"</span>, <span className="highlight">"Dérogé"</span> ou <span className="highlight">"Non testé"</span> pour chacun des critères.</p>
|
|
235
235
|
<p>Il est possible d'ajouter un commentaire pour expliciter les erreurs relevées, des recommandations ou d'éventuelles questions.</p>
|
|
@@ -238,153 +238,207 @@ import '../../styles/shared.css';
|
|
|
238
238
|
|
|
239
239
|
<div className="verification-card">
|
|
240
240
|
<h3>⌨️ 1. Navigation au clavier</h3>
|
|
241
|
-
|
|
242
|
-
<
|
|
243
|
-
|
|
244
|
-
<h4>
|
|
245
|
-
<
|
|
246
|
-
<li>
|
|
247
|
-
<li>
|
|
248
|
-
<li>
|
|
249
|
-
<li>
|
|
250
|
-
|
|
251
|
-
|
|
241
|
+
|
|
242
|
+
<h4>Objectif</h4>
|
|
243
|
+
<p>S'assurer que toutes les parties sont entièrement navigables au clavier</p>
|
|
244
|
+
<h4>Méthode de test</h4>
|
|
245
|
+
<ol>
|
|
246
|
+
<li>Naviguer via la touche Tab pour se déplacer, Shift+Tab pour revenir en arrière, Entrée/Espace/Flèches/etc. en fonction des composants.</li>
|
|
247
|
+
<li>Tester tous les éléments interactifs : menus, menus déroulants, formulaires, liens, boutons, carrousels, fenêtres modales, etc. Concernant le comportement clavier pour les composants d'interface, se renseigner via les <a href="https://www.w3.org/WAI/ARIA/apg/patterns/">patterns du W3C</a>.</li>
|
|
248
|
+
<li>S'assurer que l'ordre de tabulation est cohérent.</li>
|
|
249
|
+
<li>S'assurer que le focus du clavier reste visible et possède un contraste minimum de 3:1.</li>
|
|
250
|
+
<li>Vérifier qu'aucun piège au clavier n'existe (boucle, etc.).</li>
|
|
251
|
+
</ol>
|
|
252
|
+
<h4>Outil éventuel</h4>
|
|
253
|
+
<p>Aucun</p>
|
|
254
|
+
|
|
252
255
|
<div className="alert">
|
|
253
|
-
<p><strong>Exemple :</strong>
|
|
256
|
+
<p><strong>Exemple :</strong> </p>
|
|
257
|
+
<ul>
|
|
258
|
+
<li>Vérifiez si un utilisateur peut remplir un formulaire de contact en utilisant uniquement les touches de tabulation.</li>
|
|
259
|
+
<li>S'assurer que la navigation via les touches de tabulation reste uniquement au sein de la boîte de dialogue.</li>
|
|
260
|
+
</ul>
|
|
254
261
|
</div>
|
|
255
262
|
</div>
|
|
256
263
|
|
|
257
264
|
<div className="verification-card">
|
|
258
265
|
<h3>📺 2. Éléments visuels et déclenchements automatiques</h3>
|
|
259
|
-
|
|
260
|
-
<
|
|
261
|
-
|
|
262
|
-
<h4>
|
|
263
|
-
<
|
|
264
|
-
<li>
|
|
265
|
-
<li>
|
|
266
|
-
<li>
|
|
267
|
-
</
|
|
268
|
-
|
|
266
|
+
|
|
267
|
+
<h4>Objectif</h4>
|
|
268
|
+
<p>Vérifier que les animations, transitions et autres éléments visuels peuvent être arrêtés, mis en pause ou désactivés par l'utilisateur.</p>
|
|
269
|
+
<h4>Méthode de test</h4>
|
|
270
|
+
<ol>
|
|
271
|
+
<li>Identifier tous les éléments animés, qui clignotent ou se mettent à jour automatiquement sur votre site.</li>
|
|
272
|
+
<li>Vérifier que ces éléments peuvent être arrêtés ou mis en pause par l'utilisateur.</li>
|
|
273
|
+
<li>S'assurer que la durée du mouvement est inférieure ou égale à 5 secondes s'il n'existe aucun moyen d'arrêter ou de masquer le contenu.</li>
|
|
274
|
+
</ol>
|
|
275
|
+
<h4>Outil éventuel</h4>
|
|
276
|
+
<p>Aucun</p>
|
|
277
|
+
|
|
269
278
|
<div className="alert">
|
|
270
|
-
<p><strong>Exemple :</strong> Un carrousel d'images doit pouvoir être arrêté
|
|
279
|
+
<p><strong>Exemple :</strong> Un carrousel d'images doit pouvoir être arrêté par l'utilisateur.</p>
|
|
271
280
|
</div>
|
|
272
281
|
</div>
|
|
273
282
|
|
|
274
283
|
<div className="verification-card">
|
|
275
|
-
<h3>🔗 3. Pertinence des
|
|
276
|
-
|
|
277
|
-
<
|
|
278
|
-
|
|
279
|
-
<h4>
|
|
280
|
-
<
|
|
281
|
-
<li>
|
|
282
|
-
<li
|
|
283
|
-
<li>
|
|
284
|
-
</
|
|
285
|
-
|
|
284
|
+
<h3>🔗 3. Pertinence des libellés et textes alternatifs</h3>
|
|
285
|
+
|
|
286
|
+
<h4>Objectif</h4>
|
|
287
|
+
<p>Les libellés et textes alternatifs des images, liens, boutons doivent être explicite, clair et contextuel, en évitant les termes génériques comme "Logo", "Cliquez ici" ou "En savoir plus".</p>
|
|
288
|
+
<h4>Méthode de test</h4>
|
|
289
|
+
<ol>
|
|
290
|
+
<li>Inspecter les images porteuses d'information et s'assurer qu'elles contiennent un alt pertinent (ou legend pour les balises picture)</li>
|
|
291
|
+
<li>À l'inverse, s'assurer que seules les images de décoration sont ignorées par les technologies d'assistance (ex: aria-hidden="true")</li>
|
|
292
|
+
<li>Vérifier que chaque lien ou bouton a un intitulé qui décrit clairement sa fonction ou sa destination.</li>
|
|
293
|
+
</ol>
|
|
294
|
+
<h4>Outil éventuel</h4>
|
|
295
|
+
<p>Pour les images, le plugin Assistant RGAA permet de mettre en évidence les images considérées avec ou sans alternative textuelle (catégorie 1). La catégorie 6 du même plugin permet de mettre en évidence les liens et liens images.</p>
|
|
296
|
+
|
|
286
297
|
<div className="alert">
|
|
287
|
-
<p><strong>Exemple :</strong
|
|
298
|
+
<p><strong>Exemple :</strong></p>
|
|
299
|
+
<ul>
|
|
300
|
+
<li>Au lieu de "Cliquez ici", préférer "Télécharger le formulaire d'inscription (PDF, 1,2 Mo)"</li>
|
|
301
|
+
<li>Pour une image d'un graphique présentant des données, l'attribut alt pourrait être : <code>alt="Graphique montrant l'évolution des ventes de 2019 à 2023 avec une augmentation de 20% en 2023"</code></li>
|
|
302
|
+
<li>Ajouter un <code>`<span class="sr-only">Fermer le panier</span>`</code> au sein du bouton de l'icône croix de la boîte de dialogue.</li>
|
|
303
|
+
</ul>
|
|
288
304
|
</div>
|
|
289
305
|
</div>
|
|
290
306
|
|
|
291
307
|
<div className="verification-card">
|
|
292
308
|
<h3>📝 4. Formulaires</h3>
|
|
293
|
-
|
|
309
|
+
|
|
310
|
+
<h4>Objectif</h4>
|
|
294
311
|
<p>Assurez-vous que tous les éléments d'un formulaire sont accessibles et compréhensibles pour les utilisateurs, y compris ceux qui utilisent des technologies d'assistance (lecteurs d'écran, commandes vocales, etc.).</p>
|
|
295
|
-
|
|
296
|
-
<h4>
|
|
297
|
-
|
|
312
|
+
|
|
313
|
+
<h4>Méthode de test :</h4>
|
|
314
|
+
|
|
298
315
|
<div className="verification-steps">
|
|
299
316
|
<h5>1. Labels associés aux champs</h5>
|
|
300
|
-
<
|
|
301
|
-
<li>
|
|
302
|
-
<li>
|
|
303
|
-
|
|
317
|
+
<ol>
|
|
318
|
+
<li>Vérifier que chaque champ de formulaire a un label explicite et associé correctement, en utilisant les balises <code><label></code> avec l'attribut <code>for</code> correspondant à l'<code>id</code> du champ de saisie. Ce label ne devra pas disparaître au remplissage.</li>
|
|
319
|
+
<li>Consulter <a href="https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#11.2">le critère RGAA 11.2</a> pour en savoir plus sur la pertinence d'une étiquette associée à un champ de formulaire.</li>
|
|
320
|
+
<li>S'assurer que les étiquettes de champ sont accolées au champ, immédiatement au-dessous ou à droite pour les champ de type `checkbox` ou `radio`, immédiatement au-dessus ou à gauche pour les autres (cas d'un sens de lecture de langue de gauche à droite).</li>
|
|
321
|
+
</ol>
|
|
304
322
|
<div className="alert">
|
|
305
323
|
<p><strong>Exemple :</strong> Pour un champ de saisie de nom, assurez-vous qu'il est bien associé à un label : <code><label for="nom">Nom :</label> <input type="text" id="nom"></code>.</p>
|
|
306
324
|
</div>
|
|
307
|
-
|
|
308
|
-
<h5>2.
|
|
309
|
-
<
|
|
310
|
-
<li>
|
|
311
|
-
<li>
|
|
312
|
-
<li>
|
|
313
|
-
</
|
|
314
|
-
|
|
315
|
-
<h5>3. Groupes de champs
|
|
316
|
-
<
|
|
317
|
-
<li>
|
|
318
|
-
<li>
|
|
319
|
-
</
|
|
320
|
-
|
|
321
|
-
<h5>4.
|
|
322
|
-
<
|
|
323
|
-
<li>
|
|
324
|
-
|
|
325
|
+
|
|
326
|
+
<h5>2. Aide à la saisie, messages d'erreur et validation</h5>
|
|
327
|
+
<ol>
|
|
328
|
+
<li>S'assurer que l'indication de champ obligatoire est visible et qu'il existe un attribut `required` (ou `aria-requied="true"`).</li>
|
|
329
|
+
<li>Vérifier que les aides à la saisie et messages d'erreur sont clairement associés aux champs en cas de saisie incorrecte (annoncé au lecteur d'écran via un `aria-describedby` + ajout de la balise `aria-invalid="true"`).</li>
|
|
330
|
+
<li>Tester que ces messages d'erreur sont visibles, compréhensibles et bien positionnés. Si nécessaire, le message d'erreur devra posséder une suggestion.</li>
|
|
331
|
+
</ol>
|
|
332
|
+
|
|
333
|
+
<h5>3. Groupes de champs</h5>
|
|
334
|
+
<ol>
|
|
335
|
+
<li>Vérifier que les champs de même nature sont regroupés via un `fieldset` ou un `role="group"` (par exemple, champs de type `checkbox` ou `radio`, numéro de sécurité social en 2 champs, etc.)</li>
|
|
336
|
+
<li>S'assurer qu'une légende existe et est pertinente (`legend` si `fielset`; `aria-label` ou `aria-describedby` si `role="group"`).</li>
|
|
337
|
+
</ol>
|
|
338
|
+
|
|
339
|
+
<h5>4. Retour après soumission du formulaire</h5>
|
|
340
|
+
<ol>
|
|
341
|
+
<li>Tester la soumission du formulaire et vérifier le comportement en cas de succès. L'utilisateur doit être informé (changement de page, message de statut, etc.).</li>
|
|
342
|
+
<li>Tester la soumission du formulaire et vérifier le comportement en cas d'erreur. L'utilisateur devra être redirigé, soit vers le premier champ en erreur, soit sur un message d'erreur global situé tout en haut du formulaire.</li>
|
|
343
|
+
</ol>
|
|
344
|
+
|
|
345
|
+
<h5>5. Remplissage automatique</h5>
|
|
346
|
+
<ol>
|
|
347
|
+
<li>Inspecter les champs de formulaire afin de vérifier la présence de l'attribut `autocomplete` et sa pertinence (s'appuyer sur la <a href="https://accessibilite.numerique.gouv.fr/methode/glossaire/#liste-des-valeurs-possibles-pour-l-attribut-autocomplete">liste des valeurs possibles pour l’attribut autocomplete du site officiel <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr></a>)</li>
|
|
348
|
+
<li>Tester la soumission du formulaire et vérifier le comportement en cas d'erreur. L'utilisateur devra être redirigé, soit vers le premier champ en erreur, soit sur un message d'erreur global situé tout en haut du formulaire.</li>
|
|
349
|
+
</ol>
|
|
325
350
|
</div>
|
|
351
|
+
|
|
352
|
+
<h4>Outil éventuel</h4>
|
|
353
|
+
<p>Utilisation du lecteur d'écran pour vérifier la navigation et l'accessibilité des formulaires, tel que l'indication du caractère obligatoire du champ, la liaison du champ aux aides à la saisie ainsi qu'aux messages d'erreurs, le comportement à la soumission du formulaire, etc.</p>
|
|
326
354
|
</div>
|
|
327
355
|
|
|
328
356
|
<div className="verification-card">
|
|
329
|
-
<h3>📃 5. Tableaux
|
|
330
|
-
|
|
331
|
-
<
|
|
332
|
-
|
|
333
|
-
<h4>
|
|
334
|
-
<
|
|
335
|
-
<li>
|
|
336
|
-
<li>
|
|
357
|
+
<h3>📃 5. Tableaux</h3>
|
|
358
|
+
|
|
359
|
+
<h4>Objectif</h4>
|
|
360
|
+
<p>Vérifier que les tableaux de données sont bien structurés</p>
|
|
361
|
+
<h4>Méthode de test</h4>
|
|
362
|
+
<ol>
|
|
363
|
+
<li>S'assurer que les titres des tableaux de données sont sémantiquement rattachés au tableau et sont pertinents.</li>
|
|
364
|
+
<li>S'assurer que tableaux de données complexes (en-têtes n'étant pas qu'en une seule ligne ou une seule colonne) possèdent un résumé pertinent.</li>
|
|
365
|
+
<li>Vérifiez que les cellules d'en-tête sont correctement déclarées avec des balises <code><th></code> et non des balises <code><td></code> stylisées.</li>
|
|
337
366
|
<li>Assurez-vous que les tableaux complexes ont des attributs <code>scope</code> ou des associations entre cellules d'en-tête et cellules de données.</li>
|
|
338
|
-
</
|
|
339
|
-
|
|
367
|
+
</ol>
|
|
368
|
+
<h4>Outil éventuel</h4>
|
|
369
|
+
<p>Inspecteur de code</p>
|
|
370
|
+
|
|
340
371
|
<div className="alert">
|
|
341
|
-
<p><strong>Exemple :</strong>
|
|
372
|
+
<p><strong>Exemple :</strong> </p>
|
|
373
|
+
<ul>
|
|
374
|
+
<li>Le tableau a un titre visible pertinent "Effectif et densité de professionnels de santé libéraux par région - 2016 à 2023" qui est rattaché sémantiquement au tableau via la balise `caption` (ou l'attribut `aria-labelledby`).</li>
|
|
375
|
+
<li>Les en-têtes de colonnes des tableaux utilisent des balises `th` avec l'attribut `scope="col"`.</li>
|
|
376
|
+
</ul>
|
|
342
377
|
</div>
|
|
343
378
|
</div>
|
|
344
379
|
|
|
345
380
|
<div className="verification-card">
|
|
346
|
-
<h3>📬 6. Langue
|
|
347
|
-
|
|
348
|
-
<p>
|
|
349
|
-
|
|
350
|
-
<
|
|
351
|
-
<ul className="verification-steps">
|
|
381
|
+
<h3>📬 6. Langue</h3>
|
|
382
|
+
<h4>Objectif</h4>
|
|
383
|
+
<p>Permettre aux lecteurs d’écran d’utiliser la bonne prononciation.</p>
|
|
384
|
+
<h4>Méthode de test</h4>
|
|
385
|
+
<ol>
|
|
352
386
|
<li>Inspectez le code source de la page (clic droit > "Inspecter" dans le navigateur) et vérifiez que l’attribut `lang="fr"` (ou la langue correspondante) est bien présent dans l’élément `<html>`. S’il s’agit d’une autre langue, elle doit être pertinente ([voir documentation MDN sur l’attribut lang](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/lang))</li>
|
|
353
|
-
<li>
|
|
354
|
-
</
|
|
387
|
+
<li>Repérer les mots/phrases dans une autre langue au sein de la page et vérifier l'existence et la valeur de l’attribut <code>lang</code>.</li>
|
|
388
|
+
</ol>
|
|
389
|
+
<h4>Outil éventuel</h4>
|
|
390
|
+
<p>Inspecteur de code</p>
|
|
391
|
+
|
|
392
|
+
<div className="alert">
|
|
393
|
+
<p><strong>Exemple :</strong> Si votre site est en français, l'élément `<html>` devrait être : `<html lang="fr">`.</p>
|
|
394
|
+
</div>
|
|
355
395
|
</div>
|
|
356
396
|
|
|
357
397
|
<div className="verification-card">
|
|
358
|
-
<h3>📄 7. Titre de la page</h3>
|
|
359
|
-
|
|
360
|
-
<
|
|
361
|
-
|
|
362
|
-
<h4>
|
|
363
|
-
<
|
|
364
|
-
<li>
|
|
365
|
-
<li>
|
|
366
|
-
<li>
|
|
367
|
-
|
|
398
|
+
<h3>📄 7. Titre de la page et hiérarchie des titres</h3>
|
|
399
|
+
|
|
400
|
+
<h4>Objectif</h4>
|
|
401
|
+
<p>Vérifier que la page possède un titre descriptif, unique et pertinent. De plus, s'assurer que la structure des titres au sein de la page est cohérente.</p>
|
|
402
|
+
<h4>Méthode de test</h4>
|
|
403
|
+
<ol>
|
|
404
|
+
<li>Identifier si le titre affiché dans l'onglet du navigateur est pertinent.</li>
|
|
405
|
+
<li>Le contenu de la page devra avoir au moins un titre.</li>
|
|
406
|
+
<li>Analyser les balises de <code>h1</code> à <code>h6</code> en vérifiant la pertinence et la structure (aucun saut de niveau).</li>
|
|
407
|
+
<li>S'assurer que les titres sont sémantiquement correctes (présence d'une balise <code>hx</code> ou balises <code>role="heading" aria-level="x"</code></li>
|
|
408
|
+
</ol>
|
|
409
|
+
<h4>Outil éventuel</h4>
|
|
410
|
+
<p>Extension HeadingsMap (<a href="/?path=/docs/accessibilité-kit-de-pré-audit-outils-introduction--docs">voir la page des outils</a>)</p>
|
|
411
|
+
|
|
412
|
+
<div className="alert">
|
|
413
|
+
<p><strong>Exemple :</strong></p>
|
|
414
|
+
<ul>
|
|
415
|
+
<li>Le titre de la page sur un annuaire pourrait être "Annuaire (page 1 sur 5) - [Nom du service]" et non "Page 1".</li>
|
|
416
|
+
<li>Les titres "Logement", "Véhicule" et "Emploi" doivent être un sous-niveau du titre "Aides financières".</li>
|
|
417
|
+
</ul>
|
|
418
|
+
</div>
|
|
368
419
|
</div>
|
|
369
420
|
|
|
370
421
|
<div className="verification-card">
|
|
371
|
-
<h3>📹 8.
|
|
372
|
-
|
|
373
|
-
<
|
|
374
|
-
|
|
375
|
-
<h4>
|
|
376
|
-
<
|
|
377
|
-
<li
|
|
378
|
-
<li>
|
|
379
|
-
<li>
|
|
380
|
-
|
|
422
|
+
<h3>📹 8. Contenus multimédia</h3>
|
|
423
|
+
|
|
424
|
+
<h4>Objectif</h4>
|
|
425
|
+
<p>Vérifier que les vidéos et autres contenus multimédia temporels possèdent, si nécessaire, une transcription textuelle, une audiodescription synchronisée et/ou des sous-titres synchronisés. Concernant les médias non temporels, s'assurer qu'ils possèdent une alternative ou sont accessibles par le clavier et tout dispositif de pointage.</p>
|
|
426
|
+
<h4>Méthode de test</h4>
|
|
427
|
+
<ol>
|
|
428
|
+
<li>Écouter les vidéos sans regarder l’écran et statuer sur la pertinence de l'audiodescription.</li>
|
|
429
|
+
<li>Lire une vidéo avec sous-titres activés et statuer sur leur pertinence.</li>
|
|
430
|
+
<li>Vérifier que toute transcription textuelle exprime tout ce qui est retranscrit oralement et suivent la chronologie du média.</li>
|
|
431
|
+
<li>S'assurer que tout son déclenché automatiquement peut, soit être stoppé, soit contrôlé indépendemment du volume, soit possède une durée inféreure ou égale à 3 secondes.</li>
|
|
432
|
+
</ol>
|
|
433
|
+
<h4>Outil éventuel</h4>
|
|
434
|
+
<p>Aucun</p>
|
|
381
435
|
</div>
|
|
382
436
|
|
|
383
437
|
<div className="info-section">
|
|
384
438
|
<h2>💬 Conclusion</h2>
|
|
385
|
-
|
|
439
|
+
|
|
386
440
|
<p>En suivant ces vérifications manuelles et automatisées, vous pourrez atteindre un premier niveau de conformité d'accessibilité pour votre service web. N'hésitez pas à documenter vos résultats et à solliciter de l'aide si nécessaire.</p>
|
|
387
|
-
|
|
441
|
+
|
|
388
442
|
<div className="alert">
|
|
389
443
|
<p><strong>Rappel :</strong> Complétez <a href="/documents/Checklist_pre-audit_CNAM_NOM_DU_PRODUIT.xlsx" target="_blank">le fichier de check-list</a> pour chaque page de votre échantillon afin de prouver votre niveau de conformité.</p>
|
|
390
444
|
</div>
|
|
@@ -282,6 +282,26 @@ export default {
|
|
|
282
282
|
</script>
|
|
283
283
|
`}/>
|
|
284
284
|
|
|
285
|
+
## formatNir
|
|
286
|
+
|
|
287
|
+
Cette fonction formate un numéro de sécurité sociale (NIR) pour le rendre plus lisible en ajoutant des espaces à des positions fixes.
|
|
288
|
+
|
|
289
|
+
### Importation
|
|
290
|
+
|
|
291
|
+
<Source dark code={`import { formatNir } from '@cnamts/synpase'
|
|
292
|
+
`}/>
|
|
293
|
+
|
|
294
|
+
### Utilisation
|
|
295
|
+
|
|
296
|
+
<Source dark code={`// NIR sans clé
|
|
297
|
+
formatNir('1234567890123')
|
|
298
|
+
// '1 23 45 67 890 123'
|
|
299
|
+
|
|
300
|
+
// NIR avec clé
|
|
301
|
+
formatNir('123456789012345')
|
|
302
|
+
// '1 23 45 67 890 123 45'
|
|
303
|
+
`}/>
|
|
304
|
+
|
|
285
305
|
## Bonnes pratiques
|
|
286
306
|
|
|
287
307
|
- Utilisez `formatDate` pour l'affichage des dates à l'utilisateur
|
|
@@ -96,6 +96,16 @@ console.log(parseDate('15/01/2023').toISOString()) // '2023-01-15T00:00:00.000Z'
|
|
|
96
96
|
console.log(parseDate('2023-01-15').toISOString()) // '2023-01-15T00:00:00.000Z'
|
|
97
97
|
`}/>
|
|
98
98
|
|
|
99
|
+
### formatNir
|
|
100
|
+
|
|
101
|
+
Formate un numéro de sécurité sociale (NIR) pour le rendre plus lisible en ajoutant des espaces à des positions fixes.
|
|
102
|
+
|
|
103
|
+
<Source dark code={`import { formatNir } from '@cnamts/synpase'
|
|
104
|
+
|
|
105
|
+
console.log(formatNir('1234567890123')) // '1 23 45 67 890 123'
|
|
106
|
+
console.log(formatNir('123456789012345')) // '1 23 45 67 890 123 45'
|
|
107
|
+
`}/>
|
|
108
|
+
|
|
99
109
|
## Utilitaires de validation
|
|
100
110
|
|
|
101
111
|
### propValidator
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { insertAt } from '../insertAt'
|
|
2
|
+
|
|
3
|
+
const SPACE_CHARACTER = ' '
|
|
4
|
+
const SPACE_POSITIONS = [13, 10, 7, 5, 3, 1]
|
|
5
|
+
|
|
6
|
+
/** Format a NIR (with or without key) */
|
|
7
|
+
export function formatNir(nir: string): string {
|
|
8
|
+
let newValue = nir
|
|
9
|
+
|
|
10
|
+
SPACE_POSITIONS.forEach((position: number) => {
|
|
11
|
+
newValue = insertAt(newValue, position, SPACE_CHARACTER)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
return newValue.trim()
|
|
15
|
+
}
|
package/src/utils/index.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { LocalStorageUtility } from './localStorageUtility'
|
|
|
9
9
|
export { calcHumanFileSize } from './calcHumanFileSize'
|
|
10
10
|
export { convertToUnit } from './convertToUnit'
|
|
11
11
|
export { formatDate } from './formatDate'
|
|
12
|
+
export { formatNir } from './formatNir/formatNir'
|
|
12
13
|
export { parseDate } from './parseDate'
|
|
13
14
|
|
|
14
15
|
// ===========================
|
|
@@ -27,7 +27,7 @@ import * as IsDateValidStories from './IsDateValid.stories';
|
|
|
27
27
|
|
|
28
28
|
<div className="header">
|
|
29
29
|
<h1>Règle de validation `isDateValid`</h1>
|
|
30
|
-
<p>La règle de validation `isDateValid` permet de vérifier si une chaîne de caractères
|
|
30
|
+
<p>La règle de validation `isDateValid` permet de vérifier si une valeur (chaîne de caractères ou objet `Date`) correspond à une date au format *DD/MM/YYYY*. </p>
|
|
31
31
|
</div>
|
|
32
32
|
|
|
33
33
|
## Usage
|
|
@@ -90,7 +90,7 @@ isDateValidFn(
|
|
|
90
90
|
monthNotMatch: string;
|
|
91
91
|
notALeapYear: string;
|
|
92
92
|
}
|
|
93
|
-
): (value: string) => true | string;
|
|
93
|
+
): (value: string | Date) => true | string;
|
|
94
94
|
`} />
|
|
95
95
|
|
|
96
96
|
### Arguments
|
|
@@ -59,19 +59,21 @@ export const CustomMessage: StoryObj<unknown> = {
|
|
|
59
59
|
return {
|
|
60
60
|
components: { VTextField },
|
|
61
61
|
setup() {
|
|
62
|
+
const date = ref('31/11/1993')
|
|
62
63
|
const dateValid = isDateValidFn({
|
|
63
64
|
default: 'The date you entered is invalid',
|
|
64
65
|
wrongFormat: 'The format you entered is invalid',
|
|
65
66
|
monthNotMatch: 'The day you entered exceeds the number of days in the corresponding month',
|
|
66
67
|
notALeapYear: 'The day you entered is invalid because the corresponding year is not a leap year',
|
|
67
68
|
})
|
|
68
|
-
return { dateValid }
|
|
69
|
+
return { date, dateValid }
|
|
69
70
|
},
|
|
70
71
|
template: `
|
|
71
72
|
<VTextField
|
|
73
|
+
v-model="date"
|
|
72
74
|
:rules="[dateValid]"
|
|
73
75
|
label="Date"
|
|
74
|
-
validate-on="blur"
|
|
76
|
+
validate-on="eager blur"
|
|
75
77
|
variant="outlined"
|
|
76
78
|
/>
|
|
77
79
|
`,
|
|
@@ -86,7 +88,7 @@ export const CustomMessage: StoryObj<unknown> = {
|
|
|
86
88
|
import { VTextField } from 'vuetify/components'
|
|
87
89
|
import { isDateValidFn } from '@cnamts/synapse'
|
|
88
90
|
|
|
89
|
-
const isDateValidCustom =
|
|
91
|
+
const isDateValidCustom = isDateValidFn({
|
|
90
92
|
default: 'The date you entered is invalid',
|
|
91
93
|
wrongFormat: 'The format you entered is invalid',
|
|
92
94
|
monthNotMatch: 'The day you entered exceeds the number of days in the corresponding month',
|
|
@@ -102,7 +104,7 @@ export const CustomMessage: StoryObj<unknown> = {
|
|
|
102
104
|
<VTextField
|
|
103
105
|
:rules="[isDateValidCustom]"
|
|
104
106
|
label="Date"
|
|
105
|
-
validate-on="blur"
|
|
107
|
+
validate-on="eager blur"
|
|
106
108
|
variant="outlined"
|
|
107
109
|
/>
|
|
108
110
|
</template>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ruleMessage } from '@/utils/ruleMessage'
|
|
2
|
+
import { formatDate } from '@/utils/formatDate'
|
|
3
|
+
import dayjs from 'dayjs'
|
|
2
4
|
import type {
|
|
3
5
|
ValidationRule,
|
|
4
6
|
ValidationResult,
|
|
@@ -18,14 +20,27 @@ export function isDateValidFn(
|
|
|
18
20
|
if (!value) {
|
|
19
21
|
return true
|
|
20
22
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
let validationResult: string | true | false
|
|
24
|
+
if (value instanceof Date) {
|
|
25
|
+
const formatted = formatDate(dayjs(value))
|
|
26
|
+
validationResult = checkIfDateValid(formatted)
|
|
27
|
+
}
|
|
28
|
+
else if (typeof value === 'string') {
|
|
29
|
+
validationResult = checkIfDateValid(value)
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return ruleMessage(errorMessages, 'default')
|
|
33
|
+
}
|
|
34
|
+
if (validationResult === true) {
|
|
35
|
+
return true
|
|
36
|
+
}
|
|
37
|
+
if (typeof validationResult === 'string') {
|
|
38
|
+
if (Object.prototype.hasOwnProperty.call(errorMessages, validationResult)) {
|
|
39
|
+
return ruleMessage(errorMessages, validationResult)
|
|
40
|
+
}
|
|
41
|
+
return ruleMessage(errorMessages, 'default')
|
|
42
|
+
}
|
|
43
|
+
return ruleMessage(errorMessages, 'default')
|
|
29
44
|
}
|
|
30
45
|
}
|
|
31
46
|
|
|
@@ -3,6 +3,7 @@ import { describe, it, expect } from 'vitest'
|
|
|
3
3
|
|
|
4
4
|
const validDate = '14/09/2019'
|
|
5
5
|
const invalidDate = '99/99/9999'
|
|
6
|
+
const validDateObject = new Date(2019, 8, 14)
|
|
6
7
|
|
|
7
8
|
describe('isDateValid', () => {
|
|
8
9
|
it('returns an error when the date is not valid', () => {
|
|
@@ -17,6 +18,14 @@ describe('isDateValid', () => {
|
|
|
17
18
|
expect(isDateValid('')).toBe(true)
|
|
18
19
|
})
|
|
19
20
|
|
|
21
|
+
it('returns true when the value is a valid Date object', () => {
|
|
22
|
+
expect(isDateValid(validDateObject)).toBe(true)
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('returns an error when the value type is not supported', () => {
|
|
26
|
+
expect(typeof isDateValid(123 as unknown as string)).toBe('string')
|
|
27
|
+
})
|
|
28
|
+
|
|
20
29
|
it('works with custom error messages', () => {
|
|
21
30
|
const rule = isDateValidFn({
|
|
22
31
|
default: 'test',
|