@cnamts/synapse 1.0.10 → 1.0.12

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 (393) hide show
  1. package/dist/{DateFilter-C0wDuzgn.js → DateFilter-DoCcOfDW.js} +1 -1
  2. package/dist/{NumberFilter-CBj7zdOi.js → NumberFilter-9uR8uo6p.js} +1 -1
  3. package/dist/{PeriodFilter-DB4wWyKy.js → PeriodFilter-CxN5ini7.js} +1 -1
  4. package/dist/{SelectFilter-Dces8572.js → SelectFilter-bfxipgvt.js} +1 -1
  5. package/dist/{TextFilter-BU9nlkuS.js → TextFilter-yCnWcmW2.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAccordion/AmeliproAccordion.d.ts +6 -2
  7. package/dist/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.d.ts +11 -0
  8. package/dist/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.d.ts +6 -2
  9. package/dist/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.d.ts +9 -0
  10. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +12 -30
  11. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +18 -0
  12. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +9 -0
  13. package/dist/components/Amelipro/AmeliproFooter/locales.d.ts +0 -1
  14. package/dist/components/Amelipro/AmeliproFooter/types.d.ts +1 -0
  15. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +2 -0
  16. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +6 -2
  17. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +8 -4
  18. package/dist/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.d.ts +2 -0
  19. package/dist/components/Amelipro/AmeliproResultList/AmeliproResultList.d.ts +9 -0
  20. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +11 -11
  21. package/dist/components/Amelipro/AmeliproTable/AmeliproTable.d.ts +13 -0
  22. package/dist/components/Amelipro/AmeliproTable/types.d.ts +11 -0
  23. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +12 -12
  24. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +2 -2
  25. package/dist/components/Amelipro/AmeliproUpload/types.d.ts +10 -0
  26. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +16 -16
  27. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +1 -1
  28. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +6 -6
  29. package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
  30. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +52 -16
  31. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +52 -10
  32. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +8 -13
  33. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +2 -1
  34. package/dist/components/DatePicker/tests/setup.d.ts +464 -104
  35. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +6 -6
  36. package/dist/components/LangBtn/LangBtn.d.ts +2 -2
  37. package/dist/components/NirField/NirField.d.ts +10 -8
  38. package/dist/components/PeriodField/PeriodField.d.ts +104 -24
  39. package/dist/components/PhoneField/PhoneField.d.ts +3 -3
  40. package/dist/components/SearchListField/SearchListField.d.ts +13 -4
  41. package/dist/components/SyTextArea/SyTextArea.d.ts +2 -2
  42. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +5 -8
  43. package/dist/components/Tables/SyTable/SyTable.d.ts +5 -8
  44. package/dist/components/Tables/common/SyTablePagination.d.ts +7 -7
  45. package/dist/components/Tables/common/TableHeader.d.ts +6 -0
  46. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +2 -2
  47. package/dist/components/Tables/common/types.d.ts +11 -0
  48. package/dist/components/Tables/common/usePagination.d.ts +3 -4
  49. package/dist/components/Tables/common/useTableCheckbox.d.ts +10 -6
  50. package/dist/components/Tables/common/useTableHeaders.d.ts +10 -20
  51. package/dist/design-system-v3.js +1 -1
  52. package/dist/design-system-v3.umd.cjs +160 -160
  53. package/dist/main-DMXtXK3y.js +33458 -0
  54. package/dist/style.css +1 -1
  55. package/dist/utils/amelipro/rules/uploadFile/index.d.ts +6 -0
  56. package/dist/utils/amelipro/toKebabCase/toKebabCase.d.ts +1 -0
  57. package/dist/utils/rules/isRequired/index.d.ts +5 -2
  58. package/dist/utils/rules/types.d.ts +12 -3
  59. package/package.json +12 -3
  60. package/src/assets/amelipro/img/bg-pieces-jointe.svg +28 -0
  61. package/src/assets/overrides/_btns.scss +1 -0
  62. package/src/assets/overrides/_forms.scss +7 -0
  63. package/src/components/Accordion/tests/accordion.spec.ts +0 -55
  64. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordion.stories.ts +7 -4
  65. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordion.vue +2 -0
  66. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/AmeliproAccordionTemplate.spec.ts +0 -4
  67. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +0 -4
  68. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +1 -0
  69. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/AmeliproAccordionFrieze.spec.ts +0 -4
  70. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +574 -112
  71. package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/AmeliproAccordionGroup.spec.ts +0 -4
  72. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.stories.ts +11 -2
  73. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +7 -2
  74. package/src/components/Amelipro/AmeliproAccordionList/__tests__/AmeliproAccordionList.spec.ts +0 -4
  75. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +13 -2
  76. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.stories.ts +6 -3
  77. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.vue +2 -0
  78. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/AmeliproAccordionResultTemplate.spec.ts +0 -4
  79. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/AmeliproAccordionResult.spec.ts +0 -4
  80. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.stories.ts +11 -2
  81. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +7 -2
  82. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/AmeliproAccordionResultList.spec.ts +0 -4
  83. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +13 -2
  84. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +1 -1
  85. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +277 -55
  86. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +113 -233
  87. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +0 -4
  88. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +0 -4
  89. package/src/components/Amelipro/AmeliproBtn/__tests__/AmeliproBtn.spec.ts +478 -0
  90. package/src/components/Amelipro/AmeliproBtn/__tests__/__snapshots__/AmeliproBtn.spec.ts.snap +74 -0
  91. package/src/components/Amelipro/AmeliproCallback/__tests__/AmeliproCallback.spec.ts +100 -0
  92. package/src/components/Amelipro/AmeliproCallback/__tests__/__snapshots__/AmeliproCallback.spec.ts.snap +50 -0
  93. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +0 -4
  94. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +10 -2
  95. package/src/components/Amelipro/AmeliproCard/__tests__/AmeliproCard.spec.ts +402 -0
  96. package/src/components/Amelipro/AmeliproCard/__tests__/__snapshots__/AmeliproCard.spec.ts.snap +106 -0
  97. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.stories.ts +2 -0
  98. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +11 -1
  99. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/__tests__/AmeliproCarouselItem.spec.ts +0 -4
  100. package/src/components/Amelipro/AmeliproCarousel/__tests__/AmeliproCarousel.spec.ts +0 -4
  101. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  102. package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +175 -0
  103. package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +88 -0
  104. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +423 -0
  105. package/src/components/Amelipro/AmeliproCheckboxGroup/{tests → __tests__}/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +112 -78
  106. package/src/components/Amelipro/AmeliproChips/__tests__/AmeliproChips.spec.ts +92 -0
  107. package/src/components/Amelipro/AmeliproChips/__tests__/__snapshots__/AmeliproChips.spec.ts.snap +81 -0
  108. package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.spec.ts +0 -4
  109. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +0 -4
  110. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/AmeliproCopyBtn.spec.ts +0 -4
  111. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +0 -4
  112. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/AmeliproTooth.spec.ts +0 -4
  113. package/src/components/Amelipro/AmeliproDentalChart/tests/AmeliproDentalChart.spec.ts +0 -4
  114. package/src/components/Amelipro/AmeliproDialog/__tests__/AmeliproDialog.spec.ts +257 -0
  115. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +61 -0
  116. package/src/components/Amelipro/AmeliproDisclosure/__tests__/AmeliproDisclosure.spec.ts +79 -0
  117. package/src/components/Amelipro/AmeliproDisclosure/__tests__/__snapshots__/AmeliproDisclosure.spec.ts.snap +89 -0
  118. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +0 -4
  119. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +0 -4
  120. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/AmeliproFirstLogin.spec.ts +0 -2
  121. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +1 -0
  122. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +5 -1
  123. package/src/components/Amelipro/AmeliproFooter/locales.ts +0 -1
  124. package/src/components/Amelipro/AmeliproFooter/tests/AmeliproFooter.spec.ts +0 -4
  125. package/src/components/Amelipro/AmeliproFooter/types.d.ts +1 -0
  126. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.stories.ts +18 -8
  127. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +3 -1
  128. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.vue +3 -0
  129. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue +10 -2
  130. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/AmeliproHeaderBrandSection.spec.ts +0 -4
  131. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +2 -3
  132. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproLogoAm/tests/AmeliproLogoAm.spec.ts +0 -4
  133. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/AmeliproHeaderBar.spec.ts +0 -4
  134. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/__snapshots__/AmeliproHeaderBar.spec.ts.snap +2 -3
  135. package/src/components/Amelipro/AmeliproHeader/tests/AmeliproHeader.spec.ts +0 -4
  136. package/src/components/Amelipro/AmeliproHeader/tests/__snapshots__/AmeliproHeader.spec.ts.snap +2 -3
  137. package/src/components/Amelipro/AmeliproIcon/tests/AmeliproIcon.spec.ts +0 -4
  138. package/src/components/Amelipro/AmeliproIconBtn/tests/AmeliproIconBtn.spec.ts +0 -4
  139. package/src/components/Amelipro/AmeliproIllustratedDataTile/tests/AmeliproIllustratedDataTile.spec.ts +0 -4
  140. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/tests/AmeliproIllustratedRadioGroup.spec.ts +0 -4
  141. package/src/components/Amelipro/AmeliproMailTile/tests/AmeliproMailTile.spec.ts +0 -4
  142. package/src/components/Amelipro/AmeliproMenu/tests/AmeliproMenu.spec.ts +0 -2
  143. package/src/components/Amelipro/AmeliproMessage/tests/AmeliproMessage.spec.ts +0 -4
  144. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenuBtn/tests/AmeliproDropdownMenuBtn.spec.ts +0 -4
  145. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/tests/AmeliproDropdownMenu.spec.ts +0 -4
  146. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingMenuBtn/tests/AmeliproMessagingMenuBtn.spec.ts +0 -4
  147. package/src/components/Amelipro/AmeliproMessagingLayout/tests/AmeliproMessagingLayout.spec.ts +0 -4
  148. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -4
  149. package/src/components/Amelipro/AmeliproNumberedCard/tests/AmeliproNumberedCard.spec.ts +0 -4
  150. package/src/components/Amelipro/AmeliproOnboarding/tests/AmeliproOnboarding.spec.ts +0 -4
  151. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.stories.ts +9 -2
  152. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.vue +4 -1
  153. package/src/components/Amelipro/AmeliproPageLayout/tests/AmeliproPageLayout.spec.ts +0 -4
  154. package/src/components/Amelipro/AmeliproPageLayout/tests/__snapshots__/AmeliproPageLayout.spec.ts.snap +2 -3
  155. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/tests/AmeliproPaginationBtn.spec.ts +0 -4
  156. package/src/components/Amelipro/AmeliproPagination/tests/AmeliproPagination.spec.ts +0 -4
  157. package/src/components/Amelipro/AmeliproPatientBanner/tests/AmeliproPatientBanner.spec.ts +0 -4
  158. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +0 -4
  159. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +13 -2
  160. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/__tests__/AmeliproPatientLoginForm.spec.ts +0 -4
  161. package/src/components/Amelipro/AmeliproPatientLogin/__tests__/AmeliproPatientLogin.spec.ts +0 -4
  162. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +0 -4
  163. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +24 -4
  164. package/src/components/Amelipro/AmeliproPostalAddressField/tests/AmeliproPostalAddressField.spec.ts +0 -4
  165. package/src/components/Amelipro/AmeliproPostalAddressField/tests/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +40 -8
  166. package/src/components/Amelipro/AmeliproRadioGroup/tests/AmeliproRadioGroup.spec.ts +0 -4
  167. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.stories.ts +6 -0
  168. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +5 -1
  169. package/src/components/Amelipro/AmeliproResultList/__tests__/AmeliproResultList.spec.ts +0 -4
  170. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +13 -2
  171. package/src/components/Amelipro/AmeliproSelect/tests/AmeliproSelect.spec.ts +0 -4
  172. package/src/components/Amelipro/AmeliproSelect/tests/__snapshots__/AmeliproSelect.spec.ts.snap +13 -2
  173. package/src/components/Amelipro/AmeliproStateTile/tests/AmeliproStateTile.spec.ts +0 -4
  174. package/src/components/Amelipro/AmeliproStatus/tests/AmeliproStatus.spec.ts +0 -4
  175. package/src/components/Amelipro/AmeliproStepper/AmeliproStepBtn/tests/AmeliproStepBtn.spec.ts +0 -4
  176. package/src/components/Amelipro/AmeliproStepper/tests/AmeliproStepper.spec.ts +0 -4
  177. package/src/components/Amelipro/AmeliproTable/AmeliproTable.stories.ts +87 -9
  178. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +144 -62
  179. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +10 -4
  180. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +374 -189
  181. package/src/components/Amelipro/AmeliproTable/types.d.ts +11 -0
  182. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/tests/AmeliproTabBtn.spec.ts +0 -4
  183. package/src/components/Amelipro/AmeliproTabs/tests/AmeliproTabs.spec.ts +0 -4
  184. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +1 -1
  185. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +0 -4
  186. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +10 -2
  187. package/src/components/Amelipro/AmeliproTextField/tests/AmeliproTextField.spec.ts +0 -4
  188. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +10 -2
  189. package/src/components/Amelipro/AmeliproTileBtn/tests/AmeliproTileBtn.spec.ts +0 -4
  190. package/src/components/Amelipro/AmeliproTooltips/tests/AmeliproTooltips.spec.ts +0 -4
  191. package/src/components/Amelipro/AmeliproTransmission/tests/AmeliproTransmission.spec.ts +0 -4
  192. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.mdx +38 -0
  193. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +99 -0
  194. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +714 -0
  195. package/src/components/Amelipro/AmeliproUpload/README.md +66 -0
  196. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +74 -0
  197. package/src/components/Amelipro/AmeliproUpload/types.d.ts +10 -0
  198. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -4
  199. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -4
  200. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -4
  201. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -4
  202. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -4
  203. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -4
  204. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -4
  205. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -4
  206. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -2
  207. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -4
  208. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -4
  209. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -4
  210. package/src/components/BackBtn/BackBtn.vue +2 -1
  211. package/src/components/BackBtn/tests/BackBtn.spec.ts +1 -23
  212. package/src/components/BackToTopBtn/tests/BackToTopBtn.spec.ts +3 -34
  213. package/src/components/ChipList/tests/chipList.spec.ts +0 -38
  214. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +0 -8
  215. package/src/components/ContextualMenu/tests/ContextualMenu.spec.ts +0 -28
  216. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +1 -11
  217. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +0 -16
  218. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.spec.ts +0 -4
  219. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +0 -16
  220. package/src/components/CopyBtn/tests/CopyBtn.spec.ts +0 -31
  221. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +1 -0
  222. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +3 -37
  223. package/src/components/Customs/Selects/SyBtnSelect/tests/SyBtnSelect.spec.ts +0 -28
  224. package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.spec.ts +8 -104
  225. package/src/components/Customs/Selects/SySelect/SySelect.vue +2 -2
  226. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +0 -135
  227. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +1 -1
  228. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -1
  229. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +0 -20
  230. package/src/components/Customs/SyForm/SyForm.mdx +1 -3
  231. package/src/components/Customs/SyForm/SyForm.stories.ts +131 -143
  232. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +0 -2
  233. package/src/components/Customs/SyTextField/SyTextField.vue +27 -5
  234. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +1 -27
  235. package/src/components/DataList/DataListLoading/tests/DataListLoading.spec.ts +0 -4
  236. package/src/components/DataList/tests/DataList.spec.ts +0 -26
  237. package/src/components/DataListGroup/tests/DataListGroup.spec.ts +0 -10
  238. package/src/components/DataListItem/tests/DataListItem.spec.ts +0 -28
  239. package/src/components/DatePicker/CalendarMode/DatePicker.vue +31 -8
  240. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +0 -16
  241. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +4 -34
  242. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +44 -12
  243. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -10
  244. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +2 -2
  245. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -13
  246. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -10
  247. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -52
  248. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +7 -1
  249. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +107 -72
  250. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +6 -6
  251. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +57 -7
  252. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +14 -14
  253. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -543
  254. package/src/components/DatePicker/tests/navigation.regression.spec.ts +74 -0
  255. package/src/components/DatePicker/tests/navigation.simple.spec.ts +137 -0
  256. package/src/components/DiacriticPicker/tests/DiatriticPicker.spec.ts +0 -6
  257. package/src/components/DialogBox/tests/DialogBox.spec.ts +0 -63
  258. package/src/components/DownloadBtn/tests/DownloadBtn.spec.ts +0 -7
  259. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +0 -7
  260. package/src/components/ExternalLinks/tests/ExternalLinks.spec.ts +0 -16
  261. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +1 -0
  262. package/src/components/FileList/tests/FileList.spec.ts +0 -13
  263. package/src/components/FilePreview/tests/FilePreview.spec.ts +1 -6
  264. package/src/components/FileUpload/tests/FileUpload.spec.ts +1 -48
  265. package/src/components/FilterInline/tests/FilterInline.spec.ts +0 -10
  266. package/src/components/FilterSideBar/FilterSideBar.stories.ts +2 -0
  267. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +0 -10
  268. package/src/components/FooterBar/tests/FooterBar.spec.ts +7 -19
  269. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.spec.ts +0 -11
  270. package/src/components/HeaderBar/HeaderBar.stories.ts +37 -38
  271. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/tests/HeaderSubMenu.spec.ts +0 -6
  272. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +0 -6
  273. package/src/components/HeaderBar/HeaderBurgerMenu/tests/useHandleSubMenus.spec.ts +0 -13
  274. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +1 -22
  275. package/src/components/HeaderBar/HeaderMenuBtn/tests/HeaderMenuBtn.spec.ts +0 -10
  276. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +0 -16
  277. package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +0 -4
  278. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +22 -15
  279. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +0 -4
  280. package/src/components/HeaderToolbar/tests/HeaderToolBar.spec.ts +7 -51
  281. package/src/components/LangBtn/tests/LangBtn.spec.ts +0 -56
  282. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +22 -67
  283. package/src/components/NirField/NirField.stories.ts +13 -2
  284. package/src/components/NirField/NirField.vue +69 -34
  285. package/src/components/NirField/tests/NirField.cursor.spec.ts +315 -0
  286. package/src/components/NirField/tests/NirField.spec.ts +215 -17
  287. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +2 -12
  288. package/src/components/NotificationBar/NotificationBar.mdx +1 -1
  289. package/src/components/NotificationBar/NotificationBar.stories.ts +1 -0
  290. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +5 -44
  291. package/src/components/PageContainer/tests/PageContainer.spec.ts +1 -15
  292. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -23
  293. package/src/components/PasswordField/tests/PasswordField.spec.ts +4 -38
  294. package/src/components/PeriodField/tests/PeriodField.spec.ts +4 -74
  295. package/src/components/PhoneField/tests/PhoneField.spec.ts +3 -154
  296. package/src/components/RangeField/RangeSlider/tests/rangeSlider.spec.ts +0 -13
  297. package/src/components/RangeField/RangeSlider/tests/useThumbKeyboard.spec.ts +0 -34
  298. package/src/components/RangeField/RangeSlider/tests/useTrack.spec.ts +4 -24
  299. package/src/components/RangeField/tests/RangeField.spec.ts +0 -34
  300. package/src/components/RatingPicker/EmotionPicker/tests/EmotionPicker.spec.ts +2 -23
  301. package/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.ts +2 -17
  302. package/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.ts +3 -22
  303. package/src/components/RatingPicker/tests/Rating.spec.ts +0 -10
  304. package/src/components/RatingPicker/tests/RatingPicker.spec.ts +0 -23
  305. package/src/components/SearchListField/SearchListField.mdx +3 -4
  306. package/src/components/SearchListField/SearchListField.stories.ts +103 -3
  307. package/src/components/SearchListField/SearchListField.vue +34 -9
  308. package/src/components/SearchListField/tests/SearchListField.spec.ts +98 -44
  309. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +0 -32
  310. package/src/components/SubHeader/tests/SubHeader.spec.ts +0 -18
  311. package/src/components/SyAlert/tests/SyAlert.spec.ts +0 -14
  312. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -31
  313. package/src/components/TableToolbar/tests/TableToolbar.spec.ts +0 -31
  314. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +72 -24
  315. package/src/components/Tables/SyServerTable/SyServerTable.mdx +15 -0
  316. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +309 -0
  317. package/src/components/Tables/SyServerTable/SyServerTable.vue +33 -6
  318. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +67 -58
  319. package/src/components/Tables/SyTable/SyTable.mdx +15 -0
  320. package/src/components/Tables/SyTable/SyTable.stories.ts +228 -0
  321. package/src/components/Tables/SyTable/SyTable.vue +48 -10
  322. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +63 -55
  323. package/src/components/Tables/common/SyTablePagination.vue +11 -9
  324. package/src/components/Tables/common/TableHeader.vue +57 -2
  325. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +0 -11
  326. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +0 -11
  327. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +0 -11
  328. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +0 -11
  329. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +0 -11
  330. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +0 -31
  331. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +0 -49
  332. package/src/components/Tables/common/tests/TableHeader.spec.ts +0 -19
  333. package/src/components/Tables/common/tests/filterByRange.spec.ts +0 -13
  334. package/src/components/Tables/common/tests/resize.spec.ts +0 -13
  335. package/src/components/Tables/common/types.ts +11 -0
  336. package/src/components/Tables/common/usePagination.ts +11 -20
  337. package/src/components/Tables/common/useStoredOptions.ts +1 -1
  338. package/src/components/Tables/common/useTableCheckbox.ts +23 -11
  339. package/src/components/Tables/common/useTableHeaders.ts +73 -6
  340. package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +0 -19
  341. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +0 -15
  342. package/src/components/Usages/tests/Usages.spec.ts +3 -31
  343. package/src/components/UserMenuBtn/tests/UserMenuBtn.spec.ts +0 -31
  344. package/src/composables/useFilterable/useFilterable.ts +33 -24
  345. package/src/composables/validation/{AvecVosComposants.mdx → AvecVosComposants.mdx.old} +1 -1
  346. package/src/composables/validation/{FormValidation.stories.ts → FormValidation.stories.ts.old} +5 -5
  347. package/src/stories/Accessibilite/Introduction.mdx +1 -1
  348. package/src/stories/Demarrer/EnrichirLeDesignSystem.mdx +43 -0
  349. package/src/stories/Demarrer/EnrichirLeDesignSystem.stories.ts +239 -0
  350. package/src/stories/Demarrer/SignalerUneAnomalie.mdx +39 -0
  351. package/src/stories/Demarrer/SignalerUneAnomalie.stories.ts +261 -0
  352. package/src/stories/GuideDuDev/FormValidationGuide.mdx +746 -114
  353. package/src/stories/GuideDuDev/UtiliserLesRules.mdx +138 -136
  354. package/src/utils/amelipro/rules/uploadFile/index.ts +119 -0
  355. package/src/utils/amelipro/rules/uploadFile/tests/uploadFile.spec.ts +55 -0
  356. package/src/utils/amelipro/toKebabCase/toKebabCase.ts +11 -0
  357. package/src/utils/rules/doMatchPattern/index.ts +1 -1
  358. package/src/utils/rules/isDateValid/index.ts +1 -1
  359. package/src/utils/rules/isExactLength/index.ts +4 -0
  360. package/src/utils/rules/isHolidayDay/index.ts +1 -1
  361. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +24 -14
  362. package/src/utils/rules/isMaxLength/index.ts +4 -0
  363. package/src/utils/rules/isMinLength/index.ts +4 -0
  364. package/src/utils/rules/isNotAfterDate/index.ts +4 -0
  365. package/src/utils/rules/isNotAfterToday/index.ts +1 -1
  366. package/src/utils/rules/isNotBeforeDate/index.ts +4 -0
  367. package/src/utils/rules/isNotBeforeToday/index.ts +1 -1
  368. package/src/utils/rules/isRequired/index.ts +11 -5
  369. package/src/utils/rules/isRequired/tests/{isRequred.spec.ts → isRequired.spec.ts} +24 -0
  370. package/src/utils/rules/isValidEmail/index.ts +1 -1
  371. package/src/utils/rules/types.d.ts +12 -3
  372. package/dist/main-Dt4iNotT.js +0 -33147
  373. package/src/components/Amelipro/AmeliproBtn/tests/AmeliproBtn.spec.ts +0 -22
  374. package/src/components/Amelipro/AmeliproBtn/tests/__snapshots__/AmeliproBtn.spec.ts.snap +0 -46
  375. package/src/components/Amelipro/AmeliproCallback/tests/AmeliproCallback.spec.ts +0 -21
  376. package/src/components/Amelipro/AmeliproCallback/tests/__snapshots__/AmeliproCallback.spec.ts.snap +0 -165
  377. package/src/components/Amelipro/AmeliproCard/tests/AmeliproCard.spec.ts +0 -23
  378. package/src/components/Amelipro/AmeliproCard/tests/__snapshots__/AmeliproCard.spec.ts.snap +0 -78
  379. package/src/components/Amelipro/AmeliproCheckbox/tests/AmeliproCheckbox.spec.ts +0 -23
  380. package/src/components/Amelipro/AmeliproCheckbox/tests/__snapshots__/AmeliproCheckbox.spec.ts.snap +0 -40
  381. package/src/components/Amelipro/AmeliproCheckboxGroup/tests/AmeliproCheckboxGroup.spec.ts +0 -50
  382. package/src/components/Amelipro/AmeliproChips/tests/AmeliproChips.spec.ts +0 -20
  383. package/src/components/Amelipro/AmeliproChips/tests/__snapshots__/AmeliproChips.spec.ts.snap +0 -97
  384. package/src/components/Amelipro/AmeliproDialog/tests/AmeliproDialog.spec.ts +0 -26
  385. package/src/components/Amelipro/AmeliproDialog/tests/__snapshots__/AmeliproDialog.spec.ts.snap +0 -134
  386. package/src/components/Amelipro/AmeliproDisclosure/tests/AmeliproDisclosure.spec.ts +0 -23
  387. package/src/components/Amelipro/AmeliproDisclosure/tests/__snapshots__/AmeliproDisclosure.spec.ts.snap +0 -104
  388. package/src/components/BackBtn/tests/__snapshots__/BackBtn.spec.ts.snap +0 -45
  389. package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +0 -204
  390. package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +0 -1222
  391. package/src/stories/Demarrer/CreerUneIssue.mdx +0 -67
  392. package/src/stories/Demarrer/components.stories.ts +0 -25
  393. /package/src/composables/validation/{FormValidation.mdx → FormValidation.mdx.old} +0 -0
@@ -0,0 +1,66 @@
1
+ # AmeliproUpload
2
+
3
+ Composant Vue destiné à la sélection et à la gestion de fichiers à téléverser (upload) dans un formulaire.
4
+
5
+ ## Principes de fonctionnement
6
+
7
+ - **Stockage local** : Le composant ne réalise pas le téléversement lui-même. Il se contente de stocker les fichiers sélectionnés, qui seront ensuite transmis au formulaire parent pour traitement.
8
+ - **Événements** : Un événement `update:model-value` est émis à chaque modification de la liste interne des fichiers (ajout ou suppression). Lors d’un ajout multiple, un seul événement est émis pour l’ensemble des fichiers importés.
9
+ - **Validation à l’import** : Tout fichier ajouté doit respecter l’ensemble des règles de validation définies (type, taille, nombre maximum, non-duplication, etc.). La non-duplication s’applique aussi bien vis-à-vis des fichiers déjà présents que des fichiers ajoutés en double lors d’une même importation.
10
+ - **Suppression** : La suppression d’un fichier retire simplement ce fichier de la liste interne et émet l’événement `update:model-value`. Elle ne déclenche pas de revalidation des fichiers restants.
11
+ - **Pas de revalidation globale** : Les fichiers déjà présents et validés ne sont jamais revalidés lors d’une suppression ou d’une modification qui ne les concerne pas.
12
+ - **Gestion des erreurs et messages** : Les messages d’erreur affichés lors de l’import ou du rejet de fichiers sont personnalisables via la prop `errorMessages` et l’utilisation des règles (rules) fournies dans `src/utils/amelipro/rules/uploadFile`. Il est recommandé d’utiliser ces règles pour garantir la cohérence des messages et la personnalisation attendue.
13
+
14
+ ## Résumé du cycle de vie
15
+
16
+ 1. **Ajout de fichiers**
17
+ - Chaque fichier ajouté est validé individuellement selon les règles définies (voir limitation ci-dessous).
18
+ - Les fichiers déjà présents ou en doublon dans l’import sont rejetés avec un message adapté (voir limitation ci-dessous).
19
+ - Les fichiers valides sont ajoutés à la liste interne.
20
+ - Un seul événement `update:model-value` est émis avec la nouvelle liste complète.
21
+
22
+ 2. **Suppression de fichiers**
23
+ - Le fichier sélectionné est retiré de la liste interne.
24
+ - Aucun autre fichier n’est revalidé.
25
+ - Un événement `update:model-value` est émis avec la nouvelle liste.
26
+
27
+ ## Gestion des fichiers entrants
28
+
29
+ ### Gestion de la liste temporaire pour la validation
30
+
31
+ Le composant utilise une variable temporaire (ex : `pendingFiles` ou `tempFiles`) qui contient la liste des fichiers en temps réel (fichiers déjà présents + ceux en cours d’ajout). Cette liste sert à appliquer les règles de validation (doublons, limite de nombre, format…) avant de mettre à jour la liste principale. Les règles s’appuient sur cette liste pour garantir que l’ajout respecte toutes les contraintes.
32
+
33
+ ### Avec mise à jour des fichiers
34
+
35
+ La liste interne des fichiers (`filesModel`) est mise à jour de plusieurs manières :
36
+
37
+ - via la prop `value` au chargement du composant
38
+ - via la prop `value` suite à une modification manuelle extérieure
39
+ - via une modification du v-model `fileInputModel` lié à `VFileInput`
40
+ - via glisser-déposer de fichiers dans le container qui encapsule le composant VFileInput
41
+
42
+ ### Sans mise à jour des fichiers
43
+
44
+ Dans certains cas, il faut ignorer les modifications entrantes, par exemple pour ne pas réémettre d'événement au risque de créer une boucle infinie.
45
+
46
+ La liste des fichiers ne doit pas être mise à jour si :
47
+
48
+ - la prop `value` est modifiée suite à un événement émis par le composant lui-même, entrainant une mise à jour du v-model du composant parent. Ce cas peut être identifié en comparant les fichiers entrants aux fichiers qui viennent d'être émis.
49
+
50
+ > **Remarque** : Pour éviter toute boucle de synchronisation, il est conseillé de comparer la liste entrante (`value`) à la liste interne (`filesModel`) avant toute mise à jour. Si les deux listes sont identiques (même nom, taille, type pour chaque fichier), la modification doit être ignorée.
51
+
52
+ > **Bonnes pratiques** : Toujours vérifier l’origine de la modification (interne vs externe) avant de mettre à jour la liste des fichiers, et n’émettre l’événement `update:model-value` qu’en cas de modification effective.
53
+
54
+ ## Bonnes pratiques
55
+
56
+ - Utiliser ce composant dans un formulaire parent qui gère le téléversement effectif des fichiers.
57
+ - Définir clairement les règles de validation attendues via les props du composant, en utilisant de préférence les règles utilitaires fournies (`fileUploadMaxFileNumberRule`, `fileUploadDuplicationRule`, etc.) pour bénéficier de la personnalisation des messages d’erreur.
58
+ - Ne pas manipuler directement la liste interne de fichiers depuis l’extérieur : passer par les événements et le v-model.
59
+
60
+ ## Limitations connues et points d’attention
61
+
62
+ - **Gestion des doublons** : Si l’utilisateur tente d’ajouter un fichier déjà présent dans la liste, un message d’avertissement explicite est affiché et le fichier n’est pas ajouté.
63
+ - **Personnalisation des messages d’erreur** : Si la logique d’import ne s’appuie pas sur les règles utilitaires (ex : `fileUploadMaxFileNumberRule`), la personnalisation des messages via la prop `errorMessages` ne sera pas effective. Il est donc essentiel de toujours utiliser ces règles pour la validation.
64
+ - **Aucune revalidation sur suppression** : La suppression d’un fichier ne déclenche jamais de revalidation des autres fichiers déjà présents.
65
+ - **Revalidation à la suppression** : Lorsqu’un fichier est supprimé, une revalidation est effectuée pour appliquer les règles globales (par exemple, la règle "required" si elle est activée). Les autres fichiers déjà présents ne sont pas revalidés individuellement, mais les règles s’appliquant à l’ensemble de la liste sont réévaluées.
66
+ - **Un seul événement par action** : L’événement `update:model-value` n’est émis qu’en cas de modification effective de la liste (ajout ou suppression réelle).
@@ -0,0 +1,74 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { VueWrapper, shallowMount } from '@vue/test-utils'
3
+ import { beforeEach, describe, expect, it } from 'vitest'
4
+ import AmeliproUpload from '../AmeliproUpload.vue'
5
+ import type { ComponentProps } from 'vue-component-type-helpers'
6
+
7
+ const requiredPropValues = (): ComponentProps<typeof AmeliproUpload> => ({
8
+ fileTypeAccepted: ['text/plain'],
9
+ uniqueId: 'required-unique-id',
10
+ })
11
+
12
+ const defaultPropValues = (): ComponentProps<typeof AmeliproUpload> => ({
13
+ ...requiredPropValues(),
14
+ ariaRequired: false,
15
+ disabled: false,
16
+ errorMessages: undefined,
17
+ errorTitle: undefined,
18
+ externalErrors: [],
19
+ inputLabel: 'Cliquer sur ce bouton pour joindre vos documents ou les glisser-déposer directement dans ce cadre',
20
+ maxFileNumber: 1,
21
+ rules: [],
22
+ value: [],
23
+ warningRules: [],
24
+ warningTitle: undefined,
25
+ })
26
+
27
+ const modifiedPropValues = (): ComponentProps<typeof AmeliproUpload> => ({
28
+ ariaRequired: true,
29
+ disabled: true,
30
+ errorMessages: { error: 'Modified error message' },
31
+ fileTypeAccepted: ['modified-type-1', 'modified-type-2'],
32
+ inputLabel: 'Modified input label',
33
+ maxFileNumber: 3,
34
+ value: [new File(['foo'], 'modified-file.txt')],
35
+ rules: [() => true],
36
+ uniqueId: 'modified-unique-id',
37
+ })
38
+
39
+ describe('AmeliproUpload', () => {
40
+ describe('Setting props should update attributes of inner tags', () => {
41
+ let wrapper: VueWrapper<any>
42
+ beforeEach(() => {
43
+ wrapper = shallowMount(AmeliproUpload, { props: requiredPropValues() })
44
+ })
45
+
46
+ it('prop uniqueId sets attribute id on root container', async () => {
47
+ expect(wrapper.attributes('id')).toBe(`${defaultPropValues().uniqueId}-container`)
48
+ const { uniqueId } = modifiedPropValues()
49
+ await wrapper.setProps({ uniqueId })
50
+ expect(wrapper.attributes('id')).toBe(`${modifiedPropValues().uniqueId}-container`)
51
+ })
52
+ })
53
+
54
+ describe('Setting props should update props or attributes of inner components', () => {
55
+ let wrapper: VueWrapper<any>
56
+ beforeEach(() => {
57
+ wrapper = shallowMount(AmeliproUpload, { props: requiredPropValues() })
58
+ })
59
+
60
+ it('prop disabled sets prop disabled on VFileInput', async () => {
61
+ expect(wrapper.findComponent({ name: 'VFileInput' }).props('disabled')).toBe(defaultPropValues().disabled)
62
+ const { disabled } = modifiedPropValues()
63
+ await wrapper.setProps({ disabled })
64
+ expect(wrapper.findComponent({ name: 'VFileInput' }).props('disabled')).toBe(modifiedPropValues().disabled)
65
+ })
66
+
67
+ it('prop ariaRequired sets attribute aria-required on VFileInput', async () => {
68
+ expect(wrapper.findComponent({ name: 'VFileInput' }).attributes('aria-required')).toBe(String(defaultPropValues().ariaRequired))
69
+ const { ariaRequired } = modifiedPropValues()
70
+ await wrapper.setProps({ ariaRequired })
71
+ expect(wrapper.findComponent({ name: 'VFileInput' }).attributes('aria-required')).toBe(String(modifiedPropValues().ariaRequired))
72
+ })
73
+ })
74
+ })
@@ -0,0 +1,10 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export interface ErrorBucket {
3
+ fileName?: File['name']
4
+ errors: string[]
5
+ }
6
+
7
+ export type Registrable = {
8
+ register: (field: any) => void
9
+ unregister: (field: any) => void
10
+ }
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import ServiceBtn from '../ServiceBtn.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('ServiceBtn', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(ServiceBtn, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  iconBgColor: 'ap-blue',
14
10
  iconHoverBgColor: 'ap-yellow',
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import ServiceList from '../ServiceList.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('ServiceList', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(ServiceList, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  items: [
14
10
  {
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import ServiceMenuContent from '../ServiceMenuContent.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('ServiceMenuContent', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(ServiceMenuContent, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  servicesPs: [
14
10
  {
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import ServiceMenu from '../ServiceMenu.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('ServiceMenu', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(ServiceMenu, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  modelValue: true,
14
10
  servicesPs: [
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import StructureBtn from '../StructureBtn.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('StructureBtn', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(StructureBtn, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  controls: 'control-id',
14
10
  tabindex: 0,
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import StructureItem from '../StructureItem.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('StructureItem', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(StructureItem, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  groupName: 'group-name',
14
10
  item: {
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import StructureList from '../StructureList.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('StructureList', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(StructureList, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  label: 'mon label',
14
10
  name: 'my-name',
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import StructureTabs from '../StructureTabs.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('StructureTabs', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(StructureTabs, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  ariaLabel: 'mon label',
14
10
  tabs: [
@@ -1,13 +1,11 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import StructureMenu from '../StructureMenu.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('StructureMenu', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(StructureMenu, {
9
8
  global: {
10
- plugins: [vuetify],
11
9
  stubs: {
12
10
  VDialog: {
13
11
  template: '<div><slot></slot></div>',
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import UserInformationSummary from '../UserInformationSummary.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('UserInformationSummary', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(UserInformationSummary, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  uniqueId: 'user-information-summary-id',
14
10
  userInformationSummaryInfos: {
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import UserMenuDetails from '../UserMenuDetails.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('UserMenuDetails', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(UserMenuDetails, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  uniqueId: 'user-information-summary-id',
14
10
  UserMenuDetailsInfos: {
@@ -1,14 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import UserMenu from '../UserMenu.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
 
6
5
  describe('UserMenu', () => {
7
6
  it('render correctly', async () => {
8
7
  const wrapper = mount(UserMenu, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
8
  props: {
13
9
  lastConnexion: '24/04/2025',
14
10
  uniqueId: 'user-information-summary-id',
@@ -31,7 +31,8 @@
31
31
  :variant="buttonVariant"
32
32
  :theme="buttonTheme"
33
33
  :color="buttonColor"
34
- :class="['sy-back-btn', 'text-none', buttonClasses, `bg-${buttonBgColor}`]"
34
+ :class="['sy-back-btn', 'text-none', buttonClasses]"
35
+ :style="{ backgroundColor: buttonBgColor }"
35
36
  >
36
37
  <slot name="icon">
37
38
  <VIcon
@@ -1,29 +1,22 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { expect, describe, it } from 'vitest'
3
3
  import BackBtn from '../BackBtn.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
  import { VIcon, VBtn } from 'vuetify/components'
6
5
 
7
6
  describe('BackBtn', () => {
8
7
  it('render correctly', async () => {
9
8
  const wrapper = mount(BackBtn, {
10
- global: {
11
- plugins: [vuetify],
12
- },
13
9
  component: {
14
10
  VIcon,
15
11
  VBtn,
16
12
  },
17
13
  })
18
14
 
19
- expect(wrapper.html()).toMatchSnapshot()
15
+ expect(wrapper.exists()).toBe(true)
20
16
  })
21
17
 
22
18
  it('hides back icon when hideBackIcon is true', () => {
23
19
  const wrapper = mount(BackBtn, {
24
- global: {
25
- plugins: [vuetify],
26
- },
27
20
  component: {
28
21
  VIcon,
29
22
  VBtn,
@@ -35,9 +28,6 @@ describe('BackBtn', () => {
35
28
 
36
29
  it('applies correct button classes based on props', () => {
37
30
  const wrapper = mount(BackBtn, {
38
- global: {
39
- plugins: [vuetify],
40
- },
41
31
  component: {
42
32
  VIcon,
43
33
  VBtn,
@@ -49,9 +39,6 @@ describe('BackBtn', () => {
49
39
 
50
40
  it('applies correct button classes when dark is true and hideBackIcon is false', () => {
51
41
  const wrapper = mount(BackBtn, {
52
- global: {
53
- plugins: [vuetify],
54
- },
55
42
  component: {
56
43
  VIcon,
57
44
  VBtn,
@@ -62,9 +49,6 @@ describe('BackBtn', () => {
62
49
  })
63
50
  it('returns false when dark prop is not provided', () => {
64
51
  const wrapper = mount(BackBtn, {
65
- global: {
66
- plugins: [vuetify],
67
- },
68
52
  component: {
69
53
  VIcon,
70
54
  VBtn,
@@ -75,9 +59,6 @@ describe('BackBtn', () => {
75
59
 
76
60
  it('returns true when dark prop is true', () => {
77
61
  const wrapper = mount(BackBtn, {
78
- global: {
79
- plugins: [vuetify],
80
- },
81
62
  component: {
82
63
  VIcon,
83
64
  VBtn,
@@ -89,9 +70,6 @@ describe('BackBtn', () => {
89
70
 
90
71
  it('returns false when dark prop is false', () => {
91
72
  const wrapper = mount(BackBtn, {
92
- global: {
93
- plugins: [vuetify],
94
- },
95
73
  component: {
96
74
  VIcon,
97
75
  VBtn,
@@ -2,7 +2,6 @@ import { describe, it, expect, vi, afterEach } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
3
 
4
4
  import BackToTopBtn from '../BackToTopBtn.vue'
5
- import { vuetify } from '@tests/unit/setup'
6
5
 
7
6
  describe('BackToTopBtn', () => {
8
7
  afterEach(() => {
@@ -11,20 +10,13 @@ describe('BackToTopBtn', () => {
11
10
  })
12
11
 
13
12
  it('renders correctly', () => {
14
- const wrapper = mount(BackToTopBtn, {
15
- global: {
16
- plugins: [vuetify],
17
- },
18
- })
13
+ const wrapper = mount(BackToTopBtn)
19
14
 
20
15
  expect(wrapper.html()).toMatchSnapshot()
21
16
  })
22
17
 
23
18
  it('renders correctly when nudgeBottom and nudgeRight are set to invalid values', () => {
24
19
  const wrapper = mount(BackToTopBtn, {
25
- global: {
26
- plugins: [vuetify],
27
- },
28
20
  props: {
29
21
  nudgeBottom: '',
30
22
  nudgeRight: '',
@@ -39,9 +31,6 @@ describe('BackToTopBtn', () => {
39
31
  vi.spyOn(window, 'scrollY', 'get').mockReturnValue(0)
40
32
 
41
33
  const wrapper = mount(BackToTopBtn, {
42
- global: {
43
- plugins: [vuetify],
44
- },
45
34
  attachTo: document.body,
46
35
  })
47
36
 
@@ -76,9 +65,6 @@ describe('BackToTopBtn', () => {
76
65
  props: {
77
66
  target: 'test-target',
78
67
  },
79
- global: {
80
- plugins: [vuetify],
81
- },
82
68
  attachTo: document.body,
83
69
  })
84
70
 
@@ -106,9 +92,6 @@ describe('BackToTopBtn', () => {
106
92
  vi.spyOn(window, 'scrollY', 'get').mockReturnValue(0)
107
93
 
108
94
  const wrapper = mount(BackToTopBtn, {
109
- global: {
110
- plugins: [vuetify],
111
- },
112
95
  attachTo: document.body,
113
96
  })
114
97
 
@@ -138,11 +121,7 @@ describe('BackToTopBtn', () => {
138
121
  })
139
122
 
140
123
  it('scrolls to the top when the button is clicked', async () => {
141
- const wrapper = mount(BackToTopBtn, {
142
- global: {
143
- plugins: [vuetify],
144
- },
145
- })
124
+ const wrapper = mount(BackToTopBtn)
146
125
 
147
126
  const scrollToSpy = vi
148
127
  .spyOn(window, 'scrollTo')
@@ -155,9 +134,6 @@ describe('BackToTopBtn', () => {
155
134
 
156
135
  it('scrolls to the top when the button is clicked and the target is a custom element', async () => {
157
136
  const wrapper = mount(BackToTopBtn, {
158
- global: {
159
- plugins: [vuetify],
160
- },
161
137
  propsData: {
162
138
  target: 'test',
163
139
  },
@@ -176,9 +152,6 @@ describe('BackToTopBtn', () => {
176
152
 
177
153
  it('scrolls to the top when the button is clicked and the target is a custom element that does not exist', async () => {
178
154
  const wrapper = mount(BackToTopBtn, {
179
- global: {
180
- plugins: [vuetify],
181
- },
182
155
  propsData: {
183
156
  target: 'test',
184
157
  },
@@ -196,11 +169,7 @@ describe('BackToTopBtn', () => {
196
169
  })
197
170
 
198
171
  it('remove the scroll event listener when the component is destroyed', async () => {
199
- const wrapper = mount(BackToTopBtn, {
200
- global: {
201
- plugins: [vuetify],
202
- },
203
- })
172
+ const wrapper = mount(BackToTopBtn)
204
173
 
205
174
  const removeEventListenerSpy = vi.spyOn(window, 'removeEventListener')
206
175
 
@@ -1,16 +1,8 @@
1
1
  import { describe, it, expect } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
- import { createVuetify } from 'vuetify'
4
- import * as components from 'vuetify/components'
5
- import * as directives from 'vuetify/directives'
6
3
  import ChipList from '../ChipList.vue'
7
4
  import type { ChipItem, ChipState } from '../types'
8
5
 
9
- const vuetify = createVuetify({
10
- components,
11
- directives,
12
- })
13
-
14
6
  describe('ChipList', () => {
15
7
  const defaultItems: ChipItem[] = [
16
8
  {
@@ -31,9 +23,6 @@ describe('ChipList', () => {
31
23
  props: {
32
24
  items: defaultItems,
33
25
  },
34
- global: {
35
- plugins: [vuetify],
36
- },
37
26
  })
38
27
 
39
28
  // Vérifie que tous les items sont rendus
@@ -81,9 +70,6 @@ describe('ChipList', () => {
81
70
  items,
82
71
  overflowLimit: 6, // Augmenté pour voir tous les chips
83
72
  },
84
- global: {
85
- plugins: [vuetify],
86
- },
87
73
  })
88
74
 
89
75
  // Vérifie les classes d'état
@@ -106,9 +92,6 @@ describe('ChipList', () => {
106
92
  props: {
107
93
  items: defaultItems,
108
94
  },
109
- global: {
110
- plugins: [vuetify],
111
- },
112
95
  })
113
96
 
114
97
  const successChip = wrapper.find('.sy-chip-success')
@@ -125,9 +108,6 @@ describe('ChipList', () => {
125
108
  items: defaultItems,
126
109
  readonly: true,
127
110
  },
128
- global: {
129
- plugins: [vuetify],
130
- },
131
111
  })
132
112
 
133
113
  const removeButtons = wrapper.findAll('.remove-chip')
@@ -158,9 +138,6 @@ describe('ChipList', () => {
158
138
  items: manyItems,
159
139
  overflowLimit: 3,
160
140
  },
161
- global: {
162
- plugins: [vuetify],
163
- },
164
141
  })
165
142
 
166
143
  // Vérifie que le nombre de chips visibles est correct
@@ -181,9 +158,6 @@ describe('ChipList', () => {
181
158
  props: {
182
159
  items: defaultItems,
183
160
  },
184
- global: {
185
- plugins: [vuetify],
186
- },
187
161
  })
188
162
 
189
163
  // Test de l'événement remove
@@ -206,9 +180,6 @@ describe('ChipList', () => {
206
180
  items: defaultItems,
207
181
  resetText: customResetText,
208
182
  },
209
- global: {
210
- plugins: [vuetify],
211
- },
212
183
  })
213
184
 
214
185
  const resetButton = wrapper.find('[data-test-id="reset-btn"]')
@@ -221,9 +192,6 @@ describe('ChipList', () => {
221
192
  props: {
222
193
  items: defaultItems,
223
194
  },
224
- global: {
225
- plugins: [vuetify],
226
- },
227
195
  })
228
196
 
229
197
  // Vérifie la présence de la structure HTML native
@@ -245,9 +213,6 @@ describe('ChipList', () => {
245
213
  props: {
246
214
  items: [],
247
215
  },
248
- global: {
249
- plugins: [vuetify],
250
- },
251
216
  })
252
217
 
253
218
  expect(wrapper.find('.vd-chip-list').exists()).toBe(false)
@@ -283,9 +248,6 @@ describe('ChipList', () => {
283
248
  readonly,
284
249
  overflowLimit: 3,
285
250
  },
286
- global: {
287
- plugins: [vuetify],
288
- },
289
251
  })
290
252
 
291
253
  // Vérifie la présence des boutons de suppression
@@ -3,14 +3,9 @@ import { expect, describe, it } from 'vitest'
3
3
 
4
4
  import CollapsibleList from '../CollapsibleList.vue'
5
5
 
6
- import { vuetify } from '@tests/unit/setup'
7
-
8
6
  describe('CollapsibleList', () => {
9
7
  it('renders correctly', async () => {
10
8
  const wrapper = mount(CollapsibleList, {
11
- global: {
12
- plugins: [vuetify],
13
- },
14
9
  propsData: {
15
10
  listTitle: 'Santé',
16
11
  items: [
@@ -34,9 +29,6 @@ describe('CollapsibleList', () => {
34
29
 
35
30
  it('renders correctly with in mobile mode', () => {
36
31
  const wrapper = mount(CollapsibleList, {
37
- global: {
38
- plugins: [vuetify],
39
- },
40
32
  propsData: {
41
33
  listTitle: 'Santé',
42
34
  items: [