@cnamts/synapse 1.0.14 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/README.md +0 -0
  2. package/dist/{DateFilter-isr8mXVb.js → DateFilter-DSwJUvBu.js} +12 -12
  3. package/dist/{NumberFilter-BOe7DqWX.js → NumberFilter-CwsbYyz4.js} +1 -1
  4. package/dist/{PeriodFilter-WTprpO40.js → PeriodFilter-csnEZU30.js} +1 -1
  5. package/dist/{SelectFilter-CqlG5dmI.js → SelectFilter-Bd5fndzR.js} +1 -1
  6. package/dist/{TextFilter-fVW5bsRw.js → TextFilter-B6gxzq2a.js} +1 -1
  7. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +2836 -2845
  8. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +3 -3
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +7 -7
  10. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +3 -3
  11. package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +3 -3
  12. package/dist/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.d.ts +3 -3
  13. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +3 -3
  14. package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +3 -3
  15. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +3 -3
  16. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +3 -3
  17. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +18 -18
  18. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +9 -9
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +3 -3
  20. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +3 -3
  21. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +3 -1
  22. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +5 -3
  23. package/dist/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.d.ts +3 -3
  24. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +3 -3
  25. package/dist/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.d.ts +1 -1
  26. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +3 -3
  27. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +3 -3
  28. package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +9 -0
  29. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1288 -1284
  30. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1936 -1930
  31. package/dist/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.d.ts +3 -3
  32. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2838 -2865
  33. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
  34. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2843 -2870
  35. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +397 -397
  36. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +642 -640
  37. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +233 -5
  38. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
  39. package/dist/components/Captcha/CaptchaHelpdesk.d.ts +6 -0
  40. package/dist/components/CookieBanner/CookieBanner.d.ts +117 -119
  41. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +484 -484
  42. package/dist/components/CookiesSelection/CookiesSelection.d.ts +104 -106
  43. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +14 -10
  44. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +118 -129
  45. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -3
  46. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
  47. package/dist/components/Customs/SyForm/SyForm.d.ts +60 -53
  48. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +88 -0
  49. package/dist/components/Customs/SyRadioGroup/locales.d.ts +3 -0
  50. package/dist/components/Customs/SyTextField/SyTextField.d.ts +644 -642
  51. package/dist/components/DataList/DataList.d.ts +6 -1
  52. package/dist/components/DataListGroup/DataListGroup.d.ts +14 -2
  53. package/dist/components/DataListItem/DataListItem.d.ts +3 -0
  54. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2988 -3100
  55. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1458 -1558
  56. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +655 -651
  57. package/dist/components/DatePicker/composables/index.d.ts +4 -0
  58. package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +1 -1
  59. package/dist/components/DatePicker/composables/useCalendarKeyboardNavigation.d.ts +11 -0
  60. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +25 -0
  61. package/dist/components/DatePicker/composables/useDateTextField.d.ts +61 -0
  62. package/dist/components/DatePicker/composables/useHolidayHighlighting.d.ts +15 -0
  63. package/dist/components/DatePicker/constants/messages.d.ts +0 -1
  64. package/dist/components/DialogBox/DialogBox.d.ts +175 -177
  65. package/dist/components/FilterSideBar/FilterSideBar.d.ts +161 -171
  66. package/dist/components/FooterBar/FooterBar.d.ts +5 -5
  67. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -2
  68. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
  69. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +1 -1
  70. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +234 -258
  71. package/dist/components/LangBtn/LangBtn.d.ts +173 -179
  72. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
  73. package/dist/components/LunarCalendar/LunarCalendar.d.ts +29 -0
  74. package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +5 -0
  75. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +13 -0
  76. package/dist/components/NirField/NirField.d.ts +1296 -1292
  77. package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
  78. package/dist/components/PeriodField/PeriodField.d.ts +5844 -6068
  79. package/dist/components/PhoneField/PhoneField.d.ts +645 -643
  80. package/dist/components/SyAlert/SyAlert.d.ts +31 -31
  81. package/dist/components/SyTextArea/SyTextArea.d.ts +395 -395
  82. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +193 -227
  83. package/dist/components/Tables/SyTable/SyTable.d.ts +192 -226
  84. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  85. package/dist/components/Tables/common/SyTablePagination.d.ts +118 -129
  86. package/dist/components/Tables/common/TableHeader.d.ts +52 -2
  87. package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
  88. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  89. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  90. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  91. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  92. package/dist/components/Tables/common/locales.d.ts +1 -0
  93. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +86 -90
  94. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -2
  95. package/dist/components/Tables/common/types.d.ts +3 -2
  96. package/dist/components/Tables/common/useTableCheckbox.d.ts +3 -2
  97. package/dist/components/Tables/common/useTableFilter.d.ts +1 -1
  98. package/dist/components/Tables/common/useTableItems.d.ts +6 -8
  99. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +18 -18
  100. package/dist/components/index.d.ts +2 -0
  101. package/dist/design-system-v3.js +101 -98
  102. package/dist/design-system-v3.umd.cjs +25 -33
  103. package/dist/main-DkZZpa3S.js +35197 -0
  104. package/dist/style.css +1 -1
  105. package/dist/utils/formatNir/formatNir.d.ts +2 -0
  106. package/dist/utils/index.d.ts +1 -0
  107. package/dist/utils/insertAt.d.ts +1 -0
  108. package/dist/utils/rules/validateDateValue.d.ts +14 -0
  109. package/dist/vuetifyConfig.d.ts +6 -6
  110. package/package.json +4 -4
  111. package/src/assets/tokens.scss +2 -0
  112. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +1 -18
  113. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +178 -9
  114. package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +28 -121
  115. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +15 -270
  116. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +12 -194
  117. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +1 -18
  118. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +1 -18
  119. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +12 -194
  120. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +9 -9
  121. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +5 -4
  122. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +6 -6
  123. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -0
  124. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +135 -9
  125. package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +20 -5
  126. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +195 -28
  127. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +193 -124
  128. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
  129. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +364 -12
  130. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +30 -390
  131. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +4 -36
  132. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +10 -10
  133. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +7 -7
  134. package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +5 -5
  135. package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +1 -1
  136. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +7 -6
  137. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +6 -6
  138. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +6 -6
  139. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +2 -2
  140. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -43
  141. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +80 -9
  142. package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +25 -4
  143. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +1 -13
  144. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +7 -6
  145. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +5 -5
  146. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +187 -39
  147. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +147 -147
  148. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +1 -1
  149. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +0 -2
  150. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +160 -20
  151. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +34 -177
  152. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +1 -0
  153. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +248 -19
  154. package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +34 -203
  155. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +6 -144
  156. package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.vue +20 -2
  157. package/src/components/Amelipro/AmeliproIcon/__tests__/__snapshots__/AmeliproIcon.spec.ts.snap +1 -25
  158. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +5 -5
  159. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -6
  160. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +22 -22
  161. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +2 -2
  162. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/AmeliproMultipleFoldingCard.spec.ts +304 -0
  163. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +373 -0
  164. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +2 -0
  165. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +28 -2
  166. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -173
  167. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -1
  168. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +162 -72
  169. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +2 -2
  170. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +6 -39
  171. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +3 -3
  172. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +8 -8
  173. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/AmeliproPostalAddressField.spec.ts +2 -2
  174. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +11 -52
  175. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +7 -7
  176. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +8 -8
  177. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +6 -6
  178. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +2 -2
  179. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -14
  180. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +7 -7
  181. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +4 -4
  182. package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +12 -12
  183. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +2 -2
  184. package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +2 -2
  185. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -2
  186. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +463 -68
  187. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +176 -511
  188. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +6 -6
  189. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -4
  190. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +3 -3
  191. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +1 -2
  192. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +10 -10
  193. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +4 -4
  194. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +5 -5
  195. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +162 -0
  196. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +44 -0
  197. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +79 -1
  198. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -2
  199. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +2 -2
  200. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +21 -7
  201. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +252 -44
  202. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +166 -0
  203. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/ServiceBtn.spec.ts +137 -0
  204. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/__snapshots__/ServiceBtn.spec.ts.snap +56 -0
  205. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/ServiceList.spec.ts +116 -0
  206. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/__snapshots__/ServiceList.spec.ts.snap +58 -0
  207. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/ServiceMenuContent.spec.ts +118 -0
  208. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/__snapshots__/ServiceMenuContent.spec.ts.snap +151 -0
  209. package/src/components/Amelipro/ServiceMenu/__tests__/ServiceMenu.spec.ts +259 -0
  210. package/src/components/Amelipro/ServiceMenu/__tests__/__snapshots__/ServiceMenu.spec.ts.snap +102 -0
  211. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +90 -0
  212. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +63 -0
  213. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/StructureItem.spec.ts +133 -0
  214. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +143 -0
  215. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/StructureList.spec.ts +190 -0
  216. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +109 -0
  217. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +159 -0
  218. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +103 -0
  219. package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +165 -0
  220. package/src/components/Amelipro/StructureMenu/__tests__/__snapshots__/StructureMenu.spec.ts.snap +39 -0
  221. package/src/components/Amelipro/UserInformationSummary/__tests__/UserInformationSummary.spec.ts +140 -0
  222. package/src/components/Amelipro/UserInformationSummary/{tests → __tests__}/__snapshots__/UserInformationSummary.spec.ts.snap +17 -24
  223. package/src/components/Amelipro/UserMenu/UserMenu.stories.ts +3 -3
  224. package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -2
  225. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/UserMenuDetails.spec.ts +150 -0
  226. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/__snapshots__/UserMenuDetails.spec.ts.snap +117 -0
  227. package/src/components/Amelipro/UserMenu/__tests__/UserMenu.spec.ts +141 -0
  228. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +103 -0
  229. package/src/components/Captcha/Captcha.vue +9 -24
  230. package/src/components/Captcha/CaptchaHelpdesk.vue +42 -0
  231. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +256 -268
  232. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +0 -1
  233. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +4 -0
  234. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +154 -82
  235. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +229 -125
  236. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +12 -12
  237. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +344 -826
  238. package/src/components/Customs/Selects/SySelect/SySelect.vue +215 -169
  239. package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +4 -2
  240. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +7 -9
  241. package/src/components/Customs/SyForm/SyForm.mdx +47 -7
  242. package/src/components/Customs/SyForm/SyForm.stories.ts +38 -34
  243. package/src/components/Customs/SyForm/SyForm.vue +27 -6
  244. package/src/components/Customs/SyRadioGroup/Accessibilite.mdx +263 -0
  245. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +37 -0
  246. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +665 -0
  247. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +324 -0
  248. package/src/components/Customs/SyRadioGroup/locales.ts +3 -0
  249. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +135 -0
  250. package/src/components/Customs/SyTabs/SyTabs.vue +1 -1
  251. package/src/components/Customs/SyTextField/SyTextField.vue +225 -194
  252. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +32 -2
  253. package/src/components/DataList/DataList.mdx +3 -1
  254. package/src/components/DataList/DataList.stories.ts +67 -17
  255. package/src/components/DataList/DataList.vue +13 -1
  256. package/src/components/DataListGroup/DataListGroup.stories.ts +42 -12
  257. package/src/components/DataListGroup/DataListGroup.vue +14 -1
  258. package/src/components/DataListItem/DataListItem.vue +10 -2
  259. package/src/components/DataListItem/tests/DataListItem.spec.ts +1 -1
  260. package/src/components/DatePicker/CalendarMode/DatePicker.vue +157 -178
  261. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +5 -0
  262. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +179 -179
  263. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +261 -258
  264. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +234 -827
  265. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +46 -73
  266. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +350 -0
  267. package/src/components/DatePicker/composables/index.ts +4 -0
  268. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +270 -0
  269. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +61 -3
  270. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +198 -0
  271. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +36 -2
  272. package/src/components/DatePicker/composables/tests/useInputHandler.spec.ts +755 -0
  273. package/src/components/DatePicker/composables/tests/useKeyboardEvents.spec.ts +168 -0
  274. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +40 -34
  275. package/src/components/DatePicker/composables/useAsteriskDisplay.ts +1 -2
  276. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +155 -0
  277. package/src/components/DatePicker/composables/useDatePickerState.ts +163 -0
  278. package/src/components/DatePicker/composables/useDateRangeInput.ts +4 -8
  279. package/src/components/DatePicker/composables/useDateTextField.ts +156 -0
  280. package/src/components/DatePicker/composables/useHolidayHighlighting.ts +64 -0
  281. package/src/components/DatePicker/composables/useInputHandler.ts +25 -19
  282. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +52 -26
  283. package/src/components/DatePicker/constants/messages.ts +0 -1
  284. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
  285. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +16 -8
  286. package/src/components/ErrorPage/ErrorPage.vue +1 -1
  287. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +17 -0
  288. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +0 -1
  289. package/src/components/LunarCalendar/LunarCalendar.mdx +33 -0
  290. package/src/components/LunarCalendar/LunarCalendar.stories.ts +232 -0
  291. package/src/components/LunarCalendar/LunarCalendar.vue +57 -0
  292. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +79 -0
  293. package/src/components/LunarCalendar/useLunarCalendarRules.ts +96 -0
  294. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +47 -0
  295. package/src/components/NotificationBar/NotificationBar.vue +2 -2
  296. package/src/components/PaginatedTable/PaginatedTable.stories.ts +15 -10
  297. package/src/components/PaginatedTable/PaginatedTable.vue +24 -35
  298. package/src/components/PhoneField/PhoneField.vue +102 -83
  299. package/src/components/SearchListField/tests/SearchListField.spec.ts +7 -53
  300. package/src/components/SyAlert/SyAlert.vue +5 -2
  301. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +24 -72
  302. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +521 -23
  303. package/src/components/Tables/SyServerTable/SyServerTable.vue +19 -13
  304. package/src/components/Tables/SyTable/SyTable.stories.ts +391 -18
  305. package/src/components/Tables/SyTable/SyTable.vue +16 -11
  306. package/src/components/Tables/common/TableHeader.vue +16 -7
  307. package/src/components/Tables/common/filters/DateFilter.vue +1 -1
  308. package/src/components/Tables/common/locales.ts +1 -0
  309. package/src/components/Tables/common/tableFilterUtils.ts +3 -3
  310. package/src/components/Tables/common/types.ts +4 -2
  311. package/src/components/Tables/common/useTableCheckbox.ts +4 -3
  312. package/src/components/Tables/common/useTableFilter.ts +2 -2
  313. package/src/components/Tables/common/useTableItems.ts +4 -19
  314. package/src/components/index.ts +2 -0
  315. package/src/composables/validation/tests/useFormValidation.spec.ts +251 -0
  316. package/src/composables/validation/tests/useValidatable.spec.ts +90 -0
  317. package/src/stories/Accessibilite/Audit/Exemptions-derogations.mdx +241 -0
  318. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +17 -10
  319. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -0
  320. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +160 -106
  321. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +2 -1
  322. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +20 -0
  323. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +10 -0
  324. package/src/utils/formatNir/formatNir.ts +15 -0
  325. package/src/utils/index.ts +1 -0
  326. package/src/utils/insertAt.ts +11 -0
  327. package/src/utils/rules/isDateValid/IsDateValid.mdx +2 -2
  328. package/src/utils/rules/isDateValid/IsDateValid.stories.ts +6 -4
  329. package/src/utils/rules/isDateValid/index.ts +23 -8
  330. package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +9 -0
  331. package/src/utils/rules/isExactLength/IsExactLenght.mdx +1 -1
  332. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +19 -7
  333. package/src/utils/rules/isHolidayDay/index.ts +6 -8
  334. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +13 -1
  335. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +2 -2
  336. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +9 -2
  337. package/src/utils/rules/isNotAfterDate/index.ts +5 -12
  338. package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +20 -0
  339. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +2 -2
  340. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +8 -2
  341. package/src/utils/rules/isNotAfterToday/index.ts +6 -6
  342. package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +20 -0
  343. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +2 -2
  344. package/src/utils/rules/isNotBeforeDate/index.ts +5 -12
  345. package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +20 -0
  346. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +2 -2
  347. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +8 -2
  348. package/src/utils/rules/isNotBeforeToday/index.ts +6 -6
  349. package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +19 -0
  350. package/src/utils/rules/validateDateValue.ts +37 -0
  351. package/src/vuetifyConfig.ts +6 -2
  352. package/dist/components/Customs/Selects/SelectBtnField/config.d.ts +0 -11
  353. package/dist/components/DatePicker/tests/setup.d.ts +0 -75370
  354. package/dist/components/Tables/common/formatters.d.ts +0 -17
  355. package/dist/main-CbBVJ_le.js +0 -34377
  356. package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -70
  357. package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +0 -8
  358. package/dist/stories/DesignTokens/TypographyDisplay.d.ts +0 -28
  359. package/dist/stories/DesignTokens/vue-shims.d.ts +0 -6
  360. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -40
  361. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +0 -369
  362. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -21
  363. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +0 -100
  364. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -25
  365. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +0 -245
  366. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -45
  367. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +0 -787
  368. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -46
  369. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -111
  370. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -17
  371. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/__snapshots__/StructureBtn.spec.ts.snap +0 -34
  372. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -21
  373. package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +0 -106
  374. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -33
  375. package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +0 -353
  376. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -60
  377. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +0 -824
  378. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -69
  379. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +0 -1383
  380. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -24
  381. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -33
  382. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/__snapshots__/UserMenuDetails.spec.ts.snap +0 -3
  383. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -34
  384. package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +0 -101
  385. package/src/components/Customs/Selects/SelectBtnField/config.ts +0 -11
  386. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -151
  387. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -148
  388. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -361
  389. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -709
  390. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -4111
  391. package/src/components/DatePicker/tests/archiTest.md +0 -33
  392. package/src/components/DatePicker/tests/navigation.regression.spec.ts +0 -74
  393. package/src/components/DatePicker/tests/navigation.simple.spec.ts +0 -137
  394. package/src/components/DatePicker/tests/setup.ts +0 -243
  395. package/src/components/Tables/common/formatters.ts +0 -72
@@ -205,13 +205,22 @@
205
205
  class="v-data-table-header__content d-flex align-center h-100 w-100"
206
206
  :class="alignClass"
207
207
  >
208
- <div
209
- class="col-title"
210
- :class="[textAlignClass, headerClassRaw]"
211
- :style="[{ width: '100%' }, headerStyle]"
208
+ <slot
209
+ :name="`header.${column.key}`"
210
+ v-bind="{
211
+ column,
212
+ locales,
213
+ ...headerParams,
214
+ }"
212
215
  >
213
- {{ column.title }}
214
- </div>
216
+ <div
217
+ class="col-title"
218
+ :class="[textAlignClass, headerClassRaw]"
219
+ :style="[{ width: '100%' }, headerStyle]"
220
+ >
221
+ {{ column.title }}
222
+ </div>
223
+ </slot>
215
224
  <div
216
225
  v-if="header!.sortable"
217
226
  class="sort-container d-flex align-center"
@@ -227,7 +236,7 @@
227
236
  <div
228
237
  v-if="sortOrderIndex"
229
238
  class="sort-order-indicator text-primary ml-0 mr-2"
230
- :title="`Sort order: ${sortOrderIndex}`"
239
+ :title="locales.sortOrder(sortOrderIndex)"
231
240
  >
232
241
  {{ sortOrderIndex }}
233
242
  </div>
@@ -119,7 +119,7 @@
119
119
  <template>
120
120
  <DatePicker
121
121
  v-model="modelValue"
122
- :label="header.title"
122
+ :label="header.title || 'Sélectionner une date'"
123
123
  :clearable="inputConfig?.clearable ?? clearable"
124
124
  :density="inputConfig?.density ?? density"
125
125
  :hide-details="inputConfig?.hideDetails ?? hideDetails"
@@ -35,4 +35,5 @@ export const locales = {
35
35
  sortDescending: 'Tri décroissant',
36
36
  sortNone: 'Aucun tri',
37
37
  sortOther: 'Tri personnalisé',
38
+ sortOrder: (order: number) => `Ordre de tri: ${order}`,
38
39
  }
@@ -1,11 +1,11 @@
1
- import type { FilterOption } from './types'
1
+ import type { FilterOption, Items } from './types'
2
2
  import filterByPeriod from './filters/logics/period'
3
3
  import filterByExactDate from './filters/logics/date'
4
4
  import filterByNumber from './filters/logics/number'
5
5
  import filterBySelect from './filters/logics/select'
6
6
  import filterByText from './filters/logics/text'
7
7
 
8
- export function filterItems<T extends Record<string, unknown>>(items: T[], filters: FilterOption[]): T[] {
8
+ export function filterItems<T extends Items[0]>(items: T[], filters: FilterOption[]): T[] {
9
9
  if (!Array.isArray(items) || items.length === 0) return []
10
10
  if (!Array.isArray(filters) || filters.length === 0) return items
11
11
 
@@ -14,7 +14,7 @@ export function filterItems<T extends Record<string, unknown>>(items: T[], filte
14
14
  })
15
15
  }
16
16
 
17
- function applyFilter<T extends Record<string, unknown>>(item: T, filter: FilterOption): boolean {
17
+ function applyFilter<T extends Items[0]>(item: T, filter: FilterOption): boolean {
18
18
  if (!filter.key) return true
19
19
 
20
20
  const itemValue = item[filter.key]
@@ -21,6 +21,8 @@ export interface FilterOption {
21
21
  type: FilterType
22
22
  }
23
23
 
24
+ export type Items = (Record<string, unknown> | object)[]
25
+
24
26
  export interface DataOptions {
25
27
  page: number
26
28
  itemsPerPage: number
@@ -78,7 +80,7 @@ export type TableColumnHeader = {
78
80
 
79
81
  // Component-specific props interfaces
80
82
  export type SyTableProps = {
81
- items?: Record<string, unknown>[]
83
+ items?: Items
82
84
  suffix: string
83
85
  saveState?: boolean
84
86
  caption?: string
@@ -100,7 +102,7 @@ export type SyTableProps = {
100
102
 
101
103
  export type SyServerTableProps = {
102
104
  serverItemsLength: number
103
- items?: Record<string, unknown>[]
105
+ items?: Items
104
106
  suffix: string
105
107
  saveState?: boolean
106
108
  caption?: string
@@ -1,11 +1,12 @@
1
1
  import type { MaybeRefOrGetter } from 'vue'
2
2
  import { toRef } from 'vue'
3
+ import type { Items } from './types'
3
4
 
4
5
  interface UseTableCheckboxOptions {
5
6
  /**
6
7
  * The items to be displayed in the table
7
8
  */
8
- items: MaybeRefOrGetter<Record<string, unknown>[]>
9
+ items: MaybeRefOrGetter<Items>
9
10
  /**
10
11
  * The model value for selected items
11
12
  */
@@ -27,7 +28,7 @@ export function useTableCheckbox(options: UseTableCheckboxOptions) {
27
28
  /**
28
29
  * Function to get a unique identifier for each item
29
30
  */
30
- const getItemValue = (item: Record<string, unknown>) => {
31
+ const getItemValue = (item: Items[0]) => {
31
32
  // 1) If a custom selectionKey is provided and exists on item, use it
32
33
  const key = (typeof selectionKeyRef?.value === 'function'
33
34
  ? (selectionKeyRef.value as unknown as () => string | undefined)()
@@ -36,7 +37,7 @@ export function useTableCheckbox(options: UseTableCheckboxOptions) {
36
37
  return item[key]
37
38
  }
38
39
  // 2) Otherwise, if the item has an id field, use that
39
- if (item.id !== undefined) {
40
+ if ('id' in item && item.id !== undefined) {
40
41
  return item.id
41
42
  }
42
43
  // Otherwise, return the full object instead of a JSON string
@@ -1,5 +1,5 @@
1
1
  import { inject } from 'vue'
2
- import type { FilterOption } from './types'
2
+ import type { FilterOption, Items } from './types'
3
3
  import { filterItems as filterItemsUtil } from './tableFilterUtils'
4
4
 
5
5
  /**
@@ -10,7 +10,7 @@ import { filterItems as filterItemsUtil } from './tableFilterUtils'
10
10
  export function useTableFilter() {
11
11
  // Récupère la fonction filterItems du modèle provide/inject
12
12
  const filterItems = inject<
13
- <T extends Record<string, unknown>>(items: T[], filters: FilterOption[]) => T[]
13
+ <T extends Items[0]>(items: T[], filters: FilterOption[]) => T[]
14
14
  >('filterItems', filterItemsUtil)
15
15
 
16
16
  return {
@@ -1,12 +1,10 @@
1
1
  import { computed, type Ref } from 'vue'
2
- import { processItems } from './formatters'
3
- import type { DataOptions, FilterOption, TableColumnHeader } from './types'
2
+ import type { DataOptions, FilterOption, Items, TableColumnHeader } from './types'
4
3
 
5
4
  /**
6
5
  * Composable for handling table items processing
7
6
  *
8
7
  * @param items - Reference to table items
9
- * @param headers - Reference to table headers
10
8
  * @param filters - Reference to active filters
11
9
  * @param options - Reference to table options
12
10
  * @param filterItems - Function to filter items (from useTableFilter)
@@ -14,35 +12,23 @@ import type { DataOptions, FilterOption, TableColumnHeader } from './types'
14
12
  */
15
13
  export function useTableItems({
16
14
  items,
17
- headers,
18
15
  filters,
19
16
  options,
20
17
  filterItems,
21
18
  }: {
22
- items: Ref<Record<string, unknown>[]>
19
+ items: Ref<Items>
23
20
  headers: Ref<TableColumnHeader[] | undefined>
24
21
  filters: Ref<FilterOption[]>
25
22
  options: Ref<Partial<DataOptions>>
26
- filterItems: <T extends Record<string, unknown>>(items: T[], filters: FilterOption[]) => T[]
23
+ filterItems: <T extends Items[0]>(items: T[], filters: FilterOption[]) => T[]
27
24
  }) {
28
- // Process items with formatters based on headers
29
- const processedItems = computed(() => {
30
- if (!headers.value) return items.value
31
- // Just return the items as is since we can't process them with headers
32
- return processItems(items.value)
33
- })
34
-
35
25
  // Filter items based on active filters
36
26
  const filteredItems = computed(() => {
37
27
  // Create a deep copy of items to avoid modifying originals
38
- const itemsCopy = processedItems.value.map((item) => {
39
- return JSON.parse(JSON.stringify(item))
40
- })
41
28
 
42
29
  // Apply filters to copied items
43
- return filterItems(itemsCopy, filters.value)
30
+ return filterItems(items.value, filters.value)
44
31
  })
45
-
46
32
  // Apply pagination to filtered items
47
33
  const paginatedItems = computed(() => {
48
34
  if (!filteredItems.value.length) return []
@@ -60,7 +46,6 @@ export function useTableItems({
60
46
  })
61
47
 
62
48
  return {
63
- processedItems,
64
49
  filteredItems,
65
50
  paginatedItems,
66
51
  }
@@ -47,6 +47,7 @@ export { default as UserMenuBtn } from './UserMenuBtn/UserMenuBtn.vue'
47
47
  export { default as DatePicker } from '@/components/DatePicker/CalendarMode/DatePicker.vue'
48
48
  export { default as DiacriticPicker } from './DiacriticPicker/DiacriticPicker.vue'
49
49
  export { default as FileUpload } from './FileUpload/FileUpload.vue'
50
+ export { default as LunarCalendar } from './LunarCalendar/LunarCalendar.vue'
50
51
  export { default as NirField } from './NirField/NirField.vue'
51
52
  export * from './NirField/nirValidation'
52
53
  export { default as PasswordField } from './PasswordField/PasswordField.vue'
@@ -65,6 +66,7 @@ export { default as SyTextField } from './Customs/SyTextField/SyTextField.vue'
65
66
  export { default as UploadWorkflow } from './UploadWorkflow/UploadWorkflow.vue'
66
67
  export { default as Captcha } from './Captcha/Captcha.vue'
67
68
  export { default as SyForm } from './Customs/SyForm/SyForm.vue'
69
+ export { default as SyRadioGroup } from './Customs/SyRadioGroup/SyRadioGroup.vue'
68
70
 
69
71
  // ===========================
70
72
  // Tableaux
@@ -0,0 +1,251 @@
1
+ import { describe, it, expect, vi } from 'vitest'
2
+ import { defineComponent, h } from 'vue'
3
+ import { mount } from '@vue/test-utils'
4
+ import { useFormValidation, useValidatableComponent } from '../useFormValidation'
5
+ import type { ValidatableComponent } from '../useFormValidation'
6
+
7
+ type FormValidationApi = ReturnType<typeof useFormValidation>
8
+
9
+ let lastChildApi: ReturnType<typeof useValidatableComponent> | null = null
10
+
11
+ const ChildComponent = {
12
+ name: 'ValidatableChild',
13
+ setup() {
14
+ const api = useValidatableComponent()
15
+ lastChildApi = api
16
+ return () => null
17
+ },
18
+ }
19
+
20
+ const ParentWithForm = defineComponent({
21
+ name: 'ParentWithFormValidation',
22
+ setup() {
23
+ const form = useFormValidation()
24
+ return { form }
25
+ },
26
+ render() {
27
+ return h(ChildComponent)
28
+ },
29
+ })
30
+
31
+ describe('useFormValidation', () => {
32
+ it('registers components and avoids duplicates', () => {
33
+ lastChildApi = null
34
+
35
+ const wrapper = mount(ParentWithForm)
36
+ const form = (wrapper.vm as { form: FormValidationApi }).form
37
+ expect(lastChildApi).not.toBeNull()
38
+ const childApi = lastChildApi!
39
+
40
+ const component: ValidatableComponent = {
41
+ validateOnSubmit: vi.fn(() => true),
42
+ }
43
+
44
+ expect(form.validatableComponents.value).toHaveLength(0)
45
+
46
+ childApi.register(component)
47
+ expect(form.validatableComponents.value).toHaveLength(1)
48
+ expect(form.validatableComponents.value[0]).toStrictEqual(component)
49
+
50
+ // Duplicate registration should be ignored
51
+ childApi.register(component)
52
+ expect(form.validatableComponents.value).toHaveLength(1)
53
+ })
54
+
55
+ it('unregisters components by reference and by validateOnSubmit fallback', () => {
56
+ lastChildApi = null
57
+
58
+ const wrapper = mount(ParentWithForm)
59
+ const form = (wrapper.vm as { form: FormValidationApi }).form
60
+ expect(lastChildApi).not.toBeNull()
61
+ const childApi = lastChildApi!
62
+
63
+ const sharedValidate = vi.fn(() => true)
64
+ const component1: ValidatableComponent = { validateOnSubmit: sharedValidate }
65
+ const component2: ValidatableComponent = { validateOnSubmit: sharedValidate }
66
+
67
+ // Direct reference removal
68
+ childApi.register(component1)
69
+ expect(form.validatableComponents.value).toHaveLength(1)
70
+
71
+ childApi.unregister(component1)
72
+ expect(form.validatableComponents.value).toHaveLength(0)
73
+
74
+ // Fallback: removal by matching validateOnSubmit reference
75
+ childApi.register(component1)
76
+ expect(form.validatableComponents.value).toHaveLength(1)
77
+
78
+ childApi.unregister(component2)
79
+ expect(form.validatableComponents.value).toHaveLength(0)
80
+ })
81
+
82
+ it('clearAll calls clearValidation on registered components and ignores missing or throwing ones', () => {
83
+ lastChildApi = null
84
+
85
+ const wrapper = mount(ParentWithForm)
86
+ const form = (wrapper.vm as { form: FormValidationApi }).form
87
+ expect(lastChildApi).not.toBeNull()
88
+ const childApi = lastChildApi!
89
+
90
+ const clearSpy = vi.fn()
91
+ const throwingClear = vi.fn(() => {
92
+ throw new Error('boom')
93
+ })
94
+
95
+ const componentWithClear: ValidatableComponent = {
96
+ validateOnSubmit: vi.fn(() => true),
97
+ clearValidation: clearSpy,
98
+ }
99
+ const componentWithoutClear: ValidatableComponent = {
100
+ validateOnSubmit: vi.fn(() => true),
101
+ }
102
+ const componentThrowing: ValidatableComponent = {
103
+ validateOnSubmit: vi.fn(() => true),
104
+ clearValidation: throwingClear,
105
+ }
106
+
107
+ childApi.register(componentWithClear)
108
+ childApi.register(componentWithoutClear)
109
+ childApi.register(componentThrowing)
110
+
111
+ form.clearAll()
112
+
113
+ expect(clearSpy).toHaveBeenCalledTimes(1)
114
+ expect(throwingClear).toHaveBeenCalledTimes(1)
115
+ })
116
+
117
+ it('clearAll returns early when there are no registered components', () => {
118
+ const wrapper = mount(ParentWithForm)
119
+ const form = (wrapper.vm as { form: FormValidationApi }).form
120
+
121
+ expect(form.validatableComponents.value).toHaveLength(0)
122
+
123
+ // Should not throw even when nothing is registered
124
+ form.clearAll()
125
+ })
126
+
127
+ it('resetAll calls reset on registered components and ignores missing or throwing ones', () => {
128
+ lastChildApi = null
129
+
130
+ const wrapper = mount(ParentWithForm)
131
+ const form = (wrapper.vm as { form: FormValidationApi }).form
132
+ expect(lastChildApi).not.toBeNull()
133
+ const childApi = lastChildApi!
134
+
135
+ const resetSpy = vi.fn()
136
+ const throwingReset = vi.fn(() => {
137
+ throw new Error('boom')
138
+ })
139
+
140
+ const componentWithReset: ValidatableComponent = {
141
+ validateOnSubmit: vi.fn(() => true),
142
+ reset: resetSpy,
143
+ }
144
+ const componentWithoutReset: ValidatableComponent = {
145
+ validateOnSubmit: vi.fn(() => true),
146
+ }
147
+ const componentThrowingReset: ValidatableComponent = {
148
+ validateOnSubmit: vi.fn(() => true),
149
+ reset: throwingReset,
150
+ }
151
+
152
+ childApi.register(componentWithReset)
153
+ childApi.register(componentWithoutReset)
154
+ childApi.register(componentThrowingReset)
155
+
156
+ form.resetAll()
157
+
158
+ expect(resetSpy).toHaveBeenCalledTimes(1)
159
+ expect(throwingReset).toHaveBeenCalledTimes(1)
160
+ })
161
+
162
+ it('resetAll returns early when there are no registered components', () => {
163
+ const wrapper = mount(ParentWithForm)
164
+ const form = (wrapper.vm as { form: FormValidationApi }).form
165
+
166
+ expect(form.validatableComponents.value).toHaveLength(0)
167
+
168
+ // Should not throw even when nothing is registered
169
+ form.resetAll()
170
+ })
171
+
172
+ it('validateAll returns true when there are no registered components', async () => {
173
+ const wrapper = mount(ParentWithForm)
174
+ const form = (wrapper.vm as { form: FormValidationApi }).form
175
+
176
+ await expect(form.validateAll()).resolves.toBe(true)
177
+ })
178
+
179
+ it('validateAll returns false when at least one component is invalid (sync/async mix)', async () => {
180
+ lastChildApi = null
181
+
182
+ const wrapper = mount(ParentWithForm)
183
+ const form = (wrapper.vm as { form: FormValidationApi }).form
184
+ expect(lastChildApi).not.toBeNull()
185
+ const childApi = lastChildApi!
186
+
187
+ const syncTrue: ValidatableComponent = {
188
+ validateOnSubmit: vi.fn(() => true),
189
+ }
190
+ const asyncTrue: ValidatableComponent = {
191
+ validateOnSubmit: vi.fn(async () => true),
192
+ }
193
+ const asyncFalse: ValidatableComponent = {
194
+ validateOnSubmit: vi.fn(async () => false),
195
+ }
196
+
197
+ childApi.register(syncTrue)
198
+ childApi.register(asyncTrue)
199
+ childApi.register(asyncFalse)
200
+
201
+ await expect(form.validateAll()).resolves.toBe(false)
202
+ })
203
+
204
+ it('validateAll returns true when all components are valid', async () => {
205
+ lastChildApi = null
206
+
207
+ const wrapper = mount(ParentWithForm)
208
+ const form = (wrapper.vm as { form: FormValidationApi }).form
209
+ expect(lastChildApi).not.toBeNull()
210
+ const childApi = lastChildApi!
211
+
212
+ const syncTrue: ValidatableComponent = {
213
+ validateOnSubmit: vi.fn(() => true),
214
+ }
215
+ const asyncTrue: ValidatableComponent = {
216
+ validateOnSubmit: vi.fn(async () => true),
217
+ }
218
+
219
+ childApi.register(syncTrue)
220
+ childApi.register(asyncTrue)
221
+
222
+ await expect(form.validateAll()).resolves.toBe(true)
223
+ })
224
+ })
225
+
226
+ describe('useValidatableComponent without provider', () => {
227
+ it('returns no-op functions when no form provider is present', () => {
228
+ let orphanApi: ReturnType<typeof useValidatableComponent> | null = null
229
+
230
+ const OrphanComponent = {
231
+ name: 'OrphanComponent',
232
+ setup() {
233
+ const api = useValidatableComponent()
234
+ orphanApi = api
235
+ return () => null
236
+ },
237
+ }
238
+
239
+ mount(OrphanComponent)
240
+
241
+ expect(orphanApi).toBeTruthy()
242
+
243
+ const dummyComponent: ValidatableComponent = { validateOnSubmit: () => true }
244
+
245
+ // These calls should be safe no-ops
246
+ orphanApi!.register(dummyComponent)
247
+ orphanApi!.unregister(dummyComponent)
248
+ orphanApi!.clearAll()
249
+ orphanApi!.resetAll()
250
+ })
251
+ })
@@ -0,0 +1,90 @@
1
+ /* eslint-disable vue/one-component-per-file */
2
+ import { describe, it, expect, vi } from 'vitest'
3
+ import { defineComponent, h } from 'vue'
4
+ import { mount } from '@vue/test-utils'
5
+ import { useFormValidation } from '../useFormValidation'
6
+ import { useValidatable } from '../useValidatable'
7
+
8
+ type FormValidationApi = ReturnType<typeof useFormValidation>
9
+
10
+ describe('useValidatable', () => {
11
+ it('registers component on mount and unregisters on unmount', () => {
12
+ const ChildComponent = defineComponent({
13
+ name: 'ValidatableChild',
14
+ setup() {
15
+ const validateOnSubmit = vi.fn(() => true)
16
+ const clearValidation = vi.fn()
17
+ const reset = vi.fn()
18
+
19
+ useValidatable(validateOnSubmit, clearValidation, reset)
20
+
21
+ return {
22
+ validateOnSubmit,
23
+ clearValidation,
24
+ reset,
25
+ }
26
+ },
27
+ render() {
28
+ return null
29
+ },
30
+ })
31
+
32
+ const ParentWithForm = defineComponent({
33
+ name: 'ParentWithFormForUseValidatable',
34
+ setup() {
35
+ const form = useFormValidation()
36
+ return { form }
37
+ },
38
+ render() {
39
+ return h(ChildComponent)
40
+ },
41
+ })
42
+
43
+ const wrapper = mount(ParentWithForm)
44
+ const form = (wrapper.vm as { form: FormValidationApi }).form
45
+
46
+ expect(form.validatableComponents.value).toHaveLength(1)
47
+ const registered = form.validatableComponents.value[0]
48
+
49
+ const childWrapper = wrapper.findComponent(ChildComponent)
50
+ const childVm = childWrapper.vm as unknown as {
51
+ validateOnSubmit: ReturnType<typeof vi.fn>
52
+ clearValidation: ReturnType<typeof vi.fn>
53
+ reset: ReturnType<typeof vi.fn>
54
+ }
55
+
56
+ registered.validateOnSubmit()
57
+ expect(childVm.validateOnSubmit).toHaveBeenCalledTimes(1)
58
+
59
+ registered.clearValidation?.()
60
+ expect(childVm.clearValidation).toHaveBeenCalledTimes(1)
61
+
62
+ registered.reset?.()
63
+ expect(childVm.reset).toHaveBeenCalledTimes(1)
64
+
65
+ wrapper.unmount()
66
+ expect(form.validatableComponents.value).toHaveLength(0)
67
+ })
68
+
69
+ it('does nothing harmful when no form provider is present', () => {
70
+ const OrphanComponent = defineComponent({
71
+ name: 'OrphanValidatable',
72
+ setup() {
73
+ const validateOnSubmit = vi.fn(() => true)
74
+ const clearValidation = vi.fn()
75
+ const reset = vi.fn()
76
+
77
+ useValidatable(validateOnSubmit, clearValidation, reset)
78
+
79
+ return () => null
80
+ },
81
+ })
82
+
83
+ const mountOrphan = () => {
84
+ const wrapper = mount(OrphanComponent)
85
+ wrapper.unmount()
86
+ }
87
+
88
+ expect(mountOrphan).not.toThrow()
89
+ })
90
+ })