@cnamts/synapse 1.0.13 → 1.0.15

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 (254) hide show
  1. package/README.md +72 -72
  2. package/dist/{DateFilter-_EFzsvvM.js → DateFilter-isr8mXVb.js} +1 -1
  3. package/dist/{NumberFilter-CUxEbKJh.js → NumberFilter-BOe7DqWX.js} +1 -1
  4. package/dist/{PeriodFilter-D5ueqtKy.js → PeriodFilter-WTprpO40.js} +1 -1
  5. package/dist/{SelectFilter-BciBNydy.js → SelectFilter-CqlG5dmI.js} +1 -1
  6. package/dist/{TextFilter-DMN_WAQB.js → TextFilter-fVW5bsRw.js} +1 -1
  7. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +60 -28
  8. package/dist/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.d.ts +3 -3
  9. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +60 -28
  10. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +61 -29
  11. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +5 -1
  12. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +3 -1
  13. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +1 -1
  14. package/dist/components/Captcha/Captcha.d.ts +2 -0
  15. package/dist/components/Captcha/CaptchaBase.d.ts +1 -0
  16. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +29 -17
  17. package/dist/components/Customs/SyTabs/SyTabs.d.ts +20 -0
  18. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +100 -10
  19. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +108 -21
  20. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +6 -6
  21. package/dist/components/DatePicker/composables/useDateFormatDisplay.d.ts +3 -0
  22. package/dist/components/DatePicker/tests/setup.d.ts +768 -48
  23. package/dist/components/FilterSideBar/FilterSideBar.d.ts +8 -0
  24. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +58 -34
  25. package/dist/components/LangBtn/LangBtn.d.ts +4 -0
  26. package/dist/components/PeriodField/PeriodField.d.ts +192 -12
  27. package/dist/components/RatingPicker/RatingPicker.d.ts +9 -0
  28. package/dist/components/SearchListField/SearchListField.d.ts +42 -413
  29. package/dist/components/SearchListField/locales.d.ts +1 -2
  30. package/dist/components/SyAlert/SyAlert.d.ts +1 -1
  31. package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
  32. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +15 -8
  33. package/dist/components/Tables/SyTable/SyTable.d.ts +15 -8
  34. package/dist/components/Tables/common/SyTablePagination.d.ts +29 -17
  35. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +4 -0
  36. package/dist/components/Tables/common/types.d.ts +2 -0
  37. package/dist/design-system-v3.js +1 -1
  38. package/dist/design-system-v3.umd.cjs +32 -16
  39. package/dist/{main-DISHlqcd.js → main-CbBVJ_le.js} +9911 -9751
  40. package/dist/style.css +1 -1
  41. package/package.json +5 -2
  42. package/src/assets/amelipro/icons.ts +17 -0
  43. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.stories.ts +40 -36
  44. package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/AmeliproAccordionGroup.spec.ts +226 -26
  45. package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/__snapshots__/AmeliproAccordionGroup.spec.ts.snap +55 -506
  46. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.stories.ts +1 -1
  47. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +7 -2
  48. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +2 -1
  49. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +4 -1
  50. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +4 -1
  51. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.stories.ts +1 -1
  52. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +9 -3
  53. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +42 -11
  54. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +4 -4
  55. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +7 -5
  56. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +4 -2
  57. package/src/components/Amelipro/AmeliproBtn/AmeliproBtn.stories.ts +1 -40
  58. package/src/components/Amelipro/AmeliproBtn/AmeliproBtn.vue +4 -0
  59. package/src/components/Amelipro/AmeliproCallback/AmeliproCallback.stories.ts +4 -2
  60. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +2 -1
  61. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.stories.ts +39 -29
  62. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +4 -1
  63. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +3 -3
  64. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +8 -6
  65. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.mdx +3 -1
  66. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.stories.ts +23 -5
  67. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +5 -6
  68. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +2 -2
  69. package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +5 -6
  70. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +4 -1
  71. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +1 -2
  72. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproLogoAm/__tests__/AmeliproLogoAm.spec.ts +78 -0
  73. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproLogoAm/{tests → __tests__}/__snapshots__/AmeliproLogoAm.spec.ts.snap +64 -2
  74. package/src/components/Amelipro/AmeliproIcon/__tests__/AmeliproIcon.spec.ts +358 -0
  75. package/src/components/Amelipro/AmeliproIcon/{tests → __tests__}/__snapshots__/AmeliproIcon.spec.ts.snap +30 -3
  76. package/src/components/Amelipro/AmeliproIcon/iconList.ts +1 -0
  77. package/src/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.vue +1 -1
  78. package/src/components/Amelipro/AmeliproIconBtn/__tests__/AmeliproIconBtn.spec.ts +459 -0
  79. package/src/components/Amelipro/AmeliproIconBtn/__tests__/__snapshots__/AmeliproIconBtn.spec.ts.snap +58 -0
  80. package/src/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.stories.ts +38 -26
  81. package/src/components/Amelipro/AmeliproIllustratedDataTile/__tests__/AmeliproIllustratedDataTile.spec.ts +321 -0
  82. package/src/components/Amelipro/AmeliproIllustratedDataTile/__tests__/__snapshots__/AmeliproIllustratedDataTile.spec.ts.snap +148 -0
  83. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +14 -5
  84. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +1 -1
  85. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +498 -0
  86. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +325 -0
  87. package/src/components/Amelipro/AmeliproMailTile/__tests__/AmeliproMailTile.spec.ts +210 -0
  88. package/src/components/Amelipro/AmeliproMailTile/__tests__/__snapshots__/AmeliproMailTile.spec.ts.snap +98 -0
  89. package/src/components/Amelipro/AmeliproMessage/__tests__/AmeliproMessage.spec.ts +446 -0
  90. package/src/components/Amelipro/AmeliproMessage/__tests__/__snapshots__/AmeliproMessage.spec.ts.snap +60 -0
  91. package/src/components/Amelipro/AmeliproMessagingLayout/__tests__/AmeliproMessagingLayout.spec.ts +300 -0
  92. package/src/components/Amelipro/AmeliproMessagingLayout/__tests__/__snapshots__/AmeliproMessagingLayout.spec.ts.snap +197 -0
  93. package/src/components/Amelipro/AmeliproNumberedCard/__tests__/AmeliproNumberedCard.spec.ts +117 -0
  94. package/src/components/Amelipro/AmeliproNumberedCard/{tests → __tests__}/__snapshots__/AmeliproNumberedCard.spec.ts.snap +47 -45
  95. package/src/components/Amelipro/AmeliproOnboarding/__tests__/AmeliproOnboarding.spec.ts +219 -0
  96. package/src/components/Amelipro/AmeliproOnboarding/__tests__/__snapshots__/AmeliproOnboarding.spec.ts.snap +41 -0
  97. package/src/components/Amelipro/AmeliproPageLayout/__tests__/AmeliproPageLayout.spec.ts +129 -0
  98. package/src/components/Amelipro/AmeliproPageLayout/__tests__/__snapshots__/AmeliproPageLayout.spec.ts.snap +189 -0
  99. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/__tests__/AmeliproPaginationBtn.spec.ts +92 -0
  100. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/__tests__/__snapshots__/AmeliproPaginationBtn.spec.ts.snap +56 -0
  101. package/src/components/Amelipro/AmeliproPagination/__tests__/AmeliproPagination.spec.ts +165 -0
  102. package/src/components/Amelipro/AmeliproPagination/__tests__/__snapshots__/AmeliproPagination.spec.ts.snap +83 -0
  103. package/src/components/Amelipro/AmeliproPatientBanner/__tests__/AmeliproPatientBanner.spec.ts +208 -0
  104. package/src/components/Amelipro/AmeliproPatientBanner/__tests__/__snapshots__/AmeliproPatientBanner.spec.ts.snap +285 -0
  105. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +26 -7
  106. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +12 -4
  107. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +28 -8
  108. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +332 -0
  109. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +255 -0
  110. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.stories.ts +1 -2
  111. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +3 -1
  112. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -1
  113. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +11 -5
  114. package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +481 -0
  115. package/src/components/Amelipro/AmeliproSelect/__tests__/__snapshots__/AmeliproSelect.spec.ts.snap +117 -0
  116. package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.vue +5 -2
  117. package/src/components/Amelipro/AmeliproStateTile/__tests__/AmeliproStateTile.spec.ts +206 -0
  118. package/src/components/Amelipro/AmeliproStateTile/__tests__/__snapshots__/AmeliproStateTile.spec.ts.snap +158 -0
  119. package/src/components/Amelipro/AmeliproStatus/__tests__/AmeliproStatus.spec.ts +120 -0
  120. package/src/components/Amelipro/AmeliproStatus/__tests__/__snapshots__/AmeliproStatus.spec.ts.snap +39 -0
  121. package/src/components/Amelipro/AmeliproStepper/AmeliproStepBtn/__tests__/AmeliproStepBtn.spec.ts +97 -0
  122. package/src/components/Amelipro/AmeliproStepper/AmeliproStepBtn/__tests__/__snapshots__/AmeliproStepBtn.spec.ts.snap +61 -0
  123. package/src/components/Amelipro/AmeliproStepper/__tests__/AmeliproStepper.spec.ts +248 -0
  124. package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +179 -0
  125. package/src/components/Amelipro/AmeliproTable/AmeliproTable.stories.ts +14 -13
  126. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -1
  127. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +10 -3
  128. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/__tests__/AmeliproTabBtn.spec.ts +129 -0
  129. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/__tests__/__snapshots__/AmeliproTabBtn.spec.ts.snap +81 -0
  130. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +2 -2
  131. package/src/components/Amelipro/AmeliproTabs/__tests__/AmeliproTabs.spec.ts +234 -0
  132. package/src/components/Amelipro/AmeliproTabs/__tests__/__snapshots__/AmeliproTabs.spec.ts.snap +122 -0
  133. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +7 -5
  134. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +265 -9
  135. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +98 -155
  136. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +7 -5
  137. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +375 -0
  138. package/src/components/Amelipro/AmeliproTextField/__tests__/__snapshots__/AmeliproTextField.spec.ts.snap +143 -0
  139. package/src/components/Amelipro/AmeliproTileBtn/__tests__/AmeliproTileBtn.spec.ts +241 -0
  140. package/src/components/Amelipro/AmeliproTileBtn/__tests__/__snapshots__/AmeliproTileBtn.spec.ts.snap +74 -0
  141. package/src/components/Amelipro/AmeliproTooltips/__tests__/AmeliproTooltips.spec.ts +212 -0
  142. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +71 -0
  143. package/src/components/Amelipro/AmeliproTransmission/__tests__/AmeliproTransmission.spec.ts +155 -0
  144. package/src/components/Amelipro/AmeliproTransmission/__tests__/__snapshots__/AmeliproTransmission.spec.ts.snap +240 -0
  145. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +0 -1
  146. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +4 -1
  147. package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +4 -0
  148. package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +4 -5
  149. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +5 -4
  150. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +13 -6
  151. package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -1
  152. package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +4 -1
  153. package/src/components/Captcha/Captcha.mdx +4 -4
  154. package/src/components/Captcha/Captcha.stories.ts +8 -1
  155. package/src/components/Captcha/Captcha.vue +3 -0
  156. package/src/components/Captcha/CaptchaBase.vue +3 -0
  157. package/src/components/Captcha/captchaApi.ts +0 -1
  158. package/src/components/Customs/Selects/SySelect/SySelect.vue +2 -2
  159. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +5 -0
  160. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -1
  161. package/src/components/Customs/SyTabs/SyTabs.stories.ts +174 -10
  162. package/src/components/Customs/SyTabs/SyTabs.vue +62 -0
  163. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +98 -0
  164. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +13 -13
  165. package/src/components/DatePicker/CalendarMode/DatePicker.vue +13 -0
  166. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +11 -11
  167. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +5 -0
  168. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.mdx +7 -0
  169. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +1 -1
  170. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +3 -3
  171. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +50 -2
  172. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +15 -15
  173. package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +2 -2
  174. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +1 -1
  175. package/src/components/DatePicker/composables/useDateFormatDisplay.ts +25 -0
  176. package/src/components/DatePicker/composables/useDateFormatValidation.ts +5 -2
  177. package/src/components/DatePicker/composables/useManualDateValidation.ts +5 -1
  178. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +1 -1
  179. package/src/components/ErrorPage/ErrorPage.vue +54 -7
  180. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +6 -2
  181. package/src/components/ExternalLinks/ExternalLinks.vue +2 -4
  182. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +6 -2
  183. package/src/components/PasswordField/PasswordField.vue +6 -6
  184. package/src/components/RangeField/RangeSlider/RangeSlider.vue +3 -2
  185. package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +2 -1
  186. package/src/components/RatingPicker/NumberPicker/NumberPicker.vue +2 -0
  187. package/src/components/RatingPicker/RatingPicker.stories.ts +10 -0
  188. package/src/components/RatingPicker/RatingPicker.vue +23 -1
  189. package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +2 -0
  190. package/src/components/SearchListField/Accessibilite.stories.ts +4 -0
  191. package/src/components/SearchListField/SearchListField.stories.ts +16 -0
  192. package/src/components/SearchListField/SearchListField.vue +121 -109
  193. package/src/components/SearchListField/locales.ts +11 -2
  194. package/src/components/SearchListField/tests/SearchListField.spec.ts +91 -25
  195. package/src/components/SyAlert/SyAlert.vue +8 -0
  196. package/src/components/SyAlert/tests/SyAlert.spec.ts +1 -22
  197. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +304 -0
  198. package/src/components/Tables/SyServerTable/SyServerTable.vue +12 -4
  199. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +67 -0
  200. package/src/components/Tables/SyTable/SyTable.stories.ts +186 -0
  201. package/src/components/Tables/SyTable/SyTable.vue +12 -4
  202. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +65 -1
  203. package/src/components/Tables/common/types.ts +2 -0
  204. package/src/composables/rules/useFieldValidation.ts +47 -7
  205. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproLogoAm/tests/AmeliproLogoAm.spec.ts +0 -15
  206. package/src/components/Amelipro/AmeliproIcon/tests/AmeliproIcon.spec.ts +0 -19
  207. package/src/components/Amelipro/AmeliproIconBtn/tests/AmeliproIconBtn.spec.ts +0 -22
  208. package/src/components/Amelipro/AmeliproIconBtn/tests/__snapshots__/AmeliproIconBtn.spec.ts.snap +0 -87
  209. package/src/components/Amelipro/AmeliproIllustratedDataTile/tests/AmeliproIllustratedDataTile.spec.ts +0 -20
  210. package/src/components/Amelipro/AmeliproIllustratedDataTile/tests/__snapshots__/AmeliproIllustratedDataTile.spec.ts.snap +0 -69
  211. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/tests/AmeliproIllustratedRadioGroup.spec.ts +0 -53
  212. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/tests/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +0 -544
  213. package/src/components/Amelipro/AmeliproMailTile/tests/AmeliproMailTile.spec.ts +0 -25
  214. package/src/components/Amelipro/AmeliproMailTile/tests/__snapshots__/AmeliproMailTile.spec.ts.snap +0 -164
  215. package/src/components/Amelipro/AmeliproMessage/tests/AmeliproMessage.spec.ts +0 -18
  216. package/src/components/Amelipro/AmeliproMessage/tests/__snapshots__/AmeliproMessage.spec.ts.snap +0 -94
  217. package/src/components/Amelipro/AmeliproMessagingLayout/tests/AmeliproMessagingLayout.spec.ts +0 -30
  218. package/src/components/Amelipro/AmeliproMessagingLayout/tests/__snapshots__/AmeliproMessagingLayout.spec.ts.snap +0 -439
  219. package/src/components/Amelipro/AmeliproNumberedCard/tests/AmeliproNumberedCard.spec.ts +0 -23
  220. package/src/components/Amelipro/AmeliproOnboarding/tests/AmeliproOnboarding.spec.ts +0 -41
  221. package/src/components/Amelipro/AmeliproOnboarding/tests/__snapshots__/AmeliproOnboarding.spec.ts.snap +0 -3
  222. package/src/components/Amelipro/AmeliproPageLayout/tests/AmeliproPageLayout.spec.ts +0 -183
  223. package/src/components/Amelipro/AmeliproPageLayout/tests/__snapshots__/AmeliproPageLayout.spec.ts.snap +0 -1602
  224. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/tests/AmeliproPaginationBtn.spec.ts +0 -15
  225. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/tests/__snapshots__/AmeliproPaginationBtn.spec.ts.snap +0 -46
  226. package/src/components/Amelipro/AmeliproPagination/tests/AmeliproPagination.spec.ts +0 -15
  227. package/src/components/Amelipro/AmeliproPagination/tests/__snapshots__/AmeliproPagination.spec.ts.snap +0 -116
  228. package/src/components/Amelipro/AmeliproPatientBanner/tests/AmeliproPatientBanner.spec.ts +0 -24
  229. package/src/components/Amelipro/AmeliproPatientBanner/tests/__snapshots__/AmeliproPatientBanner.spec.ts.snap +0 -268
  230. package/src/components/Amelipro/AmeliproRadioGroup/tests/AmeliproRadioGroup.spec.ts +0 -43
  231. package/src/components/Amelipro/AmeliproRadioGroup/tests/__snapshots__/AmeliproRadioGroup.spec.ts.snap +0 -262
  232. package/src/components/Amelipro/AmeliproSelect/tests/AmeliproSelect.spec.ts +0 -38
  233. package/src/components/Amelipro/AmeliproSelect/tests/__snapshots__/AmeliproSelect.spec.ts.snap +0 -196
  234. package/src/components/Amelipro/AmeliproStateTile/tests/AmeliproStateTile.spec.ts +0 -20
  235. package/src/components/Amelipro/AmeliproStateTile/tests/__snapshots__/AmeliproStateTile.spec.ts.snap +0 -90
  236. package/src/components/Amelipro/AmeliproStatus/tests/AmeliproStatus.spec.ts +0 -16
  237. package/src/components/Amelipro/AmeliproStatus/tests/__snapshots__/AmeliproStatus.spec.ts.snap +0 -21
  238. package/src/components/Amelipro/AmeliproStepper/AmeliproStepBtn/tests/AmeliproStepBtn.spec.ts +0 -18
  239. package/src/components/Amelipro/AmeliproStepper/AmeliproStepBtn/tests/__snapshots__/AmeliproStepBtn.spec.ts.snap +0 -34
  240. package/src/components/Amelipro/AmeliproStepper/tests/AmeliproStepper.spec.ts +0 -36
  241. package/src/components/Amelipro/AmeliproStepper/tests/__snapshots__/AmeliproStepper.spec.ts.snap +0 -354
  242. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/tests/AmeliproTabBtn.spec.ts +0 -20
  243. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/tests/__snapshots__/AmeliproTabBtn.spec.ts.snap +0 -34
  244. package/src/components/Amelipro/AmeliproTabs/tests/AmeliproTabs.spec.ts +0 -39
  245. package/src/components/Amelipro/AmeliproTabs/tests/__snapshots__/AmeliproTabs.spec.ts.snap +0 -217
  246. package/src/components/Amelipro/AmeliproTextField/tests/AmeliproTextField.spec.ts +0 -16
  247. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +0 -162
  248. package/src/components/Amelipro/AmeliproTileBtn/tests/AmeliproTileBtn.spec.ts +0 -17
  249. package/src/components/Amelipro/AmeliproTileBtn/tests/__snapshots__/AmeliproTileBtn.spec.ts.snap +0 -65
  250. package/src/components/Amelipro/AmeliproTooltips/tests/AmeliproTooltips.spec.ts +0 -16
  251. package/src/components/Amelipro/AmeliproTooltips/tests/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -105
  252. package/src/components/Amelipro/AmeliproTransmission/tests/AmeliproTransmission.spec.ts +0 -16
  253. package/src/components/Amelipro/AmeliproTransmission/tests/__snapshots__/AmeliproTransmission.spec.ts.snap +0 -246
  254. package/src/components/SyAlert/tests/__snapshots__/SyAlert.spec.ts.snap +0 -99
@@ -0,0 +1,248 @@
1
+ import { VueWrapper, mount, shallowMount } from '@vue/test-utils'
2
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest'
3
+ import type { AmeliproStep } from '../types'
4
+ import AmeliproStepBtn from '../AmeliproStepBtn/AmeliproStepBtn.vue'
5
+ import { AmeliproStepper } from '@/components'
6
+ import type { ComponentProps } from 'vue-component-type-helpers'
7
+ import { DisplayTestComponent } from '@tests/helpers/utils'
8
+ import type { ExpectedPropOptions } from '@tests/types'
9
+ import type { PropType } from 'vue'
10
+ import TestHelper from '@tests/helpers/TestHelper'
11
+
12
+ const expectedPropOptions: ExpectedPropOptions<typeof AmeliproStepper> = {
13
+ centered: {
14
+ type: Boolean,
15
+ default: false,
16
+ },
17
+ finalStepBtn: {
18
+ type: String,
19
+ default: 'Transmettre',
20
+ },
21
+ hideBackBtn: {
22
+ type: Boolean,
23
+ default: false,
24
+ },
25
+ items: {
26
+ type: Array as PropType<AmeliproStep[]>,
27
+ default: () => [],
28
+ },
29
+ manualChangeStep: {
30
+ type: Boolean,
31
+ default: false,
32
+ },
33
+ nextBtnLabel: {
34
+ type: String,
35
+ default: 'Suivant',
36
+ },
37
+ noDefaultStyle: {
38
+ type: Boolean,
39
+ default: false,
40
+ },
41
+ previousBtnLabel: {
42
+ type: String,
43
+ default: 'Précédent',
44
+ },
45
+ uniqueId: {
46
+ type: String,
47
+ default: undefined,
48
+ },
49
+ value: {
50
+ type: Number,
51
+ default: 0,
52
+ },
53
+ }
54
+
55
+ const steps = (): AmeliproStep[] => [
56
+ {
57
+ disabled: false,
58
+ label: 'etape 1',
59
+ titleDisabled: false,
60
+ },
61
+ {
62
+ disabled: false,
63
+ label: 'etape 2',
64
+ titleDisabled: false,
65
+ },
66
+ {
67
+ disabled: false,
68
+ label: 'etape 3',
69
+ titleDisabled: false,
70
+ },
71
+ ]
72
+
73
+ // Values pour les props "required"
74
+ const requiredPropValues = (): ComponentProps<typeof AmeliproStepper> => ({})
75
+
76
+ // Valeurs pour les props "modified"
77
+ const modifiedPropValues = (): ComponentProps<typeof AmeliproStepper> => ({
78
+ centered: true,
79
+ finalStepBtn: 'Modified final step',
80
+ hideBackBtn: true,
81
+ items: [
82
+ {
83
+ disabled: false,
84
+ label: 'Modified step label 1',
85
+ titleDisabled: false,
86
+ },
87
+ {
88
+ disabled: false,
89
+ label: 'Modified step label 2',
90
+ titleDisabled: false,
91
+ },
92
+ {
93
+ disabled: false,
94
+ label: 'Modified step label 3',
95
+ titleDisabled: false,
96
+ },
97
+ ],
98
+ manualChangeStep: true,
99
+ nextBtnLabel: 'Modified next label',
100
+ noDefaultStyle: true,
101
+ previousBtnLabel: 'Modified previous label',
102
+ uniqueId: 'modified-unique-id',
103
+ value: 1,
104
+ })
105
+
106
+ const testHelper = new TestHelper(AmeliproStepper)
107
+ testHelper.setExpectedPropOptions(expectedPropOptions)
108
+ .setRequiredPropValues(requiredPropValues)
109
+ .setModifiedPropValues(modifiedPropValues)
110
+
111
+ describe('AmeliproStepper', () => {
112
+ describe('Snapshots', () => {
113
+ testHelper.snapshots()
114
+ })
115
+
116
+ describe('Properties', () => {
117
+ testHelper.properties()
118
+ })
119
+
120
+ const displayWrapper = mount(DisplayTestComponent)
121
+
122
+ describe('Setting props should update props or attributes of inner tags', () => {
123
+ let vueWrapper: VueWrapper<InstanceType<typeof AmeliproStepper>>
124
+ displayWrapper.vm.setMdAndUp(true)
125
+
126
+ beforeEach(() => {
127
+ vueWrapper = shallowMount(AmeliproStepper, { props: requiredPropValues() })
128
+ })
129
+
130
+ afterEach(() => {
131
+ displayWrapper.vm.resetDefaults()
132
+ })
133
+
134
+ it('prop centered sets list class', async () => {
135
+ expect(vueWrapper.find('.amelipro-stepper__list').classes('justify-center')).toBe(testHelper.default('centered'))
136
+ await vueWrapper.setProps({ centered: testHelper.modified('centered') })
137
+ expect(vueWrapper.find('.amelipro-stepper__list').classes('justify-center')).toBe(testHelper.modified('centered'))
138
+ })
139
+
140
+ it('prop finalStepBtn sets button text of final step', async () => {
141
+ vueWrapper = mount(AmeliproStepper, {
142
+ props: {
143
+ ...requiredPropValues(),
144
+ items: testHelper.modified('items'),
145
+ value: 2,
146
+ },
147
+ })
148
+ expect(vueWrapper.find('.amelipro-stepper__btn--final').text()).toBe(testHelper.default('finalStepBtn'))
149
+ await vueWrapper.setProps({ finalStepBtn: testHelper.modified('finalStepBtn') })
150
+ expect(vueWrapper.find('.amelipro-stepper__btn--final').text()).toBe(testHelper.modified('finalStepBtn'))
151
+ })
152
+
153
+ it('prop hideBackBtn sets visibility of back button', async () => {
154
+ vueWrapper = shallowMount(AmeliproStepper, {
155
+ props: {
156
+ ...requiredPropValues(),
157
+ items: testHelper.modified('items'),
158
+ value: 1,
159
+ },
160
+ })
161
+ expect(vueWrapper.find('.amelipro-stepper__btn--previous').exists()).toBe(!testHelper.default('hideBackBtn'))
162
+ await vueWrapper.setProps({ hideBackBtn: testHelper.modified('hideBackBtn') })
163
+ expect(vueWrapper.find('.amelipro-stepper__btn--previous').exists()).toBe(!testHelper.modified('hideBackBtn'))
164
+ })
165
+
166
+ it('prop items sets step list', async () => {
167
+ expect(vueWrapper.findAll('.amelipro-stepper__item').length).toBe(testHelper.default('items').length)
168
+ await vueWrapper.setProps({ items: testHelper.modified('items') })
169
+ expect(vueWrapper.findAll('.amelipro-stepper__item').length).toBe(testHelper.modified('items').length)
170
+ })
171
+
172
+ it('prop nextBtnLabel sets label of the Next button', async () => {
173
+ vueWrapper = mount(AmeliproStepper, {
174
+ props: {
175
+ ...requiredPropValues(),
176
+ items: testHelper.modified('items'),
177
+ },
178
+ })
179
+ expect(vueWrapper.find('.amelipro-stepper__btn--next').text()).toBe(testHelper.default('nextBtnLabel'))
180
+ await vueWrapper.setProps({ nextBtnLabel: testHelper.modified('nextBtnLabel') })
181
+ expect(vueWrapper.find('.amelipro-stepper__btn--next').text()).toBe(testHelper.modified('nextBtnLabel'))
182
+ })
183
+
184
+ it('prop noDefaultStyle sets the use of default content class', async () => {
185
+ expect(vueWrapper.find('.amelipro-stepper__content').classes('amelipro-stepper__content--default')).toBe(!testHelper.default('noDefaultStyle'))
186
+ await vueWrapper.setProps({ noDefaultStyle: testHelper.modified('noDefaultStyle') })
187
+ expect(vueWrapper.find('.amelipro-stepper__content').classes('amelipro-stepper__content--default')).toBe(!testHelper.modified('noDefaultStyle'))
188
+ })
189
+
190
+ it('prop previousBtnLabel sets label of the Previous button', async () => {
191
+ vueWrapper = mount(AmeliproStepper, {
192
+ props: {
193
+ ...requiredPropValues(),
194
+ items: testHelper.modified('items'),
195
+ value: 2,
196
+ },
197
+ })
198
+ expect(vueWrapper.find('.amelipro-stepper__btn--previous').text()).toBe(testHelper.default('previousBtnLabel'))
199
+ await vueWrapper.setProps({ previousBtnLabel: testHelper.modified('previousBtnLabel') })
200
+ expect(vueWrapper.find('.amelipro-stepper__btn--previous').text()).toBe(testHelper.modified('previousBtnLabel'))
201
+ })
202
+ })
203
+
204
+ describe('Events', () => {
205
+ let vueWrapper: VueWrapper<InstanceType<typeof AmeliproStepper>>
206
+
207
+ beforeEach(() => {
208
+ vueWrapper = mount(AmeliproStepper, {
209
+ props: {
210
+ ...requiredPropValues(),
211
+ items: steps(),
212
+ },
213
+ })
214
+ })
215
+
216
+ it('emits "next-step" event when next button is clicked', async () => {
217
+ expect(vueWrapper.emitted('next-step')).toBeUndefined()
218
+
219
+ await vueWrapper.find('.amelipro-stepper__btn--next').trigger('click')
220
+ expect(vueWrapper.emitted('next-step')).toStrictEqual([[1]])
221
+ })
222
+
223
+ it('emits "previous-step" event when previous button is clicked', async () => {
224
+ expect(vueWrapper.emitted('previous-step')).toBeUndefined()
225
+
226
+ await vueWrapper.setProps({ value: 1 })
227
+ await vueWrapper.find('.amelipro-stepper__btn--previous').trigger('click')
228
+ expect(vueWrapper.emitted('previous-step')).toStrictEqual([[0]])
229
+ })
230
+
231
+ it('emits "change-step" event when a step is clicked', async () => {
232
+ expect(vueWrapper.emitted('change-step')).toBeUndefined()
233
+
234
+ await vueWrapper.setProps({ value: 1 })
235
+ expect(vueWrapper.findAllComponents(AmeliproStepBtn).at(0)?.exists()).toBe(true)
236
+ await vueWrapper.findAllComponents(AmeliproStepBtn).at(0)?.find('button').trigger('click')
237
+ expect(vueWrapper.emitted('change-step')).toStrictEqual([[0]])
238
+ })
239
+
240
+ it('emits "submit" event when final step is clicked', async () => {
241
+ expect(vueWrapper.emitted('submit')).toBeUndefined()
242
+
243
+ await vueWrapper.setProps({ value: 2 })
244
+ await vueWrapper.find('.amelipro-stepper__btn--final').trigger('click')
245
+ expect(vueWrapper.emitted('submit')).toStrictEqual([[]])
246
+ })
247
+ })
248
+ })
@@ -0,0 +1,179 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`AmeliproStepper > Snapshots > renders the component with all properties filled in 1`] = `
4
+ <div
5
+ class="amelipro-stepper"
6
+ id="modified-unique-id-container"
7
+ >
8
+ <!-- desktop version -->
9
+ <div
10
+ class="amelipro-stepper__headings--desktop"
11
+ id="modified-unique-id-container"
12
+ >
13
+ <ol
14
+ class="
15
+ align-end
16
+ amelipro-stepper__list
17
+ d-flex
18
+ flex-row
19
+ flex-wrap
20
+ justify-center
21
+ list-style-none
22
+ "
23
+ id="modified-unique-id-step-list"
24
+ role="tablist"
25
+ >
26
+ <li
27
+ class="amelipro-stepper__item"
28
+ id="modified-unique-id-step-item-0"
29
+ >
30
+ <amelipro-step-btn-stub
31
+ disabled="false"
32
+ isactive="false"
33
+ uniqueid="modified-unique-id-step-btn-0"
34
+ ></amelipro-step-btn-stub>
35
+ </li>
36
+ <li
37
+ class="amelipro-stepper__item"
38
+ id="modified-unique-id-step-item-1"
39
+ >
40
+ <amelipro-step-btn-stub
41
+ disabled="false"
42
+ isactive="true"
43
+ uniqueid="modified-unique-id-step-btn-1"
44
+ ></amelipro-step-btn-stub>
45
+ </li>
46
+ <li
47
+ class="amelipro-stepper__item"
48
+ id="modified-unique-id-step-item-2"
49
+ >
50
+ <amelipro-step-btn-stub
51
+ disabled="false"
52
+ isactive="false"
53
+ uniqueid="modified-unique-id-step-btn-2"
54
+ ></amelipro-step-btn-stub>
55
+ </li>
56
+ </ol>
57
+ </div>
58
+ <div
59
+ class="
60
+ amelipro-stepper__content
61
+ ap-white
62
+ "
63
+ id="modified-unique-id-current-step-content"
64
+ ></div>
65
+ <div
66
+ class="
67
+ align-center
68
+ amelipro-stepper__actions
69
+ d-flex
70
+ flex-column
71
+ flex-sm-row
72
+ justify-sm-space-between
73
+ mt-4
74
+ "
75
+ id="modified-unique-id-footer"
76
+ >
77
+ <div class="
78
+ d-flex
79
+ d-sm-inline-flex
80
+ flex-column
81
+ flex-sm-row
82
+ next-step-btn__wrapper
83
+ order-sm-1
84
+ ">
85
+ <!-- v-if -->
86
+ <amelipro-btn-stub
87
+ badge="false"
88
+ badgebgcolor="ap-pink"
89
+ badgecolor="ap-white"
90
+ bordered="false"
91
+ class="
92
+ amelipro-stepper__btn--next
93
+ order-sm-1
94
+ "
95
+ color="ap-blue-darken-1"
96
+ disabled="false"
97
+ hovercolor="ap-blue-darken-2"
98
+ hoverunderline="false"
99
+ iconbgcolor="transparent"
100
+ iconbordered="false"
101
+ iconleft="false"
102
+ infoblock="false"
103
+ minheight="2.5rem"
104
+ size="60px"
105
+ text="false"
106
+ textcolor="ap-white"
107
+ type="button"
108
+ underline="false"
109
+ uniqueid="modified-unique-id-footer-next-btn"
110
+ ></amelipro-btn-stub>
111
+ <!-- v-if -->
112
+ </div>
113
+ <div class="
114
+ d-flex
115
+ flex-column
116
+ flex-sm-row
117
+ justify-start
118
+ w-100
119
+ ">
120
+ <div></div>
121
+ </div>
122
+ </div>
123
+ </div>
124
+ `;
125
+
126
+ exports[`AmeliproStepper > Snapshots > renders the component with only required properties filled in 1`] = `
127
+ <div class="amelipro-stepper">
128
+ <!-- desktop version -->
129
+ <div class="amelipro-stepper__headings--desktop">
130
+ <ol
131
+ class="
132
+ align-end
133
+ amelipro-stepper__list
134
+ d-flex
135
+ flex-row
136
+ flex-wrap
137
+ list-style-none
138
+ "
139
+ role="tablist"
140
+ ></ol>
141
+ </div>
142
+ <div class="
143
+ amelipro-stepper__content
144
+ amelipro-stepper__content--default
145
+ ap-white
146
+ "></div>
147
+ <div class="
148
+ align-center
149
+ amelipro-stepper__actions
150
+ d-flex
151
+ flex-column
152
+ flex-sm-row
153
+ justify-sm-end
154
+ mt-4
155
+ ">
156
+ <div class="
157
+ d-flex
158
+ d-sm-inline-flex
159
+ flex-column
160
+ flex-sm-row
161
+ next-step-btn__wrapper
162
+ order-sm-1
163
+ ">
164
+ <!-- v-if -->
165
+ <!-- v-if -->
166
+ <!-- v-if -->
167
+ </div>
168
+ <div class="
169
+ d-flex
170
+ flex-column
171
+ flex-sm-row
172
+ justify-start
173
+ w-100
174
+ ">
175
+ <div></div>
176
+ </div>
177
+ </div>
178
+ </div>
179
+ `;
@@ -3,7 +3,8 @@ import AmeliproMessage from '../AmeliproMessage/AmeliproMessage.vue'
3
3
  import AmeliproTable from './AmeliproTable.vue'
4
4
  import type { AmeliproTableHeader } from './types'
5
5
  import type { IDataListItem } from '../types'
6
- import { ref, computed } from 'vue'
6
+ import { computed, ref } from 'vue'
7
+
7
8
  const meta = {
8
9
  argTypes: {
9
10
  '`item-${headers[cellIndex].name}`': { description: 'Slot généré automatiquement pour chaque colonne (`name` nom de la colonne dans headers) vous devez y bind la ligne, pour permettre de renseigner autres chose que des données textuelles si besoin. Le contenu du slot apparaît seulement si la valeur de la cellule concernée est `undefined`.' },
@@ -610,10 +611,10 @@ export const PaginationEtTri: Story = {
610
611
  uniqueId: 'table-pagination-tri',
611
612
  itemsToDisplayDesktop: 2,
612
613
  itemsToDisplayMobile: 1,
613
- sortSelectDefaultValue: 'name-desc',
614
+ sortSelectDefaultValue: 'desc',
614
615
  sortSelectItems: [
615
- { title: 'Nom croissant', value: 'name-asc' },
616
- { title: 'Nom décroissant', value: 'name-desc' },
616
+ { title: 'Nom croissant', value: 'asc' },
617
+ { title: 'Nom décroissant', value: 'desc' },
617
618
  ],
618
619
  sortSelectLabel: 'Trier par',
619
620
  sortSelectPlaceholder: 'Choisir un tri',
@@ -632,10 +633,10 @@ export const PaginationEtTri: Story = {
632
633
  unique-id="table-pagination-tri"
633
634
  :items-to-display-desktop="2"
634
635
  :items-to-display-mobile="1"
635
- sort-select-default-value="name-desc"
636
+ sort-select-default-value="name"
636
637
  :sort-select-items="[
637
- { title: 'Nom croissant', value: 'name-asc' },
638
- { title: 'Nom décroissant', value: 'name-desc' }
638
+ { title: 'Nom croissant', value: 'asc' },
639
+ { title: 'Nom décroissant', value: 'desc' }
639
640
  ]"
640
641
  sort-select-label="Trier par"
641
642
  sort-select-placeholder="Choisir un tri"
@@ -671,10 +672,10 @@ const sortValue = ref('name-asc')
671
672
 
672
673
  const sortedDataList = computed(() => {
673
674
  const list = [...(args.dataList ?? [])]
674
- if (sortValue.value === 'name-asc') {
675
+ if (sortValue.value === 'asc') {
675
676
  return list.sort((a, b) => (String(a.name ?? '')).localeCompare(String(b.name ?? '')))
676
677
  }
677
- if (sortValue.value === 'name-desc') {
678
+ if (sortValue.value === 'desc') {
678
679
  return list.sort((a, b) => (String(b.name ?? '')).localeCompare(String(a.name ?? '')))
679
680
  }
680
681
  return list
@@ -692,7 +693,7 @@ function onSortAsc(event: Event, header: string) {
692
693
 
693
694
  function onSortDesc(event: Event, header: string) {
694
695
  if (header === 'name') {
695
- sortValue.value = 'name-desc'
696
+ sortValue.value = 'desc'
696
697
  }
697
698
  }
698
699
  </script>`,
@@ -705,10 +706,10 @@ function onSortDesc(event: Event, header: string) {
705
706
  const sortValue = ref('name-asc')
706
707
  const sortedDataList = computed(() => {
707
708
  const list = [...(args.dataList ?? [])]
708
- if (sortValue.value === 'name-asc') {
709
+ if (sortValue.value === 'asc') {
709
710
  return list.sort((a, b) => (String(a.name ?? '')).localeCompare(String(b.name ?? '')))
710
711
  }
711
- if (sortValue.value === 'name-desc') {
712
+ if (sortValue.value === 'desc') {
712
713
  return list.sort((a, b) => (String(b.name ?? '')).localeCompare(String(a.name ?? '')))
713
714
  }
714
715
  return list
@@ -725,7 +726,7 @@ function onSortDesc(event: Event, header: string) {
725
726
 
726
727
  function onSortDesc(header: string) {
727
728
  if (header === 'name') {
728
- sortValue.value = 'name-desc'
729
+ sortValue.value = 'desc'
729
730
  }
730
731
  }
731
732
  return { args, sortedDataList, onSortChange, onSortAsc, onSortDesc }
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import type { AmeliproTableCell, AmeliproTableHeader } from './types'
3
3
  import type { IDataListItem, IndexedObject } from '../types'
4
- import { type PropType, computed, onMounted, onUpdated, ref, watch } from 'vue'
4
+ import { computed, onMounted, onUpdated, type PropType, ref, watch } from 'vue'
5
5
  import AmeliproIconBtn from '../AmeliproIconBtn/AmeliproIconBtn.vue'
6
6
  import AmeliproPagination from '../AmeliproPagination/AmeliproPagination.vue'
7
7
  import AmeliproSelect from '../AmeliproSelect/AmeliproSelect.vue'
@@ -191,6 +191,7 @@
191
191
  currentPage.value = 1
192
192
  }
193
193
  }
194
+ watch(sortSelectModel, emitSortSelectChange, { immediate: true })
194
195
  </script>
195
196
 
196
197
  <template>
@@ -58,8 +58,9 @@ exports[`AmeliproTable > render correctly 1`] = `
58
58
  w-100
59
59
  ">
60
60
  <div class="
61
- align-start
61
+ align-baseline
62
62
  d-inline-flex
63
+ mb-1
63
64
  ">
64
65
  <label
65
66
  class="
@@ -302,7 +303,10 @@ exports[`AmeliproTable > render correctly 1`] = `
302
303
  data-no-activator=""
303
304
  >
304
305
  <span
305
- class="d-sr-only"
306
+ class="
307
+ amelipro-btn__label
308
+ d-sr-only
309
+ "
306
310
  id="amelipro-table-id-table-header-cell-0-asc-sort-btn-btn-label"
307
311
  >
308
312
  tri asc
@@ -384,7 +388,10 @@ exports[`AmeliproTable > render correctly 1`] = `
384
388
  data-no-activator=""
385
389
  >
386
390
  <span
387
- class="d-sr-only"
391
+ class="
392
+ amelipro-btn__label
393
+ d-sr-only
394
+ "
388
395
  id="amelipro-table-id-table-header-cell-0-desc-sort-btn-btn-label"
389
396
  >
390
397
  tri desc
@@ -0,0 +1,129 @@
1
+ import { VueWrapper, shallowMount } from '@vue/test-utils'
2
+ import { beforeEach, describe, expect, it } from 'vitest'
3
+ import AmeliproTabBtn from '../AmeliproTabBtn.vue'
4
+ import type { ComponentProps } from 'vue-component-type-helpers'
5
+ import type { ExpectedPropOptions } from '@tests/types'
6
+ import TestHelper from '@tests/helpers/TestHelper'
7
+
8
+ const expectedPropOptions: ExpectedPropOptions<typeof AmeliproTabBtn> = {
9
+ controls: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ disabled: {
14
+ type: Boolean,
15
+ default: false,
16
+ },
17
+ notification: {
18
+ type: Number,
19
+ default: undefined,
20
+ },
21
+ pills: {
22
+ type: Boolean,
23
+ default: false,
24
+ },
25
+ selected: {
26
+ type: Boolean,
27
+ default: false,
28
+ },
29
+ tabindex: {
30
+ type: Number,
31
+ required: true,
32
+ },
33
+ uniqueId: {
34
+ type: String,
35
+ required: true,
36
+ },
37
+ }
38
+
39
+ // Values pour les props "required"
40
+ const requiredPropValues = (): ComponentProps<typeof AmeliproTabBtn> => ({
41
+ controls: 'required-controls',
42
+ tabindex: 1,
43
+ uniqueId: 'required-unique-id',
44
+ })
45
+
46
+ // Valeurs pour les props "modified"
47
+ const modifiedPropValues = (): ComponentProps<typeof AmeliproTabBtn> => ({
48
+ controls: 'modified-controls',
49
+ disabled: true,
50
+ notification: 1,
51
+ pills: true,
52
+ selected: true,
53
+ tabindex: 0,
54
+ uniqueId: 'modified-unique-id',
55
+ })
56
+
57
+ const testHelper = new TestHelper(AmeliproTabBtn)
58
+ testHelper.setExpectedPropOptions(expectedPropOptions)
59
+ .setRequiredPropValues(requiredPropValues)
60
+ .setModifiedPropValues(modifiedPropValues)
61
+
62
+ describe('AmeliproTabBtn', () => {
63
+ describe('Snapshots', () => {
64
+ testHelper.snapshots()
65
+ })
66
+
67
+ describe('Properties', () => {
68
+ testHelper.properties()
69
+ })
70
+
71
+ describe('Setting props should update props or attributes of inner tags', () => {
72
+ let vueWrapper: VueWrapper<InstanceType<typeof AmeliproTabBtn>>
73
+
74
+ beforeEach(() => {
75
+ vueWrapper = shallowMount(AmeliproTabBtn, { props: requiredPropValues() })
76
+ })
77
+
78
+ it('prop controls sets attribute aria-controls', async () => {
79
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('aria-controls')).toBe(testHelper.default('controls'))
80
+ await vueWrapper.setProps({ controls: testHelper.modified('controls') })
81
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('aria-controls')).toBe(testHelper.modified('controls'))
82
+ })
83
+
84
+ it('prop disabled sets attribute & class disabled', async () => {
85
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('disabled')).toBeUndefined()
86
+ expect(vueWrapper.find('.amelipro-tab__btn').classes('disabled')).toBe(testHelper.default('disabled'))
87
+ await vueWrapper.setProps({ disabled: testHelper.modified('disabled') })
88
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('disabled')).toBe('')
89
+ expect(vueWrapper.find('.amelipro-tab__btn').classes('disabled')).toBe(testHelper.modified('disabled'))
90
+ })
91
+
92
+ it('prop notification sets notification content', async () => {
93
+ expect(vueWrapper.find('.amelipro-tab__btn-notification').exists()).toBe(false)
94
+ await vueWrapper.setProps({ notification: testHelper.modified('notification') })
95
+ expect(vueWrapper.find('.amelipro-tab__btn-notification').exists()).toBe(true)
96
+ expect(vueWrapper.find('.amelipro-tab__btn-notification').text()).toBe(String(testHelper.modified('notification')))
97
+ })
98
+
99
+ it('prop pills sets button class & style', async () => {
100
+ expect(vueWrapper.find('.amelipro-tab__btn').classes()).toEqual([
101
+ 'amelipro-tab__btn',
102
+ 'px-4',
103
+ 'py-2',
104
+ 'text-uppercase',
105
+ ])
106
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('style')).toBe('background-color: #E6F6FC; border: 1px solid #DDDEDE; color: #00749C;')
107
+
108
+ await vueWrapper.setProps({ pills: testHelper.modified('pills') })
109
+ expect(vueWrapper.find('.amelipro-tab__btn').classes()).toEqual([
110
+ 'amelipro-tab__btn',
111
+ 'mr-2',
112
+ 'amelipro-tab__btn--pills',
113
+ ])
114
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('style')).toBe('background-color: #FFFFFF; border: 1px solid #00749C; color: #00749C; margin-bottom: 8px; position: relative;')
115
+ })
116
+
117
+ it('prop selected sets button style', async () => {
118
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('style')).toBe('background-color: #E6F6FC; border: 1px solid #DDDEDE; color: #00749C;')
119
+ await vueWrapper.setProps({ selected: testHelper.modified('selected') })
120
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('style')).toBe('background-color: #00749C; border: 1px solid #00749C; color: #FFFFFF;')
121
+ })
122
+
123
+ it('prop tabindex sets attribute aria-tabindex', async () => {
124
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('tabindex')).toBe(String(testHelper.default('tabindex')))
125
+ await vueWrapper.setProps({ tabindex: testHelper.modified('tabindex') })
126
+ expect(vueWrapper.find('.amelipro-tab__btn').attributes('tabindex')).toBe(String(testHelper.modified('tabindex')))
127
+ })
128
+ })
129
+ })