@cnamts/synapse 1.0.15 → 1.0.17

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 (587) hide show
  1. package/dist/{DateFilter-isr8mXVb.js → DateFilter-RHtdShO1.js} +12 -12
  2. package/dist/{NumberFilter-BOe7DqWX.js → NumberFilter-DXYz_b_w.js} +1 -1
  3. package/dist/{PeriodFilter-WTprpO40.js → PeriodFilter-CzphmrNu.js} +1 -1
  4. package/dist/{SelectFilter-CqlG5dmI.js → SelectFilter-a4fUV5Jp.js} +1 -1
  5. package/dist/{TextFilter-fVW5bsRw.js → TextFilter-CZ4LTKoq.js} +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts +22 -7
  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 +40 -8
  29. package/dist/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
  30. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1288 -1284
  31. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1936 -1930
  32. package/dist/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.d.ts +3 -3
  33. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2838 -2865
  34. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
  35. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.d.ts +1 -1
  36. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2849 -2867
  37. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +397 -397
  38. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +653 -642
  39. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +233 -5
  40. package/dist/components/Amelipro/AmeliproTooltips/AmeliproTooltips.d.ts +6 -2
  41. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
  42. package/dist/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.d.ts +9 -0
  43. package/dist/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
  44. package/dist/components/Amelipro/StructureMenu/StructureMenu.d.ts +9 -0
  45. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +23 -2
  46. package/dist/components/Captcha/CaptchaHelpdesk.d.ts +6 -0
  47. package/dist/components/ChipList/locales.d.ts +1 -0
  48. package/dist/components/CookieBanner/CookieBanner.d.ts +117 -119
  49. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +484 -484
  50. package/dist/components/CookiesSelection/CookiesSelection.d.ts +104 -106
  51. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +14 -10
  52. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +118 -129
  53. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -3
  54. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
  55. package/dist/components/Customs/SyForm/SyForm.d.ts +60 -53
  56. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +88 -0
  57. package/dist/components/Customs/SyRadioGroup/locales.d.ts +3 -0
  58. package/dist/components/Customs/SyTextField/SyTextField.d.ts +644 -642
  59. package/dist/components/DataList/DataList.d.ts +6 -1
  60. package/dist/components/DataListGroup/DataListGroup.d.ts +14 -2
  61. package/dist/components/DataListItem/DataListItem.d.ts +3 -0
  62. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2986 -3098
  63. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1456 -1558
  64. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +653 -652
  65. package/dist/components/DatePicker/composables/index.d.ts +4 -1
  66. package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +1 -1
  67. package/dist/components/DatePicker/composables/useCalendarKeyboardNavigation.d.ts +11 -0
  68. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +25 -0
  69. package/dist/components/DatePicker/composables/useDateTextField.d.ts +61 -0
  70. package/dist/components/DatePicker/composables/useHolidayHighlighting.d.ts +15 -0
  71. package/dist/components/DatePicker/constants/messages.d.ts +0 -1
  72. package/dist/components/DialogBox/DialogBox.d.ts +177 -179
  73. package/dist/components/DialogBox/config.d.ts +4 -0
  74. package/dist/components/FilterSideBar/FilterSideBar.d.ts +170 -173
  75. package/dist/components/FilterSideBar/locales.d.ts +5 -0
  76. package/dist/components/FooterBar/FooterBar.d.ts +5 -5
  77. package/dist/components/HeaderBar/HeaderBar.d.ts +4 -2
  78. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
  79. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +15 -5
  80. package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +5 -1
  81. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +234 -258
  82. package/dist/components/LangBtn/LangBtn.d.ts +173 -179
  83. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
  84. package/dist/components/LunarCalendar/LunarCalendar.d.ts +29 -0
  85. package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +5 -0
  86. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +13 -0
  87. package/dist/components/MaintenancePage/MaintenancePage.d.ts +8 -1
  88. package/dist/components/NirField/NirField.d.ts +1296 -1292
  89. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -2
  90. package/dist/components/NotificationBar/Notification/Notification.d.ts +30 -0
  91. package/dist/components/NotificationBar/NotificationBar.d.ts +32 -20
  92. package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
  93. package/dist/components/PeriodField/PeriodField.d.ts +5855 -6079
  94. package/dist/components/PhoneField/PhoneField.d.ts +645 -643
  95. package/dist/components/SubHeader/SubHeader.d.ts +11 -8
  96. package/dist/components/SyAlert/SyAlert.d.ts +31 -31
  97. package/dist/components/SyTextArea/SyTextArea.d.ts +397 -395
  98. package/dist/components/SyTextArea/locales.d.ts +1 -0
  99. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +193 -227
  100. package/dist/components/Tables/SyTable/SyTable.d.ts +192 -226
  101. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  102. package/dist/components/Tables/common/SyTablePagination.d.ts +118 -129
  103. package/dist/components/Tables/common/TableHeader.d.ts +52 -2
  104. package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
  105. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  106. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  107. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  108. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  109. package/dist/components/Tables/common/locales.d.ts +1 -0
  110. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +86 -90
  111. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -2
  112. package/dist/components/Tables/common/types.d.ts +3 -2
  113. package/dist/components/Tables/common/useTableCheckbox.d.ts +3 -2
  114. package/dist/components/Tables/common/useTableFilter.d.ts +1 -1
  115. package/dist/components/Tables/common/useTableItems.d.ts +6 -8
  116. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +18 -18
  117. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +2 -0
  118. package/dist/components/index.d.ts +2 -0
  119. package/dist/design-system-v3.js +101 -98
  120. package/dist/design-system-v3.umd.cjs +25 -33
  121. package/dist/directives/lockFocus.d.ts +1 -1
  122. package/dist/main-BXIMMzFS.js +35408 -0
  123. package/dist/style.css +1 -1
  124. package/dist/utils/formatNir/formatNir.d.ts +2 -0
  125. package/dist/utils/index.d.ts +1 -0
  126. package/dist/utils/insertAt.d.ts +1 -0
  127. package/dist/utils/rules/validateDateValue.d.ts +14 -0
  128. package/dist/vuetifyConfig.d.ts +6 -6
  129. package/package.json +14 -7
  130. package/src/assets/tokens.scss +2 -0
  131. package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +70 -241
  132. package/src/components/Accordion/Accordion.mdx +6 -1
  133. package/src/components/Accordion/Accordion.stories.ts +88 -9
  134. package/src/components/Accordion/Accordion.vue +56 -24
  135. package/src/components/Accordion/tests/Accordion.a11y.spec.ts +46 -0
  136. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +26 -30
  137. package/src/components/Accordion/tests/accordion.spec.ts +27 -26
  138. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +1 -18
  139. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +178 -9
  140. package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +28 -121
  141. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +15 -270
  142. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +12 -194
  143. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +1 -18
  144. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +1 -18
  145. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +12 -194
  146. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +9 -9
  147. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +5 -4
  148. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +6 -6
  149. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -0
  150. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +135 -9
  151. package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +20 -5
  152. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +195 -28
  153. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +193 -124
  154. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
  155. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +364 -12
  156. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +30 -390
  157. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +4 -36
  158. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +10 -10
  159. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +7 -7
  160. package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +5 -5
  161. package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +1 -1
  162. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +7 -6
  163. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +6 -6
  164. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +6 -6
  165. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +2 -2
  166. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -43
  167. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +80 -9
  168. package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +25 -4
  169. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +1 -13
  170. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +7 -6
  171. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +5 -5
  172. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +187 -39
  173. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +147 -147
  174. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +1 -1
  175. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +0 -2
  176. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +160 -20
  177. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +34 -177
  178. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +1 -0
  179. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +248 -19
  180. package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +34 -203
  181. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +6 -144
  182. package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.vue +20 -2
  183. package/src/components/Amelipro/AmeliproIcon/__tests__/__snapshots__/AmeliproIcon.spec.ts.snap +1 -25
  184. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +5 -5
  185. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -6
  186. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +22 -22
  187. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +2 -2
  188. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/AmeliproMultipleFoldingCard.spec.ts +304 -0
  189. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +373 -0
  190. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +64 -34
  191. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +75 -16
  192. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +4 -2
  193. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +63 -177
  194. package/src/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
  195. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.stories.ts +11 -5
  196. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +9 -1
  197. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +162 -72
  198. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +2 -2
  199. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +6 -39
  200. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +3 -3
  201. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +8 -8
  202. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/AmeliproPostalAddressField.spec.ts +2 -2
  203. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +11 -52
  204. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +7 -7
  205. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +8 -8
  206. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +6 -6
  207. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +2 -2
  208. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -14
  209. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +7 -7
  210. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +41 -5
  211. package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +12 -12
  212. package/src/components/Amelipro/AmeliproSelect/__tests__/__snapshots__/AmeliproSelect.spec.ts.snap +2 -2
  213. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +2 -2
  214. package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +2 -2
  215. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -2
  216. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +463 -68
  217. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +176 -511
  218. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.stories.ts +94 -0
  219. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +6 -2
  220. package/src/components/Amelipro/AmeliproTabs/__tests__/AmeliproTabs.spec.ts +4 -0
  221. package/src/components/Amelipro/AmeliproTabs/__tests__/__snapshots__/AmeliproTabs.spec.ts.snap +4 -2
  222. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +6 -6
  223. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -4
  224. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +3 -3
  225. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +1 -2
  226. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +78 -10
  227. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +114 -6
  228. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +19 -7
  229. package/src/components/Amelipro/AmeliproTextField/__tests__/__snapshots__/AmeliproTextField.spec.ts.snap +2 -0
  230. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +44 -0
  231. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +79 -1
  232. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.stories.ts +45 -0
  233. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +6 -0
  234. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -2
  235. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +2 -2
  236. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +21 -7
  237. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +252 -44
  238. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +166 -0
  239. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/ServiceBtn.spec.ts +137 -0
  240. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/__snapshots__/ServiceBtn.spec.ts.snap +56 -0
  241. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/ServiceList.spec.ts +116 -0
  242. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/__snapshots__/ServiceList.spec.ts.snap +58 -0
  243. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/ServiceMenuContent.spec.ts +118 -0
  244. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/__snapshots__/ServiceMenuContent.spec.ts.snap +151 -0
  245. package/src/components/Amelipro/ServiceMenu/__tests__/ServiceMenu.spec.ts +259 -0
  246. package/src/components/Amelipro/ServiceMenu/__tests__/__snapshots__/ServiceMenu.spec.ts.snap +102 -0
  247. package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +13 -0
  248. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +96 -0
  249. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +63 -0
  250. package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +14 -2
  251. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/StructureItem.spec.ts +133 -0
  252. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +159 -0
  253. package/src/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
  254. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/StructureList.spec.ts +190 -0
  255. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +109 -0
  256. package/src/components/Amelipro/StructureMenu/StructureMenu.stories.ts +93 -63
  257. package/src/components/Amelipro/StructureMenu/StructureMenu.vue +5 -0
  258. package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +22 -1
  259. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +163 -0
  260. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +105 -0
  261. package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +171 -0
  262. package/src/components/Amelipro/StructureMenu/__tests__/__snapshots__/StructureMenu.spec.ts.snap +39 -0
  263. package/src/components/Amelipro/UserInformationSummary/__tests__/UserInformationSummary.spec.ts +140 -0
  264. package/src/components/Amelipro/UserInformationSummary/{tests → __tests__}/__snapshots__/UserInformationSummary.spec.ts.snap +17 -24
  265. package/src/components/Amelipro/UserMenu/UserMenu.stories.ts +3 -3
  266. package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -2
  267. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/UserMenuDetails.spec.ts +150 -0
  268. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/__snapshots__/UserMenuDetails.spec.ts.snap +117 -0
  269. package/src/components/Amelipro/UserMenu/__tests__/UserMenu.spec.ts +141 -0
  270. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +103 -0
  271. package/src/components/BackBtn/tests/BackBtn.a11y.spec.ts +20 -0
  272. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -0
  273. package/src/components/BackToTopBtn/tests/BackToTopBtn.a11y.spec.ts +37 -0
  274. package/src/components/Captcha/Captcha.vue +9 -24
  275. package/src/components/Captcha/CaptchaHelpdesk.vue +42 -0
  276. package/src/components/Captcha/tests/Captcha.a11y.spec.ts +49 -0
  277. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +256 -268
  278. package/src/components/ChipList/ChipList.stories.ts +15 -0
  279. package/src/components/ChipList/ChipList.vue +20 -17
  280. package/src/components/ChipList/locales.ts +1 -0
  281. package/src/components/ChipList/tests/ChipList.a11y.spec.ts +40 -0
  282. package/src/components/CollapsibleList/Accessibilite.mdx +67 -11
  283. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +38 -0
  284. package/src/components/ContextualMenu/ContextualMenu.stories.ts +3 -0
  285. package/src/components/ContextualMenu/tests/ContextualMenu.a11y.spec.ts +30 -0
  286. package/src/components/CookieBanner/CookieBanner.stories.ts +15 -0
  287. package/src/components/CookieBanner/CookieBanner.vue +0 -1
  288. package/src/components/CookieBanner/tests/CookieBanner.a11y.spec.ts +29 -0
  289. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +46 -0
  290. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.a11y.spec.ts +37 -0
  291. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +58 -0
  292. package/src/components/CopyBtn/CopyBtn.stories.ts +21 -0
  293. package/src/components/CopyBtn/tests/CopyBtn.a11y.spec.ts +40 -0
  294. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +0 -1
  295. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +4 -0
  296. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +154 -82
  297. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +229 -125
  298. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +12 -12
  299. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +344 -826
  300. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.stories.ts +30 -0
  301. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.vue +1 -0
  302. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +27 -0
  303. package/src/components/Customs/Selects/SySelect/SySelect.vue +215 -169
  304. package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +4 -2
  305. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +7 -9
  306. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +40 -0
  307. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +7 -3
  308. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +20 -2
  309. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.a11y.spec.ts +26 -0
  310. package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +33 -0
  311. package/src/components/Customs/SyForm/SyForm.mdx +47 -7
  312. package/src/components/Customs/SyForm/SyForm.stories.ts +38 -34
  313. package/src/components/Customs/SyForm/SyForm.vue +27 -6
  314. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +37 -0
  315. package/src/components/Customs/SyIcon/SyIcon.stories.ts +5 -0
  316. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +27 -0
  317. package/src/components/Customs/SyRadioGroup/Accessibilite.mdx +263 -0
  318. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +37 -0
  319. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +665 -0
  320. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +324 -0
  321. package/src/components/Customs/SyRadioGroup/locales.ts +3 -0
  322. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +30 -0
  323. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +135 -0
  324. package/src/components/Customs/SyTabs/SyTabs.stories.ts +33 -0
  325. package/src/components/Customs/SyTabs/SyTabs.vue +1 -1
  326. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +51 -0
  327. package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -0
  328. package/src/components/Customs/SyTextField/SyTextField.vue +232 -199
  329. package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +27 -0
  330. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +32 -2
  331. package/src/components/DataList/DataList.mdx +3 -1
  332. package/src/components/DataList/DataList.stories.ts +67 -17
  333. package/src/components/DataList/DataList.vue +13 -1
  334. package/src/components/DataList/tests/DataList.a11y.spec.ts +35 -0
  335. package/src/components/DataListGroup/DataListGroup.stories.ts +42 -12
  336. package/src/components/DataListGroup/DataListGroup.vue +14 -1
  337. package/src/components/DataListGroup/tests/DataListGroup.a11y.spec.ts +24 -0
  338. package/src/components/DataListItem/DataListItem.vue +10 -2
  339. package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +31 -0
  340. package/src/components/DataListItem/tests/DataListItem.spec.ts +1 -1
  341. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +45 -0
  342. package/src/components/DatePicker/CalendarMode/DatePicker.vue +230 -205
  343. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +27 -0
  344. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +5 -0
  345. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +179 -179
  346. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +54 -0
  347. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +337 -278
  348. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +26 -0
  349. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +234 -827
  350. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +12 -0
  351. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +46 -81
  352. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
  353. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +350 -0
  354. package/src/components/DatePicker/composables/index.ts +4 -1
  355. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +270 -0
  356. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +61 -3
  357. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +198 -0
  358. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +36 -2
  359. package/src/components/DatePicker/composables/tests/useInputHandler.spec.ts +755 -0
  360. package/src/components/DatePicker/composables/tests/useKeyboardEvents.spec.ts +168 -0
  361. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +40 -34
  362. package/src/components/DatePicker/composables/useAsteriskDisplay.ts +1 -2
  363. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +155 -0
  364. package/src/components/DatePicker/composables/useDatePickerState.ts +163 -0
  365. package/src/components/DatePicker/composables/useDateRangeInput.ts +4 -8
  366. package/src/components/DatePicker/composables/useDateTextField.ts +156 -0
  367. package/src/components/DatePicker/composables/useHolidayHighlighting.ts +64 -0
  368. package/src/components/DatePicker/composables/useInputHandler.ts +25 -19
  369. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +51 -26
  370. package/src/components/DatePicker/constants/messages.ts +0 -1
  371. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
  372. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +16 -8
  373. package/src/components/DiacriticPicker/tests/DiacriticPicker.a11y.spec.ts +46 -0
  374. package/src/components/DialogBox/DialogBox.stories.ts +5 -2
  375. package/src/components/DialogBox/DialogBox.vue +5 -0
  376. package/src/components/DialogBox/config.ts +5 -0
  377. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +43 -0
  378. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +26 -0
  379. package/src/components/ErrorPage/ErrorPage.stories.ts +60 -0
  380. package/src/components/ErrorPage/ErrorPage.vue +1 -1
  381. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +29 -0
  382. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +17 -0
  383. package/src/components/ExternalLinks/ExternalLinks.stories.ts +21 -0
  384. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +39 -0
  385. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +0 -1
  386. package/src/components/FileList/FileList.stories.ts +3 -0
  387. package/src/components/FileList/tests/FileList.a11y.spec.ts +41 -0
  388. package/src/components/FilePreview/FilePreview.stories.ts +3 -0
  389. package/src/components/FilePreview/tests/FilePreview.a11y.spec.ts +47 -0
  390. package/src/components/FileUpload/tests/FileUpload.a11y.spec.ts +25 -0
  391. package/src/components/FilterInline/FilterInline.stories.ts +15 -0
  392. package/src/components/FilterInline/FilterInline.vue +8 -4
  393. package/src/components/FilterInline/tests/FilterInline.a11y.spec.ts +36 -0
  394. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +0 -3
  395. package/src/components/FilterSideBar/Accessibilite.stories.ts +4 -0
  396. package/src/components/FilterSideBar/FilterSideBar.stories.ts +33 -11
  397. package/src/components/FilterSideBar/FilterSideBar.vue +146 -83
  398. package/src/components/FilterSideBar/locales.ts +6 -0
  399. package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +59 -0
  400. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +2 -2
  401. package/src/components/FooterBar/Accessibilite.mdx +67 -11
  402. package/src/components/FooterBar/FooterBar.vue +1 -1
  403. package/src/components/FooterBar/config.ts +2 -2
  404. package/src/components/FooterBar/tests/FooterBar.a11y.spec.ts +31 -0
  405. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  406. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +1 -1
  407. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.a11y.spec.ts +25 -0
  408. package/src/components/HeaderBar/HeaderBar.stories.ts +21 -0
  409. package/src/components/HeaderBar/HeaderBar.vue +47 -40
  410. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.stories.ts +12 -0
  411. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +3 -0
  412. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +4 -0
  413. package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +17 -7
  414. package/src/components/HeaderBar/consts.scss +0 -1
  415. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +33 -0
  416. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +58 -57
  417. package/src/components/HeaderLoading/tests/HeaderLoading.a11y.spec.ts +25 -0
  418. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +42 -0
  419. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +4 -0
  420. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +6 -2
  421. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +45 -0
  422. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +6 -0
  423. package/src/components/HeaderToolbar/HeaderToolbar.vue +0 -3
  424. package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +25 -0
  425. package/src/components/LangBtn/LangBtn.stories.ts +12 -0
  426. package/src/components/LangBtn/tests/LangBtn.a11y.spec.ts +25 -0
  427. package/src/components/Logo/tests/Logo.a11y.spec.ts +20 -0
  428. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +38 -0
  429. package/src/components/LunarCalendar/LunarCalendar.mdx +33 -0
  430. package/src/components/LunarCalendar/LunarCalendar.stories.ts +232 -0
  431. package/src/components/LunarCalendar/LunarCalendar.vue +57 -0
  432. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +31 -0
  433. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +79 -0
  434. package/src/components/LunarCalendar/useLunarCalendarRules.ts +96 -0
  435. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +47 -0
  436. package/src/components/MaintenancePage/MaintenancePage.stories.ts +46 -0
  437. package/src/components/MaintenancePage/MaintenancePage.vue +7 -5
  438. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +21 -0
  439. package/src/components/NirField/NirField.stories.ts +6 -0
  440. package/src/components/NirField/tests/NirField.a11y.spec.ts +32 -0
  441. package/src/components/NotFoundPage/NotFoundPage.stories.ts +56 -0
  442. package/src/components/NotFoundPage/NotFoundPage.vue +7 -5
  443. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +31 -0
  444. package/src/components/NotificationBar/Notification/Notification.vue +203 -0
  445. package/src/components/NotificationBar/NotificationBar.stories.ts +151 -140
  446. package/src/components/NotificationBar/NotificationBar.vue +148 -202
  447. package/src/components/NotificationBar/config.ts +1 -1
  448. package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +66 -0
  449. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +173 -177
  450. package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +67 -29
  451. package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +27 -0
  452. package/src/components/PaginatedTable/PaginatedTable.stories.ts +21 -10
  453. package/src/components/PaginatedTable/PaginatedTable.vue +72 -36
  454. package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +43 -0
  455. package/src/components/PasswordField/PasswordField.stories.ts +39 -0
  456. package/src/components/PasswordField/tests/PasswordField.a11y.spec.ts +26 -0
  457. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +31 -0
  458. package/src/components/PhoneField/PhoneField.stories.ts +51 -0
  459. package/src/components/PhoneField/PhoneField.vue +102 -83
  460. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +34 -0
  461. package/src/components/RangeField/tests/RangeField.a11y.spec.ts +32 -0
  462. package/src/components/RatingPicker/RatingPicker.stories.ts +21 -0
  463. package/src/components/SearchListField/tests/SearchListField.spec.ts +7 -53
  464. package/src/components/SkipLink/Accessibilite.mdx +59 -13
  465. package/src/components/SkipLink/SkipLink.stories.ts +41 -8
  466. package/src/components/SubHeader/SubHeader.stories.ts +178 -92
  467. package/src/components/SubHeader/SubHeader.vue +84 -71
  468. package/src/components/SubHeader/config.ts +1 -1
  469. package/src/components/SyAlert/SyAlert.vue +6 -3
  470. package/src/components/SyTextArea/SyTextArea.stories.ts +40 -0
  471. package/src/components/SyTextArea/SyTextArea.vue +13 -0
  472. package/src/components/SyTextArea/locales.ts +1 -0
  473. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +42 -0
  474. package/src/components/TableToolbar/TableToolbar.stories.ts +3 -0
  475. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +24 -72
  476. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +591 -24
  477. package/src/components/Tables/SyServerTable/SyServerTable.vue +19 -13
  478. package/src/components/Tables/SyTable/FilterRules.stories.ts +12 -0
  479. package/src/components/Tables/SyTable/SyTable.stories.ts +460 -18
  480. package/src/components/Tables/SyTable/SyTable.vue +16 -11
  481. package/src/components/Tables/common/TableHeader.vue +16 -7
  482. package/src/components/Tables/common/filters/DateFilter.vue +1 -1
  483. package/src/components/Tables/common/locales.ts +1 -0
  484. package/src/components/Tables/common/tableFilterUtils.ts +3 -3
  485. package/src/components/Tables/common/types.ts +4 -2
  486. package/src/components/Tables/common/useTableCheckbox.ts +4 -3
  487. package/src/components/Tables/common/useTableFilter.ts +2 -2
  488. package/src/components/Tables/common/useTableItems.ts +4 -19
  489. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +31 -1
  490. package/src/components/UserMenuBtn/UserMenuBtn.vue +2 -1
  491. package/src/components/UserMenuBtn/tests/UserMenuBtn.a11y.spec.ts +31 -0
  492. package/src/components/index.ts +2 -0
  493. package/src/composables/validation/tests/useFormValidation.spec.ts +251 -0
  494. package/src/composables/validation/tests/useValidatable.spec.ts +90 -0
  495. package/src/directives/lockFocus.ts +12 -2
  496. package/src/stories/Accessibilite/Audit/Exemptions-derogations.mdx +241 -0
  497. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +17 -10
  498. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -0
  499. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +160 -106
  500. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +2 -1
  501. package/src/stories/GuideDuDev/ClassesUtilitaires/DataUtilities.mdx +6 -6
  502. package/src/stories/GuideDuDev/ClassesUtilitaires/DomBrowserUtilities.mdx +52 -59
  503. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +28 -8
  504. package/src/stories/GuideDuDev/ClassesUtilitaires/StorageUtilities.mdx +2 -2
  505. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationRules.mdx +3 -3
  506. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationUtilities.mdx +11 -11
  507. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +24 -14
  508. package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
  509. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  510. package/src/stories/accessibility/AccessibilityGuideLayout.mdx +87 -0
  511. package/src/stories/styles/accessibility-guide.css +153 -0
  512. package/src/utils/formatNir/formatNir.ts +15 -0
  513. package/src/utils/index.ts +1 -0
  514. package/src/utils/insertAt.ts +11 -0
  515. package/src/utils/rules/isDateValid/IsDateValid.mdx +2 -2
  516. package/src/utils/rules/isDateValid/IsDateValid.stories.ts +6 -4
  517. package/src/utils/rules/isDateValid/index.ts +23 -8
  518. package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +9 -0
  519. package/src/utils/rules/isExactLength/IsExactLenght.mdx +1 -1
  520. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +19 -7
  521. package/src/utils/rules/isHolidayDay/index.ts +6 -8
  522. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +13 -1
  523. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +2 -2
  524. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +9 -2
  525. package/src/utils/rules/isNotAfterDate/index.ts +5 -12
  526. package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +20 -0
  527. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +2 -2
  528. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +8 -2
  529. package/src/utils/rules/isNotAfterToday/index.ts +6 -6
  530. package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +20 -0
  531. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +2 -2
  532. package/src/utils/rules/isNotBeforeDate/index.ts +5 -12
  533. package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +20 -0
  534. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +2 -2
  535. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +8 -2
  536. package/src/utils/rules/isNotBeforeToday/index.ts +6 -6
  537. package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +19 -0
  538. package/src/utils/rules/validateDateValue.ts +37 -0
  539. package/src/vuetifyConfig.ts +6 -2
  540. package/dist/components/Customs/Selects/SelectBtnField/config.d.ts +0 -11
  541. package/dist/components/DatePicker/composables/useIconState.d.ts +0 -17
  542. package/dist/components/DatePicker/tests/setup.d.ts +0 -75370
  543. package/dist/components/Tables/common/formatters.d.ts +0 -17
  544. package/dist/main-CbBVJ_le.js +0 -34377
  545. package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -70
  546. package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +0 -8
  547. package/dist/stories/DesignTokens/TypographyDisplay.d.ts +0 -28
  548. package/dist/stories/DesignTokens/vue-shims.d.ts +0 -6
  549. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -40
  550. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +0 -369
  551. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -21
  552. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +0 -100
  553. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -25
  554. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +0 -245
  555. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -45
  556. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +0 -787
  557. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -46
  558. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -111
  559. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -17
  560. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/__snapshots__/StructureBtn.spec.ts.snap +0 -34
  561. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -21
  562. package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +0 -106
  563. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -33
  564. package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +0 -353
  565. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -60
  566. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +0 -824
  567. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -69
  568. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +0 -1383
  569. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -24
  570. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -33
  571. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/__snapshots__/UserMenuDetails.spec.ts.snap +0 -3
  572. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -34
  573. package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +0 -101
  574. package/src/components/Customs/Selects/SelectBtnField/config.ts +0 -11
  575. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -151
  576. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -148
  577. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -361
  578. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -709
  579. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +0 -130
  580. package/src/components/DatePicker/composables/useIconState.ts +0 -53
  581. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -4111
  582. package/src/components/DatePicker/tests/archiTest.md +0 -33
  583. package/src/components/DatePicker/tests/navigation.regression.spec.ts +0 -74
  584. package/src/components/DatePicker/tests/navigation.simple.spec.ts +0 -137
  585. package/src/components/DatePicker/tests/setup.ts +0 -243
  586. package/src/components/Tables/common/formatters.ts +0 -72
  587. package/src/components/Usages/tests/Usages.spec.ts +0 -155
@@ -0,0 +1,755 @@
1
+ import { describe, it, expect, vi } from 'vitest'
2
+ import { ref, type ComponentPublicInstance } from 'vue'
3
+ import type { DateObjectValue } from '../../types'
4
+ import { useInputHandler } from '../useInputHandler'
5
+
6
+ const parseDate = (value: string): Date | null => {
7
+ const [day, month, year] = value.split('/').map(Number)
8
+ if (!day || !month || !year) return null
9
+ return new Date(year, month - 1, day)
10
+ }
11
+
12
+ const formatDate = (date: Date): string => {
13
+ const d = String(date.getDate()).padStart(2, '0')
14
+ const m = String(date.getMonth() + 1).padStart(2, '0')
15
+ const y = date.getFullYear()
16
+ return `${d}/${m}/${y}`
17
+ }
18
+
19
+ const generateDateRange = (start: Date, end: Date): Date[] => [start, end]
20
+
21
+ const isDateComplete = (value: string): boolean => value.length === 10
22
+
23
+ describe('useInputHandler', () => {
24
+ it('handleInput in single mode formats value, updates selectedDates and model', () => {
25
+ const format = 'DD/MM/YYYY'
26
+
27
+ const displayFormattedDate = ref('')
28
+ const selectedDates = ref<DateObjectValue>(null)
29
+ const isFormatting = ref(false)
30
+ const isManualInputActive = ref(true)
31
+ const isUpdatingFromInternal = ref(false)
32
+ const clearValidation = vi.fn()
33
+ const validateField = vi.fn()
34
+ const updateModel = vi.fn()
35
+ const emitInput = vi.fn()
36
+
37
+ const inputElement = document.createElement('input')
38
+ const wrapper = document.createElement('div')
39
+ wrapper.appendChild(inputElement)
40
+ const inputRef = ref<ComponentPublicInstance | null>({ $el: wrapper } as unknown as ComponentPublicInstance)
41
+
42
+ const { handleInput } = useInputHandler({
43
+ format,
44
+ displayRange: false,
45
+ dateFormatReturn: undefined,
46
+ disableErrorHandling: false,
47
+ parseDate,
48
+ formatDate,
49
+ generateDateRange,
50
+ isDateComplete,
51
+ displayFormattedDate,
52
+ selectedDates,
53
+ isFormatting,
54
+ isManualInputActive,
55
+ isUpdatingFromInternal,
56
+ clearValidation,
57
+ validateField,
58
+ updateModel,
59
+ emitInput,
60
+ inputRef,
61
+ })
62
+
63
+ inputElement.value = '01/01/2023'
64
+ inputElement.selectionStart = inputElement.value.length
65
+ inputElement.selectionEnd = inputElement.value.length
66
+
67
+ handleInput({ target: inputElement } as unknown as Event)
68
+
69
+ expect(displayFormattedDate.value).toBe('01/01/2023')
70
+ expect(selectedDates.value).toBeInstanceOf(Date)
71
+ expect(updateModel).toHaveBeenCalledWith('01/01/2023')
72
+ expect(clearValidation).toHaveBeenCalled()
73
+ expect(validateField).toHaveBeenCalledTimes(1)
74
+ })
75
+
76
+ it('handleInput in range mode completes first date and prepares second date input', () => {
77
+ const format = 'DD/MM/YYYY'
78
+
79
+ const displayFormattedDate = ref('')
80
+ const selectedDates = ref<DateObjectValue>(null)
81
+ const isFormatting = ref(false)
82
+ const isManualInputActive = ref(true)
83
+ const isUpdatingFromInternal = ref(false)
84
+ const clearValidation = vi.fn()
85
+ const validateField = vi.fn()
86
+ const updateModel = vi.fn()
87
+ const emitInput = vi.fn()
88
+
89
+ const inputElement = document.createElement('input')
90
+ const wrapper = document.createElement('div')
91
+ wrapper.appendChild(inputElement)
92
+ const inputRef = ref<ComponentPublicInstance | null>({ $el: wrapper } as unknown as ComponentPublicInstance)
93
+
94
+ const { handleInput } = useInputHandler({
95
+ format,
96
+ displayRange: true,
97
+ dateFormatReturn: undefined,
98
+ disableErrorHandling: false,
99
+ parseDate,
100
+ formatDate,
101
+ generateDateRange,
102
+ isDateComplete,
103
+ displayFormattedDate,
104
+ selectedDates,
105
+ isFormatting,
106
+ isManualInputActive,
107
+ isUpdatingFromInternal,
108
+ clearValidation,
109
+ validateField,
110
+ updateModel,
111
+ emitInput,
112
+ inputRef,
113
+ })
114
+
115
+ inputElement.value = '01/01/2023'
116
+ inputElement.selectionStart = inputElement.value.length
117
+ inputElement.selectionEnd = inputElement.value.length
118
+
119
+ handleInput({ target: inputElement } as unknown as Event)
120
+
121
+ expect(displayFormattedDate.value).toBe('01/01/2023 - ')
122
+ expect(Array.isArray(selectedDates.value)).toBe(true)
123
+ const dates = selectedDates.value as (Date | null)[]
124
+ expect(dates[0]).toBeInstanceOf(Date)
125
+ expect(dates[1]).toBeNull()
126
+ // In this first-step scenario, updateModel is not called yet for the range
127
+ expect(updateModel).not.toHaveBeenCalled()
128
+ })
129
+
130
+ it('handleInput in range mode formats and updates second date', () => {
131
+ const format = 'DD/MM/YYYY'
132
+
133
+ // Préparer un état où la première date est déjà complétée
134
+ const displayFormattedDate = ref('01/01/2023 - ')
135
+ const startDate = parseDate('01/01/2023') as Date
136
+ const selectedDates = ref<DateObjectValue>([startDate, null])
137
+ const isFormatting = ref(false)
138
+ const isManualInputActive = ref(true)
139
+ const isUpdatingFromInternal = ref(false)
140
+ const clearValidation = vi.fn()
141
+ const validateField = vi.fn()
142
+ const updateModel = vi.fn()
143
+ const emitInput = vi.fn()
144
+
145
+ const inputElement = document.createElement('input')
146
+ const wrapper = document.createElement('div')
147
+ wrapper.appendChild(inputElement)
148
+ const inputRef = ref<ComponentPublicInstance | null>({ $el: wrapper } as unknown as ComponentPublicInstance)
149
+
150
+ const { handleInput } = useInputHandler({
151
+ format,
152
+ displayRange: true,
153
+ dateFormatReturn: undefined,
154
+ disableErrorHandling: false,
155
+ parseDate,
156
+ formatDate,
157
+ generateDateRange,
158
+ isDateComplete,
159
+ displayFormattedDate,
160
+ selectedDates,
161
+ isFormatting,
162
+ isManualInputActive,
163
+ isUpdatingFromInternal,
164
+ clearValidation,
165
+ validateField,
166
+ updateModel,
167
+ emitInput,
168
+ inputRef,
169
+ })
170
+
171
+ // Saisir la seconde date complète
172
+ inputElement.value = '01/01/2023 - 05/01/2023'
173
+ inputElement.selectionStart = inputElement.value.length
174
+ inputElement.selectionEnd = inputElement.value.length
175
+
176
+ handleInput({ target: inputElement } as unknown as Event)
177
+
178
+ expect(displayFormattedDate.value).toContain('01/01/2023 -')
179
+ expect(Array.isArray(selectedDates.value)).toBe(true)
180
+ const [start, end] = selectedDates.value as (Date | null)[]
181
+ expect(start).toBeInstanceOf(Date)
182
+ expect(end).toBeInstanceOf(Date)
183
+ })
184
+
185
+ it('updateModelFromSelectedDates in range mode expands dates and updates model', () => {
186
+ const format = 'DD/MM/YYYY'
187
+
188
+ const displayFormattedDate = ref('01/01/2023 - 05/01/2023')
189
+ const start = new Date(2023, 0, 1)
190
+ const end = new Date(2023, 0, 5)
191
+ const selectedDates = ref<DateObjectValue>([start, end])
192
+ const isFormatting = ref(false)
193
+ const isManualInputActive = ref(true)
194
+ const isUpdatingFromInternal = ref(false)
195
+ const clearValidation = vi.fn()
196
+ const validateField = vi.fn()
197
+ const updateModel = vi.fn()
198
+ const emitInput = vi.fn()
199
+ const inputRef = ref<ComponentPublicInstance | null>(null)
200
+
201
+ const { updateModelFromSelectedDates } = useInputHandler({
202
+ format,
203
+ displayRange: true,
204
+ dateFormatReturn: undefined,
205
+ disableErrorHandling: false,
206
+ parseDate,
207
+ formatDate,
208
+ generateDateRange,
209
+ isDateComplete,
210
+ displayFormattedDate,
211
+ selectedDates,
212
+ isFormatting,
213
+ isManualInputActive,
214
+ isUpdatingFromInternal,
215
+ clearValidation,
216
+ validateField,
217
+ updateModel,
218
+ emitInput,
219
+ inputRef,
220
+ })
221
+
222
+ updateModelFromSelectedDates()
223
+
224
+ expect(Array.isArray(selectedDates.value)).toBe(true)
225
+ const dates = selectedDates.value as Date[]
226
+ expect(dates[0]).toBeInstanceOf(Date)
227
+ expect(dates[1]).toBeInstanceOf(Date)
228
+ expect(updateModel).toHaveBeenCalledWith(['01/01/2023', '05/01/2023'])
229
+ })
230
+
231
+ it('updateModelFromSelectedDates in single mode updates model and validates when complete', () => {
232
+ const format = 'DD/MM/YYYY'
233
+
234
+ const displayFormattedDate = ref('01/01/2023')
235
+ const date = new Date(2023, 0, 1)
236
+ const selectedDates = ref<DateObjectValue>(date)
237
+ const isFormatting = ref(false)
238
+ const isManualInputActive = ref(true)
239
+ const isUpdatingFromInternal = ref(false)
240
+ const clearValidation = vi.fn()
241
+ const validateField = vi.fn()
242
+ const updateModel = vi.fn()
243
+ const emitInput = vi.fn()
244
+ const inputRef = ref<ComponentPublicInstance | null>(null)
245
+
246
+ const { updateModelFromSelectedDates } = useInputHandler({
247
+ format,
248
+ displayRange: false,
249
+ dateFormatReturn: undefined,
250
+ disableErrorHandling: false,
251
+ parseDate,
252
+ formatDate,
253
+ generateDateRange,
254
+ isDateComplete,
255
+ displayFormattedDate,
256
+ selectedDates,
257
+ isFormatting,
258
+ isManualInputActive,
259
+ isUpdatingFromInternal,
260
+ clearValidation,
261
+ validateField,
262
+ updateModel,
263
+ emitInput,
264
+ inputRef,
265
+ })
266
+
267
+ updateModelFromSelectedDates()
268
+
269
+ expect(updateModel).toHaveBeenCalledWith('01/01/2023')
270
+ expect(validateField).toHaveBeenCalledTimes(1)
271
+ expect(validateField).toHaveBeenCalledWith(date)
272
+ })
273
+
274
+ it('updateModelFromSelectedDates in single mode does not validate when error handling is disabled', () => {
275
+ const format = 'DD/MM/YYYY'
276
+
277
+ const displayFormattedDate = ref('01/01/2023')
278
+ const date = new Date(2023, 0, 1)
279
+ const selectedDates = ref<DateObjectValue>(date)
280
+ const isFormatting = ref(false)
281
+ const isManualInputActive = ref(true)
282
+ const isUpdatingFromInternal = ref(false)
283
+ const clearValidation = vi.fn()
284
+ const validateField = vi.fn()
285
+ const updateModel = vi.fn()
286
+ const emitInput = vi.fn()
287
+ const inputRef = ref<ComponentPublicInstance | null>(null)
288
+
289
+ const { updateModelFromSelectedDates } = useInputHandler({
290
+ format,
291
+ displayRange: false,
292
+ dateFormatReturn: undefined,
293
+ disableErrorHandling: true,
294
+ parseDate,
295
+ formatDate,
296
+ generateDateRange,
297
+ isDateComplete,
298
+ displayFormattedDate,
299
+ selectedDates,
300
+ isFormatting,
301
+ isManualInputActive,
302
+ isUpdatingFromInternal,
303
+ clearValidation,
304
+ validateField,
305
+ updateModel,
306
+ emitInput,
307
+ inputRef,
308
+ })
309
+
310
+ updateModelFromSelectedDates()
311
+
312
+ expect(updateModel).toHaveBeenCalledWith('01/01/2023')
313
+ expect(validateField).not.toHaveBeenCalled()
314
+ })
315
+
316
+ it('updateSelectedDatesFromFormattedValue parses a full range correctly', () => {
317
+ const format = 'DD/MM/YYYY'
318
+
319
+ const displayFormattedDate = ref('')
320
+ const selectedDates = ref<DateObjectValue>(null)
321
+ const isFormatting = ref(false)
322
+ const isManualInputActive = ref(true)
323
+ const isUpdatingFromInternal = ref(false)
324
+ const clearValidation = vi.fn()
325
+ const validateField = vi.fn()
326
+ const updateModel = vi.fn()
327
+ const emitInput = vi.fn()
328
+ const inputRef = ref<ComponentPublicInstance | null>(null)
329
+
330
+ const { updateSelectedDatesFromFormattedValue } = useInputHandler({
331
+ format,
332
+ displayRange: true,
333
+ dateFormatReturn: undefined,
334
+ disableErrorHandling: false,
335
+ parseDate,
336
+ formatDate,
337
+ generateDateRange,
338
+ isDateComplete,
339
+ displayFormattedDate,
340
+ selectedDates,
341
+ isFormatting,
342
+ isManualInputActive,
343
+ isUpdatingFromInternal,
344
+ clearValidation,
345
+ validateField,
346
+ updateModel,
347
+ emitInput,
348
+ inputRef,
349
+ })
350
+
351
+ updateSelectedDatesFromFormattedValue('01/01/2023 - 05/01/2023')
352
+
353
+ expect(Array.isArray(selectedDates.value)).toBe(true)
354
+ const dates = selectedDates.value as Date[]
355
+ expect(dates[0]).toBeInstanceOf(Date)
356
+ expect(dates[1]).toBeInstanceOf(Date)
357
+ })
358
+
359
+ it('updateSelectedDatesFromFormattedValue in range mode with only start date sets end to null', () => {
360
+ const format = 'DD/MM/YYYY'
361
+
362
+ const displayFormattedDate = ref('')
363
+ const selectedDates = ref<DateObjectValue>(null)
364
+ const isFormatting = ref(false)
365
+ const isManualInputActive = ref(true)
366
+ const isUpdatingFromInternal = ref(false)
367
+ const clearValidation = vi.fn()
368
+ const validateField = vi.fn()
369
+ const updateModel = vi.fn()
370
+ const emitInput = vi.fn()
371
+ const inputRef = ref<ComponentPublicInstance | null>(null)
372
+
373
+ const { updateSelectedDatesFromFormattedValue } = useInputHandler({
374
+ format,
375
+ displayRange: true,
376
+ dateFormatReturn: undefined,
377
+ disableErrorHandling: false,
378
+ parseDate,
379
+ formatDate,
380
+ generateDateRange,
381
+ isDateComplete,
382
+ displayFormattedDate,
383
+ selectedDates,
384
+ isFormatting,
385
+ isManualInputActive,
386
+ isUpdatingFromInternal,
387
+ clearValidation,
388
+ validateField,
389
+ updateModel,
390
+ emitInput,
391
+ inputRef,
392
+ })
393
+
394
+ updateSelectedDatesFromFormattedValue('01/01/2023')
395
+
396
+ expect(Array.isArray(selectedDates.value)).toBe(true)
397
+ const dates = selectedDates.value as (Date | null)[]
398
+ expect(dates[0]).toBeInstanceOf(Date)
399
+ expect(dates[1]).toBeNull()
400
+ })
401
+
402
+ it('updateSelectedDatesFromFormattedValue in range mode with invalid value clears selection', () => {
403
+ const format = 'DD/MM/YYYY'
404
+
405
+ const displayFormattedDate = ref('')
406
+ const selectedDates = ref<DateObjectValue>([new Date(), null])
407
+ const isFormatting = ref(false)
408
+ const isManualInputActive = ref(true)
409
+ const isUpdatingFromInternal = ref(false)
410
+ const clearValidation = vi.fn()
411
+ const validateField = vi.fn()
412
+ const updateModel = vi.fn()
413
+ const emitInput = vi.fn()
414
+ const inputRef = ref<ComponentPublicInstance | null>(null)
415
+
416
+ const { updateSelectedDatesFromFormattedValue } = useInputHandler({
417
+ format,
418
+ displayRange: true,
419
+ dateFormatReturn: undefined,
420
+ disableErrorHandling: false,
421
+ parseDate,
422
+ formatDate,
423
+ generateDateRange,
424
+ isDateComplete,
425
+ displayFormattedDate,
426
+ selectedDates,
427
+ isFormatting,
428
+ isManualInputActive,
429
+ isUpdatingFromInternal,
430
+ clearValidation,
431
+ validateField,
432
+ updateModel,
433
+ emitInput,
434
+ inputRef,
435
+ })
436
+
437
+ updateSelectedDatesFromFormattedValue('invalid')
438
+ expect(selectedDates.value).toBeNull()
439
+ })
440
+
441
+ it('updateSelectedDatesFromFormattedValue in single mode sets a single Date or null', () => {
442
+ const format = 'DD/MM/YYYY'
443
+
444
+ const displayFormattedDate = ref('')
445
+ const selectedDates = ref<DateObjectValue>(null)
446
+ const isFormatting = ref(false)
447
+ const isManualInputActive = ref(true)
448
+ const isUpdatingFromInternal = ref(false)
449
+ const clearValidation = vi.fn()
450
+ const validateField = vi.fn()
451
+ const updateModel = vi.fn()
452
+ const emitInput = vi.fn()
453
+ const inputRef = ref<ComponentPublicInstance | null>(null)
454
+
455
+ const { updateSelectedDatesFromFormattedValue } = useInputHandler({
456
+ format,
457
+ displayRange: false,
458
+ dateFormatReturn: undefined,
459
+ disableErrorHandling: false,
460
+ parseDate,
461
+ formatDate,
462
+ generateDateRange,
463
+ isDateComplete,
464
+ displayFormattedDate,
465
+ selectedDates,
466
+ isFormatting,
467
+ isManualInputActive,
468
+ isUpdatingFromInternal,
469
+ clearValidation,
470
+ validateField,
471
+ updateModel,
472
+ emitInput,
473
+ inputRef,
474
+ })
475
+
476
+ updateSelectedDatesFromFormattedValue('01/01/2023')
477
+ expect(selectedDates.value).toBeInstanceOf(Date)
478
+
479
+ updateSelectedDatesFromFormattedValue('invalid')
480
+ expect(selectedDates.value).toBeNull()
481
+ })
482
+
483
+ it('updateModelFromSelectedDates with no dates clears the model', () => {
484
+ const format = 'DD/MM/YYYY'
485
+
486
+ const displayFormattedDate = ref('')
487
+ const selectedDates = ref<DateObjectValue>(null)
488
+ const isFormatting = ref(false)
489
+ const isManualInputActive = ref(true)
490
+ const isUpdatingFromInternal = ref(false)
491
+ const clearValidation = vi.fn()
492
+ const validateField = vi.fn()
493
+ const updateModel = vi.fn()
494
+ const emitInput = vi.fn()
495
+ const inputRef = ref<ComponentPublicInstance | null>(null)
496
+
497
+ const { updateModelFromSelectedDates } = useInputHandler({
498
+ format,
499
+ displayRange: true,
500
+ dateFormatReturn: undefined,
501
+ disableErrorHandling: false,
502
+ parseDate,
503
+ formatDate,
504
+ generateDateRange,
505
+ isDateComplete,
506
+ displayFormattedDate,
507
+ selectedDates,
508
+ isFormatting,
509
+ isManualInputActive,
510
+ isUpdatingFromInternal,
511
+ clearValidation,
512
+ validateField,
513
+ updateModel,
514
+ emitInput,
515
+ inputRef,
516
+ })
517
+
518
+ updateModelFromSelectedDates()
519
+ expect(updateModel).toHaveBeenCalledWith(null)
520
+ expect(validateField).not.toHaveBeenCalled()
521
+ })
522
+
523
+ it('handleInput does nothing when already formatting', () => {
524
+ const format = 'DD/MM/YYYY'
525
+
526
+ const displayFormattedDate = ref('')
527
+ const selectedDates = ref<DateObjectValue>(null)
528
+ const isFormatting = ref(true)
529
+ const isManualInputActive = ref(true)
530
+ const isUpdatingFromInternal = ref(false)
531
+ const clearValidation = vi.fn()
532
+ const validateField = vi.fn()
533
+ const updateModel = vi.fn()
534
+ const emitInput = vi.fn()
535
+ const inputRef = ref<ComponentPublicInstance | null>(null)
536
+
537
+ const { handleInput } = useInputHandler({
538
+ format,
539
+ displayRange: false,
540
+ dateFormatReturn: undefined,
541
+ disableErrorHandling: false,
542
+ parseDate,
543
+ formatDate,
544
+ generateDateRange,
545
+ isDateComplete,
546
+ displayFormattedDate,
547
+ selectedDates,
548
+ isFormatting,
549
+ isManualInputActive,
550
+ isUpdatingFromInternal,
551
+ clearValidation,
552
+ validateField,
553
+ updateModel,
554
+ emitInput,
555
+ inputRef,
556
+ })
557
+
558
+ const event = {} as Event
559
+ handleInput(event)
560
+
561
+ // Aucun traitement ne doit avoir lieu
562
+ expect(updateModel).not.toHaveBeenCalled()
563
+ expect(emitInput).not.toHaveBeenCalled()
564
+ expect(isFormatting.value).toBe(true)
565
+ })
566
+
567
+ it('handleInput does nothing when manual input is disabled', () => {
568
+ const format = 'DD/MM/YYYY'
569
+
570
+ const displayFormattedDate = ref('')
571
+ const selectedDates = ref<DateObjectValue>(null)
572
+ const isFormatting = ref(false)
573
+ const isManualInputActive = ref(false)
574
+ const isUpdatingFromInternal = ref(false)
575
+ const clearValidation = vi.fn()
576
+ const validateField = vi.fn()
577
+ const updateModel = vi.fn()
578
+ const emitInput = vi.fn()
579
+ const inputRef = ref<ComponentPublicInstance | null>(null)
580
+
581
+ const { handleInput } = useInputHandler({
582
+ format,
583
+ displayRange: false,
584
+ dateFormatReturn: undefined,
585
+ disableErrorHandling: false,
586
+ parseDate,
587
+ formatDate,
588
+ generateDateRange,
589
+ isDateComplete,
590
+ displayFormattedDate,
591
+ selectedDates,
592
+ isFormatting,
593
+ isManualInputActive,
594
+ isUpdatingFromInternal,
595
+ clearValidation,
596
+ validateField,
597
+ updateModel,
598
+ emitInput,
599
+ inputRef,
600
+ })
601
+
602
+ const event = {} as Event
603
+ handleInput(event)
604
+
605
+ // Aucun traitement ne doit avoir lieu
606
+ expect(updateModel).not.toHaveBeenCalled()
607
+ expect(emitInput).not.toHaveBeenCalled()
608
+ expect(isFormatting.value).toBe(false)
609
+ })
610
+
611
+ it('updateCursorPosition positionne le curseur dans les bornes et focus l’input', () => {
612
+ const format = 'DD/MM/YYYY'
613
+
614
+ const displayFormattedDate = ref('')
615
+ const selectedDates = ref<DateObjectValue>(null)
616
+ const isFormatting = ref(false)
617
+ const isManualInputActive = ref(true)
618
+ const isUpdatingFromInternal = ref(false)
619
+ const clearValidation = vi.fn()
620
+ const validateField = vi.fn()
621
+ const updateModel = vi.fn()
622
+ const emitInput = vi.fn()
623
+ const inputRef = ref<ComponentPublicInstance | null>(null)
624
+
625
+ const { updateCursorPosition } = useInputHandler({
626
+ format,
627
+ displayRange: false,
628
+ dateFormatReturn: undefined,
629
+ disableErrorHandling: false,
630
+ parseDate,
631
+ formatDate,
632
+ generateDateRange,
633
+ isDateComplete,
634
+ displayFormattedDate,
635
+ selectedDates,
636
+ isFormatting,
637
+ isManualInputActive,
638
+ isUpdatingFromInternal,
639
+ clearValidation,
640
+ validateField,
641
+ updateModel,
642
+ emitInput,
643
+ inputRef,
644
+ })
645
+
646
+ vi.useFakeTimers()
647
+ const inputElement = document.createElement('input')
648
+ inputElement.value = '12345'
649
+
650
+ const setSelectionRangeSpy = vi.spyOn(inputElement, 'setSelectionRange')
651
+ const focusSpy = vi.spyOn(inputElement, 'focus')
652
+
653
+ // Demander une position au-delà de la longueur, elle doit être clampée
654
+ updateCursorPosition(inputElement, 10)
655
+ vi.runAllTimers()
656
+
657
+ expect(setSelectionRangeSpy).toHaveBeenCalledWith(5, 5)
658
+ expect(focusSpy).toHaveBeenCalled()
659
+ vi.useRealTimers()
660
+ })
661
+
662
+ it('updateCursorPosition ne fait rien si l’élément input est null', () => {
663
+ const format = 'DD/MM/YYYY'
664
+
665
+ const displayFormattedDate = ref('')
666
+ const selectedDates = ref<DateObjectValue>(null)
667
+ const isFormatting = ref(false)
668
+ const isManualInputActive = ref(true)
669
+ const isUpdatingFromInternal = ref(false)
670
+ const clearValidation = vi.fn()
671
+ const validateField = vi.fn()
672
+ const updateModel = vi.fn()
673
+ const emitInput = vi.fn()
674
+ const inputRef = ref<ComponentPublicInstance | null>(null)
675
+
676
+ const { updateCursorPosition } = useInputHandler({
677
+ format,
678
+ displayRange: false,
679
+ dateFormatReturn: undefined,
680
+ disableErrorHandling: false,
681
+ parseDate,
682
+ formatDate,
683
+ generateDateRange,
684
+ isDateComplete,
685
+ displayFormattedDate,
686
+ selectedDates,
687
+ isFormatting,
688
+ isManualInputActive,
689
+ isUpdatingFromInternal,
690
+ clearValidation,
691
+ validateField,
692
+ updateModel,
693
+ emitInput,
694
+ inputRef,
695
+ })
696
+
697
+ // Ne doit pas lever d’erreur ni faire quoi que ce soit de spécial
698
+ updateCursorPosition(null, 5)
699
+ })
700
+
701
+ it('formatRangeInput formate correctement en éditant la première ou la seconde partie', () => {
702
+ const format = 'DD/MM/YYYY'
703
+
704
+ const displayFormattedDate = ref('')
705
+ const selectedDates = ref<DateObjectValue>(null)
706
+ const isFormatting = ref(false)
707
+ const isManualInputActive = ref(true)
708
+ const isUpdatingFromInternal = ref(false)
709
+ const clearValidation = vi.fn()
710
+ const validateField = vi.fn()
711
+ const updateModel = vi.fn()
712
+ const emitInput = vi.fn()
713
+ const inputRef = ref<ComponentPublicInstance | null>(null)
714
+
715
+ const { formatRangeInput } = useInputHandler({
716
+ format,
717
+ displayRange: true,
718
+ dateFormatReturn: undefined,
719
+ disableErrorHandling: false,
720
+ parseDate,
721
+ formatDate,
722
+ generateDateRange,
723
+ isDateComplete,
724
+ displayFormattedDate,
725
+ selectedDates,
726
+ isFormatting,
727
+ isManualInputActive,
728
+ isUpdatingFromInternal,
729
+ clearValidation,
730
+ validateField,
731
+ updateModel,
732
+ emitInput,
733
+ inputRef,
734
+ })
735
+
736
+ // Édition de la première partie
737
+ const valueWithRange = '01/01/2023 - 02/01/2023'
738
+ const firstPartCursorPos = 3 // au milieu de la première date
739
+ const { formattedInput: formattedFirst, newCursorPos: newPosFirst } = formatRangeInput(valueWithRange, firstPartCursorPos)
740
+ const [firstPartAfter, secondPartAfter] = formattedFirst.split(' - ')
741
+ // La seconde partie doit rester inchangée
742
+ expect(secondPartAfter).toBe('02/01/2023')
743
+ // Le curseur doit rester dans la première partie
744
+ expect(newPosFirst).toBeLessThanOrEqual(firstPartAfter.length)
745
+
746
+ // Édition de la seconde partie
747
+ const cursorInSecondPart = valueWithRange.length
748
+ const { formattedInput: formattedSecond, newCursorPos: newPosSecond } = formatRangeInput(valueWithRange, cursorInSecondPart)
749
+ const [firstPartAfterSecond] = formattedSecond.split(' - ')
750
+ // La première partie doit rester inchangée
751
+ expect(firstPartAfterSecond).toBe('01/01/2023')
752
+ // Le curseur doit se trouver dans la seconde partie
753
+ expect(newPosSecond).toBeGreaterThan(firstPartAfterSecond.length)
754
+ })
755
+ })