@cnamts/synapse 1.0.10 → 1.0.11

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 (338) hide show
  1. package/dist/{DateFilter-C0wDuzgn.js → DateFilter-QEfKOz0P.js} +1 -1
  2. package/dist/{NumberFilter-CBj7zdOi.js → NumberFilter-C0h7gVzp.js} +1 -1
  3. package/dist/{PeriodFilter-DB4wWyKy.js → PeriodFilter-8dVrKjju.js} +1 -1
  4. package/dist/{SelectFilter-Dces8572.js → SelectFilter-BI3QGbqb.js} +1 -1
  5. package/dist/{TextFilter-BU9nlkuS.js → TextFilter-UOp1hcPp.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.d.ts +9 -0
  7. package/dist/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.d.ts +9 -0
  8. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +6 -24
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +18 -0
  10. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +9 -0
  11. package/dist/components/Amelipro/AmeliproFooter/locales.d.ts +0 -1
  12. package/dist/components/Amelipro/AmeliproFooter/types.d.ts +1 -0
  13. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +2 -0
  14. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +6 -2
  15. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +8 -4
  16. package/dist/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.d.ts +2 -0
  17. package/dist/components/Amelipro/AmeliproResultList/AmeliproResultList.d.ts +9 -0
  18. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +5 -5
  19. package/dist/components/Amelipro/AmeliproTable/AmeliproTable.d.ts +9 -0
  20. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +6 -6
  21. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +2 -2
  22. package/dist/components/Amelipro/AmeliproUpload/types.d.ts +10 -0
  23. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +2 -2
  24. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +1 -1
  25. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +3 -3
  26. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1 -1
  27. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +12 -12
  28. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +6 -6
  29. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +3 -3
  30. package/dist/components/DatePicker/tests/setup.d.ts +96 -96
  31. package/dist/components/LangBtn/LangBtn.d.ts +2 -2
  32. package/dist/components/NirField/NirField.d.ts +6 -6
  33. package/dist/components/PeriodField/PeriodField.d.ts +24 -24
  34. package/dist/components/PhoneField/PhoneField.d.ts +3 -3
  35. package/dist/components/SearchListField/SearchListField.d.ts +10 -1
  36. package/dist/components/SyTextArea/SyTextArea.d.ts +2 -2
  37. package/dist/components/Tables/common/SyTablePagination.d.ts +4 -4
  38. package/dist/components/Tables/common/TableHeader.d.ts +6 -0
  39. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +2 -2
  40. package/dist/components/Tables/common/types.d.ts +7 -0
  41. package/dist/components/Tables/common/useTableHeaders.d.ts +10 -20
  42. package/dist/design-system-v3.js +1 -1
  43. package/dist/design-system-v3.umd.cjs +266 -266
  44. package/dist/main-DyEOPqqn.js +33329 -0
  45. package/dist/style.css +1 -1
  46. package/dist/utils/amelipro/rules/uploadFile/index.d.ts +6 -0
  47. package/dist/utils/amelipro/toKebabCase/toKebabCase.d.ts +1 -0
  48. package/dist/utils/rules/isRequired/index.d.ts +5 -2
  49. package/dist/utils/rules/types.d.ts +12 -3
  50. package/package.json +12 -3
  51. package/src/assets/amelipro/img/bg-pieces-jointe.svg +28 -0
  52. package/src/assets/overrides/_btns.scss +1 -0
  53. package/src/assets/overrides/_forms.scss +5 -0
  54. package/src/components/Accordion/tests/accordion.spec.ts +0 -55
  55. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/AmeliproAccordionTemplate.spec.ts +0 -4
  56. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +0 -4
  57. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/AmeliproAccordionFrieze.spec.ts +0 -4
  58. package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/AmeliproAccordionGroup.spec.ts +0 -4
  59. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.stories.ts +6 -0
  60. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +5 -1
  61. package/src/components/Amelipro/AmeliproAccordionList/__tests__/AmeliproAccordionList.spec.ts +0 -4
  62. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +13 -2
  63. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/AmeliproAccordionResultTemplate.spec.ts +0 -4
  64. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/AmeliproAccordionResult.spec.ts +0 -4
  65. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.stories.ts +6 -0
  66. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +5 -1
  67. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/AmeliproAccordionResultList.spec.ts +0 -4
  68. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +13 -2
  69. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +1 -1
  70. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +277 -55
  71. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +113 -233
  72. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +0 -4
  73. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +0 -4
  74. package/src/components/Amelipro/AmeliproBtn/__tests__/AmeliproBtn.spec.ts +478 -0
  75. package/src/components/Amelipro/AmeliproBtn/__tests__/__snapshots__/AmeliproBtn.spec.ts.snap +74 -0
  76. package/src/components/Amelipro/AmeliproCallback/__tests__/AmeliproCallback.spec.ts +100 -0
  77. package/src/components/Amelipro/AmeliproCallback/__tests__/__snapshots__/AmeliproCallback.spec.ts.snap +50 -0
  78. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +0 -4
  79. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +10 -2
  80. package/src/components/Amelipro/AmeliproCard/__tests__/AmeliproCard.spec.ts +402 -0
  81. package/src/components/Amelipro/AmeliproCard/__tests__/__snapshots__/AmeliproCard.spec.ts.snap +106 -0
  82. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.stories.ts +2 -0
  83. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +11 -1
  84. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/__tests__/AmeliproCarouselItem.spec.ts +0 -4
  85. package/src/components/Amelipro/AmeliproCarousel/__tests__/AmeliproCarousel.spec.ts +0 -4
  86. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  87. package/src/components/Amelipro/AmeliproCheckbox/tests/AmeliproCheckbox.spec.ts +0 -4
  88. package/src/components/Amelipro/AmeliproCheckboxGroup/tests/AmeliproCheckboxGroup.spec.ts +0 -4
  89. package/src/components/Amelipro/AmeliproChips/tests/AmeliproChips.spec.ts +0 -4
  90. package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.spec.ts +0 -4
  91. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +0 -4
  92. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/AmeliproCopyBtn.spec.ts +0 -4
  93. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +0 -4
  94. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/AmeliproTooth.spec.ts +0 -4
  95. package/src/components/Amelipro/AmeliproDentalChart/tests/AmeliproDentalChart.spec.ts +0 -4
  96. package/src/components/Amelipro/AmeliproDialog/tests/AmeliproDialog.spec.ts +0 -2
  97. package/src/components/Amelipro/AmeliproDisclosure/tests/AmeliproDisclosure.spec.ts +0 -4
  98. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +0 -4
  99. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +0 -4
  100. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/AmeliproFirstLogin.spec.ts +0 -2
  101. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +1 -0
  102. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +5 -1
  103. package/src/components/Amelipro/AmeliproFooter/locales.ts +0 -1
  104. package/src/components/Amelipro/AmeliproFooter/tests/AmeliproFooter.spec.ts +0 -4
  105. package/src/components/Amelipro/AmeliproFooter/types.d.ts +1 -0
  106. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.stories.ts +18 -8
  107. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +3 -1
  108. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.vue +3 -0
  109. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue +10 -2
  110. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/AmeliproHeaderBrandSection.spec.ts +0 -4
  111. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +2 -3
  112. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproLogoAm/tests/AmeliproLogoAm.spec.ts +0 -4
  113. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/AmeliproHeaderBar.spec.ts +0 -4
  114. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/__snapshots__/AmeliproHeaderBar.spec.ts.snap +2 -3
  115. package/src/components/Amelipro/AmeliproHeader/tests/AmeliproHeader.spec.ts +0 -4
  116. package/src/components/Amelipro/AmeliproHeader/tests/__snapshots__/AmeliproHeader.spec.ts.snap +2 -3
  117. package/src/components/Amelipro/AmeliproIcon/tests/AmeliproIcon.spec.ts +0 -4
  118. package/src/components/Amelipro/AmeliproIconBtn/tests/AmeliproIconBtn.spec.ts +0 -4
  119. package/src/components/Amelipro/AmeliproIllustratedDataTile/tests/AmeliproIllustratedDataTile.spec.ts +0 -4
  120. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/tests/AmeliproIllustratedRadioGroup.spec.ts +0 -4
  121. package/src/components/Amelipro/AmeliproMailTile/tests/AmeliproMailTile.spec.ts +0 -4
  122. package/src/components/Amelipro/AmeliproMenu/tests/AmeliproMenu.spec.ts +0 -2
  123. package/src/components/Amelipro/AmeliproMessage/tests/AmeliproMessage.spec.ts +0 -4
  124. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenuBtn/tests/AmeliproDropdownMenuBtn.spec.ts +0 -4
  125. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/tests/AmeliproDropdownMenu.spec.ts +0 -4
  126. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingMenuBtn/tests/AmeliproMessagingMenuBtn.spec.ts +0 -4
  127. package/src/components/Amelipro/AmeliproMessagingLayout/tests/AmeliproMessagingLayout.spec.ts +0 -4
  128. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -4
  129. package/src/components/Amelipro/AmeliproNumberedCard/tests/AmeliproNumberedCard.spec.ts +0 -4
  130. package/src/components/Amelipro/AmeliproOnboarding/tests/AmeliproOnboarding.spec.ts +0 -4
  131. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.stories.ts +9 -2
  132. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.vue +4 -1
  133. package/src/components/Amelipro/AmeliproPageLayout/tests/AmeliproPageLayout.spec.ts +0 -4
  134. package/src/components/Amelipro/AmeliproPageLayout/tests/__snapshots__/AmeliproPageLayout.spec.ts.snap +2 -3
  135. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/tests/AmeliproPaginationBtn.spec.ts +0 -4
  136. package/src/components/Amelipro/AmeliproPagination/tests/AmeliproPagination.spec.ts +0 -4
  137. package/src/components/Amelipro/AmeliproPatientBanner/tests/AmeliproPatientBanner.spec.ts +0 -4
  138. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +0 -4
  139. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +13 -2
  140. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/__tests__/AmeliproPatientLoginForm.spec.ts +0 -4
  141. package/src/components/Amelipro/AmeliproPatientLogin/__tests__/AmeliproPatientLogin.spec.ts +0 -4
  142. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +0 -4
  143. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +24 -4
  144. package/src/components/Amelipro/AmeliproPostalAddressField/tests/AmeliproPostalAddressField.spec.ts +0 -4
  145. package/src/components/Amelipro/AmeliproPostalAddressField/tests/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +40 -8
  146. package/src/components/Amelipro/AmeliproRadioGroup/tests/AmeliproRadioGroup.spec.ts +0 -4
  147. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.stories.ts +6 -0
  148. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +5 -1
  149. package/src/components/Amelipro/AmeliproResultList/__tests__/AmeliproResultList.spec.ts +0 -4
  150. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +13 -2
  151. package/src/components/Amelipro/AmeliproSelect/tests/AmeliproSelect.spec.ts +0 -4
  152. package/src/components/Amelipro/AmeliproSelect/tests/__snapshots__/AmeliproSelect.spec.ts.snap +13 -2
  153. package/src/components/Amelipro/AmeliproStateTile/tests/AmeliproStateTile.spec.ts +0 -4
  154. package/src/components/Amelipro/AmeliproStatus/tests/AmeliproStatus.spec.ts +0 -4
  155. package/src/components/Amelipro/AmeliproStepper/AmeliproStepBtn/tests/AmeliproStepBtn.spec.ts +0 -4
  156. package/src/components/Amelipro/AmeliproStepper/tests/AmeliproStepper.spec.ts +0 -4
  157. package/src/components/Amelipro/AmeliproTable/AmeliproTable.stories.ts +6 -0
  158. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +5 -1
  159. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +0 -4
  160. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +13 -2
  161. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/tests/AmeliproTabBtn.spec.ts +0 -4
  162. package/src/components/Amelipro/AmeliproTabs/tests/AmeliproTabs.spec.ts +0 -4
  163. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +1 -1
  164. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +0 -4
  165. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +10 -2
  166. package/src/components/Amelipro/AmeliproTextField/tests/AmeliproTextField.spec.ts +0 -4
  167. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +10 -2
  168. package/src/components/Amelipro/AmeliproTileBtn/tests/AmeliproTileBtn.spec.ts +0 -4
  169. package/src/components/Amelipro/AmeliproTooltips/tests/AmeliproTooltips.spec.ts +0 -4
  170. package/src/components/Amelipro/AmeliproTransmission/tests/AmeliproTransmission.spec.ts +0 -4
  171. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.mdx +38 -0
  172. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +99 -0
  173. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +714 -0
  174. package/src/components/Amelipro/AmeliproUpload/README.md +66 -0
  175. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +74 -0
  176. package/src/components/Amelipro/AmeliproUpload/types.d.ts +10 -0
  177. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -4
  178. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -4
  179. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -4
  180. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -4
  181. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -4
  182. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -4
  183. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -4
  184. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -4
  185. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -2
  186. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -4
  187. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -4
  188. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -4
  189. package/src/components/BackBtn/BackBtn.vue +2 -1
  190. package/src/components/BackBtn/tests/BackBtn.spec.ts +1 -23
  191. package/src/components/BackToTopBtn/tests/BackToTopBtn.spec.ts +3 -34
  192. package/src/components/ChipList/tests/chipList.spec.ts +0 -38
  193. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +0 -8
  194. package/src/components/ContextualMenu/tests/ContextualMenu.spec.ts +0 -28
  195. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +1 -11
  196. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +0 -16
  197. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.spec.ts +0 -4
  198. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +0 -16
  199. package/src/components/CopyBtn/tests/CopyBtn.spec.ts +0 -31
  200. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +1 -0
  201. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +3 -37
  202. package/src/components/Customs/Selects/SyBtnSelect/tests/SyBtnSelect.spec.ts +0 -28
  203. package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.spec.ts +8 -104
  204. package/src/components/Customs/Selects/SySelect/SySelect.vue +2 -2
  205. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +0 -135
  206. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +1 -1
  207. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -1
  208. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +0 -20
  209. package/src/components/Customs/SyForm/SyForm.mdx +1 -3
  210. package/src/components/Customs/SyForm/SyForm.stories.ts +131 -143
  211. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +0 -2
  212. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +1 -27
  213. package/src/components/DataList/DataListLoading/tests/DataListLoading.spec.ts +0 -4
  214. package/src/components/DataList/tests/DataList.spec.ts +0 -26
  215. package/src/components/DataListGroup/tests/DataListGroup.spec.ts +0 -10
  216. package/src/components/DataListItem/tests/DataListItem.spec.ts +0 -28
  217. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +0 -16
  218. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +4 -34
  219. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -10
  220. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -13
  221. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -10
  222. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -52
  223. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -543
  224. package/src/components/DiacriticPicker/tests/DiatriticPicker.spec.ts +0 -6
  225. package/src/components/DialogBox/tests/DialogBox.spec.ts +0 -63
  226. package/src/components/DownloadBtn/tests/DownloadBtn.spec.ts +0 -7
  227. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +0 -7
  228. package/src/components/ExternalLinks/tests/ExternalLinks.spec.ts +0 -16
  229. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +1 -0
  230. package/src/components/FileList/tests/FileList.spec.ts +0 -13
  231. package/src/components/FilePreview/tests/FilePreview.spec.ts +1 -6
  232. package/src/components/FileUpload/tests/FileUpload.spec.ts +1 -48
  233. package/src/components/FilterInline/tests/FilterInline.spec.ts +0 -10
  234. package/src/components/FilterSideBar/FilterSideBar.stories.ts +2 -0
  235. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +0 -10
  236. package/src/components/FooterBar/tests/FooterBar.spec.ts +7 -19
  237. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.spec.ts +0 -11
  238. package/src/components/HeaderBar/HeaderBar.stories.ts +37 -38
  239. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/tests/HeaderSubMenu.spec.ts +0 -6
  240. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +0 -6
  241. package/src/components/HeaderBar/HeaderBurgerMenu/tests/useHandleSubMenus.spec.ts +0 -13
  242. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +1 -22
  243. package/src/components/HeaderBar/HeaderMenuBtn/tests/HeaderMenuBtn.spec.ts +0 -10
  244. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +0 -16
  245. package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +0 -4
  246. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +22 -15
  247. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +0 -4
  248. package/src/components/HeaderToolbar/tests/HeaderToolBar.spec.ts +7 -51
  249. package/src/components/LangBtn/tests/LangBtn.spec.ts +0 -56
  250. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +22 -67
  251. package/src/components/NirField/NirField.stories.ts +2 -0
  252. package/src/components/NirField/NirField.vue +48 -25
  253. package/src/components/NirField/tests/NirField.cursor.spec.ts +315 -0
  254. package/src/components/NirField/tests/NirField.spec.ts +215 -17
  255. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +2 -12
  256. package/src/components/NotificationBar/NotificationBar.mdx +1 -1
  257. package/src/components/NotificationBar/NotificationBar.stories.ts +1 -0
  258. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +5 -44
  259. package/src/components/PageContainer/tests/PageContainer.spec.ts +1 -15
  260. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -23
  261. package/src/components/PasswordField/tests/PasswordField.spec.ts +4 -38
  262. package/src/components/PeriodField/tests/PeriodField.spec.ts +4 -74
  263. package/src/components/PhoneField/tests/PhoneField.spec.ts +3 -154
  264. package/src/components/RangeField/RangeSlider/tests/rangeSlider.spec.ts +0 -13
  265. package/src/components/RangeField/RangeSlider/tests/useThumbKeyboard.spec.ts +0 -34
  266. package/src/components/RangeField/RangeSlider/tests/useTrack.spec.ts +4 -24
  267. package/src/components/RangeField/tests/RangeField.spec.ts +0 -31
  268. package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +78 -30
  269. package/src/components/RatingPicker/EmotionPicker/tests/EmotionPicker.spec.ts +2 -23
  270. package/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.ts +2 -17
  271. package/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.ts +3 -22
  272. package/src/components/RatingPicker/tests/Rating.spec.ts +0 -10
  273. package/src/components/RatingPicker/tests/RatingPicker.spec.ts +0 -23
  274. package/src/components/SearchListField/SearchListField.mdx +3 -4
  275. package/src/components/SearchListField/SearchListField.stories.ts +103 -3
  276. package/src/components/SearchListField/SearchListField.vue +34 -9
  277. package/src/components/SearchListField/tests/SearchListField.spec.ts +98 -44
  278. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +0 -32
  279. package/src/components/SubHeader/tests/SubHeader.spec.ts +0 -18
  280. package/src/components/SyAlert/tests/SyAlert.spec.ts +0 -14
  281. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -31
  282. package/src/components/TableToolbar/tests/TableToolbar.spec.ts +0 -31
  283. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +72 -24
  284. package/src/components/Tables/SyServerTable/SyServerTable.vue +15 -3
  285. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +0 -58
  286. package/src/components/Tables/SyTable/SyTable.vue +30 -7
  287. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +0 -55
  288. package/src/components/Tables/common/SyTablePagination.vue +1 -1
  289. package/src/components/Tables/common/TableHeader.vue +57 -2
  290. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +0 -11
  291. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +0 -11
  292. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +0 -11
  293. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +0 -11
  294. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +0 -11
  295. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +0 -31
  296. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +0 -49
  297. package/src/components/Tables/common/tests/TableHeader.spec.ts +0 -19
  298. package/src/components/Tables/common/tests/filterByRange.spec.ts +0 -13
  299. package/src/components/Tables/common/tests/resize.spec.ts +0 -13
  300. package/src/components/Tables/common/types.ts +7 -0
  301. package/src/components/Tables/common/useStoredOptions.ts +1 -1
  302. package/src/components/Tables/common/useTableHeaders.ts +73 -6
  303. package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +0 -19
  304. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +0 -15
  305. package/src/components/Usages/tests/Usages.spec.ts +3 -31
  306. package/src/components/UserMenuBtn/tests/UserMenuBtn.spec.ts +0 -31
  307. package/src/composables/useFilterable/useFilterable.ts +33 -24
  308. package/src/stories/GuideDuDev/FormValidationGuide.mdx +746 -114
  309. package/src/stories/GuideDuDev/UtiliserLesRules.mdx +138 -136
  310. package/src/utils/amelipro/rules/uploadFile/index.ts +119 -0
  311. package/src/utils/amelipro/rules/uploadFile/tests/uploadFile.spec.ts +55 -0
  312. package/src/utils/amelipro/toKebabCase/toKebabCase.ts +11 -0
  313. package/src/utils/rules/doMatchPattern/index.ts +1 -1
  314. package/src/utils/rules/isDateValid/index.ts +1 -1
  315. package/src/utils/rules/isExactLength/index.ts +4 -0
  316. package/src/utils/rules/isHolidayDay/index.ts +1 -1
  317. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +24 -14
  318. package/src/utils/rules/isMaxLength/index.ts +4 -0
  319. package/src/utils/rules/isMinLength/index.ts +4 -0
  320. package/src/utils/rules/isNotAfterDate/index.ts +4 -0
  321. package/src/utils/rules/isNotAfterToday/index.ts +1 -1
  322. package/src/utils/rules/isNotBeforeDate/index.ts +4 -0
  323. package/src/utils/rules/isNotBeforeToday/index.ts +1 -1
  324. package/src/utils/rules/isRequired/index.ts +11 -5
  325. package/src/utils/rules/isRequired/tests/{isRequred.spec.ts → isRequired.spec.ts} +24 -0
  326. package/src/utils/rules/isValidEmail/index.ts +1 -1
  327. package/src/utils/rules/types.d.ts +12 -3
  328. package/dist/main-Dt4iNotT.js +0 -33147
  329. package/src/components/Amelipro/AmeliproBtn/tests/AmeliproBtn.spec.ts +0 -22
  330. package/src/components/Amelipro/AmeliproBtn/tests/__snapshots__/AmeliproBtn.spec.ts.snap +0 -46
  331. package/src/components/Amelipro/AmeliproCallback/tests/AmeliproCallback.spec.ts +0 -21
  332. package/src/components/Amelipro/AmeliproCallback/tests/__snapshots__/AmeliproCallback.spec.ts.snap +0 -165
  333. package/src/components/Amelipro/AmeliproCard/tests/AmeliproCard.spec.ts +0 -23
  334. package/src/components/Amelipro/AmeliproCard/tests/__snapshots__/AmeliproCard.spec.ts.snap +0 -78
  335. package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +0 -204
  336. /package/src/composables/validation/{AvecVosComposants.mdx → AvecVosComposants.mdx.old} +0 -0
  337. /package/src/composables/validation/{FormValidation.mdx → FormValidation.mdx.old} +0 -0
  338. /package/src/composables/validation/{FormValidation.stories.ts → FormValidation.stories.ts.old} +0 -0
@@ -1,7 +1,5 @@
1
1
  import { describe, it, expect } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
- import { vuetify } from '@tests/unit/setup'
4
-
5
3
  import RatingPicker from '../RatingPicker.vue'
6
4
  import { RatingEnum } from '../Rating'
7
5
  import NumberPicker from '../NumberPicker/NumberPicker.vue'
@@ -14,9 +12,6 @@ import { locales } from '../locales'
14
12
  describe('RatingPicker', () => {
15
13
  it('renders correctly', () => {
16
14
  const wrapper = mount(RatingPicker, {
17
- global: {
18
- plugins: [vuetify],
19
- },
20
15
  stubs: {
21
16
  NumberPicker: {
22
17
  template: '<div />',
@@ -32,9 +27,6 @@ describe('RatingPicker', () => {
32
27
 
33
28
  it('renders with additional content with the NumberPicker', async () => {
34
29
  const wrapper = mount(RatingPicker, {
35
- global: {
36
- plugins: [vuetify],
37
- },
38
30
  stubs: {
39
31
  NumberPicker: {
40
32
  template: '<div />',
@@ -57,9 +49,6 @@ describe('RatingPicker', () => {
57
49
 
58
50
  it('renders with additional content with the StarsPicker', async () => {
59
51
  const wrapper = mount(RatingPicker, {
60
- global: {
61
- plugins: [vuetify],
62
- },
63
52
  stubs: {
64
53
  StarsPicker: {
65
54
  template: '<div />',
@@ -82,9 +71,6 @@ describe('RatingPicker', () => {
82
71
 
83
72
  it('renders with additional content with the EmotionPicker', async () => {
84
73
  const wrapper = mount(RatingPicker, {
85
- global: {
86
- plugins: [vuetify],
87
- },
88
74
  stubs: {
89
75
  EmotionPicker: {
90
76
  template: '<div />',
@@ -107,9 +93,6 @@ describe('RatingPicker', () => {
107
93
 
108
94
  it('renders with additional content with the EmotionPicker when twoEmotions is true', async () => {
109
95
  const wrapper = mount(RatingPicker, {
110
- global: {
111
- plugins: [vuetify],
112
- },
113
96
  stubs: {
114
97
  EmotionPicker: {
115
98
  template: '<div />',
@@ -133,9 +116,6 @@ describe('RatingPicker', () => {
133
116
 
134
117
  it('do not render the additional content when the rating is good', async () => {
135
118
  const wrapper = mount(RatingPicker, {
136
- global: {
137
- plugins: [vuetify],
138
- },
139
119
  stubs: {
140
120
  NumberPicker: {
141
121
  template: '<div />',
@@ -157,9 +137,6 @@ describe('RatingPicker', () => {
157
137
 
158
138
  it('sends the correct values to the EmotionPicker', async () => {
159
139
  const wrapper = mount(RatingPicker, {
160
- global: {
161
- plugins: [vuetify],
162
- },
163
140
  stubs: {
164
141
  EmotionPicker: {
165
142
  template: '<div />',
@@ -54,12 +54,11 @@ import SearchListField from './SearchListField.vue';
54
54
  },
55
55
  ]
56
56
 
57
- const value = ref<string | null>
58
- (null)
57
+ const value = ref<string | null>(null)
59
58
 
60
59
  const selectChoice = (choice: string) => {
61
- value.value = choice
62
- }
60
+ value.value = choice
61
+ }
63
62
  </script>
64
63
 
65
64
  <template>
@@ -1,12 +1,13 @@
1
1
  import type { StoryObj, Meta } from '@storybook/vue3'
2
2
  import SearchListField from './SearchListField.vue'
3
+ import { fn } from '@storybook/test'
3
4
 
4
5
  const meta = {
5
6
  title: 'Composants/Formulaires/SearchListField',
6
7
  component: SearchListField,
7
8
  parameters: {
8
9
  layout: 'fullscreen',
9
- controls: { exclude: ['filteredItems', 'search', 'emitChangeEvent'] },
10
+ controls: { exclude: ['filteredItems', 'search', 'emitChangeEvent', 'onUpdate:modelValue'] },
10
11
  },
11
12
  decorators: [
12
13
  () => ({
@@ -18,6 +19,10 @@ const meta = {
18
19
  default: '[]',
19
20
  },
20
21
  items: { control: { type: 'object' } },
22
+ returnObject: {
23
+ description: 'Si true, retourne l\'objet entier au lieu de la valeur',
24
+ control: 'boolean',
25
+ },
21
26
  },
22
27
  } satisfies Meta<typeof SearchListField>
23
28
 
@@ -30,8 +35,8 @@ type Story = StoryObj<typeof meta>
30
35
  */
31
36
  export const Default: Story = {
32
37
  args: {
33
- modelValue: [],
34
- items: [
38
+ 'modelValue': [],
39
+ 'items': [
35
40
  {
36
41
  label: 'Chirurgien-dentiste',
37
42
  value: 'chirurgien-dentiste',
@@ -57,6 +62,7 @@ export const Default: Story = {
57
62
  value: 'pharmacien',
58
63
  },
59
64
  ],
65
+ 'onUpdate:modelValue': fn(),
60
66
  },
61
67
  render: (args) => {
62
68
  return {
@@ -130,3 +136,97 @@ const items = [
130
136
  ],
131
137
  },
132
138
  }
139
+
140
+ export const WithReturnObject: Story = {
141
+ args: {
142
+ 'modelValue': [],
143
+ 'returnObject': true,
144
+ 'items': [
145
+ {
146
+ label: 'Chirurgien-dentiste',
147
+ value: 'chirurgien-dentiste',
148
+ },
149
+ {
150
+ label: 'Infirmier',
151
+ value: 'infirmier',
152
+ },
153
+ {
154
+ label: 'Orthophoniste',
155
+ value: 'orthophoniste',
156
+ },
157
+ {
158
+ label: 'Orthoptiste',
159
+ value: 'orthoptiste',
160
+ },
161
+ {
162
+ label: 'Pédicure-podologue',
163
+ value: 'pedicure-podologue',
164
+ },
165
+ {
166
+ label: 'Pharmacien',
167
+ value: 'pharmacien',
168
+ },
169
+ ],
170
+ 'onUpdate:modelValue': fn(),
171
+ },
172
+ argTypes: {
173
+ returnObject: { control: false },
174
+ },
175
+ render: (args) => {
176
+ return {
177
+ components: { SearchListField },
178
+ setup() {
179
+ return { args }
180
+ },
181
+ template: `
182
+ <div>
183
+ <SearchListField v-bind="args" v-model="args.modelValue"/>
184
+ <div style="margin-top: 20px;">
185
+ <strong>Valeur(s) sélectionnée(s) :</strong>
186
+ <pre>{{ args.modelValue }}</pre>
187
+ </div>
188
+ </div>
189
+ `,
190
+ }
191
+ },
192
+ parameters: {
193
+ sourceCode: [
194
+ {
195
+ name: 'Template',
196
+ code: `
197
+ <template>
198
+ <SearchListField
199
+ v-model="modelValue"
200
+ :items="items"
201
+ :return-object="true"
202
+ />
203
+ {{ modelValue }}
204
+ </template>
205
+ `,
206
+ },
207
+ {
208
+ name: 'Script',
209
+ code: `
210
+ <script setup lang="ts">
211
+ import { ref } from 'vue'
212
+ import { SearchListField } from '@cnamts/synapse'
213
+
214
+ const modelValue = ref([])
215
+
216
+ const items = [
217
+ {
218
+ label: 'Chirurgien-dentiste',
219
+ value: 'chirurgien-dentiste',
220
+ },
221
+ {
222
+ label: 'Infirmier',
223
+ value: 'infirmier',
224
+ },
225
+ // ... autres objets
226
+ ]
227
+ </script>
228
+ `,
229
+ },
230
+ ],
231
+ },
232
+ }
@@ -24,6 +24,10 @@
24
24
  type: String,
25
25
  default: 'white',
26
26
  },
27
+ returnObject: {
28
+ type: Boolean,
29
+ default: false,
30
+ },
27
31
  })
28
32
 
29
33
  const emit = defineEmits(['update:modelValue'])
@@ -33,6 +37,25 @@
33
37
  const searchIcon = mdiMagnify
34
38
  const checkboxListRef = ref<HTMLElement | null>(null)
35
39
 
40
+ // Helper function for deep equality comparison
41
+ const isEqual = (a: unknown, b: unknown): boolean => {
42
+ if (a === b) return true
43
+ if (a === null || b === null) return false
44
+ if (typeof a !== 'object' || typeof b !== 'object') return false
45
+
46
+ const keysA = Object.keys(a as Record<string, unknown>)
47
+ const keysB = Object.keys(b as Record<string, unknown>)
48
+
49
+ if (keysA.length !== keysB.length) return false
50
+
51
+ for (const key of keysA) {
52
+ if (!keysB.includes(key)) return false
53
+ if (!isEqual((a as Record<string, unknown>)[key], (b as Record<string, unknown>)[key])) return false
54
+ }
55
+
56
+ return true
57
+ }
58
+
36
59
  watch(
37
60
  () => props.modelValue,
38
61
  (newValue) => {
@@ -45,20 +68,22 @@
45
68
  return props.items
46
69
  }
47
70
  const searchLower = search.value.toLowerCase()
48
- return props.items.filter(item =>
49
- item.label.toLowerCase().includes(searchLower),
50
- )
71
+ return props.items.filter((item) => {
72
+ return item.label.toLowerCase().includes(searchLower)
73
+ })
51
74
  })
52
75
 
53
76
  const emitChangeEvent = (value: unknown[]) => {
54
77
  emit('update:modelValue', value)
55
78
  }
56
79
 
57
- const toggleSelection = (itemValue: unknown) => {
80
+ const toggleSelection = (item: SearchListItem) => {
58
81
  const newValue = [...internalValue.value]
59
- const index = newValue.indexOf(itemValue)
82
+ const valueToEmit = props.returnObject ? item : item.value
83
+ const index = newValue.findIndex(value => props.returnObject ? isEqual(value, item) : isEqual(value, item.value))
84
+
60
85
  if (index === -1) {
61
- newValue.push(itemValue)
86
+ newValue.push(valueToEmit)
62
87
  }
63
88
  else {
64
89
  newValue.splice(index, 1)
@@ -130,9 +155,9 @@
130
155
  v-for="(item, index) in filteredItems"
131
156
  :id="`search-list-item-${index}`"
132
157
  :key="index"
133
- :value="item.value"
158
+ :value="props.returnObject ? item : item.value"
134
159
  role="option"
135
- :aria-selected="internalValue.includes(item.value)"
160
+ :aria-selected="internalValue.some(value => props.returnObject ? isEqual(value, item) : isEqual(value, item.value))"
136
161
  :tabindex="0"
137
162
  active-class="text-primary"
138
163
  class="d-flex align-center justify-start mx-4"
@@ -149,7 +174,7 @@
149
174
  hide-details
150
175
  class="ml-2 search-list-checkbox"
151
176
  density="compact"
152
- @click="toggleSelection(item.value)"
177
+ @click="toggleSelection(item)"
153
178
  />
154
179
  </VListItemAction>
155
180
 
@@ -1,20 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import SearchListField from '../SearchListField.vue'
3
- import { describe, it, expect, beforeEach } from 'vitest'
4
- import { createVuetify } from 'vuetify'
3
+ import { describe, it, expect } from 'vitest'
5
4
 
6
5
  describe('SearchListField.vue', () => {
7
- let vuetify
8
-
9
- beforeEach(() => {
10
- vuetify = createVuetify()
11
- })
12
-
13
6
  it('renders the password field', () => {
14
7
  const wrapper = mount(SearchListField, {
15
- global: {
16
- plugins: [vuetify],
17
- },
18
8
  propsData: {
19
9
  items: [
20
10
  {
@@ -34,9 +24,6 @@ describe('SearchListField.vue', () => {
34
24
 
35
25
  it('initial state', () => {
36
26
  const wrapper = mount(SearchListField, {
37
- global: {
38
- plugins: [vuetify],
39
- },
40
27
  propsData: {
41
28
  items: [
42
29
  {
@@ -59,9 +46,6 @@ describe('SearchListField.vue', () => {
59
46
 
60
47
  it('initial state with empty value prop', () => {
61
48
  const wrapper = mount(SearchListField, {
62
- global: {
63
- plugins: [vuetify],
64
- },
65
49
  propsData: {
66
50
  items: [
67
51
  {
@@ -84,9 +68,6 @@ describe('SearchListField.vue', () => {
84
68
 
85
69
  it('selects an item', async () => {
86
70
  const wrapper = mount(SearchListField, {
87
- global: {
88
- plugins: [vuetify],
89
- },
90
71
  propsData: {
91
72
  items: [
92
73
  {
@@ -111,9 +92,6 @@ describe('SearchListField.vue', () => {
111
92
 
112
93
  it('filters items based on search input', async () => {
113
94
  const wrapper = mount(SearchListField, {
114
- global: {
115
- plugins: [vuetify],
116
- },
117
95
  propsData: {
118
96
  items: [
119
97
  {
@@ -142,9 +120,6 @@ describe('SearchListField.vue', () => {
142
120
 
143
121
  it('clears the search field', async () => {
144
122
  const wrapper = mount(SearchListField, {
145
- global: {
146
- plugins: [vuetify],
147
- },
148
123
  propsData: {
149
124
  items: [
150
125
  {
@@ -169,9 +144,6 @@ describe('SearchListField.vue', () => {
169
144
 
170
145
  it('filteredItems computed property', async () => {
171
146
  const wrapper = mount(SearchListField, {
172
- global: {
173
- plugins: [vuetify],
174
- },
175
147
  propsData: {
176
148
  items: [
177
149
  {
@@ -195,9 +167,6 @@ describe('SearchListField.vue', () => {
195
167
 
196
168
  it('filteredItems computed property with null search', async () => {
197
169
  const wrapper = mount(SearchListField, {
198
- global: {
199
- plugins: [vuetify],
200
- },
201
170
  propsData: {
202
171
  items: [
203
172
  {
@@ -221,9 +190,6 @@ describe('SearchListField.vue', () => {
221
190
 
222
191
  it('filteredItems computed property with multiple matching items', async () => {
223
192
  const wrapper = mount(SearchListField, {
224
- global: {
225
- plugins: [vuetify],
226
- },
227
193
  propsData: {
228
194
  items: [
229
195
  {
@@ -249,9 +215,6 @@ describe('SearchListField.vue', () => {
249
215
 
250
216
  it('emitChangeEvent method', async () => {
251
217
  const wrapper = mount(SearchListField, {
252
- global: {
253
- plugins: [vuetify],
254
- },
255
218
  propsData: {
256
219
  items: [
257
220
  {
@@ -273,9 +236,6 @@ describe('SearchListField.vue', () => {
273
236
 
274
237
  it('emits the update:modelValue event when an item is selected', async () => {
275
238
  const wrapper = mount(SearchListField, {
276
- global: {
277
- plugins: [vuetify],
278
- },
279
239
  propsData: {
280
240
  items: [
281
241
  {
@@ -300,9 +260,6 @@ describe('SearchListField.vue', () => {
300
260
 
301
261
  it('renders the password field without outlined prop', () => {
302
262
  const wrapper = mount(SearchListField, {
303
- global: {
304
- plugins: [vuetify],
305
- },
306
263
  propsData: {
307
264
  items: [
308
265
  {
@@ -320,4 +277,101 @@ describe('SearchListField.vue', () => {
320
277
 
321
278
  expect(wrapper.find('.v-field--variant-underlined')).toBeTruthy()
322
279
  })
280
+
281
+ describe('Return object functionality', () => {
282
+ it('emits values when returnObject is false (default)', async () => {
283
+ const items = [
284
+ {
285
+ label: 'First Item',
286
+ value: { id: 1, name: 'First' },
287
+ },
288
+ {
289
+ label: 'Second Item',
290
+ value: { id: 2, name: 'Second' },
291
+ },
292
+ ]
293
+
294
+ const wrapper = mount(SearchListField, {
295
+ propsData: {
296
+ items,
297
+ modelValue: [],
298
+ returnObject: false,
299
+ },
300
+ })
301
+
302
+ wrapper.vm.toggleSelection(items[0])
303
+ await wrapper.vm.$nextTick()
304
+
305
+ const emittedEvents = wrapper.emitted('update:modelValue')
306
+ expect(emittedEvents).toBeTruthy()
307
+ expect(emittedEvents![0]).toEqual([[{ id: 1, name: 'First' }]])
308
+ })
309
+
310
+ it('emits entire objects when returnObject is true', async () => {
311
+ const items = [
312
+ {
313
+ label: 'First Item',
314
+ value: { id: 1, name: 'First' },
315
+ },
316
+ {
317
+ label: 'Second Item',
318
+ value: { id: 2, name: 'Second' },
319
+ },
320
+ ]
321
+
322
+ const wrapper = mount(SearchListField, {
323
+ propsData: {
324
+ items,
325
+ modelValue: [],
326
+ returnObject: true,
327
+ },
328
+ })
329
+
330
+ wrapper.vm.toggleSelection(items[0])
331
+ await wrapper.vm.$nextTick()
332
+
333
+ const emittedEvents = wrapper.emitted('update:modelValue')
334
+ expect(emittedEvents).toBeTruthy()
335
+ expect(emittedEvents![0]).toEqual([[items[0]]])
336
+ })
337
+
338
+ it('handles selection and deselection correctly with returnObject true', async () => {
339
+ const items = [
340
+ {
341
+ label: 'First Item',
342
+ value: { id: 1, name: 'First' },
343
+ },
344
+ {
345
+ label: 'Second Item',
346
+ value: { id: 2, name: 'Second' },
347
+ },
348
+ ]
349
+
350
+ const wrapper = mount(SearchListField, {
351
+ propsData: {
352
+ items,
353
+ modelValue: [],
354
+ returnObject: true,
355
+ },
356
+ })
357
+
358
+ // Select first item
359
+ wrapper.vm.toggleSelection(items[0])
360
+ await wrapper.vm.$nextTick()
361
+
362
+ const emittedEvents = wrapper.emitted('update:modelValue')
363
+ expect(emittedEvents).toBeTruthy()
364
+ expect(emittedEvents![0]).toEqual([[items[0]]])
365
+
366
+ // Update props to simulate parent component update
367
+ await wrapper.setProps({ modelValue: [items[0]] })
368
+ await wrapper.vm.$nextTick()
369
+
370
+ // Deselect first item
371
+ wrapper.vm.toggleSelection(items[0])
372
+ await wrapper.vm.$nextTick()
373
+
374
+ expect(emittedEvents![1]).toEqual([[]])
375
+ })
376
+ })
323
377
  })
@@ -1,14 +1,6 @@
1
1
  import { mount, VueWrapper } from '@vue/test-utils'
2
2
  import SocialMediaLinks from '../SocialMediaLinks.vue'
3
3
  import { describe, it, expect, afterEach } from 'vitest'
4
- import { createVuetify } from 'vuetify'
5
- import * as components from 'vuetify/components'
6
- import * as directives from 'vuetify/directives'
7
-
8
- const vuetify = createVuetify({
9
- components,
10
- directives,
11
- })
12
4
 
13
5
  describe('SocialMediaLinks', () => {
14
6
  let wrapper: VueWrapper
@@ -21,9 +13,6 @@ describe('SocialMediaLinks', () => {
21
13
 
22
14
  it('renders correctly with default props', () => {
23
15
  wrapper = mount(SocialMediaLinks, {
24
- global: {
25
- plugins: [vuetify],
26
- },
27
16
  props: {
28
17
  links: undefined,
29
18
  headingLevel: 6,
@@ -45,9 +34,6 @@ describe('SocialMediaLinks', () => {
45
34
  { href: 'https://facebook.com', name: 'Facebook', icon: 'mdi-facebook' },
46
35
  ]
47
36
  wrapper = mount(SocialMediaLinks, {
48
- global: {
49
- plugins: [vuetify],
50
- },
51
37
  props: {
52
38
  links,
53
39
  headingLevel: 6,
@@ -80,9 +66,6 @@ describe('SocialMediaLinks', () => {
80
66
  { href: 'https://facebook.com', name: 'Facebook', icon: 'mdi-facebook' },
81
67
  ]
82
68
  wrapper = mount(SocialMediaLinks, {
83
- global: {
84
- plugins: [vuetify],
85
- },
86
69
  props: {
87
70
  links,
88
71
  headingLevel: 6,
@@ -94,9 +77,6 @@ describe('SocialMediaLinks', () => {
94
77
 
95
78
  it('renders no links when links prop is empty array', () => {
96
79
  wrapper = mount(SocialMediaLinks, {
97
- global: {
98
- plugins: [vuetify],
99
- },
100
80
  props: {
101
81
  links: [],
102
82
  headingLevel: 6,
@@ -108,9 +88,6 @@ describe('SocialMediaLinks', () => {
108
88
 
109
89
  it('renders no links when links prop is null', () => {
110
90
  wrapper = mount(SocialMediaLinks, {
111
- global: {
112
- plugins: [vuetify],
113
- },
114
91
  props: {
115
92
  links: undefined,
116
93
  headingLevel: 6,
@@ -123,9 +100,6 @@ describe('SocialMediaLinks', () => {
123
100
  it('renders with correct heading level when headingLevel prop is provided', () => {
124
101
  const headingLevel = 3
125
102
  wrapper = mount(SocialMediaLinks, {
126
- global: {
127
- plugins: [vuetify],
128
- },
129
103
  props: {
130
104
  links: [],
131
105
  headingLevel,
@@ -138,9 +112,6 @@ describe('SocialMediaLinks', () => {
138
112
  it('renders with span and ARIA attributes when useNativeHeading is false', () => {
139
113
  const headingLevel = 4
140
114
  wrapper = mount(SocialMediaLinks, {
141
- global: {
142
- plugins: [vuetify],
143
- },
144
115
  props: {
145
116
  links: [],
146
117
  headingLevel,
@@ -158,9 +129,6 @@ describe('SocialMediaLinks', () => {
158
129
  { href: 'https://twitter.com', name: 'Twitter', icon: 'mdi-twitter' },
159
130
  ]
160
131
  wrapper = mount(SocialMediaLinks, {
161
- global: {
162
- plugins: [vuetify],
163
- },
164
132
  props: {
165
133
  links,
166
134
  headingLevel: 6,
@@ -1,9 +1,6 @@
1
1
  import { describe, it, expect } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
- import { vuetify } from '@tests/unit/setup'
4
-
5
3
  import SubHeader from '../SubHeader.vue'
6
-
7
4
  import type { DataList } from '@/components/DataList/types'
8
5
  import type { DataListGroupItems } from '@/components/DataListGroup/types'
9
6
 
@@ -49,9 +46,6 @@ const dataListGroupItems: DataListGroupItems = [
49
46
  describe('SubHeader', () => {
50
47
  it('renders correctly', () => {
51
48
  const wrapper = mount(SubHeader, {
52
- global: {
53
- plugins: [vuetify],
54
- },
55
49
  props: {
56
50
  hideBackBtn: false,
57
51
  backBtnText: 'Retour',
@@ -67,9 +61,6 @@ describe('SubHeader', () => {
67
61
 
68
62
  it('renders loading state correctly', async () => {
69
63
  const wrapper = mount(SubHeader, {
70
- global: {
71
- plugins: [vuetify],
72
- },
73
64
  props: {
74
65
  hideBackBtn: false,
75
66
  titleText: 'Test',
@@ -84,9 +75,6 @@ describe('SubHeader', () => {
84
75
 
85
76
  it('get subTitleText is defined', async () => {
86
77
  const wrapper = mount(SubHeader, {
87
- global: {
88
- plugins: [vuetify],
89
- },
90
78
  props: {
91
79
  hideBackBtn: false,
92
80
  titleText: 'Test',
@@ -101,9 +89,6 @@ describe('SubHeader', () => {
101
89
 
102
90
  it('emits itemAction event when called', async () => {
103
91
  const wrapper = mount(SubHeader, {
104
- global: {
105
- plugins: [vuetify],
106
- },
107
92
  props: {
108
93
  hideBackBtn: false,
109
94
  titleText: 'Test',
@@ -121,9 +106,6 @@ describe('SubHeader', () => {
121
106
 
122
107
  it('emits back event when called in slot', async () => {
123
108
  const wrapper = mount(SubHeader, {
124
- global: {
125
- plugins: [vuetify],
126
- },
127
109
  props: {
128
110
  hideBackBtn: false,
129
111
  titleText: 'Test',