@cnamts/synapse 1.0.0 → 1.0.2
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 +1 -1
- package/dist/DateFilter-YWOTbfeL.js +98 -0
- package/dist/NumberFilter-DMmMgALM.js +121 -0
- package/dist/PeriodFilter-Bok5BHcn.js +112 -0
- package/dist/SelectFilter-BKud2WhN.js +136 -0
- package/dist/TextFilter-DvMf2thH.js +114 -0
- package/dist/{components/BackBtn → common}/constants/ExpertiseLevelEnum.d.ts +3 -0
- package/dist/components/Accordion/Accordion.d.ts +2 -1
- package/dist/components/Accordion/composables/useAccordionGroupCommunication.d.ts +5 -0
- package/dist/components/Accordion/composables/useAccordionKeyboardNavigation.d.ts +12 -0
- package/dist/components/Accordion/composables/useAccordionState.d.ts +13 -0
- package/dist/components/BackBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/BackToTopBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/ChipList/AccessibiliteItems.d.ts +1 -1
- package/dist/components/CollapsibleList/AccessibiliteItems.d.ts +1 -1
- package/dist/components/ContextualMenu/AccessibiliteItems.d.ts +1 -1
- package/dist/components/CookieBanner/AccessibiliteItems.d.ts +1 -1
- package/dist/components/CopyBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SyBtnSelect/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +85 -0
- package/dist/components/Customs/SyInputSelect/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
- package/dist/components/Customs/SySelect/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SySelect/SySelect.d.ts +33 -13
- package/dist/components/Customs/SyTextField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
- package/dist/components/DataList/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DataListGroup/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DatePicker/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +4295 -0
- package/dist/components/DatePicker/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +158 -104
- package/dist/components/DatePicker/{DateTextInput.d.ts → DateTextInput/DateTextInput.d.ts} +35 -27
- package/dist/components/DatePicker/composables/index.d.ts +17 -0
- package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +14 -0
- package/dist/components/DatePicker/composables/useDateAutoClamp.d.ts +16 -0
- package/dist/components/DatePicker/composables/useDateFormatValidation.d.ts +25 -0
- package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +33 -0
- package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +16 -0
- package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +27 -0
- package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +29 -0
- package/dist/components/DatePicker/composables/useDateRangeValidation.d.ts +11 -0
- package/dist/components/DatePicker/composables/useDateSelection.d.ts +10 -0
- package/dist/components/DatePicker/composables/useDateValidation.d.ts +35 -0
- package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +19 -0
- package/dist/components/DatePicker/composables/useIconState.d.ts +17 -0
- package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +31 -0
- package/dist/components/DatePicker/composables/useInputHandler.d.ts +32 -0
- package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +33 -0
- package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +12 -0
- package/dist/components/DatePicker/composables/useTodayButton.d.ts +16 -0
- package/dist/components/DatePicker/composables/useWeekendDays.d.ts +11 -0
- package/dist/components/DatePicker/constants/messages.d.ts +29 -0
- package/dist/components/DatePicker/types.d.ts +13 -0
- package/dist/components/DialogBox/AccessibiliteItems.d.ts +1 -1
- package/dist/components/DownloadBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/ErrorPage/AccessibiliteItems.d.ts +1 -1
- package/dist/components/ExternalLinks/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FileList/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FilePreview/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FileUpload/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FilterInline/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FilterSideBar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +395 -1
- package/dist/components/FooterBar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/FranceConnectBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/HeaderBar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +1 -1
- package/dist/components/HeaderLoading/AccessibiliteItems.d.ts +1 -1
- package/dist/components/HeaderToolbar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/LangBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Logo/AccessibiliteItems.d.ts +1 -1
- package/dist/components/LogoBrandSection/AccessibiliteItems.d.ts +1 -1
- package/dist/components/MaintenancePage/AccessibiliteItems.d.ts +1 -1
- package/dist/components/NirField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/NirField/NirField.d.ts +7 -3
- package/dist/components/NirField/nirValidation.d.ts +1 -1
- package/dist/components/NotFoundPage/AccessibiliteItems.d.ts +1 -1
- package/dist/components/NotificationBar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PageContainer/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PaginatedTable/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PasswordField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PasswordField/PasswordField.d.ts +2 -0
- package/dist/components/PeriodField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PeriodField/PeriodField.d.ts +219 -41
- package/dist/components/PhoneField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/PhoneField/PhoneField.d.ts +2 -2
- package/dist/components/RangeField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/RangeField/RangeField.d.ts +2 -0
- package/dist/components/RatingPicker/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SearchListField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SearchListField/SearchListField.d.ts +9 -0
- package/dist/components/SelectBtnField/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SkipLink/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SocialMediaLinks/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SubHeader/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SyAlert/AccessibiliteItems.d.ts +1 -1
- package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
- package/dist/components/TableToolbar/AccessibiliteItems.d.ts +1 -1
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +652 -0
- package/dist/components/Tables/SyTable/SyTable.d.ts +671 -0
- package/dist/components/Tables/common/SyTableFilter.d.ts +126 -0
- package/dist/components/Tables/common/SyTablePagination.d.ts +1636 -0
- package/dist/components/Tables/common/TableHeader.d.ts +15 -0
- package/dist/components/Tables/common/constants/StateEnum.d.ts +6 -0
- package/dist/components/Tables/common/filters/DateFilter.d.ts +121 -0
- package/dist/components/Tables/common/filters/NumberFilter.d.ts +132 -0
- package/dist/components/Tables/common/filters/PeriodFilter.d.ts +135 -0
- package/dist/components/Tables/common/filters/SelectFilter.d.ts +120 -0
- package/dist/components/Tables/common/filters/TextFilter.d.ts +132 -0
- package/dist/components/Tables/common/filters/getFilterComponent.d.ts +1 -0
- package/dist/components/Tables/common/filters/locales.d.ts +4 -0
- package/dist/components/Tables/common/filters/logics/date.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/number.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/period.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/select.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/text.d.ts +1 -0
- package/dist/components/Tables/common/formatters.d.ts +17 -0
- package/dist/components/Tables/common/locales.d.ts +28 -0
- package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +267 -0
- package/dist/components/Tables/common/organizeColumns/sortHeaders.d.ts +2 -0
- package/dist/components/Tables/common/tableAccessibilityUtils.d.ts +8 -0
- package/dist/components/Tables/common/tableFilterUtils.d.ts +3 -0
- package/dist/components/Tables/common/tableStorageUtils.d.ts +69 -0
- package/dist/components/Tables/common/tableUtils.d.ts +79 -0
- package/dist/components/Tables/common/types.d.ts +91 -0
- package/dist/components/Tables/common/usePagination.d.ts +22 -0
- package/dist/components/Tables/common/useTableCheckbox.d.ts +20 -0
- package/dist/components/Tables/common/useTableFilter.d.ts +9 -0
- package/dist/components/Tables/common/useTableHeaders.d.ts +76 -0
- package/dist/components/Tables/common/useTableItems.d.ts +24 -0
- package/dist/components/Tables/common/useTableOptions.d.ts +18 -0
- package/dist/components/Tables/index.d.ts +2 -0
- package/dist/components/ToolbarContainer/ToolbarContainer.d.ts +11 -0
- package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +1 -1
- package/dist/components/UserMenuBtn/AccessibiliteItems.d.ts +1 -1
- package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +9 -2
- package/dist/components/index.d.ts +9 -5
- package/dist/design-system-v3.js +102 -11944
- package/dist/design-system-v3.umd.cjs +22 -4
- package/dist/designTokens/index.d.ts +3 -1
- package/dist/designTokens/tokens/cnam/cnamFonts.d.ts +140 -0
- package/dist/designTokens/tokens/pa/paFonts.d.ts +140 -0
- package/dist/designTokens/utils/createFontVariables.d.ts +39 -0
- package/dist/designTokens/utils/index.d.ts +2 -1
- package/dist/main-Cx8qG7YR.js +16344 -0
- package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +14 -2
- package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +8 -0
- package/dist/stories/DesignTokens/TypographyDisplay.d.ts +28 -0
- package/dist/stories/DesignTokens/vue-shims.d.ts +6 -0
- package/dist/style.css +1 -1
- package/dist/utils/rules/isRequired/index.d.ts +1 -1
- package/dist/vite-env.d.ts +12 -0
- package/package.json +3 -3
- package/src/assets/_spacers.scss +37 -1
- package/src/assets/_typography.scss +158 -0
- package/src/assets/settings.scss +7 -0
- package/src/common/constants/ExpertiseLevelEnum.ts +7 -0
- package/src/common/imgs/accessibility-svgrepo-com.svg +4 -0
- package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +249 -0
- package/src/components/Accordion/Accordion.vue +48 -76
- package/src/components/Accordion/composables/__tests__/useAccordionGroupCommunication.spec.ts +146 -0
- package/src/components/Accordion/composables/__tests__/useAccordionKeyboardNavigation.spec.ts +209 -0
- package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +144 -0
- package/src/components/Accordion/composables/useAccordionGroupCommunication.ts +52 -0
- package/src/components/Accordion/composables/useAccordionKeyboardNavigation.ts +111 -0
- package/src/components/Accordion/composables/useAccordionState.ts +59 -0
- package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +3 -0
- package/src/components/BackBtn/AccessibiliteItems.ts +1 -1
- package/src/components/BackToTopBtn/AccessibiliteItems.ts +1 -1
- package/src/components/ChipList/AccessibiliteItems.ts +1 -1
- package/src/components/CollapsibleList/AccessibiliteItems.ts +1 -1
- package/src/components/ContextualMenu/AccessibiliteItems.ts +1 -1
- package/src/components/CookieBanner/AccessibiliteItems.ts +1 -1
- package/src/components/CopyBtn/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SyCheckbox/Accessibilite.mdx +303 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +50 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +630 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +326 -0
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +201 -0
- package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +1 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +8 -1
- package/src/components/Customs/SySelect/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SySelect/SySelect.stories.ts +160 -0
- package/src/components/Customs/SySelect/SySelect.vue +292 -39
- package/src/components/Customs/SySelect/tests/SySelect.spec.ts +234 -2
- package/src/components/Customs/SyTextField/AccessibiliteItems.ts +1 -1
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -2
- package/src/components/Customs/SyTextField/SyTextField.vue +19 -8
- package/src/components/DataList/AccessibiliteItems.ts +1 -1
- package/src/components/DataListGroup/AccessibiliteItems.ts +1 -1
- package/src/components/DatePicker/AccessibiliteItems.ts +1 -1
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +212 -0
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1307 -0
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +769 -204
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +161 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +943 -0
- package/src/components/DatePicker/DatePicker/DatePicker.mdx +176 -0
- package/src/components/DatePicker/{DatePicker.stories.ts → DatePicker/DatePicker.stories.ts} +356 -519
- package/src/components/DatePicker/{DatePicker.vue → DatePicker/DatePicker.vue} +435 -89
- package/src/components/DatePicker/DatePicker/tests/DatePicker.events.spec.ts +189 -0
- package/src/components/DatePicker/{tests → DatePicker/tests}/DatePicker.spec.ts +0 -14
- package/src/components/DatePicker/DatePickerOverview.mdx +227 -0
- package/src/components/DatePicker/{DatePickerValidation.mdx → DatePickerValidationExample/DatePickerValidation.mdx} +3 -3
- package/src/components/DatePicker/{DatePickerValidation.stories.ts → DatePickerValidationExample/DatePickerValidation.stories.ts} +2 -2
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +320 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +148 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +278 -0
- package/src/components/DatePicker/{tests → DateTextInput}/DateTextInput.spec.ts +10 -7
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +1111 -0
- package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +64 -0
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +782 -0
- package/src/components/DatePicker/composables/index.ts +24 -0
- package/src/components/DatePicker/composables/tests/useDateAutoClamp.spec.ts +190 -0
- package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +165 -0
- package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +359 -0
- package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +160 -0
- package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +339 -0
- package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +277 -0
- package/src/components/DatePicker/composables/tests/useDateRangeValidation.spec.ts +107 -0
- package/src/components/DatePicker/composables/tests/useDateSelection.spec.ts +171 -0
- package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +245 -0
- package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +98 -0
- package/src/components/DatePicker/composables/tests/useIconState.spec.ts +130 -0
- package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +456 -0
- package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +233 -0
- package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +125 -0
- package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +97 -0
- package/src/components/DatePicker/composables/tests/useWeekendDays.spec.ts +28 -0
- package/src/components/DatePicker/composables/useAsteriskDisplay.ts +31 -0
- package/src/components/DatePicker/composables/useDateAutoClamp.ts +136 -0
- package/src/components/DatePicker/composables/useDateFormatValidation.ts +95 -0
- package/src/components/DatePicker/composables/useDateInputEditing.ts +326 -0
- package/src/components/DatePicker/composables/useDatePickerViewMode.ts +61 -0
- package/src/components/DatePicker/composables/useDatePickerVisibility.ts +146 -0
- package/src/components/DatePicker/composables/useDateRangeInput.ts +378 -0
- package/src/components/DatePicker/composables/useDateRangeValidation.ts +48 -0
- package/src/components/DatePicker/composables/useDateSelection.ts +121 -0
- package/src/components/DatePicker/composables/useDateValidation.ts +225 -0
- package/src/components/DatePicker/composables/useDisplayedDateString.ts +70 -0
- package/src/components/DatePicker/composables/useIconState.ts +53 -0
- package/src/components/DatePicker/composables/useInputBlurHandler.ts +165 -0
- package/src/components/DatePicker/composables/useInputHandler.ts +436 -0
- package/src/components/DatePicker/composables/useManualDateValidation.ts +161 -0
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +187 -0
- package/src/components/DatePicker/composables/useTodayButton.ts +43 -0
- package/src/components/DatePicker/composables/useWeekendDays.ts +21 -0
- package/src/components/DatePicker/constants/messages.ts +50 -0
- package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
- package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
- package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +172 -0
- package/src/components/DatePicker/types.ts +15 -0
- package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +10 -0
- package/src/components/DialogBox/AccessibiliteItems.ts +1 -1
- package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -1
- package/src/components/ErrorPage/Accessibilite.stories.ts +8 -0
- package/src/components/ErrorPage/AccessibiliteItems.ts +1 -1
- package/src/components/ErrorPage/ErrorPage.vue +12 -6
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +4 -4
- package/src/components/ExternalLinks/AccessibiliteItems.ts +1 -1
- package/src/components/FileList/AccessibiliteItems.ts +1 -1
- package/src/components/FilePreview/AccessibiliteItems.ts +1 -1
- package/src/components/FileUpload/AccessibiliteItems.ts +1 -1
- package/src/components/FilterInline/AccessibiliteItems.ts +1 -1
- package/src/components/FilterSideBar/AccessibiliteItems.ts +1 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +108 -90
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +27 -0
- package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +114 -109
- package/src/components/FooterBar/AccessibiliteItems.ts +1 -1
- package/src/components/FooterBar/FooterBar.vue +2 -1
- package/src/components/FranceConnectBtn/AccessibiliteItems.ts +1 -1
- package/src/components/HeaderBar/AccessibiliteItems.ts +1 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +1 -1
- package/src/components/HeaderLoading/AccessibiliteItems.ts +1 -1
- package/src/components/HeaderToolbar/AccessibiliteItems.ts +1 -1
- package/src/components/LangBtn/AccessibiliteItems.ts +1 -1
- package/src/components/Logo/Accessibilite.stories.ts +4 -0
- package/src/components/Logo/AccessibiliteItems.ts +1 -1
- package/src/components/LogoBrandSection/AccessibiliteItems.ts +1 -1
- package/src/components/MaintenancePage/AccessibiliteItems.ts +1 -1
- package/src/components/NirField/AccessibiliteItems.ts +1 -1
- package/src/components/NirField/NirField.mdx +22 -9
- package/src/components/NirField/NirField.stories.ts +26 -2
- package/src/components/NirField/NirField.vue +209 -22
- package/src/components/NirField/nirValidation.ts +17 -3
- package/src/components/NirField/tests/NirField.spec.ts +2 -2
- package/src/components/NotFoundPage/Accessibilite.stories.ts +8 -0
- package/src/components/NotFoundPage/AccessibiliteItems.ts +1 -1
- package/src/components/NotFoundPage/NotFoundPage.vue +2 -1
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +8 -6
- package/src/components/NotificationBar/AccessibiliteItems.ts +1 -1
- package/src/components/PageContainer/AccessibiliteItems.ts +1 -1
- package/src/components/PaginatedTable/AccessibiliteItems.ts +1 -1
- package/src/components/PaginatedTable/PaginatedTable.mdx +2 -0
- package/src/components/PaginatedTable/PaginatedTable.stories.ts +19 -0
- package/src/components/PaginatedTable/PaginatedTable.vue +51 -13
- package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -2
- package/src/components/PasswordField/AccessibiliteItems.ts +1 -1
- package/src/components/PasswordField/PasswordField.stories.ts +4 -0
- package/src/components/PasswordField/PasswordField.vue +3 -0
- package/src/components/PeriodField/AccessibiliteItems.ts +1 -1
- package/src/components/PeriodField/PeriodField.vue +15 -1
- package/src/components/PhoneField/AccessibiliteItems.ts +1 -1
- package/src/components/PhoneField/PhoneField.stories.ts +15 -15
- package/src/components/PhoneField/PhoneField.vue +1 -1
- package/src/components/RangeField/AccessibiliteItems.ts +1 -1
- package/src/components/RangeField/RangeField.stories.ts +9 -0
- package/src/components/RangeField/RangeField.vue +4 -0
- package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +12 -0
- package/src/components/RatingPicker/AccessibiliteItems.ts +1 -1
- package/src/components/SearchListField/AccessibiliteItems.ts +1 -1
- package/src/components/SearchListField/SearchListField.vue +5 -0
- package/src/components/SelectBtnField/AccessibiliteItems.ts +1 -1
- package/src/components/SkipLink/AccessibiliteItems.ts +1 -1
- package/src/components/SocialMediaLinks/AccessibiliteItems.ts +1 -1
- package/src/components/SubHeader/AccessibiliteItems.ts +1 -1
- package/src/components/SyAlert/AccessibiliteItems.ts +1 -1
- package/src/components/SyTextArea/SyTextArea.vue +3 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -1
- package/src/components/TableToolbar/AccessibiliteItems.ts +1 -1
- package/src/components/TableToolbar/TableToolbar.stories.ts +110 -56
- package/src/components/Tables/SyServerTable/FilterRules.stories.ts +700 -0
- package/src/components/Tables/SyServerTable/SyServerTable.mdx +170 -0
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +4354 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +391 -0
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +702 -0
- package/src/components/Tables/SyTable/FilterRules.stories.ts +418 -0
- package/src/components/Tables/SyTable/SyTable.mdx +139 -0
- package/src/components/Tables/SyTable/SyTable.stories.ts +2754 -0
- package/src/components/Tables/SyTable/SyTable.vue +397 -0
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +707 -0
- package/src/components/Tables/common/SyTableFilter.vue +289 -0
- package/src/components/Tables/common/SyTablePagination.vue +375 -0
- package/src/components/Tables/common/TableHeader.vue +205 -0
- package/src/components/Tables/common/constants/StateEnum.ts +6 -0
- package/src/components/Tables/common/filters/DateFilter.vue +140 -0
- package/src/components/Tables/common/filters/NumberFilter.vue +234 -0
- package/src/components/Tables/common/filters/PeriodFilter.vue +147 -0
- package/src/components/Tables/common/filters/SelectFilter.vue +235 -0
- package/src/components/Tables/common/filters/TextFilter.vue +191 -0
- package/src/components/Tables/common/filters/getFilterComponent.ts +54 -0
- package/src/components/Tables/common/filters/locales.ts +4 -0
- package/src/components/Tables/common/filters/logics/date.ts +12 -0
- package/src/components/Tables/common/filters/logics/number.ts +48 -0
- package/src/components/Tables/common/filters/logics/period.ts +25 -0
- package/src/components/Tables/common/filters/logics/select.ts +27 -0
- package/src/components/Tables/common/filters/logics/tests/TextFilterLogic.spec.ts +177 -0
- package/src/components/Tables/common/filters/logics/text.ts +62 -0
- package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +187 -0
- package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +280 -0
- package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +192 -0
- package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +219 -0
- package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +260 -0
- package/src/components/Tables/common/formatters.ts +72 -0
- package/src/components/Tables/common/locales.ts +31 -0
- package/src/components/Tables/common/organizeColumns/OrganizeColumns.vue +269 -0
- package/src/components/Tables/common/organizeColumns/sortHeaders.ts +9 -0
- package/src/components/Tables/common/tableAccessibilityUtils.ts +61 -0
- package/src/components/Tables/common/tableFilterUtils.ts +75 -0
- package/src/components/Tables/common/tableStorageUtils.ts +127 -0
- package/src/components/Tables/common/tableStyles.scss +80 -0
- package/src/components/Tables/common/tableUtils.ts +102 -0
- package/src/components/Tables/common/tests/SyTableFilter.spec.ts +312 -0
- package/src/components/Tables/common/tests/SyTablePagination.spec.ts +170 -0
- package/src/components/Tables/common/tests/filterByRange.spec.ts +215 -0
- package/src/components/Tables/common/tests/resize.spec.ts +161 -0
- package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +92 -0
- package/src/components/Tables/common/tests/tableUtils.spec.ts +228 -0
- package/src/components/Tables/common/types.ts +92 -0
- package/src/components/Tables/common/usePagination.ts +83 -0
- package/src/components/Tables/common/useTableCheckbox.ts +58 -0
- package/src/components/Tables/common/useTableFilter.ts +19 -0
- package/src/components/Tables/common/useTableHeaders.ts +88 -0
- package/src/components/Tables/common/useTableItems.ts +87 -0
- package/src/components/Tables/common/useTableOptions.ts +93 -0
- package/src/components/Tables/index.ts +3 -0
- package/src/components/ToolbarContainer/ToolbarContainer.mdx +16 -0
- package/src/components/ToolbarContainer/ToolbarContainer.stories.ts +675 -0
- package/src/components/ToolbarContainer/ToolbarContainer.vue +128 -0
- package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +156 -0
- package/src/components/UploadWorkflow/AccessibiliteItems.ts +1 -1
- package/src/components/UserMenuBtn/AccessibiliteItems.ts +1 -1
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +74 -0
- package/src/components/UserMenuBtn/UserMenuBtn.vue +19 -17
- package/src/components/index.ts +9 -5
- package/src/composables/date/useDateFormatDayjs.ts +8 -3
- package/src/composables/date/useDateInitializationDayjs.ts +28 -36
- package/src/composables/rules/useFieldValidation.ts +1 -2
- package/src/designTokens/index.ts +4 -0
- package/src/designTokens/tokens/cnam/cnamFonts.ts +140 -0
- package/src/designTokens/tokens/pa/paFonts.ts +140 -0
- package/src/designTokens/utils/createFontVariables.ts +143 -0
- package/src/designTokens/utils/index.ts +2 -1
- package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +293 -20
- package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +448 -54
- package/src/stories/Accessibilite/Audit/RGAA.mdx +231 -23
- package/src/stories/Accessibilite/Avancement/Avancement.mdx +591 -7
- package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +139 -38
- package/src/stories/Accessibilite/Introduction.mdx +258 -18
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +221 -31
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +204 -22
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +537 -24
- package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +577 -70
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +382 -31
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +419 -81
- package/src/stories/Accessibilite/Vuetify/Vuetify.mdx +132 -6
- package/src/stories/Accessibilite/Vuetify/Vuetify.stories.ts +370 -146
- package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +35 -57
- package/src/stories/Demarrer/Accueil.stories.ts +32 -8
- package/src/stories/DesignTokens/StylesTypographiques.mdx +10 -9
- package/src/stories/DesignTokens/StylesTypographiques.stories.new.ts +397 -0
- package/src/stories/DesignTokens/StylesTypographiques.stories.ts +397 -0
- package/src/stories/DesignTokens/TypographyDisplay.vue +155 -0
- package/src/stories/DesignTokens/vue-shims.d.ts +6 -0
- package/src/stories/GuideDuDev/LesBreackingChanges.mdx +0 -2
- package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
- package/src/stories/GuideDuDev/MigrationDepuisVue2.mdx +1 -1
- package/src/stories/GuideDuDev/PortailAgent.mdx +10 -0
- package/src/stories/GuideDuDev/PortailAgent.stories.ts +506 -0
- package/src/stories/GuideDuDev/Theme.mdx +41 -0
- package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +1 -1
- package/src/utils/rules/isRequired/index.ts +2 -1
- package/src/vite-env.d.ts +12 -0
- package/src/vuetifyConfig.ts +10 -3
- package/dist/components/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DataList/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FileList/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FooterBar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/FranceConnectBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/HeaderBar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/HeaderLoading/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/HeaderToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/LangBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/Logo/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/LogoBrandSection/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/MaintenancePage/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/NirField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/NotFoundPage/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/NotificationBar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PageContainer/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PaginatedTable/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PasswordField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PeriodField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/PhoneField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/RangeField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/RatingPicker/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SearchListField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SelectBtnField/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SkipLink/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SocialMediaLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SubHeader/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/SyAlert/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
- package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/ChipList/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DataList/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DatePicker/DatePicker.mdx +0 -222
- package/src/components/DatePicker/DateTextInput.vue +0 -504
- package/src/components/DatePicker/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FileList/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FilePreview/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FileUpload/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/Logo/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/NirField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PaginatedTable/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +0 -886
- package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PeriodField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/RangeField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/RatingPicker/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SearchListField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SelectBtnField/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/TableToolbar/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +0 -4
- package/src/stories/DesignTokens/ThemePA.mdx +0 -35
- /package/src/components/DatePicker/{examples → playground}/DatePickerHolidayRule.vue +0 -0
|
@@ -50,12 +50,14 @@ describe('SySelect.vue', () => {
|
|
|
50
50
|
it('renders error messages when provided', () => {
|
|
51
51
|
const errorMessages = ['Error 1']
|
|
52
52
|
const wrapper = mount(SySelect, {
|
|
53
|
-
props: { errorMessages },
|
|
53
|
+
props: { errorMessages, hideMessages: false },
|
|
54
54
|
global: {
|
|
55
55
|
plugins: [vuetify],
|
|
56
56
|
},
|
|
57
57
|
})
|
|
58
|
-
|
|
58
|
+
const message = wrapper.find('.v-messages__message')
|
|
59
|
+
expect(message.exists()).toBe(true)
|
|
60
|
+
expect(message.text()).toContain('Error 1')
|
|
59
61
|
})
|
|
60
62
|
|
|
61
63
|
it('does not render error messages when not provided', () => {
|
|
@@ -634,4 +636,234 @@ describe('SySelect.vue', () => {
|
|
|
634
636
|
await clearBtn.trigger('click')
|
|
635
637
|
expect(wrapper.emitted()['update:modelValue'][0]).toEqual([null])
|
|
636
638
|
})
|
|
639
|
+
|
|
640
|
+
describe('Multiple selection mode', () => {
|
|
641
|
+
it('handles multiple selection correctly', async () => {
|
|
642
|
+
const items = [
|
|
643
|
+
{ text: '-choisir-', value: null },
|
|
644
|
+
{ text: 'Option 1', value: '1' },
|
|
645
|
+
{ text: 'Option 2', value: '2' },
|
|
646
|
+
{ text: 'Option 3', value: '3' },
|
|
647
|
+
]
|
|
648
|
+
const wrapper = mount(SySelect, {
|
|
649
|
+
props: {
|
|
650
|
+
items,
|
|
651
|
+
multiple: true,
|
|
652
|
+
modelValue: [],
|
|
653
|
+
textKey: 'text',
|
|
654
|
+
valueKey: 'value',
|
|
655
|
+
},
|
|
656
|
+
global: {
|
|
657
|
+
plugins: [vuetify],
|
|
658
|
+
},
|
|
659
|
+
})
|
|
660
|
+
|
|
661
|
+
// Open the select menu
|
|
662
|
+
await wrapper.find('.sy-select').trigger('click')
|
|
663
|
+
await wrapper.vm.$nextTick()
|
|
664
|
+
|
|
665
|
+
// Select Option 1
|
|
666
|
+
const listItems = wrapper.findAll('.v-list-item')
|
|
667
|
+
await listItems[1].trigger('click')
|
|
668
|
+
await wrapper.vm.$nextTick()
|
|
669
|
+
|
|
670
|
+
// Check that Option 1 is selected
|
|
671
|
+
expect(wrapper.emitted()['update:modelValue'][0]).toEqual([['1']])
|
|
672
|
+
|
|
673
|
+
// Select Option 2 as well
|
|
674
|
+
await listItems[2].trigger('click')
|
|
675
|
+
await wrapper.vm.$nextTick()
|
|
676
|
+
|
|
677
|
+
// Check that both options are selected
|
|
678
|
+
expect(wrapper.emitted()['update:modelValue'][1]).toEqual([['1', '2']])
|
|
679
|
+
})
|
|
680
|
+
|
|
681
|
+
it('clears all selections when default option is clicked', async () => {
|
|
682
|
+
const items = [
|
|
683
|
+
{ text: '-choisir-', value: null },
|
|
684
|
+
{ text: 'Option 1', value: '1' },
|
|
685
|
+
{ text: 'Option 2', value: '2' },
|
|
686
|
+
]
|
|
687
|
+
const wrapper = mount(SySelect, {
|
|
688
|
+
props: {
|
|
689
|
+
items,
|
|
690
|
+
multiple: true,
|
|
691
|
+
modelValue: ['1', '2'],
|
|
692
|
+
textKey: 'text',
|
|
693
|
+
valueKey: 'value',
|
|
694
|
+
},
|
|
695
|
+
global: {
|
|
696
|
+
plugins: [vuetify],
|
|
697
|
+
},
|
|
698
|
+
})
|
|
699
|
+
|
|
700
|
+
// Open the select menu
|
|
701
|
+
await wrapper.find('.sy-select').trigger('click')
|
|
702
|
+
await wrapper.vm.$nextTick()
|
|
703
|
+
|
|
704
|
+
// Click on the default option
|
|
705
|
+
const defaultOption = wrapper.findAll('.v-list-item')[0]
|
|
706
|
+
await defaultOption.trigger('click')
|
|
707
|
+
await wrapper.vm.$nextTick()
|
|
708
|
+
|
|
709
|
+
// Check that all selections are cleared
|
|
710
|
+
expect(wrapper.emitted()['update:modelValue'][0]).toEqual([[]])
|
|
711
|
+
})
|
|
712
|
+
|
|
713
|
+
it('treats default option as selected when no items are selected', async () => {
|
|
714
|
+
const items = [
|
|
715
|
+
{ text: '-choisir-', value: null },
|
|
716
|
+
{ text: 'Option 1', value: '1' },
|
|
717
|
+
{ text: 'Option 2', value: '2' },
|
|
718
|
+
]
|
|
719
|
+
const wrapper = mount(SySelect, {
|
|
720
|
+
props: {
|
|
721
|
+
items,
|
|
722
|
+
multiple: true,
|
|
723
|
+
modelValue: [],
|
|
724
|
+
textKey: 'text',
|
|
725
|
+
valueKey: 'value',
|
|
726
|
+
},
|
|
727
|
+
global: {
|
|
728
|
+
plugins: [vuetify],
|
|
729
|
+
},
|
|
730
|
+
})
|
|
731
|
+
|
|
732
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- This is a generic type
|
|
733
|
+
const instance = wrapper.vm as any
|
|
734
|
+
|
|
735
|
+
// Check that the selectedItemText is the default option
|
|
736
|
+
expect(instance.selectedItemText).toBe('-choisir-')
|
|
737
|
+
|
|
738
|
+
// Check that isDefaultOption returns true for the default item
|
|
739
|
+
const defaultItem = items[0]
|
|
740
|
+
expect(instance.isDefaultOption(defaultItem)).toBe(true)
|
|
741
|
+
|
|
742
|
+
// Check that isItemSelected returns true for the default item when no selections
|
|
743
|
+
expect(instance.isItemSelected(defaultItem)).toBe(true)
|
|
744
|
+
})
|
|
745
|
+
})
|
|
746
|
+
|
|
747
|
+
describe('Chips mode', () => {
|
|
748
|
+
it('renders chips for selected items', async () => {
|
|
749
|
+
const items = [
|
|
750
|
+
{ text: 'Option 1', value: '1' },
|
|
751
|
+
{ text: 'Option 2', value: '2' },
|
|
752
|
+
{ text: 'Option 3', value: '3' },
|
|
753
|
+
]
|
|
754
|
+
const wrapper = mount(SySelect, {
|
|
755
|
+
props: {
|
|
756
|
+
items,
|
|
757
|
+
multiple: true,
|
|
758
|
+
chips: true,
|
|
759
|
+
modelValue: ['1', '2'],
|
|
760
|
+
textKey: 'text',
|
|
761
|
+
valueKey: 'value',
|
|
762
|
+
},
|
|
763
|
+
global: {
|
|
764
|
+
plugins: [vuetify],
|
|
765
|
+
},
|
|
766
|
+
})
|
|
767
|
+
|
|
768
|
+
// Check that chips are rendered
|
|
769
|
+
const chips = wrapper.findAll('.v-chip')
|
|
770
|
+
expect(chips.length).toBe(2)
|
|
771
|
+
expect(chips[0].text()).toBe('Option 1')
|
|
772
|
+
expect(chips[1].text()).toBe('Option 2')
|
|
773
|
+
})
|
|
774
|
+
|
|
775
|
+
it('removes a chip when close button is clicked', async () => {
|
|
776
|
+
const items = [
|
|
777
|
+
{ text: 'Option 1', value: '1' },
|
|
778
|
+
{ text: 'Option 2', value: '2' },
|
|
779
|
+
{ text: 'Option 3', value: '3' },
|
|
780
|
+
]
|
|
781
|
+
const wrapper = mount(SySelect, {
|
|
782
|
+
props: {
|
|
783
|
+
items,
|
|
784
|
+
multiple: true,
|
|
785
|
+
chips: true,
|
|
786
|
+
modelValue: ['1', '2'],
|
|
787
|
+
textKey: 'text',
|
|
788
|
+
valueKey: 'value',
|
|
789
|
+
},
|
|
790
|
+
global: {
|
|
791
|
+
plugins: [vuetify],
|
|
792
|
+
},
|
|
793
|
+
})
|
|
794
|
+
|
|
795
|
+
// Find the first chip's close button and click it
|
|
796
|
+
const closeButton = wrapper.find('.v-chip__close')
|
|
797
|
+
await closeButton.trigger('click')
|
|
798
|
+
await wrapper.vm.$nextTick()
|
|
799
|
+
|
|
800
|
+
// Check that the chip was removed from the model
|
|
801
|
+
expect(wrapper.emitted()['update:modelValue'][0]).toEqual([['2']])
|
|
802
|
+
})
|
|
803
|
+
|
|
804
|
+
it('handles chip text correctly for object items', async () => {
|
|
805
|
+
const items = [
|
|
806
|
+
{ text: 'Option 1', value: '1', data: { id: 101 } },
|
|
807
|
+
{ text: 'Option 2', value: '2', data: { id: 102 } },
|
|
808
|
+
]
|
|
809
|
+
const wrapper = mount(SySelect, {
|
|
810
|
+
props: {
|
|
811
|
+
items,
|
|
812
|
+
multiple: true,
|
|
813
|
+
chips: true,
|
|
814
|
+
returnObject: true,
|
|
815
|
+
modelValue: [items[0], items[1]],
|
|
816
|
+
textKey: 'text',
|
|
817
|
+
valueKey: 'value',
|
|
818
|
+
},
|
|
819
|
+
global: {
|
|
820
|
+
plugins: [vuetify],
|
|
821
|
+
},
|
|
822
|
+
})
|
|
823
|
+
|
|
824
|
+
// Check that chips display the correct text
|
|
825
|
+
const chips = wrapper.findAll('.v-chip')
|
|
826
|
+
expect(chips.length).toBe(2)
|
|
827
|
+
expect(chips[0].text()).toBe('Option 1')
|
|
828
|
+
expect(chips[1].text()).toBe('Option 2')
|
|
829
|
+
})
|
|
830
|
+
|
|
831
|
+
it('safely handles different item types in chips', async () => {
|
|
832
|
+
// This test verifies our safeChipItem function works correctly
|
|
833
|
+
const items = [
|
|
834
|
+
{ text: 'Option 1', value: '1' },
|
|
835
|
+
{ text: 'Option 2', value: 2 }, // Number value
|
|
836
|
+
]
|
|
837
|
+
const wrapper = mount(SySelect, {
|
|
838
|
+
props: {
|
|
839
|
+
items,
|
|
840
|
+
multiple: true,
|
|
841
|
+
chips: true,
|
|
842
|
+
modelValue: ['1', 2],
|
|
843
|
+
textKey: 'text',
|
|
844
|
+
valueKey: 'value',
|
|
845
|
+
},
|
|
846
|
+
global: {
|
|
847
|
+
plugins: [vuetify],
|
|
848
|
+
},
|
|
849
|
+
})
|
|
850
|
+
|
|
851
|
+
// Check that chips are rendered without errors
|
|
852
|
+
const chips = wrapper.findAll('.v-chip')
|
|
853
|
+
expect(chips.length).toBe(2)
|
|
854
|
+
expect(chips[0].text()).toBe('Option 1')
|
|
855
|
+
expect(chips[1].text()).toBe('Option 2')
|
|
856
|
+
|
|
857
|
+
// Test the safeChipItem method directly
|
|
858
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- This is a generic type
|
|
859
|
+
const instance = wrapper.vm as any
|
|
860
|
+
const stringResult = instance.safeChipItem('test')
|
|
861
|
+
const numberResult = instance.safeChipItem(123)
|
|
862
|
+
const objectResult = instance.safeChipItem({ id: 3 })
|
|
863
|
+
|
|
864
|
+
expect(stringResult).toBe('test')
|
|
865
|
+
expect(numberResult).toBe(123)
|
|
866
|
+
expect(typeof objectResult).toBe('object')
|
|
867
|
+
})
|
|
868
|
+
})
|
|
637
869
|
})
|
|
@@ -138,7 +138,7 @@ const meta = {
|
|
|
138
138
|
},
|
|
139
139
|
'bgColor': {
|
|
140
140
|
description: 'Couleur de fond du champ',
|
|
141
|
-
control: '
|
|
141
|
+
control: 'color',
|
|
142
142
|
},
|
|
143
143
|
'centerAffix': {
|
|
144
144
|
description: 'Centre verticalement les éléments ajoutés avant/après le champ',
|
|
@@ -217,13 +217,14 @@ const meta = {
|
|
|
217
217
|
default: false,
|
|
218
218
|
},
|
|
219
219
|
'displayPersistentPlaceholder': {
|
|
220
|
-
description: 'Garde le placeholder visible
|
|
220
|
+
description: 'Garde le placeholder visible. Si le champ est vide, le placeholder reste affiché',
|
|
221
221
|
control: 'boolean',
|
|
222
222
|
default: false,
|
|
223
223
|
},
|
|
224
224
|
'placeholder': {
|
|
225
225
|
description: 'Texte affiché quand le champ est vide',
|
|
226
226
|
control: 'text',
|
|
227
|
+
default: 'Placeholder',
|
|
227
228
|
},
|
|
228
229
|
'prefix': {
|
|
229
230
|
description: 'Texte affiché avant la valeur: prefix="€" : affichera "€" avant la valeur saisie',
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
+
// Prevent display-asterisk from being passed to the DOM
|
|
3
|
+
defineOptions({
|
|
4
|
+
inheritAttrs: false,
|
|
5
|
+
})
|
|
2
6
|
import { computed, onMounted, ref, watch, nextTick, type ComponentPublicInstance } from 'vue'
|
|
3
7
|
import type { IconType, VariantStyle, ColorType } from './types'
|
|
4
8
|
import { useValidation, type ValidationRule } from '@/composables/validation/useValidation'
|
|
@@ -92,7 +96,7 @@
|
|
|
92
96
|
tooltipLocation: 'top',
|
|
93
97
|
variantStyle: 'outlined',
|
|
94
98
|
color: 'primary',
|
|
95
|
-
label: '
|
|
99
|
+
label: '',
|
|
96
100
|
errorMessages: null,
|
|
97
101
|
warningMessages: null,
|
|
98
102
|
successMessages: null,
|
|
@@ -100,7 +104,7 @@
|
|
|
100
104
|
isClearable: false,
|
|
101
105
|
isActive: false,
|
|
102
106
|
baseColor: undefined,
|
|
103
|
-
bgColor:
|
|
107
|
+
bgColor: 'white',
|
|
104
108
|
centerAffix: undefined,
|
|
105
109
|
counter: false,
|
|
106
110
|
counterValue: undefined,
|
|
@@ -253,7 +257,7 @@
|
|
|
253
257
|
|
|
254
258
|
const hasError = computed(() => validation.hasError.value)
|
|
255
259
|
const hasWarning = computed(() => validation.hasWarning.value)
|
|
256
|
-
const hasSuccess = computed(() => validation.hasSuccess.value)
|
|
260
|
+
const hasSuccess = computed(() => validation.hasSuccess.value && !hasError.value && !hasWarning.value)
|
|
257
261
|
|
|
258
262
|
const errors = computed(() => validation.errors.value)
|
|
259
263
|
const warnings = computed(() => validation.warnings.value)
|
|
@@ -338,6 +342,12 @@
|
|
|
338
342
|
setAriaHidden('.v-text-field__suffix')
|
|
339
343
|
addSrOnlySpan('.v-text-field__prefix')
|
|
340
344
|
addSrOnlySpan('.v-text-field__suffix')
|
|
345
|
+
|
|
346
|
+
// Remove aria-describedby attribute
|
|
347
|
+
const inputElement = syTextFieldRef.value?.$el?.querySelector('input')
|
|
348
|
+
if (inputElement) {
|
|
349
|
+
inputElement.removeAttribute('aria-describedby')
|
|
350
|
+
}
|
|
341
351
|
})
|
|
342
352
|
})
|
|
343
353
|
|
|
@@ -399,6 +409,7 @@
|
|
|
399
409
|
:type="props.type"
|
|
400
410
|
:variant="props.variantStyle"
|
|
401
411
|
:width="props.width"
|
|
412
|
+
v-bind="Object.fromEntries(Object.entries($attrs).filter(([key]) => key !== 'display-asterisk'))"
|
|
402
413
|
:class="{
|
|
403
414
|
'error-field': hasError,
|
|
404
415
|
'warning-field': hasWarning,
|
|
@@ -519,11 +530,11 @@
|
|
|
519
530
|
<style lang="scss" scoped>
|
|
520
531
|
@use '@/assets/tokens';
|
|
521
532
|
|
|
522
|
-
:deep(.v-field__input input::placeholder),
|
|
523
|
-
:deep(input.v-field__input::placeholder),
|
|
524
|
-
:deep(textarea.v-field__input::placeholder) {
|
|
525
|
-
|
|
526
|
-
}
|
|
533
|
+
// :deep(.v-field__input input::placeholder),
|
|
534
|
+
// :deep(input.v-field__input::placeholder),
|
|
535
|
+
// :deep(textarea.v-field__input::placeholder) {
|
|
536
|
+
// opacity: 0;
|
|
537
|
+
// }
|
|
527
538
|
|
|
528
539
|
.warning-field {
|
|
529
540
|
:deep(.v-input__details > .v-icon),
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import {Meta, Canvas, Controls, Source} from '@storybook/blocks';
|
|
2
|
+
import * as DatePickerStories from "./ComplexDatePicker.stories.ts";
|
|
3
|
+
|
|
4
|
+
<Meta of={DatePickerStories}/>
|
|
5
|
+
|
|
6
|
+
# DatePicker - Mode combiné
|
|
7
|
+
|
|
8
|
+
Le DatePicker en mode combiné (`useCombinedMode: true`) permet d'utiliser à la fois le calendrier interactif et la saisie manuelle avec formatage automatique.
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
Cette variante du DatePicker est particulièrement utile lorsque :
|
|
13
|
+
- Vous souhaitez offrir plusieurs méthodes de saisie de date aux utilisateurs
|
|
14
|
+
- Vous avez besoin du formatage automatique intelligent des dates pendant la saisie
|
|
15
|
+
- Vous voulez conserver l'interaction avec le calendrier pour une meilleure expérience utilisateur
|
|
16
|
+
|
|
17
|
+
Le formatage automatique intelligent ajoute les séparateurs (/, -, etc.) pendant la saisie en fonction du format spécifié.
|
|
18
|
+
|
|
19
|
+
<Canvas story={{height: '550px'}} of={DatePickerStories.Default}/>
|
|
20
|
+
|
|
21
|
+
## Propriétés spécifiques
|
|
22
|
+
|
|
23
|
+
Propriétés applicables pour le mode combiné :
|
|
24
|
+
|
|
25
|
+
<Controls of={DatePickerStories.Default}/>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# Fonctionnalités spécifiques
|
|
29
|
+
|
|
30
|
+
## Formatage automatique des dates
|
|
31
|
+
|
|
32
|
+
Le composant ComplexDatePicker offre un formatage automatique intelligent des dates pendant la saisie. Les séparateurs sont automatiquement ajoutés lors de la saisie des chiffres, en s'adaptant au format spécifié (DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD, etc.).
|
|
33
|
+
|
|
34
|
+
<Canvas of={DatePickerStories.AutoFormattingInput}/>
|
|
35
|
+
|
|
36
|
+
## Désactivation de l'interaction avec le calendrier
|
|
37
|
+
|
|
38
|
+
La propriété `disablePickerInteraction` permet d'utiliser le champ de saisie avec formatage automatique sans que le calendrier n'apparaisse au clic sur l'input ou sur l'icône. Cette option est utile pour les cas où on souhaite uniquement la saisie manuelle.
|
|
39
|
+
|
|
40
|
+
<Canvas of={DatePickerStories.DisablePickerInteraction}/>
|
|
41
|
+
|
|
42
|
+
## Formats de date personnalisés
|
|
43
|
+
|
|
44
|
+
Le composant supporte différents formats de date et détecte automatiquement le séparateur utilisé dans le format (/, -, ., etc.) pour l'appliquer lors de la saisie.
|
|
45
|
+
|
|
46
|
+
<Canvas of={DatePickerStories.CustomDateFormat}/>
|
|
47
|
+
|
|
48
|
+
## Mode lecture seule
|
|
49
|
+
|
|
50
|
+
Le composant peut être configuré en mode lecture seule, ce qui empêche toute modification de la valeur.
|
|
51
|
+
|
|
52
|
+
<Canvas of={DatePickerStories.ReadonlyMode}/>
|
|
53
|
+
|
|
54
|
+
## Plages de dates
|
|
55
|
+
|
|
56
|
+
Le composant permet la sélection de plages de dates avec validation automatique.
|
|
57
|
+
|
|
58
|
+
<Canvas of={DatePickerStories.DateRange}/>
|
|
59
|
+
|
|
60
|
+
### DatePicker avec période personnalisée
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<div
|
|
64
|
+
style={{
|
|
65
|
+
border: '2px solid #FF0000',
|
|
66
|
+
padding: '1rem',
|
|
67
|
+
borderRadius: '4px',
|
|
68
|
+
marginBottom: '1rem',
|
|
69
|
+
}}
|
|
70
|
+
>
|
|
71
|
+
<strong>Note importante</strong>
|
|
72
|
+
<ul>
|
|
73
|
+
<li>La prop <code>period</code> permet de définir une période de dates valides. Les dates en dehors de cette période ne seront pas visibles dans le calendrier.</li>
|
|
74
|
+
<li>Le format de la prop <code>period</code> est <code>MM/DD/YYYY</code>.</li>
|
|
75
|
+
</ul>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<Canvas of={DatePickerStories.WithCustomPeriod}/>
|
|
79
|
+
|
|
80
|
+
## Personnalisation des icônes
|
|
81
|
+
|
|
82
|
+
Vous pouvez personnaliser la position de l'icône du calendrier (au début ou à la fin du champ).
|
|
83
|
+
|
|
84
|
+
<Canvas of={DatePickerStories.WithCustomIcons}/>
|
|
85
|
+
|
|
86
|
+
## Activation par le champ de texte
|
|
87
|
+
|
|
88
|
+
La propriété `textFieldActivator` permet d'ouvrir le calendrier en cliquant n'importe où sur le champ de texte.
|
|
89
|
+
|
|
90
|
+
<Canvas of={DatePickerStories.WithTextFieldActivator}/>
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
# Validation et règles personnalisées
|
|
94
|
+
|
|
95
|
+
Le composant prend en charge des règles de validation personnalisées pour vérifier les dates saisies.
|
|
96
|
+
|
|
97
|
+
<Canvas of={DatePickerStories.WithValidation}/>
|
|
98
|
+
|
|
99
|
+
## Formats de retour différents
|
|
100
|
+
|
|
101
|
+
Vous pouvez spécifier un format différent pour la valeur de retour avec la propriété `dateFormatReturn`.
|
|
102
|
+
|
|
103
|
+
<Canvas of={DatePickerStories.WithDateFormatReturn}/>
|
|
104
|
+
|
|
105
|
+
## Intégration dans un formulaire
|
|
106
|
+
|
|
107
|
+
Le composant s'intègre facilement dans un formulaire avec validation à la soumission.
|
|
108
|
+
|
|
109
|
+
<Canvas of={DatePickerStories.WithFormSubmission}/>
|
|
110
|
+
|
|
111
|
+
# Méthodes exposées
|
|
112
|
+
|
|
113
|
+
Le composant expose plusieurs méthodes qui peuvent être utilisées via une référence :
|
|
114
|
+
|
|
115
|
+
### validateOnSubmit
|
|
116
|
+
- **Description** : Valide le champ lors de la soumission d'un formulaire
|
|
117
|
+
- **Retour** : `boolean` - Indique si la validation a réussi
|
|
118
|
+
|
|
119
|
+
### clearValidation
|
|
120
|
+
- **Description** : Efface les messages de validation
|
|
121
|
+
|
|
122
|
+
### validateDates
|
|
123
|
+
- **Description** : Valide les dates sélectionnées
|
|
124
|
+
|
|
125
|
+
### openDatePicker
|
|
126
|
+
- **Description** : Ouvre le calendrier programmatiquement
|
|
127
|
+
|
|
128
|
+
### toggleDatePicker
|
|
129
|
+
- **Description** : Bascule l'état d'ouverture du calendrier
|
|
130
|
+
|
|
131
|
+
### Exemple d'utilisation
|
|
132
|
+
|
|
133
|
+
<Source
|
|
134
|
+
dark code={`
|
|
135
|
+
<script setup lang="ts">
|
|
136
|
+
import { ref } from 'vue'
|
|
137
|
+
import { DatePicker } from '@cnamts/synapse'
|
|
138
|
+
|
|
139
|
+
const date = ref('')
|
|
140
|
+
const datePicker = ref(null)
|
|
141
|
+
|
|
142
|
+
const submitForm = () => {
|
|
143
|
+
const isValid = datePicker.value.validateOnSubmit()
|
|
144
|
+
if (isValid) {
|
|
145
|
+
// Traitement du formulaire
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
</script>
|
|
149
|
+
|
|
150
|
+
<template>
|
|
151
|
+
<form @submit.prevent="submitForm">
|
|
152
|
+
<DatePicker
|
|
153
|
+
ref="datePicker"
|
|
154
|
+
v-model="date"
|
|
155
|
+
placeholder="Date requise"
|
|
156
|
+
format="DD/MM/YYYY"
|
|
157
|
+
useCombinedMode
|
|
158
|
+
required
|
|
159
|
+
/>
|
|
160
|
+
<button type="submit">Soumettre</button>
|
|
161
|
+
</form>
|
|
162
|
+
</template>
|
|
163
|
+
`}
|
|
164
|
+
/>
|
|
165
|
+
|
|
166
|
+
### Exemple avec période personnalisée
|
|
167
|
+
|
|
168
|
+
<Source
|
|
169
|
+
dark code={`
|
|
170
|
+
<script setup lang="ts">
|
|
171
|
+
import { ref } from 'vue'
|
|
172
|
+
import { DatePicker } from '@cnamts/synapse'
|
|
173
|
+
|
|
174
|
+
const date = ref('')
|
|
175
|
+
</script>
|
|
176
|
+
|
|
177
|
+
<template>
|
|
178
|
+
<DatePicker
|
|
179
|
+
v-model="date"
|
|
180
|
+
placeholder="Sélectionner une date (1995-2005)"
|
|
181
|
+
format="DD/MM/YYYY"
|
|
182
|
+
useCombinedMode
|
|
183
|
+
:period="{
|
|
184
|
+
min: '01/01/1995',
|
|
185
|
+
max: '31/12/2005'
|
|
186
|
+
}"
|
|
187
|
+
/>
|
|
188
|
+
</template>
|
|
189
|
+
`}
|
|
190
|
+
/>
|
|
191
|
+
|
|
192
|
+
# Événements
|
|
193
|
+
|
|
194
|
+
Le composant émet plusieurs événements :
|
|
195
|
+
|
|
196
|
+
### update:modelValue
|
|
197
|
+
- **Payload** : `string | string[]` - La nouvelle valeur du champ
|
|
198
|
+
|
|
199
|
+
### closed
|
|
200
|
+
- **Description** : Émis lorsque le calendrier est fermé
|
|
201
|
+
|
|
202
|
+
### focus
|
|
203
|
+
- **Description** : Émis lorsque le champ reçoit le focus
|
|
204
|
+
|
|
205
|
+
### blur
|
|
206
|
+
- **Description** : Émis lorsque le champ perd le focus
|
|
207
|
+
|
|
208
|
+
### input
|
|
209
|
+
- **Payload** : `string` - La valeur saisie dans le champ
|
|
210
|
+
|
|
211
|
+
### date-selected
|
|
212
|
+
- **Payload** : `Date | Date[] | null` - La date ou les dates sélectionnées
|