@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
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
|
+
import SyTable from './SyTable.vue'
|
|
3
|
+
import { ref } from 'vue'
|
|
4
|
+
import type { VDataTable } from 'vuetify/components'
|
|
5
|
+
import dayjs from 'dayjs'
|
|
6
|
+
|
|
7
|
+
const meta = {
|
|
8
|
+
title: 'Composants/Tableaux/SyTable/Rules',
|
|
9
|
+
component: SyTable,
|
|
10
|
+
decorators: [
|
|
11
|
+
() => ({
|
|
12
|
+
template: '<div style="padding: 20px;"><story/></div>',
|
|
13
|
+
}),
|
|
14
|
+
],
|
|
15
|
+
parameters: {
|
|
16
|
+
layout: 'fullscreen',
|
|
17
|
+
controls: { hideNoControlsWarning: true },
|
|
18
|
+
},
|
|
19
|
+
} satisfies Meta<typeof SyTable & typeof VDataTable>
|
|
20
|
+
|
|
21
|
+
export default meta
|
|
22
|
+
|
|
23
|
+
type Story = StoryObj<typeof meta>
|
|
24
|
+
|
|
25
|
+
export const TextFilterRules: Story = {
|
|
26
|
+
args: {
|
|
27
|
+
suffix: 'filter-rules',
|
|
28
|
+
showFilters: true,
|
|
29
|
+
},
|
|
30
|
+
parameters: {
|
|
31
|
+
docs: {
|
|
32
|
+
description: {
|
|
33
|
+
story: 'Documentation des règles de filtrage textuel pour le composant SyTable.',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
render: () => ({
|
|
38
|
+
components: { SyTable },
|
|
39
|
+
setup() {
|
|
40
|
+
const headers = ref([
|
|
41
|
+
{ title: 'Exemple', key: 'example', filterable: true },
|
|
42
|
+
{ title: 'Description', key: 'description', filterable: false },
|
|
43
|
+
])
|
|
44
|
+
|
|
45
|
+
const items = ref([
|
|
46
|
+
{ example: 'Paris', description: 'Recherche simple (insensible à la casse) - trouve "Paris", "paris", etc.' },
|
|
47
|
+
{ example: 'p*', description: 'Tous les mots commençant par "p" - trouve "Paris", "pomme", "Portugal", etc.' },
|
|
48
|
+
{ example: '*is', description: 'Tous les mots finissant par "is" - trouve "Paris", "tennis", etc.' },
|
|
49
|
+
{ example: 'p?r?s', description: 'Remplace chaque ? par un caractère - trouve "Paris", "parus", etc.' },
|
|
50
|
+
{ example: '"Paris"', description: 'Recherche sensible à la casse - trouve "Paris" mais pas "paris"' },
|
|
51
|
+
{ example: '=????', description: 'Tous les mots de 4 lettres exactement - trouve "Lyon", "Nice", etc.' },
|
|
52
|
+
{ example: '<>?*', description: 'Toutes les valeurs vides ou nulles - trouve les cellules vides' },
|
|
53
|
+
{ example: '>m', description: 'Tous les mots classés après "m" - trouve "Nice", "Paris", "Rome", etc.' },
|
|
54
|
+
{ example: '*a*i*', description: 'Combinaison de wildcards - trouve "Paris", "Madrid", etc.' },
|
|
55
|
+
])
|
|
56
|
+
|
|
57
|
+
const options = ref({
|
|
58
|
+
itemsPerPage: 10,
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
headers,
|
|
63
|
+
items,
|
|
64
|
+
options,
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
template: `
|
|
68
|
+
<div>
|
|
69
|
+
<h2>Règles de filtrage textuel</h2>
|
|
70
|
+
<p class="mb-4">Le filtre textuel s'applique à une colonne de texte. Pour éviter qu'il ne soit lancé à chaque caractère saisi, il n'est déclenché qu'après un laps de temps de 300ms (par défaut) sans saisie.</p>
|
|
71
|
+
|
|
72
|
+
<h3 class="mb-2">Opérateurs et caractères spéciaux supportés</h3>
|
|
73
|
+
<p class="mb-4">Le filtre textuel prend en charge les opérateurs et caractères spéciaux suivants :</p>
|
|
74
|
+
|
|
75
|
+
<div class="mb-4">
|
|
76
|
+
<table class="mb-4" style="width: auto; border-collapse: collapse;">
|
|
77
|
+
<thead>
|
|
78
|
+
<tr>
|
|
79
|
+
<th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Opérateur/Caractère</th>
|
|
80
|
+
<th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Description</th>
|
|
81
|
+
<th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Exemple</th>
|
|
82
|
+
</tr>
|
|
83
|
+
</thead>
|
|
84
|
+
<tbody>
|
|
85
|
+
<tr>
|
|
86
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>*</code></td>
|
|
87
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Remplace n'importe quelle chaîne de caractères</td>
|
|
88
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>p*</code> (tous les mots commençant par "p")</td>
|
|
89
|
+
</tr>
|
|
90
|
+
<tr>
|
|
91
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>?</code></td>
|
|
92
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Remplace n'importe quel caractère unique</td>
|
|
93
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>p?re</code> ("père", "pare", "pire", etc.)</td>
|
|
94
|
+
</tr>
|
|
95
|
+
<tr>
|
|
96
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>"texte"</code></td>
|
|
97
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Recherche sensible à la casse et aux accents</td>
|
|
98
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>"Paris"</code> (trouve "Paris" mais pas "paris")</td>
|
|
99
|
+
</tr>
|
|
100
|
+
<tr>
|
|
101
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>=????</code></td>
|
|
102
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Tous les mots de longueur exacte</td>
|
|
103
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>=????</code> (tous les mots de 4 lettres)</td>
|
|
104
|
+
</tr>
|
|
105
|
+
<tr>
|
|
106
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code><>?*</code></td>
|
|
107
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Toutes les valeurs vides ou nulles</td>
|
|
108
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code><>?*</code> (cellules vides)</td>
|
|
109
|
+
</tr>
|
|
110
|
+
<tr>
|
|
111
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>>texte</code></td>
|
|
112
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Tous les mots classés après alphabétiquement</td>
|
|
113
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>>m</code> (mots commençant par n à z)</td>
|
|
114
|
+
</tr>
|
|
115
|
+
</tbody>
|
|
116
|
+
</table>
|
|
117
|
+
<p>Sans opérateur spécial, le filtre effectue une recherche insensible à la casse.</p>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<SyTable
|
|
121
|
+
v-model:options="options"
|
|
122
|
+
:headers="headers"
|
|
123
|
+
:items="items"
|
|
124
|
+
suffix="filter-rules"
|
|
125
|
+
show-filters
|
|
126
|
+
/>
|
|
127
|
+
</div>
|
|
128
|
+
`,
|
|
129
|
+
}),
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export const NumberFilterRules: Story = {
|
|
133
|
+
args: {
|
|
134
|
+
suffix: 'number-filter-rules',
|
|
135
|
+
showFilters: true,
|
|
136
|
+
},
|
|
137
|
+
parameters: {
|
|
138
|
+
docs: {
|
|
139
|
+
description: {
|
|
140
|
+
story: 'Documentation des règles de filtrage numérique pour le composant SyTable.',
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
render: () => ({
|
|
145
|
+
components: { SyTable },
|
|
146
|
+
setup() {
|
|
147
|
+
const headers = ref([
|
|
148
|
+
{ title: 'Exemple', key: 'example', filterable: true, filterType: 'number' },
|
|
149
|
+
{ title: 'Description', key: 'description', filterable: false },
|
|
150
|
+
])
|
|
151
|
+
|
|
152
|
+
const items = ref([
|
|
153
|
+
{ example: 42, description: 'Recherche exacte (42)' },
|
|
154
|
+
{ example: 10, description: 'Recherche exacte (10)' },
|
|
155
|
+
{ example: 25, description: 'Recherche exacte (25)' },
|
|
156
|
+
{ example: 100, description: 'Recherche exacte (100)' },
|
|
157
|
+
{ example: 75, description: 'Recherche exacte (75)' },
|
|
158
|
+
{ example: 50, description: 'Recherche exacte (50)' },
|
|
159
|
+
{ example: 30, description: 'Recherche exacte (30)' },
|
|
160
|
+
{ example: 90, description: 'Recherche exacte (90)' },
|
|
161
|
+
])
|
|
162
|
+
|
|
163
|
+
const options = ref({
|
|
164
|
+
itemsPerPage: 10,
|
|
165
|
+
})
|
|
166
|
+
|
|
167
|
+
return {
|
|
168
|
+
headers,
|
|
169
|
+
items,
|
|
170
|
+
options,
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
template: `
|
|
174
|
+
<div>
|
|
175
|
+
<h2>Règles de filtrage numérique</h2>
|
|
176
|
+
<p class="mb-4">Le filtre numérique s'applique à une colonne de nombres. Pour éviter qu'il ne soit lancé à chaque caractère saisi, il n'est déclenché qu'après un laps de temps de 300ms (par défaut) sans saisie.</p>
|
|
177
|
+
|
|
178
|
+
<h3 class="mb-2">Opérateurs supportés</h3>
|
|
179
|
+
<p class="mb-4">Le filtre numérique prend en charge les opérateurs suivants lorsqu'ils sont placés au début de la valeur :</p>
|
|
180
|
+
|
|
181
|
+
<div class="mb-4">
|
|
182
|
+
<table class="mb-4" style="width: auto; border-collapse: collapse;">
|
|
183
|
+
<thead>
|
|
184
|
+
<tr>
|
|
185
|
+
<th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Opérateur</th>
|
|
186
|
+
<th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Description</th>
|
|
187
|
+
<th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Exemple</th>
|
|
188
|
+
</tr>
|
|
189
|
+
</thead>
|
|
190
|
+
<tbody>
|
|
191
|
+
<tr>
|
|
192
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>=</code></td>
|
|
193
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Égal à</td>
|
|
194
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>=42</code> (égal à 42)</td>
|
|
195
|
+
</tr>
|
|
196
|
+
<tr>
|
|
197
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code><></code></td>
|
|
198
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Différent de</td>
|
|
199
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code><>42</code> (différent de 42)</td>
|
|
200
|
+
</tr>
|
|
201
|
+
<tr>
|
|
202
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code><</code></td>
|
|
203
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Inférieur à</td>
|
|
204
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code><42</code> (inférieur à 42)</td>
|
|
205
|
+
</tr>
|
|
206
|
+
<tr>
|
|
207
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code><=</code></td>
|
|
208
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Inférieur ou égal à</td>
|
|
209
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code><=42</code> (inférieur ou égal à 42)</td>
|
|
210
|
+
</tr>
|
|
211
|
+
<tr>
|
|
212
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>></code></td>
|
|
213
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Supérieur à</td>
|
|
214
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>>42</code> (supérieur à 42)</td>
|
|
215
|
+
</tr>
|
|
216
|
+
<tr>
|
|
217
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>>=</code></td>
|
|
218
|
+
<td style="border: 1px solid #ddd; padding: 8px;">Supérieur ou égal à</td>
|
|
219
|
+
<td style="border: 1px solid #ddd; padding: 8px;"><code>>=42</code> (supérieur ou égal à 42)</td>
|
|
220
|
+
</tr>
|
|
221
|
+
</tbody>
|
|
222
|
+
</table>
|
|
223
|
+
<p>Sans opérateur, le filtre effectue une recherche d'égalité exacte.</p>
|
|
224
|
+
</div>
|
|
225
|
+
|
|
226
|
+
<SyTable
|
|
227
|
+
v-model:options="options"
|
|
228
|
+
:headers="headers"
|
|
229
|
+
:items="items"
|
|
230
|
+
suffix="number-filter-rules"
|
|
231
|
+
show-filters
|
|
232
|
+
/>
|
|
233
|
+
</div>
|
|
234
|
+
`,
|
|
235
|
+
}),
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
export const SelectFilterRules: Story = {
|
|
239
|
+
args: {
|
|
240
|
+
suffix: 'select-filter-rules',
|
|
241
|
+
showFilters: true,
|
|
242
|
+
},
|
|
243
|
+
parameters: {
|
|
244
|
+
docs: {
|
|
245
|
+
description: {
|
|
246
|
+
story: 'Documentation des règles de filtrage par sélection pour le composant SyTable.',
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
render: () => ({
|
|
251
|
+
components: { SyTable },
|
|
252
|
+
setup() {
|
|
253
|
+
const headers = ref([
|
|
254
|
+
{
|
|
255
|
+
title: 'Catégorie',
|
|
256
|
+
key: 'category',
|
|
257
|
+
filterable: true,
|
|
258
|
+
filterType: 'select',
|
|
259
|
+
filterOptions: [
|
|
260
|
+
{ text: 'Fruits', value: 'Fruits' },
|
|
261
|
+
{ text: 'Légumes', value: 'Légumes' },
|
|
262
|
+
{ text: 'Boissons', value: 'Boissons' },
|
|
263
|
+
{ text: '(vide)', value: '' },
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
{ title: 'Description', key: 'description', filterable: false },
|
|
267
|
+
])
|
|
268
|
+
|
|
269
|
+
const items = ref([
|
|
270
|
+
{ category: 'Fruits', description: 'Catégorie standard avec valeur non vide' },
|
|
271
|
+
{ category: 'Légumes', description: 'Catégorie standard avec valeur non vide' },
|
|
272
|
+
{ category: '', description: 'Catégorie avec valeur vide, affichée comme "(vide)" dans la liste' },
|
|
273
|
+
{ category: 'Fruits', description: 'Valeur dupliquée, apparaît une seule fois dans la liste' },
|
|
274
|
+
{ category: 'Boissons', description: 'Catégorie standard avec valeur non vide' },
|
|
275
|
+
])
|
|
276
|
+
|
|
277
|
+
const options = ref({
|
|
278
|
+
itemsPerPage: 10,
|
|
279
|
+
})
|
|
280
|
+
|
|
281
|
+
return {
|
|
282
|
+
headers,
|
|
283
|
+
items,
|
|
284
|
+
options,
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
template: `
|
|
288
|
+
<div>
|
|
289
|
+
<h2>Règles de filtrage par sélection</h2>
|
|
290
|
+
<p class="mb-4">Les filtres de sélection permettent de choisir parmi les valeurs uniques présentes dans la colonne.</p>
|
|
291
|
+
|
|
292
|
+
<div class="mb-4">
|
|
293
|
+
<p>Les filtres de choix sont des listes reprenant les éléments uniques présents dans l'ensemble des colonnes non filtrés. Pour faciliter l'accessibilité de la liste, le premier élément contient la valeur « - choisir - » pour indiquer qu'aucune ligne n'est filtré. Si l'une des cellules de la colonne est vide, l'élément de liste correspondant doit afficher la valeur « (vide) ».</p>
|
|
294
|
+
<p>L'action de filtrage est effectuée à la sélection d'une option de la liste de choix.</p>
|
|
295
|
+
</div>
|
|
296
|
+
|
|
297
|
+
<SyTable
|
|
298
|
+
v-model:options="options"
|
|
299
|
+
:headers="headers"
|
|
300
|
+
:items="items"
|
|
301
|
+
suffix="select-filter-rules"
|
|
302
|
+
show-filters
|
|
303
|
+
/>
|
|
304
|
+
</div>
|
|
305
|
+
`,
|
|
306
|
+
}),
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export const DateFilterRules: Story = {
|
|
310
|
+
args: {
|
|
311
|
+
suffix: 'date-filter-rules',
|
|
312
|
+
showFilters: true,
|
|
313
|
+
},
|
|
314
|
+
parameters: {
|
|
315
|
+
docs: {
|
|
316
|
+
description: {
|
|
317
|
+
story: 'Documentation des règles de filtrage par date pour le composant SyTable.',
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
render: () => ({
|
|
322
|
+
components: { SyTable },
|
|
323
|
+
setup() {
|
|
324
|
+
// Exemple 1: Filtrage par date seule
|
|
325
|
+
const headersSingleDate = ref([
|
|
326
|
+
{
|
|
327
|
+
title: 'Date',
|
|
328
|
+
key: 'date',
|
|
329
|
+
filterable: true,
|
|
330
|
+
filterType: 'date',
|
|
331
|
+
},
|
|
332
|
+
{ title: 'Description', key: 'description', filterable: false },
|
|
333
|
+
])
|
|
334
|
+
|
|
335
|
+
const itemsSingleDate = ref([
|
|
336
|
+
{ date: dayjs('2025-01-15').format('DD/MM/YYYY'), description: 'Date simple' },
|
|
337
|
+
{ date: dayjs('2025-02-20').format('DD/MM/YYYY'), description: 'Date simple' },
|
|
338
|
+
{ date: dayjs('2024-12-10').format('DD/MM/YYYY'), description: 'Date simple' },
|
|
339
|
+
{ date: dayjs('2025-05-05').format('DD/MM/YYYY'), description: 'Date simple' },
|
|
340
|
+
])
|
|
341
|
+
|
|
342
|
+
const optionsSingleDate = ref({
|
|
343
|
+
itemsPerPage: 10,
|
|
344
|
+
})
|
|
345
|
+
|
|
346
|
+
// Exemple 2: Filtrage par période
|
|
347
|
+
const headersPeriod = ref([
|
|
348
|
+
{
|
|
349
|
+
title: 'Date',
|
|
350
|
+
key: 'date',
|
|
351
|
+
filterable: true,
|
|
352
|
+
filterType: 'period',
|
|
353
|
+
dateFormat: 'DD/MM/YYYY',
|
|
354
|
+
},
|
|
355
|
+
{ title: 'Description', key: 'description', filterable: false },
|
|
356
|
+
])
|
|
357
|
+
|
|
358
|
+
// Définir une période du 01/01/2025 au 31/03/2025 pour l'exemple
|
|
359
|
+
const periodStart = dayjs('2025-01-01').format('DD/MM/YYYY')
|
|
360
|
+
const periodEnd = dayjs('2025-03-31').format('DD/MM/YYYY')
|
|
361
|
+
|
|
362
|
+
const itemsPeriod = ref([
|
|
363
|
+
{ date: dayjs('2025-01-15').format('DD/MM/YYYY'), description: `Date incluse dans la période ${periodStart} - ${periodEnd}` },
|
|
364
|
+
{ date: dayjs('2025-02-20').format('DD/MM/YYYY'), description: `Date incluse dans la période ${periodStart} - ${periodEnd}` },
|
|
365
|
+
{ date: dayjs('2024-12-10').format('DD/MM/YYYY'), description: `Date avant la période ${periodStart} - ${periodEnd}` },
|
|
366
|
+
{ date: dayjs('2025-05-05').format('DD/MM/YYYY'), description: `Date après la période ${periodStart} - ${periodEnd}` },
|
|
367
|
+
{ date: dayjs('2025-01-01').format('DD/MM/YYYY'), description: `Date limite inférieure de la période (${periodStart})` },
|
|
368
|
+
{ date: dayjs('2025-03-31').format('DD/MM/YYYY'), description: `Date limite supérieure de la période (${periodEnd})` },
|
|
369
|
+
])
|
|
370
|
+
|
|
371
|
+
const optionsPeriod = ref({
|
|
372
|
+
itemsPerPage: 10,
|
|
373
|
+
})
|
|
374
|
+
|
|
375
|
+
return {
|
|
376
|
+
headersSingleDate,
|
|
377
|
+
itemsSingleDate,
|
|
378
|
+
optionsSingleDate,
|
|
379
|
+
headersPeriod,
|
|
380
|
+
itemsPeriod,
|
|
381
|
+
optionsPeriod,
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
template: `
|
|
385
|
+
<div>
|
|
386
|
+
<h2>Règles de filtrage par date</h2>
|
|
387
|
+
<p class="mb-4">Le filtre de date s'applique à une colonne de dates.</p>
|
|
388
|
+
|
|
389
|
+
<div class="mb-4">
|
|
390
|
+
<p>Le filtre de période comporte deux champs de saisies permettant de saisir une période du … au …</p>
|
|
391
|
+
<ul class="mb-4 pl-4">
|
|
392
|
+
<li>Le premier champ de saisie représente la date minimale recherchée (inclue). S'il n'est pas renseigné, il n'y a pas de limite minimale.</li>
|
|
393
|
+
<li>Le deuxième champ de saisie représente la date maximale recherchée (inclue). S'il n'est pas renseigné, il n'y a pas de limite maximale.</li>
|
|
394
|
+
</ul>
|
|
395
|
+
<p>L'action de filtrage s'effectue quand 10 caractères sont présents dans le champ de saisie en cours.</p>
|
|
396
|
+
</div>
|
|
397
|
+
|
|
398
|
+
<h3 class="mb-3">Exemple 1: Filtrage par date seule</h3>
|
|
399
|
+
<SyTable
|
|
400
|
+
v-model:options="optionsSingleDate"
|
|
401
|
+
:headers="headersSingleDate"
|
|
402
|
+
:items="itemsSingleDate"
|
|
403
|
+
suffix="date-filter-single"
|
|
404
|
+
show-filters
|
|
405
|
+
/>
|
|
406
|
+
|
|
407
|
+
<h3 class="mt-6 mb-3">Exemple 2: Filtrage par période</h3>
|
|
408
|
+
<SyTable
|
|
409
|
+
v-model:options="optionsPeriod"
|
|
410
|
+
:headers="headersPeriod"
|
|
411
|
+
:items="itemsPeriod"
|
|
412
|
+
suffix="date-filter-period"
|
|
413
|
+
show-filters
|
|
414
|
+
/>
|
|
415
|
+
</div>
|
|
416
|
+
`,
|
|
417
|
+
}),
|
|
418
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Controls, Canvas, Meta, Source } from '@storybook/blocks';
|
|
2
|
+
import * as SyTable from './SyTable.stories';
|
|
3
|
+
|
|
4
|
+
<Meta of={SyTable} />
|
|
5
|
+
|
|
6
|
+
# SyTable
|
|
7
|
+
|
|
8
|
+
Le composant `SyTable` est utilisé pour afficher des données tabulaires côté client. Il s'appuie sur le composant `VDataTable` de Vuetify et offre des fonctionnalités supplémentaires comme le stockage local des options de tableau et des améliorations d'accessibilité.
|
|
9
|
+
|
|
10
|
+
<Canvas story={{height: '550px'}} of={SyTable.Default} />
|
|
11
|
+
|
|
12
|
+
## API
|
|
13
|
+
|
|
14
|
+
<Controls of={SyTable.Default} />
|
|
15
|
+
|
|
16
|
+
## Fonctionnalités
|
|
17
|
+
|
|
18
|
+
### Stockage local des options
|
|
19
|
+
|
|
20
|
+
Le composant `SyTable` enregistre automatiquement les options du tableau (tri, pagination, etc.) dans le localStorage du navigateur. Ces options sont restaurées lorsque l'utilisateur revient sur la page.
|
|
21
|
+
|
|
22
|
+
Pour gérer individuellement le stockage des options pour différents tableaux, utilisez la prop `suffix`.
|
|
23
|
+
|
|
24
|
+
### Tri des colonnes
|
|
25
|
+
|
|
26
|
+
Le composant permet de trier les données par colonne en cliquant sur l'en-tête de la colonne.
|
|
27
|
+
|
|
28
|
+
<Canvas story={{height: '550px'}} of={SyTable.SortBy} />
|
|
29
|
+
|
|
30
|
+
### Filtres des colonnes
|
|
31
|
+
|
|
32
|
+
Le composant permet d'appliquer des filtres sur les colonnes. Vous pouvez définir des filtres personnalisés pour chaque colonne en utilisant la prop `show-filters`. Voir d'autres exemples de filtres dans les stories.
|
|
33
|
+
<Canvas story={{height: '550px'}} of={SyTable.FilterByText} />
|
|
34
|
+
|
|
35
|
+
### Resize des colonnes
|
|
36
|
+
|
|
37
|
+
Le composant peut permettre de redimensionner les colonnes en utilisant la prop `resizable-columns`. Vous pouvez activer ou désactiver cette fonctionnalité selon vos besoins.
|
|
38
|
+
<Canvas story={{height: '550px'}} of={SyTable.ResizableColumns} />
|
|
39
|
+
|
|
40
|
+
### Réorganisation des colonnes
|
|
41
|
+
|
|
42
|
+
Le composant permet de cacher ou réorganiser l'ordre des colonnes en utilisant la prop `enable-column-controls`. Vous pouvez activer ou désactiver cette fonctionnalité selon vos besoins.
|
|
43
|
+
<Canvas story={{height: '550px'}} of={SyTable.ColumnControls} />
|
|
44
|
+
|
|
45
|
+
### Selection des lignes
|
|
46
|
+
|
|
47
|
+
Le composant permet de sélectionner des lignes individuellement ou en masse. Vous pouvez activer la sélection en utilisant la prop `show-select`.
|
|
48
|
+
<Canvas story={{height: '550px'}} of={SyTable.RowSelection} />
|
|
49
|
+
|
|
50
|
+
### Accessibilité
|
|
51
|
+
|
|
52
|
+
Le composant améliore l'accessibilité en ajoutant automatiquement :
|
|
53
|
+
- Une légende (caption) pour le tableau
|
|
54
|
+
- Des attributs ARIA appropriés
|
|
55
|
+
- Des attributs scope pour les en-têtes de colonnes
|
|
56
|
+
|
|
57
|
+
## Exemples d'utilisation
|
|
58
|
+
|
|
59
|
+
### Tableau simple
|
|
60
|
+
|
|
61
|
+
<Source dark code={`
|
|
62
|
+
<template>
|
|
63
|
+
<SyTable
|
|
64
|
+
v-model:options="options"
|
|
65
|
+
:headers="headers"
|
|
66
|
+
:items="items"
|
|
67
|
+
/>
|
|
68
|
+
</template>
|
|
69
|
+
|
|
70
|
+
<script setup lang="ts">
|
|
71
|
+
import { ref } from 'vue'
|
|
72
|
+
import { SyTable } from '@cnamts/synapse'
|
|
73
|
+
|
|
74
|
+
const options = ref({
|
|
75
|
+
itemsPerPage: 4,
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
const headers = ref([
|
|
79
|
+
{
|
|
80
|
+
title: 'Nom',
|
|
81
|
+
key: 'lastname',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
title: 'Prénom',
|
|
85
|
+
key: 'firstname',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
title: 'Email',
|
|
89
|
+
value: 'email',
|
|
90
|
+
},
|
|
91
|
+
])
|
|
92
|
+
|
|
93
|
+
const items = ref([
|
|
94
|
+
{
|
|
95
|
+
firstname: 'Virginie',
|
|
96
|
+
lastname: 'Beauchesne',
|
|
97
|
+
email: 'virginie.beauchesne@example.com',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
firstname: 'Simone',
|
|
101
|
+
lastname: 'Bellefeuille',
|
|
102
|
+
email: 'simone.bellefeuille@example.com',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
firstname: 'Étienne',
|
|
106
|
+
lastname: 'Salois',
|
|
107
|
+
email: 'etienne.salois@example.com',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
firstname: 'Thierry',
|
|
111
|
+
lastname: 'Bobu',
|
|
112
|
+
email: 'thierry.bobu@example.com',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
firstname: 'Bernadette',
|
|
116
|
+
lastname: 'Langelier',
|
|
117
|
+
email: 'bernadette.langelier@exemple.com'
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
firstname: 'Agate',
|
|
121
|
+
lastname: 'Roy',
|
|
122
|
+
email: 'agate.roy@exemple.com'
|
|
123
|
+
}
|
|
124
|
+
])
|
|
125
|
+
</script>
|
|
126
|
+
`} />
|
|
127
|
+
|
|
128
|
+
### Plusieurs tableaux sur une même page
|
|
129
|
+
|
|
130
|
+
Pour utiliser plusieurs tableaux sur une même page avec des options indépendantes, utilisez la prop `suffix` pour chaque tableau.
|
|
131
|
+
|
|
132
|
+
<Canvas of={SyTable.ManyTables} />
|
|
133
|
+
|
|
134
|
+
## Bonnes pratiques
|
|
135
|
+
|
|
136
|
+
- Utilisez des en-têtes clairs et descriptifs pour chaque colonne
|
|
137
|
+
- Définissez un nombre d'éléments par page adapté à votre contenu
|
|
138
|
+
- Utilisez la prop `suffix` lorsque vous avez plusieurs tableaux sur une même page
|
|
139
|
+
- Ajoutez une légende explicite si le tableau contient des données complexes
|