@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
|
@@ -15,6 +15,20 @@ export default {
|
|
|
15
15
|
description: 'Active ou désactive la validation automatique lors de la soumission',
|
|
16
16
|
defaultValue: true,
|
|
17
17
|
},
|
|
18
|
+
default: {
|
|
19
|
+
description: 'Contenu du formulaire, généralement des champs de formulaire comme SyTextField, SySelect, etc.',
|
|
20
|
+
table: {
|
|
21
|
+
type: {
|
|
22
|
+
summary: `
|
|
23
|
+
{
|
|
24
|
+
'isValid': boolean,
|
|
25
|
+
'validate': () => Promise<boolean>,
|
|
26
|
+
'reset': () => void,
|
|
27
|
+
'clear': () => void
|
|
28
|
+
}`,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
18
32
|
},
|
|
19
33
|
parameters: {
|
|
20
34
|
docs: {
|
|
@@ -41,9 +55,8 @@ export const Basic: Story = {
|
|
|
41
55
|
{ type: 'required', options: { message: 'L\'email est obligatoire' } },
|
|
42
56
|
]
|
|
43
57
|
|
|
44
|
-
const submitForm = async () => {
|
|
45
|
-
|
|
46
|
-
if (isValid) {
|
|
58
|
+
const submitForm = async (e: { isValid: boolean }) => {
|
|
59
|
+
if (e.isValid) {
|
|
47
60
|
alert('Formulaire valide !')
|
|
48
61
|
}
|
|
49
62
|
else {
|
|
@@ -65,16 +78,13 @@ export const Basic: Story = {
|
|
|
65
78
|
</SyForm>
|
|
66
79
|
`,
|
|
67
80
|
}),
|
|
68
|
-
args: {
|
|
69
|
-
validateOnSubmit: true,
|
|
70
|
-
},
|
|
71
81
|
parameters: {
|
|
72
82
|
sourceCode: [
|
|
73
83
|
{
|
|
74
84
|
name: 'Template',
|
|
75
85
|
code: `
|
|
76
86
|
<template>
|
|
77
|
-
<SyForm ref="form"
|
|
87
|
+
<SyForm ref="form" @submit="onSubmit">
|
|
78
88
|
<div class="d-flex flex-column gap-4">
|
|
79
89
|
<SyTextField v-model="name" label="Nom" required class="mb-2" />
|
|
80
90
|
<SyTextField v-model="email" label="Email" :custom-rules="emailRules" class="mb-2" />
|
|
@@ -138,9 +148,8 @@ export const CustomValidation: Story = {
|
|
|
138
148
|
{ type: 'required', options: { message: 'Veuillez confirmer le mot de passe' } },
|
|
139
149
|
])
|
|
140
150
|
|
|
141
|
-
const submitForm = async () => {
|
|
142
|
-
|
|
143
|
-
if (isValid) {
|
|
151
|
+
const submitForm = async (e: { isValid: boolean }) => {
|
|
152
|
+
if (e.isValid) {
|
|
144
153
|
alert('Inscription réussie !')
|
|
145
154
|
}
|
|
146
155
|
else {
|
|
@@ -162,7 +171,7 @@ export const CustomValidation: Story = {
|
|
|
162
171
|
},
|
|
163
172
|
template: `
|
|
164
173
|
<div>
|
|
165
|
-
<SyForm ref="form" v-bind="args" @submit="submitForm">
|
|
174
|
+
<SyForm ref="form" v-bind="args" @submit="submitForm" :validate-on-submit="false">
|
|
166
175
|
<div class="d-flex flex-column gap-4">
|
|
167
176
|
<SyTextField v-model="username" label="Nom d'utilisateur" required class="mb-2" />
|
|
168
177
|
<SyTextField v-model="password" label="Mot de passe" type="password" :custom-rules="passwordRules" class="mb-2" />
|
|
@@ -190,7 +199,7 @@ export const CustomValidation: Story = {
|
|
|
190
199
|
code: `
|
|
191
200
|
<template>
|
|
192
201
|
<div>
|
|
193
|
-
<SyForm ref="form" @submit="onSubmit">
|
|
202
|
+
<SyForm ref="form" @submit="onSubmit" :validate-on-submit="false">
|
|
194
203
|
<div class="d-flex flex-column gap-4">
|
|
195
204
|
<SyTextField v-model="username" label="Nom d'utilisateur" required class="mb-2" />
|
|
196
205
|
<SyTextField v-model="password" label="Mot de passe" type="password" :custom-rules="passwordRules" class="mb-2" />
|
|
@@ -287,9 +296,8 @@ export const MixedFields: Story = {
|
|
|
287
296
|
{ text: 'Italie', value: 'it' },
|
|
288
297
|
]
|
|
289
298
|
|
|
290
|
-
const submitForm = async () => {
|
|
291
|
-
|
|
292
|
-
if (isValid) {
|
|
299
|
+
const submitForm = async (e: { isValid: boolean }) => {
|
|
300
|
+
if (e.isValid) {
|
|
293
301
|
alert(`Formulaire valide ! Données: ${JSON.stringify(formData.value)}`)
|
|
294
302
|
}
|
|
295
303
|
else {
|
|
@@ -318,7 +326,7 @@ export const MixedFields: Story = {
|
|
|
318
326
|
name: 'Template',
|
|
319
327
|
code: `
|
|
320
328
|
<template>
|
|
321
|
-
<SyForm ref="form"
|
|
329
|
+
<SyForm ref="form" @submit="submitForm">
|
|
322
330
|
<div class="d-flex flex-column gap-4">
|
|
323
331
|
<SyTextField v-model="formData.name" label="Nom complet" required class="mb-2" />
|
|
324
332
|
<SyTextField v-model="formData.email" label="Email" :customRules="emailCustomRules" class="mb-2" />
|
|
@@ -337,16 +345,16 @@ export const MixedFields: Story = {
|
|
|
337
345
|
<script setup lang="ts">
|
|
338
346
|
|
|
339
347
|
const formData = ref({
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
348
|
+
name: '',
|
|
349
|
+
email: '',
|
|
350
|
+
country: '',
|
|
343
351
|
})
|
|
344
352
|
|
|
345
353
|
const countries = [
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
354
|
+
{ text: 'France', value: 'fr' },
|
|
355
|
+
{ text: 'Allemagne', value: 'de' },
|
|
356
|
+
{ text: 'Espagne', value: 'es' },
|
|
357
|
+
{ text: 'Italie', value: 'it' },
|
|
350
358
|
]
|
|
351
359
|
|
|
352
360
|
const emailCustomRules = [
|
|
@@ -360,10 +368,10 @@ export const MixedFields: Story = {
|
|
|
360
368
|
{ type: 'required', options: { message: "L'email est obligatoire" } },
|
|
361
369
|
]
|
|
362
370
|
|
|
363
|
-
const
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
371
|
+
const submitForm = (event: { isValid: boolean }) => {
|
|
372
|
+
if (event.isValid) {
|
|
373
|
+
alert('Formulaire valide ! Données: ' + JSON.stringify(formData.value))
|
|
374
|
+
}
|
|
367
375
|
}
|
|
368
376
|
</script>
|
|
369
377
|
`,
|
|
@@ -386,9 +394,8 @@ export const Reset: Story = {
|
|
|
386
394
|
{ type: 'required', options: { message: 'L\'email est obligatoire' } },
|
|
387
395
|
]
|
|
388
396
|
|
|
389
|
-
const submitForm = async () => {
|
|
390
|
-
|
|
391
|
-
if (isValid) {
|
|
397
|
+
const submitForm = async (e: { isValid: boolean }) => {
|
|
398
|
+
if (e.isValid) {
|
|
392
399
|
alert('Formulaire valide !')
|
|
393
400
|
}
|
|
394
401
|
else {
|
|
@@ -416,16 +423,13 @@ export const Reset: Story = {
|
|
|
416
423
|
</SyForm>
|
|
417
424
|
`,
|
|
418
425
|
}),
|
|
419
|
-
args: {
|
|
420
|
-
validateOnSubmit: true,
|
|
421
|
-
},
|
|
422
426
|
parameters: {
|
|
423
427
|
sourceCode: [
|
|
424
428
|
{
|
|
425
429
|
name: 'Template',
|
|
426
430
|
code: `
|
|
427
431
|
<template>
|
|
428
|
-
<SyForm ref="form"
|
|
432
|
+
<SyForm ref="form" @submit="submitForm" @reset="onFormReset">
|
|
429
433
|
<div class="d-flex flex-column gap-4">
|
|
430
434
|
<SyTextField v-model="name" label="Nom" required class="mb-2" />
|
|
431
435
|
<SyTextField v-model="email" label="Email" :custom-rules="emailRules" class="mb-2" />
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
import { ref } from 'vue'
|
|
3
3
|
import { useFormValidation } from '@/composables/validation/useFormValidation'
|
|
4
4
|
|
|
5
|
-
const props = defineProps<{
|
|
5
|
+
const props = withDefaults(defineProps<{
|
|
6
6
|
validateOnSubmit?: boolean
|
|
7
|
-
}>()
|
|
7
|
+
}>(), {
|
|
8
|
+
validateOnSubmit: true,
|
|
9
|
+
})
|
|
8
10
|
|
|
9
11
|
const emit = defineEmits<{
|
|
10
12
|
(e: 'submit', value: { isValid: boolean }): void
|
|
@@ -15,6 +17,7 @@
|
|
|
15
17
|
const form = ref<InstanceType<typeof import('vuetify/components').VForm> | null>(null)
|
|
16
18
|
|
|
17
19
|
const { validateAll, clearAll, resetAll } = useFormValidation()
|
|
20
|
+
const isValid = ref<boolean>(true)
|
|
18
21
|
|
|
19
22
|
// Methode de validation globale qui combine Vuetify et nos composants personnalises
|
|
20
23
|
const validate = async () => {
|
|
@@ -45,15 +48,19 @@
|
|
|
45
48
|
const customComponentsValid = await validateAll()
|
|
46
49
|
|
|
47
50
|
// Le formulaire est valide si les deux sont valides
|
|
48
|
-
|
|
51
|
+
isValid.value = vuetifyValid && customComponentsValid
|
|
52
|
+
|
|
53
|
+
return isValid.value
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
const reset = () => {
|
|
52
57
|
// Reset custom components values
|
|
58
|
+
clearAll()
|
|
53
59
|
resetAll()
|
|
54
60
|
// Reset field values and validations for Vuetify form
|
|
55
61
|
form.value?.reset()
|
|
56
62
|
form.value?.resetValidation()
|
|
63
|
+
isValid.value = true
|
|
57
64
|
// Notify consumers so they can clear external models (e.g., v-model refs)
|
|
58
65
|
emit('reset')
|
|
59
66
|
}
|
|
@@ -63,7 +70,16 @@
|
|
|
63
70
|
// Clear Vuetify internal validation state
|
|
64
71
|
form.value?.resetValidation()
|
|
65
72
|
// Clear custom components validation states registered in the form
|
|
73
|
+
isValid.value = true
|
|
74
|
+
clearAll()
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const handleReset = () => {
|
|
66
78
|
clearAll()
|
|
79
|
+
resetAll()
|
|
80
|
+
form.value?.resetValidation()
|
|
81
|
+
isValid.value = true
|
|
82
|
+
emit('reset')
|
|
67
83
|
}
|
|
68
84
|
|
|
69
85
|
// Gestion de la soumission du formulaire
|
|
@@ -88,9 +104,14 @@
|
|
|
88
104
|
<template>
|
|
89
105
|
<v-form
|
|
90
106
|
ref="form"
|
|
91
|
-
@submit.prevent
|
|
92
|
-
@
|
|
107
|
+
@submit.prevent="handleSubmit"
|
|
108
|
+
@reset="handleReset"
|
|
93
109
|
>
|
|
94
|
-
<slot
|
|
110
|
+
<slot
|
|
111
|
+
:is-valid="isValid"
|
|
112
|
+
:validate="validate"
|
|
113
|
+
:reset="reset"
|
|
114
|
+
:clear="clearValidation"
|
|
115
|
+
/>
|
|
95
116
|
</v-form>
|
|
96
117
|
</template>
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { Meta, Title, Subtitle, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
+
import * as SyRadioGroupStories from './SyRadioGroup.stories';
|
|
3
|
+
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
|
|
4
|
+
import '../../../stories/styles/shared.css';
|
|
5
|
+
|
|
6
|
+
<Meta of={SyRadioGroupStories} />
|
|
7
|
+
|
|
8
|
+
<div className="accessibility-guide">
|
|
9
|
+
<div className="header">
|
|
10
|
+
<h1>Guide d'Accessibilité du Composant SyRadioGroup</h1>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div className="intro-section">
|
|
14
|
+
<img
|
|
15
|
+
src={AccessibilityIcon}
|
|
16
|
+
alt="Icône d'accessibilité"
|
|
17
|
+
className="accessibility-icon"
|
|
18
|
+
/>
|
|
19
|
+
<p className="intro-text">
|
|
20
|
+
Le composant SyRadioGroup a été conçu en suivant rigoureusement les recommandations d'accessibilité du W3C,
|
|
21
|
+
<a href="https://www.w3.org/WAI/ARIA/apg/patterns/radio/examples/radio/#support-notice-header/" target="_blank" rel="noopener noreferrer"></a>.
|
|
22
|
+
Ce guide détaille comment notre implémentation respecte ces standards et garantit une expérience utilisateur inclusive.
|
|
23
|
+
</p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div className="criteria-section">
|
|
27
|
+
<h2>Critères d'accessibilité respectés</h2>
|
|
28
|
+
|
|
29
|
+
<div className="criteria-card">
|
|
30
|
+
<div className="criteria-header">
|
|
31
|
+
<span className="criteria-icon">🔍</span>
|
|
32
|
+
<h3>Structure sémantique</h3>
|
|
33
|
+
</div>
|
|
34
|
+
<ul>
|
|
35
|
+
<li><strong>Rôles ARIA appropriés</strong> : <code>role="radio"</code> pour le bouton radio</li>
|
|
36
|
+
<li><strong>État du bouton</strong> : <code>aria-checked</code> avec les valeurs <code>true</code>, <code>false</code></li>
|
|
37
|
+
<li><strong>Étiquetage explicite</strong> : Association claire entre le radio bouton et son label</li>
|
|
38
|
+
</ul>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<div className="criteria-card">
|
|
42
|
+
<div className="criteria-header">
|
|
43
|
+
<span className="criteria-icon">⌨️</span>
|
|
44
|
+
<h3>Navigation clavier complète</h3>
|
|
45
|
+
</div>
|
|
46
|
+
<ul>
|
|
47
|
+
<li><strong>Fleche haut/ fleche bas </strong> : Pour naviguer entre les boutons radio</li>
|
|
48
|
+
<li><strong>Touche Tab</strong> : Navigation séquentielle entre les boutons radio</li>
|
|
49
|
+
<li><strong>Focus visible</strong> : Indication claire de l'élément actuellement focalisé</li>
|
|
50
|
+
<li><strong>Gestion des états multiples</strong> : Cycle entre les états non selectionné, selectionné</li>
|
|
51
|
+
</ul>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div className="criteria-card">
|
|
55
|
+
<div className="criteria-header">
|
|
56
|
+
<span className="criteria-icon">📱</span>
|
|
57
|
+
<h3>États et retours d'information</h3>
|
|
58
|
+
</div>
|
|
59
|
+
<ul>
|
|
60
|
+
<li><strong>État de sélection</strong> : <code>aria-checked</code> indique si le bouton est selectionné, non selectionné</li>
|
|
61
|
+
<li><strong>État de désactivation</strong> : <code>aria-disabled</code> signale les éléments non disponibles</li>
|
|
62
|
+
<li><strong>Validation visuelle</strong> : Couleurs et icônes spécifiques pour les états d'erreur, d'avertissement et de succès</li>
|
|
63
|
+
</ul>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div className="criteria-card">
|
|
67
|
+
<div className="criteria-header">
|
|
68
|
+
<span className="criteria-icon">🎨</span>
|
|
69
|
+
<h3>Personnalisation accessible</h3>
|
|
70
|
+
</div>
|
|
71
|
+
<ul>
|
|
72
|
+
<li><strong>Contraste configurable</strong> : Options de couleurs pour garantir un contraste suffisant</li>
|
|
73
|
+
<li><strong>Taille et espacement</strong> : Dimensions adaptées pour faciliter l'interaction tactile</li>
|
|
74
|
+
<li><strong>Compatibilité avec le mode contraste élevé</strong> : Utilisation de <code>currentColor</code> pour s'adapter aux paramètres système</li>
|
|
75
|
+
<li><strong>Densité ajustable</strong> : Options de densité pour s'adapter aux besoins des utilisateurs</li>
|
|
76
|
+
</ul>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<div className="demo-section">
|
|
81
|
+
<h2>Démonstration interactive</h2>
|
|
82
|
+
<p>
|
|
83
|
+
Explorez ci-dessous un exemple de SyRadioGroup entièrement accessible avec état indéterminé.
|
|
84
|
+
Essayez de naviguer en utilisant uniquement votre clavier (fleche haut/bas pour naviguer, Espace pour activer) pour tester l'accessibilité.
|
|
85
|
+
</p>
|
|
86
|
+
<Primary />
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<div className="best-practices">
|
|
90
|
+
<h2>Bonnes pratiques d'utilisation</h2>
|
|
91
|
+
<ul>
|
|
92
|
+
<li>Utilisez des libellés clairs et concis pour décrire l'action</li>
|
|
93
|
+
<li>Regroupez les boutons radio dans un radiogroup une légende explicative</li>
|
|
94
|
+
<li>Évitez de modifier l'état d'un bouton automatiquement sans action utilisateur explicite</li>
|
|
95
|
+
<li>Assurez-vous que la taille de la zone cliquable est suffisante (au moins 44×44 pixels pour les interfaces tactiles)</li>
|
|
96
|
+
<li>Fournissez un retour visuel et textuel clair pour les erreurs de validation</li>
|
|
97
|
+
</ul>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<div className="resources-section">
|
|
101
|
+
<h2>Ressources supplémentaires</h2>
|
|
102
|
+
<ul>
|
|
103
|
+
<li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/radio/" target="_blank" rel="noopener noreferrer">Guide des pratiques d'auteur WAI-ARIA</a></li>
|
|
104
|
+
<li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/radio/examples/radio/#support-notice-header/" target="_blank" rel="noopener noreferrer">Exempler radiogroup WAI-ARIA</a></li>
|
|
105
|
+
<li><a href="https://www.w3.org/WAI/WCAG21/quickref/" target="_blank" rel="noopener noreferrer">Référence rapide WCAG 2.1</a></li>
|
|
106
|
+
<li><a href="https://www.w3.org/TR/wai-aria-1.2/#radio" target="_blank" rel="noopener noreferrer">Spécification WAI-ARIA 1.2 pour le rôle radio</a></li>
|
|
107
|
+
</ul>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
<style>
|
|
112
|
+
{`
|
|
113
|
+
.accessibility-guide {
|
|
114
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
115
|
+
max-width: 1200px;
|
|
116
|
+
margin: 0 auto;
|
|
117
|
+
padding: 20px;
|
|
118
|
+
color: #333;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.intro-section {
|
|
122
|
+
display: flex;
|
|
123
|
+
align-items: center;
|
|
124
|
+
margin-bottom: 30px;
|
|
125
|
+
background-color: #f8f9fa;
|
|
126
|
+
padding: 20px;
|
|
127
|
+
border-radius: 8px;
|
|
128
|
+
border-left: 5px solid #0077cc;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.accessibility-icon {
|
|
132
|
+
width: 60px;
|
|
133
|
+
height: 60px;
|
|
134
|
+
margin-right: 20px;
|
|
135
|
+
flex-shrink: 0;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.intro-text {
|
|
139
|
+
font-size: 1.1em;
|
|
140
|
+
line-height: 1.6;
|
|
141
|
+
margin: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.criteria-section {
|
|
145
|
+
margin-bottom: 40px;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.criteria-section h2,
|
|
149
|
+
.demo-section h2,
|
|
150
|
+
.tri-state-section h2,
|
|
151
|
+
.parent-child-section h2,
|
|
152
|
+
.best-practices h2,
|
|
153
|
+
.resources-section h2 {
|
|
154
|
+
border-bottom: 2px solid #eaecef;
|
|
155
|
+
padding-bottom: 10px;
|
|
156
|
+
margin-top: 30px;
|
|
157
|
+
margin-bottom: 20px;
|
|
158
|
+
color: #0077cc;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.criteria-card {
|
|
162
|
+
background-color: #fff;
|
|
163
|
+
border-radius: 8px;
|
|
164
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
165
|
+
padding: 20px;
|
|
166
|
+
margin-bottom: 20px;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.criteria-header {
|
|
170
|
+
display: flex;
|
|
171
|
+
align-items: center;
|
|
172
|
+
margin-bottom: 15px;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.criteria-icon {
|
|
176
|
+
font-size: 1.8em;
|
|
177
|
+
margin-right: 15px;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.criteria-header h3 {
|
|
181
|
+
margin: 0;
|
|
182
|
+
font-size: 1.3em;
|
|
183
|
+
color: #0077cc;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.criteria-card ul {
|
|
187
|
+
margin: 0;
|
|
188
|
+
padding-left: 20px;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.criteria-card li {
|
|
192
|
+
margin-bottom: 8px;
|
|
193
|
+
line-height: 1.5;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.demo-section {
|
|
197
|
+
background-color: #f8f9fa;
|
|
198
|
+
padding: 20px;
|
|
199
|
+
border-radius: 8px;
|
|
200
|
+
margin-bottom: 40px;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.tri-state-section,
|
|
204
|
+
.parent-child-section {
|
|
205
|
+
background-color: #f0f7ff;
|
|
206
|
+
padding: 20px;
|
|
207
|
+
border-radius: 8px;
|
|
208
|
+
margin-bottom: 30px;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.tri-state-section p,
|
|
212
|
+
.parent-child-section p {
|
|
213
|
+
line-height: 1.6;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.best-practices {
|
|
217
|
+
background-color: #f5f5f5;
|
|
218
|
+
padding: 20px;
|
|
219
|
+
border-radius: 8px;
|
|
220
|
+
margin-bottom: 30px;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.best-practices ul {
|
|
224
|
+
padding-left: 20px;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.best-practices li {
|
|
228
|
+
margin-bottom: 10px;
|
|
229
|
+
line-height: 1.5;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.resources-section {
|
|
233
|
+
background-color: #f8f9fa;
|
|
234
|
+
padding: 20px;
|
|
235
|
+
border-radius: 8px;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.resources-section ul {
|
|
239
|
+
padding-left: 20px;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.resources-section li {
|
|
243
|
+
margin-bottom: 10px;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.resources-section a {
|
|
247
|
+
color: #0077cc;
|
|
248
|
+
text-decoration: none;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.resources-section a:hover {
|
|
252
|
+
text-decoration: underline;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
code {
|
|
256
|
+
background-color: #f0f0f0;
|
|
257
|
+
padding: 2px 5px;
|
|
258
|
+
border-radius: 3px;
|
|
259
|
+
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
|
260
|
+
font-size: 0.9em;
|
|
261
|
+
}
|
|
262
|
+
`}
|
|
263
|
+
</style>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Meta, Canvas, Controls, Source } from '@storybook/blocks';
|
|
2
|
+
import * as SyRadioGroupStories from "./SyRadioGroup.stories";
|
|
3
|
+
|
|
4
|
+
<Meta of={SyRadioGroupStories} />
|
|
5
|
+
|
|
6
|
+
<div className="header">
|
|
7
|
+
<h1>SyRadioGroup</h1>
|
|
8
|
+
<p>Le composant `SyRadioGroup` est une case à cocher qui étend le composant `VRadio` de Vuetify, conforme au style du Design System et qui respecte les règles d'accessibilité <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>.</p>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
Il étend les fonctionnalités de base de Vuetify avec :
|
|
12
|
+
|
|
13
|
+
- Un système de validation avancé
|
|
14
|
+
- Des états visuels (erreur, avertissement, succès)
|
|
15
|
+
|
|
16
|
+
<Canvas of={SyRadioGroupStories.Default} />
|
|
17
|
+
|
|
18
|
+
# API
|
|
19
|
+
|
|
20
|
+
<Controls of={SyRadioGroupStories.Default} />
|
|
21
|
+
|
|
22
|
+
## Validation
|
|
23
|
+
|
|
24
|
+
Le composant supporte trois types de validation :
|
|
25
|
+
- Règles d'erreur standard (`customRules`)
|
|
26
|
+
- Règles d'avertissement (`customWarningRules`)
|
|
27
|
+
- Règles de succès (`customSuccessRules`)
|
|
28
|
+
|
|
29
|
+
### États visuels :
|
|
30
|
+
|
|
31
|
+
La case à cocher adapte automatiquement son apparence selon son état :
|
|
32
|
+
- Rouge pour les erreurs
|
|
33
|
+
- Orange pour les avertissements
|
|
34
|
+
- Vert pour les succès
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
<a href="/?path=/docs/guide-du-dev-guide-de-validation-des-formulaires--docs" className="action-link">Pour plus d'informations sur la validation, consultez le guide de validation des formulaires.</a>
|