@cnamts/synapse 0.0.16-alpha → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/dist/DateFilter-BmRuzQ9Z.js +98 -0
  2. package/dist/NumberFilter-CnIPDHqx.js +121 -0
  3. package/dist/PeriodFilter-CZwZ8CnQ.js +112 -0
  4. package/dist/SelectFilter-Cj-GW2Cc.js +97 -0
  5. package/dist/TextFilter-DTxZHJwX.js +114 -0
  6. package/dist/{components/BackBtn → common}/constants/ExpertiseLevelEnum.d.ts +3 -0
  7. package/dist/components/Accordion/Accordion.d.ts +39 -0
  8. package/dist/components/Accordion/config.d.ts +9 -0
  9. package/dist/components/BackBtn/AccessibiliteItems.d.ts +1 -1
  10. package/dist/components/BackToTopBtn/AccessibiliteItems.d.ts +1 -1
  11. package/dist/components/ChipList/AccessibiliteItems.d.ts +1 -1
  12. package/dist/components/ChipList/ChipList.d.ts +1 -1
  13. package/dist/components/CollapsibleList/AccessibiliteItems.d.ts +1 -1
  14. package/dist/components/ContextualMenu/AccessibiliteItems.d.ts +1 -1
  15. package/dist/components/CookieBanner/AccessibiliteItems.d.ts +1 -1
  16. package/dist/components/CopyBtn/AccessibiliteItems.d.ts +1 -1
  17. package/dist/components/CopyBtn/CopyBtn.d.ts +2 -0
  18. package/dist/components/Customs/SyBtnSelect/AccessibiliteItems.d.ts +1 -1
  19. package/dist/components/Customs/SyInputSelect/AccessibiliteItems.d.ts +1 -1
  20. package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +12 -0
  21. package/dist/components/Customs/SySelect/AccessibiliteItems.d.ts +1 -1
  22. package/dist/components/Customs/SySelect/SySelect.d.ts +43 -16
  23. package/dist/components/Customs/SyTextField/AccessibiliteItems.d.ts +1 -1
  24. package/dist/components/Customs/SyTextField/SyTextField.d.ts +17 -17
  25. package/dist/components/DataList/AccessibiliteItems.d.ts +1 -1
  26. package/dist/components/DataListGroup/AccessibiliteItems.d.ts +1 -1
  27. package/dist/components/DatePicker/AccessibiliteItems.d.ts +1 -1
  28. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +4162 -0
  29. package/dist/components/DatePicker/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +176 -136
  30. package/dist/components/DatePicker/{DateTextInput.d.ts → DateTextInput/DateTextInput.d.ts} +48 -42
  31. package/dist/components/DatePicker/composables/index.d.ts +15 -0
  32. package/dist/components/DatePicker/composables/useDateFormatValidation.d.ts +25 -0
  33. package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +33 -0
  34. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +16 -0
  35. package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +27 -0
  36. package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +29 -0
  37. package/dist/components/DatePicker/composables/useDateRangeValidation.d.ts +11 -0
  38. package/dist/components/DatePicker/composables/useDateSelection.d.ts +10 -0
  39. package/dist/components/DatePicker/composables/useDateValidation.d.ts +35 -0
  40. package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +16 -0
  41. package/dist/components/DatePicker/composables/useIconState.d.ts +17 -0
  42. package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +30 -0
  43. package/dist/components/DatePicker/composables/useInputHandler.d.ts +32 -0
  44. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +33 -0
  45. package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +9 -0
  46. package/dist/components/DatePicker/composables/useTodayButton.d.ts +16 -0
  47. package/dist/components/DatePicker/composables/useWeekendDays.d.ts +11 -0
  48. package/dist/components/DatePicker/constants/messages.d.ts +29 -0
  49. package/dist/components/DatePicker/types.d.ts +13 -0
  50. package/dist/components/DiacriticPicker/DiacriticPicker.d.ts +27 -0
  51. package/dist/components/DiacriticPicker/config.d.ts +14 -0
  52. package/dist/components/DiacriticPicker/locales.d.ts +6 -0
  53. package/dist/components/DialogBox/AccessibiliteItems.d.ts +1 -1
  54. package/dist/components/DownloadBtn/AccessibiliteItems.d.ts +1 -1
  55. package/dist/components/DownloadBtn/DownloadBtn.d.ts +1 -1
  56. package/dist/components/ErrorPage/AccessibiliteItems.d.ts +1 -1
  57. package/dist/components/ExternalLinks/AccessibiliteItems.d.ts +1 -1
  58. package/dist/components/FileList/AccessibiliteItems.d.ts +1 -1
  59. package/dist/components/FilePreview/AccessibiliteItems.d.ts +1 -1
  60. package/dist/components/FileUpload/AccessibiliteItems.d.ts +1 -1
  61. package/dist/components/FilterInline/AccessibiliteItems.d.ts +1 -1
  62. package/dist/components/FilterSideBar/AccessibiliteItems.d.ts +1 -1
  63. package/dist/components/FilterSideBar/FilterSideBar.d.ts +395 -1
  64. package/dist/components/FooterBar/AccessibiliteItems.d.ts +1 -1
  65. package/dist/components/FooterBar/FooterBar.d.ts +1 -1
  66. package/dist/components/FranceConnectBtn/AccessibiliteItems.d.ts +1 -1
  67. package/dist/components/HeaderBar/AccessibiliteItems.d.ts +1 -1
  68. package/dist/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +1 -1
  69. package/dist/components/HeaderLoading/AccessibiliteItems.d.ts +1 -1
  70. package/dist/components/HeaderToolbar/AccessibiliteItems.d.ts +1 -1
  71. package/dist/components/LangBtn/AccessibiliteItems.d.ts +1 -1
  72. package/dist/components/Logo/AccessibiliteItems.d.ts +1 -1
  73. package/dist/components/LogoBrandSection/AccessibiliteItems.d.ts +1 -1
  74. package/dist/components/MaintenancePage/AccessibiliteItems.d.ts +1 -1
  75. package/dist/components/NirField/AccessibiliteItems.d.ts +1 -1
  76. package/dist/components/NirField/NirField.d.ts +34 -32
  77. package/dist/components/NotFoundPage/AccessibiliteItems.d.ts +1 -1
  78. package/dist/components/NotificationBar/AccessibiliteItems.d.ts +1 -1
  79. package/dist/components/NotificationBar/NotificationBar.d.ts +1 -1
  80. package/dist/components/PageContainer/AccessibiliteItems.d.ts +1 -1
  81. package/dist/components/PaginatedTable/AccessibiliteItems.d.ts +1 -1
  82. package/dist/components/PasswordField/AccessibiliteItems.d.ts +1 -1
  83. package/dist/components/PasswordField/PasswordField.d.ts +1 -1
  84. package/dist/components/PeriodField/AccessibiliteItems.d.ts +1 -1
  85. package/dist/components/PeriodField/PeriodField.d.ts +235 -101
  86. package/dist/components/PhoneField/AccessibiliteItems.d.ts +1 -1
  87. package/dist/components/PhoneField/PhoneField.d.ts +1 -0
  88. package/dist/components/PhoneField/tests/types.d.ts +18 -0
  89. package/dist/components/RangeField/AccessibiliteItems.d.ts +1 -1
  90. package/dist/components/RatingPicker/AccessibiliteItems.d.ts +1 -1
  91. package/dist/components/SearchListField/AccessibiliteItems.d.ts +1 -1
  92. package/dist/components/SelectBtnField/AccessibiliteItems.d.ts +1 -1
  93. package/dist/components/SkipLink/AccessibiliteItems.d.ts +1 -1
  94. package/dist/components/SocialMediaLinks/AccessibiliteItems.d.ts +1 -1
  95. package/dist/components/SubHeader/AccessibiliteItems.d.ts +1 -1
  96. package/dist/components/SyAlert/AccessibiliteItems.d.ts +1 -1
  97. package/dist/components/SyTextArea/SyTextArea.d.ts +900 -0
  98. package/dist/components/SyTextArea/locales.d.ts +3 -0
  99. package/dist/components/SyTextArea/trimStartOnUpdate.d.ts +1 -0
  100. package/dist/components/SyTextArea/useTextActions.d.ts +13 -0
  101. package/dist/components/SyTextArea/wrapText.d.ts +1 -0
  102. package/dist/components/TableToolbar/AccessibiliteItems.d.ts +1 -1
  103. package/dist/components/TableToolbar/TableToolbar.d.ts +10 -4
  104. package/dist/components/TableToolbar/config.d.ts +3 -2
  105. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +647 -0
  106. package/dist/components/Tables/SyTable/SyTable.d.ts +666 -0
  107. package/dist/components/Tables/common/SyTableFilter.d.ts +126 -0
  108. package/dist/components/Tables/common/TableHeader.d.ts +33 -0
  109. package/dist/components/Tables/common/constants/StateEnum.d.ts +6 -0
  110. package/dist/components/Tables/common/filters/DateFilter.d.ts +121 -0
  111. package/dist/components/Tables/common/filters/NumberFilter.d.ts +132 -0
  112. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +135 -0
  113. package/dist/components/Tables/common/filters/SelectFilter.d.ts +120 -0
  114. package/dist/components/Tables/common/filters/TextFilter.d.ts +132 -0
  115. package/dist/components/Tables/common/formatters.d.ts +17 -0
  116. package/dist/components/Tables/common/locales.d.ts +7 -0
  117. package/dist/components/Tables/common/tableAccessibilityUtils.d.ts +8 -0
  118. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -0
  119. package/dist/components/Tables/common/tableStorageUtils.d.ts +29 -0
  120. package/dist/components/Tables/common/tableUtils.d.ts +42 -0
  121. package/dist/components/Tables/common/types.d.ts +80 -0
  122. package/dist/components/Tables/common/useTableFilter.d.ts +9 -0
  123. package/dist/components/Tables/index.d.ts +2 -0
  124. package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +1 -1
  125. package/dist/components/UserMenuBtn/AccessibiliteItems.d.ts +1 -1
  126. package/dist/components/index.d.ts +6 -1
  127. package/dist/composables/date/useHolidayDay.d.ts +36 -0
  128. package/dist/design-system-v3.js +100 -11271
  129. package/dist/design-system-v3.umd.cjs +22 -1
  130. package/dist/designTokens/index.d.ts +3 -1
  131. package/dist/designTokens/tokens/cnam/cnamFonts.d.ts +140 -0
  132. package/dist/designTokens/tokens/pa/paFonts.d.ts +140 -0
  133. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +1 -32
  134. package/dist/designTokens/utils/createFontVariables.d.ts +39 -0
  135. package/dist/designTokens/utils/index.d.ts +2 -1
  136. package/dist/main-WDqeoGM-.js +14788 -0
  137. package/dist/style.css +1 -1
  138. package/dist/utils/rules/index.d.ts +1 -0
  139. package/dist/utils/rules/isHolidayDay/index.d.ts +11 -0
  140. package/dist/utils/rules/isHolidayDay/locales.d.ts +2 -0
  141. package/dist/utils/rules/isRequired/index.d.ts +1 -1
  142. package/dist/vite-env.d.ts +12 -0
  143. package/package.json +2 -1
  144. package/src/assets/_spacers.scss +37 -1
  145. package/src/assets/_typography.scss +158 -0
  146. package/src/assets/settings.scss +19 -0
  147. package/src/common/constants/ExpertiseLevelEnum.ts +7 -0
  148. package/src/components/Accordion/Accordion.mdx +69 -0
  149. package/src/components/Accordion/Accordion.stories.ts +262 -0
  150. package/src/components/Accordion/Accordion.vue +319 -0
  151. package/src/components/Accordion/config.ts +9 -0
  152. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +155 -0
  153. package/src/components/Accordion/tests/accordion.spec.ts +492 -0
  154. package/src/components/BackBtn/AccessibiliteItems.ts +1 -1
  155. package/src/components/BackToTopBtn/AccessibiliteItems.ts +1 -1
  156. package/src/components/ChipList/AccessibiliteItems.ts +1 -1
  157. package/src/components/CollapsibleList/AccessibiliteItems.ts +1 -1
  158. package/src/components/ContextualMenu/AccessibiliteItems.ts +1 -1
  159. package/src/components/CookieBanner/AccessibiliteItems.ts +1 -1
  160. package/src/components/CopyBtn/AccessibiliteItems.ts +1 -1
  161. package/src/components/CopyBtn/CopyBtn.stories.ts +189 -0
  162. package/src/components/CopyBtn/CopyBtn.vue +29 -1
  163. package/src/components/CopyBtn/tests/CopyBtn.spec.ts +102 -0
  164. package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +1 -1
  165. package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +1 -1
  166. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +155 -1
  167. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +97 -14
  168. package/src/components/Customs/SyInputSelect/tests/SyInputSelect.spec.ts +386 -106
  169. package/src/components/Customs/SySelect/AccessibiliteItems.ts +1 -1
  170. package/src/components/Customs/SySelect/SySelect.stories.ts +121 -2
  171. package/src/components/Customs/SySelect/SySelect.vue +25 -6
  172. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +294 -3
  173. package/src/components/Customs/SyTextField/AccessibiliteItems.ts +1 -1
  174. package/src/components/Customs/SyTextField/SyTextField.vue +5 -3
  175. package/src/components/DataList/AccessibiliteItems.ts +1 -1
  176. package/src/components/DataListGroup/AccessibiliteItems.ts +1 -1
  177. package/src/components/DatePicker/AccessibiliteItems.ts +1 -1
  178. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +212 -0
  179. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1097 -0
  180. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +497 -180
  181. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +941 -0
  182. package/src/components/DatePicker/DatePicker/DatePicker.mdx +176 -0
  183. package/src/components/DatePicker/{tests → DatePicker}/DatePicker.spec.ts +1 -1
  184. package/src/components/DatePicker/{DatePicker.stories.ts → DatePicker/DatePicker.stories.ts} +115 -400
  185. package/src/components/DatePicker/{DatePicker.vue → DatePicker/DatePicker.vue} +314 -83
  186. package/src/components/DatePicker/DatePickerOverview.mdx +227 -0
  187. package/src/components/DatePicker/{DatePickerValidation.mdx → DatePickerValidationExample/DatePickerValidation.mdx} +3 -3
  188. package/src/components/DatePicker/{DatePickerValidation.stories.ts → DatePickerValidationExample/DatePickerValidation.stories.ts} +2 -2
  189. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +310 -0
  190. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +278 -0
  191. package/src/components/DatePicker/{tests → DateTextInput}/DateTextInput.spec.ts +8 -7
  192. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +916 -0
  193. package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +64 -0
  194. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +572 -0
  195. package/src/components/DatePicker/composables/index.ts +22 -0
  196. package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +165 -0
  197. package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +359 -0
  198. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +160 -0
  199. package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +339 -0
  200. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +277 -0
  201. package/src/components/DatePicker/composables/tests/useDateRangeValidation.spec.ts +107 -0
  202. package/src/components/DatePicker/composables/tests/useDateSelection.spec.ts +171 -0
  203. package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +245 -0
  204. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +98 -0
  205. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +130 -0
  206. package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +278 -0
  207. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +233 -0
  208. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +100 -0
  209. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +97 -0
  210. package/src/components/DatePicker/composables/tests/useWeekendDays.spec.ts +28 -0
  211. package/src/components/DatePicker/composables/useDateFormatValidation.ts +95 -0
  212. package/src/components/DatePicker/composables/useDateInputEditing.ts +326 -0
  213. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +61 -0
  214. package/src/components/DatePicker/composables/useDatePickerVisibility.ts +146 -0
  215. package/src/components/DatePicker/composables/useDateRangeInput.ts +375 -0
  216. package/src/components/DatePicker/composables/useDateRangeValidation.ts +48 -0
  217. package/src/components/DatePicker/composables/useDateSelection.ts +121 -0
  218. package/src/components/DatePicker/composables/useDateValidation.ts +225 -0
  219. package/src/components/DatePicker/composables/useDisplayedDateString.ts +58 -0
  220. package/src/components/DatePicker/composables/useIconState.ts +53 -0
  221. package/src/components/DatePicker/composables/useInputBlurHandler.ts +101 -0
  222. package/src/components/DatePicker/composables/useInputHandler.ts +436 -0
  223. package/src/components/DatePicker/composables/useManualDateValidation.ts +161 -0
  224. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +89 -0
  225. package/src/components/DatePicker/composables/useTodayButton.ts +43 -0
  226. package/src/components/DatePicker/composables/useWeekendDays.ts +21 -0
  227. package/src/components/DatePicker/constants/messages.ts +50 -0
  228. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
  229. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
  230. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +172 -0
  231. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +130 -0
  232. package/src/components/DatePicker/types.ts +15 -0
  233. package/src/components/DiacriticPicker/DiacriticPicker.mdx +104 -0
  234. package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +447 -0
  235. package/src/components/DiacriticPicker/DiacriticPicker.vue +262 -0
  236. package/src/components/DiacriticPicker/config.ts +15 -0
  237. package/src/components/DiacriticPicker/locales.ts +6 -0
  238. package/src/components/DiacriticPicker/tests/DiatriticPicker.spec.ts +132 -0
  239. package/src/components/DialogBox/AccessibiliteItems.ts +1 -1
  240. package/src/components/DialogBox/DialogBox.vue +1 -3
  241. package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -1
  242. package/src/components/ErrorPage/AccessibiliteItems.ts +1 -1
  243. package/src/components/ExternalLinks/AccessibiliteItems.ts +1 -1
  244. package/src/components/FileList/AccessibiliteItems.ts +1 -1
  245. package/src/components/FilePreview/AccessibiliteItems.ts +1 -1
  246. package/src/components/FileUpload/AccessibiliteItems.ts +1 -1
  247. package/src/components/FilterInline/AccessibiliteItems.ts +1 -1
  248. package/src/components/FilterSideBar/AccessibiliteItems.ts +1 -1
  249. package/src/components/FilterSideBar/FilterSideBar.vue +108 -90
  250. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +27 -0
  251. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +114 -109
  252. package/src/components/FooterBar/AccessibiliteItems.ts +1 -1
  253. package/src/components/FooterBar/FooterBar.vue +2 -1
  254. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +1 -1
  255. package/src/components/HeaderBar/AccessibiliteItems.ts +1 -1
  256. package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +1 -1
  257. package/src/components/HeaderLoading/AccessibiliteItems.ts +1 -1
  258. package/src/components/HeaderToolbar/AccessibiliteItems.ts +1 -1
  259. package/src/components/LangBtn/AccessibiliteItems.ts +1 -1
  260. package/src/components/Logo/Accessibilite.stories.ts +4 -0
  261. package/src/components/Logo/AccessibiliteItems.ts +1 -1
  262. package/src/components/LogoBrandSection/AccessibiliteItems.ts +1 -1
  263. package/src/components/MaintenancePage/AccessibiliteItems.ts +1 -1
  264. package/src/components/NirField/AccessibiliteItems.ts +1 -1
  265. package/src/components/NirField/NirField.stories.ts +172 -0
  266. package/src/components/NirField/NirField.vue +15 -7
  267. package/src/components/NotFoundPage/AccessibiliteItems.ts +1 -1
  268. package/src/components/NotificationBar/Accessibilite.stories.ts +1 -1
  269. package/src/components/NotificationBar/AccessibiliteItems.ts +1 -1
  270. package/src/components/NotificationBar/NotificationBar.stories.ts +14 -0
  271. package/src/components/NotificationBar/NotificationBar.vue +26 -3
  272. package/src/components/NotificationBar/{options.ts → config.ts} +0 -1
  273. package/src/components/PageContainer/AccessibiliteItems.ts +1 -1
  274. package/src/components/PaginatedTable/AccessibiliteItems.ts +1 -1
  275. package/src/components/PaginatedTable/PaginatedTable.stories.ts +19 -0
  276. package/src/components/PaginatedTable/PaginatedTable.vue +51 -24
  277. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -2
  278. package/src/components/PasswordField/AccessibiliteItems.ts +1 -1
  279. package/src/components/PasswordField/PasswordField.stories.ts +4 -3
  280. package/src/components/PasswordField/PasswordField.vue +26 -18
  281. package/src/components/PasswordField/tests/PasswordField.spec.ts +1 -10
  282. package/src/components/PeriodField/AccessibiliteItems.ts +1 -1
  283. package/src/components/PeriodField/PeriodField.vue +13 -1
  284. package/src/components/PhoneField/AccessibiliteItems.ts +1 -1
  285. package/src/components/PhoneField/PhoneField.stories.ts +143 -0
  286. package/src/components/PhoneField/PhoneField.vue +88 -30
  287. package/src/components/PhoneField/tests/PhoneField.additional.spec.ts +266 -0
  288. package/src/components/PhoneField/tests/PhoneField.spec.ts +248 -28
  289. package/src/components/PhoneField/tests/types.d.ts +19 -0
  290. package/src/components/RangeField/AccessibiliteItems.ts +1 -1
  291. package/src/components/RatingPicker/AccessibiliteItems.ts +1 -1
  292. package/src/components/SearchListField/AccessibiliteItems.ts +1 -1
  293. package/src/components/SelectBtnField/AccessibiliteItems.ts +1 -1
  294. package/src/components/SkipLink/AccessibiliteItems.ts +1 -1
  295. package/src/components/SocialMediaLinks/AccessibiliteItems.ts +1 -1
  296. package/src/components/SubHeader/AccessibiliteItems.ts +1 -1
  297. package/src/components/SyAlert/AccessibiliteItems.ts +1 -1
  298. package/src/components/SyTextArea/SyTextArea.mdx +17 -0
  299. package/src/components/SyTextArea/SyTextArea.stories.ts +322 -0
  300. package/src/components/SyTextArea/SyTextArea.vue +113 -0
  301. package/src/components/SyTextArea/locales.ts +3 -0
  302. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +194 -0
  303. package/src/components/SyTextArea/trimStartOnUpdate.ts +12 -0
  304. package/src/components/SyTextArea/useTextActions.ts +52 -0
  305. package/src/components/SyTextArea/wrapText.ts +42 -0
  306. package/src/components/TableToolbar/AccessibiliteItems.ts +1 -1
  307. package/src/components/TableToolbar/TableToolbar.mdx +86 -1
  308. package/src/components/TableToolbar/TableToolbar.stories.ts +509 -107
  309. package/src/components/TableToolbar/TableToolbar.vue +25 -8
  310. package/src/components/TableToolbar/config.ts +3 -2
  311. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +35 -12
  312. package/src/components/Tables/SyServerTable/FilterRules.stories.ts +83 -0
  313. package/src/components/Tables/SyServerTable/SyServerTable.mdx +160 -0
  314. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +2887 -0
  315. package/src/components/Tables/SyServerTable/SyServerTable.vue +302 -0
  316. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +450 -0
  317. package/src/components/Tables/SyServerTable/tests/__snapshots__/SyServerTable.spec.ts.snap +521 -0
  318. package/src/components/Tables/SyTable/FilterRules.stories.ts +235 -0
  319. package/src/components/Tables/SyTable/SyTable.mdx +129 -0
  320. package/src/components/Tables/SyTable/SyTable.stories.ts +1966 -0
  321. package/src/components/Tables/SyTable/SyTable.vue +317 -0
  322. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +345 -0
  323. package/src/components/Tables/SyTable/tests/__snapshots__/SyTable.spec.ts.snap +521 -0
  324. package/src/components/Tables/common/SyTableFilter.vue +342 -0
  325. package/src/components/Tables/common/TableHeader.vue +221 -0
  326. package/src/components/Tables/common/constants/StateEnum.ts +6 -0
  327. package/src/components/Tables/common/filters/DateFilter.vue +140 -0
  328. package/src/components/Tables/common/filters/NumberFilter.vue +234 -0
  329. package/src/components/Tables/common/filters/PeriodFilter.vue +147 -0
  330. package/src/components/Tables/common/filters/SelectFilter.vue +126 -0
  331. package/src/components/Tables/common/filters/TextFilter.vue +191 -0
  332. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +187 -0
  333. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +280 -0
  334. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +192 -0
  335. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +219 -0
  336. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +260 -0
  337. package/src/components/Tables/common/formatters.ts +72 -0
  338. package/src/components/Tables/common/locales.ts +7 -0
  339. package/src/components/Tables/common/tableAccessibilityUtils.ts +61 -0
  340. package/src/components/Tables/common/tableFilterUtils.ts +327 -0
  341. package/src/components/Tables/common/tableStorageUtils.ts +102 -0
  342. package/src/components/Tables/common/tableStyles.scss +54 -0
  343. package/src/components/Tables/common/tableUtils.ts +115 -0
  344. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +312 -0
  345. package/src/components/Tables/common/tests/resize.spec.ts +161 -0
  346. package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +106 -0
  347. package/src/components/Tables/common/tests/tableUtils.spec.ts +272 -0
  348. package/src/components/Tables/common/types.ts +81 -0
  349. package/src/components/Tables/common/useTableFilter.ts +19 -0
  350. package/src/components/Tables/index.ts +3 -0
  351. package/src/components/UploadWorkflow/AccessibiliteItems.ts +1 -1
  352. package/src/components/UserMenuBtn/AccessibiliteItems.ts +1 -1
  353. package/src/components/index.ts +6 -1
  354. package/src/composables/date/useDateFormatDayjs.ts +8 -3
  355. package/src/composables/date/useDateInitializationDayjs.ts +28 -36
  356. package/src/composables/date/useHolidayDay.ts +98 -0
  357. package/src/composables/rules/useFieldValidation.ts +16 -4
  358. package/src/composables/validation/useValidation.ts +2 -1
  359. package/src/designTokens/index.ts +4 -0
  360. package/src/designTokens/tokens/cnam/cnamFonts.ts +140 -0
  361. package/src/designTokens/tokens/pa/paFonts.ts +140 -0
  362. package/src/designTokens/tokens/pa/paLightTheme.ts +10 -41
  363. package/src/designTokens/utils/createFontVariables.ts +143 -0
  364. package/src/designTokens/utils/index.ts +2 -1
  365. package/src/stories/Accessibilite/Introduction.mdx +5 -2
  366. package/src/stories/Demarrer/Accueil.stories.ts +12 -3
  367. package/src/stories/DesignTokens/colors.stories.ts +100 -41
  368. package/src/utils/rules/index.ts +1 -0
  369. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +52 -0
  370. package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +129 -0
  371. package/src/utils/rules/isHolidayDay/index.ts +36 -0
  372. package/src/utils/rules/isHolidayDay/locales.ts +5 -0
  373. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +35 -0
  374. package/src/utils/rules/isRequired/index.ts +2 -1
  375. package/src/vite-env.d.ts +12 -0
  376. package/src/vuetifyConfig.ts +10 -3
  377. package/dist/components/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  378. package/dist/components/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -4
  379. package/dist/components/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -4
  380. package/dist/components/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  381. package/dist/components/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -4
  382. package/dist/components/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  383. package/dist/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  384. package/dist/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  385. package/dist/components/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  386. package/dist/components/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -4
  387. package/dist/components/DataList/constants/ExpertiseLevelEnum.d.ts +0 -4
  388. package/dist/components/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -4
  389. package/dist/components/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  390. package/dist/components/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -4
  391. package/dist/components/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  392. package/dist/components/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  393. package/dist/components/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  394. package/dist/components/FileList/constants/ExpertiseLevelEnum.d.ts +0 -4
  395. package/dist/components/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -4
  396. package/dist/components/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -4
  397. package/dist/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +0 -4
  398. package/dist/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  399. package/dist/components/FooterBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  400. package/dist/components/FranceConnectBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  401. package/dist/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  402. package/dist/components/HeaderBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  403. package/dist/components/HeaderLoading/constants/ExpertiseLevelEnum.d.ts +0 -4
  404. package/dist/components/HeaderToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  405. package/dist/components/LangBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  406. package/dist/components/Logo/constants/ExpertiseLevelEnum.d.ts +0 -4
  407. package/dist/components/LogoBrandSection/constants/ExpertiseLevelEnum.d.ts +0 -4
  408. package/dist/components/MaintenancePage/constants/ExpertiseLevelEnum.d.ts +0 -4
  409. package/dist/components/NirField/constants/ExpertiseLevelEnum.d.ts +0 -4
  410. package/dist/components/NotFoundPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  411. package/dist/components/NotificationBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  412. package/dist/components/PageContainer/constants/ExpertiseLevelEnum.d.ts +0 -4
  413. package/dist/components/PaginatedTable/constants/ExpertiseLevelEnum.d.ts +0 -4
  414. package/dist/components/PasswordField/constants/ExpertiseLevelEnum.d.ts +0 -4
  415. package/dist/components/PeriodField/constants/ExpertiseLevelEnum.d.ts +0 -4
  416. package/dist/components/PhoneField/constants/ExpertiseLevelEnum.d.ts +0 -4
  417. package/dist/components/RangeField/constants/ExpertiseLevelEnum.d.ts +0 -4
  418. package/dist/components/RatingPicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  419. package/dist/components/SearchListField/constants/ExpertiseLevelEnum.d.ts +0 -4
  420. package/dist/components/SelectBtnField/constants/ExpertiseLevelEnum.d.ts +0 -4
  421. package/dist/components/SkipLink/constants/ExpertiseLevelEnum.d.ts +0 -4
  422. package/dist/components/SocialMediaLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  423. package/dist/components/SubHeader/constants/ExpertiseLevelEnum.d.ts +0 -4
  424. package/dist/components/SyAlert/constants/ExpertiseLevelEnum.d.ts +0 -4
  425. package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  426. package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +0 -4
  427. package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  428. package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +0 -4
  429. package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +0 -4
  430. package/src/components/ChipList/constants/ExpertiseLevelEnum.ts +0 -4
  431. package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +0 -4
  432. package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +0 -4
  433. package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +0 -4
  434. package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +0 -4
  435. package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +0 -4
  436. package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +0 -4
  437. package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +0 -4
  438. package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +0 -4
  439. package/src/components/DataList/constants/ExpertiseLevelEnum.ts +0 -4
  440. package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +0 -4
  441. package/src/components/DatePicker/DatePicker.mdx +0 -222
  442. package/src/components/DatePicker/DateTextInput.vue +0 -493
  443. package/src/components/DatePicker/constants/ExpertiseLevelEnum.ts +0 -4
  444. package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +0 -4
  445. package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +0 -4
  446. package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +0 -4
  447. package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +0 -4
  448. package/src/components/FileList/constants/ExpertiseLevelEnum.ts +0 -4
  449. package/src/components/FilePreview/constants/ExpertiseLevelEnum.ts +0 -4
  450. package/src/components/FileUpload/constants/ExpertiseLevelEnum.ts +0 -4
  451. package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +0 -4
  452. package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +0 -4
  453. package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +0 -4
  454. package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +0 -4
  455. package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +0 -4
  456. package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +0 -4
  457. package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +0 -4
  458. package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  459. package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +0 -4
  460. package/src/components/Logo/constants/ExpertiseLevelEnum.ts +0 -4
  461. package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +0 -4
  462. package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +0 -4
  463. package/src/components/NirField/constants/ExpertiseLevelEnum.ts +0 -4
  464. package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +0 -4
  465. package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +0 -4
  466. package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +0 -4
  467. package/src/components/PaginatedTable/constants/ExpertiseLevelEnum.ts +0 -4
  468. package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +0 -4
  469. package/src/components/PeriodField/constants/ExpertiseLevelEnum.ts +0 -4
  470. package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +0 -4
  471. package/src/components/RangeField/constants/ExpertiseLevelEnum.ts +0 -4
  472. package/src/components/RatingPicker/constants/ExpertiseLevelEnum.ts +0 -4
  473. package/src/components/SearchListField/constants/ExpertiseLevelEnum.ts +0 -4
  474. package/src/components/SelectBtnField/constants/ExpertiseLevelEnum.ts +0 -4
  475. package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +0 -4
  476. package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +0 -4
  477. package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +0 -4
  478. package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +0 -4
  479. package/src/components/TableToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  480. package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +0 -4
  481. package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +0 -4
  482. /package/dist/components/NotificationBar/{options.d.ts → config.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/vue3'
2
2
  import TableToolbar from './TableToolbar.vue'
3
+ import SySelect from '../Customs/SySelect/SySelect.vue'
3
4
  import { VDataTable } from 'vuetify/components'
4
5
  import { ref } from 'vue'
5
6
  import { fn } from '@storybook/test'
@@ -118,11 +119,15 @@ const meta = {
118
119
  },
119
120
  },
120
121
  },
121
- 'search-left': {
122
+ 'filters': {
123
+ control: 'text',
124
+ description: 'Slot pour ajouter des filtres',
125
+ },
126
+ 'searchLeft': {
122
127
  control: 'text',
123
128
  description: 'Slot pour le contenu à gauche du champ de recherche',
124
129
  },
125
- 'search-right': {
130
+ 'searchRight': {
126
131
  control: 'text',
127
132
  description: 'Slot pour le contenu à droite du champ de recherche',
128
133
  },
@@ -152,22 +157,89 @@ type Story = StoryObj<typeof meta>
152
157
 
153
158
  export const Default: Story = {
154
159
  args: {
155
- 'nbFiltered': 5,
156
- 'nbTotal': 10,
160
+ 'nbTotal': 2,
157
161
  'onAdd': fn(),
158
162
  'onUpdate:search': fn(),
159
163
  },
164
+
165
+ render: (args) => {
166
+ return {
167
+ components: { TableToolbar, VDataTable },
168
+ setup() {
169
+ const headers = [
170
+ {
171
+ title: 'Nom',
172
+ sortable: true,
173
+ key: 'lastname',
174
+ },
175
+ {
176
+ title: 'Prénom',
177
+ sortable: true,
178
+ key: 'firstname',
179
+ },
180
+ {
181
+ title: 'Email',
182
+ sortable: true,
183
+ key: 'email',
184
+ },
185
+ ]
186
+
187
+ const items = [
188
+ {
189
+ firstname: 'Virginie',
190
+ lastname: 'Beauchesne',
191
+ email: 'virginie.beauchesne@example.com',
192
+ },
193
+ {
194
+ firstname: 'Étienne',
195
+ lastname: 'Salois',
196
+ email: 'etienne.salois@example.com',
197
+ },
198
+ ]
199
+
200
+ const search = ref('')
201
+
202
+ return { args, headers, items, search }
203
+ },
204
+ template: `
205
+ <VDataTable
206
+ :headers="headers"
207
+ :items="items"
208
+ :search="search"
209
+ :items-per-page="5"
210
+ hide-default-footer
211
+ >
212
+ <template #top>
213
+ <TableToolbar
214
+ v-bind="args"
215
+ v-model:search="search"
216
+ />
217
+ </template>
218
+ </VDataTable>
219
+ `,
220
+ }
221
+ },
160
222
  parameters: {
161
223
  sourceCode: [
162
224
  {
163
225
  name: 'Template',
164
226
  code: `
165
227
  <template>
166
- <TableToolbar
167
- v-model="search"
168
- :nb-total="10"
169
- :nb-filtered="5"
170
- />
228
+ <VDataTable
229
+ :headers="headers"
230
+ :items="items"
231
+ :search="args.search"
232
+ :items-per-page="5"
233
+ hide-default-footer
234
+ >
235
+ <template #top>
236
+ <TableToolbar
237
+ v-model:search="search"
238
+ :nb-total="items.length"
239
+ show-add-button
240
+ />
241
+ </template>
242
+ </VDataTable>
171
243
  </template>
172
244
  `,
173
245
  },
@@ -176,8 +248,40 @@ export const Default: Story = {
176
248
  code: `
177
249
  <script setup lang="ts">
178
250
  import { TableToolbar } from '@cnamts/synapse'
251
+ import { VDataTable } from 'vuetify/components'
179
252
  import { ref } from 'vue'
180
253
 
254
+ const headers = [
255
+ {
256
+ title: 'Nom',
257
+ sortable: true,
258
+ key: 'lastname',
259
+ },
260
+ {
261
+ title: 'Prénom',
262
+ sortable: true,
263
+ key: 'firstname',
264
+ },
265
+ {
266
+ title: 'Email',
267
+ sortable: true,
268
+ key: 'email',
269
+ },
270
+ ]
271
+
272
+ const items = [
273
+ {
274
+ firstname: 'Virginie',
275
+ lastname: 'Beauchesne',
276
+ email: 'virginie.beauchesne@example.com',
277
+ },
278
+ {
279
+ firstname: 'Étienne',
280
+ lastname: 'Salois',
281
+ email: 'etienne.salois@example.com',
282
+ },
283
+ ]
284
+
181
285
  const search = ref('')
182
286
  </script>
183
287
  `,
@@ -199,15 +303,18 @@ export const AddButton: Story = {
199
303
  const headers = [
200
304
  {
201
305
  title: 'Nom',
202
- value: 'lastname',
306
+ sortable: true,
307
+ key: 'lastname',
203
308
  },
204
309
  {
205
310
  title: 'Prénom',
206
- value: 'firstname',
311
+ sortable: true,
312
+ key: 'firstname',
207
313
  },
208
314
  {
209
315
  title: 'Email',
210
- value: 'email',
316
+ sortable: true,
317
+ key: 'email',
211
318
  },
212
319
  ]
213
320
 
@@ -232,13 +339,14 @@ export const AddButton: Story = {
232
339
  <VDataTable
233
340
  :headers="headers"
234
341
  :items="items"
342
+ :search="search"
343
+ :items-per-page="5"
235
344
  hide-default-footer
236
345
  >
237
346
  <template #top>
238
347
  <TableToolbar
239
348
  v-bind="args"
240
- v-model="search"
241
- :nb-total="items.length"
349
+ v-model:search="search"
242
350
  show-add-button
243
351
  />
244
352
  </template>
@@ -255,11 +363,13 @@ export const AddButton: Story = {
255
363
  <VDataTable
256
364
  :headers="headers"
257
365
  :items="items"
366
+ :search="search"
367
+ :items-per-page="5"
258
368
  hide-default-footer
259
369
  >
260
370
  <template #top>
261
371
  <TableToolbar
262
- v-model="search"
372
+ v-model:search="search"
263
373
  :nb-total="items.length"
264
374
  show-add-button
265
375
  />
@@ -279,15 +389,18 @@ export const AddButton: Story = {
279
389
  const headers = [
280
390
  {
281
391
  title: 'Nom',
282
- value: 'lastname',
392
+ sortable: true,
393
+ key: 'lastname',
283
394
  },
284
395
  {
285
396
  title: 'Prénom',
286
- value: 'firstname',
397
+ sortable: true,
398
+ key: 'firstname',
287
399
  },
288
400
  {
289
401
  title: 'Email',
290
- value: 'email',
402
+ sortable: true,
403
+ key: 'email',
291
404
  },
292
405
  ]
293
406
 
@@ -328,15 +441,18 @@ export const Labels: Story = {
328
441
  const headers = [
329
442
  {
330
443
  title: 'Nom',
331
- value: 'lastname',
444
+ sortable: true,
445
+ key: 'lastname',
332
446
  },
333
447
  {
334
448
  title: 'Prénom',
335
- value: 'firstname',
449
+ sortable: true,
450
+ key: 'firstname',
336
451
  },
337
452
  {
338
453
  title: 'Email',
339
- value: 'email',
454
+ sortable: true,
455
+ key: 'email',
340
456
  },
341
457
  ]
342
458
 
@@ -361,12 +477,14 @@ export const Labels: Story = {
361
477
  <VDataTable
362
478
  :headers="headers"
363
479
  :items="items"
480
+ :search="search"
481
+ :items-per-page="5"
364
482
  hide-default-footer
365
483
  >
366
484
  <template #top>
367
485
  <TableToolbar
368
486
  v-bind="args"
369
- v-model="search"
487
+ v-model:search="search"
370
488
  />
371
489
  </template>
372
490
  </VDataTable>
@@ -382,16 +500,17 @@ export const Labels: Story = {
382
500
  <VDataTable
383
501
  :headers="headers"
384
502
  :items="items"
503
+ :search="search"
504
+ :items-per-page="5"
385
505
  hide-default-footer
386
506
  >
387
507
  <template #top>
388
508
  <TableToolbar
389
- v-model="search"
509
+ v-model:search="search"
390
510
  :nb-total="items.length"
391
511
  show-add-button
392
- showAddButton
393
- addButtonLabel="Ajouter un patient"
394
- searchLabel="Rechercher un patient"
512
+ add-button-label="Ajouter un patient"
513
+ search-label="Rechercher un patient"
395
514
  />
396
515
  </template>
397
516
  </VDataTable>
@@ -409,15 +528,18 @@ export const Labels: Story = {
409
528
  const headers = [
410
529
  {
411
530
  title: 'Nom',
412
- value: 'lastname',
531
+ sortable: true,
532
+ key: 'lastname',
413
533
  },
414
534
  {
415
535
  title: 'Prénom',
416
- value: 'firstname',
536
+ sortable: true,
537
+ key: 'firstname',
417
538
  },
418
539
  {
419
540
  title: 'Email',
420
- value: 'email',
541
+ sortable: true,
542
+ key: 'email',
421
543
  },
422
544
  ]
423
545
 
@@ -456,15 +578,18 @@ export const Loading: Story = {
456
578
  const headers = [
457
579
  {
458
580
  title: 'Nom',
459
- value: 'lastname',
581
+ sortable: true,
582
+ key: 'lastname',
460
583
  },
461
584
  {
462
585
  title: 'Prénom',
463
- value: 'firstname',
586
+ sortable: true,
587
+ key: 'firstname',
464
588
  },
465
589
  {
466
590
  title: 'Email',
467
- value: 'email',
591
+ sortable: true,
592
+ key: 'email',
468
593
  },
469
594
  ]
470
595
 
@@ -489,25 +614,95 @@ export const Loading: Story = {
489
614
  <VDataTable
490
615
  :headers="headers"
491
616
  :items="items"
617
+ :items-per-page="args.nbFiltered"
618
+ :search="search"
492
619
  loading
493
620
  hide-default-footer
494
621
  >
495
622
  <template #top>
496
623
  <TableToolbar
497
624
  v-bind="args"
498
- v-model="search"
625
+ v-model:search="search"
499
626
  />
500
627
  </template>
501
628
  </VDataTable>
502
629
  `,
503
630
  }
504
631
  },
632
+ parameters: {
633
+ sourceCode: [
634
+ {
635
+ name: 'Template',
636
+ code: `
637
+ <template>
638
+ <VDataTable
639
+ :headers="headers"
640
+ :items="items"
641
+ :search="search"
642
+ loading
643
+ hide-default-footer
644
+ >
645
+ <template #top>
646
+ <TableToolbar
647
+ v-model:search="search"
648
+ :nb-total="items.length"
649
+ />
650
+ </template>
651
+ </VDataTable>
652
+ </template>
653
+ `,
654
+ },
655
+ {
656
+ name: 'Script',
657
+ code: `
658
+ <script setup lang="ts">
659
+ import { TableToolbar } from '@cnamts/synapse'
660
+ import { VDataTable } from 'vuetify/components'
661
+ import { ref } from 'vue'
662
+
663
+ const headers = [
664
+ {
665
+ title: 'Nom',
666
+ sortable: true,
667
+ key: 'lastname',
668
+ },
669
+ {
670
+ title: 'Prénom',
671
+ sortable: true,
672
+ key: 'firstname',
673
+ },
674
+ {
675
+ title: 'Email',
676
+ sortable: true,
677
+ key: 'email',
678
+ },
679
+ ]
680
+
681
+ const items = [
682
+ {
683
+ firstname: 'Virginie',
684
+ lastname: 'Beauchesne',
685
+ email: 'virginie.beauchesne@example.com',
686
+ },
687
+ {
688
+ firstname: 'Étienne',
689
+ lastname: 'Salois',
690
+ email: 'etienne.salois@example.com',
691
+ },
692
+ ]
693
+
694
+ const search = ref('')
695
+ </script>
696
+ `,
697
+ },
698
+ ],
699
+ },
505
700
  }
506
701
 
507
702
  export const NbFiltered: Story = {
508
703
  args: {
509
- 'nbTotal': 10,
510
- 'nbFiltered': 5,
704
+ 'nbTotal': 2,
705
+ 'nbFiltered': 1,
511
706
  'onAdd': fn(),
512
707
  'onUpdate:search': fn(),
513
708
  },
@@ -518,15 +713,18 @@ export const NbFiltered: Story = {
518
713
  const headers = [
519
714
  {
520
715
  title: 'Nom',
521
- value: 'lastname',
716
+ sortable: true,
717
+ key: 'lastname',
522
718
  },
523
719
  {
524
720
  title: 'Prénom',
525
- value: 'firstname',
721
+ sortable: true,
722
+ key: 'firstname',
526
723
  },
527
724
  {
528
725
  title: 'Email',
529
- value: 'email',
726
+ sortable: true,
727
+ key: 'email',
530
728
  },
531
729
  ]
532
730
 
@@ -551,12 +749,14 @@ export const NbFiltered: Story = {
551
749
  <VDataTable
552
750
  :headers="headers"
553
751
  :items="items"
752
+ :search="search"
753
+ :items-per-page="5"
554
754
  hide-default-footer
555
755
  >
556
756
  <template #top>
557
757
  <TableToolbar
558
758
  v-bind="args"
559
- v-model="search"
759
+ v-model:search="search"
560
760
  />
561
761
  </template>
562
762
  </VDataTable>
@@ -572,13 +772,15 @@ export const NbFiltered: Story = {
572
772
  <VDataTable
573
773
  :headers="headers"
574
774
  :items="items"
775
+ :items-per-page="1"
776
+ :search="search"
575
777
  hide-default-footer
576
778
  >
577
779
  <template #top>
578
780
  <TableToolbar
579
- v-model="search"
580
- :nbTotal="10"
581
- :nbFiltered="5"
781
+ v-model:search="search"
782
+ :nb-filtered="1"
783
+ :nb-total="items.length"
582
784
  />
583
785
  </template>
584
786
  </VDataTable>
@@ -596,15 +798,18 @@ export const NbFiltered: Story = {
596
798
  const headers = [
597
799
  {
598
800
  title: 'Nom',
599
- value: 'lastname',
801
+ sortable: true,
802
+ key: 'lastname',
600
803
  },
601
804
  {
602
805
  title: 'Prénom',
603
- value: 'firstname',
806
+ sortable: true,
807
+ key: 'firstname',
604
808
  },
605
809
  {
606
810
  title: 'Email',
607
- value: 'email',
811
+ sortable: true,
812
+ key: 'email',
608
813
  },
609
814
  ]
610
815
 
@@ -629,45 +834,31 @@ export const NbFiltered: Story = {
629
834
  },
630
835
  }
631
836
 
632
- export const Customization: Story = {
837
+ export const SlotFilters: Story = {
633
838
  args: {
634
- 'nbTotal': 10,
839
+ 'nbTotal': 2,
635
840
  'onAdd': fn(),
636
841
  'onUpdate:search': fn(),
637
- 'showAddButton': true,
638
- 'vuetifyOptions': {
639
- toolbar: {
640
- class: 'py-2',
641
- },
642
- textField: {
643
- variant: 'outlined',
644
- density: 'compact',
645
- },
646
- addBtn: {
647
- height: '40px',
648
- color: '#663399',
649
- },
650
- addIcon: {
651
- class: 'd-none',
652
- },
653
- },
654
842
  },
655
843
  render: (args) => {
656
844
  return {
657
- components: { TableToolbar, VDataTable },
845
+ components: { TableToolbar, SySelect, VDataTable },
658
846
  setup() {
659
847
  const headers = [
660
848
  {
661
849
  title: 'Nom',
662
- value: 'lastname',
850
+ sortable: true,
851
+ key: 'lastname',
663
852
  },
664
853
  {
665
854
  title: 'Prénom',
666
- value: 'firstname',
855
+ sortable: true,
856
+ key: 'firstname',
667
857
  },
668
858
  {
669
859
  title: 'Email',
670
- value: 'email',
860
+ sortable: true,
861
+ key: 'email',
671
862
  },
672
863
  ]
673
864
 
@@ -686,19 +877,44 @@ export const Customization: Story = {
686
877
 
687
878
  const search = ref('')
688
879
 
689
- return { args, headers, items, search }
880
+ const filterItems = ref<{ text: string, value: string }[]>([])
881
+
882
+ items.forEach((item) => {
883
+ filterItems.value.push({
884
+ text: item.lastname,
885
+ value: item.lastname,
886
+ })
887
+ })
888
+
889
+ return { args, headers, items, filterItems, search }
690
890
  },
691
891
  template: `
692
892
  <VDataTable
693
893
  :headers="headers"
694
894
  :items="items"
895
+ :search="search"
896
+ :items-per-page="5"
695
897
  hide-default-footer
696
898
  >
697
899
  <template #top>
698
900
  <TableToolbar
699
901
  v-bind="args"
700
- v-model="search"
701
- />
902
+ v-model:search="args.search"
903
+ >
904
+ <template #filters>
905
+ <div class="py-1">
906
+ <SySelect
907
+ v-model="search"
908
+ :items="filterItems"
909
+ label="Nom"
910
+ density="compact"
911
+ width="100"
912
+ hide-messages
913
+ clearable
914
+ />
915
+ </div>
916
+ </template>
917
+ </TableToolbar>
702
918
  </template>
703
919
  </VDataTable>
704
920
  `,
@@ -713,15 +929,29 @@ export const Customization: Story = {
713
929
  <VDataTable
714
930
  :headers="headers"
715
931
  :items="items"
932
+ :search="search"
933
+ :items-per-page="5"
716
934
  hide-default-footer
717
935
  >
718
936
  <template #top>
719
937
  <TableToolbar
720
- v-model="search"
721
- :nb-total="10"
722
- show-add-button
723
- :vuetifyOptions
724
- />
938
+ v-model:search="search"
939
+ :nb-total="items.length"
940
+ >
941
+ <template #filters>
942
+ <div class="py-4">
943
+ <SySelect
944
+ v-model="search"
945
+ :items="filterItems"
946
+ label="Nom"
947
+ density="compact"
948
+ width="100"
949
+ hide-messages
950
+ clearable
951
+ />
952
+ </div>
953
+ </template>
954
+ </TableToolbar>
725
955
  </template>
726
956
  </VDataTable>
727
957
  </template>
@@ -731,22 +961,25 @@ export const Customization: Story = {
731
961
  name: 'Script',
732
962
  code: `
733
963
  <script setup lang="ts">
734
- import { TableToolbar } from '@cnamts/synapse'
964
+ import { TableToolbar, SySelect } from '@cnamts/synapse'
735
965
  import { VDataTable } from 'vuetify/components'
736
966
  import { ref } from 'vue'
737
967
 
738
968
  const headers = [
739
969
  {
740
970
  title: 'Nom',
741
- value: 'lastname',
971
+ sortable: true,
972
+ key: 'lastname',
742
973
  },
743
974
  {
744
975
  title: 'Prénom',
745
- value: 'firstname',
976
+ sortable: true,
977
+ key: 'firstname',
746
978
  },
747
979
  {
748
980
  title: 'Email',
749
- value: 'email',
981
+ sortable: true,
982
+ key: 'email',
750
983
  },
751
984
  ]
752
985
 
@@ -763,24 +996,16 @@ export const Customization: Story = {
763
996
  },
764
997
  ]
765
998
 
766
- const vuetifyOptions = {
767
- toolbar: {
768
- class: 'py-2',
769
- },
770
- textField: {
771
- variant: 'outlined',
772
- density: 'compact',
773
- },
774
- addBtn: {
775
- height: '40px',
776
- color: '#663399',
777
- },
778
- addIcon: {
779
- class: 'd-none',
780
- },
781
- }
782
-
783
999
  const search = ref('')
1000
+
1001
+ const filterItems = ref<{ text: string, value: string }[]>([])
1002
+
1003
+ items.forEach((item) => {
1004
+ filterItems.value.push({
1005
+ text: item.lastname,
1006
+ value: item.lastname,
1007
+ })
1008
+ })
784
1009
  </script>
785
1010
  `,
786
1011
  },
@@ -788,7 +1013,7 @@ export const Customization: Story = {
788
1013
  },
789
1014
  }
790
1015
 
791
- export const Slots: Story = {
1016
+ export const OtherSlots: Story = {
792
1017
  args: {
793
1018
  'nbTotal': 2,
794
1019
  'onAdd': fn(),
@@ -801,15 +1026,18 @@ export const Slots: Story = {
801
1026
  const headers = [
802
1027
  {
803
1028
  title: 'Nom',
804
- value: 'lastname',
1029
+ sortable: true,
1030
+ key: 'lastname',
805
1031
  },
806
1032
  {
807
1033
  title: 'Prénom',
808
- value: 'firstname',
1034
+ sortable: true,
1035
+ key: 'firstname',
809
1036
  },
810
1037
  {
811
1038
  title: 'Email',
812
- value: 'email',
1039
+ sortable: true,
1040
+ key: 'email',
813
1041
  },
814
1042
  ]
815
1043
 
@@ -834,12 +1062,14 @@ export const Slots: Story = {
834
1062
  <VDataTable
835
1063
  :headers="headers"
836
1064
  :items="items"
1065
+ :search="search"
1066
+ :items-per-page="5"
837
1067
  hide-default-footer
838
1068
  >
839
1069
  <template #top>
840
1070
  <TableToolbar
841
1071
  v-bind="args"
842
- v-model="search"
1072
+ v-model:search="search"
843
1073
  >
844
1074
  <template #search-left>
845
1075
  <VBtn
@@ -866,12 +1096,14 @@ export const Slots: Story = {
866
1096
  <VDataTable
867
1097
  :headers="headers"
868
1098
  :items="items"
1099
+ :search="search"
1100
+ :items-per-page="5"
869
1101
  hide-default-footer
870
1102
  >
871
1103
  <template #top>
872
1104
  <TableToolbar
873
- v-model="search"
874
- :nb-total="2"
1105
+ v-model:search="search"
1106
+ :nb-total="items.length"
875
1107
  show-add-button
876
1108
  >
877
1109
  <template #search-left>
@@ -901,15 +1133,18 @@ export const Slots: Story = {
901
1133
  const headers = [
902
1134
  {
903
1135
  title: 'Nom',
904
- value: 'lastname',
1136
+ sortable: true,
1137
+ key: 'lastname',
905
1138
  },
906
1139
  {
907
1140
  title: 'Prénom',
908
- value: 'firstname',
1141
+ sortable: true,
1142
+ key: 'firstname',
909
1143
  },
910
1144
  {
911
1145
  title: 'Email',
912
- value: 'email',
1146
+ sortable: true,
1147
+ key: 'email',
913
1148
  },
914
1149
  ]
915
1150
 
@@ -933,3 +1168,170 @@ export const Slots: Story = {
933
1168
  ],
934
1169
  },
935
1170
  }
1171
+
1172
+ export const Customization: Story = {
1173
+ args: {
1174
+ 'nbTotal': 2,
1175
+ 'onAdd': fn(),
1176
+ 'onUpdate:search': fn(),
1177
+ 'showAddButton': true,
1178
+ 'vuetifyOptions': {
1179
+ toolbar: {
1180
+ class: 'py-2',
1181
+ },
1182
+ textField: {
1183
+ density: 'compact',
1184
+ },
1185
+ addBtn: {
1186
+ color: 'secondary',
1187
+ },
1188
+ addIcon: {
1189
+ class: 'd-none',
1190
+ },
1191
+ },
1192
+ },
1193
+ render: (args) => {
1194
+ return {
1195
+ components: { TableToolbar, VDataTable },
1196
+ setup() {
1197
+ const headers = [
1198
+ {
1199
+ title: 'Nom',
1200
+ sortable: true,
1201
+ key: 'lastname',
1202
+ },
1203
+ {
1204
+ title: 'Prénom',
1205
+ sortable: true,
1206
+ key: 'firstname',
1207
+ },
1208
+ {
1209
+ title: 'Email',
1210
+ sortable: true,
1211
+ key: 'email',
1212
+ },
1213
+ ]
1214
+
1215
+ const items = [
1216
+ {
1217
+ firstname: 'Virginie',
1218
+ lastname: 'Beauchesne',
1219
+ email: 'virginie.beauchesne@example.com',
1220
+ },
1221
+ {
1222
+ firstname: 'Étienne',
1223
+ lastname: 'Salois',
1224
+ email: 'etienne.salois@example.com',
1225
+ },
1226
+ ]
1227
+
1228
+ const search = ref('')
1229
+
1230
+ return { args, headers, items, search }
1231
+ },
1232
+ template: `
1233
+ <VDataTable
1234
+ :headers="headers"
1235
+ :items="items"
1236
+ :search="search"
1237
+ :items-per-page="5"
1238
+ hide-default-footer
1239
+ >
1240
+ <template #top>
1241
+ <TableToolbar
1242
+ v-bind="args"
1243
+ v-model:search="search"
1244
+ />
1245
+ </template>
1246
+ </VDataTable>
1247
+ `,
1248
+ }
1249
+ },
1250
+ parameters: {
1251
+ sourceCode: [
1252
+ {
1253
+ name: 'Template',
1254
+ code: `
1255
+ <template>
1256
+ <VDataTable
1257
+ :headers="headers"
1258
+ :items="items"
1259
+ :search="search"
1260
+ :items-per-page="5"
1261
+ hide-default-footer
1262
+ >
1263
+ <template #top>
1264
+ <TableToolbar
1265
+ v-model:search="search"
1266
+ show-add-button
1267
+ :nb-total="items.length"
1268
+ :vuetifyOptions
1269
+ />
1270
+ </template>
1271
+ </VDataTable>
1272
+ </template>
1273
+ `,
1274
+ },
1275
+ {
1276
+ name: 'Script',
1277
+ code: `
1278
+ <script setup lang="ts">
1279
+ import { TableToolbar } from '@cnamts/synapse'
1280
+ import { VDataTable } from 'vuetify/components'
1281
+ import { ref } from 'vue'
1282
+
1283
+ const headers = [
1284
+ {
1285
+ title: 'Nom',
1286
+ sortable: true,
1287
+ key: 'lastname',
1288
+ },
1289
+ {
1290
+ title: 'Prénom',
1291
+ sortable: true,
1292
+ key: 'firstname',
1293
+ },
1294
+ {
1295
+ title: 'Email',
1296
+ sortable: true,
1297
+ key: 'email',
1298
+ },
1299
+ ]
1300
+
1301
+ const items = [
1302
+ {
1303
+ firstname: 'Virginie',
1304
+ lastname: 'Beauchesne',
1305
+ email: 'virginie.beauchesne@example.com',
1306
+ },
1307
+ {
1308
+ firstname: 'Étienne',
1309
+ lastname: 'Salois',
1310
+ email: 'etienne.salois@example.com',
1311
+ },
1312
+ ]
1313
+
1314
+ const vuetifyOptions = {
1315
+ toolbar: {
1316
+ class: 'py-2',
1317
+ },
1318
+ textField: {
1319
+ variant: 'outlined',
1320
+ density: 'compact',
1321
+ },
1322
+ addBtn: {
1323
+ height: '40px',
1324
+ color: '#663399',
1325
+ },
1326
+ addIcon: {
1327
+ class: 'd-none',
1328
+ },
1329
+ }
1330
+
1331
+ const search = ref('')
1332
+ </script>
1333
+ `,
1334
+ },
1335
+ ],
1336
+ },
1337
+ }