@cnamts/synapse 0.0.12-alpha → 0.0.13-alpha
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/dist/design-system-v3.js +4913 -4021
- package/dist/design-system-v3.umd.cjs +1 -1
- package/dist/src/components/Amelipro/types/types.d.ts +30 -57
- package/dist/src/components/Customs/SyTextField/SyTextField.d.ts +2 -0
- package/dist/src/components/DatePicker/DatePicker.d.ts +36 -44
- package/dist/src/components/DatePicker/DateTextInput.d.ts +33 -36
- package/dist/src/components/FilterInline/AccessibiliteItems.d.ts +30 -0
- package/dist/src/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +4 -0
- package/dist/src/components/FilterSideBar/AccessibiliteItems.d.ts +29 -0
- package/dist/src/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +4 -0
- package/dist/src/components/NirField/NirField.d.ts +14 -2
- package/dist/src/components/NotificationBar/NotificationBar.d.ts +5 -5
- package/dist/src/components/PasswordField/PasswordField.d.ts +2 -0
- package/dist/src/components/PeriodField/PeriodField.d.ts +159 -157
- package/dist/src/components/PhoneField/PhoneField.d.ts +22 -1
- package/dist/src/components/UploadWorkflow/AccessibiliteItems.d.ts +29 -0
- package/dist/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +4 -0
- package/dist/src/components/Usages/Usages.d.ts +10 -0
- package/dist/src/components/index.d.ts +3 -0
- package/dist/src/composables/date/tests/useDatePickerAccessibility.spec.d.ts +1 -0
- package/dist/src/composables/date/useDateFormat.d.ts +26 -0
- package/dist/src/composables/date/useDateInitialization.d.ts +18 -0
- package/dist/src/composables/date/useDatePickerAccessibility.d.ts +8 -0
- package/dist/src/composables/useFilterable/useFilterable.d.ts +1 -1
- package/dist/src/composables/validation/useValidation.d.ts +1 -0
- package/dist/src/main.d.ts +1 -0
- package/dist/src/utils/formatDate/index.d.ts +3 -0
- package/dist/src/utils/formatDate/tests/formatDate.spec.d.ts +1 -0
- package/dist/src/utils/functions/validation/isDateAfter/index.d.ts +2 -0
- package/dist/src/utils/functions/validation/isDateAfter/tests/isDateAfter.spec.d.ts +1 -0
- package/dist/src/utils/functions/validation/isDateBefore/index.d.ts +2 -0
- package/dist/src/utils/functions/validation/isDateBefore/tests/isDateBefore.spec.d.ts +1 -0
- package/dist/src/utils/functions/validation/isDateInRange/index.d.ts +3 -0
- package/dist/src/utils/functions/validation/isDateInRange/tests/isDateInRange.spec.d.ts +1 -0
- package/dist/src/utils/functions/validation/isDateValid/index.d.ts +9 -0
- package/dist/src/utils/functions/validation/isDateValid/tests/isDateValid.spec.d.ts +1 -0
- package/dist/src/utils/functions/validation/isEmailValid/tests/isEmailValid.spec.d.ts +1 -0
- package/dist/src/utils/functions/validation/isWeekend/index.d.ts +3 -0
- package/dist/src/utils/functions/validation/isWeekend/tests/isWeekend.spec.d.ts +1 -0
- package/dist/src/utils/parseDate/index.d.ts +3 -0
- package/dist/src/utils/parseDate/tests/parseDate.spec.d.ts +1 -0
- package/dist/src/utils/rules/doMatchPattern/index.d.ts +3 -0
- package/dist/src/utils/rules/doMatchPattern/tests/matchPattern.spec.d.ts +1 -0
- package/dist/src/utils/rules/index.d.ts +11 -0
- package/dist/src/utils/rules/isDateValid/index.d.ts +4 -0
- package/dist/src/utils/rules/isDateValid/tests/isDateValid.spec.d.ts +1 -0
- package/dist/src/utils/rules/isExactLength/index.d.ts +3 -0
- package/dist/src/utils/rules/isExactLength/locales.d.ts +2 -0
- package/dist/src/utils/rules/isExactLength/tests/exactLength.spec.d.ts +1 -0
- package/dist/src/utils/rules/isMaxLength/index.d.ts +3 -0
- package/dist/src/utils/rules/isMaxLength/locales.d.ts +2 -0
- package/dist/src/utils/rules/isMaxLength/tests/isMaxLength.spec.d.ts +1 -0
- package/dist/src/utils/rules/isMinLength/index.d.ts +3 -0
- package/dist/src/utils/rules/isMinLength/locales.d.ts +2 -0
- package/dist/src/utils/rules/isMinLength/tests/isMinLength.spec.d.ts +1 -0
- package/dist/src/utils/rules/isNotAfterDate/index.d.ts +3 -0
- package/dist/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.d.ts +1 -0
- package/dist/src/utils/rules/isNotAfterToday/index.d.ts +4 -0
- package/dist/src/utils/rules/isNotAfterToday/locales.d.ts +2 -0
- package/dist/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.d.ts +1 -0
- package/dist/src/utils/rules/isNotBeforeDate/index.d.ts +3 -0
- package/dist/src/utils/rules/isNotBeforeDate/locales.d.ts +2 -0
- package/dist/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.d.ts +1 -0
- package/dist/src/utils/rules/isNotBeforeToday/index.d.ts +4 -0
- package/dist/src/utils/rules/isNotBeforeToday/locales.d.ts +2 -0
- package/dist/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.d.ts +1 -0
- package/dist/src/utils/rules/isRequired/index.d.ts +4 -0
- package/dist/src/utils/rules/isRequired/locales.d.ts +2 -0
- package/dist/src/utils/rules/isRequired/tests/isRequred.spec.d.ts +1 -0
- package/dist/src/utils/rules/isValidEmail/index.d.ts +4 -0
- package/dist/src/utils/rules/isValidEmail/locales.d.ts +2 -0
- package/dist/src/utils/rules/isValidEmail/tests/isValidEmail.spec.d.ts +1 -0
- package/dist/style.css +1 -1
- package/package.json +3 -1
- package/src/assets/_radius.scss +12 -6
- package/src/assets/settings.scss +8 -0
- package/src/components/Amelipro/types/types.ts +40 -0
- package/src/components/ChipList/ChipList.stories.ts +26 -27
- package/src/components/ChipList/ChipList.vue +5 -1
- package/src/components/ChipList/config.ts +1 -0
- package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +2 -2
- package/src/components/Customs/SyBtnSelect/SyBtnSelect.mdx +1 -1
- package/src/components/Customs/SyInputSelect/SyInputSelect.mdx +1 -1
- package/src/components/Customs/SySelect/SySelect.mdx +1 -1
- package/src/components/Customs/SySelect/SySelect.vue +19 -4
- package/src/components/Customs/SyTextField/SyTextField.mdx +2 -2
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +239 -0
- package/src/components/Customs/SyTextField/SyTextField.vue +3 -0
- package/src/components/DatePicker/DatePicker.stories.ts +177 -5
- package/src/components/DatePicker/DatePicker.vue +148 -347
- package/src/components/DatePicker/DateTextInput.vue +91 -251
- package/src/components/DatePicker/tests/DatePicker.spec.ts +118 -48
- package/src/components/DatePicker/tests/DateTextInput.spec.ts +202 -6
- package/src/components/FileList/Accessibilite.stories.ts +1 -1
- package/src/components/FileList/AccessibiliteItems.ts +22 -0
- package/src/components/FileUpload/FileUpload.stories.ts +9 -7
- package/src/components/FilterInline/Accessibilite.mdx +14 -0
- package/src/components/FilterInline/Accessibilite.stories.ts +216 -0
- package/src/components/FilterInline/AccessibiliteItems.ts +132 -0
- package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/FilterSideBar/Accessibilite.mdx +14 -0
- package/src/components/FilterSideBar/Accessibilite.stories.ts +216 -0
- package/src/components/FilterSideBar/AccessibiliteItems.ts +153 -0
- package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/NirField/NirField.stories.ts +165 -0
- package/src/components/NirField/NirField.vue +6 -2
- package/src/components/NirField/tests/config.spec.ts +65 -0
- package/src/components/NotificationBar/NotificationBar.mdx +2 -2
- package/src/components/NotificationBar/NotificationBar.stories.ts +59 -11
- package/src/components/NotificationBar/NotificationBar.vue +42 -114
- package/src/components/NotificationBar/tests/NotificationBar.spec.ts +28 -33
- package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +1 -1
- package/src/components/PaginatedTable/PaginatedTable.vue +6 -10
- package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +4 -4
- package/src/components/PasswordField/PasswordField.stories.ts +191 -4
- package/src/components/PasswordField/PasswordField.vue +3 -0
- package/src/components/PeriodField/PeriodField.stories.ts +214 -118
- package/src/components/PeriodField/PeriodField.vue +195 -148
- package/src/components/PeriodField/tests/PeriodField.spec.ts +146 -0
- package/src/components/PhoneField/PhoneField.stories.ts +101 -0
- package/src/components/PhoneField/PhoneField.vue +73 -17
- package/src/components/PhoneField/tests/PhoneField.spec.ts +40 -0
- package/src/components/RatingPicker/RatingPicker.stories.ts +7 -7
- package/src/components/SearchListField/SearchListField.stories.ts +1 -1
- package/src/components/UploadWorkflow/Accessibilite.mdx +14 -0
- package/src/components/UploadWorkflow/Accessibilite.stories.ts +216 -0
- package/src/components/UploadWorkflow/AccessibiliteItems.ts +192 -0
- package/src/components/UploadWorkflow/UploadWorkflow.vue +2 -2
- package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/Usages/tests/Usages.spec.ts +183 -0
- package/src/components/index.ts +3 -0
- package/src/composables/date/tests/useDateFormat.spec.ts +67 -0
- package/src/composables/date/tests/useDateInitialization.spec.ts +89 -0
- package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +102 -0
- package/src/composables/date/useDateFormat.ts +94 -0
- package/src/composables/date/useDateInitialization.ts +92 -0
- package/src/composables/date/useDatePickerAccessibility.ts +78 -0
- package/src/composables/rules/tests/useFieldValidation.spec.ts +385 -4
- package/src/composables/useFilterable/useFilterable.ts +5 -4
- package/src/composables/validation/useValidation.ts +15 -0
- package/src/main.ts +1 -0
- package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +28 -0
- package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +2 -2
- package/src/stories/Accessibilite/Audit/RGAA.mdx +6 -6
- package/src/stories/Accessibilite/Introduction.mdx +2 -1
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +1 -1
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +1 -1
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +8 -11
- package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +77 -0
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +9 -3
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +2 -2
- package/src/stories/Demarrer/Introduction.stories.ts +3 -3
- package/src/stories/Demarrer/Releases.mdx +8 -0
- package/src/stories/Demarrer/Releases.stories.ts +66 -0
- package/src/stories/DesignTokens/Conteneurs.stories.ts +3 -3
- package/src/stories/GuideDuDev/LesBreackingChanges.mdx +36 -0
- package/src/stories/GuideDuDev/UtiliserLesRules.mdx +2 -2
- package/src/utils/formatDate/index.ts +6 -0
- package/src/utils/formatDate/tests/formatDate.spec.ts +18 -0
- package/src/utils/functions/validation/isDateAfter/index.ts +9 -0
- package/src/utils/functions/validation/isDateAfter/tests/isDateAfter.spec.ts +18 -0
- package/src/utils/functions/validation/isDateBefore/index.ts +9 -0
- package/src/utils/functions/validation/isDateBefore/tests/isDateBefore.spec.ts +23 -0
- package/src/utils/functions/validation/isDateInRange/index.ts +22 -0
- package/src/utils/functions/validation/isDateInRange/tests/isDateInRange.spec.ts +28 -0
- package/src/utils/functions/validation/isDateValid/index.ts +67 -0
- package/src/utils/functions/validation/isDateValid/tests/isDateValid.spec.ts +46 -0
- package/src/utils/functions/validation/isEmailValid/index.ts +9 -0
- package/src/utils/functions/validation/isWeekend/index.ts +10 -0
- package/src/utils/functions/validation/isWeekend/tests/isWeekend.spec.ts +16 -0
- package/src/utils/parseDate/index.ts +29 -0
- package/src/utils/parseDate/tests/parseDate.spec.ts +52 -0
- package/src/utils/rules/Rules.mdx +16 -0
- package/src/utils/rules/doMatchPattern/DoMachPattern.mdx +66 -0
- package/src/utils/rules/doMatchPattern/DoMatchPattern.stories.ts +106 -0
- package/src/utils/rules/doMatchPattern/index.ts +28 -0
- package/src/utils/rules/doMatchPattern/locales.ts +5 -0
- package/src/utils/rules/doMatchPattern/tests/matchPattern.spec.ts +38 -0
- package/src/utils/rules/index.ts +11 -0
- package/src/utils/rules/isDateValid/IsDateValid.mdx +87 -0
- package/src/utils/rules/isDateValid/IsDateValid.stories.ts +113 -0
- package/src/utils/rules/isDateValid/index.ts +32 -0
- package/src/utils/rules/isDateValid/locales.ts +10 -0
- package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +27 -0
- package/src/utils/rules/isExactLength/IsExactLenght.mdx +68 -0
- package/src/utils/rules/isExactLength/IsExactLength.stories.ts +151 -0
- package/src/utils/rules/{exactLength → isExactLength}/index.ts +2 -4
- package/src/utils/rules/isExactLength/tests/exactLength.spec.ts +48 -0
- package/src/utils/rules/isMaxLength/IsMaxLength.mdx +68 -0
- package/src/utils/rules/isMaxLength/IsMaxLength.stories.ts +152 -0
- package/src/utils/rules/isMaxLength/index.ts +30 -0
- package/src/utils/rules/isMaxLength/locales.ts +6 -0
- package/src/utils/rules/isMaxLength/tests/isMaxLength.spec.ts +42 -0
- package/src/utils/rules/isMinLength/IsMinLength.mdx +68 -0
- package/src/utils/rules/isMinLength/IsMinLength.stories.ts +152 -0
- package/src/utils/rules/isMinLength/index.ts +30 -0
- package/src/utils/rules/isMinLength/locales.ts +6 -0
- package/src/utils/rules/isMinLength/tests/isMinLength.spec.ts +42 -0
- package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +68 -0
- package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +109 -0
- package/src/utils/rules/isNotAfterDate/index.ts +25 -0
- package/src/utils/rules/isNotAfterDate/locales.ts +6 -0
- package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +25 -0
- package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +83 -0
- package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +110 -0
- package/src/utils/rules/isNotAfterToday/index.ts +28 -0
- package/src/utils/rules/isNotAfterToday/locales.ts +5 -0
- package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +30 -0
- package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +68 -0
- package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.stories.ts +114 -0
- package/src/utils/rules/isNotBeforeDate/index.ts +25 -0
- package/src/utils/rules/isNotBeforeDate/locales.ts +6 -0
- package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +25 -0
- package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +83 -0
- package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +110 -0
- package/src/utils/rules/isNotBeforeToday/index.ts +28 -0
- package/src/utils/rules/isNotBeforeToday/locales.ts +5 -0
- package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +36 -0
- package/src/utils/rules/isRequired/IsRequired.mdx +81 -0
- package/src/utils/rules/isRequired/IsRequired.stories.ts +101 -0
- package/src/utils/rules/{required → isRequired}/index.ts +3 -3
- package/src/utils/rules/{required/tests/index.spec.ts → isRequired/tests/isRequred.spec.ts} +9 -9
- package/src/utils/rules/isValidEmail/IsValidEmail.mdx +81 -0
- package/src/utils/rules/isValidEmail/IsValidEmail.stories.ts +101 -0
- package/src/utils/rules/{email → isValidEmail}/index.ts +3 -5
- package/src/utils/rules/{email/tests/email.spec.ts → isValidEmail/tests/isValidEmail.spec.ts} +5 -5
- package/dist/src/components/Amelipro/types/languages.d.ts +0 -6
- package/dist/src/utils/rules/email/index.d.ts +0 -4
- package/dist/src/utils/rules/exactLength/index.d.ts +0 -4
- package/dist/src/utils/rules/required/index.d.ts +0 -4
- package/dist/src/utils/rules/required/ruleMessageHelper.d.ts +0 -3
- package/src/components/Amelipro/types/languages.d.ts +0 -6
- package/src/components/Amelipro/types/types.d.ts +0 -65
- package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +0 -58
- package/src/utils/functions/isEmailValid/index.ts +0 -8
- package/src/utils/rules/required/ruleMessageHelper.ts +0 -14
- package/src/utils/rules/required/tests/rulesMessageHelper.spec.ts +0 -22
- /package/dist/src/{utils/functions/isEmailValid/tests/isEmailValid.spec.d.ts → components/NirField/tests/config.spec.d.ts} +0 -0
- /package/dist/src/{utils/rules/email/tests/email.spec.d.ts → components/Usages/tests/Usages.spec.d.ts} +0 -0
- /package/dist/src/{utils/rules/required/tests/index.spec.d.ts → composables/date/tests/useDateFormat.spec.d.ts} +0 -0
- /package/dist/src/{utils/rules/required/tests/rulesMessageHelper.spec.d.ts → composables/date/tests/useDateInitialization.spec.d.ts} +0 -0
- /package/dist/src/utils/functions/{isEmailValid → validation/isEmailValid}/index.d.ts +0 -0
- /package/dist/src/utils/rules/{exactLength → doMatchPattern}/locales.d.ts +0 -0
- /package/dist/src/utils/rules/{email → isDateValid}/locales.d.ts +0 -0
- /package/dist/src/utils/rules/{required → isNotAfterDate}/locales.d.ts +0 -0
- /package/src/components/NirField/{tests → examples}//342/200/257dataset/342/200/257.md" +0 -0
- /package/src/utils/functions/{isEmailValid → validation/isEmailValid}/tests/isEmailValid.spec.ts +0 -0
- /package/src/utils/rules/{exactLength → isExactLength}/locales.ts +0 -0
- /package/src/utils/rules/{required → isRequired}/locales.ts +0 -0
- /package/src/utils/rules/{email → isValidEmail}/locales.ts +0 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
|
|
2
|
+
|
|
3
|
+
export const AccessibiliteItemsIndeterminate = [
|
|
4
|
+
{
|
|
5
|
+
title: 'Catégorie 3 : Couleurs',
|
|
6
|
+
subtitle: '3.2 Dans chaque page web, le contraste entre la couleur du texte et la couleur de son arrière-plan est-il suffisamment élevé?',
|
|
7
|
+
items: [
|
|
8
|
+
{
|
|
9
|
+
precision: '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions? Le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins; Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.',
|
|
10
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#3.2.1',
|
|
11
|
+
solution: [{
|
|
12
|
+
info1: '1. Retrouver dans le document les textes et les textes en image sans effet de graisse d’une taille restituée inférieure à 24px qui pourraient poser des problèmes de contraste ;',
|
|
13
|
+
info2: '2. Pour chacun de ces textes, vérifier que : Soit le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins; Soit un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.',
|
|
14
|
+
info3: '3. Si c’est le cas pour chaque texte, le test est validé',
|
|
15
|
+
}],
|
|
16
|
+
expertise: ExpertiseLevelEnum.DEV,
|
|
17
|
+
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
precision: ' 3.2.4 Dans chaque page web, le texte et le texte en image en gras d’une taille restituée supérieure ou égale à 18,5px vérifient-ils une de ces conditions (hors cas particuliers) ? '
|
|
21
|
+
+ 'Le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins ; '
|
|
22
|
+
+ 'Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins. ',
|
|
23
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#3.2.4',
|
|
24
|
+
solution: [{
|
|
25
|
+
info1: '1. Retrouver dans le document les textes et les textes en image en gras d’une taille restituée supérieure ou égale à 18,5px qui pourraient poser des problèmes de contraste ; ',
|
|
26
|
+
info2: '2. Pour chacun de ces textes, vérifier que : Soit le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins ; Soit un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins. ',
|
|
27
|
+
info3: '3. Si c’est le cas pour chaque texte, le test est validé',
|
|
28
|
+
}],
|
|
29
|
+
expertise: ExpertiseLevelEnum.DEV,
|
|
30
|
+
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
{
|
|
37
|
+
title: 'Catégorie 10 : Présentation de l’information',
|
|
38
|
+
subtitle: '10.1 Dans le site web, des feuilles de styles sont-elles utilisées pour contrôler la présentation de l’information ? ?',
|
|
39
|
+
items: [
|
|
40
|
+
|
|
41
|
+
{
|
|
42
|
+
precision: '10.1.1 Dans chaque page web, les balises servant à la présentation de l’information ne doivent pas être présentes dans le code source généré des pages. Cette règle est-elle respectée ? ',
|
|
43
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#10.1.1',
|
|
44
|
+
solution: [{
|
|
45
|
+
info1: '1. Vérifier l’absence des éléments de présentation <basefont>, <big>, <blink>, <center>, <font>, <marquee>, <s>, <strike>, <tt> ; ',
|
|
46
|
+
info2: '2. Vérifier l’absence de l’élément <u> uniquement si le DOCTYPE du document ne correspond pas à HTML 5 ; ',
|
|
47
|
+
info3: '3. Si c’est le cas, le test est validé',
|
|
48
|
+
}],
|
|
49
|
+
expertise: ExpertiseLevelEnum.DEV,
|
|
50
|
+
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
export const AccessibiliteItemsValidated = [
|
|
59
|
+
{
|
|
60
|
+
title: 'Catégorie 1 : Images',
|
|
61
|
+
subtitle: '1.2 Chaque image de décoration est-elle correctement ignorée par les technologies d’assistance ?',
|
|
62
|
+
|
|
63
|
+
items: [
|
|
64
|
+
{
|
|
65
|
+
precision: '1.2.4 Chaque image vectorielle (balise <svg>) de décoration, sans légende, vérifie-t-elle ces conditions ? '
|
|
66
|
+
+ ' La balise <svg> possède un attribut WAI-ARIA aria-hidden="true" ;'
|
|
67
|
+
+ ' La balise <svg> et ses enfants sont dépourvus d’alternative textuelle ;'
|
|
68
|
+
+ ' Les balises <title> et <desc> sont absentes ou vides ;'
|
|
69
|
+
+ ' La balise <svg> et ses enfants sont dépourvus d’attribut title.',
|
|
70
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#1.2.4',
|
|
71
|
+
solution: [{
|
|
72
|
+
info1: '1. Pour chaque image, vérifier que l’élément <svg> ne possède pas d’attributs aria-labelledby ou aria-label et qu’il :'
|
|
73
|
+
+ ' Possède un attribut WAI-ARIA aria-hidden="true" ;'
|
|
74
|
+
+ ' Et est dépourvu d’alternative textuelle (ainsi que ses éléments enfants) ;'
|
|
75
|
+
+ ' Et ne contient pas d’éléments <title> et <desc> à moins que vides de contenu ;'
|
|
76
|
+
+ ' Et est dépourvu d’attribut title (ainsi que ses éléments enfants).'
|
|
77
|
+
+ ' Le nom du composant est cohérent avec l’état de la fonctionnalité ou des contenus contrôlés (par exemple pour une fonctionnalité permettant d’afficher ou de masquer une zone de contenu).',
|
|
78
|
+
info2: '2. Sinon, vérifier la présence d’un composant d’interface accessible permettant d’accéder aux mêmes fonctionnalités',
|
|
79
|
+
info3: '3. Si c’est le cas pour chaque image, le test est validé.',
|
|
80
|
+
}],
|
|
81
|
+
expertise: ExpertiseLevelEnum.DESIGN,
|
|
82
|
+
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
title: 'Catégorie 3 : Couleurs',
|
|
89
|
+
subtitle: '3.2 Dans chaque page web, le contraste entre la couleur du texte et la couleur de son arrière-plan est-il suffisamment élevé?',
|
|
90
|
+
items: [
|
|
91
|
+
{
|
|
92
|
+
precision: ' 3.2.4 Dans chaque page web, le texte et le texte en image en gras d’une taille restituée supérieure ou égale à 18,5px vérifient-ils une de ces conditions (hors cas particuliers) ? '
|
|
93
|
+
+ 'Le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins ; '
|
|
94
|
+
+ 'Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins. ',
|
|
95
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#3.2.4',
|
|
96
|
+
solution: [{
|
|
97
|
+
info1: '1. Retrouver dans le document les textes et les textes en image en gras d’une taille restituée supérieure ou égale à 18,5px qui pourraient poser des problèmes de contraste ; ',
|
|
98
|
+
info2: '2. Pour chacun de ces textes, vérifier que : Soit le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins ; Soit un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins. ',
|
|
99
|
+
info3: '3. Si c’est le cas pour chaque texte, le test est validé',
|
|
100
|
+
}],
|
|
101
|
+
expertise: ExpertiseLevelEnum.DESIGN,
|
|
102
|
+
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
title: 'Catégorie 5 : Tableaux',
|
|
109
|
+
subtitle: '5.1 Chaque tableau de données complexe a-t-il un résumé ? ',
|
|
110
|
+
items: [
|
|
111
|
+
|
|
112
|
+
{
|
|
113
|
+
precision: '5.1.1 Pour chaque tableau de données complexe, un résumé est-il disponible ? ',
|
|
114
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#5.1.1',
|
|
115
|
+
solution: [{
|
|
116
|
+
info1: '1. Retrouver dans le document les tableaux de données complexes (tableau de données - élément <table> ou élément pourvu d’un attribut WAI-ARIA role="table" - contenant des en-têtes qui ne sont pas répartis uniquement sur la première ligne et/ou la première colonne de la grille ou dont la portée n’est pas valable pour l’ensemble de la colonne ou de la ligne) ; ',
|
|
117
|
+
info2: '2. Pour chaque tableau de données complexe, vérifier qu’un passage de texte permettant de comprendre la nature et la structure du tableau, est présent : '
|
|
118
|
+
+ 'Soit dans l’élément <caption> ; '
|
|
119
|
+
+ 'Soit dans l’attribut summary de l’élément <table> (dans les versions de HTML et de XHTML antérieures à HTML 5) ; '
|
|
120
|
+
+ 'Soit dans un passage de texte lié au tableau avec l’attribut aria-describedby. ',
|
|
121
|
+
info3: '3. Si c’est le cas pour chaque tableau de données complexe, le test est validé.',
|
|
122
|
+
}],
|
|
123
|
+
expertise: ExpertiseLevelEnum.DESIGN,
|
|
124
|
+
|
|
125
|
+
},
|
|
126
|
+
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
title: 'Catégorie 7 : Scripts',
|
|
131
|
+
subtitle: '7.1 Chaque script est-il, si nécessaire, compatible avec les technologies d’assistance ?',
|
|
132
|
+
items: [
|
|
133
|
+
|
|
134
|
+
{
|
|
135
|
+
precision: ' 7.1.3 Chaque script qui génère ou contrôle un composant d’interface vérifie-t-il ces conditions : '
|
|
136
|
+
+ 'Le composant possède un nom pertinent ;'
|
|
137
|
+
+ 'Le nom accessible du composant contient au moins l’intitulé visible ;'
|
|
138
|
+
+ 'Le composant possède un rôle pertinent.',
|
|
139
|
+
|
|
140
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#7.1.3',
|
|
141
|
+
solution: [{
|
|
142
|
+
info1: '1. Pour chacun des composants d’interface ayant validé le test 7.1.1, vérifier que le composant d’interface possède : ',
|
|
143
|
+
info2: '2. Un nom pertinent (intitulé visible) et un rôle pertinent',
|
|
144
|
+
info3: '3. Si le composant d’interface possède un nom accessible, vérifier que ce nom est pertinent et contient au moins l’intitulé visible.',
|
|
145
|
+
}],
|
|
146
|
+
expertise: ExpertiseLevelEnum.DESIGN,
|
|
147
|
+
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
],
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
]
|
|
@@ -21,6 +21,7 @@ const meta: Meta<typeof NirField> = {
|
|
|
21
21
|
table: {
|
|
22
22
|
type: {
|
|
23
23
|
summary: 'string',
|
|
24
|
+
detail: 'ex: 1840275123456 74',
|
|
24
25
|
},
|
|
25
26
|
},
|
|
26
27
|
},
|
|
@@ -524,6 +525,89 @@ export const WithSuccessMessages: Story = {
|
|
|
524
525
|
},
|
|
525
526
|
}
|
|
526
527
|
|
|
528
|
+
export const WithoutSuccessMessages: Story = {
|
|
529
|
+
parameters: {
|
|
530
|
+
docs: {
|
|
531
|
+
description: {
|
|
532
|
+
story: `
|
|
533
|
+
### Messages de succès
|
|
534
|
+
|
|
535
|
+
Cette story illustre l'utilisation de la propriété \`showSuccessMessages\` qui permet de contrôler
|
|
536
|
+
l'affichage des messages de succès lors de la validation. Par défaut, cette propriété est à \`true\`.
|
|
537
|
+
|
|
538
|
+
Cela peut être utile pour réduire la verbosité de l'interface lorsque les messages de succès
|
|
539
|
+
ne sont pas nécessaires dans certains contextes.
|
|
540
|
+
`,
|
|
541
|
+
},
|
|
542
|
+
},
|
|
543
|
+
sourceCode: [
|
|
544
|
+
{
|
|
545
|
+
name: 'Template',
|
|
546
|
+
code: `<template>
|
|
547
|
+
<!-- Champ avec messages de succès (par défaut) -->
|
|
548
|
+
<NirField
|
|
549
|
+
v-model="value"
|
|
550
|
+
label="NIR avec messages de succès"
|
|
551
|
+
required
|
|
552
|
+
/>
|
|
553
|
+
|
|
554
|
+
<!-- Champ sans messages de succès -->
|
|
555
|
+
<NirField
|
|
556
|
+
v-model="value"
|
|
557
|
+
label="NIR sans messages de succès"
|
|
558
|
+
required
|
|
559
|
+
:showSuccessMessages="false"
|
|
560
|
+
/>
|
|
561
|
+
</template>`,
|
|
562
|
+
},
|
|
563
|
+
],
|
|
564
|
+
},
|
|
565
|
+
render: () => ({
|
|
566
|
+
components: { NirField },
|
|
567
|
+
setup() {
|
|
568
|
+
const value1 = ref('184027512345674')
|
|
569
|
+
const value2 = ref('184027512345674')
|
|
570
|
+
|
|
571
|
+
return { value1, value2 }
|
|
572
|
+
},
|
|
573
|
+
template: `
|
|
574
|
+
<div>
|
|
575
|
+
<div>
|
|
576
|
+
<div>
|
|
577
|
+
<p class="text-subtitle-2 mb-2">Avec messages de succès</p>
|
|
578
|
+
<NirField
|
|
579
|
+
v-model="value1"
|
|
580
|
+
label="NIR avec messages de succès"
|
|
581
|
+
required
|
|
582
|
+
showSuccessMessages
|
|
583
|
+
/>
|
|
584
|
+
</div>
|
|
585
|
+
|
|
586
|
+
<div>
|
|
587
|
+
<p class="text-subtitle-2 mb-2">Sans messages de succès</p>
|
|
588
|
+
<NirField
|
|
589
|
+
v-model="value2"
|
|
590
|
+
label="NIR sans messages de succès"
|
|
591
|
+
required
|
|
592
|
+
:showSuccessMessages="false"
|
|
593
|
+
/>
|
|
594
|
+
</div>
|
|
595
|
+
</div>
|
|
596
|
+
|
|
597
|
+
<div class="mt-4 text-body-2">
|
|
598
|
+
<p>Observations :</p>
|
|
599
|
+
<ul>
|
|
600
|
+
<li>Les deux champs ont la même valeur valide</li>
|
|
601
|
+
<li>Le premier champ affiche un message de succès et un indicateur visuel vert au blur</li>
|
|
602
|
+
<li>Le second champ n'affiche pas de message de succès, au blur</li>
|
|
603
|
+
<li>Essayez de modifier les valeurs pour voir le comportement avec des données invalides puis valides</li>
|
|
604
|
+
</ul>
|
|
605
|
+
</div>
|
|
606
|
+
</div>
|
|
607
|
+
`,
|
|
608
|
+
}),
|
|
609
|
+
}
|
|
610
|
+
|
|
527
611
|
export const CustomRules: Story = {
|
|
528
612
|
args: {
|
|
529
613
|
...Default.args,
|
|
@@ -954,3 +1038,84 @@ const onSubmit = async () => {
|
|
|
954
1038
|
`,
|
|
955
1039
|
}),
|
|
956
1040
|
}
|
|
1041
|
+
|
|
1042
|
+
export const DisableErrorHandling: Story = {
|
|
1043
|
+
parameters: {
|
|
1044
|
+
docs: {
|
|
1045
|
+
description: {
|
|
1046
|
+
story: `
|
|
1047
|
+
### Désactivation de la gestion des erreurs
|
|
1048
|
+
|
|
1049
|
+
Cette story illustre l'utilisation de la propriété \`disableErrorHandling\` qui permet de désactiver complètement
|
|
1050
|
+
la gestion et l'affichage des erreurs dans un champ, même si des règles de validation sont définies.
|
|
1051
|
+
|
|
1052
|
+
Cela peut être utile dans des cas particuliers où vous souhaitez définir des règles de validation
|
|
1053
|
+
mais gérer leur affichage différemment, ou utiliser la validation uniquement au niveau du formulaire parent.
|
|
1054
|
+
`,
|
|
1055
|
+
},
|
|
1056
|
+
},
|
|
1057
|
+
sourceCode: [
|
|
1058
|
+
{
|
|
1059
|
+
name: 'Template',
|
|
1060
|
+
code: `<template>
|
|
1061
|
+
<!-- Champ avec validation normale -->
|
|
1062
|
+
<NirField
|
|
1063
|
+
v-model="value"
|
|
1064
|
+
label="NIR avec validation"
|
|
1065
|
+
required
|
|
1066
|
+
/>
|
|
1067
|
+
|
|
1068
|
+
<!-- Champ avec gestion d'erreurs désactivée -->
|
|
1069
|
+
<NirField
|
|
1070
|
+
v-model="value"
|
|
1071
|
+
label="NIR sans gestion d'erreurs"
|
|
1072
|
+
required
|
|
1073
|
+
disableErrorHandling
|
|
1074
|
+
/>
|
|
1075
|
+
</template>`,
|
|
1076
|
+
},
|
|
1077
|
+
],
|
|
1078
|
+
},
|
|
1079
|
+
render: () => ({
|
|
1080
|
+
components: { NirField },
|
|
1081
|
+
setup() {
|
|
1082
|
+
const value1 = ref('')
|
|
1083
|
+
const value2 = ref('')
|
|
1084
|
+
|
|
1085
|
+
return { value1, value2 }
|
|
1086
|
+
},
|
|
1087
|
+
template: `
|
|
1088
|
+
<div>
|
|
1089
|
+
<div>
|
|
1090
|
+
<div>
|
|
1091
|
+
<p class="text-subtitle-2 mb-2">Validation normale</p>
|
|
1092
|
+
<NirField
|
|
1093
|
+
v-model="value1"
|
|
1094
|
+
label="NIR avec validation"
|
|
1095
|
+
required
|
|
1096
|
+
/>
|
|
1097
|
+
</div>
|
|
1098
|
+
|
|
1099
|
+
<div>
|
|
1100
|
+
<p class="text-subtitle-2 mb-2">Sans gestion d'erreurs</p>
|
|
1101
|
+
<NirField
|
|
1102
|
+
v-model="value2"
|
|
1103
|
+
label="NIR sans gestion d'erreurs"
|
|
1104
|
+
required
|
|
1105
|
+
disableErrorHandling
|
|
1106
|
+
/>
|
|
1107
|
+
</div>
|
|
1108
|
+
</div>
|
|
1109
|
+
|
|
1110
|
+
<div class="mt-4 text-body-2">
|
|
1111
|
+
<p>Instructions :</p>
|
|
1112
|
+
<ol>
|
|
1113
|
+
<li class="ml-4">Cliquez dans un champ puis en dehors pour déclencher la validation</li>
|
|
1114
|
+
<li class="ml-4">Essayez de saisir des valeurs invalides (moins de 13 chiffres)</li>
|
|
1115
|
+
<li class="ml-4">Notez que le premier champ affiche des erreurs, mais pas le second</li>
|
|
1116
|
+
</ol>
|
|
1117
|
+
</div>
|
|
1118
|
+
</div>
|
|
1119
|
+
`,
|
|
1120
|
+
}),
|
|
1121
|
+
}
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
hint?: string
|
|
41
41
|
persistentHint?: boolean
|
|
42
42
|
persistentPlaceholder?: boolean
|
|
43
|
+
disableErrorHandling?: boolean
|
|
43
44
|
}>(), {
|
|
44
45
|
modelValue: undefined,
|
|
45
46
|
label: undefined,
|
|
@@ -72,6 +73,7 @@
|
|
|
72
73
|
hint: undefined,
|
|
73
74
|
persistentHint: false,
|
|
74
75
|
persistentPlaceholder: false,
|
|
76
|
+
disableErrorHandling: false,
|
|
75
77
|
})
|
|
76
78
|
|
|
77
79
|
const emit = defineEmits(['update:modelValue'])
|
|
@@ -153,11 +155,13 @@
|
|
|
153
155
|
const numberValidation = useValidation({
|
|
154
156
|
showSuccessMessages: props.showSuccessMessages,
|
|
155
157
|
fieldIdentifier: props.numberLabel,
|
|
158
|
+
disableErrorHandling: props.disableErrorHandling,
|
|
156
159
|
})
|
|
157
160
|
|
|
158
161
|
const keyValidation = useValidation({
|
|
159
162
|
showSuccessMessages: props.showSuccessMessages,
|
|
160
163
|
fieldIdentifier: props.keyLabel,
|
|
164
|
+
disableErrorHandling: props.disableErrorHandling,
|
|
161
165
|
})
|
|
162
166
|
|
|
163
167
|
// Règles de validation
|
|
@@ -406,7 +410,7 @@
|
|
|
406
410
|
:has-warning="hasNumberWarning"
|
|
407
411
|
:has-success="hasNumberSuccess"
|
|
408
412
|
:error="hasNumberErrors"
|
|
409
|
-
:messages="hasNumberErrors ? numberValidation.errors.value : (hasNumberWarning ? numberValidation.warnings.value : (hasNumberSuccess ? numberValidation.successes.value : []))"
|
|
413
|
+
:messages="hasNumberErrors ? numberValidation.errors.value : (hasNumberWarning ? numberValidation.warnings.value : (hasNumberSuccess && props.showSuccessMessages ? numberValidation.successes.value : []))"
|
|
410
414
|
:has-error="hasNumberErrors"
|
|
411
415
|
:required="required"
|
|
412
416
|
:is-disabled="isDisabled"
|
|
@@ -449,7 +453,7 @@
|
|
|
449
453
|
:has-warning="hasKeyWarning"
|
|
450
454
|
:has-success="hasKeySuccess"
|
|
451
455
|
:hint="props.hint || locales.keyHint"
|
|
452
|
-
:messages="hasKeyErrors ? keyValidation.errors.value : (hasKeyWarning ? keyValidation.warnings.value : (hasKeySuccess ? keyValidation.successes.value : []))"
|
|
456
|
+
:messages="hasKeyErrors ? keyValidation.errors.value : (hasKeyWarning ? keyValidation.warnings.value : (hasKeySuccess && props.showSuccessMessages ? keyValidation.successes.value : []))"
|
|
453
457
|
:has-error="hasKeyErrors"
|
|
454
458
|
:is-disabled="isDisabled"
|
|
455
459
|
:bg-color="bgColor"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import defaultOptions from '../config'
|
|
3
|
+
|
|
4
|
+
describe('NirField config', () => {
|
|
5
|
+
it('should have the correct default options structure', () => {
|
|
6
|
+
expect(defaultOptions).toHaveProperty('persistentHint')
|
|
7
|
+
expect(defaultOptions).toHaveProperty('validateOn')
|
|
8
|
+
expect(defaultOptions).toHaveProperty('icon')
|
|
9
|
+
expect(defaultOptions).toHaveProperty('tooltip')
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
it('should have the correct persistentHint configuration', () => {
|
|
13
|
+
expect(defaultOptions.persistentHint).toEqual({
|
|
14
|
+
persistentHint: true,
|
|
15
|
+
})
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
it('should have the correct validateOn configuration', () => {
|
|
19
|
+
expect(defaultOptions.validateOn).toEqual({
|
|
20
|
+
validateOn: 'blur',
|
|
21
|
+
})
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
it('should have the correct icon configuration', () => {
|
|
25
|
+
expect(defaultOptions.icon).toEqual({
|
|
26
|
+
color: '',
|
|
27
|
+
})
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it('should have the correct tooltip configuration', () => {
|
|
31
|
+
expect(defaultOptions.tooltip).toEqual({
|
|
32
|
+
location: 'top',
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
it('should be immutable when imported', () => {
|
|
37
|
+
// Vérifier que l'objet ne peut pas être modifié après import
|
|
38
|
+
const originalTooltipLocation = defaultOptions.tooltip.location
|
|
39
|
+
|
|
40
|
+
// Tentative de modification
|
|
41
|
+
const testFunc = () => {
|
|
42
|
+
defaultOptions.tooltip.location = 'bottom'
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// En mode strict, la modification d'une propriété en lecture seule devrait lever une erreur
|
|
46
|
+
// En mode non-strict, la modification ne devrait pas être effective
|
|
47
|
+
try {
|
|
48
|
+
testFunc()
|
|
49
|
+
// Si pas d'erreur, vérifions que la valeur n'a pas changé
|
|
50
|
+
expect(defaultOptions.tooltip.location).toBe(originalTooltipLocation)
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
// Si une erreur est levée, c'est que l'objet est correctement protégé
|
|
54
|
+
expect(e).toBeTruthy()
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
it('should be used correctly in the component', () => {
|
|
59
|
+
// Ce test est un placeholder pour vérifier l'intégration avec le composant
|
|
60
|
+
// Dans un cas réel, on pourrait monter le composant et vérifier que les options
|
|
61
|
+
// par défaut sont correctement appliquées
|
|
62
|
+
expect(defaultOptions.validateOn.validateOn).toBe('blur')
|
|
63
|
+
expect(defaultOptions.persistentHint.persistentHint).toBe(true)
|
|
64
|
+
})
|
|
65
|
+
})
|
|
@@ -31,8 +31,8 @@ import * as NotificationBarStories from './NotificationBar.stories';
|
|
|
31
31
|
<script setup lang="ts">
|
|
32
32
|
import { VBtn } from 'vuetify/components'
|
|
33
33
|
import { NotificationBar } from '@cnamts/synapse'
|
|
34
|
-
import { useNotificationService } from '@cnamts/synapse
|
|
35
|
-
import type { Notification } from '@cnamts/synapse
|
|
34
|
+
import { useNotificationService } from '@cnamts/synapse'
|
|
35
|
+
import type { Notification } from '@cnamts/synapse'
|
|
36
36
|
|
|
37
37
|
const { addNotification } = useNotificationService()
|
|
38
38
|
|
|
@@ -115,7 +115,6 @@ Default.args = {
|
|
|
115
115
|
closeBtnText: 'Fermer',
|
|
116
116
|
type: 'info',
|
|
117
117
|
bottom: false,
|
|
118
|
-
rounded: '4',
|
|
119
118
|
}
|
|
120
119
|
|
|
121
120
|
Default.parameters = {
|
|
@@ -173,7 +172,6 @@ Default.parameters = {
|
|
|
173
172
|
export const Success: Story = Default.bind({})
|
|
174
173
|
Success.args = {
|
|
175
174
|
...Default.args,
|
|
176
|
-
rounded: 'pill',
|
|
177
175
|
type: 'success',
|
|
178
176
|
}
|
|
179
177
|
Success.parameters = {
|
|
@@ -186,7 +184,6 @@ Success.parameters = {
|
|
|
186
184
|
v-model="showNotification"
|
|
187
185
|
:close-btn-text="closeBtnText"
|
|
188
186
|
:bottom="bottom"
|
|
189
|
-
:rounded="pill"
|
|
190
187
|
type="success"
|
|
191
188
|
>
|
|
192
189
|
<template #default>This is a success notification</template>
|
|
@@ -232,7 +229,6 @@ Success.parameters = {
|
|
|
232
229
|
export const Warning: Story = Default.bind({})
|
|
233
230
|
Warning.args = {
|
|
234
231
|
...Default.args,
|
|
235
|
-
rounded: 'pill',
|
|
236
232
|
type: 'warning',
|
|
237
233
|
}
|
|
238
234
|
Warning.parameters = {
|
|
@@ -245,7 +241,6 @@ Warning.parameters = {
|
|
|
245
241
|
v-model="showNotification"
|
|
246
242
|
:close-btn-text="closeBtnText"
|
|
247
243
|
:bottom="bottom"
|
|
248
|
-
:rounded="pill"
|
|
249
244
|
type="warning"
|
|
250
245
|
>
|
|
251
246
|
<template #default>This is a warning notification</template>
|
|
@@ -291,7 +286,6 @@ Warning.parameters = {
|
|
|
291
286
|
export const Error: Story = Default.bind({})
|
|
292
287
|
Error.args = {
|
|
293
288
|
...Default.args,
|
|
294
|
-
rounded: 'pill',
|
|
295
289
|
type: 'error',
|
|
296
290
|
}
|
|
297
291
|
Error.parameters = {
|
|
@@ -304,7 +298,6 @@ Error.parameters = {
|
|
|
304
298
|
v-model="showNotification"
|
|
305
299
|
:close-btn-text="closeBtnText"
|
|
306
300
|
:bottom="bottom"
|
|
307
|
-
:rounded="pill"
|
|
308
301
|
type="error"
|
|
309
302
|
>
|
|
310
303
|
<template #default>This is an error notification</template>
|
|
@@ -350,7 +343,6 @@ Error.parameters = {
|
|
|
350
343
|
export const Bottom: Story = Default.bind({})
|
|
351
344
|
Bottom.args = {
|
|
352
345
|
...Default.args,
|
|
353
|
-
rounded: 'pill',
|
|
354
346
|
bottom: true,
|
|
355
347
|
}
|
|
356
348
|
Bottom.parameters = {
|
|
@@ -363,7 +355,6 @@ Bottom.parameters = {
|
|
|
363
355
|
v-model="showNotification"
|
|
364
356
|
:close-btn-text="closeBtnText"
|
|
365
357
|
:bottom="true"
|
|
366
|
-
:rounded="pill"
|
|
367
358
|
:type="type"
|
|
368
359
|
>
|
|
369
360
|
<template #default>This is a bottom-positioned notification</template>
|
|
@@ -409,7 +400,6 @@ Bottom.parameters = {
|
|
|
409
400
|
export const CustomCloseBtnText: Story = Default.bind({})
|
|
410
401
|
CustomCloseBtnText.args = {
|
|
411
402
|
...Default.args,
|
|
412
|
-
rounded: 'pill',
|
|
413
403
|
closeBtnText: 'Masquer',
|
|
414
404
|
}
|
|
415
405
|
CustomCloseBtnText.parameters = {
|
|
@@ -448,7 +438,6 @@ CustomCloseBtnText.parameters = {
|
|
|
448
438
|
|
|
449
439
|
const { addNotification } = useNotificationService()
|
|
450
440
|
const showNotification = ref(false)
|
|
451
|
-
const rounded = 'pill'
|
|
452
441
|
|
|
453
442
|
const envoyerNotification = (message: string) => {
|
|
454
443
|
const notification = {
|
|
@@ -465,3 +454,62 @@ CustomCloseBtnText.parameters = {
|
|
|
465
454
|
},
|
|
466
455
|
],
|
|
467
456
|
}
|
|
457
|
+
|
|
458
|
+
export const Customization: Story = Default.bind({})
|
|
459
|
+
Customization.args = {
|
|
460
|
+
...Default.args,
|
|
461
|
+
rounded: 'pill',
|
|
462
|
+
type: 'success',
|
|
463
|
+
}
|
|
464
|
+
Customization.parameters = {
|
|
465
|
+
sourceCode: [
|
|
466
|
+
{
|
|
467
|
+
name: 'Template',
|
|
468
|
+
code: `
|
|
469
|
+
<div class="d-flex flex-wrap align-center justify-center">
|
|
470
|
+
<NotificationBar
|
|
471
|
+
v-model="showNotification"
|
|
472
|
+
:close-btn-text="closeBtnText"
|
|
473
|
+
:bottom="bottom"
|
|
474
|
+
:rounded="pill"
|
|
475
|
+
type="success"
|
|
476
|
+
>
|
|
477
|
+
<template #default>This is a success notification</template>
|
|
478
|
+
</NotificationBar>
|
|
479
|
+
<VBtn
|
|
480
|
+
color="success"
|
|
481
|
+
@click="envoyerNotification('This is a success notification')"
|
|
482
|
+
class="ma-6"
|
|
483
|
+
>
|
|
484
|
+
Afficher la notification
|
|
485
|
+
</VBtn>
|
|
486
|
+
</div>
|
|
487
|
+
`,
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
name: 'Script',
|
|
491
|
+
code: `
|
|
492
|
+
<script setup lang="ts">
|
|
493
|
+
import { VBtn } from 'vuetify/components'
|
|
494
|
+
import { NotificationBar } from '@cnamts/synapse'
|
|
495
|
+
import { ref } from 'vue'
|
|
496
|
+
import { useNotificationService } from '@cnamts/synpase'
|
|
497
|
+
|
|
498
|
+
const { addNotification } = useNotificationService()
|
|
499
|
+
const showNotification = ref(false)
|
|
500
|
+
|
|
501
|
+
const envoyerNotification = (message: string) => {
|
|
502
|
+
const notification = {
|
|
503
|
+
id: Date.now().toString(),
|
|
504
|
+
message,
|
|
505
|
+
type: 'success',
|
|
506
|
+
timeout: -1,
|
|
507
|
+
}
|
|
508
|
+
addNotification(notification)
|
|
509
|
+
showNotification.value = true
|
|
510
|
+
}
|
|
511
|
+
</script>
|
|
512
|
+
`,
|
|
513
|
+
},
|
|
514
|
+
],
|
|
515
|
+
}
|