@cnamts/synapse 1.0.15 → 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 (394) hide show
  1. package/dist/{DateFilter-isr8mXVb.js → DateFilter-DSwJUvBu.js} +12 -12
  2. package/dist/{NumberFilter-BOe7DqWX.js → NumberFilter-CwsbYyz4.js} +1 -1
  3. package/dist/{PeriodFilter-WTprpO40.js → PeriodFilter-csnEZU30.js} +1 -1
  4. package/dist/{SelectFilter-CqlG5dmI.js → SelectFilter-Bd5fndzR.js} +1 -1
  5. package/dist/{TextFilter-fVW5bsRw.js → TextFilter-B6gxzq2a.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +2836 -2845
  7. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +3 -3
  8. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +7 -7
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +3 -3
  10. package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +3 -3
  11. package/dist/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.d.ts +3 -3
  12. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +3 -3
  13. package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +3 -3
  14. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +3 -3
  15. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +3 -3
  16. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +18 -18
  17. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +9 -9
  18. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +3 -3
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +3 -3
  20. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +3 -1
  21. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +5 -3
  22. package/dist/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.d.ts +3 -3
  23. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +3 -3
  24. package/dist/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.d.ts +1 -1
  25. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +3 -3
  26. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +3 -3
  27. package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +9 -0
  28. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1288 -1284
  29. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1936 -1930
  30. package/dist/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.d.ts +3 -3
  31. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2838 -2865
  32. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
  33. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2843 -2870
  34. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +397 -397
  35. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +642 -640
  36. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +233 -5
  37. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
  38. package/dist/components/Captcha/CaptchaHelpdesk.d.ts +6 -0
  39. package/dist/components/CookieBanner/CookieBanner.d.ts +117 -119
  40. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +484 -484
  41. package/dist/components/CookiesSelection/CookiesSelection.d.ts +104 -106
  42. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +14 -10
  43. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +118 -129
  44. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -3
  45. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
  46. package/dist/components/Customs/SyForm/SyForm.d.ts +60 -53
  47. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +88 -0
  48. package/dist/components/Customs/SyRadioGroup/locales.d.ts +3 -0
  49. package/dist/components/Customs/SyTextField/SyTextField.d.ts +644 -642
  50. package/dist/components/DataList/DataList.d.ts +6 -1
  51. package/dist/components/DataListGroup/DataListGroup.d.ts +14 -2
  52. package/dist/components/DataListItem/DataListItem.d.ts +3 -0
  53. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2988 -3100
  54. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1458 -1558
  55. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +655 -651
  56. package/dist/components/DatePicker/composables/index.d.ts +4 -0
  57. package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +1 -1
  58. package/dist/components/DatePicker/composables/useCalendarKeyboardNavigation.d.ts +11 -0
  59. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +25 -0
  60. package/dist/components/DatePicker/composables/useDateTextField.d.ts +61 -0
  61. package/dist/components/DatePicker/composables/useHolidayHighlighting.d.ts +15 -0
  62. package/dist/components/DatePicker/constants/messages.d.ts +0 -1
  63. package/dist/components/DialogBox/DialogBox.d.ts +175 -177
  64. package/dist/components/FilterSideBar/FilterSideBar.d.ts +161 -171
  65. package/dist/components/FooterBar/FooterBar.d.ts +5 -5
  66. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -2
  67. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
  68. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +1 -1
  69. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +234 -258
  70. package/dist/components/LangBtn/LangBtn.d.ts +173 -179
  71. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
  72. package/dist/components/LunarCalendar/LunarCalendar.d.ts +29 -0
  73. package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +5 -0
  74. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +13 -0
  75. package/dist/components/NirField/NirField.d.ts +1296 -1292
  76. package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
  77. package/dist/components/PeriodField/PeriodField.d.ts +5844 -6068
  78. package/dist/components/PhoneField/PhoneField.d.ts +645 -643
  79. package/dist/components/SyAlert/SyAlert.d.ts +31 -31
  80. package/dist/components/SyTextArea/SyTextArea.d.ts +395 -395
  81. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +193 -227
  82. package/dist/components/Tables/SyTable/SyTable.d.ts +192 -226
  83. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  84. package/dist/components/Tables/common/SyTablePagination.d.ts +118 -129
  85. package/dist/components/Tables/common/TableHeader.d.ts +52 -2
  86. package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
  87. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  88. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  89. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  90. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  91. package/dist/components/Tables/common/locales.d.ts +1 -0
  92. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +86 -90
  93. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -2
  94. package/dist/components/Tables/common/types.d.ts +3 -2
  95. package/dist/components/Tables/common/useTableCheckbox.d.ts +3 -2
  96. package/dist/components/Tables/common/useTableFilter.d.ts +1 -1
  97. package/dist/components/Tables/common/useTableItems.d.ts +6 -8
  98. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +18 -18
  99. package/dist/components/index.d.ts +2 -0
  100. package/dist/design-system-v3.js +101 -98
  101. package/dist/design-system-v3.umd.cjs +25 -33
  102. package/dist/main-DkZZpa3S.js +35197 -0
  103. package/dist/style.css +1 -1
  104. package/dist/utils/formatNir/formatNir.d.ts +2 -0
  105. package/dist/utils/index.d.ts +1 -0
  106. package/dist/utils/insertAt.d.ts +1 -0
  107. package/dist/utils/rules/validateDateValue.d.ts +14 -0
  108. package/dist/vuetifyConfig.d.ts +6 -6
  109. package/package.json +4 -4
  110. package/src/assets/tokens.scss +2 -0
  111. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +1 -18
  112. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +178 -9
  113. package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +28 -121
  114. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +15 -270
  115. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +12 -194
  116. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +1 -18
  117. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +1 -18
  118. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +12 -194
  119. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +9 -9
  120. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +5 -4
  121. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +6 -6
  122. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -0
  123. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +135 -9
  124. package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +20 -5
  125. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +195 -28
  126. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +193 -124
  127. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
  128. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +364 -12
  129. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +30 -390
  130. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +4 -36
  131. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +10 -10
  132. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +7 -7
  133. package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +5 -5
  134. package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +1 -1
  135. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +7 -6
  136. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +6 -6
  137. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +6 -6
  138. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +2 -2
  139. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -43
  140. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +80 -9
  141. package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +25 -4
  142. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +1 -13
  143. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +7 -6
  144. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +5 -5
  145. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +187 -39
  146. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +147 -147
  147. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +1 -1
  148. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +0 -2
  149. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +160 -20
  150. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +34 -177
  151. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +1 -0
  152. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +248 -19
  153. package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +34 -203
  154. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +6 -144
  155. package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.vue +20 -2
  156. package/src/components/Amelipro/AmeliproIcon/__tests__/__snapshots__/AmeliproIcon.spec.ts.snap +1 -25
  157. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +5 -5
  158. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -6
  159. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +22 -22
  160. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +2 -2
  161. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/AmeliproMultipleFoldingCard.spec.ts +304 -0
  162. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +373 -0
  163. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +2 -0
  164. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +28 -2
  165. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -173
  166. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -1
  167. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +162 -72
  168. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +2 -2
  169. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +6 -39
  170. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +3 -3
  171. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +8 -8
  172. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/AmeliproPostalAddressField.spec.ts +2 -2
  173. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +11 -52
  174. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +7 -7
  175. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +8 -8
  176. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +6 -6
  177. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +2 -2
  178. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -14
  179. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +7 -7
  180. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +4 -4
  181. package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +12 -12
  182. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +2 -2
  183. package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +2 -2
  184. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -2
  185. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +463 -68
  186. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +176 -511
  187. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +6 -6
  188. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -4
  189. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +3 -3
  190. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +1 -2
  191. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +10 -10
  192. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +4 -4
  193. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +5 -5
  194. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +162 -0
  195. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +44 -0
  196. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +79 -1
  197. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -2
  198. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +2 -2
  199. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +21 -7
  200. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +252 -44
  201. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +166 -0
  202. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/ServiceBtn.spec.ts +137 -0
  203. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/__snapshots__/ServiceBtn.spec.ts.snap +56 -0
  204. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/ServiceList.spec.ts +116 -0
  205. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/__snapshots__/ServiceList.spec.ts.snap +58 -0
  206. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/ServiceMenuContent.spec.ts +118 -0
  207. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/__snapshots__/ServiceMenuContent.spec.ts.snap +151 -0
  208. package/src/components/Amelipro/ServiceMenu/__tests__/ServiceMenu.spec.ts +259 -0
  209. package/src/components/Amelipro/ServiceMenu/__tests__/__snapshots__/ServiceMenu.spec.ts.snap +102 -0
  210. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +90 -0
  211. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +63 -0
  212. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/StructureItem.spec.ts +133 -0
  213. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +143 -0
  214. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/StructureList.spec.ts +190 -0
  215. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +109 -0
  216. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +159 -0
  217. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +103 -0
  218. package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +165 -0
  219. package/src/components/Amelipro/StructureMenu/__tests__/__snapshots__/StructureMenu.spec.ts.snap +39 -0
  220. package/src/components/Amelipro/UserInformationSummary/__tests__/UserInformationSummary.spec.ts +140 -0
  221. package/src/components/Amelipro/UserInformationSummary/{tests → __tests__}/__snapshots__/UserInformationSummary.spec.ts.snap +17 -24
  222. package/src/components/Amelipro/UserMenu/UserMenu.stories.ts +3 -3
  223. package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -2
  224. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/UserMenuDetails.spec.ts +150 -0
  225. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/__snapshots__/UserMenuDetails.spec.ts.snap +117 -0
  226. package/src/components/Amelipro/UserMenu/__tests__/UserMenu.spec.ts +141 -0
  227. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +103 -0
  228. package/src/components/Captcha/Captcha.vue +9 -24
  229. package/src/components/Captcha/CaptchaHelpdesk.vue +42 -0
  230. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +256 -268
  231. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +0 -1
  232. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +4 -0
  233. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +154 -82
  234. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +229 -125
  235. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +12 -12
  236. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +344 -826
  237. package/src/components/Customs/Selects/SySelect/SySelect.vue +215 -169
  238. package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +4 -2
  239. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +7 -9
  240. package/src/components/Customs/SyForm/SyForm.mdx +47 -7
  241. package/src/components/Customs/SyForm/SyForm.stories.ts +38 -34
  242. package/src/components/Customs/SyForm/SyForm.vue +27 -6
  243. package/src/components/Customs/SyRadioGroup/Accessibilite.mdx +263 -0
  244. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +37 -0
  245. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +665 -0
  246. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +324 -0
  247. package/src/components/Customs/SyRadioGroup/locales.ts +3 -0
  248. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +135 -0
  249. package/src/components/Customs/SyTabs/SyTabs.vue +1 -1
  250. package/src/components/Customs/SyTextField/SyTextField.vue +225 -194
  251. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +32 -2
  252. package/src/components/DataList/DataList.mdx +3 -1
  253. package/src/components/DataList/DataList.stories.ts +67 -17
  254. package/src/components/DataList/DataList.vue +13 -1
  255. package/src/components/DataListGroup/DataListGroup.stories.ts +42 -12
  256. package/src/components/DataListGroup/DataListGroup.vue +14 -1
  257. package/src/components/DataListItem/DataListItem.vue +10 -2
  258. package/src/components/DataListItem/tests/DataListItem.spec.ts +1 -1
  259. package/src/components/DatePicker/CalendarMode/DatePicker.vue +157 -178
  260. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +5 -0
  261. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +179 -179
  262. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +261 -258
  263. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +234 -827
  264. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +46 -73
  265. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +350 -0
  266. package/src/components/DatePicker/composables/index.ts +4 -0
  267. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +270 -0
  268. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +61 -3
  269. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +198 -0
  270. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +36 -2
  271. package/src/components/DatePicker/composables/tests/useInputHandler.spec.ts +755 -0
  272. package/src/components/DatePicker/composables/tests/useKeyboardEvents.spec.ts +168 -0
  273. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +40 -34
  274. package/src/components/DatePicker/composables/useAsteriskDisplay.ts +1 -2
  275. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +155 -0
  276. package/src/components/DatePicker/composables/useDatePickerState.ts +163 -0
  277. package/src/components/DatePicker/composables/useDateRangeInput.ts +4 -8
  278. package/src/components/DatePicker/composables/useDateTextField.ts +156 -0
  279. package/src/components/DatePicker/composables/useHolidayHighlighting.ts +64 -0
  280. package/src/components/DatePicker/composables/useInputHandler.ts +25 -19
  281. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +52 -26
  282. package/src/components/DatePicker/constants/messages.ts +0 -1
  283. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
  284. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +16 -8
  285. package/src/components/ErrorPage/ErrorPage.vue +1 -1
  286. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +17 -0
  287. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +0 -1
  288. package/src/components/LunarCalendar/LunarCalendar.mdx +33 -0
  289. package/src/components/LunarCalendar/LunarCalendar.stories.ts +232 -0
  290. package/src/components/LunarCalendar/LunarCalendar.vue +57 -0
  291. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +79 -0
  292. package/src/components/LunarCalendar/useLunarCalendarRules.ts +96 -0
  293. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +47 -0
  294. package/src/components/NotificationBar/NotificationBar.vue +2 -2
  295. package/src/components/PaginatedTable/PaginatedTable.stories.ts +15 -10
  296. package/src/components/PaginatedTable/PaginatedTable.vue +24 -35
  297. package/src/components/PhoneField/PhoneField.vue +102 -83
  298. package/src/components/SearchListField/tests/SearchListField.spec.ts +7 -53
  299. package/src/components/SyAlert/SyAlert.vue +5 -2
  300. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +24 -72
  301. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +521 -23
  302. package/src/components/Tables/SyServerTable/SyServerTable.vue +19 -13
  303. package/src/components/Tables/SyTable/SyTable.stories.ts +391 -18
  304. package/src/components/Tables/SyTable/SyTable.vue +16 -11
  305. package/src/components/Tables/common/TableHeader.vue +16 -7
  306. package/src/components/Tables/common/filters/DateFilter.vue +1 -1
  307. package/src/components/Tables/common/locales.ts +1 -0
  308. package/src/components/Tables/common/tableFilterUtils.ts +3 -3
  309. package/src/components/Tables/common/types.ts +4 -2
  310. package/src/components/Tables/common/useTableCheckbox.ts +4 -3
  311. package/src/components/Tables/common/useTableFilter.ts +2 -2
  312. package/src/components/Tables/common/useTableItems.ts +4 -19
  313. package/src/components/index.ts +2 -0
  314. package/src/composables/validation/tests/useFormValidation.spec.ts +251 -0
  315. package/src/composables/validation/tests/useValidatable.spec.ts +90 -0
  316. package/src/stories/Accessibilite/Audit/Exemptions-derogations.mdx +241 -0
  317. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +17 -10
  318. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -0
  319. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +160 -106
  320. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +2 -1
  321. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +20 -0
  322. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +10 -0
  323. package/src/utils/formatNir/formatNir.ts +15 -0
  324. package/src/utils/index.ts +1 -0
  325. package/src/utils/insertAt.ts +11 -0
  326. package/src/utils/rules/isDateValid/IsDateValid.mdx +2 -2
  327. package/src/utils/rules/isDateValid/IsDateValid.stories.ts +6 -4
  328. package/src/utils/rules/isDateValid/index.ts +23 -8
  329. package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +9 -0
  330. package/src/utils/rules/isExactLength/IsExactLenght.mdx +1 -1
  331. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +19 -7
  332. package/src/utils/rules/isHolidayDay/index.ts +6 -8
  333. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +13 -1
  334. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +2 -2
  335. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +9 -2
  336. package/src/utils/rules/isNotAfterDate/index.ts +5 -12
  337. package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +20 -0
  338. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +2 -2
  339. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +8 -2
  340. package/src/utils/rules/isNotAfterToday/index.ts +6 -6
  341. package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +20 -0
  342. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +2 -2
  343. package/src/utils/rules/isNotBeforeDate/index.ts +5 -12
  344. package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +20 -0
  345. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +2 -2
  346. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +8 -2
  347. package/src/utils/rules/isNotBeforeToday/index.ts +6 -6
  348. package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +19 -0
  349. package/src/utils/rules/validateDateValue.ts +37 -0
  350. package/src/vuetifyConfig.ts +6 -2
  351. package/dist/components/Customs/Selects/SelectBtnField/config.d.ts +0 -11
  352. package/dist/components/DatePicker/tests/setup.d.ts +0 -75370
  353. package/dist/components/Tables/common/formatters.d.ts +0 -17
  354. package/dist/main-CbBVJ_le.js +0 -34377
  355. package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -70
  356. package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +0 -8
  357. package/dist/stories/DesignTokens/TypographyDisplay.d.ts +0 -28
  358. package/dist/stories/DesignTokens/vue-shims.d.ts +0 -6
  359. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -40
  360. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +0 -369
  361. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -21
  362. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +0 -100
  363. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -25
  364. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +0 -245
  365. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -45
  366. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +0 -787
  367. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -46
  368. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -111
  369. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -17
  370. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/__snapshots__/StructureBtn.spec.ts.snap +0 -34
  371. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -21
  372. package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +0 -106
  373. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -33
  374. package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +0 -353
  375. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -60
  376. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +0 -824
  377. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -69
  378. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +0 -1383
  379. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -24
  380. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -33
  381. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/__snapshots__/UserMenuDetails.spec.ts.snap +0 -3
  382. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -34
  383. package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +0 -101
  384. package/src/components/Customs/Selects/SelectBtnField/config.ts +0 -11
  385. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -151
  386. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -148
  387. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -361
  388. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -709
  389. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -4111
  390. package/src/components/DatePicker/tests/archiTest.md +0 -33
  391. package/src/components/DatePicker/tests/navigation.regression.spec.ts +0 -74
  392. package/src/components/DatePicker/tests/navigation.simple.spec.ts +0 -137
  393. package/src/components/DatePicker/tests/setup.ts +0 -243
  394. 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
+ })