@cnamts/synapse 1.0.0 → 1.0.2

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