@cnamts/synapse 0.0.11-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.
Files changed (315) hide show
  1. package/dist/design-system-v3.js +5394 -3813
  2. package/dist/design-system-v3.umd.cjs +1 -1
  3. package/dist/src/components/Amelipro/types/types.d.ts +38 -0
  4. package/dist/src/components/CookieBanner/CookieBanner.d.ts +1 -1
  5. package/dist/src/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
  6. package/dist/src/components/Customs/SyTextField/SyTextField.d.ts +31 -23
  7. package/dist/src/components/Customs/SyTextField/types.d.ts +1 -0
  8. package/dist/src/components/DatePicker/DatePicker.d.ts +105 -102
  9. package/dist/src/components/DatePicker/DateTextInput.d.ts +82 -74
  10. package/dist/src/components/ErrorPage/ErrorPage.d.ts +1 -1
  11. package/dist/src/components/FileList/FileList.d.ts +1 -0
  12. package/dist/src/components/FileList/UploadItem/UploadItem.d.ts +1 -1
  13. package/dist/src/components/FilterInline/AccessibiliteItems.d.ts +30 -0
  14. package/dist/src/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +4 -0
  15. package/dist/src/components/FilterSideBar/AccessibiliteItems.d.ts +29 -0
  16. package/dist/src/components/FilterSideBar/FilterSideBar.d.ts +31 -0
  17. package/dist/src/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +4 -0
  18. package/dist/src/components/FilterSideBar/locales.d.ts +7 -0
  19. package/dist/src/components/LangBtn/LangBtn.d.ts +2 -2
  20. package/dist/src/components/NirField/NirField.d.ts +952 -0
  21. package/dist/src/components/NotificationBar/NotificationBar.d.ts +6 -6
  22. package/dist/src/components/PasswordField/PasswordField.d.ts +42 -8
  23. package/dist/src/components/PeriodField/PeriodField.d.ts +259 -235
  24. package/dist/src/components/PhoneField/PhoneField.d.ts +33 -3
  25. package/dist/src/components/RatingPicker/EmotionPicker/EmotionPicker.d.ts +1 -1
  26. package/dist/src/components/RatingPicker/NumberPicker/NumberPicker.d.ts +1 -1
  27. package/dist/src/components/RatingPicker/StarsPicker/StarsPicker.d.ts +1 -1
  28. package/dist/src/components/UploadWorkflow/AccessibiliteItems.d.ts +29 -0
  29. package/dist/src/components/UploadWorkflow/config.d.ts +29 -0
  30. package/dist/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +4 -0
  31. package/dist/src/components/UploadWorkflow/locales.d.ts +7 -0
  32. package/dist/src/components/UploadWorkflow/types.d.ts +19 -0
  33. package/dist/src/components/UploadWorkflow/useFileList.d.ts +10 -0
  34. package/dist/src/components/UploadWorkflow/useFileUploadJourney.d.ts +9 -0
  35. package/dist/src/components/Usages/Usages.d.ts +10 -0
  36. package/dist/src/components/index.d.ts +5 -0
  37. package/dist/src/composables/date/tests/useDateFormat.spec.d.ts +1 -0
  38. package/dist/src/composables/date/tests/useDateInitialization.spec.d.ts +1 -0
  39. package/dist/src/composables/date/tests/useDatePickerAccessibility.spec.d.ts +1 -0
  40. package/dist/src/composables/date/useDateFormat.d.ts +26 -0
  41. package/dist/src/composables/date/useDateInitialization.d.ts +18 -0
  42. package/dist/src/composables/date/useDatePickerAccessibility.d.ts +8 -0
  43. package/dist/src/composables/rules/useFieldValidation.d.ts +1 -0
  44. package/dist/src/composables/useFilterable/useFilterable.d.ts +1 -1
  45. package/dist/src/composables/validation/tests/useValidation.spec.d.ts +1 -0
  46. package/dist/src/composables/validation/useValidation.d.ts +40 -0
  47. package/dist/src/designTokens/index.d.ts +3 -1
  48. package/dist/src/main.d.ts +1 -0
  49. package/dist/src/utils/formatDate/index.d.ts +3 -0
  50. package/dist/src/utils/formatDate/tests/formatDate.spec.d.ts +1 -0
  51. package/dist/src/utils/functions/validation/isDateAfter/index.d.ts +2 -0
  52. package/dist/src/utils/functions/validation/isDateAfter/tests/isDateAfter.spec.d.ts +1 -0
  53. package/dist/src/utils/functions/validation/isDateBefore/index.d.ts +2 -0
  54. package/dist/src/utils/functions/validation/isDateBefore/tests/isDateBefore.spec.d.ts +1 -0
  55. package/dist/src/utils/functions/validation/isDateInRange/index.d.ts +3 -0
  56. package/dist/src/utils/functions/validation/isDateInRange/tests/isDateInRange.spec.d.ts +1 -0
  57. package/dist/src/utils/functions/validation/isDateValid/index.d.ts +9 -0
  58. package/dist/src/utils/functions/validation/isDateValid/tests/isDateValid.spec.d.ts +1 -0
  59. package/dist/src/utils/functions/validation/isEmailValid/tests/isEmailValid.spec.d.ts +1 -0
  60. package/dist/src/utils/functions/validation/isWeekend/index.d.ts +3 -0
  61. package/dist/src/utils/functions/validation/isWeekend/tests/isWeekend.spec.d.ts +1 -0
  62. package/dist/src/utils/parseDate/index.d.ts +3 -0
  63. package/dist/src/utils/parseDate/tests/parseDate.spec.d.ts +1 -0
  64. package/dist/src/utils/rules/doMatchPattern/index.d.ts +3 -0
  65. package/dist/src/utils/rules/doMatchPattern/tests/matchPattern.spec.d.ts +1 -0
  66. package/dist/src/utils/rules/index.d.ts +11 -0
  67. package/dist/src/utils/rules/isDateValid/index.d.ts +4 -0
  68. package/dist/src/utils/rules/isDateValid/tests/isDateValid.spec.d.ts +1 -0
  69. package/dist/src/utils/rules/isExactLength/index.d.ts +3 -0
  70. package/dist/src/utils/rules/isExactLength/locales.d.ts +2 -0
  71. package/dist/src/utils/rules/isExactLength/tests/exactLength.spec.d.ts +1 -0
  72. package/dist/src/utils/rules/isMaxLength/index.d.ts +3 -0
  73. package/dist/src/utils/rules/isMaxLength/locales.d.ts +2 -0
  74. package/dist/src/utils/rules/isMaxLength/tests/isMaxLength.spec.d.ts +1 -0
  75. package/dist/src/utils/rules/isMinLength/index.d.ts +3 -0
  76. package/dist/src/utils/rules/isMinLength/locales.d.ts +2 -0
  77. package/dist/src/utils/rules/isMinLength/tests/isMinLength.spec.d.ts +1 -0
  78. package/dist/src/utils/rules/isNotAfterDate/index.d.ts +3 -0
  79. package/dist/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.d.ts +1 -0
  80. package/dist/src/utils/rules/isNotAfterToday/index.d.ts +4 -0
  81. package/dist/src/utils/rules/isNotAfterToday/locales.d.ts +2 -0
  82. package/dist/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.d.ts +1 -0
  83. package/dist/src/utils/rules/isNotBeforeDate/index.d.ts +3 -0
  84. package/dist/src/utils/rules/isNotBeforeDate/locales.d.ts +2 -0
  85. package/dist/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.d.ts +1 -0
  86. package/dist/src/utils/rules/isNotBeforeToday/index.d.ts +4 -0
  87. package/dist/src/utils/rules/isNotBeforeToday/locales.d.ts +2 -0
  88. package/dist/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.d.ts +1 -0
  89. package/dist/src/utils/rules/isRequired/index.d.ts +4 -0
  90. package/dist/src/utils/rules/isRequired/locales.d.ts +2 -0
  91. package/dist/src/utils/rules/isRequired/tests/isRequred.spec.d.ts +1 -0
  92. package/dist/src/utils/rules/isValidEmail/index.d.ts +4 -0
  93. package/dist/src/utils/rules/isValidEmail/locales.d.ts +2 -0
  94. package/dist/src/utils/rules/isValidEmail/tests/isValidEmail.spec.d.ts +1 -0
  95. package/dist/src/vuetifyConfig.d.ts +81 -0
  96. package/dist/style.css +1 -1
  97. package/package.json +3 -1
  98. package/src/assets/_elevations.scss +89 -0
  99. package/src/assets/_fonts.scss +6 -0
  100. package/src/assets/_radius.scss +92 -0
  101. package/src/assets/_spacers.scss +149 -0
  102. package/src/assets/settings.scss +15 -3
  103. package/src/assets/tokens.scss +32 -29
  104. package/src/components/Amelipro/types/types.ts +40 -0
  105. package/src/components/ChipList/ChipList.stories.ts +26 -27
  106. package/src/components/ChipList/ChipList.vue +5 -1
  107. package/src/components/ChipList/config.ts +1 -0
  108. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +2 -2
  109. package/src/components/Customs/SyBtnSelect/SyBtnSelect.mdx +1 -1
  110. package/src/components/Customs/SyInputSelect/SyInputSelect.mdx +1 -1
  111. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +65 -0
  112. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +13 -3
  113. package/src/components/Customs/SySelect/SySelect.mdx +1 -1
  114. package/src/components/Customs/SySelect/SySelect.stories.ts +88 -5
  115. package/src/components/Customs/SySelect/SySelect.vue +55 -14
  116. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +135 -2
  117. package/src/components/Customs/SyTextField/SyTextField.mdx +2 -2
  118. package/src/components/Customs/SyTextField/SyTextField.stories.ts +809 -79
  119. package/src/components/Customs/SyTextField/SyTextField.vue +135 -104
  120. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +190 -38
  121. package/src/components/Customs/SyTextField/types.d.ts +1 -0
  122. package/src/components/DatePicker/DatePicker.stories.ts +177 -5
  123. package/src/components/DatePicker/DatePicker.vue +302 -233
  124. package/src/components/DatePicker/DateTextInput.vue +101 -246
  125. package/src/components/DatePicker/tests/DatePicker.spec.ts +123 -60
  126. package/src/components/DatePicker/tests/DateTextInput.spec.ts +202 -6
  127. package/src/components/FileList/Accessibilite.stories.ts +1 -1
  128. package/src/components/FileList/AccessibiliteItems.ts +22 -0
  129. package/src/components/FileList/FileList.vue +2 -1
  130. package/src/components/FileList/UploadItem/UploadItem.vue +10 -0
  131. package/src/components/FileUpload/FileUpload.stories.ts +93 -7
  132. package/src/components/FileUpload/FileUpload.vue +1 -0
  133. package/src/components/FileUpload/tests/FileUpload.spec.ts +4 -4
  134. package/src/components/FilterInline/Accessibilite.mdx +14 -0
  135. package/src/components/FilterInline/Accessibilite.stories.ts +216 -0
  136. package/src/components/FilterInline/AccessibiliteItems.ts +132 -0
  137. package/src/components/FilterInline/FilterInline.mdx +180 -34
  138. package/src/components/FilterInline/FilterInline.stories.ts +363 -6
  139. package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +4 -0
  140. package/src/components/FilterSideBar/Accessibilite.mdx +14 -0
  141. package/src/components/FilterSideBar/Accessibilite.stories.ts +216 -0
  142. package/src/components/FilterSideBar/AccessibiliteItems.ts +153 -0
  143. package/src/components/FilterSideBar/FilterSideBar.mdx +237 -0
  144. package/src/components/FilterSideBar/FilterSideBar.stories.ts +798 -0
  145. package/src/components/FilterSideBar/FilterSideBar.vue +193 -0
  146. package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +4 -0
  147. package/src/components/FilterSideBar/locales.ts +8 -0
  148. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +305 -0
  149. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +39 -0
  150. package/src/components/HeaderBar/Usages.mdx +1 -1
  151. package/src/components/NirField/NirField.stories.ts +738 -29
  152. package/src/components/NirField/NirField.vue +401 -359
  153. package/src/components/NirField/examples//342/200/257dataset/342/200/257.md +12 -0
  154. package/src/components/NirField/tests/NirField.spec.ts +88 -52
  155. package/src/components/NirField/tests/config.spec.ts +65 -0
  156. package/src/components/NotificationBar/Accessibilite.stories.ts +4 -0
  157. package/src/components/NotificationBar/NotificationBar.mdx +2 -2
  158. package/src/components/NotificationBar/NotificationBar.stories.ts +66 -13
  159. package/src/components/NotificationBar/NotificationBar.vue +42 -114
  160. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +28 -33
  161. package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +1 -1
  162. package/src/components/PaginatedTable/PaginatedTable.vue +6 -10
  163. package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +4 -4
  164. package/src/components/PasswordField/PasswordField.mdx +129 -47
  165. package/src/components/PasswordField/PasswordField.stories.ts +1111 -120
  166. package/src/components/PasswordField/PasswordField.vue +212 -99
  167. package/src/components/PasswordField/tests/PasswordField.spec.ts +138 -9
  168. package/src/components/PeriodField/PeriodField.stories.ts +214 -118
  169. package/src/components/PeriodField/PeriodField.vue +238 -190
  170. package/src/components/PeriodField/tests/PeriodField.spec.ts +146 -0
  171. package/src/components/PhoneField/PhoneField.stories.ts +170 -0
  172. package/src/components/PhoneField/PhoneField.vue +76 -17
  173. package/src/components/PhoneField/indicatifs.ts +1 -1
  174. package/src/components/PhoneField/tests/PhoneField.spec.ts +40 -0
  175. package/src/components/RatingPicker/RatingPicker.stories.ts +7 -7
  176. package/src/components/SearchListField/SearchListField.stories.ts +1 -1
  177. package/src/components/UploadWorkflow/Accessibilite.mdx +14 -0
  178. package/src/components/UploadWorkflow/Accessibilite.stories.ts +216 -0
  179. package/src/components/UploadWorkflow/AccessibiliteItems.ts +192 -0
  180. package/src/components/UploadWorkflow/UploadWorkflow.mdx +75 -0
  181. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +943 -0
  182. package/src/components/UploadWorkflow/UploadWorkflow.vue +230 -0
  183. package/src/components/UploadWorkflow/config.ts +29 -0
  184. package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +4 -0
  185. package/src/components/UploadWorkflow/locales.ts +8 -0
  186. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +257 -0
  187. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +54 -0
  188. package/src/components/UploadWorkflow/types.ts +21 -0
  189. package/src/components/UploadWorkflow/useFileList.ts +84 -0
  190. package/src/components/UploadWorkflow/useFileUploadJourney.ts +18 -0
  191. package/src/components/Usages/tests/Usages.spec.ts +183 -0
  192. package/src/components/index.ts +5 -0
  193. package/src/composables/date/tests/useDateFormat.spec.ts +67 -0
  194. package/src/composables/date/tests/useDateInitialization.spec.ts +89 -0
  195. package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +102 -0
  196. package/src/composables/date/useDateFormat.ts +94 -0
  197. package/src/composables/date/useDateInitialization.ts +92 -0
  198. package/src/composables/date/useDatePickerAccessibility.ts +78 -0
  199. package/src/composables/rules/tests/useFieldValidation.spec.ts +385 -4
  200. package/src/composables/rules/useFieldValidation.ts +5 -2
  201. package/src/composables/useFilterable/useFilterable.ts +5 -4
  202. package/src/composables/validation/tests/useValidation.spec.ts +154 -0
  203. package/src/composables/validation/useValidation.ts +180 -0
  204. package/src/designTokens/index.ts +4 -0
  205. package/src/main.ts +1 -0
  206. package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +28 -0
  207. package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +2 -2
  208. package/src/stories/Accessibilite/Audit/RGAA.mdx +6 -6
  209. package/src/stories/Accessibilite/Introduction.mdx +2 -1
  210. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +1 -1
  211. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +1 -1
  212. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +8 -11
  213. package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +77 -0
  214. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +9 -3
  215. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +2 -2
  216. package/src/stories/Demarrer/Accueil.mdx +1 -1
  217. package/src/stories/Demarrer/Introduction.stories.ts +3 -3
  218. package/src/stories/Demarrer/Releases.mdx +8 -0
  219. package/src/stories/Demarrer/Releases.stories.ts +66 -0
  220. package/src/stories/DesignTokens/Conteneurs.stories.ts +3 -3
  221. package/src/stories/DesignTokens/ThemePA.mdx +4 -30
  222. package/src/stories/GuideDuDev/LesBreackingChanges.mdx +36 -0
  223. package/src/stories/GuideDuDev/UtiliserLesRules.mdx +321 -78
  224. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  225. package/src/utils/formatDate/index.ts +6 -0
  226. package/src/utils/formatDate/tests/formatDate.spec.ts +18 -0
  227. package/src/utils/functions/validation/isDateAfter/index.ts +9 -0
  228. package/src/utils/functions/validation/isDateAfter/tests/isDateAfter.spec.ts +18 -0
  229. package/src/utils/functions/validation/isDateBefore/index.ts +9 -0
  230. package/src/utils/functions/validation/isDateBefore/tests/isDateBefore.spec.ts +23 -0
  231. package/src/utils/functions/validation/isDateInRange/index.ts +22 -0
  232. package/src/utils/functions/validation/isDateInRange/tests/isDateInRange.spec.ts +28 -0
  233. package/src/utils/functions/validation/isDateValid/index.ts +67 -0
  234. package/src/utils/functions/validation/isDateValid/tests/isDateValid.spec.ts +46 -0
  235. package/src/utils/functions/validation/isEmailValid/index.ts +9 -0
  236. package/src/utils/functions/validation/isWeekend/index.ts +10 -0
  237. package/src/utils/functions/validation/isWeekend/tests/isWeekend.spec.ts +16 -0
  238. package/src/utils/parseDate/index.ts +29 -0
  239. package/src/utils/parseDate/tests/parseDate.spec.ts +52 -0
  240. package/src/utils/rules/Rules.mdx +16 -0
  241. package/src/utils/rules/doMatchPattern/DoMachPattern.mdx +66 -0
  242. package/src/utils/rules/doMatchPattern/DoMatchPattern.stories.ts +106 -0
  243. package/src/utils/rules/doMatchPattern/index.ts +28 -0
  244. package/src/utils/rules/doMatchPattern/locales.ts +5 -0
  245. package/src/utils/rules/doMatchPattern/tests/matchPattern.spec.ts +38 -0
  246. package/src/utils/rules/index.ts +11 -0
  247. package/src/utils/rules/isDateValid/IsDateValid.mdx +87 -0
  248. package/src/utils/rules/isDateValid/IsDateValid.stories.ts +113 -0
  249. package/src/utils/rules/isDateValid/index.ts +32 -0
  250. package/src/utils/rules/isDateValid/locales.ts +10 -0
  251. package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +27 -0
  252. package/src/utils/rules/isExactLength/IsExactLenght.mdx +68 -0
  253. package/src/utils/rules/isExactLength/IsExactLength.stories.ts +151 -0
  254. package/src/utils/rules/{exactLength → isExactLength}/index.ts +2 -4
  255. package/src/utils/rules/isExactLength/tests/exactLength.spec.ts +48 -0
  256. package/src/utils/rules/isMaxLength/IsMaxLength.mdx +68 -0
  257. package/src/utils/rules/isMaxLength/IsMaxLength.stories.ts +152 -0
  258. package/src/utils/rules/isMaxLength/index.ts +30 -0
  259. package/src/utils/rules/isMaxLength/locales.ts +6 -0
  260. package/src/utils/rules/isMaxLength/tests/isMaxLength.spec.ts +42 -0
  261. package/src/utils/rules/isMinLength/IsMinLength.mdx +68 -0
  262. package/src/utils/rules/isMinLength/IsMinLength.stories.ts +152 -0
  263. package/src/utils/rules/isMinLength/index.ts +30 -0
  264. package/src/utils/rules/isMinLength/locales.ts +6 -0
  265. package/src/utils/rules/isMinLength/tests/isMinLength.spec.ts +42 -0
  266. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +68 -0
  267. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +109 -0
  268. package/src/utils/rules/isNotAfterDate/index.ts +25 -0
  269. package/src/utils/rules/isNotAfterDate/locales.ts +6 -0
  270. package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +25 -0
  271. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +83 -0
  272. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +110 -0
  273. package/src/utils/rules/isNotAfterToday/index.ts +28 -0
  274. package/src/utils/rules/isNotAfterToday/locales.ts +5 -0
  275. package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +30 -0
  276. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +68 -0
  277. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.stories.ts +114 -0
  278. package/src/utils/rules/isNotBeforeDate/index.ts +25 -0
  279. package/src/utils/rules/isNotBeforeDate/locales.ts +6 -0
  280. package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +25 -0
  281. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +83 -0
  282. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +110 -0
  283. package/src/utils/rules/isNotBeforeToday/index.ts +28 -0
  284. package/src/utils/rules/isNotBeforeToday/locales.ts +5 -0
  285. package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +36 -0
  286. package/src/utils/rules/isRequired/IsRequired.mdx +81 -0
  287. package/src/utils/rules/isRequired/IsRequired.stories.ts +101 -0
  288. package/src/utils/rules/{required → isRequired}/index.ts +3 -3
  289. package/src/utils/rules/{required/tests/index.spec.ts → isRequired/tests/isRequred.spec.ts} +9 -9
  290. package/src/utils/rules/isValidEmail/IsValidEmail.mdx +81 -0
  291. package/src/utils/rules/isValidEmail/IsValidEmail.stories.ts +101 -0
  292. package/src/utils/rules/{email → isValidEmail}/index.ts +3 -5
  293. package/src/utils/rules/{email/tests/email.spec.ts → isValidEmail/tests/isValidEmail.spec.ts} +5 -5
  294. package/src/vuetifyConfig.ts +61 -0
  295. package/dist/src/utils/rules/email/index.d.ts +0 -4
  296. package/dist/src/utils/rules/exactLength/index.d.ts +0 -4
  297. package/dist/src/utils/rules/required/index.d.ts +0 -4
  298. package/dist/src/utils/rules/required/ruleMessageHelper.d.ts +0 -3
  299. package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +0 -58
  300. package/src/composables/useFilterable/__snapshots__/useFilterable.spec.ts.snap +0 -3
  301. package/src/utils/functions/isEmailValid/index.ts +0 -8
  302. package/src/utils/rules/required/ruleMessageHelper.ts +0 -14
  303. package/src/utils/rules/required/tests/rulesMessageHelper.spec.ts +0 -22
  304. /package/dist/src/{utils/functions/isEmailValid/tests/isEmailValid.spec.d.ts → components/FilterSideBar/tests/FilterSideBar.spec.d.ts} +0 -0
  305. /package/dist/src/{utils/rules/email/tests/email.spec.d.ts → components/NirField/tests/config.spec.d.ts} +0 -0
  306. /package/dist/src/{utils/rules/required/tests/index.spec.d.ts → components/UploadWorkflow/tests/UploadWorkflow.spec.d.ts} +0 -0
  307. /package/dist/src/{utils/rules/required/tests/rulesMessageHelper.spec.d.ts → components/Usages/tests/Usages.spec.d.ts} +0 -0
  308. /package/dist/src/utils/functions/{isEmailValid → validation/isEmailValid}/index.d.ts +0 -0
  309. /package/dist/src/utils/rules/{exactLength → doMatchPattern}/locales.d.ts +0 -0
  310. /package/dist/src/utils/rules/{email → isDateValid}/locales.d.ts +0 -0
  311. /package/dist/src/utils/rules/{required → isNotAfterDate}/locales.d.ts +0 -0
  312. /package/src/utils/functions/{isEmailValid → validation/isEmailValid}/tests/isEmailValid.spec.ts +0 -0
  313. /package/src/utils/rules/{exactLength → isExactLength}/locales.ts +0 -0
  314. /package/src/utils/rules/{required → isRequired}/locales.ts +0 -0
  315. /package/src/utils/rules/{email → isValidEmail}/locales.ts +0 -0
@@ -0,0 +1,798 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import FilterSideBar from './FilterSideBar.vue'
3
+ import { fn } from '@storybook/test'
4
+ import { VDivider, VSelect, VTextField } from 'vuetify/components'
5
+ import PeriodField from '../PeriodField/PeriodField.vue'
6
+ import SearchListField from '../SearchListField/SearchListField.vue'
7
+ import { ref } from 'vue'
8
+ import FilterInline from '../FilterInline/FilterInline.vue'
9
+ import RangeField from '../RangeField/RangeField.vue'
10
+
11
+ const meta = {
12
+ title: 'Composants/Filtres/FiltersSideBar',
13
+ component: FilterSideBar,
14
+
15
+ argTypes: {
16
+ 'modelValue': {
17
+ description: 'Valeur des filtres',
18
+ control: {
19
+ type: 'object',
20
+ },
21
+ table: {
22
+ category: 'props',
23
+ type: {
24
+ summary: 'array',
25
+ detail: `{
26
+ name: string
27
+ value?: unknown
28
+ formatChip?: (value: unknown) => ChipItem[]
29
+ chipOverflowLimit?: number
30
+ title?: string
31
+ }[]`,
32
+ },
33
+ defaultValue: {
34
+ summary: '[]',
35
+ },
36
+ },
37
+ },
38
+ 'locales': {
39
+ description: 'Traductions',
40
+ control: {
41
+ type: 'object',
42
+ },
43
+ table: {
44
+ category: 'props',
45
+ type: {
46
+ summary: 'Record<string, Function | string>',
47
+ },
48
+ defaultValue: {
49
+ summary: 'locales',
50
+ detail: `{
51
+ filterBtnLabel: 'Filtres',
52
+ badgeLabel: (count: number): string =>
53
+ \`\${count} filtre\${count > 1 ? 's' : ''}\`,
54
+ reset: 'Réinitialiser',
55
+ close: 'Fermer',
56
+ apply: 'Appliquer',
57
+ }`,
58
+ },
59
+ },
60
+ },
61
+ 'onUpdate:modelValue': {
62
+ description: 'Événement déclenché lors de la mise à jour des filtres',
63
+ control: {
64
+ type: undefined,
65
+ },
66
+ table: {
67
+ category: 'events',
68
+ type: {
69
+ summary: 'array',
70
+ detail: `{
71
+ name: string
72
+ value?: unknown
73
+ formatChip?: (value: unknown) => ChipItem[]
74
+ chipOverflowLimit?: number
75
+ title?: string
76
+ }[]`,
77
+ },
78
+ },
79
+ },
80
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
81
+ // @ts-ignore - storybook can't infer dynamic slot name
82
+ '${filterName}': {
83
+ description: 'Slot pour les filtres. <br>Le nom de chaque slot correspond au nom (`name`) du filtre. <br>Le paramètre du slot `props` est un objet contenant les props à passer au filtre.',
84
+ table: {
85
+ category: 'slots',
86
+ type: {
87
+ summary: '{ props: Object }',
88
+ },
89
+ },
90
+ },
91
+ },
92
+ parameters: {
93
+ layout: 'fullscreen',
94
+ controls: {
95
+ exclude: ['update:modelValue', '`${formatFilterName(filter.name)}`'],
96
+ },
97
+ },
98
+ } satisfies Meta<typeof FilterSideBar>
99
+
100
+ export default meta
101
+
102
+ type Story = StoryObj<typeof FilterSideBar>
103
+
104
+ export const Default: Story = {
105
+ args: {
106
+ 'onUpdate:modelValue': fn(),
107
+ },
108
+ decorators: [
109
+ () => ({
110
+ template: `
111
+ <VApp style="height: 500px; overflow-y: hidden;">
112
+ <div class="pa-4">
113
+ <story />
114
+ </div>
115
+ </VApp>
116
+ `,
117
+ }),
118
+ ],
119
+ render: args => ({
120
+ components: { FilterSideBar, VTextField, VSelect, PeriodField, SearchListField },
121
+ setup() {
122
+ const filters = ref([
123
+ {
124
+ name: 'name',
125
+ title: 'Identité',
126
+ },
127
+ {
128
+ name: 'folder',
129
+ title: 'Type de dossier',
130
+ },
131
+ {
132
+ name: 'period',
133
+ title: 'Période',
134
+ },
135
+ {
136
+ name: 'profession',
137
+ title: 'Profession',
138
+ },
139
+ ])
140
+
141
+ const folderTypes = [
142
+ {
143
+ title: 'AT',
144
+ value: 'at',
145
+ },
146
+ {
147
+ title: 'MP',
148
+ value: 'mp',
149
+ },
150
+ {
151
+ title: 'Autre',
152
+ value: 'other',
153
+ },
154
+ ]
155
+
156
+ const professionList = [
157
+ {
158
+ label: 'Chirurgien-dentiste',
159
+ value: 'chirurgien-dentiste',
160
+ },
161
+ {
162
+ label: 'Infirmier',
163
+ value: 'infirmier',
164
+ },
165
+ {
166
+ label: 'Orthophoniste',
167
+ value: 'orthophoniste',
168
+ },
169
+ {
170
+ label: 'Orthoptiste',
171
+ value: 'orthoptiste',
172
+ },
173
+ {
174
+ label: 'Pédicure-podologue',
175
+ value: 'pedicure-podologue',
176
+ },
177
+ {
178
+ label: 'Pharmacien',
179
+ value: 'pharmacien',
180
+ },
181
+ ]
182
+
183
+ return { args, filters, folderTypes, professionList }
184
+ },
185
+ template: `
186
+ <FilterSideBar
187
+ v-bind="args"
188
+ v-model="filters"
189
+ >
190
+ <template #name="{ props }">
191
+ <VTextField
192
+ v-bind="props"
193
+ label="Nom"
194
+ variant="outlined"
195
+ hide-details
196
+ color="primary"
197
+ />
198
+ </template>
199
+
200
+ <template #folder="{ props }">
201
+ <p class="text-secondary mb-4">
202
+ Vous pouvez filtrer entre les dossiers de type <b>Arrêt de Travail (AT)</b> et <b>Maladie Professionnelle (MP)</b> ou <b>Autre</b>.
203
+ </p>
204
+
205
+ <VSelect
206
+ v-bind="props"
207
+ :items="folderTypes"
208
+ label="Type de dossier"
209
+ multiple
210
+ variant="outlined"
211
+ return-object
212
+ hide-details
213
+ color="primary"
214
+ />
215
+ </template>
216
+
217
+ <template #period="{ props }">
218
+ <PeriodField
219
+ v-bind="props"
220
+ variant="outlined"
221
+ />
222
+ </template>
223
+
224
+ <template #profession="{ props }">
225
+ <SearchListField
226
+ v-bind="props"
227
+ :items="professionList"
228
+ />
229
+ </template>
230
+ </FilterSideBar>
231
+ `,
232
+ }),
233
+ parameters: {
234
+ sourceCode: [
235
+ {
236
+ name: 'Template',
237
+ code: `
238
+ <FilterSideBar
239
+ v-model="filters"
240
+ >
241
+ <template #name="{ props }">
242
+ <VTextField
243
+ v-bind="props"
244
+ label="Nom"
245
+ variant="outlined"
246
+ hide-details
247
+ color="primary"
248
+ />
249
+ </template>
250
+
251
+ <template #folder="{ props }">
252
+ <p class="text-secondary mb-4">
253
+ Vous pouvez filtrer entre les dossiers de type <b>Arrêt de Travail (AT)</b> et <b>Maladie Professionnelle (MP)</b> ou <b>Autre</b>.
254
+ </p>
255
+
256
+ <VSelect
257
+ v-bind="props"
258
+ :items="folderTypes"
259
+ label="Type de dossier"
260
+ multiple
261
+ variant="outlined"
262
+ return-object
263
+ hide-details
264
+ color="primary"
265
+ />
266
+ </template>
267
+
268
+ <template #period="{ props }">
269
+ <PeriodField
270
+ v-bind="props"
271
+ variant="outlined"
272
+ />
273
+ </template>
274
+
275
+ <template #profession="{ props }">
276
+ <SearchListField
277
+ v-bind="props"
278
+ :items="professionList"
279
+ />
280
+ </template>
281
+ </FilterSideBar>
282
+ `,
283
+ },
284
+ {
285
+ name: 'Script',
286
+ code: `
287
+ <script setup lang="ts">
288
+ import { ref } from 'vue'
289
+ import { FilterSideBar } from '@cnamts/synapse'
290
+
291
+ const filters = ref([
292
+ {
293
+ name: 'name',
294
+ title: 'Identité',
295
+ },
296
+ {
297
+ name: 'folder',
298
+ title: 'Type de dossier',
299
+ },
300
+ {
301
+ name: 'period',
302
+ title: 'Période',
303
+ },
304
+ {
305
+ name: 'profession',
306
+ title: 'Profession',
307
+ },
308
+ ])
309
+
310
+ const folderTypes = [
311
+ {
312
+ title: 'AT',
313
+ value: 'at',
314
+ },
315
+ {
316
+ title: 'MP',
317
+ value: 'mp',
318
+ },
319
+ {
320
+ title: 'Autre',
321
+ value: 'other',
322
+ },
323
+ ]
324
+
325
+ const professionList = [
326
+ {
327
+ label: 'Chirurgien-dentiste',
328
+ value: 'chirurgien-dentiste',
329
+ },
330
+ {
331
+ label: 'Infirmier',
332
+ value: 'infirmier',
333
+ },
334
+ {
335
+ label: 'Orthophoniste',
336
+ value: 'orthophoniste',
337
+ },
338
+ {
339
+ label: 'Orthoptiste',
340
+ value: 'orthoptiste',
341
+ },
342
+ {
343
+ label: 'Pédicure-podologue',
344
+ value: 'pedicure-podologue',
345
+ },
346
+ {
347
+ label: 'Pharmacien',
348
+ value: 'pharmacien',
349
+ },
350
+ ]
351
+
352
+ </script>`,
353
+ },
354
+ ],
355
+ },
356
+ }
357
+
358
+ export const ChipFormat: Story = {
359
+ args: {
360
+ 'onUpdate:modelValue': fn(),
361
+ },
362
+ decorators: [
363
+ () => ({
364
+ template: `
365
+ <VApp style="height: 500px; overflow-y: hidden;">
366
+ <div class="pa-4">
367
+ <story />
368
+ </div>
369
+ </VApp>
370
+ `,
371
+ }),
372
+ ],
373
+ render: args => ({
374
+ components: { FilterSideBar, RangeField },
375
+ setup() {
376
+ const filters = ref([
377
+ {
378
+ name: 'range-slider',
379
+ title: 'Intervalle',
380
+ value: [0, 50],
381
+ formatChip: ([min, max]: [number, number]) => [
382
+ {
383
+ text: `De ${min} à ${max}`,
384
+ value: [min, max],
385
+ },
386
+ ],
387
+ },
388
+ ])
389
+
390
+ return { args, filters }
391
+ },
392
+ template: `
393
+ <FilterSideBar
394
+ v-model="filters"
395
+ v-bind="args"
396
+ >
397
+ <template #range-slider="{ props }">
398
+ <RangeField
399
+ v-bind="props"
400
+ label="Intervalle"
401
+ />
402
+ </template>
403
+ </FilterSideBar>
404
+ `,
405
+ }),
406
+ parameters: {
407
+ sourceCode: [
408
+ {
409
+ name: 'Template',
410
+ code: `
411
+ <FilterSideBar
412
+ v-model="filters"
413
+ >
414
+ <template #range-slider="{ props }">
415
+ <RangeField
416
+ v-bind="props"
417
+ label="Intervalle"
418
+ />
419
+ </template>
420
+ </FilterSideBar>
421
+ `,
422
+ },
423
+ {
424
+ name: 'Script',
425
+ code: `
426
+ <script setup lang="ts">
427
+ import { ref } from 'vue'
428
+ import { FilterSideBar, RangeField } from '@cnamts/synapse'
429
+
430
+ const filters = ref([
431
+ {
432
+ name: 'range-slider',
433
+ title: 'Intervalle',
434
+ formatChip: ([min, max]: [number, number]) => [
435
+ {
436
+ text: \`De \${min} à \${max}\`,
437
+ value: [min, max],
438
+ },
439
+ ],
440
+ },
441
+ ])
442
+ </script>`,
443
+ },
444
+ ],
445
+ },
446
+ }
447
+
448
+ export const FilterCombination: Story = {
449
+ args: {
450
+ 'onUpdate:modelValue': fn(),
451
+ },
452
+ decorators: [
453
+ () => ({
454
+ template: `
455
+ <VApp style="height: 500px; overflow-y: hidden;">
456
+ <div class="pa-4">
457
+ <story />
458
+ </div>
459
+ </VApp>
460
+ `,
461
+ }),
462
+ ],
463
+ render: args => ({
464
+ components: { FilterSideBar, FilterInline, VTextField, VSelect, PeriodField, SearchListField, VDivider },
465
+ setup() {
466
+ const filters = ref([
467
+ {
468
+ name: 'name',
469
+ title: 'Identité',
470
+ },
471
+ {
472
+ name: 'folder',
473
+ title: 'Type de dossier',
474
+ },
475
+ {
476
+ name: 'period',
477
+ title: 'Période',
478
+ },
479
+ {
480
+ name: 'profession',
481
+ title: 'Profession',
482
+ },
483
+ ])
484
+
485
+ const folderTypes = [
486
+ {
487
+ title: 'AT',
488
+ value: 'at',
489
+ },
490
+ {
491
+ title: 'MP',
492
+ value: 'mp',
493
+ },
494
+ {
495
+ title: 'Autre',
496
+ value: 'other',
497
+ },
498
+ ]
499
+
500
+ const professionList = [
501
+ {
502
+ label: 'Chirurgien-dentiste',
503
+ value: 'chirurgien-dentiste',
504
+ },
505
+ {
506
+ label: 'Infirmier',
507
+ value: 'infirmier',
508
+ },
509
+ {
510
+ label: 'Orthophoniste',
511
+ value: 'orthophoniste',
512
+ },
513
+ {
514
+ label: 'Orthoptiste',
515
+ value: 'orthoptiste',
516
+ },
517
+ {
518
+ label: 'Pédicure-podologue',
519
+ value: 'pedicure-podologue',
520
+ },
521
+ {
522
+ label: 'Pharmacien',
523
+ value: 'pharmacien',
524
+ },
525
+ ]
526
+
527
+ return { args, filters, folderTypes, professionList }
528
+ },
529
+ template: `
530
+ <div>
531
+ <FilterSideBar
532
+ v-model="filters"
533
+ v-bind="args"
534
+ >
535
+ <template #name="{ props }">
536
+ <VTextField
537
+ v-bind="props"
538
+ label="Nom"
539
+ variant="outlined"
540
+ hide-details
541
+ color="primary"
542
+ />
543
+ </template>
544
+
545
+ <template #folder="{ props }">
546
+ <p class="text-secondary mb-4">
547
+ Vous pouvez filtrer entre les dossiers de type <b>Arrêt de Travail (AT)</b> et <b>Maladie Professionnelle (MP)</b> ou <b>Autre</b>.
548
+ </p>
549
+
550
+ <VSelect
551
+ v-bind="props"
552
+ :items="folderTypes"
553
+ label="Type de dossier"
554
+ multiple
555
+ variant="outlined"
556
+ return-object
557
+ hide-details
558
+ color="primary"
559
+ />
560
+ </template>
561
+
562
+ <template #period="{ props }">
563
+ <PeriodField
564
+ v-bind="props"
565
+ variant="outlined"
566
+ />
567
+ </template>
568
+
569
+ <template #profession="{ props }">
570
+ <SearchListField
571
+ v-bind="props"
572
+ :items="professionList"
573
+ />
574
+ </template>
575
+ </FilterSideBar>
576
+ <VDivider class="my-4" />
577
+ <FilterInline
578
+ v-model="filters"
579
+ v-bind="args"
580
+ >
581
+ <template #name="{ props }">
582
+ <VTextField
583
+ v-bind="props"
584
+ label="Nom"
585
+ variant="outlined"
586
+ hide-details
587
+ color="primary"
588
+ />
589
+ </template>
590
+
591
+ <template #folder="{ props }">
592
+ <p class="text-secondary mb-4">
593
+ Vous pouvez filtrer entre les dossiers de type <b>Arrêt de Travail (AT)</b> et <b>Maladie Professionnelle (MP)</b> ou <b>Autre</b>.
594
+ </p>
595
+
596
+ <VSelect
597
+ v-bind="props"
598
+ :items="folderTypes"
599
+ label="Type de dossier"
600
+ multiple
601
+ variant="outlined"
602
+ return-object
603
+ hide-details
604
+ color="primary"
605
+ />
606
+ </template>
607
+
608
+ <template #period="{ props }">
609
+ <PeriodField
610
+ v-bind="props"
611
+ variant="outlined"
612
+ />
613
+ </template>
614
+
615
+ <template #profession="{ props }">
616
+ <SearchListField
617
+ v-bind="props"
618
+ :items="professionList"
619
+ color="primary"
620
+ />
621
+ </template>
622
+ </FilterInline>
623
+ </div>
624
+ `,
625
+ }),
626
+ parameters: {
627
+ sourceCode: [
628
+ {
629
+ name: 'Template',
630
+ code: `
631
+ <div>
632
+ <FilterSideBar
633
+ v-model="filters"
634
+ >
635
+ <template #name="{ props }">
636
+ <VTextField
637
+ v-bind="props"
638
+ label="Nom"
639
+ variant="outlined"
640
+ hide-details
641
+ color="primary"
642
+ />
643
+ </template>
644
+
645
+ <template #folder="{ props }">
646
+ <p class="text-secondary mb-4">
647
+ Vous pouvez filtrer entre les dossiers de type <b>Arrêt de Travail (AT)</b> et <b>Maladie Professionnelle (MP)</b> ou <b>Autre</b>.
648
+ </p>
649
+
650
+ <VSelect
651
+ v-bind="props"
652
+ :items="folderTypes"
653
+ label="Type de dossier"
654
+ multiple
655
+ variant="outlined"
656
+ return-object
657
+ hide-details
658
+ color="primary"
659
+ />
660
+ </template>
661
+
662
+ <template #period="{ props }">
663
+ <PeriodField
664
+ v-bind="props"
665
+ variant="outlined"
666
+ />
667
+ </template>
668
+
669
+ <template #profession="{ props }">
670
+ <SearchListField
671
+ v-bind="props"
672
+ :items="professionList"
673
+ />
674
+ </template>
675
+ </FilterSideBar>
676
+ <VDivider class="my-4" />
677
+ <FilterInline
678
+ v-model="filters"
679
+ >
680
+ <template #name="{ props }">
681
+ <VTextField
682
+ v-bind="props"
683
+ label="Nom"
684
+ variant="outlined"
685
+ hide-details
686
+ color="primary"
687
+ />
688
+ </template>
689
+
690
+ <template #folder="{ props }">
691
+ <p class="text-secondary mb-4">
692
+ Vous pouvez filtrer entre les dossiers de type <b>Arrêt de Travail (AT)</b> et <b>Maladie Professionnelle (MP)</b> ou <b>Autre</b>.
693
+ </p>
694
+
695
+ <VSelect
696
+ v-bind="props"
697
+ :items="folderTypes"
698
+ label="Type de dossier"
699
+ multiple
700
+ variant="outlined"
701
+ return-object
702
+ hide-details
703
+ color="primary"
704
+ />
705
+ </template>
706
+
707
+ <template #period="{ props }">
708
+ <PeriodField
709
+ v-bind="props"
710
+ variant="outlined"
711
+ />
712
+ </template>
713
+
714
+ <template #profession="{ props }">
715
+ <SearchListField
716
+ v-bind="props"
717
+ :items="professionList"
718
+ color="primary"
719
+ />
720
+ </template>
721
+ </FilterInline>
722
+ </div>
723
+ `,
724
+ },
725
+ {
726
+ name: 'Script',
727
+ code: `
728
+ <script setup lang="ts">
729
+ import { ref } from 'vue'
730
+ import { FilterSideBar, filterInline, SearchListField, PeriodField } from '@cnamts/synapse'
731
+ import { VDivider, VSelect, VTextField } from 'vuetify/components'
732
+
733
+ const filters = ref([
734
+ {
735
+ name: 'name',
736
+ title: 'Identité',
737
+ },
738
+ {
739
+ name: 'folder',
740
+ title: 'Type de dossier',
741
+ },
742
+ {
743
+ name: 'period',
744
+ title: 'Période',
745
+ },
746
+ {
747
+ name: 'profession',
748
+ title: 'Profession',
749
+ },
750
+ ])
751
+
752
+ const folderTypes = [
753
+ {
754
+ title: 'AT',
755
+ value: 'at',
756
+ },
757
+ {
758
+ title: 'MP',
759
+ value: 'mp',
760
+ },
761
+ {
762
+ title: 'Autre',
763
+ value: 'other',
764
+ },
765
+ ]
766
+
767
+ const professionList = [
768
+ {
769
+ label: 'Chirurgien-dentiste',
770
+ value: 'chirurgien-dentiste',
771
+ },
772
+ {
773
+ label: 'Infirmier',
774
+ value: 'infirmier',
775
+ },
776
+ {
777
+ label: 'Orthophoniste',
778
+ value: 'orthophoniste',
779
+ },
780
+ {
781
+ label: 'Orthoptiste',
782
+ value: 'orthoptiste',
783
+ },
784
+ {
785
+ label: 'Pédicure-podologue',
786
+ value: 'pedicure-podologue',
787
+ },
788
+ {
789
+ label: 'Pharmacien',
790
+ value: 'pharmacien',
791
+ },
792
+ ]
793
+
794
+ </script>`,
795
+ },
796
+ ],
797
+ },
798
+ }