@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
@@ -1,20 +1,20 @@
1
1
  <script lang="ts" setup>
2
- import { ref, computed, watch, onMounted, onBeforeUnmount, nextTick, type ComponentPublicInstance } from 'vue'
2
+ import { ref, computed, watch, onMounted, onBeforeUnmount, nextTick, type ComponentPublicInstance, type Ref } from 'vue'
3
3
  import SyTextField from '../../Customs/SyTextField/SyTextField.vue'
4
4
  import DateTextInput from '../DateTextInput/DateTextInput.vue'
5
5
  import ComplexDatePicker from '../ComplexDatePicker/ComplexDatePicker.vue'
6
6
  import { VDatePicker } from 'vuetify/components'
7
- import { useValidation } from '@/composables/validation/useValidation'
7
+ import { useValidation, type ValidationResult } from '@/composables/validation/useValidation'
8
8
  import { useValidatable } from '@/composables/validation/useValidatable'
9
9
  import { useDateFormat } from '@/composables/date/useDateFormatDayjs'
10
10
  import { useDateInitialization, type DateValue, type DateInput } from '@/composables/date/useDateInitializationDayjs'
11
11
  import { useDatePickerAccessibility } from '@/composables/date/useDatePickerAccessibility'
12
- import { useWeekendDays, useTodayButton, useDatePickerViewMode, useDateSelection, useMonthButtonCustomization, useDisplayedDateString, useAsteriskDisplay } from '../composables'
12
+ import { useWeekendDays, useTodayButton, useDatePickerViewMode, useDateSelection, useMonthButtonCustomization, useDisplayedDateString, useAsteriskDisplay, useDateValidation, useDatePickerState, useHolidayHighlighting, useCalendarKeyboardNavigation } from '../composables'
13
13
  import { DATE_PICKER_MESSAGES } from '../constants/messages'
14
14
  import dayjs from 'dayjs'
15
15
  import customParseFormat from 'dayjs/plugin/customParseFormat'
16
16
  import { mdiCalendar } from '@mdi/js'
17
- import { useHolidayDay } from '@/composables/date/useHolidayDay'
17
+ import type { DateObjectValue } from '../types'
18
18
 
19
19
  // Initialiser les plugins dayjs
20
20
  dayjs.extend(customParseFormat)
@@ -31,7 +31,7 @@
31
31
 
32
32
  const props = withDefaults(defineProps<{
33
33
  modelValue?: DateInput
34
- label?: string
34
+ label: string
35
35
  placeholder?: string
36
36
  format?: string
37
37
  dateFormatReturn?: string
@@ -43,9 +43,9 @@
43
43
  displayIcon?: boolean
44
44
  displayAppendIcon?: boolean
45
45
  displayPrependIcon?: boolean
46
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- mock Axios headers
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
47
  customRules?: { type: string, options: any }[]
48
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- mock Axios headers
48
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
49
  customWarningRules?: { type: string, options: any }[]
50
50
  disabled?: boolean
51
51
  noIcon?: boolean
@@ -75,8 +75,7 @@
75
75
  persistentHint?: boolean
76
76
  }>(), {
77
77
  modelValue: undefined,
78
- label: DATE_PICKER_MESSAGES.LABEL_DEFAULT,
79
- placeholder: DATE_PICKER_MESSAGES.PLACEHOLDER_DEFAULT,
78
+ placeholder: undefined,
80
79
  format: DATE_PICKER_MESSAGES.FORMAT_DEFAULT,
81
80
  dateFormatReturn: '',
82
81
  isBirthDate: false,
@@ -121,7 +120,7 @@
121
120
  const { todayInString, headerDate } = useTodayButton(props)
122
121
  const { labelWithAsterisk } = useAsteriskDisplay(props)
123
122
 
124
- const selectedDates = ref<Date | Date[] | null>(
123
+ const selectedDates = ref<Date | (Date | null)[] | null>(
125
124
  initializeSelectedDates(props.modelValue as DateInput | null, props.format, props.dateFormatReturn),
126
125
  )
127
126
 
@@ -198,16 +197,59 @@
198
197
  clearValidation: () => {},
199
198
  }
200
199
 
200
+ const validateFieldForDateValidation = (
201
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- compat signature with useDateValidation
202
+ value: any,
203
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- compat signature with useDateValidation
204
+ rules: any[] = [],
205
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- compat signature with useDateValidation
206
+ warningRules: any[] = [],
207
+ ): ValidationResult => {
208
+ if (props.readonly) {
209
+ return {
210
+ hasError: false,
211
+ hasWarning: false,
212
+ hasSuccess: false,
213
+ state: {
214
+ errors: [],
215
+ warnings: [],
216
+ successes: [],
217
+ },
218
+ }
219
+ }
220
+
221
+ return validateField(value, rules, warningRules, []) as ValidationResult
222
+ }
223
+
201
224
  const errorMessages = errors
202
225
  const warningMessages = warnings
203
226
  const successMessages = successes
204
- const displayFormattedDate = ref('')
205
-
206
- const textInputValue = ref<string>('')
207
227
 
208
228
  // Variable pour éviter les mises à jour récursives
209
229
  const isUpdatingFromInternal = ref(false)
230
+ const preventCloseOnKeyboardNavigation = ref(false)
210
231
  const isInitialValidation = ref(true)
232
+ const currentRangeIsValid = ref(true)
233
+ const getRangeValidationError = ref('')
234
+
235
+ const { validateDates: coreValidateDates } = useDateValidation({
236
+ noCalendar: props.noCalendar,
237
+ // On garde la logique "required" spécifique à CalendarMode
238
+ required: false,
239
+ displayRange: props.displayRange,
240
+ disableErrorHandling: props.disableErrorHandling,
241
+ customRules: computed(() => props.customRules),
242
+ customWarningRules: computed(() => props.customWarningRules),
243
+ selectedDates: selectedDates as Ref<DateObjectValue>,
244
+ isUpdatingFromInternal,
245
+ currentRangeIsValid,
246
+ getRangeValidationError,
247
+ clearValidation,
248
+ validateField: validateFieldForDateValidation,
249
+ errors,
250
+ warnings,
251
+ successes,
252
+ })
211
253
 
212
254
  // Fonction pour valider les dates
213
255
  const validateDates = (forceValidation = false) => {
@@ -239,28 +281,27 @@
239
281
  return
240
282
  }
241
283
  // Permettre aux custom rules de s'exécuter même sur des champs vides
242
- if (!selectedDates.value && (!props.customRules || props.customRules.length === 0)) return
243
-
244
- // Préparer les dates à valider
245
- const datesToValidate = Array.isArray(selectedDates.value)
246
- ? selectedDates.value
247
- : [selectedDates.value]
284
+ if (!selectedDates.value) {
285
+ if (!props.customRules || props.customRules.length === 0) return
248
286
 
249
- // Valider chaque date
250
- // Ne pas afficher d'erreurs de custom rules si on est dans le contexte du mounted initial
251
- if (shouldDisplayErrors && (!isInitialValidation.value || forceValidation)) {
252
- datesToValidate.forEach((date) => {
287
+ if (shouldDisplayErrors && (!isInitialValidation.value || forceValidation)) {
288
+ // Comportement historique : exécuter directement les règles personnalisées même si la valeur est vide
253
289
  validateField(
254
- date,
290
+ selectedDates.value,
255
291
  props.customRules,
256
292
  props.customWarningRules,
257
293
  )
258
- })
294
+ // Dédoublonner les messages comme auparavant
295
+ errors.value = [...new Set(errors.value)]
296
+ warnings.value = [...new Set(warnings.value)]
297
+ successes.value = [...new Set(successes.value)]
298
+ }
299
+ return
300
+ }
259
301
 
260
- // Dédoublonner les messages (au cas plusieurs dates auraient les mêmes messages)
261
- errors.value = [...new Set(errors.value)]
262
- warnings.value = [...new Set(warnings.value)]
263
- successes.value = [...new Set(successes.value)]
302
+ // Ne pas afficher d'erreurs de custom rules si on est dans le contexte du mounted initial
303
+ if (shouldDisplayErrors && (!isInitialValidation.value || forceValidation)) {
304
+ coreValidateDates(forceValidation)
264
305
  }
265
306
  }
266
307
 
@@ -272,8 +313,10 @@
272
313
  try {
273
314
  isUpdatingFromInternal.value = true
274
315
  emit('update:modelValue', value)
275
- isDatePickerVisible.value = false
276
- emit('closed')
316
+ if (!preventCloseOnKeyboardNavigation.value) {
317
+ isDatePickerVisible.value = false
318
+ emit('closed')
319
+ }
277
320
  validateDates()
278
321
  }
279
322
  finally {
@@ -298,20 +341,17 @@
298
341
  // Mettre à jour textInputValue pour le DateTextInput
299
342
  try {
300
343
  isUpdatingFromInternal.value = true
301
- if (Array.isArray(newValue)) {
302
- // Pour les plages de dates, formater correctement la plage complète
303
- if (props.displayRange && newValue.length >= 2) {
304
- // Formater la plage complète pour l'affichage
305
- textInputValue.value = `${formatDate(newValue[0], props.format)} - ${formatDate(newValue[1], props.format)}`
306
- }
307
- else if (newValue.length > 0) {
308
- // Si on n'a qu'une date ou mode non-range, utiliser la première date
309
- textInputValue.value = formatDate(newValue[0], props.format)
344
+ if (Array.isArray(newValue) && props.displayRange && newValue.length >= 2 && props.noCalendar) {
345
+ // Cas spécifique noCalendar + displayRange : conserver la chaîne de plage complète
346
+ const start = newValue[0]
347
+ const end = newValue[1]
348
+ if (start && end) {
349
+ textInputValue.value = `${formatDate(start, props.format)} - ${formatDate(end, props.format)}`
310
350
  }
311
351
  }
312
352
  else {
313
- // Pour une date unique
314
- textInputValue.value = formatDate(newValue, props.format)
353
+ // Cas générique : déléguer au composable pour synchroniser l'input
354
+ syncTextInputFromSelection()
315
355
  }
316
356
  }
317
357
  finally {
@@ -342,50 +382,26 @@
342
382
  props.displayRange,
343
383
  )
344
384
 
345
- // Date(s) formatée(s) en chaîne de caractères pour la valeur de retour
346
- const formattedDate = computed<DateValue>(() => {
347
- if (!selectedDates.value) return ''
348
-
349
- const returnFormat = props.dateFormatReturn || props.format
350
-
351
- // Pour les plages de dates, utiliser rangeBoundaryDates s'il est disponible
352
- if (props.displayRange && rangeBoundaryDates.value) {
353
- return [
354
- formatDate(rangeBoundaryDates.value[0], returnFormat),
355
- formatDate(rangeBoundaryDates.value[1], returnFormat),
356
- ] as [string, string]
357
- }
358
- else if (Array.isArray(selectedDates.value)) {
359
- if (selectedDates.value.length >= 2) {
360
- return [
361
- formatDate(selectedDates.value[0], returnFormat),
362
- formatDate(selectedDates.value[selectedDates.value.length - 1], returnFormat),
363
- ] as [string, string]
364
- }
365
- return ''
366
- }
367
-
368
- return formatDate(selectedDates.value, returnFormat)
385
+ const {
386
+ textInputValue,
387
+ displayFormattedDate,
388
+ formattedDate,
389
+ displayFormattedFromSelectedDates,
390
+ syncFromModelValue,
391
+ syncTextInputFromSelection,
392
+ } = useDatePickerState({
393
+ selectedDates,
394
+ rangeBoundaryDates,
395
+ format: props.format,
396
+ dateFormatReturn: props.dateFormatReturn,
397
+ displayRange: props.displayRange,
398
+ parseDate,
399
+ formatDate,
400
+ initializeSelectedDates,
401
+ validateDates,
402
+ updateModel,
369
403
  })
370
404
 
371
- watch(formattedDate, (newValue) => {
372
- if (!newValue || newValue === '') {
373
- textInputValue.value = ''
374
- }
375
- else if (typeof newValue === 'string') {
376
- // Si on a un format de retour différent, on doit convertir la date
377
- if (props.dateFormatReturn) {
378
- const date = parseDate(newValue, props.dateFormatReturn)
379
- if (date) {
380
- textInputValue.value = formatDate(date, props.format)
381
- }
382
- }
383
- else {
384
- textInputValue.value = newValue
385
- }
386
- }
387
- }, { immediate: true })
388
-
389
405
  // Gestionnaire pour les mises à jour du DateTextInput en mode no-calendar
390
406
  const handleDateTextInputUpdate = (value: DateValue) => {
391
407
  if (isUpdatingFromInternal.value) return
@@ -493,22 +509,8 @@
493
509
  }
494
510
  })
495
511
 
496
- // Date(s) formatée(s) en chaîne de caractères pour l'affichage
497
- const displayFormattedDateComputed = computed(() => {
498
- if (!selectedDates.value) return null
499
-
500
- if (Array.isArray(selectedDates.value)) {
501
- if (selectedDates.value.length >= 2) {
502
- return `${formatDate(selectedDates.value[0], props.format)} - ${formatDate(
503
- selectedDates.value[selectedDates.value.length - 1],
504
- props.format,
505
- )}`
506
- }
507
- return formatDate(selectedDates.value[0], props.format)
508
- }
509
-
510
- return formatDate(selectedDates.value, props.format)
511
- })
512
+ // Date(s) formatée(s) en chaîne de caractères pour l'affichage (centralisée dans useDatePickerState)
513
+ const displayFormattedDateComputed = displayFormattedFromSelectedDates
512
514
 
513
515
  watch(displayFormattedDateComputed, (newValue) => {
514
516
  if (!props.noCalendar && newValue) {
@@ -589,6 +591,28 @@
589
591
  document.removeEventListener('click', handleClickOutside)
590
592
  })
591
593
 
594
+ useCalendarKeyboardNavigation({
595
+ isDatePickerVisible,
596
+ datePickerRef: datePickerRef as unknown as Ref<ComponentPublicInstance | null>,
597
+ getCurrentDate: () => {
598
+ const value = selectedDates.value
599
+ if (!value) return null
600
+
601
+ if (Array.isArray(value)) {
602
+ return value[0] ?? null
603
+ }
604
+
605
+ return value
606
+ },
607
+ setCurrentDate: (date: Date) => {
608
+ preventCloseOnKeyboardNavigation.value = true
609
+ updateSelectedDates([date])
610
+ queueMicrotask(() => {
611
+ preventCloseOnKeyboardNavigation.value = false
612
+ })
613
+ },
614
+ })
615
+
592
616
  const validateOnSubmit = () => {
593
617
  // Si le mode noCalendar est activé, on délègue la validation au DateTextInput
594
618
  if (props.noCalendar) {
@@ -642,59 +666,16 @@
642
666
  })
643
667
  }
644
668
 
645
- // Propriété calculée pour récupérer les jours fériés de l'année courante
646
- const holidays = computed(() => {
647
- // Utiliser le composable useHolidayDay pour récupérer les jours fériés
648
- const { getJoursFeries } = useHolidayDay()
649
-
650
- // Convertir l'année en nombre, utiliser l'année courante comme valeur par défaut
651
- const year = parseInt(currentYear.value || new Date().getFullYear().toString(), 10)
652
-
653
- // Récupérer les jours fériés au format DD/MM/YYYY
654
- const joursFeries = getJoursFeries(year)
655
-
656
- // Tableau pour stocker les jours fériés
657
- const holidayDates: Date[] = []
658
-
659
- // Convertir les dates du format string en objets Date
660
- joursFeries.forEach((dateStr) => {
661
- const [day, month, yearStr] = dateStr.split('/')
662
- // Mois -1 car les mois dans Date sont indexés à partir de 0
663
- holidayDates.push(new Date(parseInt(yearStr), parseInt(month) - 1, parseInt(day)))
664
- })
665
-
666
- // Retourner le tableau des jours fériés
667
- return holidayDates
669
+ // Marquage des jours fériés partagé via le composable dédié
670
+ const { markHolidayDays } = useHolidayHighlighting({
671
+ currentMonth,
672
+ currentYear,
673
+ isDisplayHolidayDays: () => props.displayHolidayDays,
674
+ rootElement: computed(
675
+ () => datePickerRef.value?.$el as HTMLElement | null,
676
+ ),
668
677
  })
669
678
 
670
- // Fonction pour marquer les jours fériés dans le calendrier
671
- const markHolidayDays = () => {
672
- if (!props.displayHolidayDays) return
673
- // Attendre que le DOM soit mis à jour
674
- nextTick(() => {
675
- // Récupérer l'année et le mois courants
676
- const year = parseInt(currentYear.value || new Date().getFullYear().toString(), 10)
677
- // Utiliser currentMonth.value !== null pour vérifier si la valeur est définie, même si c'est 0
678
- const month = parseInt(currentMonth.value !== null ? currentMonth.value : new Date().getMonth().toString(), 10)
679
-
680
- // Récupérer les jours fériés pour ce mois
681
- const monthHolidays = holidays.value.filter((holiday) => {
682
- // La comparaison doit tenir compte du fait que getMonth() retourne 0-11
683
- return holiday.getMonth() === month
684
- })
685
-
686
- // Pour chaque jour férié, trouver l'élément DOM correspondant et ajouter la classe
687
- monthHolidays.forEach((holiday) => {
688
- const day = holiday.getDate()
689
- const dateStr = `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`
690
- const dayElements = document.querySelectorAll(`[data-v-date="${dateStr}"]`)
691
- dayElements.forEach((element) => {
692
- element.classList.add('holiday-day')
693
- })
694
- })
695
- })
696
- }
697
-
698
679
  // Utilisation du composable pour gérer le mode d'affichage du CalendarMode
699
680
  const { currentViewMode, handleViewModeUpdate, handleYearUpdate, handleMonthUpdate, resetViewMode } = useDatePickerViewMode(
700
681
  // Fonction qui retourne la valeur actuelle de isBirthDate (combinaison de isBirthDate et birthDate)
@@ -717,6 +698,7 @@
717
698
  resetViewMode()
718
699
  // Marquer les jours fériés lorsque le calendrier devient visible
719
700
  markHolidayDays()
701
+ customizeMonthButton()
720
702
  }
721
703
  if (!isVisible && props.isBirthDate) {
722
704
  // Réinitialiser le mode d'affichage au type birthdate
@@ -754,29 +736,6 @@
754
736
  }
755
737
  }
756
738
 
757
- const syncFromModelValue = (newValue: DateInput | undefined) => {
758
- if (!newValue || newValue === '') {
759
- selectedDates.value = null
760
- textInputValue.value = ''
761
- displayFormattedDate.value = ''
762
- validateDates()
763
- return
764
- }
765
-
766
- selectedDates.value = initializeSelectedDates(newValue, props.format, props.dateFormatReturn)
767
-
768
- if (selectedDates.value) {
769
- const firstDate = Array.isArray(selectedDates.value)
770
- ? selectedDates.value[0]
771
- : selectedDates.value
772
-
773
- textInputValue.value = formatDate(firstDate, props.format)
774
- displayFormattedDate.value = displayFormattedDateComputed.value || ''
775
- }
776
-
777
- validateDates()
778
- }
779
-
780
739
  watch(() => props.modelValue, (newValue) => {
781
740
  if (isUpdatingFromInternal.value) {
782
741
  if (props.displayRange) {
@@ -894,6 +853,8 @@
894
853
  initializeSelectedDates,
895
854
  updateAccessibility,
896
855
  openDatePicker,
856
+ updateSelectedDates,
857
+ handleSelectToday,
897
858
  })
898
859
  </script>
899
860
 
@@ -969,7 +930,7 @@
969
930
  :show-week-number="props.showWeekNumber"
970
931
  :is-birth-date="props.isBirthDate || props.birthDate"
971
932
  :text-field-activator="props.textFieldActivator"
972
- :title="props.title || props.placeholder || undefined"
933
+ :title="props.title"
973
934
  :period="period"
974
935
  :auto-clamp="props.autoClamp"
975
936
  :label="props.label"
@@ -1011,9 +972,8 @@
1011
972
  :disabled="props.disabled"
1012
973
  :disable-click-button="false"
1013
974
  :readonly="true"
1014
- :label="labelWithAsterisk || ''"
975
+ :label="labelWithAsterisk"
1015
976
  :placeholder="props.placeholder"
1016
- :display-persistent-placeholder="true"
1017
977
  :no-icon="props.noIcon"
1018
978
  :prepend-icon="displayIcon && !displayAppendIcon ? 'calendar' : undefined"
1019
979
  :variant-style="props.isOutlined ? 'outlined' : 'underlined'"
@@ -1025,7 +985,7 @@
1025
985
  :display-asterisk="props.displayAsterisk"
1026
986
  :is-clearable="!props.readonly"
1027
987
  :auto-clamp="props.autoClamp"
1028
- :title="props.title || props.placeholder || undefined"
988
+ :title="props.title"
1029
989
  :hint="props.hint"
1030
990
  :persistent-hint="props.persistentHint"
1031
991
  @click="openDatePickerOnClick"
@@ -1242,4 +1202,23 @@
1242
1202
  padding: 13px;
1243
1203
  }
1244
1204
 
1205
+ /* Style de base du ::after */
1206
+ :deep(.custom-year-btn::after) {
1207
+ background-color: #afb1b1;
1208
+ padding: 10px 40px;
1209
+ text-decoration: none;
1210
+ display: inline-block;
1211
+ margin-left: -22px !important;
1212
+ cursor: pointer;
1213
+ border-radius: 9999px;
1214
+ }
1215
+
1216
+ :deep(.custom-month-btn::after) {
1217
+ background-color: #afb1b1;
1218
+ text-decoration: none;
1219
+ display: inline-block;
1220
+ cursor: pointer;
1221
+ border-radius: 9999px;
1222
+ }
1223
+
1245
1224
  </style>
@@ -9,6 +9,7 @@ describe('CalendarMode.vue - Events', () => {
9
9
  beforeEach(() => {
10
10
  wrapper = mount(DatePicker, {
11
11
  props: {
12
+ label: 'Date Field',
12
13
  modelValue: '',
13
14
  format: 'DD/MM/YYYY',
14
15
  },
@@ -55,6 +56,7 @@ describe('CalendarMode.vue - Events', () => {
55
56
  // Créer un composant avec disablePickerInteraction à true
56
57
  const wrapperWithDisabledPicker = mount(DatePicker, {
57
58
  props: {
59
+ label: 'Date Field',
58
60
  modelValue: '',
59
61
  format: 'DD/MM/YYYY',
60
62
  disablePickerInteraction: true,
@@ -112,6 +114,7 @@ describe('CalendarMode.vue - Events', () => {
112
114
  it('accepte différents formats de date', async () => {
113
115
  const wrapperWithDashFormat = mount(DatePicker, {
114
116
  props: {
117
+ label: 'Date Field',
115
118
  modelValue: '',
116
119
  format: 'YYYY-MM-DD',
117
120
  },
@@ -133,6 +136,7 @@ describe('CalendarMode.vue - Events', () => {
133
136
  it('accepte les plages de dates en entrée', async () => {
134
137
  const wrapperWithRange = mount(DatePicker, {
135
138
  props: {
139
+ label: 'Date Field',
136
140
  modelValue: ['01/01/2023', '05/01/2023'],
137
141
  format: 'DD/MM/YYYY',
138
142
  displayRange: true,
@@ -156,6 +160,7 @@ describe('CalendarMode.vue - Events', () => {
156
160
 
157
161
  const wrapperWithRules = mount(DatePicker, {
158
162
  props: {
163
+ label: 'Date Field',
159
164
  modelValue: '',
160
165
  format: 'DD/MM/YYYY',
161
166
  customRules: [customRule],