@cnamts/synapse 0.0.16-alpha → 1.0.1

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 (482) hide show
  1. package/dist/DateFilter-BmRuzQ9Z.js +98 -0
  2. package/dist/NumberFilter-CnIPDHqx.js +121 -0
  3. package/dist/PeriodFilter-CZwZ8CnQ.js +112 -0
  4. package/dist/SelectFilter-Cj-GW2Cc.js +97 -0
  5. package/dist/TextFilter-DTxZHJwX.js +114 -0
  6. package/dist/{components/BackBtn → common}/constants/ExpertiseLevelEnum.d.ts +3 -0
  7. package/dist/components/Accordion/Accordion.d.ts +39 -0
  8. package/dist/components/Accordion/config.d.ts +9 -0
  9. package/dist/components/BackBtn/AccessibiliteItems.d.ts +1 -1
  10. package/dist/components/BackToTopBtn/AccessibiliteItems.d.ts +1 -1
  11. package/dist/components/ChipList/AccessibiliteItems.d.ts +1 -1
  12. package/dist/components/ChipList/ChipList.d.ts +1 -1
  13. package/dist/components/CollapsibleList/AccessibiliteItems.d.ts +1 -1
  14. package/dist/components/ContextualMenu/AccessibiliteItems.d.ts +1 -1
  15. package/dist/components/CookieBanner/AccessibiliteItems.d.ts +1 -1
  16. package/dist/components/CopyBtn/AccessibiliteItems.d.ts +1 -1
  17. package/dist/components/CopyBtn/CopyBtn.d.ts +2 -0
  18. package/dist/components/Customs/SyBtnSelect/AccessibiliteItems.d.ts +1 -1
  19. package/dist/components/Customs/SyInputSelect/AccessibiliteItems.d.ts +1 -1
  20. package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +12 -0
  21. package/dist/components/Customs/SySelect/AccessibiliteItems.d.ts +1 -1
  22. package/dist/components/Customs/SySelect/SySelect.d.ts +43 -16
  23. package/dist/components/Customs/SyTextField/AccessibiliteItems.d.ts +1 -1
  24. package/dist/components/Customs/SyTextField/SyTextField.d.ts +17 -17
  25. package/dist/components/DataList/AccessibiliteItems.d.ts +1 -1
  26. package/dist/components/DataListGroup/AccessibiliteItems.d.ts +1 -1
  27. package/dist/components/DatePicker/AccessibiliteItems.d.ts +1 -1
  28. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +4162 -0
  29. package/dist/components/DatePicker/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +176 -136
  30. package/dist/components/DatePicker/{DateTextInput.d.ts → DateTextInput/DateTextInput.d.ts} +48 -42
  31. package/dist/components/DatePicker/composables/index.d.ts +15 -0
  32. package/dist/components/DatePicker/composables/useDateFormatValidation.d.ts +25 -0
  33. package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +33 -0
  34. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +16 -0
  35. package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +27 -0
  36. package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +29 -0
  37. package/dist/components/DatePicker/composables/useDateRangeValidation.d.ts +11 -0
  38. package/dist/components/DatePicker/composables/useDateSelection.d.ts +10 -0
  39. package/dist/components/DatePicker/composables/useDateValidation.d.ts +35 -0
  40. package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +16 -0
  41. package/dist/components/DatePicker/composables/useIconState.d.ts +17 -0
  42. package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +30 -0
  43. package/dist/components/DatePicker/composables/useInputHandler.d.ts +32 -0
  44. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +33 -0
  45. package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +9 -0
  46. package/dist/components/DatePicker/composables/useTodayButton.d.ts +16 -0
  47. package/dist/components/DatePicker/composables/useWeekendDays.d.ts +11 -0
  48. package/dist/components/DatePicker/constants/messages.d.ts +29 -0
  49. package/dist/components/DatePicker/types.d.ts +13 -0
  50. package/dist/components/DiacriticPicker/DiacriticPicker.d.ts +27 -0
  51. package/dist/components/DiacriticPicker/config.d.ts +14 -0
  52. package/dist/components/DiacriticPicker/locales.d.ts +6 -0
  53. package/dist/components/DialogBox/AccessibiliteItems.d.ts +1 -1
  54. package/dist/components/DownloadBtn/AccessibiliteItems.d.ts +1 -1
  55. package/dist/components/DownloadBtn/DownloadBtn.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/FooterBar/FooterBar.d.ts +1 -1
  66. package/dist/components/FranceConnectBtn/AccessibiliteItems.d.ts +1 -1
  67. package/dist/components/HeaderBar/AccessibiliteItems.d.ts +1 -1
  68. package/dist/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +1 -1
  69. package/dist/components/HeaderLoading/AccessibiliteItems.d.ts +1 -1
  70. package/dist/components/HeaderToolbar/AccessibiliteItems.d.ts +1 -1
  71. package/dist/components/LangBtn/AccessibiliteItems.d.ts +1 -1
  72. package/dist/components/Logo/AccessibiliteItems.d.ts +1 -1
  73. package/dist/components/LogoBrandSection/AccessibiliteItems.d.ts +1 -1
  74. package/dist/components/MaintenancePage/AccessibiliteItems.d.ts +1 -1
  75. package/dist/components/NirField/AccessibiliteItems.d.ts +1 -1
  76. package/dist/components/NirField/NirField.d.ts +34 -32
  77. package/dist/components/NotFoundPage/AccessibiliteItems.d.ts +1 -1
  78. package/dist/components/NotificationBar/AccessibiliteItems.d.ts +1 -1
  79. package/dist/components/NotificationBar/NotificationBar.d.ts +1 -1
  80. package/dist/components/PageContainer/AccessibiliteItems.d.ts +1 -1
  81. package/dist/components/PaginatedTable/AccessibiliteItems.d.ts +1 -1
  82. package/dist/components/PasswordField/AccessibiliteItems.d.ts +1 -1
  83. package/dist/components/PasswordField/PasswordField.d.ts +1 -1
  84. package/dist/components/PeriodField/AccessibiliteItems.d.ts +1 -1
  85. package/dist/components/PeriodField/PeriodField.d.ts +235 -101
  86. package/dist/components/PhoneField/AccessibiliteItems.d.ts +1 -1
  87. package/dist/components/PhoneField/PhoneField.d.ts +1 -0
  88. package/dist/components/PhoneField/tests/types.d.ts +18 -0
  89. package/dist/components/RangeField/AccessibiliteItems.d.ts +1 -1
  90. package/dist/components/RatingPicker/AccessibiliteItems.d.ts +1 -1
  91. package/dist/components/SearchListField/AccessibiliteItems.d.ts +1 -1
  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 +900 -0
  98. package/dist/components/SyTextArea/locales.d.ts +3 -0
  99. package/dist/components/SyTextArea/trimStartOnUpdate.d.ts +1 -0
  100. package/dist/components/SyTextArea/useTextActions.d.ts +13 -0
  101. package/dist/components/SyTextArea/wrapText.d.ts +1 -0
  102. package/dist/components/TableToolbar/AccessibiliteItems.d.ts +1 -1
  103. package/dist/components/TableToolbar/TableToolbar.d.ts +10 -4
  104. package/dist/components/TableToolbar/config.d.ts +3 -2
  105. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +647 -0
  106. package/dist/components/Tables/SyTable/SyTable.d.ts +666 -0
  107. package/dist/components/Tables/common/SyTableFilter.d.ts +126 -0
  108. package/dist/components/Tables/common/TableHeader.d.ts +33 -0
  109. package/dist/components/Tables/common/constants/StateEnum.d.ts +6 -0
  110. package/dist/components/Tables/common/filters/DateFilter.d.ts +121 -0
  111. package/dist/components/Tables/common/filters/NumberFilter.d.ts +132 -0
  112. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +135 -0
  113. package/dist/components/Tables/common/filters/SelectFilter.d.ts +120 -0
  114. package/dist/components/Tables/common/filters/TextFilter.d.ts +132 -0
  115. package/dist/components/Tables/common/formatters.d.ts +17 -0
  116. package/dist/components/Tables/common/locales.d.ts +7 -0
  117. package/dist/components/Tables/common/tableAccessibilityUtils.d.ts +8 -0
  118. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -0
  119. package/dist/components/Tables/common/tableStorageUtils.d.ts +29 -0
  120. package/dist/components/Tables/common/tableUtils.d.ts +42 -0
  121. package/dist/components/Tables/common/types.d.ts +80 -0
  122. package/dist/components/Tables/common/useTableFilter.d.ts +9 -0
  123. package/dist/components/Tables/index.d.ts +2 -0
  124. package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +1 -1
  125. package/dist/components/UserMenuBtn/AccessibiliteItems.d.ts +1 -1
  126. package/dist/components/index.d.ts +6 -1
  127. package/dist/composables/date/useHolidayDay.d.ts +36 -0
  128. package/dist/design-system-v3.js +100 -11271
  129. package/dist/design-system-v3.umd.cjs +22 -1
  130. package/dist/designTokens/index.d.ts +3 -1
  131. package/dist/designTokens/tokens/cnam/cnamFonts.d.ts +140 -0
  132. package/dist/designTokens/tokens/pa/paFonts.d.ts +140 -0
  133. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +1 -32
  134. package/dist/designTokens/utils/createFontVariables.d.ts +39 -0
  135. package/dist/designTokens/utils/index.d.ts +2 -1
  136. package/dist/main-WDqeoGM-.js +14788 -0
  137. package/dist/style.css +1 -1
  138. package/dist/utils/rules/index.d.ts +1 -0
  139. package/dist/utils/rules/isHolidayDay/index.d.ts +11 -0
  140. package/dist/utils/rules/isHolidayDay/locales.d.ts +2 -0
  141. package/dist/utils/rules/isRequired/index.d.ts +1 -1
  142. package/dist/vite-env.d.ts +12 -0
  143. package/package.json +2 -1
  144. package/src/assets/_spacers.scss +37 -1
  145. package/src/assets/_typography.scss +158 -0
  146. package/src/assets/settings.scss +19 -0
  147. package/src/common/constants/ExpertiseLevelEnum.ts +7 -0
  148. package/src/components/Accordion/Accordion.mdx +69 -0
  149. package/src/components/Accordion/Accordion.stories.ts +262 -0
  150. package/src/components/Accordion/Accordion.vue +319 -0
  151. package/src/components/Accordion/config.ts +9 -0
  152. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +155 -0
  153. package/src/components/Accordion/tests/accordion.spec.ts +492 -0
  154. package/src/components/BackBtn/AccessibiliteItems.ts +1 -1
  155. package/src/components/BackToTopBtn/AccessibiliteItems.ts +1 -1
  156. package/src/components/ChipList/AccessibiliteItems.ts +1 -1
  157. package/src/components/CollapsibleList/AccessibiliteItems.ts +1 -1
  158. package/src/components/ContextualMenu/AccessibiliteItems.ts +1 -1
  159. package/src/components/CookieBanner/AccessibiliteItems.ts +1 -1
  160. package/src/components/CopyBtn/AccessibiliteItems.ts +1 -1
  161. package/src/components/CopyBtn/CopyBtn.stories.ts +189 -0
  162. package/src/components/CopyBtn/CopyBtn.vue +29 -1
  163. package/src/components/CopyBtn/tests/CopyBtn.spec.ts +102 -0
  164. package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +1 -1
  165. package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +1 -1
  166. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +155 -1
  167. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +97 -14
  168. package/src/components/Customs/SyInputSelect/tests/SyInputSelect.spec.ts +386 -106
  169. package/src/components/Customs/SySelect/AccessibiliteItems.ts +1 -1
  170. package/src/components/Customs/SySelect/SySelect.stories.ts +121 -2
  171. package/src/components/Customs/SySelect/SySelect.vue +25 -6
  172. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +294 -3
  173. package/src/components/Customs/SyTextField/AccessibiliteItems.ts +1 -1
  174. package/src/components/Customs/SyTextField/SyTextField.vue +5 -3
  175. package/src/components/DataList/AccessibiliteItems.ts +1 -1
  176. package/src/components/DataListGroup/AccessibiliteItems.ts +1 -1
  177. package/src/components/DatePicker/AccessibiliteItems.ts +1 -1
  178. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +212 -0
  179. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1097 -0
  180. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +497 -180
  181. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +941 -0
  182. package/src/components/DatePicker/DatePicker/DatePicker.mdx +176 -0
  183. package/src/components/DatePicker/{tests → DatePicker}/DatePicker.spec.ts +1 -1
  184. package/src/components/DatePicker/{DatePicker.stories.ts → DatePicker/DatePicker.stories.ts} +115 -400
  185. package/src/components/DatePicker/{DatePicker.vue → DatePicker/DatePicker.vue} +314 -83
  186. package/src/components/DatePicker/DatePickerOverview.mdx +227 -0
  187. package/src/components/DatePicker/{DatePickerValidation.mdx → DatePickerValidationExample/DatePickerValidation.mdx} +3 -3
  188. package/src/components/DatePicker/{DatePickerValidation.stories.ts → DatePickerValidationExample/DatePickerValidation.stories.ts} +2 -2
  189. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +310 -0
  190. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +278 -0
  191. package/src/components/DatePicker/{tests → DateTextInput}/DateTextInput.spec.ts +8 -7
  192. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +916 -0
  193. package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +64 -0
  194. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +572 -0
  195. package/src/components/DatePicker/composables/index.ts +22 -0
  196. package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +165 -0
  197. package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +359 -0
  198. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +160 -0
  199. package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +339 -0
  200. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +277 -0
  201. package/src/components/DatePicker/composables/tests/useDateRangeValidation.spec.ts +107 -0
  202. package/src/components/DatePicker/composables/tests/useDateSelection.spec.ts +171 -0
  203. package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +245 -0
  204. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +98 -0
  205. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +130 -0
  206. package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +278 -0
  207. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +233 -0
  208. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +100 -0
  209. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +97 -0
  210. package/src/components/DatePicker/composables/tests/useWeekendDays.spec.ts +28 -0
  211. package/src/components/DatePicker/composables/useDateFormatValidation.ts +95 -0
  212. package/src/components/DatePicker/composables/useDateInputEditing.ts +326 -0
  213. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +61 -0
  214. package/src/components/DatePicker/composables/useDatePickerVisibility.ts +146 -0
  215. package/src/components/DatePicker/composables/useDateRangeInput.ts +375 -0
  216. package/src/components/DatePicker/composables/useDateRangeValidation.ts +48 -0
  217. package/src/components/DatePicker/composables/useDateSelection.ts +121 -0
  218. package/src/components/DatePicker/composables/useDateValidation.ts +225 -0
  219. package/src/components/DatePicker/composables/useDisplayedDateString.ts +58 -0
  220. package/src/components/DatePicker/composables/useIconState.ts +53 -0
  221. package/src/components/DatePicker/composables/useInputBlurHandler.ts +101 -0
  222. package/src/components/DatePicker/composables/useInputHandler.ts +436 -0
  223. package/src/components/DatePicker/composables/useManualDateValidation.ts +161 -0
  224. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +89 -0
  225. package/src/components/DatePicker/composables/useTodayButton.ts +43 -0
  226. package/src/components/DatePicker/composables/useWeekendDays.ts +21 -0
  227. package/src/components/DatePicker/constants/messages.ts +50 -0
  228. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
  229. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
  230. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +172 -0
  231. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +130 -0
  232. package/src/components/DatePicker/types.ts +15 -0
  233. package/src/components/DiacriticPicker/DiacriticPicker.mdx +104 -0
  234. package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +447 -0
  235. package/src/components/DiacriticPicker/DiacriticPicker.vue +262 -0
  236. package/src/components/DiacriticPicker/config.ts +15 -0
  237. package/src/components/DiacriticPicker/locales.ts +6 -0
  238. package/src/components/DiacriticPicker/tests/DiatriticPicker.spec.ts +132 -0
  239. package/src/components/DialogBox/AccessibiliteItems.ts +1 -1
  240. package/src/components/DialogBox/DialogBox.vue +1 -3
  241. package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -1
  242. package/src/components/ErrorPage/AccessibiliteItems.ts +1 -1
  243. package/src/components/ExternalLinks/AccessibiliteItems.ts +1 -1
  244. package/src/components/FileList/AccessibiliteItems.ts +1 -1
  245. package/src/components/FilePreview/AccessibiliteItems.ts +1 -1
  246. package/src/components/FileUpload/AccessibiliteItems.ts +1 -1
  247. package/src/components/FilterInline/AccessibiliteItems.ts +1 -1
  248. package/src/components/FilterSideBar/AccessibiliteItems.ts +1 -1
  249. package/src/components/FilterSideBar/FilterSideBar.vue +108 -90
  250. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +27 -0
  251. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +114 -109
  252. package/src/components/FooterBar/AccessibiliteItems.ts +1 -1
  253. package/src/components/FooterBar/FooterBar.vue +2 -1
  254. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +1 -1
  255. package/src/components/HeaderBar/AccessibiliteItems.ts +1 -1
  256. package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +1 -1
  257. package/src/components/HeaderLoading/AccessibiliteItems.ts +1 -1
  258. package/src/components/HeaderToolbar/AccessibiliteItems.ts +1 -1
  259. package/src/components/LangBtn/AccessibiliteItems.ts +1 -1
  260. package/src/components/Logo/Accessibilite.stories.ts +4 -0
  261. package/src/components/Logo/AccessibiliteItems.ts +1 -1
  262. package/src/components/LogoBrandSection/AccessibiliteItems.ts +1 -1
  263. package/src/components/MaintenancePage/AccessibiliteItems.ts +1 -1
  264. package/src/components/NirField/AccessibiliteItems.ts +1 -1
  265. package/src/components/NirField/NirField.stories.ts +172 -0
  266. package/src/components/NirField/NirField.vue +15 -7
  267. package/src/components/NotFoundPage/AccessibiliteItems.ts +1 -1
  268. package/src/components/NotificationBar/Accessibilite.stories.ts +1 -1
  269. package/src/components/NotificationBar/AccessibiliteItems.ts +1 -1
  270. package/src/components/NotificationBar/NotificationBar.stories.ts +14 -0
  271. package/src/components/NotificationBar/NotificationBar.vue +26 -3
  272. package/src/components/NotificationBar/{options.ts → config.ts} +0 -1
  273. package/src/components/PageContainer/AccessibiliteItems.ts +1 -1
  274. package/src/components/PaginatedTable/AccessibiliteItems.ts +1 -1
  275. package/src/components/PaginatedTable/PaginatedTable.stories.ts +19 -0
  276. package/src/components/PaginatedTable/PaginatedTable.vue +51 -24
  277. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -2
  278. package/src/components/PasswordField/AccessibiliteItems.ts +1 -1
  279. package/src/components/PasswordField/PasswordField.stories.ts +4 -3
  280. package/src/components/PasswordField/PasswordField.vue +26 -18
  281. package/src/components/PasswordField/tests/PasswordField.spec.ts +1 -10
  282. package/src/components/PeriodField/AccessibiliteItems.ts +1 -1
  283. package/src/components/PeriodField/PeriodField.vue +13 -1
  284. package/src/components/PhoneField/AccessibiliteItems.ts +1 -1
  285. package/src/components/PhoneField/PhoneField.stories.ts +143 -0
  286. package/src/components/PhoneField/PhoneField.vue +88 -30
  287. package/src/components/PhoneField/tests/PhoneField.additional.spec.ts +266 -0
  288. package/src/components/PhoneField/tests/PhoneField.spec.ts +248 -28
  289. package/src/components/PhoneField/tests/types.d.ts +19 -0
  290. package/src/components/RangeField/AccessibiliteItems.ts +1 -1
  291. package/src/components/RatingPicker/AccessibiliteItems.ts +1 -1
  292. package/src/components/SearchListField/AccessibiliteItems.ts +1 -1
  293. package/src/components/SelectBtnField/AccessibiliteItems.ts +1 -1
  294. package/src/components/SkipLink/AccessibiliteItems.ts +1 -1
  295. package/src/components/SocialMediaLinks/AccessibiliteItems.ts +1 -1
  296. package/src/components/SubHeader/AccessibiliteItems.ts +1 -1
  297. package/src/components/SyAlert/AccessibiliteItems.ts +1 -1
  298. package/src/components/SyTextArea/SyTextArea.mdx +17 -0
  299. package/src/components/SyTextArea/SyTextArea.stories.ts +322 -0
  300. package/src/components/SyTextArea/SyTextArea.vue +113 -0
  301. package/src/components/SyTextArea/locales.ts +3 -0
  302. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +194 -0
  303. package/src/components/SyTextArea/trimStartOnUpdate.ts +12 -0
  304. package/src/components/SyTextArea/useTextActions.ts +52 -0
  305. package/src/components/SyTextArea/wrapText.ts +42 -0
  306. package/src/components/TableToolbar/AccessibiliteItems.ts +1 -1
  307. package/src/components/TableToolbar/TableToolbar.mdx +86 -1
  308. package/src/components/TableToolbar/TableToolbar.stories.ts +509 -107
  309. package/src/components/TableToolbar/TableToolbar.vue +25 -8
  310. package/src/components/TableToolbar/config.ts +3 -2
  311. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +35 -12
  312. package/src/components/Tables/SyServerTable/FilterRules.stories.ts +83 -0
  313. package/src/components/Tables/SyServerTable/SyServerTable.mdx +160 -0
  314. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +2887 -0
  315. package/src/components/Tables/SyServerTable/SyServerTable.vue +302 -0
  316. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +450 -0
  317. package/src/components/Tables/SyServerTable/tests/__snapshots__/SyServerTable.spec.ts.snap +521 -0
  318. package/src/components/Tables/SyTable/FilterRules.stories.ts +235 -0
  319. package/src/components/Tables/SyTable/SyTable.mdx +129 -0
  320. package/src/components/Tables/SyTable/SyTable.stories.ts +1966 -0
  321. package/src/components/Tables/SyTable/SyTable.vue +317 -0
  322. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +345 -0
  323. package/src/components/Tables/SyTable/tests/__snapshots__/SyTable.spec.ts.snap +521 -0
  324. package/src/components/Tables/common/SyTableFilter.vue +342 -0
  325. package/src/components/Tables/common/TableHeader.vue +221 -0
  326. package/src/components/Tables/common/constants/StateEnum.ts +6 -0
  327. package/src/components/Tables/common/filters/DateFilter.vue +140 -0
  328. package/src/components/Tables/common/filters/NumberFilter.vue +234 -0
  329. package/src/components/Tables/common/filters/PeriodFilter.vue +147 -0
  330. package/src/components/Tables/common/filters/SelectFilter.vue +126 -0
  331. package/src/components/Tables/common/filters/TextFilter.vue +191 -0
  332. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +187 -0
  333. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +280 -0
  334. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +192 -0
  335. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +219 -0
  336. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +260 -0
  337. package/src/components/Tables/common/formatters.ts +72 -0
  338. package/src/components/Tables/common/locales.ts +7 -0
  339. package/src/components/Tables/common/tableAccessibilityUtils.ts +61 -0
  340. package/src/components/Tables/common/tableFilterUtils.ts +327 -0
  341. package/src/components/Tables/common/tableStorageUtils.ts +102 -0
  342. package/src/components/Tables/common/tableStyles.scss +54 -0
  343. package/src/components/Tables/common/tableUtils.ts +115 -0
  344. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +312 -0
  345. package/src/components/Tables/common/tests/resize.spec.ts +161 -0
  346. package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +106 -0
  347. package/src/components/Tables/common/tests/tableUtils.spec.ts +272 -0
  348. package/src/components/Tables/common/types.ts +81 -0
  349. package/src/components/Tables/common/useTableFilter.ts +19 -0
  350. package/src/components/Tables/index.ts +3 -0
  351. package/src/components/UploadWorkflow/AccessibiliteItems.ts +1 -1
  352. package/src/components/UserMenuBtn/AccessibiliteItems.ts +1 -1
  353. package/src/components/index.ts +6 -1
  354. package/src/composables/date/useDateFormatDayjs.ts +8 -3
  355. package/src/composables/date/useDateInitializationDayjs.ts +28 -36
  356. package/src/composables/date/useHolidayDay.ts +98 -0
  357. package/src/composables/rules/useFieldValidation.ts +16 -4
  358. package/src/composables/validation/useValidation.ts +2 -1
  359. package/src/designTokens/index.ts +4 -0
  360. package/src/designTokens/tokens/cnam/cnamFonts.ts +140 -0
  361. package/src/designTokens/tokens/pa/paFonts.ts +140 -0
  362. package/src/designTokens/tokens/pa/paLightTheme.ts +10 -41
  363. package/src/designTokens/utils/createFontVariables.ts +143 -0
  364. package/src/designTokens/utils/index.ts +2 -1
  365. package/src/stories/Accessibilite/Introduction.mdx +5 -2
  366. package/src/stories/Demarrer/Accueil.stories.ts +12 -3
  367. package/src/stories/DesignTokens/colors.stories.ts +100 -41
  368. package/src/utils/rules/index.ts +1 -0
  369. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +52 -0
  370. package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +129 -0
  371. package/src/utils/rules/isHolidayDay/index.ts +36 -0
  372. package/src/utils/rules/isHolidayDay/locales.ts +5 -0
  373. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +35 -0
  374. package/src/utils/rules/isRequired/index.ts +2 -1
  375. package/src/vite-env.d.ts +12 -0
  376. package/src/vuetifyConfig.ts +10 -3
  377. package/dist/components/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  378. package/dist/components/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -4
  379. package/dist/components/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -4
  380. package/dist/components/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  381. package/dist/components/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -4
  382. package/dist/components/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  383. package/dist/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  384. package/dist/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  385. package/dist/components/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  386. package/dist/components/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -4
  387. package/dist/components/DataList/constants/ExpertiseLevelEnum.d.ts +0 -4
  388. package/dist/components/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -4
  389. package/dist/components/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  390. package/dist/components/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -4
  391. package/dist/components/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  392. package/dist/components/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  393. package/dist/components/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  394. package/dist/components/FileList/constants/ExpertiseLevelEnum.d.ts +0 -4
  395. package/dist/components/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -4
  396. package/dist/components/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -4
  397. package/dist/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +0 -4
  398. package/dist/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  399. package/dist/components/FooterBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  400. package/dist/components/FranceConnectBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  401. package/dist/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  402. package/dist/components/HeaderBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  403. package/dist/components/HeaderLoading/constants/ExpertiseLevelEnum.d.ts +0 -4
  404. package/dist/components/HeaderToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  405. package/dist/components/LangBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  406. package/dist/components/Logo/constants/ExpertiseLevelEnum.d.ts +0 -4
  407. package/dist/components/LogoBrandSection/constants/ExpertiseLevelEnum.d.ts +0 -4
  408. package/dist/components/MaintenancePage/constants/ExpertiseLevelEnum.d.ts +0 -4
  409. package/dist/components/NirField/constants/ExpertiseLevelEnum.d.ts +0 -4
  410. package/dist/components/NotFoundPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  411. package/dist/components/NotificationBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  412. package/dist/components/PageContainer/constants/ExpertiseLevelEnum.d.ts +0 -4
  413. package/dist/components/PaginatedTable/constants/ExpertiseLevelEnum.d.ts +0 -4
  414. package/dist/components/PasswordField/constants/ExpertiseLevelEnum.d.ts +0 -4
  415. package/dist/components/PeriodField/constants/ExpertiseLevelEnum.d.ts +0 -4
  416. package/dist/components/PhoneField/constants/ExpertiseLevelEnum.d.ts +0 -4
  417. package/dist/components/RangeField/constants/ExpertiseLevelEnum.d.ts +0 -4
  418. package/dist/components/RatingPicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  419. package/dist/components/SearchListField/constants/ExpertiseLevelEnum.d.ts +0 -4
  420. package/dist/components/SelectBtnField/constants/ExpertiseLevelEnum.d.ts +0 -4
  421. package/dist/components/SkipLink/constants/ExpertiseLevelEnum.d.ts +0 -4
  422. package/dist/components/SocialMediaLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  423. package/dist/components/SubHeader/constants/ExpertiseLevelEnum.d.ts +0 -4
  424. package/dist/components/SyAlert/constants/ExpertiseLevelEnum.d.ts +0 -4
  425. package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  426. package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +0 -4
  427. package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  428. package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +0 -4
  429. package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +0 -4
  430. package/src/components/ChipList/constants/ExpertiseLevelEnum.ts +0 -4
  431. package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +0 -4
  432. package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +0 -4
  433. package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +0 -4
  434. package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +0 -4
  435. package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +0 -4
  436. package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +0 -4
  437. package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +0 -4
  438. package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +0 -4
  439. package/src/components/DataList/constants/ExpertiseLevelEnum.ts +0 -4
  440. package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +0 -4
  441. package/src/components/DatePicker/DatePicker.mdx +0 -222
  442. package/src/components/DatePicker/DateTextInput.vue +0 -493
  443. package/src/components/DatePicker/constants/ExpertiseLevelEnum.ts +0 -4
  444. package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +0 -4
  445. package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +0 -4
  446. package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +0 -4
  447. package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +0 -4
  448. package/src/components/FileList/constants/ExpertiseLevelEnum.ts +0 -4
  449. package/src/components/FilePreview/constants/ExpertiseLevelEnum.ts +0 -4
  450. package/src/components/FileUpload/constants/ExpertiseLevelEnum.ts +0 -4
  451. package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +0 -4
  452. package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +0 -4
  453. package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +0 -4
  454. package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +0 -4
  455. package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +0 -4
  456. package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +0 -4
  457. package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +0 -4
  458. package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  459. package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +0 -4
  460. package/src/components/Logo/constants/ExpertiseLevelEnum.ts +0 -4
  461. package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +0 -4
  462. package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +0 -4
  463. package/src/components/NirField/constants/ExpertiseLevelEnum.ts +0 -4
  464. package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +0 -4
  465. package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +0 -4
  466. package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +0 -4
  467. package/src/components/PaginatedTable/constants/ExpertiseLevelEnum.ts +0 -4
  468. package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +0 -4
  469. package/src/components/PeriodField/constants/ExpertiseLevelEnum.ts +0 -4
  470. package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +0 -4
  471. package/src/components/RangeField/constants/ExpertiseLevelEnum.ts +0 -4
  472. package/src/components/RatingPicker/constants/ExpertiseLevelEnum.ts +0 -4
  473. package/src/components/SearchListField/constants/ExpertiseLevelEnum.ts +0 -4
  474. package/src/components/SelectBtnField/constants/ExpertiseLevelEnum.ts +0 -4
  475. package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +0 -4
  476. package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +0 -4
  477. package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +0 -4
  478. package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +0 -4
  479. package/src/components/TableToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  480. package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +0 -4
  481. package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +0 -4
  482. /package/dist/components/NotificationBar/{options.d.ts → config.d.ts} +0 -0
@@ -4,6 +4,7 @@ import { describe, it, expect } from 'vitest'
4
4
  import { createVuetify } from 'vuetify'
5
5
  import * as components from 'vuetify/components'
6
6
  import * as directives from 'vuetify/directives'
7
+ import { indicatifs } from '../indicatifs'
7
8
 
8
9
  const vuetify = createVuetify({
9
10
  components,
@@ -31,7 +32,42 @@ describe('PhoneField', () => {
31
32
  expect(wrapper.emitted('change')).toBeTruthy()
32
33
  })
33
34
 
35
+ it('cleans spaces from phone number before validation', async () => {
36
+ const wrapper = mount(PhoneField, {
37
+ global: {
38
+ plugins: [vuetify],
39
+ },
40
+ props: {
41
+ required: true,
42
+ modelValue: '01 23 45 67 89',
43
+ isValidatedOnBlur: true,
44
+ },
45
+ })
46
+
47
+ await wrapper.vm.validateOnSubmit()
48
+
49
+ expect(wrapper.vm.hasError).toBe(false)
50
+ })
51
+
34
52
  it('validates phone number and country code on blur', async () => {
53
+ const wrapper = mount(PhoneField, {
54
+ global: {
55
+ plugins: [vuetify],
56
+ },
57
+ props: {
58
+ required: true,
59
+ modelValue: '',
60
+ isValidatedOnBlur: true,
61
+ },
62
+ })
63
+
64
+ const input = wrapper.find('input')
65
+ await input.setValue('123456')
66
+ await input.trigger('blur')
67
+
68
+ expect(wrapper.vm.hasError).toBe(true)
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Nécessaire pour accéder à errors
70
+ expect((wrapper.vm as any).errors.length).toBeGreaterThan(0)
35
71
  })
36
72
 
37
73
  it('applies default phone mask correctly', async () => {
@@ -55,6 +91,24 @@ describe('PhoneField', () => {
55
91
  })
56
92
 
57
93
  it('validates country code when countryCodeRequired is true', async () => {
94
+ const wrapper = mount(PhoneField, {
95
+ global: {
96
+ plugins: [vuetify],
97
+ },
98
+ props: {
99
+ withCountryCode: true,
100
+ countryCodeRequired: true,
101
+ modelValue: '0123456789',
102
+ },
103
+ })
104
+
105
+ const result = await wrapper.vm.validateOnSubmit()
106
+
107
+ expect(result).toBe(false)
108
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Nécessaire pour accéder à errors
109
+ expect((wrapper.vm as any).errors.length).toBeGreaterThan(0)
110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Nécessaire pour accéder à errors
111
+ expect((wrapper.vm as any).errors[0]).toContain('est requis')
58
112
  })
59
113
 
60
114
  it('updates phone mask and counter when dialCode changes', async () => {
@@ -70,7 +124,7 @@ describe('PhoneField', () => {
70
124
  expect(wrapper.vm.counter).toBe(10)
71
125
  })
72
126
 
73
- it('validates phone number and country code on blur', async () => {
127
+ it('validates phone number with country code on blur', async () => {
74
128
  const wrapper = mount(PhoneField, {
75
129
  global: {
76
130
  plugins: [vuetify],
@@ -84,15 +138,12 @@ describe('PhoneField', () => {
84
138
  },
85
139
  })
86
140
 
87
- // Simulate selecting a country code
88
141
  wrapper.vm.dialCode = { code: '+1', phoneLength: 10, mask: '###-###-####' }
89
142
  await wrapper.vm.$nextTick()
90
143
 
91
- // Simulate blur event
92
144
  const input = wrapper.find('input')
93
145
  await input.trigger('blur')
94
146
 
95
- // Check if validation was performed
96
147
  expect(wrapper.vm.hasError).toBe(false)
97
148
  })
98
149
 
@@ -111,7 +162,7 @@ describe('PhoneField', () => {
111
162
  expect(wrapper.vm.mergedDialCodes).toEqual(customIndicatifs)
112
163
  })
113
164
 
114
- it('validates phone number and country code on blur', async () => {
165
+ it('validates phone number with valid country code on blur', async () => {
115
166
  const wrapper = mount(PhoneField, {
116
167
  global: {
117
168
  plugins: [vuetify],
@@ -198,6 +249,161 @@ describe('PhoneField', () => {
198
249
 
199
250
  expect(dialCode).toHaveProperty('displayText')
200
251
  expect(typeof dialCode.displayText).toBe('string')
252
+ })
253
+
254
+ it('formats phone number correctly', () => {
255
+ const wrapper = mount(PhoneField, {
256
+ global: {
257
+ plugins: [vuetify],
258
+ },
259
+ props: {
260
+ modelValue: '0123456789',
261
+ },
262
+ })
263
+
264
+ expect(wrapper.vm.computedValue).toBe('01 23 45 67 89')
265
+ })
266
+
267
+ it('emits update:selectedDialCode when dialCode changes', async () => {
268
+ const wrapper = mount(PhoneField, {
269
+ global: {
270
+ plugins: [vuetify],
271
+ },
272
+ props: {
273
+ withCountryCode: true,
274
+ },
275
+ })
276
+
277
+ const dialCodeValue = { code: '+33', abbreviation: 'FR', country: 'France', phoneLength: 10, mask: '## ## ## ## ##' }
278
+ wrapper.vm.dialCode = dialCodeValue
279
+ await wrapper.vm.$nextTick()
280
+
281
+ expect(wrapper.emitted('update:selectedDialCode')).toBeTruthy()
282
+ const emittedEvents = wrapper.emitted('update:selectedDialCode')
283
+ expect(emittedEvents && emittedEvents[0][0]).toEqual(dialCodeValue)
284
+ })
285
+
286
+ it('validates phone number on submit', async () => {
287
+ const wrapper = mount(PhoneField, {
288
+ global: {
289
+ plugins: [vuetify],
290
+ },
291
+ props: {
292
+ required: true,
293
+ modelValue: '',
294
+ },
295
+ })
296
+
297
+ const result = await wrapper.vm.validateOnSubmit()
298
+
299
+ expect(result).toBe(false)
300
+ expect(wrapper.vm.hasError).toBe(true)
301
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Nécessaire pour accéder à errors
302
+ expect((wrapper.vm as any).errors.length).toBeGreaterThan(0)
303
+ })
304
+
305
+ it('validates phone number successfully on submit with valid input', async () => {
306
+ const wrapper = mount(PhoneField, {
307
+ global: {
308
+ plugins: [vuetify],
309
+ },
310
+ props: {
311
+ required: true,
312
+ modelValue: '0123456789',
313
+ },
314
+ })
315
+
316
+ const result = await wrapper.vm.validateOnSubmit()
317
+
318
+ expect(result).toBe(true)
319
+ expect(wrapper.vm.hasError).toBe(false)
320
+ })
321
+
322
+ it('exposes necessary properties and methods', () => {
323
+ const wrapper = mount(PhoneField, {
324
+ global: {
325
+ plugins: [vuetify],
326
+ },
327
+ })
328
+
329
+ expect(wrapper.vm.computedValue).toBeDefined()
330
+ expect(wrapper.vm.dialCode).toBeDefined()
331
+ expect(wrapper.vm.phoneMask).toBeDefined()
332
+ expect(wrapper.vm.counter).toBeDefined()
333
+ expect(wrapper.vm.hasError).toBeDefined()
334
+ expect(wrapper.vm.phoneNumber).toBeDefined()
335
+ expect(wrapper.vm.mergedDialCodes).toBeDefined()
336
+ expect(wrapper.vm.validation).toBeDefined()
337
+ expect(wrapper.vm.validateOnSubmit).toBeDefined()
338
+ })
339
+
340
+ it('updates validation rules when counter changes', async () => {
341
+ const wrapper = mount(PhoneField, {
342
+ global: {
343
+ plugins: [vuetify],
344
+ },
345
+ props: {
346
+ withCountryCode: true,
347
+ modelValue: '0123456789',
348
+ },
349
+ })
350
+
351
+ expect(wrapper.vm.counter).toBe(10)
352
+
353
+ wrapper.vm.dialCode = { code: '+44', abbreviation: 'UK', country: 'United Kingdom', phoneLength: 11, mask: '### ### #####' }
354
+ await wrapper.vm.$nextTick()
355
+
356
+ expect(wrapper.vm.counter).toBe(11)
357
+ })
358
+
359
+ it('handles disabled state correctly', async () => {
360
+ const wrapper = mount(PhoneField, {
361
+ global: {
362
+ plugins: [vuetify],
363
+ },
364
+ props: {
365
+ disabled: true,
366
+ withCountryCode: true,
367
+ },
368
+ })
369
+
370
+ const textField = wrapper.findComponent({ name: 'SyTextField' })
371
+ expect(textField.props('disabled')).toBe(true)
372
+
373
+ const select = wrapper.findComponent({ name: 'SySelect' })
374
+ expect(select.props('disabled')).toBe(true)
375
+ })
376
+
377
+ it('handles readonly state correctly', async () => {
378
+ const wrapper = mount(PhoneField, {
379
+ global: {
380
+ plugins: [vuetify],
381
+ },
382
+ props: {
383
+ readonly: true,
384
+ withCountryCode: true,
385
+ },
386
+ })
387
+
388
+ const textField = wrapper.findComponent({ name: 'SyTextField' })
389
+ expect(textField.props('readonly')).toBe(true)
390
+
391
+ const select = wrapper.findComponent({ name: 'SySelect' })
392
+ expect(select.props('readonly')).toBe(true)
393
+ })
394
+
395
+ it('verifies SyTextField and SySelect props are correctly passed', async () => {
396
+ const wrapper = mount(PhoneField, {
397
+ global: {
398
+ plugins: [vuetify],
399
+ },
400
+ props: {
401
+ withCountryCode: true,
402
+ dialCodeModel: { code: '+33', abbreviation: 'FR', country: 'France', phoneLength: 10, mask: '## ## ## ## ##' },
403
+ },
404
+ })
405
+
406
+ await wrapper.vm.$nextTick()
201
407
 
202
408
  expect(wrapper.vm.phoneMask).toBe('## ## ## ## ##')
203
409
  expect(wrapper.vm.counter).toBe(10)
@@ -209,11 +415,9 @@ describe('PhoneField', () => {
209
415
  const select = wrapper.findComponent({ name: 'SySelect' })
210
416
  expect(select.exists()).toBe(true)
211
417
  expect(select.props('returnObject')).toBe(true)
212
-
213
418
  expect(select.props('modelValue')).toEqual(wrapper.vm.dialCode)
214
419
  })
215
420
 
216
- // Test du watcher pour dialCodeModel
217
421
  it('updates dialCode when dialCodeModel changes after mount', async () => {
218
422
  const wrapper = mount(PhoneField, {
219
423
  global: {
@@ -221,27 +425,20 @@ describe('PhoneField', () => {
221
425
  },
222
426
  props: {
223
427
  withCountryCode: true,
224
- // Pas de dialCodeModel initial
225
428
  },
226
429
  })
227
430
 
228
- // Vérifier que dialCode est initialisé avec une chaîne vide
229
- // Dans le composant: const dialCode = ref<string | Record<string, any>>(props.dialCodeModel || '')
230
431
  expect(wrapper.vm.dialCode).toBe('')
231
432
 
232
- // Définir un dialCodeModel après le montage
233
433
  await wrapper.setProps({
234
434
  dialCodeModel: { code: '+1', country: 'USA', abbreviation: 'US', phoneLength: 10, mask: '###-###-####' },
235
435
  })
236
436
 
237
- // Attendre que le watcher s'exécute
238
437
  await wrapper.vm.$nextTick()
239
438
 
240
- // Vérifier que dialCode a été mis à jour
241
439
  expect(wrapper.vm.dialCode).toBeDefined()
242
440
  expect(typeof wrapper.vm.dialCode).toBe('object')
243
441
 
244
- // Utiliser une assertion de type pour indiquer à TypeScript que dialCode est un objet
245
442
  type Indicatif = {
246
443
  code: string
247
444
  country: string
@@ -258,9 +455,7 @@ describe('PhoneField', () => {
258
455
  expect(wrapper.vm.counter).toBe(10)
259
456
  })
260
457
 
261
- // Test pour les objets sans displayText
262
458
  it('handles dialCodeModel objects without displayText property', async () => {
263
- // Objet indicatif sans propriété displayText
264
459
  const indicatifSansDisplayText = {
265
460
  code: '+44',
266
461
  country: 'United Kingdom',
@@ -281,10 +476,8 @@ describe('PhoneField', () => {
281
476
 
282
477
  await wrapper.vm.$nextTick()
283
478
 
284
- // Vérifier que dialCode a été correctement initialisé
285
479
  expect(wrapper.vm.dialCode).toBeDefined()
286
480
 
287
- // Utiliser une assertion de type pour indiquer à TypeScript que dialCode est un objet
288
481
  type Indicatif = {
289
482
  code: string
290
483
  country: string
@@ -298,19 +491,12 @@ describe('PhoneField', () => {
298
491
  expect(dialCode.code).toBe('+44')
299
492
  expect(dialCode.country).toBe('United Kingdom')
300
493
 
301
- // Vérifier que la propriété displayText a été ajoutée
302
494
  expect(dialCode).toHaveProperty('displayText')
303
495
  expect(typeof dialCode.displayText).toBe('string')
304
- // Le format exact dépend de la fonction generateDisplayText, mais on peut vérifier qu'il contient le code
305
496
  expect(dialCode.displayText).toContain('+44')
306
497
  })
307
498
 
308
- // Test avec les indicatifs standards importés
309
499
  it('works correctly with standard indicatifs imported from indicatifs.ts', async () => {
310
- // Importer les indicatifs standards
311
- const { indicatifs } = await import('../indicatifs')
312
-
313
- // Trouver l'indicatif pour la France
314
500
  const franceIndicatif = indicatifs.find(ind => ind.country === 'France')
315
501
  expect(franceIndicatif).toBeDefined()
316
502
 
@@ -326,10 +512,8 @@ describe('PhoneField', () => {
326
512
 
327
513
  await wrapper.vm.$nextTick()
328
514
 
329
- // Vérifier que l'indicatif a été correctement appliqué
330
515
  expect(wrapper.vm.dialCode).toBeDefined()
331
516
 
332
- // Utiliser une assertion de type pour indiquer à TypeScript que dialCode est un objet
333
517
  type Indicatif = {
334
518
  code: string
335
519
  country: string
@@ -343,9 +527,45 @@ describe('PhoneField', () => {
343
527
  expect(dialCode.code).toBe('+33')
344
528
  expect(dialCode.country).toBe('France')
345
529
 
346
- // Vérifier que le SySelect affiche la bonne valeur
347
530
  const select = wrapper.findComponent({ name: 'SySelect' })
348
531
  expect(select.exists()).toBe(true)
349
532
  expect(select.props('modelValue')).toEqual(wrapper.vm.dialCode)
350
533
  })
534
+
535
+ it('disables error handling when readonly is true', async () => {
536
+ const wrapper = mount(PhoneField, {
537
+ global: {
538
+ plugins: [vuetify],
539
+ },
540
+ props: {
541
+ required: true,
542
+ modelValue: '',
543
+ readonly: true,
544
+ },
545
+ })
546
+
547
+ expect(wrapper.props('readonly')).toBe(true)
548
+
549
+ const isValid = await wrapper.vm.validateOnSubmit()
550
+
551
+ expect(isValid).toBe(true)
552
+
553
+ expect(wrapper.vm.hasError).toBe(false)
554
+ const wrapperNotReadonly = mount(PhoneField, {
555
+ global: {
556
+ plugins: [vuetify],
557
+ },
558
+ props: {
559
+ required: true,
560
+ modelValue: '',
561
+ readonly: false,
562
+ },
563
+ })
564
+
565
+ const isValidNotReadonly = await wrapperNotReadonly.vm.validateOnSubmit()
566
+
567
+ expect(isValidNotReadonly).toBe(false)
568
+
569
+ expect(wrapperNotReadonly.vm.hasError).toBe(true)
570
+ })
351
571
  })
@@ -0,0 +1,19 @@
1
+ import { ComponentPublicInstance } from 'vue'
2
+
3
+ declare module '@vue/test-utils' {
4
+ interface VueWrapper {
5
+ vm: ComponentPublicInstance & {
6
+ dialCode: {
7
+ code: string
8
+ country: string
9
+ abbreviation: string
10
+ phoneLength: number
11
+ mask: string
12
+ } | null
13
+ errors: string[]
14
+ hasError: boolean
15
+ phoneMask: string
16
+ validateOnSubmit: () => Promise<boolean>
17
+ }
18
+ }
19
+ }
@@ -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
  {
@@ -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
 
@@ -0,0 +1,17 @@
1
+ import {Controls, Canvas, Meta, Source} from '@storybook/blocks';
2
+
3
+ import * as SyTextAreaStories from './SyTextArea.stories';
4
+
5
+ <Meta of={SyTextAreaStories} />
6
+
7
+ # SyTextArea
8
+
9
+ Le composant `SyTextArea` étend les fonctionnalitées du composants `VTextArea` de `Vuetify` en ajoutant des contraintes.
10
+
11
+ <Canvas of={SyTextAreaStories.Default} />
12
+
13
+ # API
14
+
15
+ Les props du composant `SyTextArea` sont les mêmes que celles du composant `VTextArea` de `Vuetify`, avec quelques ajouts :
16
+
17
+ <Controls of={SyTextAreaStories.Default} />