@cnamts/synapse 1.0.0 → 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 (395) 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/BackBtn/AccessibiliteItems.d.ts +1 -1
  8. package/dist/components/BackToTopBtn/AccessibiliteItems.d.ts +1 -1
  9. package/dist/components/ChipList/AccessibiliteItems.d.ts +1 -1
  10. package/dist/components/CollapsibleList/AccessibiliteItems.d.ts +1 -1
  11. package/dist/components/ContextualMenu/AccessibiliteItems.d.ts +1 -1
  12. package/dist/components/CookieBanner/AccessibiliteItems.d.ts +1 -1
  13. package/dist/components/CopyBtn/AccessibiliteItems.d.ts +1 -1
  14. package/dist/components/Customs/SyBtnSelect/AccessibiliteItems.d.ts +1 -1
  15. package/dist/components/Customs/SyInputSelect/AccessibiliteItems.d.ts +1 -1
  16. package/dist/components/Customs/SySelect/AccessibiliteItems.d.ts +1 -1
  17. package/dist/components/Customs/SyTextField/AccessibiliteItems.d.ts +1 -1
  18. package/dist/components/DataList/AccessibiliteItems.d.ts +1 -1
  19. package/dist/components/DataListGroup/AccessibiliteItems.d.ts +1 -1
  20. package/dist/components/DatePicker/AccessibiliteItems.d.ts +1 -1
  21. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +4162 -0
  22. package/dist/components/DatePicker/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +142 -102
  23. package/dist/components/DatePicker/{DateTextInput.d.ts → DateTextInput/DateTextInput.d.ts} +32 -26
  24. package/dist/components/DatePicker/composables/index.d.ts +15 -0
  25. package/dist/components/DatePicker/composables/useDateFormatValidation.d.ts +25 -0
  26. package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +33 -0
  27. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +16 -0
  28. package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +27 -0
  29. package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +29 -0
  30. package/dist/components/DatePicker/composables/useDateRangeValidation.d.ts +11 -0
  31. package/dist/components/DatePicker/composables/useDateSelection.d.ts +10 -0
  32. package/dist/components/DatePicker/composables/useDateValidation.d.ts +35 -0
  33. package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +16 -0
  34. package/dist/components/DatePicker/composables/useIconState.d.ts +17 -0
  35. package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +30 -0
  36. package/dist/components/DatePicker/composables/useInputHandler.d.ts +32 -0
  37. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +33 -0
  38. package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +9 -0
  39. package/dist/components/DatePicker/composables/useTodayButton.d.ts +16 -0
  40. package/dist/components/DatePicker/composables/useWeekendDays.d.ts +11 -0
  41. package/dist/components/DatePicker/constants/messages.d.ts +29 -0
  42. package/dist/components/DatePicker/types.d.ts +13 -0
  43. package/dist/components/DialogBox/AccessibiliteItems.d.ts +1 -1
  44. package/dist/components/DownloadBtn/AccessibiliteItems.d.ts +1 -1
  45. package/dist/components/ErrorPage/AccessibiliteItems.d.ts +1 -1
  46. package/dist/components/ExternalLinks/AccessibiliteItems.d.ts +1 -1
  47. package/dist/components/FileList/AccessibiliteItems.d.ts +1 -1
  48. package/dist/components/FilePreview/AccessibiliteItems.d.ts +1 -1
  49. package/dist/components/FileUpload/AccessibiliteItems.d.ts +1 -1
  50. package/dist/components/FilterInline/AccessibiliteItems.d.ts +1 -1
  51. package/dist/components/FilterSideBar/AccessibiliteItems.d.ts +1 -1
  52. package/dist/components/FilterSideBar/FilterSideBar.d.ts +395 -1
  53. package/dist/components/FooterBar/AccessibiliteItems.d.ts +1 -1
  54. package/dist/components/FranceConnectBtn/AccessibiliteItems.d.ts +1 -1
  55. package/dist/components/HeaderBar/AccessibiliteItems.d.ts +1 -1
  56. package/dist/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +1 -1
  57. package/dist/components/HeaderLoading/AccessibiliteItems.d.ts +1 -1
  58. package/dist/components/HeaderToolbar/AccessibiliteItems.d.ts +1 -1
  59. package/dist/components/LangBtn/AccessibiliteItems.d.ts +1 -1
  60. package/dist/components/Logo/AccessibiliteItems.d.ts +1 -1
  61. package/dist/components/LogoBrandSection/AccessibiliteItems.d.ts +1 -1
  62. package/dist/components/MaintenancePage/AccessibiliteItems.d.ts +1 -1
  63. package/dist/components/NirField/AccessibiliteItems.d.ts +1 -1
  64. package/dist/components/NotFoundPage/AccessibiliteItems.d.ts +1 -1
  65. package/dist/components/NotificationBar/AccessibiliteItems.d.ts +1 -1
  66. package/dist/components/PageContainer/AccessibiliteItems.d.ts +1 -1
  67. package/dist/components/PaginatedTable/AccessibiliteItems.d.ts +1 -1
  68. package/dist/components/PasswordField/AccessibiliteItems.d.ts +1 -1
  69. package/dist/components/PeriodField/AccessibiliteItems.d.ts +1 -1
  70. package/dist/components/PeriodField/PeriodField.d.ts +171 -37
  71. package/dist/components/PhoneField/AccessibiliteItems.d.ts +1 -1
  72. package/dist/components/RangeField/AccessibiliteItems.d.ts +1 -1
  73. package/dist/components/RatingPicker/AccessibiliteItems.d.ts +1 -1
  74. package/dist/components/SearchListField/AccessibiliteItems.d.ts +1 -1
  75. package/dist/components/SelectBtnField/AccessibiliteItems.d.ts +1 -1
  76. package/dist/components/SkipLink/AccessibiliteItems.d.ts +1 -1
  77. package/dist/components/SocialMediaLinks/AccessibiliteItems.d.ts +1 -1
  78. package/dist/components/SubHeader/AccessibiliteItems.d.ts +1 -1
  79. package/dist/components/SyAlert/AccessibiliteItems.d.ts +1 -1
  80. package/dist/components/TableToolbar/AccessibiliteItems.d.ts +1 -1
  81. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +647 -0
  82. package/dist/components/Tables/SyTable/SyTable.d.ts +666 -0
  83. package/dist/components/Tables/common/SyTableFilter.d.ts +126 -0
  84. package/dist/components/Tables/common/TableHeader.d.ts +33 -0
  85. package/dist/components/Tables/common/constants/StateEnum.d.ts +6 -0
  86. package/dist/components/Tables/common/filters/DateFilter.d.ts +121 -0
  87. package/dist/components/Tables/common/filters/NumberFilter.d.ts +132 -0
  88. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +135 -0
  89. package/dist/components/Tables/common/filters/SelectFilter.d.ts +120 -0
  90. package/dist/components/Tables/common/filters/TextFilter.d.ts +132 -0
  91. package/dist/components/Tables/common/formatters.d.ts +17 -0
  92. package/dist/components/Tables/common/locales.d.ts +7 -0
  93. package/dist/components/Tables/common/tableAccessibilityUtils.d.ts +8 -0
  94. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -0
  95. package/dist/components/Tables/common/tableStorageUtils.d.ts +29 -0
  96. package/dist/components/Tables/common/tableUtils.d.ts +42 -0
  97. package/dist/components/Tables/common/types.d.ts +80 -0
  98. package/dist/components/Tables/common/useTableFilter.d.ts +9 -0
  99. package/dist/components/Tables/index.d.ts +2 -0
  100. package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +1 -1
  101. package/dist/components/UserMenuBtn/AccessibiliteItems.d.ts +1 -1
  102. package/dist/components/index.d.ts +3 -1
  103. package/dist/design-system-v3.js +100 -11944
  104. package/dist/design-system-v3.umd.cjs +22 -4
  105. package/dist/designTokens/index.d.ts +3 -1
  106. package/dist/designTokens/tokens/cnam/cnamFonts.d.ts +140 -0
  107. package/dist/designTokens/tokens/pa/paFonts.d.ts +140 -0
  108. package/dist/designTokens/utils/createFontVariables.d.ts +39 -0
  109. package/dist/designTokens/utils/index.d.ts +2 -1
  110. package/dist/main-WDqeoGM-.js +14788 -0
  111. package/dist/style.css +1 -1
  112. package/dist/utils/rules/isRequired/index.d.ts +1 -1
  113. package/dist/vite-env.d.ts +12 -0
  114. package/package.json +3 -3
  115. package/src/assets/_spacers.scss +37 -1
  116. package/src/assets/_typography.scss +158 -0
  117. package/src/assets/settings.scss +7 -0
  118. package/src/common/constants/ExpertiseLevelEnum.ts +7 -0
  119. package/src/components/BackBtn/AccessibiliteItems.ts +1 -1
  120. package/src/components/BackToTopBtn/AccessibiliteItems.ts +1 -1
  121. package/src/components/ChipList/AccessibiliteItems.ts +1 -1
  122. package/src/components/CollapsibleList/AccessibiliteItems.ts +1 -1
  123. package/src/components/ContextualMenu/AccessibiliteItems.ts +1 -1
  124. package/src/components/CookieBanner/AccessibiliteItems.ts +1 -1
  125. package/src/components/CopyBtn/AccessibiliteItems.ts +1 -1
  126. package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +1 -1
  127. package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +1 -1
  128. package/src/components/Customs/SySelect/AccessibiliteItems.ts +1 -1
  129. package/src/components/Customs/SySelect/SySelect.vue +3 -9
  130. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +4 -2
  131. package/src/components/Customs/SyTextField/AccessibiliteItems.ts +1 -1
  132. package/src/components/DataList/AccessibiliteItems.ts +1 -1
  133. package/src/components/DataListGroup/AccessibiliteItems.ts +1 -1
  134. package/src/components/DatePicker/AccessibiliteItems.ts +1 -1
  135. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +212 -0
  136. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1097 -0
  137. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +497 -180
  138. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +941 -0
  139. package/src/components/DatePicker/DatePicker/DatePicker.mdx +176 -0
  140. package/src/components/DatePicker/{tests → DatePicker}/DatePicker.spec.ts +1 -1
  141. package/src/components/DatePicker/{DatePicker.stories.ts → DatePicker/DatePicker.stories.ts} +115 -400
  142. package/src/components/DatePicker/{DatePicker.vue → DatePicker/DatePicker.vue} +302 -84
  143. package/src/components/DatePicker/DatePickerOverview.mdx +227 -0
  144. package/src/components/DatePicker/{DatePickerValidation.mdx → DatePickerValidationExample/DatePickerValidation.mdx} +3 -3
  145. package/src/components/DatePicker/{DatePickerValidation.stories.ts → DatePickerValidationExample/DatePickerValidation.stories.ts} +2 -2
  146. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +310 -0
  147. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +278 -0
  148. package/src/components/DatePicker/{tests → DateTextInput}/DateTextInput.spec.ts +8 -7
  149. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +916 -0
  150. package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +64 -0
  151. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +572 -0
  152. package/src/components/DatePicker/composables/index.ts +22 -0
  153. package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +165 -0
  154. package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +359 -0
  155. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +160 -0
  156. package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +339 -0
  157. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +277 -0
  158. package/src/components/DatePicker/composables/tests/useDateRangeValidation.spec.ts +107 -0
  159. package/src/components/DatePicker/composables/tests/useDateSelection.spec.ts +171 -0
  160. package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +245 -0
  161. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +98 -0
  162. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +130 -0
  163. package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +278 -0
  164. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +233 -0
  165. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +100 -0
  166. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +97 -0
  167. package/src/components/DatePicker/composables/tests/useWeekendDays.spec.ts +28 -0
  168. package/src/components/DatePicker/composables/useDateFormatValidation.ts +95 -0
  169. package/src/components/DatePicker/composables/useDateInputEditing.ts +326 -0
  170. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +61 -0
  171. package/src/components/DatePicker/composables/useDatePickerVisibility.ts +146 -0
  172. package/src/components/DatePicker/composables/useDateRangeInput.ts +375 -0
  173. package/src/components/DatePicker/composables/useDateRangeValidation.ts +48 -0
  174. package/src/components/DatePicker/composables/useDateSelection.ts +121 -0
  175. package/src/components/DatePicker/composables/useDateValidation.ts +225 -0
  176. package/src/components/DatePicker/composables/useDisplayedDateString.ts +58 -0
  177. package/src/components/DatePicker/composables/useIconState.ts +53 -0
  178. package/src/components/DatePicker/composables/useInputBlurHandler.ts +101 -0
  179. package/src/components/DatePicker/composables/useInputHandler.ts +436 -0
  180. package/src/components/DatePicker/composables/useManualDateValidation.ts +161 -0
  181. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +89 -0
  182. package/src/components/DatePicker/composables/useTodayButton.ts +43 -0
  183. package/src/components/DatePicker/composables/useWeekendDays.ts +21 -0
  184. package/src/components/DatePicker/constants/messages.ts +50 -0
  185. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
  186. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
  187. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +172 -0
  188. package/src/components/DatePicker/types.ts +15 -0
  189. package/src/components/DialogBox/AccessibiliteItems.ts +1 -1
  190. package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -1
  191. package/src/components/ErrorPage/AccessibiliteItems.ts +1 -1
  192. package/src/components/ExternalLinks/AccessibiliteItems.ts +1 -1
  193. package/src/components/FileList/AccessibiliteItems.ts +1 -1
  194. package/src/components/FilePreview/AccessibiliteItems.ts +1 -1
  195. package/src/components/FileUpload/AccessibiliteItems.ts +1 -1
  196. package/src/components/FilterInline/AccessibiliteItems.ts +1 -1
  197. package/src/components/FilterSideBar/AccessibiliteItems.ts +1 -1
  198. package/src/components/FilterSideBar/FilterSideBar.vue +108 -90
  199. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +27 -0
  200. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +114 -109
  201. package/src/components/FooterBar/AccessibiliteItems.ts +1 -1
  202. package/src/components/FooterBar/FooterBar.vue +2 -1
  203. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +1 -1
  204. package/src/components/HeaderBar/AccessibiliteItems.ts +1 -1
  205. package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +1 -1
  206. package/src/components/HeaderLoading/AccessibiliteItems.ts +1 -1
  207. package/src/components/HeaderToolbar/AccessibiliteItems.ts +1 -1
  208. package/src/components/LangBtn/AccessibiliteItems.ts +1 -1
  209. package/src/components/Logo/Accessibilite.stories.ts +4 -0
  210. package/src/components/Logo/AccessibiliteItems.ts +1 -1
  211. package/src/components/LogoBrandSection/AccessibiliteItems.ts +1 -1
  212. package/src/components/MaintenancePage/AccessibiliteItems.ts +1 -1
  213. package/src/components/NirField/AccessibiliteItems.ts +1 -1
  214. package/src/components/NotFoundPage/AccessibiliteItems.ts +1 -1
  215. package/src/components/NotificationBar/AccessibiliteItems.ts +1 -1
  216. package/src/components/PageContainer/AccessibiliteItems.ts +1 -1
  217. package/src/components/PaginatedTable/AccessibiliteItems.ts +1 -1
  218. package/src/components/PaginatedTable/PaginatedTable.stories.ts +19 -0
  219. package/src/components/PaginatedTable/PaginatedTable.vue +51 -13
  220. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -2
  221. package/src/components/PasswordField/AccessibiliteItems.ts +1 -1
  222. package/src/components/PeriodField/AccessibiliteItems.ts +1 -1
  223. package/src/components/PeriodField/PeriodField.vue +13 -1
  224. package/src/components/PhoneField/AccessibiliteItems.ts +1 -1
  225. package/src/components/RangeField/AccessibiliteItems.ts +1 -1
  226. package/src/components/RatingPicker/AccessibiliteItems.ts +1 -1
  227. package/src/components/SearchListField/AccessibiliteItems.ts +1 -1
  228. package/src/components/SelectBtnField/AccessibiliteItems.ts +1 -1
  229. package/src/components/SkipLink/AccessibiliteItems.ts +1 -1
  230. package/src/components/SocialMediaLinks/AccessibiliteItems.ts +1 -1
  231. package/src/components/SubHeader/AccessibiliteItems.ts +1 -1
  232. package/src/components/SyAlert/AccessibiliteItems.ts +1 -1
  233. package/src/components/TableToolbar/AccessibiliteItems.ts +1 -1
  234. package/src/components/TableToolbar/TableToolbar.stories.ts +110 -56
  235. package/src/components/Tables/SyServerTable/FilterRules.stories.ts +83 -0
  236. package/src/components/Tables/SyServerTable/SyServerTable.mdx +160 -0
  237. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +2887 -0
  238. package/src/components/Tables/SyServerTable/SyServerTable.vue +302 -0
  239. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +450 -0
  240. package/src/components/Tables/SyServerTable/tests/__snapshots__/SyServerTable.spec.ts.snap +521 -0
  241. package/src/components/Tables/SyTable/FilterRules.stories.ts +235 -0
  242. package/src/components/Tables/SyTable/SyTable.mdx +129 -0
  243. package/src/components/Tables/SyTable/SyTable.stories.ts +1966 -0
  244. package/src/components/Tables/SyTable/SyTable.vue +317 -0
  245. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +345 -0
  246. package/src/components/Tables/SyTable/tests/__snapshots__/SyTable.spec.ts.snap +521 -0
  247. package/src/components/Tables/common/SyTableFilter.vue +342 -0
  248. package/src/components/Tables/common/TableHeader.vue +221 -0
  249. package/src/components/Tables/common/constants/StateEnum.ts +6 -0
  250. package/src/components/Tables/common/filters/DateFilter.vue +140 -0
  251. package/src/components/Tables/common/filters/NumberFilter.vue +234 -0
  252. package/src/components/Tables/common/filters/PeriodFilter.vue +147 -0
  253. package/src/components/Tables/common/filters/SelectFilter.vue +126 -0
  254. package/src/components/Tables/common/filters/TextFilter.vue +191 -0
  255. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +187 -0
  256. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +280 -0
  257. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +192 -0
  258. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +219 -0
  259. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +260 -0
  260. package/src/components/Tables/common/formatters.ts +72 -0
  261. package/src/components/Tables/common/locales.ts +7 -0
  262. package/src/components/Tables/common/tableAccessibilityUtils.ts +61 -0
  263. package/src/components/Tables/common/tableFilterUtils.ts +327 -0
  264. package/src/components/Tables/common/tableStorageUtils.ts +102 -0
  265. package/src/components/Tables/common/tableStyles.scss +54 -0
  266. package/src/components/Tables/common/tableUtils.ts +115 -0
  267. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +312 -0
  268. package/src/components/Tables/common/tests/resize.spec.ts +161 -0
  269. package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +106 -0
  270. package/src/components/Tables/common/tests/tableUtils.spec.ts +272 -0
  271. package/src/components/Tables/common/types.ts +81 -0
  272. package/src/components/Tables/common/useTableFilter.ts +19 -0
  273. package/src/components/Tables/index.ts +3 -0
  274. package/src/components/UploadWorkflow/AccessibiliteItems.ts +1 -1
  275. package/src/components/UserMenuBtn/AccessibiliteItems.ts +1 -1
  276. package/src/components/index.ts +3 -1
  277. package/src/composables/date/useDateFormatDayjs.ts +8 -3
  278. package/src/composables/date/useDateInitializationDayjs.ts +28 -36
  279. package/src/composables/rules/useFieldValidation.ts +1 -2
  280. package/src/designTokens/index.ts +4 -0
  281. package/src/designTokens/tokens/cnam/cnamFonts.ts +140 -0
  282. package/src/designTokens/tokens/pa/paFonts.ts +140 -0
  283. package/src/designTokens/utils/createFontVariables.ts +143 -0
  284. package/src/designTokens/utils/index.ts +2 -1
  285. package/src/stories/Demarrer/Accueil.stories.ts +12 -3
  286. package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +1 -1
  287. package/src/utils/rules/isRequired/index.ts +2 -1
  288. package/src/vite-env.d.ts +12 -0
  289. package/src/vuetifyConfig.ts +10 -3
  290. package/dist/components/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  291. package/dist/components/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -4
  292. package/dist/components/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -4
  293. package/dist/components/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  294. package/dist/components/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -4
  295. package/dist/components/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  296. package/dist/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  297. package/dist/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  298. package/dist/components/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  299. package/dist/components/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -4
  300. package/dist/components/DataList/constants/ExpertiseLevelEnum.d.ts +0 -4
  301. package/dist/components/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -4
  302. package/dist/components/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  303. package/dist/components/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -4
  304. package/dist/components/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  305. package/dist/components/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  306. package/dist/components/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  307. package/dist/components/FileList/constants/ExpertiseLevelEnum.d.ts +0 -4
  308. package/dist/components/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -4
  309. package/dist/components/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -4
  310. package/dist/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +0 -4
  311. package/dist/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  312. package/dist/components/FooterBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  313. package/dist/components/FranceConnectBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  314. package/dist/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  315. package/dist/components/HeaderBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  316. package/dist/components/HeaderLoading/constants/ExpertiseLevelEnum.d.ts +0 -4
  317. package/dist/components/HeaderToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  318. package/dist/components/LangBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  319. package/dist/components/Logo/constants/ExpertiseLevelEnum.d.ts +0 -4
  320. package/dist/components/LogoBrandSection/constants/ExpertiseLevelEnum.d.ts +0 -4
  321. package/dist/components/MaintenancePage/constants/ExpertiseLevelEnum.d.ts +0 -4
  322. package/dist/components/NirField/constants/ExpertiseLevelEnum.d.ts +0 -4
  323. package/dist/components/NotFoundPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  324. package/dist/components/NotificationBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  325. package/dist/components/PageContainer/constants/ExpertiseLevelEnum.d.ts +0 -4
  326. package/dist/components/PaginatedTable/constants/ExpertiseLevelEnum.d.ts +0 -4
  327. package/dist/components/PasswordField/constants/ExpertiseLevelEnum.d.ts +0 -4
  328. package/dist/components/PeriodField/constants/ExpertiseLevelEnum.d.ts +0 -4
  329. package/dist/components/PhoneField/constants/ExpertiseLevelEnum.d.ts +0 -4
  330. package/dist/components/RangeField/constants/ExpertiseLevelEnum.d.ts +0 -4
  331. package/dist/components/RatingPicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  332. package/dist/components/SearchListField/constants/ExpertiseLevelEnum.d.ts +0 -4
  333. package/dist/components/SelectBtnField/constants/ExpertiseLevelEnum.d.ts +0 -4
  334. package/dist/components/SkipLink/constants/ExpertiseLevelEnum.d.ts +0 -4
  335. package/dist/components/SocialMediaLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  336. package/dist/components/SubHeader/constants/ExpertiseLevelEnum.d.ts +0 -4
  337. package/dist/components/SyAlert/constants/ExpertiseLevelEnum.d.ts +0 -4
  338. package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  339. package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +0 -4
  340. package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  341. package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +0 -4
  342. package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +0 -4
  343. package/src/components/ChipList/constants/ExpertiseLevelEnum.ts +0 -4
  344. package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +0 -4
  345. package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +0 -4
  346. package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +0 -4
  347. package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +0 -4
  348. package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +0 -4
  349. package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +0 -4
  350. package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +0 -4
  351. package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +0 -4
  352. package/src/components/DataList/constants/ExpertiseLevelEnum.ts +0 -4
  353. package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +0 -4
  354. package/src/components/DatePicker/DatePicker.mdx +0 -222
  355. package/src/components/DatePicker/DateTextInput.vue +0 -504
  356. package/src/components/DatePicker/constants/ExpertiseLevelEnum.ts +0 -4
  357. package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +0 -4
  358. package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +0 -4
  359. package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +0 -4
  360. package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +0 -4
  361. package/src/components/FileList/constants/ExpertiseLevelEnum.ts +0 -4
  362. package/src/components/FilePreview/constants/ExpertiseLevelEnum.ts +0 -4
  363. package/src/components/FileUpload/constants/ExpertiseLevelEnum.ts +0 -4
  364. package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +0 -4
  365. package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +0 -4
  366. package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +0 -4
  367. package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +0 -4
  368. package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +0 -4
  369. package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +0 -4
  370. package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +0 -4
  371. package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  372. package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +0 -4
  373. package/src/components/Logo/constants/ExpertiseLevelEnum.ts +0 -4
  374. package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +0 -4
  375. package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +0 -4
  376. package/src/components/NirField/constants/ExpertiseLevelEnum.ts +0 -4
  377. package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +0 -4
  378. package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +0 -4
  379. package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +0 -4
  380. package/src/components/PaginatedTable/constants/ExpertiseLevelEnum.ts +0 -4
  381. package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +0 -4
  382. package/src/components/PeriodField/constants/ExpertiseLevelEnum.ts +0 -4
  383. package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +0 -4
  384. package/src/components/RangeField/constants/ExpertiseLevelEnum.ts +0 -4
  385. package/src/components/RatingPicker/constants/ExpertiseLevelEnum.ts +0 -4
  386. package/src/components/SearchListField/constants/ExpertiseLevelEnum.ts +0 -4
  387. package/src/components/SelectBtnField/constants/ExpertiseLevelEnum.ts +0 -4
  388. package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +0 -4
  389. package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +0 -4
  390. package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +0 -4
  391. package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +0 -4
  392. package/src/components/TableToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  393. package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +0 -4
  394. package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +0 -4
  395. /package/src/components/DatePicker/{examples → playground}/DatePickerHolidayRule.vue +0 -0
@@ -0,0 +1,1097 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import DatePicker from '../DatePicker/DatePicker.vue'
3
+ import SyAlert from '@/components/SyAlert/SyAlert.vue'
4
+ import { ref, onMounted } from 'vue'
5
+
6
+ const meta = {
7
+ title: 'Composants/Formulaires/DatePicker/CombinedMode',
8
+ component: DatePicker,
9
+ decorators: [
10
+ () => ({
11
+ template: '<div style="padding: 20px;"><story/></div>',
12
+ }),
13
+ ],
14
+ parameters: {
15
+ layout: 'fullscreen',
16
+ controls: { exclude: ['modelValue'] },
17
+ },
18
+ argTypes: {
19
+ modelValue: {
20
+ control: 'text',
21
+ description: 'Valeur du champ',
22
+ },
23
+ placeholder: {
24
+ control: 'text',
25
+ description: 'Texte indicatif',
26
+ },
27
+ format: {
28
+ control: 'select',
29
+ options: ['DD/MM/YYYY', 'MM/DD/YYYY', 'YYYY-MM-DD'],
30
+ description: 'Format d\'affichage de la date',
31
+ },
32
+ dateFormatReturn: {
33
+ control: 'select',
34
+ options: ['', 'DD/MM/YYYY', 'MM/DD/YYYY', 'YYYY-MM-DD'],
35
+ description: 'Format de la date pour la valeur de retour',
36
+ },
37
+ isBirthDate: {
38
+ control: 'boolean',
39
+ description: 'Mode date de naissance',
40
+ },
41
+ showWeekNumber: {
42
+ control: 'boolean',
43
+ description: 'Affiche les numéros de semaine',
44
+ },
45
+ required: {
46
+ control: 'boolean',
47
+ description: 'Champ obligatoire',
48
+ },
49
+ displayRange: {
50
+ control: 'boolean',
51
+ description: 'Sélection de plage de dates',
52
+ },
53
+ displayIcon: {
54
+ control: 'boolean',
55
+ description: 'Affiche l\'icône calendrier',
56
+ },
57
+ displayAppendIcon: {
58
+ control: 'boolean',
59
+ description: 'Icône à la fin du champ',
60
+ },
61
+ displayPrependIcon: {
62
+ control: 'boolean',
63
+ description: 'Icône au début du champ',
64
+ },
65
+ customRules: {
66
+ control: 'object',
67
+ description: 'Règles de validation personnalisées ({ type: string, options: any }[])',
68
+ },
69
+ customWarningRules: {
70
+ control: 'object',
71
+ description: 'Règles d\'avertissement personnalisées ({ type: string, options: any }[])',
72
+ },
73
+ disabled: {
74
+ control: 'boolean',
75
+ description: 'Désactive le champ',
76
+ },
77
+ noIcon: {
78
+ control: 'boolean',
79
+ description: 'Masque toutes les icônes',
80
+ },
81
+ noCalendar: {
82
+ table: {
83
+ category: 'props',
84
+ },
85
+ control: 'boolean',
86
+ description: 'Désactive l\'affichage du calendrier (saisie manuelle uniquement)',
87
+ },
88
+ isOutlined: {
89
+ control: 'boolean',
90
+ description: 'Utilise le style "outlined" pour le champ',
91
+ },
92
+ readonly: {
93
+ control: 'boolean',
94
+ description: 'Champ en lecture seule',
95
+ },
96
+ width: {
97
+ control: 'text',
98
+ description: 'Largeur du champ (par exemple, "300px" ou "100%")',
99
+ },
100
+ disableErrorHandling: {
101
+ control: 'boolean',
102
+ description: 'Désactive la gestion des erreurs par le composant',
103
+ },
104
+ showSuccessMessages: {
105
+ control: 'boolean',
106
+ description: 'Affiche les messages de succès',
107
+ },
108
+ bgColor: {
109
+ control: 'text',
110
+ description: 'Couleur de fond du champ (par exemple, "white" ou "transparent")',
111
+ },
112
+ textFieldActivator: {
113
+ control: 'boolean',
114
+ description: 'Utilise le TextField comme activateur du DatePicker',
115
+ },
116
+ displayTodayButton: {
117
+ control: 'boolean',
118
+ description: 'Affiche le bouton "Aujourd\'hui"',
119
+ },
120
+ displayWeekendDays: {
121
+ control: 'boolean',
122
+ description: 'Affiche les jours de week-end',
123
+ },
124
+ period: {
125
+ control: 'object',
126
+ description: 'Période pendant laquelle les dates peuvent être sélectionnées (au format: MM/DD/YYYY)',
127
+ },
128
+ },
129
+ } as Meta<typeof DatePicker>
130
+
131
+ export default meta
132
+
133
+ type Story = StoryObj<typeof meta>
134
+
135
+ export const Default: Story = {
136
+ parameters: {
137
+ sourceCode: [
138
+ {
139
+ name: 'Template',
140
+ code: `
141
+ <template>
142
+ <DatePicker
143
+ v-model="date"
144
+ placeholder="Sélectionner une date"
145
+ useCombinedMode
146
+ format="DD/MM/YYYY"
147
+ />
148
+ </template>
149
+ `,
150
+ },
151
+ {
152
+ name: 'Script',
153
+ code: `
154
+ <script setup lang="ts">
155
+ import { DatePicker } from '@cnamts/synapse'
156
+ import { ref } from 'vue'
157
+
158
+ const date = ref('')
159
+ </script>
160
+ `,
161
+ },
162
+ ],
163
+ },
164
+ args: {
165
+ placeholder: 'Sélectionner une date',
166
+ format: 'DD/MM/YYYY',
167
+ isBirthDate: false,
168
+ showWeekNumber: false,
169
+ required: false,
170
+ displayRange: false,
171
+ displayIcon: true,
172
+ displayAppendIcon: false,
173
+ displayPrependIcon: true,
174
+ disabled: false,
175
+ noIcon: false,
176
+ noCalendar: false,
177
+ // modelValue est défini dans le setup du render
178
+ displayTodayButton: true,
179
+ displayWeekendDays: true,
180
+ useCombinedMode: true,
181
+ },
182
+ render: (args) => {
183
+ return {
184
+ components: { DatePicker },
185
+ setup() {
186
+ const value = ref('')
187
+ return { args, value }
188
+ },
189
+ template: `
190
+ <div class="d-flex flex-wrap align-center pa-4">
191
+ <DatePicker v-bind="args" v-model="value"/>
192
+ </div>
193
+ `,
194
+ }
195
+ },
196
+ }
197
+
198
+ export const DateRange: Story = {
199
+ parameters: {
200
+ sourceCode: [
201
+ {
202
+ name: 'Template',
203
+ code: `
204
+ <template>
205
+ <DatePicker
206
+ v-model="dateRange"
207
+ placeholder="Sélectionner une période"
208
+ format="DD/MM/YYYY"
209
+ display-range
210
+ use-combined-mode
211
+ />
212
+ </template>
213
+ `,
214
+ },
215
+ {
216
+ name: 'Script',
217
+ code: `
218
+ <script setup lang="ts">
219
+ import { ref } from 'vue'
220
+ import { DatePicker } from '@cnamts/synapse'
221
+
222
+ const dateRange = ref<[string, string] | null>(null)
223
+ </script>
224
+ `,
225
+ },
226
+ ],
227
+ },
228
+ args: {
229
+ placeholder: 'Sélectionner une période',
230
+ format: 'DD/MM/YYYY',
231
+ dateFormatReturn: '',
232
+ isBirthDate: false,
233
+ showWeekNumber: false,
234
+ required: false,
235
+ displayRange: true,
236
+ displayIcon: true,
237
+ displayAppendIcon: false,
238
+ displayPrependIcon: true,
239
+ disabled: false,
240
+ noIcon: false,
241
+ noCalendar: false,
242
+ // modelValue est défini dans le setup du render
243
+ useCombinedMode: true,
244
+ },
245
+ render: (args) => {
246
+ return {
247
+ components: { DatePicker },
248
+ setup() {
249
+ const value = ['2023-01-15', '2023-01-20']
250
+ return { args, value }
251
+ },
252
+ template: `
253
+ <div class="d-flex flex-wrap align-center pa-4">
254
+ <DatePicker v-bind="args" v-model="value"/>
255
+ </div>
256
+ `,
257
+ }
258
+ },
259
+ }
260
+
261
+ export const BirthDate: Story = {
262
+ parameters: {
263
+ sourceCode: [
264
+ {
265
+ name: 'Template',
266
+ code: `
267
+ <template>
268
+ <DatePicker
269
+ v-model="date"
270
+ placeholder="Date de naissance"
271
+ format="DD/MM/YYYY"
272
+ isBirthDate
273
+ useCombinedMode
274
+ />
275
+ </template>
276
+ `,
277
+ },
278
+ {
279
+ name: 'Script',
280
+ code: `
281
+ <script setup lang="ts">
282
+ import { ref } from 'vue'
283
+ import { DatePicker } from '@cnamts/synapse'
284
+
285
+ const date = ref('')
286
+ </script>
287
+ `,
288
+ },
289
+ ],
290
+ },
291
+ args: {
292
+ placeholder: 'Date de naissance',
293
+ format: 'DD/MM/YYYY',
294
+ isBirthDate: true,
295
+ showWeekNumber: false,
296
+ required: false,
297
+ displayRange: false,
298
+ displayIcon: true,
299
+ displayAppendIcon: false,
300
+ displayPrependIcon: true,
301
+ disabled: false,
302
+ noIcon: false,
303
+ noCalendar: false,
304
+ // modelValue est défini dans le setup du render
305
+ useCombinedMode: true,
306
+ },
307
+ render: (args) => {
308
+ return {
309
+ components: { DatePicker },
310
+ setup() {
311
+ const value = ref('')
312
+ return { args, value }
313
+ },
314
+ template: `
315
+ <div class="d-flex flex-wrap align-center pa-4">
316
+ <DatePicker v-bind="args" v-model="value"/>
317
+ </div>
318
+ `,
319
+ }
320
+ },
321
+ }
322
+
323
+ export const WithValidation: Story = {
324
+ parameters: {
325
+ sourceCode: [
326
+ {
327
+ name: 'Template',
328
+ code: `
329
+ <template>
330
+ <DatePicker
331
+ v-model="date"
332
+ placeholder="Date requise"
333
+ format="DD/MM/YYYY"
334
+ required
335
+ :customRules="customRules"
336
+ useCombinedMode
337
+ />
338
+ </template>
339
+ `,
340
+ },
341
+ {
342
+ name: 'Script',
343
+ code: `
344
+ <script setup lang="ts">
345
+ import { ref } from 'vue'
346
+ import { DatePicker } from '@cnamts/synapse'
347
+
348
+ const date = ref('')
349
+ const customRules = [
350
+ {
351
+ type: 'custom',
352
+ options: {
353
+ validate: (value) => {
354
+ if (value && new Date(value).getFullYear() === 2024) {
355
+ return false
356
+ }
357
+ return true
358
+ },
359
+ message: 'Les dates en 2024 ne sont pas autorisées',
360
+ successMessage: 'Les dates hors 2024 sont autorisées',
361
+ fieldIdentifier: 'date',
362
+ },
363
+ },
364
+ ]
365
+ </script>
366
+ `,
367
+ },
368
+ ],
369
+ },
370
+ args: {
371
+ placeholder: 'Date requise',
372
+ format: 'DD/MM/YYYY',
373
+ required: true,
374
+ useCombinedMode: true,
375
+ customRules: [
376
+ {
377
+ type: 'custom',
378
+ options: {
379
+ validate: (value: string) => {
380
+ if (value && new Date(value).getFullYear() === 2024) {
381
+ return false
382
+ }
383
+ return true
384
+ },
385
+ message: 'Les dates en 2024 ne sont pas autorisées',
386
+ successMessage: 'Les dates hors 2024 sont autorisées',
387
+ fieldIdentifier: 'date',
388
+ },
389
+ },
390
+ ],
391
+ },
392
+ render: (args) => {
393
+ return {
394
+ components: { DatePicker },
395
+ setup() {
396
+ const value = ref('')
397
+ return { args, value }
398
+ },
399
+ template: `
400
+ <div class="d-flex flex-wrap align-center pa-4">
401
+ <DatePicker v-bind="args" v-model="value"/>
402
+ </div>
403
+ `,
404
+ }
405
+ },
406
+ }
407
+
408
+ export const DifferentFormats: Story = {
409
+ parameters: {
410
+ sourceCode: [
411
+ {
412
+ name: 'Template',
413
+ code: `
414
+ <template>
415
+ <div class="d-flex flex-column">
416
+ <DatePicker
417
+ v-model="europeanDate"
418
+ placeholder="Format européen"
419
+ format="DD/MM/YYYY"
420
+ class="mb-4"
421
+ useCombinedMode
422
+ />
423
+ <DatePicker
424
+ v-model="americanDate"
425
+ placeholder="Format américain"
426
+ format="MM/DD/YYYY"
427
+ class="mb-4"
428
+ useCombinedMode
429
+ />
430
+ <DatePicker
431
+ v-model="isoDate"
432
+ placeholder="Format ISO"
433
+ format="YYYY-MM-DD"
434
+ useCombinedMode
435
+ />
436
+ </div>
437
+ </template>
438
+ `,
439
+ },
440
+ {
441
+ name: 'Script',
442
+ code: `
443
+ <script setup lang="ts">
444
+ import { ref } from 'vue'
445
+ import { DatePicker } from '@cnamts/synapse'
446
+
447
+ const europeanDate = ref('')
448
+ const americanDate = ref('')
449
+ const isoDate = ref('')
450
+ </script>
451
+ `,
452
+ },
453
+ ],
454
+ },
455
+ render: () => {
456
+ return {
457
+ components: { DatePicker },
458
+ setup() {
459
+ const europeanDate = ref('')
460
+ const americanDate = ref('')
461
+ const isoDate = ref('')
462
+
463
+ return { europeanDate, americanDate, isoDate }
464
+ },
465
+ template: `
466
+ <div class="d-flex flex-column pa-4">
467
+ <DatePicker
468
+ v-model="europeanDate"
469
+ placeholder="Format européen"
470
+ format="DD/MM/YYYY"
471
+ class="mb-4"
472
+ useCombinedMode
473
+ />
474
+ <DatePicker
475
+ v-model="americanDate"
476
+ placeholder="Format américain"
477
+ format="MM/DD/YYYY"
478
+ class="mb-4"
479
+ useCombinedMode
480
+ />
481
+ <DatePicker
482
+ v-model="isoDate"
483
+ placeholder="Format ISO"
484
+ format="YYYY-MM-DD"
485
+ useCombinedMode
486
+ />
487
+ </div>
488
+ `,
489
+ }
490
+ },
491
+ }
492
+
493
+ export const WithDateFormatReturn: Story = {
494
+ parameters: {
495
+ sourceCode: [
496
+ {
497
+ name: 'Template',
498
+ code: `
499
+ <template>
500
+ <div class="d-flex flex-column">
501
+ <DatePicker
502
+ v-model="date"
503
+ placeholder="Format d'affichage: DD/MM/YYYY, Format de retour: YYYY-MM-DD"
504
+ format="DD/MM/YYYY"
505
+ dateFormatReturn="YYYY-MM-DD"
506
+ class="mb-4"
507
+ useCombinedMode
508
+ />
509
+ <div>Valeur du modèle: {{ date }}</div>
510
+ </div>
511
+ </template>
512
+ `,
513
+ },
514
+ {
515
+ name: 'Script',
516
+ code: `
517
+ <script setup lang="ts">
518
+ import { ref } from 'vue'
519
+ import { DatePicker } from '@cnamts/synapse'
520
+
521
+ const date = ref('')
522
+ </script>
523
+ `,
524
+ },
525
+ ],
526
+ },
527
+ render: () => {
528
+ return {
529
+ components: { DatePicker },
530
+ setup() {
531
+ const date = ref('')
532
+ return { date }
533
+ },
534
+ template: `
535
+ <div class="d-flex flex-column pa-4">
536
+ <DatePicker
537
+ v-model="date"
538
+ placeholder="Format d'affichage: DD/MM/YYYY, Format de retour: YYYY-MM-DD"
539
+ format="DD/MM/YYYY"
540
+ dateFormatReturn="YYYY-MM-DD"
541
+ class="mb-4"
542
+ useCombinedMode
543
+ />
544
+ <div>Valeur du modèle: {{ date }}</div>
545
+ </div>
546
+ `,
547
+ }
548
+ },
549
+ }
550
+
551
+ export const DisablePickerInteraction: Story = {
552
+ parameters: {
553
+ sourceCode: [
554
+ {
555
+ name: 'Template',
556
+ code: `
557
+ <template>
558
+ <DatePicker
559
+ v-model="date"
560
+ placeholder="Saisie manuelle uniquement"
561
+ format="DD/MM/YYYY"
562
+ useCombinedMode
563
+ noCalendar
564
+ />
565
+ </template>
566
+ `,
567
+ },
568
+ {
569
+ name: 'Script',
570
+ code: `
571
+ <script setup lang="ts">
572
+ import { DatePicker } from '@cnamts/synapse'
573
+ import { ref } from 'vue'
574
+
575
+ const date = ref('')
576
+ </script>
577
+ `,
578
+ },
579
+ ],
580
+ },
581
+ args: {
582
+ placeholder: 'Saisie manuelle uniquement',
583
+ format: 'DD/MM/YYYY',
584
+ displayIcon: true,
585
+ useCombinedMode: true,
586
+ noCalendar: true,
587
+ },
588
+ render: (args) => {
589
+ return {
590
+ components: { DatePicker },
591
+ setup() {
592
+ const value = ref('')
593
+ return { args, value }
594
+ },
595
+ template: `
596
+ <div class="d-flex flex-wrap align-center pa-4">
597
+ <DatePicker v-bind="args" v-model="value"/>
598
+ <div class="ml-4 mt-4">
599
+ <p>Valeur actuelle: {{ value }}</p>
600
+ <p>Le calendrier ne s'ouvrira pas au clic sur l'input ou l'icône.</p>
601
+ </div>
602
+ </div>
603
+ `,
604
+ }
605
+ },
606
+ }
607
+
608
+ export const AutoFormattingInput: Story = {
609
+ parameters: {
610
+ sourceCode: [
611
+ {
612
+ name: 'Template',
613
+ code: `
614
+ <template>
615
+ <div class="d-flex flex-column">
616
+ <DatePicker
617
+ v-model="date"
618
+ placeholder="Saisie avec formatage automatique"
619
+ format="DD-MM-YYYY"
620
+ useCombinedMode
621
+ />
622
+ </div>
623
+ </template>
624
+ `,
625
+ },
626
+ {
627
+ name: 'Script',
628
+ code: `
629
+ <script setup lang="ts">
630
+ import { ref } from 'vue'
631
+ import { DatePicker } from '@cnamts/synapse'
632
+
633
+ const date = ref('')
634
+ </script>
635
+ `,
636
+ },
637
+ ],
638
+ },
639
+ args: {
640
+ placeholder: 'Saisie avec formatage automatique',
641
+ format: 'DD-MM-YYYY',
642
+ useCombinedMode: true,
643
+ },
644
+ render: (args) => {
645
+ return {
646
+ components: { DatePicker },
647
+ setup() {
648
+ const value = ref('')
649
+ return { args, value }
650
+ },
651
+ template: `
652
+ <div class="d-flex flex-column pa-4">
653
+ <div class="mb-2">Essayez de saisir des chiffres - les séparateurs seront ajoutés automatiquement</div>
654
+ <DatePicker v-bind="args" v-model="value"/>
655
+ </div>
656
+ `,
657
+ }
658
+ },
659
+ }
660
+
661
+ export const CustomDateFormat: Story = {
662
+ parameters: {
663
+ sourceCode: [
664
+ {
665
+ name: 'Template',
666
+ code: `
667
+ <template>
668
+ <DatePicker
669
+ v-model="date"
670
+ placeholder="Format YYYY.MM.DD"
671
+ format="YYYY.MM.DD"
672
+ useCombinedMode
673
+ />
674
+ </template>
675
+ `,
676
+ },
677
+ {
678
+ name: 'Script',
679
+ code: `
680
+ <script setup lang="ts">
681
+ import { DatePicker } from '@cnamts/synapse'
682
+ import { ref } from 'vue'
683
+
684
+ const date = ref('')
685
+ </script>
686
+ `,
687
+ },
688
+ ],
689
+ },
690
+ args: {
691
+ placeholder: 'Format YYYY.MM.DD',
692
+ format: 'YYYY.MM.DD',
693
+ useCombinedMode: true,
694
+ },
695
+ render: (args) => {
696
+ return {
697
+ components: { DatePicker },
698
+ setup() {
699
+ const value = ref('')
700
+ return { args, value }
701
+ },
702
+ template: `
703
+ <div class="d-flex flex-wrap align-center pa-4">
704
+ <DatePicker v-bind="args" v-model="value"/>
705
+ <div class="ml-4 mt-4">
706
+ <p>Valeur actuelle: {{ value }}</p>
707
+ <p>Le séparateur "." est automatiquement ajouté pendant la saisie.</p>
708
+ </div>
709
+ </div>
710
+ `,
711
+ }
712
+ },
713
+ }
714
+
715
+ export const ReadonlyMode: Story = {
716
+ parameters: {
717
+ sourceCode: [
718
+ {
719
+ name: 'Template',
720
+ code: `
721
+ <template>
722
+ <DatePicker
723
+ v-model="date"
724
+ placeholder="Date en lecture seule"
725
+ format="DD/MM/YYYY"
726
+ useCombinedMode
727
+ readonly
728
+ />
729
+ </template>
730
+ `,
731
+ },
732
+ {
733
+ name: 'Script',
734
+ code: `
735
+ <script setup lang="ts">
736
+ import { DatePicker } from '@cnamts/synapse'
737
+ import { ref, onMounted } from 'vue'
738
+
739
+ const date = ref('')
740
+
741
+ onMounted(() => {
742
+ // Initialiser avec une date
743
+ date.value = '15/06/2023'
744
+ })
745
+ </script>
746
+ `,
747
+ },
748
+ ],
749
+ },
750
+ args: {
751
+ placeholder: 'Date en lecture seule',
752
+ format: 'DD/MM/YYYY',
753
+ useCombinedMode: true,
754
+ readonly: true,
755
+ },
756
+ render: (args) => {
757
+ return {
758
+ components: { DatePicker },
759
+ setup() {
760
+ const value = ref('')
761
+
762
+ onMounted(() => {
763
+ // Initialiser avec une date
764
+ value.value = '15/06/2023'
765
+ })
766
+ return { args, value }
767
+ },
768
+ template: `
769
+ <div class="d-flex flex-wrap align-center pa-4">
770
+ <DatePicker v-bind="args" v-model="value"/>
771
+ <div class="ml-4 mt-4">
772
+ <p>Valeur actuelle: {{ value }}</p>
773
+ <p>Le champ est en lecture seule et ne peut pas être modifié.</p>
774
+ </div>
775
+ </div>
776
+ `,
777
+ }
778
+ },
779
+ }
780
+
781
+ export const WithCustomIcons: Story = {
782
+ parameters: {
783
+ sourceCode: [
784
+ {
785
+ name: 'Template',
786
+ code: `
787
+ <template>
788
+ <DatePicker
789
+ v-model="date"
790
+ placeholder="Date avec icône à la fin"
791
+ format="DD/MM/YYYY"
792
+ useCombinedMode
793
+ :displayPrependIcon="false"
794
+ :displayAppendIcon="true"
795
+ />
796
+ </template>
797
+ `,
798
+ },
799
+ {
800
+ name: 'Script',
801
+ code: `
802
+ <script setup lang="ts">
803
+ import { DatePicker } from '@cnamts/synapse'
804
+ import { ref } from 'vue'
805
+
806
+ const date = ref('')
807
+ </script>
808
+ `,
809
+ },
810
+ ],
811
+ },
812
+ args: {
813
+ placeholder: 'Date avec icône à la fin',
814
+ format: 'DD/MM/YYYY',
815
+ useCombinedMode: true,
816
+ displayPrependIcon: false,
817
+ displayAppendIcon: true,
818
+ },
819
+ render: (args) => {
820
+ return {
821
+ components: { DatePicker },
822
+ setup() {
823
+ const value = ref('')
824
+ return { args, value }
825
+ },
826
+ template: `
827
+ <div class="d-flex flex-wrap align-center pa-4">
828
+ <DatePicker v-bind="args" v-model="value"/>
829
+ <div class="ml-4 mt-4">
830
+ <p>Valeur actuelle: {{ value }}</p>
831
+ <p>L'icône du calendrier est positionnée à la fin du champ.</p>
832
+ </div>
833
+ </div>
834
+ `,
835
+ }
836
+ },
837
+ }
838
+
839
+ export const WithCustomPeriod: Story = {
840
+ parameters: {
841
+ sourceCode: [
842
+ {
843
+ name: 'Template',
844
+ code: `
845
+ <template>
846
+ <DatePicker
847
+ v-model="date"
848
+ placeholder="Date avec icône à la fin"
849
+ format="DD/MM/YYYY"
850
+ useCombinedMode
851
+ :period="{
852
+ min: '01/01/1995',
853
+ max: '12/31/2005',
854
+ }"
855
+ :customRules="customRules"
856
+ />
857
+ </template>
858
+ `,
859
+ },
860
+ {
861
+ name: 'Script',
862
+ code: `
863
+ <script setup lang="ts">
864
+ import { DatePicker } from '@cnamts/synapse'
865
+ import { ref } from 'vue'
866
+
867
+ const date = ref('')
868
+
869
+ // Conversion des dates de la période au format Date
870
+ const minDate = new Date('1995-01-01')
871
+ const maxDate = new Date('2005-12-31')
872
+
873
+ const customRules = [
874
+ {
875
+ type: 'notBeforeDate',
876
+ options: {
877
+ date: '01/01/1995',
878
+ message: 'La date doit être postérieure ou égale au 01/01/1995',
879
+ fieldIdentifier: 'date',
880
+ },
881
+ },
882
+ {
883
+ type: 'notAfterDate',
884
+ options: {
885
+ date: '31/12/2005',
886
+ message: 'La date doit être antérieure ou égale au 31/12/2005',
887
+ fieldIdentifier: 'date',
888
+ },
889
+ },
890
+ ]
891
+ </script>
892
+ `,
893
+ },
894
+ ],
895
+ },
896
+ args: {
897
+ placeholder: 'Date avec icône à la fin',
898
+ format: 'DD/MM/YYYY',
899
+ useCombinedMode: true,
900
+ period: {
901
+ min: '01/01/1995',
902
+ max: '12/31/2005',
903
+ },
904
+ customRules: [
905
+ {
906
+ type: 'notBeforeDate',
907
+ options: {
908
+ date: '01/01/1995',
909
+ message: 'La date doit être postérieure ou égale au 01/01/1995',
910
+ fieldIdentifier: 'date',
911
+ },
912
+ },
913
+ {
914
+ type: 'notAfterDate',
915
+ options: {
916
+ date: '31/12/2005',
917
+ message: 'La date doit être antérieure ou égale au 31/12/2005',
918
+ fieldIdentifier: 'date',
919
+ },
920
+ },
921
+ ],
922
+ },
923
+ render: (args) => {
924
+ return {
925
+ components: { DatePicker, SyAlert },
926
+ setup() {
927
+ const value = ref('')
928
+ return { args, value }
929
+ },
930
+ template: `
931
+ <div style="margin-bottom: 20px; padding: 15px;">
932
+ <SyAlert variant="tonal" :closable="false">
933
+ <template #default>
934
+ <h4>Note importante pour la validation manuelle</h4>
935
+ <p>Pour valider les dates saisies manuellement en fonction de la période définie, il faut utiliser la propriété customRules comme dans l'exemple ci-dessous.</p>
936
+ <p>La propriété period limite les dates sélectionnables dans le calendrier, mais les règles personnalisées sont nécessaires pour la validation des saisies manuelles.</p>
937
+ </template>
938
+ </SyAlert>
939
+ </div>
940
+ <div class="d-flex flex-wrap align-center pa-4">
941
+ <DatePicker v-bind="args" v-model="value"/>
942
+ <div class="ml-4 mt-4">
943
+ <p>Valeur actuelle: {{ value }}</p>
944
+ </div>
945
+ </div>
946
+ `,
947
+ }
948
+ },
949
+ }
950
+
951
+ export const WithTextFieldActivator: Story = {
952
+ parameters: {
953
+ sourceCode: [
954
+ {
955
+ name: 'Template',
956
+ code: `
957
+ <template>
958
+ <DatePicker
959
+ v-model="date"
960
+ placeholder="Cliquez sur le champ pour ouvrir"
961
+ format="DD/MM/YYYY"
962
+ useCombinedMode
963
+ textFieldActivator
964
+ />
965
+ </template>
966
+ `,
967
+ },
968
+ {
969
+ name: 'Script',
970
+ code: `
971
+ <script setup lang="ts">
972
+ import { DatePicker } from '@cnamts/synapse'
973
+ import { ref } from 'vue'
974
+
975
+ const date = ref('')
976
+ </script>
977
+ `,
978
+ },
979
+ ],
980
+ },
981
+ args: {
982
+ placeholder: 'Cliquez sur le champ pour ouvrir',
983
+ format: 'DD/MM/YYYY',
984
+ useCombinedMode: true,
985
+ textFieldActivator: true,
986
+ },
987
+ render: (args) => {
988
+ return {
989
+ components: { DatePicker },
990
+ setup() {
991
+ const value = ref('')
992
+ return { args, value }
993
+ },
994
+ template: `
995
+ <div class="d-flex flex-wrap align-center pa-4">
996
+ <DatePicker v-bind="args" v-model="value"/>
997
+ <div class="ml-4 mt-4">
998
+ <p>Valeur actuelle: {{ value }}</p>
999
+ <p>Le calendrier s'ouvre au clic sur l'ensemble du champ.</p>
1000
+ </div>
1001
+ </div>
1002
+ `,
1003
+ }
1004
+ },
1005
+ }
1006
+
1007
+ export const WithFormSubmission: Story = {
1008
+ parameters: {
1009
+ sourceCode: [
1010
+ {
1011
+ name: 'Template',
1012
+ code: `
1013
+ <template>
1014
+ <form @submit.prevent="submitForm">
1015
+ <DatePicker
1016
+ ref="datePicker"
1017
+ v-model="date"
1018
+ placeholder="Date requise"
1019
+ format="DD/MM/YYYY"
1020
+ required
1021
+ class="mb-4"
1022
+ useCombinedMode
1023
+ />
1024
+ <v-btn type="submit" color="primary">Soumettre</v-btn>
1025
+ </form>
1026
+ <div v-if="submitted" class="mt-4">
1027
+ Formulaire soumis avec la date: {{ date }}
1028
+ </div>
1029
+ </template>
1030
+ `,
1031
+ },
1032
+ {
1033
+ name: 'Script',
1034
+ code: `
1035
+ <script setup lang="ts">
1036
+ import { ref } from 'vue'
1037
+ import { DatePicker } from '@cnamts/synapse'
1038
+
1039
+ const date = ref('')
1040
+ const datePicker = ref(null)
1041
+ const submitted = ref(false)
1042
+
1043
+ const submitForm = () => {
1044
+ const isValid = datePicker.value.validateOnSubmit()
1045
+ if (isValid) {
1046
+ submitted.value = true
1047
+ }
1048
+ }
1049
+ </script>
1050
+ `,
1051
+ },
1052
+ ],
1053
+ },
1054
+ render: () => {
1055
+ return {
1056
+ components: { DatePicker },
1057
+ setup() {
1058
+ const date = ref('')
1059
+ // Définir le type correct pour la référence datePicker
1060
+ const datePicker = ref<InstanceType<typeof DatePicker> | null>(null)
1061
+ const submitted = ref(false)
1062
+
1063
+ const submitForm = () => {
1064
+ if (!datePicker.value) return
1065
+ const isValid = datePicker.value.validateOnSubmit()
1066
+ if (isValid) {
1067
+ submitted.value = true
1068
+ }
1069
+ else {
1070
+ submitted.value = false
1071
+ }
1072
+ }
1073
+
1074
+ return { date, datePicker, submitted, submitForm }
1075
+ },
1076
+ template: `
1077
+ <div class="pa-4">
1078
+ <form @submit.prevent="submitForm">
1079
+ <DatePicker
1080
+ ref="datePicker"
1081
+ v-model="date"
1082
+ placeholder="Date requise"
1083
+ format="DD/MM/YYYY"
1084
+ required
1085
+ class="mb-4"
1086
+ useCombinedMode
1087
+ />
1088
+ <v-btn type="submit" color="primary">Soumettre</v-btn>
1089
+ </form>
1090
+ <div v-if="submitted" class="mt-4 success--text">
1091
+ Formulaire soumis avec la date: {{ date }}
1092
+ </div>
1093
+ </div>
1094
+ `,
1095
+ }
1096
+ },
1097
+ }