@cnamts/synapse 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/README.md +1 -1
  2. package/dist/DateFilter-YWOTbfeL.js +98 -0
  3. package/dist/NumberFilter-DMmMgALM.js +121 -0
  4. package/dist/PeriodFilter-Bok5BHcn.js +112 -0
  5. package/dist/SelectFilter-BKud2WhN.js +136 -0
  6. package/dist/TextFilter-DvMf2thH.js +114 -0
  7. package/dist/{components/BackBtn → common}/constants/ExpertiseLevelEnum.d.ts +3 -0
  8. package/dist/components/Accordion/Accordion.d.ts +2 -1
  9. package/dist/components/Accordion/composables/useAccordionGroupCommunication.d.ts +5 -0
  10. package/dist/components/Accordion/composables/useAccordionKeyboardNavigation.d.ts +12 -0
  11. package/dist/components/Accordion/composables/useAccordionState.d.ts +13 -0
  12. package/dist/components/BackBtn/AccessibiliteItems.d.ts +1 -1
  13. package/dist/components/BackToTopBtn/AccessibiliteItems.d.ts +1 -1
  14. package/dist/components/ChipList/AccessibiliteItems.d.ts +1 -1
  15. package/dist/components/CollapsibleList/AccessibiliteItems.d.ts +1 -1
  16. package/dist/components/ContextualMenu/AccessibiliteItems.d.ts +1 -1
  17. package/dist/components/CookieBanner/AccessibiliteItems.d.ts +1 -1
  18. package/dist/components/CopyBtn/AccessibiliteItems.d.ts +1 -1
  19. package/dist/components/Customs/SyBtnSelect/AccessibiliteItems.d.ts +1 -1
  20. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +85 -0
  21. package/dist/components/Customs/SyInputSelect/AccessibiliteItems.d.ts +1 -1
  22. package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
  23. package/dist/components/Customs/SySelect/AccessibiliteItems.d.ts +1 -1
  24. package/dist/components/Customs/SySelect/SySelect.d.ts +33 -13
  25. package/dist/components/Customs/SyTextField/AccessibiliteItems.d.ts +1 -1
  26. package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
  27. package/dist/components/DataList/AccessibiliteItems.d.ts +1 -1
  28. package/dist/components/DataListGroup/AccessibiliteItems.d.ts +1 -1
  29. package/dist/components/DatePicker/AccessibiliteItems.d.ts +1 -1
  30. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +4295 -0
  31. package/dist/components/DatePicker/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +158 -104
  32. package/dist/components/DatePicker/{DateTextInput.d.ts → DateTextInput/DateTextInput.d.ts} +35 -27
  33. package/dist/components/DatePicker/composables/index.d.ts +17 -0
  34. package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +14 -0
  35. package/dist/components/DatePicker/composables/useDateAutoClamp.d.ts +16 -0
  36. package/dist/components/DatePicker/composables/useDateFormatValidation.d.ts +25 -0
  37. package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +33 -0
  38. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +16 -0
  39. package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +27 -0
  40. package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +29 -0
  41. package/dist/components/DatePicker/composables/useDateRangeValidation.d.ts +11 -0
  42. package/dist/components/DatePicker/composables/useDateSelection.d.ts +10 -0
  43. package/dist/components/DatePicker/composables/useDateValidation.d.ts +35 -0
  44. package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +19 -0
  45. package/dist/components/DatePicker/composables/useIconState.d.ts +17 -0
  46. package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +31 -0
  47. package/dist/components/DatePicker/composables/useInputHandler.d.ts +32 -0
  48. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +33 -0
  49. package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +12 -0
  50. package/dist/components/DatePicker/composables/useTodayButton.d.ts +16 -0
  51. package/dist/components/DatePicker/composables/useWeekendDays.d.ts +11 -0
  52. package/dist/components/DatePicker/constants/messages.d.ts +29 -0
  53. package/dist/components/DatePicker/types.d.ts +13 -0
  54. package/dist/components/DialogBox/AccessibiliteItems.d.ts +1 -1
  55. package/dist/components/DownloadBtn/AccessibiliteItems.d.ts +1 -1
  56. package/dist/components/ErrorPage/AccessibiliteItems.d.ts +1 -1
  57. package/dist/components/ExternalLinks/AccessibiliteItems.d.ts +1 -1
  58. package/dist/components/FileList/AccessibiliteItems.d.ts +1 -1
  59. package/dist/components/FilePreview/AccessibiliteItems.d.ts +1 -1
  60. package/dist/components/FileUpload/AccessibiliteItems.d.ts +1 -1
  61. package/dist/components/FilterInline/AccessibiliteItems.d.ts +1 -1
  62. package/dist/components/FilterSideBar/AccessibiliteItems.d.ts +1 -1
  63. package/dist/components/FilterSideBar/FilterSideBar.d.ts +395 -1
  64. package/dist/components/FooterBar/AccessibiliteItems.d.ts +1 -1
  65. package/dist/components/FranceConnectBtn/AccessibiliteItems.d.ts +1 -1
  66. package/dist/components/HeaderBar/AccessibiliteItems.d.ts +1 -1
  67. package/dist/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +1 -1
  68. package/dist/components/HeaderLoading/AccessibiliteItems.d.ts +1 -1
  69. package/dist/components/HeaderToolbar/AccessibiliteItems.d.ts +1 -1
  70. package/dist/components/LangBtn/AccessibiliteItems.d.ts +1 -1
  71. package/dist/components/Logo/AccessibiliteItems.d.ts +1 -1
  72. package/dist/components/LogoBrandSection/AccessibiliteItems.d.ts +1 -1
  73. package/dist/components/MaintenancePage/AccessibiliteItems.d.ts +1 -1
  74. package/dist/components/NirField/AccessibiliteItems.d.ts +1 -1
  75. package/dist/components/NirField/NirField.d.ts +7 -3
  76. package/dist/components/NirField/nirValidation.d.ts +1 -1
  77. package/dist/components/NotFoundPage/AccessibiliteItems.d.ts +1 -1
  78. package/dist/components/NotificationBar/AccessibiliteItems.d.ts +1 -1
  79. package/dist/components/PageContainer/AccessibiliteItems.d.ts +1 -1
  80. package/dist/components/PaginatedTable/AccessibiliteItems.d.ts +1 -1
  81. package/dist/components/PasswordField/AccessibiliteItems.d.ts +1 -1
  82. package/dist/components/PasswordField/PasswordField.d.ts +2 -0
  83. package/dist/components/PeriodField/AccessibiliteItems.d.ts +1 -1
  84. package/dist/components/PeriodField/PeriodField.d.ts +219 -41
  85. package/dist/components/PhoneField/AccessibiliteItems.d.ts +1 -1
  86. package/dist/components/PhoneField/PhoneField.d.ts +2 -2
  87. package/dist/components/RangeField/AccessibiliteItems.d.ts +1 -1
  88. package/dist/components/RangeField/RangeField.d.ts +2 -0
  89. package/dist/components/RatingPicker/AccessibiliteItems.d.ts +1 -1
  90. package/dist/components/SearchListField/AccessibiliteItems.d.ts +1 -1
  91. package/dist/components/SearchListField/SearchListField.d.ts +9 -0
  92. package/dist/components/SelectBtnField/AccessibiliteItems.d.ts +1 -1
  93. package/dist/components/SkipLink/AccessibiliteItems.d.ts +1 -1
  94. package/dist/components/SocialMediaLinks/AccessibiliteItems.d.ts +1 -1
  95. package/dist/components/SubHeader/AccessibiliteItems.d.ts +1 -1
  96. package/dist/components/SyAlert/AccessibiliteItems.d.ts +1 -1
  97. package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
  98. package/dist/components/TableToolbar/AccessibiliteItems.d.ts +1 -1
  99. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +652 -0
  100. package/dist/components/Tables/SyTable/SyTable.d.ts +671 -0
  101. package/dist/components/Tables/common/SyTableFilter.d.ts +126 -0
  102. package/dist/components/Tables/common/SyTablePagination.d.ts +1636 -0
  103. package/dist/components/Tables/common/TableHeader.d.ts +15 -0
  104. package/dist/components/Tables/common/constants/StateEnum.d.ts +6 -0
  105. package/dist/components/Tables/common/filters/DateFilter.d.ts +121 -0
  106. package/dist/components/Tables/common/filters/NumberFilter.d.ts +132 -0
  107. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +135 -0
  108. package/dist/components/Tables/common/filters/SelectFilter.d.ts +120 -0
  109. package/dist/components/Tables/common/filters/TextFilter.d.ts +132 -0
  110. package/dist/components/Tables/common/filters/getFilterComponent.d.ts +1 -0
  111. package/dist/components/Tables/common/filters/locales.d.ts +4 -0
  112. package/dist/components/Tables/common/filters/logics/date.d.ts +1 -0
  113. package/dist/components/Tables/common/filters/logics/number.d.ts +1 -0
  114. package/dist/components/Tables/common/filters/logics/period.d.ts +1 -0
  115. package/dist/components/Tables/common/filters/logics/select.d.ts +1 -0
  116. package/dist/components/Tables/common/filters/logics/text.d.ts +1 -0
  117. package/dist/components/Tables/common/formatters.d.ts +17 -0
  118. package/dist/components/Tables/common/locales.d.ts +28 -0
  119. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +267 -0
  120. package/dist/components/Tables/common/organizeColumns/sortHeaders.d.ts +2 -0
  121. package/dist/components/Tables/common/tableAccessibilityUtils.d.ts +8 -0
  122. package/dist/components/Tables/common/tableFilterUtils.d.ts +3 -0
  123. package/dist/components/Tables/common/tableStorageUtils.d.ts +69 -0
  124. package/dist/components/Tables/common/tableUtils.d.ts +79 -0
  125. package/dist/components/Tables/common/types.d.ts +91 -0
  126. package/dist/components/Tables/common/usePagination.d.ts +22 -0
  127. package/dist/components/Tables/common/useTableCheckbox.d.ts +20 -0
  128. package/dist/components/Tables/common/useTableFilter.d.ts +9 -0
  129. package/dist/components/Tables/common/useTableHeaders.d.ts +76 -0
  130. package/dist/components/Tables/common/useTableItems.d.ts +24 -0
  131. package/dist/components/Tables/common/useTableOptions.d.ts +18 -0
  132. package/dist/components/Tables/index.d.ts +2 -0
  133. package/dist/components/ToolbarContainer/ToolbarContainer.d.ts +11 -0
  134. package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +1 -1
  135. package/dist/components/UserMenuBtn/AccessibiliteItems.d.ts +1 -1
  136. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +9 -2
  137. package/dist/components/index.d.ts +9 -5
  138. package/dist/design-system-v3.js +102 -11944
  139. package/dist/design-system-v3.umd.cjs +22 -4
  140. package/dist/designTokens/index.d.ts +3 -1
  141. package/dist/designTokens/tokens/cnam/cnamFonts.d.ts +140 -0
  142. package/dist/designTokens/tokens/pa/paFonts.d.ts +140 -0
  143. package/dist/designTokens/utils/createFontVariables.d.ts +39 -0
  144. package/dist/designTokens/utils/index.d.ts +2 -1
  145. package/dist/main-Cx8qG7YR.js +16344 -0
  146. package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +14 -2
  147. package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +8 -0
  148. package/dist/stories/DesignTokens/TypographyDisplay.d.ts +28 -0
  149. package/dist/stories/DesignTokens/vue-shims.d.ts +6 -0
  150. package/dist/style.css +1 -1
  151. package/dist/utils/rules/isRequired/index.d.ts +1 -1
  152. package/dist/vite-env.d.ts +12 -0
  153. package/package.json +3 -3
  154. package/src/assets/_spacers.scss +37 -1
  155. package/src/assets/_typography.scss +158 -0
  156. package/src/assets/settings.scss +7 -0
  157. package/src/common/constants/ExpertiseLevelEnum.ts +7 -0
  158. package/src/common/imgs/accessibility-svgrepo-com.svg +4 -0
  159. package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +249 -0
  160. package/src/components/Accordion/Accordion.vue +48 -76
  161. package/src/components/Accordion/composables/__tests__/useAccordionGroupCommunication.spec.ts +146 -0
  162. package/src/components/Accordion/composables/__tests__/useAccordionKeyboardNavigation.spec.ts +209 -0
  163. package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +144 -0
  164. package/src/components/Accordion/composables/useAccordionGroupCommunication.ts +52 -0
  165. package/src/components/Accordion/composables/useAccordionKeyboardNavigation.ts +111 -0
  166. package/src/components/Accordion/composables/useAccordionState.ts +59 -0
  167. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +3 -0
  168. package/src/components/BackBtn/AccessibiliteItems.ts +1 -1
  169. package/src/components/BackToTopBtn/AccessibiliteItems.ts +1 -1
  170. package/src/components/ChipList/AccessibiliteItems.ts +1 -1
  171. package/src/components/CollapsibleList/AccessibiliteItems.ts +1 -1
  172. package/src/components/ContextualMenu/AccessibiliteItems.ts +1 -1
  173. package/src/components/CookieBanner/AccessibiliteItems.ts +1 -1
  174. package/src/components/CopyBtn/AccessibiliteItems.ts +1 -1
  175. package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +1 -1
  176. package/src/components/Customs/SyCheckbox/Accessibilite.mdx +303 -0
  177. package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +50 -0
  178. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +630 -0
  179. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +326 -0
  180. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +201 -0
  181. package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +1 -1
  182. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +1 -0
  183. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +8 -1
  184. package/src/components/Customs/SySelect/AccessibiliteItems.ts +1 -1
  185. package/src/components/Customs/SySelect/SySelect.stories.ts +160 -0
  186. package/src/components/Customs/SySelect/SySelect.vue +292 -39
  187. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +234 -2
  188. package/src/components/Customs/SyTextField/AccessibiliteItems.ts +1 -1
  189. package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -2
  190. package/src/components/Customs/SyTextField/SyTextField.vue +19 -8
  191. package/src/components/DataList/AccessibiliteItems.ts +1 -1
  192. package/src/components/DataListGroup/AccessibiliteItems.ts +1 -1
  193. package/src/components/DatePicker/AccessibiliteItems.ts +1 -1
  194. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +212 -0
  195. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1307 -0
  196. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +769 -204
  197. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +161 -0
  198. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +943 -0
  199. package/src/components/DatePicker/DatePicker/DatePicker.mdx +176 -0
  200. package/src/components/DatePicker/{DatePicker.stories.ts → DatePicker/DatePicker.stories.ts} +356 -519
  201. package/src/components/DatePicker/{DatePicker.vue → DatePicker/DatePicker.vue} +435 -89
  202. package/src/components/DatePicker/DatePicker/tests/DatePicker.events.spec.ts +189 -0
  203. package/src/components/DatePicker/{tests → DatePicker/tests}/DatePicker.spec.ts +0 -14
  204. package/src/components/DatePicker/DatePickerOverview.mdx +227 -0
  205. package/src/components/DatePicker/{DatePickerValidation.mdx → DatePickerValidationExample/DatePickerValidation.mdx} +3 -3
  206. package/src/components/DatePicker/{DatePickerValidation.stories.ts → DatePickerValidationExample/DatePickerValidation.stories.ts} +2 -2
  207. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +320 -0
  208. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +148 -0
  209. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +278 -0
  210. package/src/components/DatePicker/{tests → DateTextInput}/DateTextInput.spec.ts +10 -7
  211. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +1111 -0
  212. package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +64 -0
  213. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +782 -0
  214. package/src/components/DatePicker/composables/index.ts +24 -0
  215. package/src/components/DatePicker/composables/tests/useDateAutoClamp.spec.ts +190 -0
  216. package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +165 -0
  217. package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +359 -0
  218. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +160 -0
  219. package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +339 -0
  220. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +277 -0
  221. package/src/components/DatePicker/composables/tests/useDateRangeValidation.spec.ts +107 -0
  222. package/src/components/DatePicker/composables/tests/useDateSelection.spec.ts +171 -0
  223. package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +245 -0
  224. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +98 -0
  225. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +130 -0
  226. package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +456 -0
  227. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +233 -0
  228. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +125 -0
  229. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +97 -0
  230. package/src/components/DatePicker/composables/tests/useWeekendDays.spec.ts +28 -0
  231. package/src/components/DatePicker/composables/useAsteriskDisplay.ts +31 -0
  232. package/src/components/DatePicker/composables/useDateAutoClamp.ts +136 -0
  233. package/src/components/DatePicker/composables/useDateFormatValidation.ts +95 -0
  234. package/src/components/DatePicker/composables/useDateInputEditing.ts +326 -0
  235. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +61 -0
  236. package/src/components/DatePicker/composables/useDatePickerVisibility.ts +146 -0
  237. package/src/components/DatePicker/composables/useDateRangeInput.ts +378 -0
  238. package/src/components/DatePicker/composables/useDateRangeValidation.ts +48 -0
  239. package/src/components/DatePicker/composables/useDateSelection.ts +121 -0
  240. package/src/components/DatePicker/composables/useDateValidation.ts +225 -0
  241. package/src/components/DatePicker/composables/useDisplayedDateString.ts +70 -0
  242. package/src/components/DatePicker/composables/useIconState.ts +53 -0
  243. package/src/components/DatePicker/composables/useInputBlurHandler.ts +165 -0
  244. package/src/components/DatePicker/composables/useInputHandler.ts +436 -0
  245. package/src/components/DatePicker/composables/useManualDateValidation.ts +161 -0
  246. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +187 -0
  247. package/src/components/DatePicker/composables/useTodayButton.ts +43 -0
  248. package/src/components/DatePicker/composables/useWeekendDays.ts +21 -0
  249. package/src/components/DatePicker/constants/messages.ts +50 -0
  250. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
  251. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
  252. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +172 -0
  253. package/src/components/DatePicker/types.ts +15 -0
  254. package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +10 -0
  255. package/src/components/DialogBox/AccessibiliteItems.ts +1 -1
  256. package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -1
  257. package/src/components/ErrorPage/Accessibilite.stories.ts +8 -0
  258. package/src/components/ErrorPage/AccessibiliteItems.ts +1 -1
  259. package/src/components/ErrorPage/ErrorPage.vue +12 -6
  260. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +4 -4
  261. package/src/components/ExternalLinks/AccessibiliteItems.ts +1 -1
  262. package/src/components/FileList/AccessibiliteItems.ts +1 -1
  263. package/src/components/FilePreview/AccessibiliteItems.ts +1 -1
  264. package/src/components/FileUpload/AccessibiliteItems.ts +1 -1
  265. package/src/components/FilterInline/AccessibiliteItems.ts +1 -1
  266. package/src/components/FilterSideBar/AccessibiliteItems.ts +1 -1
  267. package/src/components/FilterSideBar/FilterSideBar.vue +108 -90
  268. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +27 -0
  269. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +114 -109
  270. package/src/components/FooterBar/AccessibiliteItems.ts +1 -1
  271. package/src/components/FooterBar/FooterBar.vue +2 -1
  272. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +1 -1
  273. package/src/components/HeaderBar/AccessibiliteItems.ts +1 -1
  274. package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +1 -1
  275. package/src/components/HeaderLoading/AccessibiliteItems.ts +1 -1
  276. package/src/components/HeaderToolbar/AccessibiliteItems.ts +1 -1
  277. package/src/components/LangBtn/AccessibiliteItems.ts +1 -1
  278. package/src/components/Logo/Accessibilite.stories.ts +4 -0
  279. package/src/components/Logo/AccessibiliteItems.ts +1 -1
  280. package/src/components/LogoBrandSection/AccessibiliteItems.ts +1 -1
  281. package/src/components/MaintenancePage/AccessibiliteItems.ts +1 -1
  282. package/src/components/NirField/AccessibiliteItems.ts +1 -1
  283. package/src/components/NirField/NirField.mdx +22 -9
  284. package/src/components/NirField/NirField.stories.ts +26 -2
  285. package/src/components/NirField/NirField.vue +209 -22
  286. package/src/components/NirField/nirValidation.ts +17 -3
  287. package/src/components/NirField/tests/NirField.spec.ts +2 -2
  288. package/src/components/NotFoundPage/Accessibilite.stories.ts +8 -0
  289. package/src/components/NotFoundPage/AccessibiliteItems.ts +1 -1
  290. package/src/components/NotFoundPage/NotFoundPage.vue +2 -1
  291. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +8 -6
  292. package/src/components/NotificationBar/AccessibiliteItems.ts +1 -1
  293. package/src/components/PageContainer/AccessibiliteItems.ts +1 -1
  294. package/src/components/PaginatedTable/AccessibiliteItems.ts +1 -1
  295. package/src/components/PaginatedTable/PaginatedTable.mdx +2 -0
  296. package/src/components/PaginatedTable/PaginatedTable.stories.ts +19 -0
  297. package/src/components/PaginatedTable/PaginatedTable.vue +51 -13
  298. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -2
  299. package/src/components/PasswordField/AccessibiliteItems.ts +1 -1
  300. package/src/components/PasswordField/PasswordField.stories.ts +4 -0
  301. package/src/components/PasswordField/PasswordField.vue +3 -0
  302. package/src/components/PeriodField/AccessibiliteItems.ts +1 -1
  303. package/src/components/PeriodField/PeriodField.vue +15 -1
  304. package/src/components/PhoneField/AccessibiliteItems.ts +1 -1
  305. package/src/components/PhoneField/PhoneField.stories.ts +15 -15
  306. package/src/components/PhoneField/PhoneField.vue +1 -1
  307. package/src/components/RangeField/AccessibiliteItems.ts +1 -1
  308. package/src/components/RangeField/RangeField.stories.ts +9 -0
  309. package/src/components/RangeField/RangeField.vue +4 -0
  310. package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +12 -0
  311. package/src/components/RatingPicker/AccessibiliteItems.ts +1 -1
  312. package/src/components/SearchListField/AccessibiliteItems.ts +1 -1
  313. package/src/components/SearchListField/SearchListField.vue +5 -0
  314. package/src/components/SelectBtnField/AccessibiliteItems.ts +1 -1
  315. package/src/components/SkipLink/AccessibiliteItems.ts +1 -1
  316. package/src/components/SocialMediaLinks/AccessibiliteItems.ts +1 -1
  317. package/src/components/SubHeader/AccessibiliteItems.ts +1 -1
  318. package/src/components/SyAlert/AccessibiliteItems.ts +1 -1
  319. package/src/components/SyTextArea/SyTextArea.vue +3 -0
  320. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -1
  321. package/src/components/TableToolbar/AccessibiliteItems.ts +1 -1
  322. package/src/components/TableToolbar/TableToolbar.stories.ts +110 -56
  323. package/src/components/Tables/SyServerTable/FilterRules.stories.ts +700 -0
  324. package/src/components/Tables/SyServerTable/SyServerTable.mdx +170 -0
  325. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +4354 -0
  326. package/src/components/Tables/SyServerTable/SyServerTable.vue +391 -0
  327. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +702 -0
  328. package/src/components/Tables/SyTable/FilterRules.stories.ts +418 -0
  329. package/src/components/Tables/SyTable/SyTable.mdx +139 -0
  330. package/src/components/Tables/SyTable/SyTable.stories.ts +2754 -0
  331. package/src/components/Tables/SyTable/SyTable.vue +397 -0
  332. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +707 -0
  333. package/src/components/Tables/common/SyTableFilter.vue +289 -0
  334. package/src/components/Tables/common/SyTablePagination.vue +375 -0
  335. package/src/components/Tables/common/TableHeader.vue +205 -0
  336. package/src/components/Tables/common/constants/StateEnum.ts +6 -0
  337. package/src/components/Tables/common/filters/DateFilter.vue +140 -0
  338. package/src/components/Tables/common/filters/NumberFilter.vue +234 -0
  339. package/src/components/Tables/common/filters/PeriodFilter.vue +147 -0
  340. package/src/components/Tables/common/filters/SelectFilter.vue +235 -0
  341. package/src/components/Tables/common/filters/TextFilter.vue +191 -0
  342. package/src/components/Tables/common/filters/getFilterComponent.ts +54 -0
  343. package/src/components/Tables/common/filters/locales.ts +4 -0
  344. package/src/components/Tables/common/filters/logics/date.ts +12 -0
  345. package/src/components/Tables/common/filters/logics/number.ts +48 -0
  346. package/src/components/Tables/common/filters/logics/period.ts +25 -0
  347. package/src/components/Tables/common/filters/logics/select.ts +27 -0
  348. package/src/components/Tables/common/filters/logics/tests/TextFilterLogic.spec.ts +177 -0
  349. package/src/components/Tables/common/filters/logics/text.ts +62 -0
  350. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +187 -0
  351. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +280 -0
  352. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +192 -0
  353. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +219 -0
  354. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +260 -0
  355. package/src/components/Tables/common/formatters.ts +72 -0
  356. package/src/components/Tables/common/locales.ts +31 -0
  357. package/src/components/Tables/common/organizeColumns/OrganizeColumns.vue +269 -0
  358. package/src/components/Tables/common/organizeColumns/sortHeaders.ts +9 -0
  359. package/src/components/Tables/common/tableAccessibilityUtils.ts +61 -0
  360. package/src/components/Tables/common/tableFilterUtils.ts +75 -0
  361. package/src/components/Tables/common/tableStorageUtils.ts +127 -0
  362. package/src/components/Tables/common/tableStyles.scss +80 -0
  363. package/src/components/Tables/common/tableUtils.ts +102 -0
  364. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +312 -0
  365. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +170 -0
  366. package/src/components/Tables/common/tests/filterByRange.spec.ts +215 -0
  367. package/src/components/Tables/common/tests/resize.spec.ts +161 -0
  368. package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +92 -0
  369. package/src/components/Tables/common/tests/tableUtils.spec.ts +228 -0
  370. package/src/components/Tables/common/types.ts +92 -0
  371. package/src/components/Tables/common/usePagination.ts +83 -0
  372. package/src/components/Tables/common/useTableCheckbox.ts +58 -0
  373. package/src/components/Tables/common/useTableFilter.ts +19 -0
  374. package/src/components/Tables/common/useTableHeaders.ts +88 -0
  375. package/src/components/Tables/common/useTableItems.ts +87 -0
  376. package/src/components/Tables/common/useTableOptions.ts +93 -0
  377. package/src/components/Tables/index.ts +3 -0
  378. package/src/components/ToolbarContainer/ToolbarContainer.mdx +16 -0
  379. package/src/components/ToolbarContainer/ToolbarContainer.stories.ts +675 -0
  380. package/src/components/ToolbarContainer/ToolbarContainer.vue +128 -0
  381. package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +156 -0
  382. package/src/components/UploadWorkflow/AccessibiliteItems.ts +1 -1
  383. package/src/components/UserMenuBtn/AccessibiliteItems.ts +1 -1
  384. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +74 -0
  385. package/src/components/UserMenuBtn/UserMenuBtn.vue +19 -17
  386. package/src/components/index.ts +9 -5
  387. package/src/composables/date/useDateFormatDayjs.ts +8 -3
  388. package/src/composables/date/useDateInitializationDayjs.ts +28 -36
  389. package/src/composables/rules/useFieldValidation.ts +1 -2
  390. package/src/designTokens/index.ts +4 -0
  391. package/src/designTokens/tokens/cnam/cnamFonts.ts +140 -0
  392. package/src/designTokens/tokens/pa/paFonts.ts +140 -0
  393. package/src/designTokens/utils/createFontVariables.ts +143 -0
  394. package/src/designTokens/utils/index.ts +2 -1
  395. package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +293 -20
  396. package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +448 -54
  397. package/src/stories/Accessibilite/Audit/RGAA.mdx +231 -23
  398. package/src/stories/Accessibilite/Avancement/Avancement.mdx +591 -7
  399. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +139 -38
  400. package/src/stories/Accessibilite/Introduction.mdx +258 -18
  401. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +221 -31
  402. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +204 -22
  403. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +537 -24
  404. package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +577 -70
  405. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +382 -31
  406. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +419 -81
  407. package/src/stories/Accessibilite/Vuetify/Vuetify.mdx +132 -6
  408. package/src/stories/Accessibilite/Vuetify/Vuetify.stories.ts +370 -146
  409. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +35 -57
  410. package/src/stories/Demarrer/Accueil.stories.ts +32 -8
  411. package/src/stories/DesignTokens/StylesTypographiques.mdx +10 -9
  412. package/src/stories/DesignTokens/StylesTypographiques.stories.new.ts +397 -0
  413. package/src/stories/DesignTokens/StylesTypographiques.stories.ts +397 -0
  414. package/src/stories/DesignTokens/TypographyDisplay.vue +155 -0
  415. package/src/stories/DesignTokens/vue-shims.d.ts +6 -0
  416. package/src/stories/GuideDuDev/LesBreackingChanges.mdx +0 -2
  417. package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
  418. package/src/stories/GuideDuDev/MigrationDepuisVue2.mdx +1 -1
  419. package/src/stories/GuideDuDev/PortailAgent.mdx +10 -0
  420. package/src/stories/GuideDuDev/PortailAgent.stories.ts +506 -0
  421. package/src/stories/GuideDuDev/Theme.mdx +41 -0
  422. package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +1 -1
  423. package/src/utils/rules/isRequired/index.ts +2 -1
  424. package/src/vite-env.d.ts +12 -0
  425. package/src/vuetifyConfig.ts +10 -3
  426. package/dist/components/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  427. package/dist/components/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -4
  428. package/dist/components/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -4
  429. package/dist/components/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  430. package/dist/components/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -4
  431. package/dist/components/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  432. package/dist/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  433. package/dist/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  434. package/dist/components/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  435. package/dist/components/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -4
  436. package/dist/components/DataList/constants/ExpertiseLevelEnum.d.ts +0 -4
  437. package/dist/components/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -4
  438. package/dist/components/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  439. package/dist/components/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -4
  440. package/dist/components/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  441. package/dist/components/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  442. package/dist/components/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  443. package/dist/components/FileList/constants/ExpertiseLevelEnum.d.ts +0 -4
  444. package/dist/components/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -4
  445. package/dist/components/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -4
  446. package/dist/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +0 -4
  447. package/dist/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  448. package/dist/components/FooterBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  449. package/dist/components/FranceConnectBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  450. package/dist/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  451. package/dist/components/HeaderBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  452. package/dist/components/HeaderLoading/constants/ExpertiseLevelEnum.d.ts +0 -4
  453. package/dist/components/HeaderToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  454. package/dist/components/LangBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  455. package/dist/components/Logo/constants/ExpertiseLevelEnum.d.ts +0 -4
  456. package/dist/components/LogoBrandSection/constants/ExpertiseLevelEnum.d.ts +0 -4
  457. package/dist/components/MaintenancePage/constants/ExpertiseLevelEnum.d.ts +0 -4
  458. package/dist/components/NirField/constants/ExpertiseLevelEnum.d.ts +0 -4
  459. package/dist/components/NotFoundPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  460. package/dist/components/NotificationBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  461. package/dist/components/PageContainer/constants/ExpertiseLevelEnum.d.ts +0 -4
  462. package/dist/components/PaginatedTable/constants/ExpertiseLevelEnum.d.ts +0 -4
  463. package/dist/components/PasswordField/constants/ExpertiseLevelEnum.d.ts +0 -4
  464. package/dist/components/PeriodField/constants/ExpertiseLevelEnum.d.ts +0 -4
  465. package/dist/components/PhoneField/constants/ExpertiseLevelEnum.d.ts +0 -4
  466. package/dist/components/RangeField/constants/ExpertiseLevelEnum.d.ts +0 -4
  467. package/dist/components/RatingPicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  468. package/dist/components/SearchListField/constants/ExpertiseLevelEnum.d.ts +0 -4
  469. package/dist/components/SelectBtnField/constants/ExpertiseLevelEnum.d.ts +0 -4
  470. package/dist/components/SkipLink/constants/ExpertiseLevelEnum.d.ts +0 -4
  471. package/dist/components/SocialMediaLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  472. package/dist/components/SubHeader/constants/ExpertiseLevelEnum.d.ts +0 -4
  473. package/dist/components/SyAlert/constants/ExpertiseLevelEnum.d.ts +0 -4
  474. package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  475. package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +0 -4
  476. package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  477. package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +0 -4
  478. package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +0 -4
  479. package/src/components/ChipList/constants/ExpertiseLevelEnum.ts +0 -4
  480. package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +0 -4
  481. package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +0 -4
  482. package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +0 -4
  483. package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +0 -4
  484. package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +0 -4
  485. package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +0 -4
  486. package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +0 -4
  487. package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +0 -4
  488. package/src/components/DataList/constants/ExpertiseLevelEnum.ts +0 -4
  489. package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +0 -4
  490. package/src/components/DatePicker/DatePicker.mdx +0 -222
  491. package/src/components/DatePicker/DateTextInput.vue +0 -504
  492. package/src/components/DatePicker/constants/ExpertiseLevelEnum.ts +0 -4
  493. package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +0 -4
  494. package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +0 -4
  495. package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +0 -4
  496. package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +0 -4
  497. package/src/components/FileList/constants/ExpertiseLevelEnum.ts +0 -4
  498. package/src/components/FilePreview/constants/ExpertiseLevelEnum.ts +0 -4
  499. package/src/components/FileUpload/constants/ExpertiseLevelEnum.ts +0 -4
  500. package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +0 -4
  501. package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +0 -4
  502. package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +0 -4
  503. package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +0 -4
  504. package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +0 -4
  505. package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +0 -4
  506. package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +0 -4
  507. package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  508. package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +0 -4
  509. package/src/components/Logo/constants/ExpertiseLevelEnum.ts +0 -4
  510. package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +0 -4
  511. package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +0 -4
  512. package/src/components/NirField/constants/ExpertiseLevelEnum.ts +0 -4
  513. package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +0 -4
  514. package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +0 -4
  515. package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +0 -4
  516. package/src/components/PaginatedTable/constants/ExpertiseLevelEnum.ts +0 -4
  517. package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +0 -886
  518. package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +0 -4
  519. package/src/components/PeriodField/constants/ExpertiseLevelEnum.ts +0 -4
  520. package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +0 -4
  521. package/src/components/RangeField/constants/ExpertiseLevelEnum.ts +0 -4
  522. package/src/components/RatingPicker/constants/ExpertiseLevelEnum.ts +0 -4
  523. package/src/components/SearchListField/constants/ExpertiseLevelEnum.ts +0 -4
  524. package/src/components/SelectBtnField/constants/ExpertiseLevelEnum.ts +0 -4
  525. package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +0 -4
  526. package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +0 -4
  527. package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +0 -4
  528. package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +0 -4
  529. package/src/components/TableToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  530. package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +0 -4
  531. package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +0 -4
  532. package/src/stories/DesignTokens/ThemePA.mdx +0 -35
  533. /package/src/components/DatePicker/{examples → playground}/DatePickerHolidayRule.vue +0 -0
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
  {
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
  {
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
 
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
  {
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
 
@@ -216,6 +216,10 @@ export const Legende: StoryObj = {
216
216
  </div>
217
217
  </div>
218
218
  </div>
219
+ <div class="mt-4">
220
+ <p>Rapport d’audit manuel : <a href="/audits/Logo.xlsx" style="color:#0C41BD;">Voir le rapport</a></p>
221
+ <p style="color: grey; font-size: 14px">Aucune correction nécessaire.</p>
222
+ </div>
219
223
  `,
220
224
  }
221
225
  },
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
  {
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
  {
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
 
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
 
@@ -65,15 +65,28 @@ Le composant `NirField` est utilisé pour afficher un champ de saisie de numéro
65
65
  Le composant `NirField` utilise des règles de validation par défaut pour le numéro NIR et la Clé. Voici les règles de validation par défaut :
66
66
 
67
67
  #### Pour le numéro NIR :
68
- - Le numéro NIR doit être composé de 13 chiffres.
69
- - Le numéro NIR doit respecter le format suivant :
70
- - 1 chiffre pour le sexe (1-4, 7, 8)
71
- - 2 chiffres pour l'année de naissance
72
- - 2 chiffres pour le mois de naissance (01-12, 20-42)
73
- - 2 chiffres pour le département de naissance (01-99, 2A, 2B, 96, 97X, 98X)
74
- - 3 chiffres pour la commune de naissance
75
- - 3 chiffres pour le rang d'inscription
76
- - Le numéro NIR doit passer la validation de la clé de contrôle (2 chiffres).
68
+
69
+ - Props: `nirType` à simple (par defaut) d'après le [repo](https://github.com/assurance-maladie-digital/nir-validation) :
70
+
71
+ - Le 1er chiffre (1er composant) permet d'identifier le sexe de l'assuré (1 pour un homme et 2 pour une femme) ;
72
+ - Le second composant est un groupe de deux chiffres permettant de distinguer l'année de naissance (exemple 77 pour 1977) ;
73
+ - Le 3ème composant est un groupe de deux chiffres correspondant au mois de naissance (de 01 à 12) mais peut aussi prendre d’autres valeurs (de 20 à 99) qui indiquent que le mois de naissance de l’individu n’est pas connu (cela peut arriver pour des personnes nées à l’étranger) (https://www.insee.fr/fr/information/6665190?sommaire=6665196#titre-bloc-encadre4) ;
74
+ - Le 4ème correspond au département de naissance selon le code géographique officiel (de 01 à 95 et 97 pour les DOM et COM 976, 98 pour les TOM et COM et enfin 99 pour les nés hors de France) ;
75
+ - Le 5ème est un groupe de 3 chiffres permettant d'identifier la commune de naissance, selon le code géographique officiel édité par l'INSEE (https://www.insee.fr/fr/information/5057840) ;
76
+ - Le 6ème est un groupe de 3 chiffres, correspondant au rang d'inscription sur la liste du répertoire régional de l'INSEE ;
77
+ - Le 7ème composant optionnel est un groupe de 2 chiffres appelé la clé de contrôle du NIR.
78
+
79
+ - Props: `nirType` à complexe : d'après la page [Wikipedia](https://fr.wikipedia.org/wiki/Num%C3%A9ro_de_s%C3%A9curit%C3%A9_sociale_en_France)
80
+
81
+ - Le numéro NIR doit être composé de 13 chiffres.
82
+ - Le numéro NIR doit respecter le format suivant :
83
+ - 1 chiffre pour le sexe (1-4, 7, 8)
84
+ - 2 chiffres pour l'année de naissance
85
+ - 2 chiffres pour le mois de naissance (01-12, 20-42)
86
+ - 2 chiffres pour le département de naissance (01-99, 2A, 2B, 96, 97X, 98X)
87
+ - 3 chiffres pour la commune de naissance
88
+ - 3 chiffres pour le rang d'inscription
89
+ - Le numéro NIR doit passer la validation de la clé de contrôle (2 chiffres).
77
90
 
78
91
  #### Pour la Clé :
79
92
  - La clé doit être composée de 2 chiffres.
@@ -127,6 +127,20 @@ const meta: Meta<typeof NirField> = {
127
127
  },
128
128
  },
129
129
  },
130
+ nirType: {
131
+ description: 'Type de validation de NIR.',
132
+ control: 'select',
133
+ options: ['simple', 'complexe'],
134
+ default: 'simple',
135
+ table: {
136
+ type: {
137
+ summary: 'string',
138
+ },
139
+ defaultValue: {
140
+ summary: 'simple',
141
+ },
142
+ },
143
+ },
130
144
  showSuccessMessages: {
131
145
  description: 'Indique si les messages de succès sont affichés.',
132
146
  control: 'boolean',
@@ -326,6 +340,16 @@ const meta: Meta<typeof NirField> = {
326
340
  },
327
341
  },
328
342
  },
343
+ withoutFieldset: {
344
+ description: 'Indique si le champ NIR est affiché sans fieldset. (Par défaut, le champ NIR est affiché dans un fieldset si displayKey est true pour des raisons d\'accessibilité)',
345
+ control: 'boolean',
346
+ default: false,
347
+ table: {
348
+ type: {
349
+ summary: 'boolean',
350
+ },
351
+ },
352
+ },
329
353
  },
330
354
  } satisfies Meta<typeof NirField>
331
355
 
@@ -1133,7 +1157,7 @@ Cette story montre l'utilisation du NirField dans un formulaire avec validation.
1133
1157
  code: `<form @submit.prevent="onSubmit">
1134
1158
  <NirField
1135
1159
  v-model="value"
1136
- label="Numéro de sécurité sociale"
1160
+ label="NirField"
1137
1161
  required
1138
1162
  showSuccessMessages
1139
1163
  ref="nirField"
@@ -1194,7 +1218,7 @@ const onSubmit = async () => {
1194
1218
  <NirField
1195
1219
  v-model="value"
1196
1220
  v-bind="args"
1197
- label="Numéro de sécurité sociale"
1221
+ label="NirField"
1198
1222
  required
1199
1223
  showSuccessMessages
1200
1224
  ref="nirField"
@@ -40,9 +40,11 @@
40
40
  persistentHint?: boolean
41
41
  persistentPlaceholder?: boolean
42
42
  disableErrorHandling?: boolean
43
+ nirType?: 'simple' | 'complexe'
44
+ withoutFieldset?: boolean
43
45
  }>(), {
44
46
  modelValue: undefined,
45
- label: undefined,
47
+ label: 'NirField',
46
48
  numberLabel: 'Numéro de sécurité sociale',
47
49
  keyLabel: 'Clé',
48
50
  displayKey: true,
@@ -60,7 +62,7 @@
60
62
  customRulesPrecedence: false,
61
63
  showSuccessMessages: true,
62
64
  width: '100%',
63
- bgColor: undefined,
65
+ bgColor: 'white',
64
66
  disabled: false,
65
67
  density: 'default',
66
68
  hideDetails: false,
@@ -74,6 +76,8 @@
74
76
  persistentHint: false,
75
77
  persistentPlaceholder: false,
76
78
  disableErrorHandling: false,
79
+ nirType: 'simple',
80
+ withoutFieldset: false,
77
81
  })
78
82
 
79
83
  const emit = defineEmits(['update:modelValue'])
@@ -89,8 +93,8 @@
89
93
  const numberField = ref<InstanceType<typeof SyTextField> | null>(null)
90
94
 
91
95
  // Valeurs non masquées
92
- const unmaskedNumberValue = computed(() => numberValue.value.replace(/\s/g, ''))
93
- const unmaskedKeyValue = computed(() => keyValue.value.replace(/\s/g, ''))
96
+ const unmaskedNumberValue = computed(() => numberValue.value ? numberValue.value.replace(/\s/g, '') : '')
97
+ const unmaskedKeyValue = computed(() => keyValue.value ? keyValue.value.replace(/\s/g, '') : '')
94
98
 
95
99
  // Masques
96
100
  const numberMask = {
@@ -132,7 +136,7 @@
132
136
 
133
137
  // Watch sur la valeur non masquée du numéro pour gérer le focus automatique
134
138
  watch(unmaskedNumberValue, (newValue) => {
135
- if (newValue.length === 13 && props.displayKey) {
139
+ if (newValue && newValue.length === 13 && props.displayKey) {
136
140
  focusField(keyField)
137
141
  }
138
142
  })
@@ -146,7 +150,11 @@
146
150
  // Watch pour détecter la suppression des chiffres de la clé
147
151
  watch(keyValue, (newValue, oldValue) => {
148
152
  // Si l'ancienne valeur avait des chiffres et la nouvelle est vide ou ne contient que des espaces
149
- if (oldValue.trim() && !newValue.trim()) {
153
+ if (oldValue && newValue !== null && oldValue.trim() && !newValue.trim()) {
154
+ focusField(numberField)
155
+ }
156
+ else if (oldValue && newValue === null) {
157
+ // Cas où newValue est null (effacement avec clearable)
150
158
  focusField(numberField)
151
159
  }
152
160
  })
@@ -196,7 +204,7 @@
196
204
  if (value.length < 13) {
197
205
  return 'Le numéro de sécurité sociale est invalide.'
198
206
  }
199
- const result = checkNIR(value)
207
+ const result = checkNIR(value, props.nirType)
200
208
  return result === true ? true : 'Le numéro de sécurité sociale est invalide.'
201
209
  },
202
210
  message: 'Le numéro de sécurité sociale est invalide.',
@@ -247,8 +255,8 @@
247
255
  type: 'custom',
248
256
  options: {
249
257
  validate: validateKey,
250
- message: 'La clé du numéro de sécurité sociale est invalide.',
251
- successMessage: `Le champ ${props.keyLabel} est valide.`,
258
+ message: 'Le numéro de sécurité sociale est invalide.',
259
+ successMessage: 'Le numéro de sécurité sociale est valide.',
252
260
  fieldIdentifier: props.keyLabel,
253
261
  },
254
262
  })
@@ -296,8 +304,29 @@
296
304
  emit('update:modelValue', `${number}${key}`)
297
305
  }
298
306
 
307
+ // État pour suivre si une validation est en cours
308
+ const isValidating = ref(false)
309
+ const shouldValidateOnBlur = ref(false)
310
+
311
+ // Fonction utilitaire pour créer une fonction debounced
312
+ const createDebouncedFunction = <T extends (...args: unknown[]) => void>(fn: T, delay: number) => {
313
+ let timeout: number | undefined
314
+ return (...args: Parameters<T>) => {
315
+ window.clearTimeout(timeout)
316
+ timeout = window.setTimeout(() => fn(...args), delay)
317
+ }
318
+ }
319
+
299
320
  // Validation des champs
300
321
  const validateFields = async (onBlur = false) => {
322
+ // Éviter les validations redondantes
323
+ if (isValidating.value) {
324
+ shouldValidateOnBlur.value = shouldValidateOnBlur.value || onBlur
325
+ return true
326
+ }
327
+
328
+ isValidating.value = true
329
+
301
330
  // Valider le numéro
302
331
  const numberResult = numberValidation.validateField(
303
332
  unmaskedNumberValue.value,
@@ -318,7 +347,7 @@
318
347
  }
319
348
 
320
349
  // Si on est en mode blur et qu'il y a des erreurs, focus sur le premier champ en erreur
321
- if (onBlur) {
350
+ if (onBlur || shouldValidateOnBlur.value) {
322
351
  await nextTick()
323
352
  if (numberResult.hasError) {
324
353
  numberField.value?.$el.querySelector('input')?.focus()
@@ -326,8 +355,10 @@
326
355
  else if (keyResult.hasError) {
327
356
  keyField.value?.$el.querySelector('input')?.focus()
328
357
  }
358
+ shouldValidateOnBlur.value = false
329
359
  }
330
360
 
361
+ isValidating.value = false
331
362
  return !numberResult.hasError && !keyResult.hasError
332
363
  }
333
364
 
@@ -343,6 +374,32 @@
343
374
  const hasKeyWarning = computed(() => !hasKeyErrors.value && keyValidation.hasWarning.value)
344
375
  const hasKeySuccess = computed(() => !hasKeyErrors.value && !hasKeyWarning.value && keyValidation.hasSuccess.value)
345
376
 
377
+ // Propriétés calculées pour les attributs ARIA et les états d'erreur
378
+ const hasFieldErrors = computed(() => hasNumberErrors.value || hasKeyErrors.value)
379
+ const ariaRequired = computed(() => props.required ? 'true' : undefined)
380
+ const ariaInvalidNumber = computed(() => hasFieldErrors.value ? 'true' : undefined)
381
+ const ariaInvalidKey = computed(() => hasKeyErrors.value ? 'true' : undefined)
382
+
383
+ // Propriétés calculées pour les messages
384
+ const numberMessages = computed(() => {
385
+ if (hasNumberErrors.value) {
386
+ return numberValidation.errors.value
387
+ }
388
+ else if (hasNumberWarning.value) {
389
+ return numberValidation.warnings.value
390
+ }
391
+ else if (hasNumberSuccess.value && props.showSuccessMessages) {
392
+ return numberValidation.successes.value
393
+ }
394
+ return []
395
+ })
396
+
397
+ // Messages d'erreur combinés pour le champ numéro
398
+ const combinedErrorMessages = computed(() => [
399
+ ...numberValidation.errors.value,
400
+ ...keyValidation.errors.value,
401
+ ])
402
+
346
403
  const numberLabelWithAsterisk = computed(() => {
347
404
  return props.required && props.displayAsterisk ? `${props.numberLabel} *` : props.numberLabel
348
405
  })
@@ -351,14 +408,21 @@
351
408
  return props.required && props.displayAsterisk ? `${props.keyLabel} *` : props.keyLabel
352
409
  })
353
410
 
411
+ // Utilisation de debounce pour limiter les validations pendant la saisie
412
+ const debouncedValidate = createDebouncedFunction(() => {
413
+ validateFields(false)
414
+ }, 300) // 300ms de délai
415
+
354
416
  const handleNumberInput = () => {
355
417
  emitValue()
356
- validateFields()
418
+ // Utiliser la validation debounced pour la saisie
419
+ debouncedValidate()
357
420
  }
358
421
 
359
422
  const handleKeyInput = () => {
360
423
  emitValue()
361
- validateFields()
424
+ // Utiliser la validation debounced pour la saisie
425
+ debouncedValidate()
362
426
 
363
427
  // Si on supprime le contenu de la clé, on revient au champ NIR
364
428
  if (unmaskedKeyValue.value.length === 0) {
@@ -394,7 +458,100 @@
394
458
  </script>
395
459
 
396
460
  <template>
461
+ <fieldset
462
+ v-if="displayKey && !withoutFieldset"
463
+ class="nir-field nir-field--fieldset"
464
+ >
465
+ <legend v-if="label">
466
+ {{ label }}
467
+ </legend>
468
+ <div class="number-field-container">
469
+ <SyTextField
470
+ ref="numberField"
471
+ v-model="numberValue"
472
+ v-maska="numberMask"
473
+ :label="numberLabelWithAsterisk"
474
+ :variant-style="outlined ? 'outlined' : 'underlined'"
475
+ :prepend-icon="nirTooltip && nirTooltipPosition === 'prepend' ? 'info' : undefined"
476
+ :append-icon="nirTooltip && nirTooltipPosition === 'append' ? 'info' : undefined"
477
+ :prepend-tooltip="nirTooltip && nirTooltipPosition === 'prepend' ? nirTooltip : undefined"
478
+ :append-tooltip="nirTooltip && nirTooltipPosition === 'append' ? nirTooltip : undefined"
479
+ :max-errors="2"
480
+ :error-messages="[...new Set([...numberValidation.errors.value, ...keyValidation.errors.value])]"
481
+ :warning-messages="numberValidation.warnings.value"
482
+ :success-messages="numberValidation.successes.value"
483
+ :show-success-messages="showSuccessMessages"
484
+ :has-warning="hasNumberWarning"
485
+ :has-success="hasNumberSuccess"
486
+ :error="hasNumberErrors || hasKeyErrors"
487
+ :messages="hasNumberErrors || hasKeyErrors ? numberValidation.errors.value ?? keyValidation.errors.value : (hasNumberWarning ? numberValidation.warnings.value : (hasNumberSuccess && props.showSuccessMessages ? numberValidation.successes.value : []))"
488
+ :has-error="hasNumberErrors || hasKeyErrors"
489
+ :required="required"
490
+ :aria-required="ariaRequired"
491
+ :aria-invalid="ariaInvalidNumber"
492
+ :disabled="disabled"
493
+ :bg-color="bgColor"
494
+ :density="props.density"
495
+ :hide-details="props.hideDetails"
496
+ :hide-spin-buttons="props.hideSpinButtons"
497
+ :placeholder="props.placeholder"
498
+ :readonly="props.readonly"
499
+ :variant="props.variant"
500
+ :clearable="props.clearable"
501
+ :counter="props.counter"
502
+ :persistent-hint="props.persistentHint"
503
+ :persistent-placeholder="props.persistentPlaceholder"
504
+ :hint="props.hint || locales.numberHint"
505
+ class="number-field"
506
+ :display-asterisk="false"
507
+ @input="handleNumberInput"
508
+ @blur="handleNumberBlur"
509
+ />
510
+ </div>
511
+ <div
512
+ v-if="displayKey"
513
+ class="key-field-container"
514
+ >
515
+ <SyTextField
516
+ ref="keyField"
517
+ v-model="keyValue"
518
+ v-maska="keyMask"
519
+ :label="keyLabelWithAsterisk"
520
+ :variant-style="outlined ? 'outlined' : 'underlined'"
521
+ :prepend-icon="keyTooltip && keyTooltipPosition === 'prepend' ? 'info' : undefined"
522
+ :append-icon="keyTooltip && keyTooltipPosition === 'append' ? 'info' : undefined"
523
+ :prepend-tooltip="keyTooltip && keyTooltipPosition === 'prepend' ? keyTooltip : undefined"
524
+ :append-tooltip="keyTooltip && keyTooltipPosition === 'append' ? keyTooltip : undefined"
525
+ :error-messages="keyValidation.errors.value.length > 0 ? [''] : []"
526
+ :warning-messages="keyValidation.warnings.value"
527
+ :show-success-messages="false"
528
+ :has-warning="hasKeyWarning"
529
+ :has-success="hasKeySuccess"
530
+ :hint="props.hint || locales.keyHint"
531
+ :has-error="hasKeyErrors"
532
+ :disabled="disabled"
533
+ :bg-color="bgColor"
534
+ :density="props.density"
535
+ :hide-details="props.hideDetails"
536
+ :hide-spin-buttons="props.hideSpinButtons"
537
+ :placeholder="props.placeholder"
538
+ :readonly="props.readonly"
539
+ :variant="props.variant"
540
+ :clearable="props.clearable"
541
+ :counter="props.counter"
542
+ :persistent-hint="props.persistentHint"
543
+ :persistent-placeholder="props.persistentPlaceholder"
544
+ :aria-required="ariaRequired"
545
+ :aria-invalid="ariaInvalidKey"
546
+ class="key-field"
547
+ :display-asterisk="false"
548
+ @input="handleKeyInput"
549
+ @blur="handleKeyBlur"
550
+ />
551
+ </div>
552
+ </fieldset>
397
553
  <div
554
+ v-else
398
555
  class="nir-field"
399
556
  >
400
557
  <div class="number-field-container">
@@ -409,16 +566,18 @@
409
566
  :prepend-tooltip="nirTooltip && nirTooltipPosition === 'prepend' ? nirTooltip : undefined"
410
567
  :append-tooltip="nirTooltip && nirTooltipPosition === 'append' ? nirTooltip : undefined"
411
568
  :max-errors="2"
412
- :error-messages="[...numberValidation.errors.value, ...keyValidation.errors.value]"
569
+ :error-messages="combinedErrorMessages"
413
570
  :warning-messages="numberValidation.warnings.value"
414
571
  :success-messages="numberValidation.successes.value"
415
572
  :show-success-messages="showSuccessMessages"
416
573
  :has-warning="hasNumberWarning"
417
574
  :has-success="hasNumberSuccess"
418
- :error="hasNumberErrors"
419
- :messages="hasNumberErrors ? numberValidation.errors.value : (hasNumberWarning ? numberValidation.warnings.value : (hasNumberSuccess && props.showSuccessMessages ? numberValidation.successes.value : []))"
420
- :has-error="hasNumberErrors"
575
+ :error="hasNumberErrors || hasKeyErrors"
576
+ :messages="numberMessages"
577
+ :has-error="hasNumberErrors || hasKeyErrors"
421
578
  :required="required"
579
+ :aria-required="ariaRequired"
580
+ :aria-invalid="ariaInvalidNumber"
422
581
  :disabled="disabled"
423
582
  :bg-color="bgColor"
424
583
  :density="props.density"
@@ -454,12 +613,10 @@
454
613
  :append-tooltip="keyTooltip && keyTooltipPosition === 'append' ? keyTooltip : undefined"
455
614
  :error-messages="keyValidation.errors.value.length > 0 ? [''] : []"
456
615
  :warning-messages="keyValidation.warnings.value"
457
- :success-messages="keyValidation.successes.value"
458
- :show-success-messages="showSuccessMessages"
616
+ :show-success-messages="false"
459
617
  :has-warning="hasKeyWarning"
460
618
  :has-success="hasKeySuccess"
461
619
  :hint="props.hint || locales.keyHint"
462
- :messages="hasKeyErrors ? keyValidation.errors.value : (hasKeyWarning ? keyValidation.warnings.value : (hasKeySuccess && props.showSuccessMessages ? keyValidation.successes.value : []))"
463
620
  :has-error="hasKeyErrors"
464
621
  :disabled="disabled"
465
622
  :bg-color="bgColor"
@@ -473,6 +630,8 @@
473
630
  :counter="props.counter"
474
631
  :persistent-hint="props.persistentHint"
475
632
  :persistent-placeholder="props.persistentPlaceholder"
633
+ :aria-required="ariaRequired"
634
+ :aria-invalid="ariaInvalidKey"
476
635
  class="key-field"
477
636
  :display-asterisk="false"
478
637
  @input="handleKeyInput"
@@ -486,18 +645,46 @@
486
645
  .nir-field {
487
646
  display: flex;
488
647
  gap: 16px;
489
- width: calc(v-bind('props.width') - 16px);
648
+ width: calc(v-bind('props.width || "100%"') - 16px);
649
+ align-items: flex-start;
650
+ }
651
+
652
+ .nir-field--fieldset {
653
+ width: calc(v-bind('props.width || "100%"') + 5px);
654
+ border: 1px solid #b9b9b9;
655
+ border-radius: 4px;
656
+ padding: 25px;
657
+ margin: 0;
658
+ display: flex;
659
+ gap: 16px;
490
660
  align-items: flex-start;
661
+ box-sizing: border-box;
491
662
  }
492
663
 
493
- .number-field-container {
664
+ .nir-field--fieldset legend {
665
+ padding: 0 8px;
666
+ font-weight: 500;
667
+ color: #666;
668
+ }
669
+
670
+ /* Styles pour le mode standard (div) */
671
+ .nir-field:not(.nir-field--fieldset) .number-field-container {
494
672
  flex: 0 0 80%;
495
673
  }
496
674
 
497
- .key-field-container {
675
+ .nir-field:not(.nir-field--fieldset) .key-field-container {
498
676
  flex: 0 0 20%;
499
677
  }
500
678
 
679
+ /* Styles pour le mode fieldset */
680
+ .nir-field--fieldset .number-field-container {
681
+ flex: v-bind('props.clearable ? "0 0 70%" : "0 0 78%"');
682
+ }
683
+
684
+ .nir-field--fieldset .key-field-container {
685
+ flex: v-bind('props.clearable ? "0 0 29%" : "0 0 18%"');
686
+ }
687
+
501
688
  .number-field,
502
689
  .key-field {
503
690
  width: 100%;
@@ -1,21 +1,35 @@
1
1
  export const NUMBER_LENGTH = 13
2
2
  export const KEY_LENGTH = 2
3
3
 
4
- export function checkNIR(nir: string): boolean {
4
+ export function checkNIR(nir: string, nirType: string): boolean {
5
5
  nir = nir.replace(/\s+/g, '').toUpperCase()
6
6
 
7
- const nirRegex = new RegExp(
7
+ const nirRegexComplex = new RegExp(
8
8
  '^'
9
9
  + '(?<sexe>[1-4]|7|8)'
10
10
  + '(?<anneeNaissance>\\d{2})'
11
11
  + '(?<moisNaissance>0[1-9]|1[0-2]|2[0-9]|3[0-9]|4[0-2])'
12
- + '(?<departementNaissance>\\d{2}|2A|2B|96|97\\d|98\\d)'
12
+ + '(?<departementNaissance>\\d{2}|2A|2B|96|97\\d|98\\d|99\\d)'
13
13
  + '(?<communeNaissance>\\d{3})'
14
14
  + '(?<rangInscription>\\d{3})'
15
15
  + '(?<cle>[0-9]{2})?'
16
16
  + '$',
17
17
  'i',
18
18
  )
19
+
20
+ const nirSimpleRegex = new RegExp(
21
+ '^'
22
+ + '(?<sexe>[12])'
23
+ + '(?<anneeNaissance>\\d{2})'
24
+ + '(?<moisNaissance>0[1-9]|1[0-2]|[2-9][0-9])'
25
+ + '(?<departementNaissance>\\d{2}|2A|2B)'
26
+ + '(?<communeNaissance>\\d{3})'
27
+ + '(?<rangInscription>\\d{3})'
28
+ + '(?<cle>9[0-7]|[0-8]\\d)?'
29
+ + '$',
30
+ 'i',
31
+ )
32
+ const nirRegex = nirType === 'simple' ? nirSimpleRegex : nirRegexComplex
19
33
  return nirRegex.test(nir)
20
34
  }
21
35
 
@@ -56,7 +56,7 @@ describe('NirField.vue', () => {
56
56
  await wrapper.find('.key-field input').setValue('1')
57
57
  await wrapper.find('.key-field input').trigger('blur')
58
58
  await wrapper.vm.$nextTick()
59
- expect(wrapper.vm.keyValidation.errors.value[0]).toBe('La clé du numéro de sécurité sociale est invalide.')
59
+ expect(wrapper.vm.keyValidation.errors.value[0]).toBe('Le numéro de sécurité sociale est invalide.')
60
60
  })
61
61
 
62
62
  it('validates the key field successfully', async () => {
@@ -64,7 +64,7 @@ describe('NirField.vue', () => {
64
64
  await wrapper.find('.key-field input').setValue('91')
65
65
  await wrapper.find('.key-field input').trigger('blur')
66
66
  await wrapper.vm.$nextTick()
67
- expect(wrapper.vm.keyValidation.successes.value).toContain('Le champ Clé est valide.')
67
+ expect(wrapper.vm.keyValidation.successes.value).toContain('Le numéro de sécurité sociale est valide.')
68
68
  })
69
69
 
70
70
  it('hides the key field when displayKey is false', async () => {
@@ -181,6 +181,14 @@ export const Legende: StoryObj = {
181
181
  </v-btn>
182
182
  Problèmes relevés par Tanaguru
183
183
  </div>
184
+ </div>
185
+ <div class="mt-4">
186
+ <p>Rapport d’audit manuel : <a href="/audits/NotFoundPage.xlsx" style="color:#0C41BD;">Voir le
187
+ rapport</a></p>
188
+ <p style="color: grey; font-size: 14px">Correctifs associés (<a
189
+ href="https://github.com/assurance-maladie-digital/design-system-v3/issues/654" target="_blank"
190
+ style="color:#0C41BD;"
191
+ >issue #654</a>)</p>
184
192
  </div>
185
193
  </div>
186
194
  `,
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
 
@@ -56,7 +56,8 @@
56
56
  <template #illustration>
57
57
  <img
58
58
  src="./assets/not-found.svg"
59
- :alt="locales.pageTitle"
59
+ alt=""
60
+ aria-hidden="true"
60
61
  >
61
62
  </template>
62
63
  </ErrorPage>