@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,418 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import SyTable from './SyTable.vue'
3
+ import { ref } from 'vue'
4
+ import type { VDataTable } from 'vuetify/components'
5
+ import dayjs from 'dayjs'
6
+
7
+ const meta = {
8
+ title: 'Composants/Tableaux/SyTable/Rules',
9
+ component: SyTable,
10
+ decorators: [
11
+ () => ({
12
+ template: '<div style="padding: 20px;"><story/></div>',
13
+ }),
14
+ ],
15
+ parameters: {
16
+ layout: 'fullscreen',
17
+ controls: { hideNoControlsWarning: true },
18
+ },
19
+ } satisfies Meta<typeof SyTable & typeof VDataTable>
20
+
21
+ export default meta
22
+
23
+ type Story = StoryObj<typeof meta>
24
+
25
+ export const TextFilterRules: Story = {
26
+ args: {
27
+ suffix: 'filter-rules',
28
+ showFilters: true,
29
+ },
30
+ parameters: {
31
+ docs: {
32
+ description: {
33
+ story: 'Documentation des règles de filtrage textuel pour le composant SyTable.',
34
+ },
35
+ },
36
+ },
37
+ render: () => ({
38
+ components: { SyTable },
39
+ setup() {
40
+ const headers = ref([
41
+ { title: 'Exemple', key: 'example', filterable: true },
42
+ { title: 'Description', key: 'description', filterable: false },
43
+ ])
44
+
45
+ const items = ref([
46
+ { example: 'Paris', description: 'Recherche simple (insensible à la casse) - trouve "Paris", "paris", etc.' },
47
+ { example: 'p*', description: 'Tous les mots commençant par "p" - trouve "Paris", "pomme", "Portugal", etc.' },
48
+ { example: '*is', description: 'Tous les mots finissant par "is" - trouve "Paris", "tennis", etc.' },
49
+ { example: 'p?r?s', description: 'Remplace chaque ? par un caractère - trouve "Paris", "parus", etc.' },
50
+ { example: '"Paris"', description: 'Recherche sensible à la casse - trouve "Paris" mais pas "paris"' },
51
+ { example: '=????', description: 'Tous les mots de 4 lettres exactement - trouve "Lyon", "Nice", etc.' },
52
+ { example: '<>?*', description: 'Toutes les valeurs vides ou nulles - trouve les cellules vides' },
53
+ { example: '>m', description: 'Tous les mots classés après "m" - trouve "Nice", "Paris", "Rome", etc.' },
54
+ { example: '*a*i*', description: 'Combinaison de wildcards - trouve "Paris", "Madrid", etc.' },
55
+ ])
56
+
57
+ const options = ref({
58
+ itemsPerPage: 10,
59
+ })
60
+
61
+ return {
62
+ headers,
63
+ items,
64
+ options,
65
+ }
66
+ },
67
+ template: `
68
+ <div>
69
+ <h2>Règles de filtrage textuel</h2>
70
+ <p class="mb-4">Le filtre textuel s'applique à une colonne de texte. Pour éviter qu'il ne soit lancé à chaque caractère saisi, il n'est déclenché qu'après un laps de temps de 300ms (par défaut) sans saisie.</p>
71
+
72
+ <h3 class="mb-2">Opérateurs et caractères spéciaux supportés</h3>
73
+ <p class="mb-4">Le filtre textuel prend en charge les opérateurs et caractères spéciaux suivants :</p>
74
+
75
+ <div class="mb-4">
76
+ <table class="mb-4" style="width: auto; border-collapse: collapse;">
77
+ <thead>
78
+ <tr>
79
+ <th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Opérateur/Caractère</th>
80
+ <th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Description</th>
81
+ <th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Exemple</th>
82
+ </tr>
83
+ </thead>
84
+ <tbody>
85
+ <tr>
86
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>*</code></td>
87
+ <td style="border: 1px solid #ddd; padding: 8px;">Remplace n'importe quelle chaîne de caractères</td>
88
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>p*</code> (tous les mots commençant par "p")</td>
89
+ </tr>
90
+ <tr>
91
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>?</code></td>
92
+ <td style="border: 1px solid #ddd; padding: 8px;">Remplace n'importe quel caractère unique</td>
93
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>p?re</code> ("père", "pare", "pire", etc.)</td>
94
+ </tr>
95
+ <tr>
96
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>"texte"</code></td>
97
+ <td style="border: 1px solid #ddd; padding: 8px;">Recherche sensible à la casse et aux accents</td>
98
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>"Paris"</code> (trouve "Paris" mais pas "paris")</td>
99
+ </tr>
100
+ <tr>
101
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>=????</code></td>
102
+ <td style="border: 1px solid #ddd; padding: 8px;">Tous les mots de longueur exacte</td>
103
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>=????</code> (tous les mots de 4 lettres)</td>
104
+ </tr>
105
+ <tr>
106
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&lt;&gt;?*</code></td>
107
+ <td style="border: 1px solid #ddd; padding: 8px;">Toutes les valeurs vides ou nulles</td>
108
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&lt;&gt;?*</code> (cellules vides)</td>
109
+ </tr>
110
+ <tr>
111
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&gt;texte</code></td>
112
+ <td style="border: 1px solid #ddd; padding: 8px;">Tous les mots classés après alphabétiquement</td>
113
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&gt;m</code> (mots commençant par n à z)</td>
114
+ </tr>
115
+ </tbody>
116
+ </table>
117
+ <p>Sans opérateur spécial, le filtre effectue une recherche insensible à la casse.</p>
118
+ </div>
119
+
120
+ <SyTable
121
+ v-model:options="options"
122
+ :headers="headers"
123
+ :items="items"
124
+ suffix="filter-rules"
125
+ show-filters
126
+ />
127
+ </div>
128
+ `,
129
+ }),
130
+ }
131
+
132
+ export const NumberFilterRules: Story = {
133
+ args: {
134
+ suffix: 'number-filter-rules',
135
+ showFilters: true,
136
+ },
137
+ parameters: {
138
+ docs: {
139
+ description: {
140
+ story: 'Documentation des règles de filtrage numérique pour le composant SyTable.',
141
+ },
142
+ },
143
+ },
144
+ render: () => ({
145
+ components: { SyTable },
146
+ setup() {
147
+ const headers = ref([
148
+ { title: 'Exemple', key: 'example', filterable: true, filterType: 'number' },
149
+ { title: 'Description', key: 'description', filterable: false },
150
+ ])
151
+
152
+ const items = ref([
153
+ { example: 42, description: 'Recherche exacte (42)' },
154
+ { example: 10, description: 'Recherche exacte (10)' },
155
+ { example: 25, description: 'Recherche exacte (25)' },
156
+ { example: 100, description: 'Recherche exacte (100)' },
157
+ { example: 75, description: 'Recherche exacte (75)' },
158
+ { example: 50, description: 'Recherche exacte (50)' },
159
+ { example: 30, description: 'Recherche exacte (30)' },
160
+ { example: 90, description: 'Recherche exacte (90)' },
161
+ ])
162
+
163
+ const options = ref({
164
+ itemsPerPage: 10,
165
+ })
166
+
167
+ return {
168
+ headers,
169
+ items,
170
+ options,
171
+ }
172
+ },
173
+ template: `
174
+ <div>
175
+ <h2>Règles de filtrage numérique</h2>
176
+ <p class="mb-4">Le filtre numérique s'applique à une colonne de nombres. Pour éviter qu'il ne soit lancé à chaque caractère saisi, il n'est déclenché qu'après un laps de temps de 300ms (par défaut) sans saisie.</p>
177
+
178
+ <h3 class="mb-2">Opérateurs supportés</h3>
179
+ <p class="mb-4">Le filtre numérique prend en charge les opérateurs suivants lorsqu'ils sont placés au début de la valeur :</p>
180
+
181
+ <div class="mb-4">
182
+ <table class="mb-4" style="width: auto; border-collapse: collapse;">
183
+ <thead>
184
+ <tr>
185
+ <th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Opérateur</th>
186
+ <th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Description</th>
187
+ <th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Exemple</th>
188
+ </tr>
189
+ </thead>
190
+ <tbody>
191
+ <tr>
192
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>=</code></td>
193
+ <td style="border: 1px solid #ddd; padding: 8px;">Égal à</td>
194
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>=42</code> (égal à 42)</td>
195
+ </tr>
196
+ <tr>
197
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&lt;&gt;</code></td>
198
+ <td style="border: 1px solid #ddd; padding: 8px;">Différent de</td>
199
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&lt;&gt;42</code> (différent de 42)</td>
200
+ </tr>
201
+ <tr>
202
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&lt;</code></td>
203
+ <td style="border: 1px solid #ddd; padding: 8px;">Inférieur à</td>
204
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&lt;42</code> (inférieur à 42)</td>
205
+ </tr>
206
+ <tr>
207
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&lt;=</code></td>
208
+ <td style="border: 1px solid #ddd; padding: 8px;">Inférieur ou égal à</td>
209
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&lt;=42</code> (inférieur ou égal à 42)</td>
210
+ </tr>
211
+ <tr>
212
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&gt;</code></td>
213
+ <td style="border: 1px solid #ddd; padding: 8px;">Supérieur à</td>
214
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&gt;42</code> (supérieur à 42)</td>
215
+ </tr>
216
+ <tr>
217
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&gt;=</code></td>
218
+ <td style="border: 1px solid #ddd; padding: 8px;">Supérieur ou égal à</td>
219
+ <td style="border: 1px solid #ddd; padding: 8px;"><code>&gt;=42</code> (supérieur ou égal à 42)</td>
220
+ </tr>
221
+ </tbody>
222
+ </table>
223
+ <p>Sans opérateur, le filtre effectue une recherche d'égalité exacte.</p>
224
+ </div>
225
+
226
+ <SyTable
227
+ v-model:options="options"
228
+ :headers="headers"
229
+ :items="items"
230
+ suffix="number-filter-rules"
231
+ show-filters
232
+ />
233
+ </div>
234
+ `,
235
+ }),
236
+ }
237
+
238
+ export const SelectFilterRules: Story = {
239
+ args: {
240
+ suffix: 'select-filter-rules',
241
+ showFilters: true,
242
+ },
243
+ parameters: {
244
+ docs: {
245
+ description: {
246
+ story: 'Documentation des règles de filtrage par sélection pour le composant SyTable.',
247
+ },
248
+ },
249
+ },
250
+ render: () => ({
251
+ components: { SyTable },
252
+ setup() {
253
+ const headers = ref([
254
+ {
255
+ title: 'Catégorie',
256
+ key: 'category',
257
+ filterable: true,
258
+ filterType: 'select',
259
+ filterOptions: [
260
+ { text: 'Fruits', value: 'Fruits' },
261
+ { text: 'Légumes', value: 'Légumes' },
262
+ { text: 'Boissons', value: 'Boissons' },
263
+ { text: '(vide)', value: '' },
264
+ ],
265
+ },
266
+ { title: 'Description', key: 'description', filterable: false },
267
+ ])
268
+
269
+ const items = ref([
270
+ { category: 'Fruits', description: 'Catégorie standard avec valeur non vide' },
271
+ { category: 'Légumes', description: 'Catégorie standard avec valeur non vide' },
272
+ { category: '', description: 'Catégorie avec valeur vide, affichée comme "(vide)" dans la liste' },
273
+ { category: 'Fruits', description: 'Valeur dupliquée, apparaît une seule fois dans la liste' },
274
+ { category: 'Boissons', description: 'Catégorie standard avec valeur non vide' },
275
+ ])
276
+
277
+ const options = ref({
278
+ itemsPerPage: 10,
279
+ })
280
+
281
+ return {
282
+ headers,
283
+ items,
284
+ options,
285
+ }
286
+ },
287
+ template: `
288
+ <div>
289
+ <h2>Règles de filtrage par sélection</h2>
290
+ <p class="mb-4">Les filtres de sélection permettent de choisir parmi les valeurs uniques présentes dans la colonne.</p>
291
+
292
+ <div class="mb-4">
293
+ <p>Les filtres de choix sont des listes reprenant les éléments uniques présents dans l'ensemble des colonnes non filtrés. Pour faciliter l'accessibilité de la liste, le premier élément contient la valeur « - choisir - » pour indiquer qu'aucune ligne n'est filtré. Si l'une des cellules de la colonne est vide, l'élément de liste correspondant doit afficher la valeur « (vide) ».</p>
294
+ <p>L'action de filtrage est effectuée à la sélection d'une option de la liste de choix.</p>
295
+ </div>
296
+
297
+ <SyTable
298
+ v-model:options="options"
299
+ :headers="headers"
300
+ :items="items"
301
+ suffix="select-filter-rules"
302
+ show-filters
303
+ />
304
+ </div>
305
+ `,
306
+ }),
307
+ }
308
+
309
+ export const DateFilterRules: Story = {
310
+ args: {
311
+ suffix: 'date-filter-rules',
312
+ showFilters: true,
313
+ },
314
+ parameters: {
315
+ docs: {
316
+ description: {
317
+ story: 'Documentation des règles de filtrage par date pour le composant SyTable.',
318
+ },
319
+ },
320
+ },
321
+ render: () => ({
322
+ components: { SyTable },
323
+ setup() {
324
+ // Exemple 1: Filtrage par date seule
325
+ const headersSingleDate = ref([
326
+ {
327
+ title: 'Date',
328
+ key: 'date',
329
+ filterable: true,
330
+ filterType: 'date',
331
+ },
332
+ { title: 'Description', key: 'description', filterable: false },
333
+ ])
334
+
335
+ const itemsSingleDate = ref([
336
+ { date: dayjs('2025-01-15').format('DD/MM/YYYY'), description: 'Date simple' },
337
+ { date: dayjs('2025-02-20').format('DD/MM/YYYY'), description: 'Date simple' },
338
+ { date: dayjs('2024-12-10').format('DD/MM/YYYY'), description: 'Date simple' },
339
+ { date: dayjs('2025-05-05').format('DD/MM/YYYY'), description: 'Date simple' },
340
+ ])
341
+
342
+ const optionsSingleDate = ref({
343
+ itemsPerPage: 10,
344
+ })
345
+
346
+ // Exemple 2: Filtrage par période
347
+ const headersPeriod = ref([
348
+ {
349
+ title: 'Date',
350
+ key: 'date',
351
+ filterable: true,
352
+ filterType: 'period',
353
+ dateFormat: 'DD/MM/YYYY',
354
+ },
355
+ { title: 'Description', key: 'description', filterable: false },
356
+ ])
357
+
358
+ // Définir une période du 01/01/2025 au 31/03/2025 pour l'exemple
359
+ const periodStart = dayjs('2025-01-01').format('DD/MM/YYYY')
360
+ const periodEnd = dayjs('2025-03-31').format('DD/MM/YYYY')
361
+
362
+ const itemsPeriod = ref([
363
+ { date: dayjs('2025-01-15').format('DD/MM/YYYY'), description: `Date incluse dans la période ${periodStart} - ${periodEnd}` },
364
+ { date: dayjs('2025-02-20').format('DD/MM/YYYY'), description: `Date incluse dans la période ${periodStart} - ${periodEnd}` },
365
+ { date: dayjs('2024-12-10').format('DD/MM/YYYY'), description: `Date avant la période ${periodStart} - ${periodEnd}` },
366
+ { date: dayjs('2025-05-05').format('DD/MM/YYYY'), description: `Date après la période ${periodStart} - ${periodEnd}` },
367
+ { date: dayjs('2025-01-01').format('DD/MM/YYYY'), description: `Date limite inférieure de la période (${periodStart})` },
368
+ { date: dayjs('2025-03-31').format('DD/MM/YYYY'), description: `Date limite supérieure de la période (${periodEnd})` },
369
+ ])
370
+
371
+ const optionsPeriod = ref({
372
+ itemsPerPage: 10,
373
+ })
374
+
375
+ return {
376
+ headersSingleDate,
377
+ itemsSingleDate,
378
+ optionsSingleDate,
379
+ headersPeriod,
380
+ itemsPeriod,
381
+ optionsPeriod,
382
+ }
383
+ },
384
+ template: `
385
+ <div>
386
+ <h2>Règles de filtrage par date</h2>
387
+ <p class="mb-4">Le filtre de date s'applique à une colonne de dates.</p>
388
+
389
+ <div class="mb-4">
390
+ <p>Le filtre de période comporte deux champs de saisies permettant de saisir une période du … au …</p>
391
+ <ul class="mb-4 pl-4">
392
+ <li>Le premier champ de saisie représente la date minimale recherchée (inclue). S'il n'est pas renseigné, il n'y a pas de limite minimale.</li>
393
+ <li>Le deuxième champ de saisie représente la date maximale recherchée (inclue). S'il n'est pas renseigné, il n'y a pas de limite maximale.</li>
394
+ </ul>
395
+ <p>L'action de filtrage s'effectue quand 10 caractères sont présents dans le champ de saisie en cours.</p>
396
+ </div>
397
+
398
+ <h3 class="mb-3">Exemple 1: Filtrage par date seule</h3>
399
+ <SyTable
400
+ v-model:options="optionsSingleDate"
401
+ :headers="headersSingleDate"
402
+ :items="itemsSingleDate"
403
+ suffix="date-filter-single"
404
+ show-filters
405
+ />
406
+
407
+ <h3 class="mt-6 mb-3">Exemple 2: Filtrage par période</h3>
408
+ <SyTable
409
+ v-model:options="optionsPeriod"
410
+ :headers="headersPeriod"
411
+ :items="itemsPeriod"
412
+ suffix="date-filter-period"
413
+ show-filters
414
+ />
415
+ </div>
416
+ `,
417
+ }),
418
+ }
@@ -0,0 +1,139 @@
1
+ import { Controls, Canvas, Meta, Source } from '@storybook/blocks';
2
+ import * as SyTable from './SyTable.stories';
3
+
4
+ <Meta of={SyTable} />
5
+
6
+ # SyTable
7
+
8
+ Le composant `SyTable` est utilisé pour afficher des données tabulaires côté client. Il s'appuie sur le composant `VDataTable` de Vuetify et offre des fonctionnalités supplémentaires comme le stockage local des options de tableau et des améliorations d'accessibilité.
9
+
10
+ <Canvas story={{height: '550px'}} of={SyTable.Default} />
11
+
12
+ ## API
13
+
14
+ <Controls of={SyTable.Default} />
15
+
16
+ ## Fonctionnalités
17
+
18
+ ### Stockage local des options
19
+
20
+ Le composant `SyTable` enregistre automatiquement les options du tableau (tri, pagination, etc.) dans le localStorage du navigateur. Ces options sont restaurées lorsque l'utilisateur revient sur la page.
21
+
22
+ Pour gérer individuellement le stockage des options pour différents tableaux, utilisez la prop `suffix`.
23
+
24
+ ### Tri des colonnes
25
+
26
+ Le composant permet de trier les données par colonne en cliquant sur l'en-tête de la colonne.
27
+
28
+ <Canvas story={{height: '550px'}} of={SyTable.SortBy} />
29
+
30
+ ### Filtres des colonnes
31
+
32
+ Le composant permet d'appliquer des filtres sur les colonnes. Vous pouvez définir des filtres personnalisés pour chaque colonne en utilisant la prop `show-filters`. Voir d'autres exemples de filtres dans les stories.
33
+ <Canvas story={{height: '550px'}} of={SyTable.FilterByText} />
34
+
35
+ ### Resize des colonnes
36
+
37
+ Le composant peut permettre de redimensionner les colonnes en utilisant la prop `resizable-columns`. Vous pouvez activer ou désactiver cette fonctionnalité selon vos besoins.
38
+ <Canvas story={{height: '550px'}} of={SyTable.ResizableColumns} />
39
+
40
+ ### Réorganisation des colonnes
41
+
42
+ Le composant permet de cacher ou réorganiser l'ordre des colonnes en utilisant la prop `enable-column-controls`. Vous pouvez activer ou désactiver cette fonctionnalité selon vos besoins.
43
+ <Canvas story={{height: '550px'}} of={SyTable.ColumnControls} />
44
+
45
+ ### Selection des lignes
46
+
47
+ Le composant permet de sélectionner des lignes individuellement ou en masse. Vous pouvez activer la sélection en utilisant la prop `show-select`.
48
+ <Canvas story={{height: '550px'}} of={SyTable.RowSelection} />
49
+
50
+ ### Accessibilité
51
+
52
+ Le composant améliore l'accessibilité en ajoutant automatiquement :
53
+ - Une légende (caption) pour le tableau
54
+ - Des attributs ARIA appropriés
55
+ - Des attributs scope pour les en-têtes de colonnes
56
+
57
+ ## Exemples d'utilisation
58
+
59
+ ### Tableau simple
60
+
61
+ <Source dark code={`
62
+ <template>
63
+ <SyTable
64
+ v-model:options="options"
65
+ :headers="headers"
66
+ :items="items"
67
+ />
68
+ </template>
69
+
70
+ <script setup lang="ts">
71
+ import { ref } from 'vue'
72
+ import { SyTable } from '@cnamts/synapse'
73
+
74
+ const options = ref({
75
+ itemsPerPage: 4,
76
+ })
77
+
78
+ const headers = ref([
79
+ {
80
+ title: 'Nom',
81
+ key: 'lastname',
82
+ },
83
+ {
84
+ title: 'Prénom',
85
+ key: 'firstname',
86
+ },
87
+ {
88
+ title: 'Email',
89
+ value: 'email',
90
+ },
91
+ ])
92
+
93
+ const items = ref([
94
+ {
95
+ firstname: 'Virginie',
96
+ lastname: 'Beauchesne',
97
+ email: 'virginie.beauchesne@example.com',
98
+ },
99
+ {
100
+ firstname: 'Simone',
101
+ lastname: 'Bellefeuille',
102
+ email: 'simone.bellefeuille@example.com',
103
+ },
104
+ {
105
+ firstname: 'Étienne',
106
+ lastname: 'Salois',
107
+ email: 'etienne.salois@example.com',
108
+ },
109
+ {
110
+ firstname: 'Thierry',
111
+ lastname: 'Bobu',
112
+ email: 'thierry.bobu@example.com',
113
+ },
114
+ {
115
+ firstname: 'Bernadette',
116
+ lastname: 'Langelier',
117
+ email: 'bernadette.langelier@exemple.com'
118
+ },
119
+ {
120
+ firstname: 'Agate',
121
+ lastname: 'Roy',
122
+ email: 'agate.roy@exemple.com'
123
+ }
124
+ ])
125
+ </script>
126
+ `} />
127
+
128
+ ### Plusieurs tableaux sur une même page
129
+
130
+ Pour utiliser plusieurs tableaux sur une même page avec des options indépendantes, utilisez la prop `suffix` pour chaque tableau.
131
+
132
+ <Canvas of={SyTable.ManyTables} />
133
+
134
+ ## Bonnes pratiques
135
+
136
+ - Utilisez des en-têtes clairs et descriptifs pour chaque colonne
137
+ - Définissez un nombre d'éléments par page adapté à votre contenu
138
+ - Utilisez la prop `suffix` lorsque vous avez plusieurs tableaux sur une même page
139
+ - Ajoutez une légende explicite si le tableau contient des données complexes