@cnamts/synapse 1.0.27 → 1.1.0
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/{AutocompleteFilter-C9eLKyW8.js → AutocompleteFilter-DXd4szWO.js} +3 -3
- package/dist/{DateFilter-y-GLkAkn.js → DateFilter-BD59Kgwf.js} +8 -8
- package/dist/{NumberFilter-DN6hIBS7.js → NumberFilter-BSMZE7uw.js} +1 -1
- package/dist/{PeriodFilter-MoUUp9qS.js → PeriodFilter-keUdSSk0.js} +1 -1
- package/dist/{SelectFilter-bCbrdLmu.js → SelectFilter-Dhvvwazl.js} +1 -1
- package/dist/{TextFilter-CvjgEaoM.js → TextFilter-CU8FpXz0.js} +4 -4
- package/dist/{apLightTheme2026-ug4Y23ns.js → apLightTheme2026-DbS7BPUf.js} +12 -11
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +4 -4
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +4 -4
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +6 -6
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +4 -4
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +4 -4
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +4 -4
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +4 -4
- package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +2 -2
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +85 -313
- package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +2 -2
- package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +9 -11
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +7 -7
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +3 -3
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +5 -5
- package/dist/components/Customs/SyIcon/SyIcon.d.ts +77 -1
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +10 -10
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +19 -79
- package/dist/components/Customs/SyTextField/locales.d.ts +7 -0
- package/dist/components/Customs/SyTextField/types.d.ts +67 -4
- package/dist/components/Customs/SyTextField/useNumberField.d.ts +23 -0
- package/dist/components/Customs/SyTextField/useSyTextFieldValidation.d.ts +38 -0
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +170 -622
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +85 -311
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +39 -152
- package/dist/components/FilterInline/FilterInline.d.ts +3 -3
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +4 -4
- package/dist/components/MonthPicker/MonthPicker.d.ts +37 -150
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +37 -150
- package/dist/components/NirField/NirField.d.ts +90 -321
- package/dist/components/NirField/useNirValidation.d.ts +10 -20
- package/dist/components/PasswordField/PasswordField.d.ts +20 -39
- package/dist/components/PasswordField/locales.d.ts +2 -0
- package/dist/components/PasswordField/types.d.ts +16 -0
- package/dist/components/PasswordField/usePasswordFieldValidation.d.ts +38 -0
- package/dist/components/PeriodField/PeriodField.d.ts +349 -1253
- package/dist/components/PhoneField/PhoneField.d.ts +37 -150
- package/dist/components/SearchListField/SearchListField.d.ts +3 -3
- package/dist/components/SyTextArea/SyTextArea.d.ts +14 -11
- package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +7 -7
- package/dist/components/Tables/common/SyTablePagination.d.ts +19 -20
- package/dist/composables/unifyValidation/documentationValidationProps.d.ts +1 -1
- package/dist/composables/unifyValidation/useValidation.d.ts +1 -9
- package/dist/composables/useFilterable/useFilterable.d.ts +1 -2
- package/dist/design-system-v3.js +19 -19
- package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +1 -0
- package/dist/designTokens/tokens/pa/paLightTheme.d.ts +1 -0
- package/dist/{main-CI6Q9nmO.js → main-D8ryUoS5.js} +13605 -13358
- package/dist/synapse.css +1 -1
- package/dist/vuetifyConfig.js +27 -25
- package/package.json +6 -5
- package/src/components/Accordion/tests/Accordion.visual.cy.ts +44 -0
- package/src/components/Accordion/tests/__snapshots__/accordion-default.snap.png +0 -0
- package/src/components/Accordion/tests/__snapshots__/accordion-disabled-item.snap.png +0 -0
- package/src/components/Accordion/tests/__snapshots__/accordion-open-first.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
- package/src/components/BackToTopBtn/tests/BackToTopBtn.visual.cy.ts +34 -0
- package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-custom-nudge.snap.png +0 -0
- package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-default.snap.png +0 -0
- package/src/components/Captcha/tests/Captcha.visual.cy.ts +45 -0
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +4 -0
- package/src/components/Captcha/tests/__snapshots__/captcha-audio-type.snap.png +0 -0
- package/src/components/Captcha/tests/__snapshots__/captcha-image-type.snap.png +0 -0
- package/src/components/Captcha/tests/__snapshots__/captcha-no-helpdesk.snap.png +0 -0
- package/src/components/ChipList/tests/ChipList.visual.cy.ts +46 -0
- package/src/components/ChipList/tests/__snapshots__/chip-list-default.snap.png +0 -0
- package/src/components/ChipList/tests/__snapshots__/chip-list-readonly.snap.png +0 -0
- package/src/components/ChipList/tests/__snapshots__/chip-list-state-icons.snap.png +0 -0
- package/src/components/CollapsibleList/tests/CollapsibleList.visual.cy.ts +33 -0
- package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-default.snap.png +0 -0
- package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-no-title.snap.png +0 -0
- package/src/components/ContextualMenu/tests/ContextualMenu.visual.cy.ts +35 -0
- package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-default.snap.png +0 -0
- package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-selected.snap.png +0 -0
- package/src/components/CookieBanner/tests/CookieBanner.visual.cy.ts +29 -0
- package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-default.snap.png +0 -0
- package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-with-items.snap.png +0 -0
- package/src/components/CookiesSelection/tests/CookiesSelection.visual.cy.ts +21 -0
- package/src/components/CookiesSelection/tests/__snapshots__/cookies-selection-default.snap.png +0 -0
- package/src/components/CopyBtn/tests/CopyBtn.visual.cy.ts +24 -0
- package/src/components/CopyBtn/tests/__snapshots__/copy-btn-default.snap.png +0 -0
- package/src/components/CopyBtn/tests/__snapshots__/copy-btn-no-tooltip.snap.png +0 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.visual.cy.ts +60 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-default.snap.png +0 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-inline.snap.png +0 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-readonly.snap.png +0 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-selected.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +1 -1
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +2 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.visual.cy.ts +63 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-default.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-loading.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-multiple.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-with-value.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +0 -93
- package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.visual.cy.ts +48 -0
- package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-default.snap.png +0 -0
- package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-required.snap.png +0 -0
- package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-with-value.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/SySelect.vue +22 -47
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +3 -3
- package/src/components/Customs/Selects/SySelect/tests/SySelect.visual.cy.ts +77 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-clearable.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-default.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-multiple-chips.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-required.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-with-value.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +1 -92
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +1 -1
- package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.visual.cy.ts +55 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-default.snap.png +0 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-disabled.snap.png +0 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-selected.snap.png +0 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-with-label.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -9
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.visual.cy.ts +61 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-checked.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-disabled.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-indeterminate.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-required.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-unchecked.snap.png +0 -0
- package/src/components/Customs/SyIcon/SyIcon.vue +19 -1
- package/src/components/Customs/SyIcon/tests/SyIcon.visual.cy.ts +83 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-color-error.snap.png +0 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-decorative.snap.png +0 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-informative.snap.png +0 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-role-button.snap.png +0 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-size-large.snap.png +0 -0
- package/src/components/Customs/SyIconButton/tests/SyIconButton.visual.cy.ts +55 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-default.snap.png +0 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-disabled.snap.png +0 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-error.snap.png +0 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-large.snap.png +0 -0
- package/src/components/Customs/SyPagination/tests/SyPagination.visual.cy.ts +40 -0
- package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-first-page.snap.png +0 -0
- package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-middle-page.snap.png +0 -0
- package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-with-label.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +0 -1
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +4 -3
- package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +1 -1
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-asterisk.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-comfortable.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-compact.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-default.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-disabled.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-error.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-no-details.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-readonly.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-selected.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-success.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-warning.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +63 -27
- package/src/components/Customs/SyTabs/tests/SyTabs.visual.cy.ts +30 -0
- package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-default.snap.png +0 -0
- package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-second-active.snap.png +0 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +160 -778
- package/src/components/Customs/SyTextField/SyTextField.vue +168 -153
- package/src/components/Customs/SyTextField/Validation/Validation.stories.ts +1164 -0
- package/src/components/Customs/SyTextField/locales.ts +12 -0
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +174 -8
- package/src/components/Customs/SyTextField/tests/SyTextField.visual.cy.ts +116 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-clearable.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-default.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-disabled.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-no-spinner.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-prepend-icon.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-readonly.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-required.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-with-value.snap.png +0 -0
- package/src/components/Customs/SyTextField/types.ts +70 -0
- package/src/components/Customs/SyTextField/useNumberField.ts +93 -0
- package/src/components/Customs/SyTextField/useSyTextFieldValidation.ts +104 -0
- package/src/components/DataList/tests/DataList.visual.cy.ts +85 -0
- package/src/components/DataList/tests/__snapshots__/data-list-default.snap.png +0 -0
- package/src/components/DataList/tests/__snapshots__/data-list-loading.snap.png +0 -0
- package/src/components/DataList/tests/__snapshots__/data-list-row.snap.png +0 -0
- package/src/components/DataList/tests/__snapshots__/data-list-with-icons.snap.png +0 -0
- package/src/components/DataList/tests/__snapshots__/data-list-with-title.snap.png +0 -0
- package/src/components/DataListGroup/tests/DataListGroup.visual.cy.ts +51 -0
- package/src/components/DataListGroup/tests/__snapshots__/data-list-group-default.snap.png +0 -0
- package/src/components/DataListGroup/tests/__snapshots__/data-list-group-loading.snap.png +0 -0
- package/src/components/DataListItem/tests/DataListItem.visual.cy.ts +53 -0
- package/src/components/DataListItem/tests/__snapshots__/data-list-item-chip.snap.png +0 -0
- package/src/components/DataListItem/tests/__snapshots__/data-list-item-default.snap.png +0 -0
- package/src/components/DataListItem/tests/__snapshots__/data-list-item-placeholder.snap.png +0 -0
- package/src/components/DataListItem/tests/__snapshots__/data-list-item-row.snap.png +0 -0
- package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +1 -1
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +7 -7
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +7 -8
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +1 -1
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +2 -2
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +1 -1
- package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +10 -10
- package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +11 -2
- package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.visual.cy.ts +35 -0
- package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-default.snap.png +0 -0
- package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-full.snap.png +0 -0
- package/src/components/DiacriticPicker/tests/DiacriticPicker.visual.cy.ts +24 -0
- package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-custom-title.snap.png +0 -0
- package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-default.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
- package/src/components/DownloadBtn/tests/DownloadBtn.spec.ts +2 -2
- package/src/components/DownloadBtn/tests/DownloadBtn.visual.cy.ts +38 -0
- package/src/components/DownloadBtn/tests/__snapshots__/download-btn-dark.snap.png +0 -0
- package/src/components/DownloadBtn/tests/__snapshots__/download-btn-idle.snap.png +0 -0
- package/src/components/ErrorPage/tests/ErrorPage.visual.cy.ts +32 -0
- package/src/components/ErrorPage/tests/__snapshots__/error-page-custom.snap.png +0 -0
- package/src/components/ErrorPage/tests/__snapshots__/error-page-default.snap.png +0 -0
- package/src/components/ErrorPage/tests/__snapshots__/error-page-no-btn.snap.png +0 -0
- package/src/components/ExternalLinks/tests/ExternalLinks.visual.cy.ts +30 -0
- package/src/components/ExternalLinks/tests/__snapshots__/external-links-default.snap.png +0 -0
- package/src/components/ExternalLinks/tests/__snapshots__/external-links-fixed.snap.png +0 -0
- package/src/components/FileList/tests/FileList.visual.cy.ts +31 -0
- package/src/components/FileList/tests/__snapshots__/file-list-default.snap.png +0 -0
- package/src/components/FileList/tests/__snapshots__/file-list-with-delete.snap.png +0 -0
- package/src/components/FilePreview/accessibilite/Accessibility.mdx +86 -8
- package/src/components/FileUpload/tests/FileUpload.visual.cy.ts +36 -0
- package/src/components/FileUpload/tests/__snapshots__/file-upload-default.snap.png +0 -0
- package/src/components/FileUpload/tests/__snapshots__/file-upload-disabled.snap.png +0 -0
- package/src/components/FileUpload/tests/__snapshots__/file-upload-multiple.snap.png +0 -0
- package/src/components/FilterInline/FilterInline.stories.ts +2 -0
- package/src/components/FilterInline/FilterInline.vue +10 -5
- package/src/components/FilterInline/tests/FilterInline.visual.cy.ts +25 -0
- package/src/components/FilterInline/tests/__snapshots__/filter-inline-default.snap.png +0 -0
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +4 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +11 -6
- package/src/components/FilterSideBar/tests/FilterSideBar.visual.cy.ts +37 -0
- package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-default.snap.png +0 -0
- package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-modale.snap.png +0 -0
- package/src/components/FooterBar/tests/FooterBar.visual.cy.ts +37 -0
- package/src/components/FooterBar/tests/__snapshots__/footer-bar-default.snap.png +0 -0
- package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-logo.snap.png +0 -0
- package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-social.snap.png +0 -0
- package/src/components/FooterBar/tests/__snapshots__/footer-bar-version.snap.png +0 -0
- package/src/components/FranceConnectBtn/tests/FranceConnectBtn.visual.cy.ts +38 -0
- package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-dark.snap.png +0 -0
- package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-default.snap.png +0 -0
- package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-plus.snap.png +0 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +4 -4
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
- package/src/components/HeaderLoading/tests/HeaderLoading.visual.cy.ts +34 -0
- package/src/components/HeaderLoading/tests/__snapshots__/header-loading-custom-size.snap.png +0 -0
- package/src/components/HeaderLoading/tests/__snapshots__/header-loading-default.snap.png +0 -0
- package/src/components/HeaderLoading/tests/__snapshots__/header-loading-standalone.snap.png +0 -0
- package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +4 -4
- package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.visual.cy.ts +34 -0
- package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-default.snap.png +0 -0
- package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-subtitle.snap.png +0 -0
- package/src/components/HeaderToolbar/tests/HeaderToolbar.visual.cy.ts +25 -0
- package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-custom.snap.png +0 -0
- package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-default.snap.png +0 -0
- package/src/components/LangBtn/tests/LangBtn.visual.cy.ts +33 -0
- package/src/components/LangBtn/tests/__snapshots__/lang-btn-default.snap.png +0 -0
- package/src/components/LangBtn/tests/__snapshots__/lang-btn-english.snap.png +0 -0
- package/src/components/LangBtn/tests/__snapshots__/lang-btn-no-arrow.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
- package/src/components/LogoBrandSection/tests/LogoBrandSection.visual.cy.ts +43 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-default.snap.png +0 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-mobile.snap.png +0 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-reduced.snap.png +0 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-with-title.snap.png +0 -0
- package/src/components/LunarCalendar/tests/LunarCalendar.visual.cy.ts +36 -0
- package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-default.snap.png +0 -0
- package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-required.snap.png +0 -0
- package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-with-value.snap.png +0 -0
- package/src/components/MaintenancePage/tests/MaintenancePage.visual.cy.ts +22 -0
- package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-custom.snap.png +0 -0
- package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-default.snap.png +0 -0
- package/src/components/MonthPicker/tests/MonthPicker.visual.cy.ts +37 -0
- package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +2 -0
- package/src/components/MonthPicker/tests/__snapshots__/month-picker-default.snap.png +0 -0
- package/src/components/MonthPicker/tests/__snapshots__/month-picker-disabled.snap.png +0 -0
- package/src/components/MonthPicker/tests/__snapshots__/month-picker-readonly.snap.png +0 -0
- package/src/components/MonthPicker/tests/__snapshots__/month-picker-with-value.snap.png +0 -0
- package/src/components/NirField/NirField.stories.ts +40 -682
- package/src/components/NirField/NirField.vue +98 -32
- package/src/components/NirField/tests/NirField.spec.ts +135 -14
- package/src/components/NirField/tests/NirField.visual.cy.ts +28 -0
- package/src/components/NirField/tests/__snapshots__/nir-field-complex.snap.png +0 -0
- package/src/components/NirField/tests/__snapshots__/nir-field-default.snap.png +0 -0
- package/src/components/NirField/tests/__snapshots__/nir-field-with-key.snap.png +0 -0
- package/src/components/NirField/tests/useNirValidation.spec.ts +168 -0
- package/src/components/NirField/useNirValidation.ts +28 -2
- package/src/components/NirField/validation/Validation.stories.ts +866 -0
- package/src/components/NotFoundPage/tests/NotFoundPage.visual.cy.ts +28 -0
- package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-custom-btn.snap.png +0 -0
- package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-default.snap.png +0 -0
- package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-no-btn.snap.png +0 -0
- package/src/components/NotificationBar/tests/NotificationBar.visual.cy.ts +54 -0
- package/src/components/NotificationBar/tests/__snapshots__/notification-bar-bottom.snap.png +0 -0
- package/src/components/NotificationBar/tests/__snapshots__/notification-bar-info.snap.png +0 -0
- package/src/components/NotificationBar/tests/__snapshots__/notification-bar-multiple.snap.png +0 -0
- package/src/components/PageContainer/tests/PageContainer.visual.cy.ts +33 -0
- package/src/components/PageContainer/tests/__snapshots__/page-container-color.snap.png +0 -0
- package/src/components/PageContainer/tests/__snapshots__/page-container-default.snap.png +0 -0
- package/src/components/PageContainer/tests/__snapshots__/page-container-md.snap.png +0 -0
- package/src/components/PaginatedTable/accessibilite/Accessibility.mdx +99 -7
- package/src/components/PaginatedTable/tests/PaginatedTable.visual.cy.ts +41 -0
- package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-default.snap.png +0 -0
- package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-server.snap.png +0 -0
- package/src/components/PasswordField/PasswordField.mdx +5 -52
- package/src/components/PasswordField/PasswordField.stories.ts +74 -931
- package/src/components/PasswordField/PasswordField.vue +120 -191
- package/src/components/PasswordField/Validation/Validation.stories.ts +1295 -0
- package/src/components/PasswordField/locales.ts +2 -0
- package/src/components/PasswordField/tests/PasswordField.spec.ts +144 -106
- package/src/components/PasswordField/tests/PasswordField.visual.cy.ts +49 -0
- package/src/components/PasswordField/tests/__snapshots__/password-field-default.snap.png +0 -0
- package/src/components/PasswordField/tests/__snapshots__/password-field-disabled.snap.png +0 -0
- package/src/components/PasswordField/tests/__snapshots__/password-field-required.snap.png +0 -0
- package/src/components/PasswordField/tests/__snapshots__/password-field-underlined.snap.png +0 -0
- package/src/components/PasswordField/types.ts +17 -0
- package/src/components/PasswordField/usePasswordFieldValidation.ts +100 -0
- package/src/components/PeriodField/PeriodField.stories.ts +3 -1
- package/src/components/PeriodField/PeriodField.vue +1 -1
- package/src/components/PeriodField/tests/PeriodField.visual.cy.ts +39 -0
- package/src/components/PeriodField/tests/__snapshots__/period-field-default.snap.png +0 -0
- package/src/components/PeriodField/tests/__snapshots__/period-field-no-calendar.snap.png +0 -0
- package/src/components/PeriodField/tests/__snapshots__/period-field-required.snap.png +0 -0
- package/src/components/PeriodField/tests/__snapshots__/period-field-with-value.snap.png +0 -0
- package/src/components/PhoneField/PhoneField.vue +2 -2
- package/src/components/PhoneField/tests/PhoneField.spec.ts +1 -0
- package/src/components/PhoneField/tests/PhoneField.visual.cy.ts +28 -0
- package/src/components/PhoneField/tests/__snapshots__/phone-field-default.snap.png +0 -0
- package/src/components/PhoneField/tests/__snapshots__/phone-field-with-country-code.snap.png +0 -0
- package/src/components/PhoneField/tests/__snapshots__/phone-field-with-value.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
- package/src/components/RatingPicker/tests/RatingPicker.visual.cy.ts +52 -0
- package/src/components/RatingPicker/tests/__snapshots__/rating-picker-emotion.snap.png +0 -0
- package/src/components/RatingPicker/tests/__snapshots__/rating-picker-number.snap.png +0 -0
- package/src/components/RatingPicker/tests/__snapshots__/rating-picker-readonly.snap.png +0 -0
- package/src/components/RatingPicker/tests/__snapshots__/rating-picker-stars.snap.png +0 -0
- package/src/components/SearchListField/SearchListField.mdx +1 -1
- package/src/components/SearchListField/SearchListField.stories.ts +1 -1
- package/src/components/SearchListField/SearchListField.vue +9 -4
- package/src/components/SearchListField/tests/SearchListField.spec.ts +127 -0
- package/src/components/SearchListField/tests/SearchListField.visual.cy.ts +35 -0
- package/src/components/SearchListField/tests/__snapshots__/search-list-field-default.snap.png +0 -0
- package/src/components/SearchListField/tests/__snapshots__/search-list-field-with-selection.snap.png +0 -0
- package/src/components/SkipLink/tests/SkipLink.visual.cy.ts +16 -0
- package/src/components/SkipLink/tests/__snapshots__/skip-link-focused.snap.png +0 -0
- package/src/components/SocialMediaLinks/tests/SocialMediaLinks.visual.cy.ts +33 -0
- package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-default.snap.png +0 -0
- package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-no-native-heading.snap.png +0 -0
- package/src/components/StatusPage/tests/StatusPage.visual.cy.ts +47 -0
- package/src/components/StatusPage/tests/__snapshots__/status-page-default.snap.png +0 -0
- package/src/components/StatusPage/tests/__snapshots__/status-page-full.snap.png +0 -0
- package/src/components/StatusPage/tests/__snapshots__/status-page-no-btn.snap.png +0 -0
- package/src/components/SubHeader/tests/SubHeader.visual.cy.ts +48 -0
- package/src/components/SubHeader/tests/__snapshots__/sub-header-default.snap.png +0 -0
- package/src/components/SubHeader/tests/__snapshots__/sub-header-loading.snap.png +0 -0
- package/src/components/SubHeader/tests/__snapshots__/sub-header-no-back-btn.snap.png +0 -0
- package/src/components/SubHeader/tests/__snapshots__/sub-header-with-subtitle.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
- package/src/components/SyHeading/tests/SyHeading.visual.cy.ts +33 -0
- package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-1.snap.png +0 -0
- package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-2.snap.png +0 -0
- package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-3.snap.png +0 -0
- package/src/components/SyTextArea/SyTextArea.stories.ts +25 -0
- package/src/components/SyTextArea/SyTextArea.vue +7 -0
- package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +1 -1
- package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +18 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +135 -1
- package/src/components/SyTextArea/tests/SyTextArea.visual.cy.ts +48 -0
- package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-default.snap.png +0 -0
- package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-filled.snap.png +0 -0
- package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-required.snap.png +0 -0
- package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-with-value.snap.png +0 -0
- package/src/components/SyTextArea/validation/Validation.stories.ts +6 -86
- package/src/components/TableToolbar/tests/TableToolbar.visual.cy.ts +49 -0
- package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-default.snap.png +0 -0
- package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-filtered.snap.png +0 -0
- package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-loading.snap.png +0 -0
- package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-with-add-btn.snap.png +0 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +3 -3
- package/src/components/Tables/SyServerTable/accessibilite/Accessibility.mdx +114 -7
- package/src/components/Tables/SyServerTable/tests/SyServerTable.visual.cy.ts +58 -0
- package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-default.snap.png +0 -0
- package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-loading.snap.png +0 -0
- package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-with-select.snap.png +0 -0
- package/src/components/Tables/SyTable/accessibilite/Accessibility.mdx +116 -7
- package/src/components/Tables/SyTable/tests/SyTable.visual.cy.ts +70 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-compact.snap.png +0 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-default.snap.png +0 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-striped.snap.png +0 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-with-select.snap.png +0 -0
- package/src/components/Tables/common/tableStyles.scss +4 -4
- package/src/components/Tables/common/tests/SyTableFilter.spec.ts +8 -1
- package/src/components/Tables/common/tests/filterByRange.spec.ts +23 -22
- package/src/components/ToolbarContainer/tests/ToolbarContainer.visual.cy.ts +34 -0
- package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-default.snap.png +0 -0
- package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-links.snap.png +0 -0
- package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +1 -2
- package/src/components/UploadWorkflow/tests/UploadWorkflow.visual.cy.ts +39 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-default.snap.png +0 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-with-title.snap.png +0 -0
- package/src/components/UserMenuBtn/tests/UserMenuBtn.visual.cy.ts +42 -0
- package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-default.snap.png +0 -0
- package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-no-logout.snap.png +0 -0
- package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-with-name.snap.png +0 -0
- package/src/composables/unifyValidation/documentationValidationProps.ts +1 -1
- package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +2 -2
- package/src/composables/unifyValidation/useValidation.ts +17 -11
- package/src/composables/useFilterable/useFilterable.spec.ts +105 -142
- package/src/composables/useFilterable/useFilterable.ts +6 -17
- package/src/composables/useFormFieldErrorHandling.ts +1 -1
- package/src/composables/validation/tests/useFormValidation.spec.ts +11 -2
- package/src/composables/validation/tests/useValidatable.spec.ts +16 -6
- package/src/composables/validation/tests/useValidation.spec.ts +2 -2
- package/src/composables/validation/useValidation.ts +1 -1
- package/src/composantsVuetify/VCard/VCard.mdx +8 -0
- package/src/composantsVuetify/VCard/v-card.stories.ts +191 -1
- package/src/composantsVuetify/VStepper/VStepper.mdx +56 -0
- package/src/composantsVuetify/VStepper/v-stepper.stories.ts +563 -0
- package/src/designTokens/tokens/amelipro/apLightTheme.ts +1 -0
- package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
- package/src/designTokens/tokens/pa/paLightTheme.ts +1 -0
- package/src/stories/Accessibilite/DesignSystem/a11y-status.json +1 -1
- package/src/stories/Components/Components.stories.ts +61 -10
- package/src/stories/Demarrer/Releases.stories.ts +45 -2
- package/src/stories/DesignTokens/Colors.mdx +2 -0
- package/src/stories/DesignTokens/colors.stories.ts +13 -0
- package/src/stories/EcoConception/EcoBestPracticesDoc.vue +930 -0
- package/src/stories/EcoConception/EcoBestPratices.mdx +38 -0
- package/src/stories/EcoConception/Introduction.mdx +8 -1
- package/src/stories/EcoConception/datas/bonnes_pratiques_essentielles.json +1018 -0
- package/src/stories/EcoConception/ecoconception-best-practices.stories.ts +20 -0
- package/src/stories/GuideDuDev/Amelipro.mdx +9 -1
- package/src/stories/GuideDuDev/Amelipro.stories.ts +955 -168
- package/src/stories/GuideDuDev/PortailAgent.stories.ts +0 -1
- package/src/utils/functions/deepCopy/index.ts +2 -3
- package/dist/components/Customs/SyCheckbox/locales.d.ts +0 -3
- package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +0 -1
- package/dist/components/SyHeading/SyHeading.test.d.ts +0 -1
- package/src/components/Customs/SyCheckbox/locales.ts +0 -3
- package/src/components/Customs/SyTextField/types.d.ts +0 -4
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import TableToolbar from '../TableToolbar.vue'
|
|
2
|
+
|
|
3
|
+
describe('TableToolbar - Visual regression tests', () => {
|
|
4
|
+
it('displays the table toolbar by default', () => {
|
|
5
|
+
cy.mountWithVuetify(TableToolbar, {
|
|
6
|
+
props: { nbTotal: 42 },
|
|
7
|
+
})
|
|
8
|
+
|
|
9
|
+
cy.get('.sy-table-toolbar').should('be.visible')
|
|
10
|
+
cy.matchImageSnapshot('table-toolbar-default', cy.get('.sy-table-toolbar'))
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
it('displays the table toolbar with filtered count', () => {
|
|
14
|
+
cy.mountWithVuetify(TableToolbar, {
|
|
15
|
+
props: {
|
|
16
|
+
nbTotal: 42,
|
|
17
|
+
nbFiltered: 10,
|
|
18
|
+
},
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
cy.get('.sy-table-toolbar').should('be.visible')
|
|
22
|
+
cy.matchImageSnapshot('table-toolbar-filtered', cy.get('.sy-table-toolbar'))
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('displays the table toolbar with add button', () => {
|
|
26
|
+
cy.mountWithVuetify(TableToolbar, {
|
|
27
|
+
props: {
|
|
28
|
+
nbTotal: 42,
|
|
29
|
+
showAddButton: true,
|
|
30
|
+
addButtonLabel: 'Ajouter',
|
|
31
|
+
},
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
cy.get('.sy-table-toolbar').should('be.visible')
|
|
35
|
+
cy.matchImageSnapshot('table-toolbar-with-add-btn', cy.get('.sy-table-toolbar'))
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('displays the table toolbar in loading state', () => {
|
|
39
|
+
cy.mountWithVuetify(TableToolbar, {
|
|
40
|
+
props: {
|
|
41
|
+
nbTotal: 42,
|
|
42
|
+
loading: true,
|
|
43
|
+
},
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
cy.get('.sy-table-toolbar').should('be.visible')
|
|
47
|
+
cy.matchImageSnapshot('table-toolbar-loading', cy.get('.sy-table-toolbar'))
|
|
48
|
+
})
|
|
49
|
+
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -513,11 +513,11 @@
|
|
|
513
513
|
}
|
|
514
514
|
|
|
515
515
|
.sy-server-table--pinned-left-shadow :deep(.sy-table__pinned--left) {
|
|
516
|
-
box-shadow: 2px 0 6px -4px rgba(var(--v-theme-
|
|
516
|
+
box-shadow: 2px 0 6px -4px rgba(var(--v-theme-onSurfaceVariant), 0.6);
|
|
517
517
|
}
|
|
518
518
|
|
|
519
519
|
.sy-server-table--pinned-right-shadow :deep(.sy-table__pinned--right) {
|
|
520
|
-
box-shadow: -2px 0 6px -4px rgba(var(--v-theme-
|
|
520
|
+
box-shadow: -2px 0 6px -4px rgba(var(--v-theme-onSurfaceVariant), 0.6);
|
|
521
521
|
}
|
|
522
522
|
|
|
523
523
|
.sy-server-table--pinned-select-left :deep(.v-data-table__th--select),
|
|
@@ -558,7 +558,7 @@
|
|
|
558
558
|
.sy-server-table--pinned-left-shadow.sy-server-table--pinned-select-left :deep(.v-table__wrapper > table > tbody > tr:not(.v-data-table-rows-loading) > .v-data-table__td:first-child),
|
|
559
559
|
.sy-server-table--pinned-left-shadow.sy-server-table--pinned-select-left :deep(.v-data-table__tbody .v-data-table__tr:not(.v-data-table-rows-loading) > .v-data-table__td:first-child),
|
|
560
560
|
.sy-server-table--pinned-left-shadow.sy-server-table--pinned-select-left :deep(.v-data-table__tbody tr:not(.v-data-table-rows-loading) > td:first-child) {
|
|
561
|
-
box-shadow: 2px 0 6px -4px rgba(var(--v-theme-
|
|
561
|
+
box-shadow: 2px 0 6px -4px rgba(var(--v-theme-onSurfaceVariant), 0.6);
|
|
562
562
|
}
|
|
563
563
|
/* stylelint-enable @stylistic/max-line-length */
|
|
564
564
|
|
|
@@ -1,10 +1,117 @@
|
|
|
1
|
-
import { Meta, Story } from '@storybook/
|
|
2
|
-
import * as
|
|
1
|
+
import { Meta, Story } from '@storybook/blocks';
|
|
2
|
+
import * as Stories from '../SyServerTable.stories';
|
|
3
|
+
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
|
|
3
4
|
import '@/stories/styles/shared.css';
|
|
5
|
+
import {
|
|
6
|
+
AccessibilityGuideLayout,
|
|
7
|
+
CriteriaSection,
|
|
8
|
+
CriteriaCard,
|
|
9
|
+
DemoSection,
|
|
10
|
+
BestPracticesSection,
|
|
11
|
+
ResourcesSection,
|
|
12
|
+
AuditSection,
|
|
13
|
+
} from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
|
|
4
14
|
|
|
5
|
-
<Meta of={
|
|
15
|
+
<Meta of={Stories}/>
|
|
6
16
|
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
17
|
+
<AccessibilityGuideLayout
|
|
18
|
+
componentName="SyServerTable"
|
|
19
|
+
iconSrc={AccessibilityIcon}
|
|
20
|
+
>
|
|
21
|
+
|
|
22
|
+
[//]: # (<AuditSection>)
|
|
23
|
+
|
|
24
|
+
[//]: # ( <div>)
|
|
25
|
+
|
|
26
|
+
[//]: # ( Rapport d’audit manuel :{' '})
|
|
27
|
+
|
|
28
|
+
[//]: # ( <a href="/audits/SyServerTable.xlsx" style={{color: '#0C41BD'}}>Voir le rapport</a>)
|
|
29
|
+
|
|
30
|
+
[//]: # ( </div>)
|
|
31
|
+
|
|
32
|
+
[//]: # ( <div style={{color: 'grey', fontSize: '14px', marginTop: '0px'}}>)
|
|
33
|
+
|
|
34
|
+
[//]: # ( Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/XXX" target="_blank" style={{color: '#0C41BD'}}>issue #XXX</a>))
|
|
35
|
+
|
|
36
|
+
[//]: # ( </div>)
|
|
37
|
+
|
|
38
|
+
[//]: # (</AuditSection>)
|
|
39
|
+
|
|
40
|
+
<CriteriaSection>
|
|
41
|
+
<CriteriaCard icon="🏷️" title="Structure et rôles">
|
|
42
|
+
<ul>
|
|
43
|
+
<li>Le composant repose sur <code>VDataTableServer</code> et conserve la structure sémantique native d’un tableau HTML (<code>table</code>, <code>caption</code>, <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>td</code>).</li>
|
|
44
|
+
<li>Une légende (<code>caption</code>) décrit le contenu du tableau et reste disponible aux technologies d’assistance même lorsqu’elle est visuellement masquée.</li>
|
|
45
|
+
<li>Les en-têtes de colonnes sont rendus dans des cellules <code>th</code> et exposent les informations de tri, de redimensionnement et de filtrage.</li>
|
|
46
|
+
<li>La zone de statut utilise <code>role="status"</code> et <code>aria-live="polite"</code> pour annoncer les changements du nombre de résultats.</li>
|
|
47
|
+
<li>Les cases à cocher de sélection utilisent des libellés explicites pour la sélection globale et individuelle.</li>
|
|
48
|
+
<li>La pagination, les filtres et l’organisation des colonnes conservent les rôles natifs des contrôles HTML.</li>
|
|
49
|
+
</ul>
|
|
50
|
+
</CriteriaCard>
|
|
51
|
+
|
|
52
|
+
<CriteriaCard icon="⌨️" title="Navigation clavier">
|
|
53
|
+
<ul>
|
|
54
|
+
<li>Les en-têtes triables sont activables au clavier via Entrée ou Espace.</li>
|
|
55
|
+
<li>Les filtres intégrés sont accessibles par Tabulation dans l’ordre naturel du tableau.</li>
|
|
56
|
+
<li>Les cases à cocher de sélection de ligne et de sélection globale sont entièrement utilisables au clavier.</li>
|
|
57
|
+
<li>Les lignes cliquables restent focalisables et déclenchables au clavier lorsqu’elles sont activées.</li>
|
|
58
|
+
<li>La pagination est navigable au clavier et permet de modifier la page et le nombre d’éléments par page.</li>
|
|
59
|
+
<li>Le bouton de réinitialisation des filtres est accessible par Tabulation et activable via Entrée ou Espace.</li>
|
|
60
|
+
</ul>
|
|
61
|
+
</CriteriaCard>
|
|
62
|
+
|
|
63
|
+
<CriteriaCard icon="📢" title="Annonces aux technologies d’assistance">
|
|
64
|
+
<ul>
|
|
65
|
+
<li>Le changement du nombre de résultats est annoncé automatiquement dans une région <code>aria-live</code>.</li>
|
|
66
|
+
<li>Les actions de sélection de lignes sont vocalisées grâce à des libellés explicites.</li>
|
|
67
|
+
<li>Le <code>caption</code> fournit un contexte global pour la lecture du tableau.</li>
|
|
68
|
+
<li>Les états de tri sont exposés par les attributs ARIA appliqués aux en-têtes.</li>
|
|
69
|
+
</ul>
|
|
70
|
+
</CriteriaCard>
|
|
71
|
+
|
|
72
|
+
<CriteriaCard icon="🎨" title="Contraste et lisibilité">
|
|
73
|
+
<ul>
|
|
74
|
+
<li>Les styles du design system assurent un contraste suffisant pour les textes, les bordures et les états de focus.</li>
|
|
75
|
+
<li>Les lignes alternées (<code>striped</code>) utilisent une variation de fond discrète sans compromettre la lisibilité.</li>
|
|
76
|
+
<li>Les colonnes figées conservent un fond opaque et des ombres pour maintenir la séparation visuelle.</li>
|
|
77
|
+
<li>Les états sélectionnés, triés ou filtrés restent perceptibles visuellement et programmatiquement.</li>
|
|
78
|
+
</ul>
|
|
79
|
+
</CriteriaCard>
|
|
80
|
+
|
|
81
|
+
<CriteriaCard icon="📌" title="Fonctionnalités avancées accessibles">
|
|
82
|
+
<ul>
|
|
83
|
+
<li>Le tri multi-colonnes et obligatoire conserve les attributs ARIA appropriés.</li>
|
|
84
|
+
<li>Les filtres par colonne utilisent des champs correctement libellés.</li>
|
|
85
|
+
<li>La sélection simple ou multiple annonce clairement l’état des cases à cocher.</li>
|
|
86
|
+
<li>Les colonnes épinglées restent accessibles sans altérer l’ordre de lecture du tableau.</li>
|
|
87
|
+
<li>L’organisation des colonnes conserve la structure et la cohérence des en-têtes.</li>
|
|
88
|
+
<li>L’état du tableau peut être mémorisé localement sans impact sur l’accessibilité.</li>
|
|
89
|
+
</ul>
|
|
90
|
+
</CriteriaCard>
|
|
91
|
+
</CriteriaSection>
|
|
92
|
+
|
|
93
|
+
<DemoSection componentName="SyServerTable">
|
|
94
|
+
<Story of={Stories.Default}/>
|
|
95
|
+
</DemoSection>
|
|
96
|
+
|
|
97
|
+
<BestPracticesSection>
|
|
98
|
+
<ul>
|
|
99
|
+
<li>Renseignez toujours la propriété <code>caption</code> pour décrire clairement l’objet du tableau.</li>
|
|
100
|
+
<li>Utilisez des intitulés de colonnes explicites, uniques et concis.</li>
|
|
101
|
+
<li>Activez <code>showFilters</code> uniquement lorsque chaque filtre dispose d’un libellé pertinent.</li>
|
|
102
|
+
<li>Assurez-vous que les lignes cliquables disposent d’une action compréhensible.</li>
|
|
103
|
+
<li>Testez la navigation clavier après activation du tri, des filtres, de la sélection et de la pagination.</li>
|
|
104
|
+
<li>Vérifiez que les annonces <code>aria-live</code> restent pertinentes lors des chargements serveur.</li>
|
|
105
|
+
<li>Conservez un contraste suffisant pour les colonnes figées et les états sélectionnés.</li>
|
|
106
|
+
</ul>
|
|
107
|
+
</BestPracticesSection>
|
|
108
|
+
|
|
109
|
+
<ResourcesSection>
|
|
110
|
+
<ul>
|
|
111
|
+
<li><a href="https://www.w3.org/WAI/tutorials/tables/" target="_blank" rel="noopener noreferrer">W3C WAI – Tables Tutorial</a></li>
|
|
112
|
+
<li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/table/" target="_blank" rel="noopener noreferrer">WAI-ARIA Authoring Practices – Table Pattern</a></li>
|
|
113
|
+
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html" target="_blank" rel="noopener noreferrer">WCAG – Status Messages (4.1.3)</a></li>
|
|
114
|
+
<li><a href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/" target="_blank" rel="noopener noreferrer">RGAA – critères 5 (tableaux), 7 (ARIA), 10 (présentation)</a></li>
|
|
115
|
+
</ul>
|
|
116
|
+
</ResourcesSection>
|
|
117
|
+
</AccessibilityGuideLayout>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import SyServerTable from '../SyServerTable.vue'
|
|
2
|
+
|
|
3
|
+
const defaultHeaders = [
|
|
4
|
+
{ title: 'Nom', key: 'nom', sortable: true },
|
|
5
|
+
{ title: 'Prénom', key: 'prenom', sortable: true },
|
|
6
|
+
{ title: 'Ville', key: 'ville' },
|
|
7
|
+
]
|
|
8
|
+
|
|
9
|
+
const defaultItems = [
|
|
10
|
+
{ nom: 'Dupont', prenom: 'Jean', ville: 'Paris' },
|
|
11
|
+
{ nom: 'Martin', prenom: 'Marie', ville: 'Lyon' },
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
describe('SyServerTable - Visual regression tests', () => {
|
|
15
|
+
it('displays the server table by default', () => {
|
|
16
|
+
cy.mountWithVuetify(SyServerTable, {
|
|
17
|
+
props: {
|
|
18
|
+
headers: defaultHeaders,
|
|
19
|
+
items: defaultItems,
|
|
20
|
+
serverItemsLength: 50,
|
|
21
|
+
caption: 'Tableau serveur',
|
|
22
|
+
},
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
cy.get('.v-table').should('be.visible')
|
|
26
|
+
cy.matchImageSnapshot('sy-server-table-default', cy.get('.v-application'))
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('displays the server table in loading state', () => {
|
|
30
|
+
cy.mountWithVuetify(SyServerTable, {
|
|
31
|
+
props: {
|
|
32
|
+
headers: defaultHeaders,
|
|
33
|
+
items: undefined,
|
|
34
|
+
serverItemsLength: 0,
|
|
35
|
+
caption: 'Tableau chargement',
|
|
36
|
+
loading: true,
|
|
37
|
+
},
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
cy.get('.v-application').should('be.visible')
|
|
41
|
+
cy.matchImageSnapshot('sy-server-table-loading', cy.get('.v-application'))
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('displays the server table with selection', () => {
|
|
45
|
+
cy.mountWithVuetify(SyServerTable, {
|
|
46
|
+
props: {
|
|
47
|
+
headers: defaultHeaders,
|
|
48
|
+
items: defaultItems,
|
|
49
|
+
serverItemsLength: 2,
|
|
50
|
+
caption: 'Tableau avec sélection',
|
|
51
|
+
showSelect: true,
|
|
52
|
+
},
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
cy.get('.v-table').should('be.visible')
|
|
56
|
+
cy.matchImageSnapshot('sy-server-table-with-select', cy.get('.v-application'))
|
|
57
|
+
})
|
|
58
|
+
})
|
package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-default.snap.png
ADDED
|
Binary file
|
package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-loading.snap.png
ADDED
|
Binary file
|
package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-with-select.snap.png
ADDED
|
Binary file
|
|
@@ -1,10 +1,119 @@
|
|
|
1
|
-
import { Meta, Story } from '@storybook/
|
|
2
|
-
import * as
|
|
1
|
+
import { Meta, Story } from '@storybook/blocks';
|
|
2
|
+
import * as Stories from '../SyTable.stories';
|
|
3
|
+
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
|
|
3
4
|
import '@/stories/styles/shared.css';
|
|
5
|
+
import {
|
|
6
|
+
AccessibilityGuideLayout,
|
|
7
|
+
CriteriaSection,
|
|
8
|
+
CriteriaCard,
|
|
9
|
+
DemoSection,
|
|
10
|
+
BestPracticesSection,
|
|
11
|
+
ResourcesSection,
|
|
12
|
+
AuditSection,
|
|
13
|
+
} from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
|
|
4
14
|
|
|
5
|
-
<Meta of={
|
|
15
|
+
<Meta of={Stories}/>
|
|
6
16
|
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
17
|
+
<AccessibilityGuideLayout
|
|
18
|
+
componentName="SyTable"
|
|
19
|
+
iconSrc={AccessibilityIcon}
|
|
20
|
+
>
|
|
21
|
+
|
|
22
|
+
[//]: # (<AuditSection>)
|
|
23
|
+
|
|
24
|
+
[//]: # ( <div>)
|
|
25
|
+
|
|
26
|
+
[//]: # ( Rapport d’audit manuel :{' '})
|
|
27
|
+
|
|
28
|
+
[//]: # ( <a href="/audits/SyTable.xlsx" style={{color: '#0C41BD'}}>Voir le rapport</a>)
|
|
29
|
+
|
|
30
|
+
[//]: # ( </div>)
|
|
31
|
+
|
|
32
|
+
[//]: # ( <div style={{color: 'grey', fontSize: '14px', marginTop: '0px'}}>)
|
|
33
|
+
|
|
34
|
+
[//]: # ( Correctifs associés ()
|
|
35
|
+
|
|
36
|
+
[//]: # ( <a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/XXX" target="_blank" rel="noopener noreferrer" style={{color: '#0C41BD'}}>issue #XXX</a>))
|
|
37
|
+
|
|
38
|
+
[//]: # ( </div>)
|
|
39
|
+
|
|
40
|
+
[//]: # (</AuditSection>)
|
|
41
|
+
|
|
42
|
+
<CriteriaSection>
|
|
43
|
+
<CriteriaCard icon="🏷️" title="Structure et rôles">
|
|
44
|
+
<ul>
|
|
45
|
+
<li>Le composant repose sur <code>VDataTable</code> et conserve la structure sémantique native d’un tableau HTML (<code>table</code>, <code>caption</code>, <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>td</code>).</li>
|
|
46
|
+
<li>Une légende (<code>caption</code>) est injectée dynamiquement au montage et reste accessible via la classe <code>d-sr-only</code> lorsqu’elle est masquée visuellement.</li>
|
|
47
|
+
<li>Les en-têtes utilisent des cellules <code>th</code> avec <code>scope="col"</code> et exposent les états de tri via <code>aria-sort</code>.</li>
|
|
48
|
+
<li>Les filtres et la pagination conservent les rôles natifs des composants de formulaire.</li>
|
|
49
|
+
<li>Les slots permettent d’étendre le tableau sans altérer sa structure sémantique.</li>
|
|
50
|
+
<li>L’état de tri, pagination et sélection peut être persisté sans impacter l’accessibilité.</li>
|
|
51
|
+
</ul>
|
|
52
|
+
</CriteriaCard>
|
|
53
|
+
|
|
54
|
+
<CriteriaCard icon="⌨️" title="Navigation clavier">
|
|
55
|
+
<ul>
|
|
56
|
+
<li>Les en-têtes de colonnes sont focalisables via <code>tabindex="0"</code> et activables au clavier.</li>
|
|
57
|
+
<li>Les actions de tri sont accessibles via Entrée ou Espace.</li>
|
|
58
|
+
<li>Les filtres sont navigables dans l’ordre naturel de tabulation.</li>
|
|
59
|
+
<li>Les cases à cocher de sélection (ligne et globale) sont entièrement accessibles au clavier.</li>
|
|
60
|
+
<li>La pagination est utilisable au clavier (page, items par page, navigation).</li>
|
|
61
|
+
<li>Les lignes cliquables restent accessibles via clavier lorsqu’activées.</li>
|
|
62
|
+
</ul>
|
|
63
|
+
</CriteriaCard>
|
|
64
|
+
|
|
65
|
+
<CriteriaCard icon="📢" title="Annonces aux technologies d’assistance">
|
|
66
|
+
<ul>
|
|
67
|
+
<li>Le <code>caption</code> fournit un contexte global de lecture du tableau.</li>
|
|
68
|
+
<li>Un region <code>role="status"</code> avec <code>aria-live="polite"</code> annonce les changements de résultats.</li>
|
|
69
|
+
<li>Les états de tri sont exposés via <code>aria-sort</code> sur les en-têtes.</li>
|
|
70
|
+
<li>Les contrôles de pagination et filtres utilisent des libellés explicites.</li>
|
|
71
|
+
<li>Les attributs ARIA inutiles (ex: <code>aria-describedby</code>) sont supprimés pour éviter les doublons de lecture.</li>
|
|
72
|
+
</ul>
|
|
73
|
+
</CriteriaCard>
|
|
74
|
+
|
|
75
|
+
<CriteriaCard icon="🎨" title="Contraste et lisibilité">
|
|
76
|
+
<ul>
|
|
77
|
+
<li>Les styles du design system assurent un contraste suffisant pour texte, bordures et focus.</li>
|
|
78
|
+
<li>Les lignes alternées (<code>striped</code>) améliorent la lisibilité sans nuire au contraste.</li>
|
|
79
|
+
<li>Les colonnes figées conservent un fond opaque et des ombres pour la lisibilité.</li>
|
|
80
|
+
<li>Les états actifs (focus, tri, sélection) restent perceptibles visuellement et via ARIA.</li>
|
|
81
|
+
</ul>
|
|
82
|
+
</CriteriaCard>
|
|
83
|
+
|
|
84
|
+
<CriteriaCard icon="📌" title="Fonctionnalités avancées accessibles">
|
|
85
|
+
<ul>
|
|
86
|
+
<li>Le tri multi-colonnes et obligatoire reste accessible via attributs ARIA.</li>
|
|
87
|
+
<li>Les filtres par colonne utilisent des champs correctement libellés.</li>
|
|
88
|
+
<li>La sélection simple ou multiple est annoncée clairement aux lecteurs d’écran.</li>
|
|
89
|
+
<li>Les colonnes épinglées restent accessibles sans modifier l’ordre de lecture.</li>
|
|
90
|
+
<li>L’organisation des colonnes est configurable sans perte de sémantique.</li>
|
|
91
|
+
<li>La persistance locale de l’état n’impacte pas l’accessibilité du tableau.</li>
|
|
92
|
+
</ul>
|
|
93
|
+
</CriteriaCard>
|
|
94
|
+
</CriteriaSection>
|
|
95
|
+
|
|
96
|
+
<DemoSection componentName="SyTable">
|
|
97
|
+
<Story of={Stories.Default}/>
|
|
98
|
+
</DemoSection>
|
|
99
|
+
|
|
100
|
+
<BestPracticesSection>
|
|
101
|
+
<ul>
|
|
102
|
+
<li>Fournir toujours un <code>caption</code> clair et descriptif pour le tableau.</li>
|
|
103
|
+
<li>Limiter les actions dans les headers pour éviter la surcharge cognitive.</li>
|
|
104
|
+
<li>Tester systématiquement tri, filtres et pagination au clavier.</li>
|
|
105
|
+
<li>Vérifier les annonces lecteur d’écran lors des changements de données.</li>
|
|
106
|
+
<li>Éviter les libellés ambigus sur les colonnes et filtres.</li>
|
|
107
|
+
<li>Contrôler la cohérence visuelle entre états ARIA et styles CSS.</li>
|
|
108
|
+
</ul>
|
|
109
|
+
</BestPracticesSection>
|
|
110
|
+
|
|
111
|
+
<ResourcesSection>
|
|
112
|
+
<ul>
|
|
113
|
+
<li><a href="https://www.w3.org/WAI/tutorials/tables/" target="_blank" rel="noopener noreferrer">W3C WAI – Tables Tutorial</a></li>
|
|
114
|
+
<li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/table/" target="_blank" rel="noopener noreferrer">WAI-ARIA Authoring Practices – Table Pattern</a></li>
|
|
115
|
+
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html" target="_blank" rel="noopener noreferrer">WCAG – Status Messages (4.1.3)</a></li>
|
|
116
|
+
<li><a href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/" target="_blank" rel="noopener noreferrer">RGAA – critères 5, 7 et 10</a></li>
|
|
117
|
+
</ul>
|
|
118
|
+
</ResourcesSection>
|
|
119
|
+
</AccessibilityGuideLayout>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import SyTable from '../SyTable.vue'
|
|
2
|
+
|
|
3
|
+
const defaultHeaders = [
|
|
4
|
+
{ title: 'Nom', key: 'nom', sortable: true },
|
|
5
|
+
{ title: 'Prénom', key: 'prenom', sortable: true },
|
|
6
|
+
{ title: 'Ville', key: 'ville' },
|
|
7
|
+
]
|
|
8
|
+
|
|
9
|
+
const defaultItems = [
|
|
10
|
+
{ nom: 'Dupont', prenom: 'Jean', ville: 'Paris' },
|
|
11
|
+
{ nom: 'Martin', prenom: 'Marie', ville: 'Lyon' },
|
|
12
|
+
{ nom: 'Bernard', prenom: 'Pierre', ville: 'Marseille' },
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
describe('SyTable - Visual regression tests', () => {
|
|
16
|
+
it('displays the table by default', () => {
|
|
17
|
+
cy.mountWithVuetify(SyTable, {
|
|
18
|
+
props: {
|
|
19
|
+
headers: defaultHeaders,
|
|
20
|
+
items: defaultItems,
|
|
21
|
+
caption: 'Tableau de données',
|
|
22
|
+
},
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
cy.get('.v-table').should('be.visible')
|
|
26
|
+
cy.matchImageSnapshot('sy-table-default', cy.get('.v-application'))
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('displays the table with striped rows', () => {
|
|
30
|
+
cy.mountWithVuetify(SyTable, {
|
|
31
|
+
props: {
|
|
32
|
+
headers: defaultHeaders,
|
|
33
|
+
items: defaultItems,
|
|
34
|
+
caption: 'Tableau rayé',
|
|
35
|
+
striped: true,
|
|
36
|
+
},
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
cy.get('.v-table').should('be.visible')
|
|
40
|
+
cy.matchImageSnapshot('sy-table-striped', cy.get('.v-application'))
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('displays the table with selection checkboxes', () => {
|
|
44
|
+
cy.mountWithVuetify(SyTable, {
|
|
45
|
+
props: {
|
|
46
|
+
headers: defaultHeaders,
|
|
47
|
+
items: defaultItems,
|
|
48
|
+
caption: 'Tableau avec sélection',
|
|
49
|
+
showSelect: true,
|
|
50
|
+
},
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
cy.get('.v-table').should('be.visible')
|
|
54
|
+
cy.matchImageSnapshot('sy-table-with-select', cy.get('.v-application'))
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
it('displays the table with compact density', () => {
|
|
58
|
+
cy.mountWithVuetify(SyTable, {
|
|
59
|
+
props: {
|
|
60
|
+
headers: defaultHeaders,
|
|
61
|
+
items: defaultItems,
|
|
62
|
+
caption: 'Tableau compact',
|
|
63
|
+
density: 'compact',
|
|
64
|
+
},
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
cy.get('.v-table').should('be.visible')
|
|
68
|
+
cy.matchImageSnapshot('sy-table-compact', cy.get('.v-application'))
|
|
69
|
+
})
|
|
70
|
+
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
@mixin tablestyles {
|
|
2
2
|
.v-table {
|
|
3
|
-
border: 1px solid rgb(var(--v-theme-
|
|
3
|
+
border: 1px solid rgb(var(--v-theme-disabled));
|
|
4
4
|
|
|
5
|
-
--sy-table-header-bg-pinned: color-mix(in srgb, rgb(var(--v-theme-
|
|
5
|
+
--sy-table-header-bg-pinned: color-mix(in srgb, rgb(var(--v-theme-infoVariant)) 20%, white);
|
|
6
6
|
|
|
7
7
|
// Standardisation des z-index pour les tableaux
|
|
8
8
|
--sy-table-z-base: 1;
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
|
|
18
18
|
table thead tr.filters,
|
|
19
19
|
table thead tr.reset {
|
|
20
|
-
background-color: rgb(var(--v-theme-
|
|
20
|
+
background-color: rgb(var(--v-theme-infoVariant90));
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
caption,
|
|
24
24
|
table thead tr.headers,
|
|
25
25
|
table thead tr.reset {
|
|
26
|
-
background-color: rgba(var(--v-theme-
|
|
26
|
+
background-color: rgba(var(--v-theme-infoVariant), 0.2);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
&.fixed-min-height {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest'
|
|
1
|
+
import { describe, it, expect, afterEach, vi } from 'vitest'
|
|
2
2
|
import { shallowMount, flushPromises } from '@vue/test-utils'
|
|
3
3
|
import SyTableFilter from '../SyTableFilter.vue'
|
|
4
4
|
import type { FilterOption, TableColumnHeader, FilterType } from '../types'
|
|
@@ -6,6 +6,13 @@ import type { FilterOption, TableColumnHeader, FilterType } from '../types'
|
|
|
6
6
|
// Using shallowMount will automatically stub all child components
|
|
7
7
|
|
|
8
8
|
describe('SyTableFilter', () => {
|
|
9
|
+
// Les filtres sont chargés via defineAsyncComponent(() => import(...)). On laisse ces
|
|
10
|
+
// imports dynamiques (et leurs dépendances : SyTextField, DatePicker…) se résoudre avant
|
|
11
|
+
// le teardown de l'environnement, sinon Vitest 4 lève une EnvironmentTeardownError.
|
|
12
|
+
afterEach(async () => {
|
|
13
|
+
await vi.dynamicImportSettled()
|
|
14
|
+
})
|
|
15
|
+
|
|
9
16
|
it('renders text filter correctly', async () => {
|
|
10
17
|
const filters: FilterOption[] = []
|
|
11
18
|
const header: TableColumnHeader = {
|
|
@@ -7,6 +7,29 @@ import PeriodFilter from '../filters/PeriodFilter.vue'
|
|
|
7
7
|
import SelectFilter from '../filters/SelectFilter.vue'
|
|
8
8
|
import TextFilter from '../filters/TextFilter.vue'
|
|
9
9
|
|
|
10
|
+
vi.mock('../../common/filters/getFilterComponent', () => {
|
|
11
|
+
return {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13
|
+
default: (filterType?: string, filterOptions?: unknown) => {
|
|
14
|
+
if (filterType === 'select') {
|
|
15
|
+
return SelectFilter
|
|
16
|
+
}
|
|
17
|
+
else if (filterType === 'date') {
|
|
18
|
+
return DateFilter
|
|
19
|
+
}
|
|
20
|
+
else if (filterType === 'period') {
|
|
21
|
+
return PeriodFilter
|
|
22
|
+
}
|
|
23
|
+
else if (filterType === 'number') {
|
|
24
|
+
return NumberFilter
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return TextFilter
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
|
|
10
33
|
const headers = [
|
|
11
34
|
{
|
|
12
35
|
title: 'Nom',
|
|
@@ -42,28 +65,6 @@ const items = [
|
|
|
42
65
|
]
|
|
43
66
|
|
|
44
67
|
describe('SyTable - filterByRange', () => {
|
|
45
|
-
vi.mock('../../common/filters/getFilterComponent', () => {
|
|
46
|
-
return {
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
48
|
-
default: (filterType?: string, filterOptions?: unknown) => {
|
|
49
|
-
if (filterType === 'select') {
|
|
50
|
-
return SelectFilter
|
|
51
|
-
}
|
|
52
|
-
else if (filterType === 'date') {
|
|
53
|
-
return DateFilter
|
|
54
|
-
}
|
|
55
|
-
else if (filterType === 'period') {
|
|
56
|
-
return PeriodFilter
|
|
57
|
-
}
|
|
58
|
-
else if (filterType === 'number') {
|
|
59
|
-
return NumberFilter
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
return TextFilter
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
68
|
afterAll(() => {
|
|
68
69
|
vi.resetModules()
|
|
69
70
|
})
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import ToolbarContainer from '../ToolbarContainer.vue'
|
|
2
|
+
import { h } from 'vue'
|
|
3
|
+
import { VBtn } from 'vuetify/components'
|
|
4
|
+
|
|
5
|
+
describe('ToolbarContainer - Visual regression tests', () => {
|
|
6
|
+
it('displays the toolbar container with buttons', () => {
|
|
7
|
+
cy.mountWithVuetify(ToolbarContainer, {
|
|
8
|
+
slots: {
|
|
9
|
+
default: () => [
|
|
10
|
+
h(VBtn, {}, () => 'Action 1'),
|
|
11
|
+
h(VBtn, {}, () => 'Action 2'),
|
|
12
|
+
h(VBtn, {}, () => 'Action 3'),
|
|
13
|
+
],
|
|
14
|
+
},
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
cy.get('.sy-toolbar').should('be.visible')
|
|
18
|
+
cy.matchImageSnapshot('toolbar-container-default', cy.get('.sy-toolbar'))
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it('displays the toolbar container with links', () => {
|
|
22
|
+
cy.mountWithVuetify(ToolbarContainer, {
|
|
23
|
+
slots: {
|
|
24
|
+
default: () => [
|
|
25
|
+
h('a', { href: '#' }, 'Lien 1'),
|
|
26
|
+
h('a', { href: '#' }, 'Lien 2'),
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
cy.get('.sy-toolbar').should('be.visible')
|
|
32
|
+
cy.matchImageSnapshot('toolbar-container-links', cy.get('.sy-toolbar'))
|
|
33
|
+
})
|
|
34
|
+
})
|
package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-default.snap.png
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from 'vitest'
|
|
1
|
+
import { describe, it, expect, vi, afterEach } from 'vitest'
|
|
2
2
|
import { mount } from '@vue/test-utils'
|
|
3
3
|
import { nextTick } from 'vue'
|
|
4
4
|
|
|
5
5
|
import UploadWorkflow from '../UploadWorkflow.vue'
|
|
6
6
|
import { locales as fileListLocales } from '@/components/FileList/UploadItem/locales'
|
|
7
7
|
import { locales as FileUploadLocales } from '@/components/FileUpload/locales'
|
|
8
|
-
import { afterEach } from 'node:test'
|
|
9
8
|
import { SySelect } from '@/components'
|
|
10
9
|
|
|
11
10
|
describe('UploadWorkflow', () => {
|