@cnamts/synapse 1.0.14 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/README.md +0 -0
  2. package/dist/{DateFilter-isr8mXVb.js → DateFilter-DSwJUvBu.js} +12 -12
  3. package/dist/{NumberFilter-BOe7DqWX.js → NumberFilter-CwsbYyz4.js} +1 -1
  4. package/dist/{PeriodFilter-WTprpO40.js → PeriodFilter-csnEZU30.js} +1 -1
  5. package/dist/{SelectFilter-CqlG5dmI.js → SelectFilter-Bd5fndzR.js} +1 -1
  6. package/dist/{TextFilter-fVW5bsRw.js → TextFilter-B6gxzq2a.js} +1 -1
  7. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +2836 -2845
  8. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +3 -3
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +7 -7
  10. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +3 -3
  11. package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +3 -3
  12. package/dist/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.d.ts +3 -3
  13. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +3 -3
  14. package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +3 -3
  15. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +3 -3
  16. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +3 -3
  17. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +18 -18
  18. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +9 -9
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +3 -3
  20. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +3 -3
  21. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +3 -1
  22. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +5 -3
  23. package/dist/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.d.ts +3 -3
  24. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +3 -3
  25. package/dist/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.d.ts +1 -1
  26. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +3 -3
  27. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +3 -3
  28. package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +9 -0
  29. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1288 -1284
  30. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1936 -1930
  31. package/dist/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.d.ts +3 -3
  32. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2838 -2865
  33. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
  34. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2843 -2870
  35. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +397 -397
  36. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +642 -640
  37. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +233 -5
  38. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
  39. package/dist/components/Captcha/CaptchaHelpdesk.d.ts +6 -0
  40. package/dist/components/CookieBanner/CookieBanner.d.ts +117 -119
  41. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +484 -484
  42. package/dist/components/CookiesSelection/CookiesSelection.d.ts +104 -106
  43. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +14 -10
  44. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +118 -129
  45. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -3
  46. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
  47. package/dist/components/Customs/SyForm/SyForm.d.ts +60 -53
  48. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +88 -0
  49. package/dist/components/Customs/SyRadioGroup/locales.d.ts +3 -0
  50. package/dist/components/Customs/SyTextField/SyTextField.d.ts +644 -642
  51. package/dist/components/DataList/DataList.d.ts +6 -1
  52. package/dist/components/DataListGroup/DataListGroup.d.ts +14 -2
  53. package/dist/components/DataListItem/DataListItem.d.ts +3 -0
  54. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2988 -3100
  55. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1458 -1558
  56. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +655 -651
  57. package/dist/components/DatePicker/composables/index.d.ts +4 -0
  58. package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +1 -1
  59. package/dist/components/DatePicker/composables/useCalendarKeyboardNavigation.d.ts +11 -0
  60. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +25 -0
  61. package/dist/components/DatePicker/composables/useDateTextField.d.ts +61 -0
  62. package/dist/components/DatePicker/composables/useHolidayHighlighting.d.ts +15 -0
  63. package/dist/components/DatePicker/constants/messages.d.ts +0 -1
  64. package/dist/components/DialogBox/DialogBox.d.ts +175 -177
  65. package/dist/components/FilterSideBar/FilterSideBar.d.ts +161 -171
  66. package/dist/components/FooterBar/FooterBar.d.ts +5 -5
  67. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -2
  68. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
  69. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +1 -1
  70. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +234 -258
  71. package/dist/components/LangBtn/LangBtn.d.ts +173 -179
  72. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
  73. package/dist/components/LunarCalendar/LunarCalendar.d.ts +29 -0
  74. package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +5 -0
  75. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +13 -0
  76. package/dist/components/NirField/NirField.d.ts +1296 -1292
  77. package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
  78. package/dist/components/PeriodField/PeriodField.d.ts +5844 -6068
  79. package/dist/components/PhoneField/PhoneField.d.ts +645 -643
  80. package/dist/components/SyAlert/SyAlert.d.ts +31 -31
  81. package/dist/components/SyTextArea/SyTextArea.d.ts +395 -395
  82. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +193 -227
  83. package/dist/components/Tables/SyTable/SyTable.d.ts +192 -226
  84. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  85. package/dist/components/Tables/common/SyTablePagination.d.ts +118 -129
  86. package/dist/components/Tables/common/TableHeader.d.ts +52 -2
  87. package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
  88. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  89. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  90. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  91. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  92. package/dist/components/Tables/common/locales.d.ts +1 -0
  93. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +86 -90
  94. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -2
  95. package/dist/components/Tables/common/types.d.ts +3 -2
  96. package/dist/components/Tables/common/useTableCheckbox.d.ts +3 -2
  97. package/dist/components/Tables/common/useTableFilter.d.ts +1 -1
  98. package/dist/components/Tables/common/useTableItems.d.ts +6 -8
  99. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +18 -18
  100. package/dist/components/index.d.ts +2 -0
  101. package/dist/design-system-v3.js +101 -98
  102. package/dist/design-system-v3.umd.cjs +25 -33
  103. package/dist/main-DkZZpa3S.js +35197 -0
  104. package/dist/style.css +1 -1
  105. package/dist/utils/formatNir/formatNir.d.ts +2 -0
  106. package/dist/utils/index.d.ts +1 -0
  107. package/dist/utils/insertAt.d.ts +1 -0
  108. package/dist/utils/rules/validateDateValue.d.ts +14 -0
  109. package/dist/vuetifyConfig.d.ts +6 -6
  110. package/package.json +4 -4
  111. package/src/assets/tokens.scss +2 -0
  112. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +1 -18
  113. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +178 -9
  114. package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +28 -121
  115. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +15 -270
  116. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +12 -194
  117. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +1 -18
  118. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +1 -18
  119. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +12 -194
  120. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +9 -9
  121. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +5 -4
  122. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +6 -6
  123. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -0
  124. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +135 -9
  125. package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +20 -5
  126. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +195 -28
  127. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +193 -124
  128. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
  129. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +364 -12
  130. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +30 -390
  131. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +4 -36
  132. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +10 -10
  133. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +7 -7
  134. package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +5 -5
  135. package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +1 -1
  136. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +7 -6
  137. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +6 -6
  138. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +6 -6
  139. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +2 -2
  140. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -43
  141. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +80 -9
  142. package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +25 -4
  143. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +1 -13
  144. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +7 -6
  145. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +5 -5
  146. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +187 -39
  147. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +147 -147
  148. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +1 -1
  149. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +0 -2
  150. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +160 -20
  151. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +34 -177
  152. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +1 -0
  153. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +248 -19
  154. package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +34 -203
  155. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +6 -144
  156. package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.vue +20 -2
  157. package/src/components/Amelipro/AmeliproIcon/__tests__/__snapshots__/AmeliproIcon.spec.ts.snap +1 -25
  158. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +5 -5
  159. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -6
  160. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +22 -22
  161. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +2 -2
  162. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/AmeliproMultipleFoldingCard.spec.ts +304 -0
  163. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +373 -0
  164. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +2 -0
  165. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +28 -2
  166. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -173
  167. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -1
  168. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +162 -72
  169. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +2 -2
  170. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +6 -39
  171. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +3 -3
  172. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +8 -8
  173. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/AmeliproPostalAddressField.spec.ts +2 -2
  174. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +11 -52
  175. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +7 -7
  176. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +8 -8
  177. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +6 -6
  178. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +2 -2
  179. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -14
  180. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +7 -7
  181. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +4 -4
  182. package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +12 -12
  183. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +2 -2
  184. package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +2 -2
  185. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -2
  186. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +463 -68
  187. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +176 -511
  188. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +6 -6
  189. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -4
  190. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +3 -3
  191. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +1 -2
  192. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +10 -10
  193. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +4 -4
  194. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +5 -5
  195. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +162 -0
  196. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +44 -0
  197. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +79 -1
  198. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -2
  199. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +2 -2
  200. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +21 -7
  201. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +252 -44
  202. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +166 -0
  203. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/ServiceBtn.spec.ts +137 -0
  204. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/__snapshots__/ServiceBtn.spec.ts.snap +56 -0
  205. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/ServiceList.spec.ts +116 -0
  206. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/__snapshots__/ServiceList.spec.ts.snap +58 -0
  207. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/ServiceMenuContent.spec.ts +118 -0
  208. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/__snapshots__/ServiceMenuContent.spec.ts.snap +151 -0
  209. package/src/components/Amelipro/ServiceMenu/__tests__/ServiceMenu.spec.ts +259 -0
  210. package/src/components/Amelipro/ServiceMenu/__tests__/__snapshots__/ServiceMenu.spec.ts.snap +102 -0
  211. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +90 -0
  212. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +63 -0
  213. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/StructureItem.spec.ts +133 -0
  214. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +143 -0
  215. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/StructureList.spec.ts +190 -0
  216. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +109 -0
  217. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +159 -0
  218. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +103 -0
  219. package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +165 -0
  220. package/src/components/Amelipro/StructureMenu/__tests__/__snapshots__/StructureMenu.spec.ts.snap +39 -0
  221. package/src/components/Amelipro/UserInformationSummary/__tests__/UserInformationSummary.spec.ts +140 -0
  222. package/src/components/Amelipro/UserInformationSummary/{tests → __tests__}/__snapshots__/UserInformationSummary.spec.ts.snap +17 -24
  223. package/src/components/Amelipro/UserMenu/UserMenu.stories.ts +3 -3
  224. package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -2
  225. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/UserMenuDetails.spec.ts +150 -0
  226. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/__snapshots__/UserMenuDetails.spec.ts.snap +117 -0
  227. package/src/components/Amelipro/UserMenu/__tests__/UserMenu.spec.ts +141 -0
  228. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +103 -0
  229. package/src/components/Captcha/Captcha.vue +9 -24
  230. package/src/components/Captcha/CaptchaHelpdesk.vue +42 -0
  231. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +256 -268
  232. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +0 -1
  233. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +4 -0
  234. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +154 -82
  235. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +229 -125
  236. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +12 -12
  237. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +344 -826
  238. package/src/components/Customs/Selects/SySelect/SySelect.vue +215 -169
  239. package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +4 -2
  240. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +7 -9
  241. package/src/components/Customs/SyForm/SyForm.mdx +47 -7
  242. package/src/components/Customs/SyForm/SyForm.stories.ts +38 -34
  243. package/src/components/Customs/SyForm/SyForm.vue +27 -6
  244. package/src/components/Customs/SyRadioGroup/Accessibilite.mdx +263 -0
  245. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +37 -0
  246. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +665 -0
  247. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +324 -0
  248. package/src/components/Customs/SyRadioGroup/locales.ts +3 -0
  249. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +135 -0
  250. package/src/components/Customs/SyTabs/SyTabs.vue +1 -1
  251. package/src/components/Customs/SyTextField/SyTextField.vue +225 -194
  252. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +32 -2
  253. package/src/components/DataList/DataList.mdx +3 -1
  254. package/src/components/DataList/DataList.stories.ts +67 -17
  255. package/src/components/DataList/DataList.vue +13 -1
  256. package/src/components/DataListGroup/DataListGroup.stories.ts +42 -12
  257. package/src/components/DataListGroup/DataListGroup.vue +14 -1
  258. package/src/components/DataListItem/DataListItem.vue +10 -2
  259. package/src/components/DataListItem/tests/DataListItem.spec.ts +1 -1
  260. package/src/components/DatePicker/CalendarMode/DatePicker.vue +157 -178
  261. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +5 -0
  262. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +179 -179
  263. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +261 -258
  264. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +234 -827
  265. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +46 -73
  266. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +350 -0
  267. package/src/components/DatePicker/composables/index.ts +4 -0
  268. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +270 -0
  269. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +61 -3
  270. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +198 -0
  271. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +36 -2
  272. package/src/components/DatePicker/composables/tests/useInputHandler.spec.ts +755 -0
  273. package/src/components/DatePicker/composables/tests/useKeyboardEvents.spec.ts +168 -0
  274. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +40 -34
  275. package/src/components/DatePicker/composables/useAsteriskDisplay.ts +1 -2
  276. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +155 -0
  277. package/src/components/DatePicker/composables/useDatePickerState.ts +163 -0
  278. package/src/components/DatePicker/composables/useDateRangeInput.ts +4 -8
  279. package/src/components/DatePicker/composables/useDateTextField.ts +156 -0
  280. package/src/components/DatePicker/composables/useHolidayHighlighting.ts +64 -0
  281. package/src/components/DatePicker/composables/useInputHandler.ts +25 -19
  282. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +52 -26
  283. package/src/components/DatePicker/constants/messages.ts +0 -1
  284. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
  285. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +16 -8
  286. package/src/components/ErrorPage/ErrorPage.vue +1 -1
  287. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +17 -0
  288. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +0 -1
  289. package/src/components/LunarCalendar/LunarCalendar.mdx +33 -0
  290. package/src/components/LunarCalendar/LunarCalendar.stories.ts +232 -0
  291. package/src/components/LunarCalendar/LunarCalendar.vue +57 -0
  292. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +79 -0
  293. package/src/components/LunarCalendar/useLunarCalendarRules.ts +96 -0
  294. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +47 -0
  295. package/src/components/NotificationBar/NotificationBar.vue +2 -2
  296. package/src/components/PaginatedTable/PaginatedTable.stories.ts +15 -10
  297. package/src/components/PaginatedTable/PaginatedTable.vue +24 -35
  298. package/src/components/PhoneField/PhoneField.vue +102 -83
  299. package/src/components/SearchListField/tests/SearchListField.spec.ts +7 -53
  300. package/src/components/SyAlert/SyAlert.vue +5 -2
  301. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +24 -72
  302. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +521 -23
  303. package/src/components/Tables/SyServerTable/SyServerTable.vue +19 -13
  304. package/src/components/Tables/SyTable/SyTable.stories.ts +391 -18
  305. package/src/components/Tables/SyTable/SyTable.vue +16 -11
  306. package/src/components/Tables/common/TableHeader.vue +16 -7
  307. package/src/components/Tables/common/filters/DateFilter.vue +1 -1
  308. package/src/components/Tables/common/locales.ts +1 -0
  309. package/src/components/Tables/common/tableFilterUtils.ts +3 -3
  310. package/src/components/Tables/common/types.ts +4 -2
  311. package/src/components/Tables/common/useTableCheckbox.ts +4 -3
  312. package/src/components/Tables/common/useTableFilter.ts +2 -2
  313. package/src/components/Tables/common/useTableItems.ts +4 -19
  314. package/src/components/index.ts +2 -0
  315. package/src/composables/validation/tests/useFormValidation.spec.ts +251 -0
  316. package/src/composables/validation/tests/useValidatable.spec.ts +90 -0
  317. package/src/stories/Accessibilite/Audit/Exemptions-derogations.mdx +241 -0
  318. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +17 -10
  319. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -0
  320. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +160 -106
  321. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +2 -1
  322. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +20 -0
  323. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +10 -0
  324. package/src/utils/formatNir/formatNir.ts +15 -0
  325. package/src/utils/index.ts +1 -0
  326. package/src/utils/insertAt.ts +11 -0
  327. package/src/utils/rules/isDateValid/IsDateValid.mdx +2 -2
  328. package/src/utils/rules/isDateValid/IsDateValid.stories.ts +6 -4
  329. package/src/utils/rules/isDateValid/index.ts +23 -8
  330. package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +9 -0
  331. package/src/utils/rules/isExactLength/IsExactLenght.mdx +1 -1
  332. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +19 -7
  333. package/src/utils/rules/isHolidayDay/index.ts +6 -8
  334. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +13 -1
  335. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +2 -2
  336. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +9 -2
  337. package/src/utils/rules/isNotAfterDate/index.ts +5 -12
  338. package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +20 -0
  339. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +2 -2
  340. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +8 -2
  341. package/src/utils/rules/isNotAfterToday/index.ts +6 -6
  342. package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +20 -0
  343. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +2 -2
  344. package/src/utils/rules/isNotBeforeDate/index.ts +5 -12
  345. package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +20 -0
  346. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +2 -2
  347. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +8 -2
  348. package/src/utils/rules/isNotBeforeToday/index.ts +6 -6
  349. package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +19 -0
  350. package/src/utils/rules/validateDateValue.ts +37 -0
  351. package/src/vuetifyConfig.ts +6 -2
  352. package/dist/components/Customs/Selects/SelectBtnField/config.d.ts +0 -11
  353. package/dist/components/DatePicker/tests/setup.d.ts +0 -75370
  354. package/dist/components/Tables/common/formatters.d.ts +0 -17
  355. package/dist/main-CbBVJ_le.js +0 -34377
  356. package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -70
  357. package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +0 -8
  358. package/dist/stories/DesignTokens/TypographyDisplay.d.ts +0 -28
  359. package/dist/stories/DesignTokens/vue-shims.d.ts +0 -6
  360. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -40
  361. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +0 -369
  362. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -21
  363. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +0 -100
  364. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -25
  365. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +0 -245
  366. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -45
  367. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +0 -787
  368. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -46
  369. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -111
  370. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -17
  371. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/__snapshots__/StructureBtn.spec.ts.snap +0 -34
  372. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -21
  373. package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +0 -106
  374. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -33
  375. package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +0 -353
  376. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -60
  377. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +0 -824
  378. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -69
  379. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +0 -1383
  380. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -24
  381. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -33
  382. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/__snapshots__/UserMenuDetails.spec.ts.snap +0 -3
  383. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -34
  384. package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +0 -101
  385. package/src/components/Customs/Selects/SelectBtnField/config.ts +0 -11
  386. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -151
  387. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -148
  388. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -361
  389. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -709
  390. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -4111
  391. package/src/components/DatePicker/tests/archiTest.md +0 -33
  392. package/src/components/DatePicker/tests/navigation.regression.spec.ts +0 -74
  393. package/src/components/DatePicker/tests/navigation.simple.spec.ts +0 -137
  394. package/src/components/DatePicker/tests/setup.ts +0 -243
  395. package/src/components/Tables/common/formatters.ts +0 -72
@@ -3,8 +3,22 @@
3
3
  /* eslint-disable vuejs-accessibility/no-static-element-interactions, vuejs-accessibility/label-has-for */
4
4
  import type { ErrorBucket, Registrable } from './types'
5
5
  import type { ErrorMessages, ValidationRule } from '@/utils/rules/types'
6
- import { type PropType, computed, getCurrentInstance, inject, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'
7
- import { fileUploadDuplicationRule, fileUploadFormatRule, fileUploadMaxFileNumberRule } from '@/utils/amelipro/rules/uploadFile'
6
+ import {
7
+ computed,
8
+ getCurrentInstance,
9
+ inject,
10
+ nextTick,
11
+ onBeforeUnmount,
12
+ onMounted,
13
+ type PropType,
14
+ ref,
15
+ watch,
16
+ } from 'vue'
17
+ import {
18
+ fileUploadDuplicationRule,
19
+ fileUploadFormatRule,
20
+ fileUploadMaxFileNumberRule,
21
+ } from '@/utils/amelipro/rules/uploadFile'
8
22
  import AmeliproChips from '../AmeliproChips/AmeliproChips.vue'
9
23
  import AmeliproIcon from '../AmeliproIcon/AmeliproIcon.vue'
10
24
  import AmeliproMessage from '../AmeliproMessage/AmeliproMessage.vue'
@@ -23,7 +37,7 @@
23
37
  }
24
38
 
25
39
  const props = defineProps({
26
- ariaRequired: {
40
+ required: {
27
41
  type: Boolean,
28
42
  default: false,
29
43
  },
@@ -359,7 +373,7 @@
359
373
  const validationRules = computed<ValidationRule[]>(() => {
360
374
  const rules = [...props.rules]
361
375
 
362
- if (props.ariaRequired) {
376
+ if (props.required) {
363
377
  rules.push(isRequiredFn(props.errorMessages))
364
378
  }
365
379
 
@@ -410,7 +424,7 @@
410
424
  // }
411
425
 
412
426
  // --- Watchers ---
413
- watch(() => props.ariaRequired, () => {
427
+ watch(() => props.required, () => {
414
428
  internalValidate()
415
429
  })
416
430
 
@@ -477,7 +491,7 @@
477
491
  :accept="fileTypeAccepted.join(',')"
478
492
  :aria-describedby="describedby"
479
493
  :aria-invalid="hasError"
480
- :aria-required="ariaRequired"
494
+ :required="required"
481
495
  :clearable="false"
482
496
  density="compact"
483
497
  :disabled="disabled"
@@ -510,7 +524,7 @@
510
524
  class="text-body-1 upload-input-text text-left text-ap-grey-darken-1 amelipro-upload__text"
511
525
  >
512
526
  {{ inputLabel }}
513
- <span v-if="ariaRequired">
527
+ <span v-if="required">
514
528
  <span aria-hidden="true">
515
529
  &nbsp;*
516
530
  </span>
@@ -1,74 +1,282 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { VueWrapper, shallowMount } from '@vue/test-utils'
3
- import { beforeEach, describe, expect, it } from 'vitest'
1
+ import { shallowMount, VueWrapper } from '@vue/test-utils'
2
+ import { beforeEach, describe, it, expect } from 'vitest'
4
3
  import AmeliproUpload from '../AmeliproUpload.vue'
5
- import type { ComponentProps } from 'vue-component-type-helpers'
4
+ import TestHelper from '@tests/helpers/TestHelper'
5
+ import type { ErrorMessages } from '@/utils/rules/types'
6
+ import { defineComponent, h, type PropType } from 'vue'
7
+ import type { ValidationRule } from 'vuetify'
8
+ import type { ErrorBucket } from '../types'
6
9
 
7
- const requiredPropValues = (): ComponentProps<typeof AmeliproUpload> => ({
8
- fileTypeAccepted: ['text/plain'],
9
- uniqueId: 'required-unique-id',
10
- })
10
+ const expectedPropOptions = {
11
+ required: {
12
+ type: Boolean,
13
+ default: false,
14
+ },
15
+ disabled: {
16
+ type: Boolean,
17
+ default: false,
18
+ },
19
+ errorMessages: {
20
+ type: Object as PropType<ErrorMessages>,
21
+ default: undefined,
22
+ },
23
+ errorTitle: {
24
+ type: String,
25
+ default: undefined,
26
+ },
27
+ externalErrors: {
28
+ type: Array as PropType<ErrorBucket[] | string[]>,
29
+ default: () => [],
30
+ },
31
+ fileTypeAccepted: {
32
+ type: Array as PropType<string[]>,
33
+ required: true,
34
+ },
35
+ inputLabel: {
36
+ type: String,
37
+ default: 'Cliquer sur ce bouton pour joindre vos documents ou les glisser-déposer directement dans ce cadre',
38
+ },
39
+ maxFileNumber: {
40
+ type: Number,
41
+ default: 1,
42
+ },
43
+ rules: {
44
+ type: Array as PropType<ValidationRule[]>,
45
+ default: () => [],
46
+ },
47
+ uniqueId: {
48
+ type: String,
49
+ required: true,
50
+ },
51
+ value: {
52
+ type: Array as PropType<File[]>,
53
+ default: () => [],
54
+ },
55
+ warningRules: {
56
+ type: Array as PropType<ValidationRule[]>,
57
+ default: () => [],
58
+ },
59
+ warningTitle: {
60
+ type: String,
61
+ default: undefined,
62
+ },
63
+ }
11
64
 
12
- const defaultPropValues = (): ComponentProps<typeof AmeliproUpload> => ({
13
- ...requiredPropValues(),
14
- ariaRequired: false,
15
- disabled: false,
16
- errorMessages: undefined,
17
- errorTitle: undefined,
18
- externalErrors: [],
19
- inputLabel: 'Cliquer sur ce bouton pour joindre vos documents ou les glisser-déposer directement dans ce cadre',
20
- maxFileNumber: 1,
21
- rules: [],
22
- value: [],
23
- warningRules: [],
24
- warningTitle: undefined,
65
+ const requiredPropValues = () => ({
66
+ fileTypeAccepted: ['required-type'],
67
+ uniqueId: 'required-unique-id',
25
68
  })
26
69
 
27
- const modifiedPropValues = (): ComponentProps<typeof AmeliproUpload> => ({
28
- ariaRequired: true,
70
+ const modifiedPropValues = () => ({
71
+ required: true,
29
72
  disabled: true,
30
73
  errorMessages: { error: 'Modified error message' },
74
+ errorTitle: 'Modified error title',
75
+ externalErrors: ['Modified external error'],
31
76
  fileTypeAccepted: ['modified-type-1', 'modified-type-2'],
32
77
  inputLabel: 'Modified input label',
33
78
  maxFileNumber: 3,
34
- value: [new File(['foo'], 'modified-file.txt')],
35
79
  rules: [() => true],
36
80
  uniqueId: 'modified-unique-id',
81
+ value: [new File(['foo'], 'modified-file.txt')],
82
+ warningRules: [() => true],
83
+ warningTitle: 'Modified warning title',
84
+ })
85
+
86
+ const VFileInputMock = defineComponent({
87
+ name: 'VFileInput',
88
+ props: {
89
+ id: { type: String, required: true },
90
+ },
91
+ setup(props, { slots }) {
92
+ return () =>
93
+ h('v-file-input-stub', { id: props.id }, [
94
+ slots.prepend ? slots.prepend() : null,
95
+ ])
96
+ },
37
97
  })
38
98
 
99
+ const testHelper = new TestHelper(AmeliproUpload)
100
+ testHelper
101
+ .setExpectedPropOptions(expectedPropOptions)
102
+ .setRequiredPropValues(requiredPropValues)
103
+ .setModifiedPropValues(modifiedPropValues)
104
+
39
105
  describe('AmeliproUpload', () => {
106
+ describe('Snapshots', () => {
107
+ testHelper.snapshots()
108
+ })
109
+
110
+ describe('Properties', () => {
111
+ testHelper.properties()
112
+ })
113
+
40
114
  describe('Setting props should update attributes of inner tags', () => {
41
- let wrapper: VueWrapper<any>
115
+ let wrapper: VueWrapper<InstanceType<typeof AmeliproUpload>>
116
+
42
117
  beforeEach(() => {
43
- wrapper = shallowMount(AmeliproUpload, { props: requiredPropValues() })
118
+ wrapper = shallowMount(AmeliproUpload, {
119
+ props: requiredPropValues(),
120
+ global: {
121
+ stubs: {
122
+ VFileInput: VFileInputMock,
123
+ },
124
+ },
125
+ })
44
126
  })
45
127
 
46
- it('prop uniqueId sets attribute id on root container', async () => {
47
- expect(wrapper.attributes('id')).toBe(`${defaultPropValues().uniqueId}-container`)
48
- const { uniqueId } = modifiedPropValues()
49
- await wrapper.setProps({ uniqueId })
50
- expect(wrapper.attributes('id')).toBe(`${modifiedPropValues().uniqueId}-container`)
128
+ describe('Main', () => {
129
+ it('prop uniqueId sets attribute id', async () => {
130
+ expect(wrapper.attributes('id')).toBe(`${testHelper.default('uniqueId')}-container`)
131
+
132
+ const { uniqueId } = modifiedPropValues()
133
+ await wrapper.setProps({ uniqueId })
134
+ expect(wrapper.attributes('id')).toBe(`${testHelper.modified('uniqueId')}-container`)
135
+ })
136
+
137
+ it('prop externalErrors sets class invalid and valid', async () => {
138
+ expect(wrapper.classes()).not.toContain('invalid')
139
+ expect(wrapper.classes()).toContain('valid')
140
+
141
+ const { externalErrors } = modifiedPropValues()
142
+ await wrapper.setProps({ externalErrors })
143
+ expect(wrapper.classes()).toContain('invalid')
144
+ })
145
+ })
146
+
147
+ // amelipro-upload__label
148
+ describe('AmeliproUpload Label', () => {
149
+ const tag = () => wrapper.find('.amelipro-upload__label')
150
+
151
+ it('prop uniqueId sets label text', async () => {
152
+ expect(tag().attributes('id')).toBe(`${testHelper.default('uniqueId')}-label`)
153
+
154
+ const { uniqueId } = modifiedPropValues()
155
+ await wrapper.setProps({ uniqueId })
156
+ expect(tag().attributes('id')).toBe(`${testHelper.modified('uniqueId')}-label`)
157
+ })
158
+ })
159
+
160
+ // amelipro-upload__text
161
+ describe('AmeliproUpload Text', () => {
162
+ const tag = () => wrapper.find('.amelipro-upload__text')
163
+
164
+ it('prop inputLabel sets label text', async () => {
165
+ expect(tag().text()).toContain(testHelper.default('inputLabel'))
166
+
167
+ const { inputLabel } = modifiedPropValues()
168
+ await wrapper.setProps({ inputLabel })
169
+ expect(tag().text()).toContain(testHelper.modified('inputLabel'))
170
+ })
171
+
172
+ // required change text
173
+ it('prop required adds required text to label', async () => {
174
+ expect(tag().text()).not.toContain('Champ obligatoire')
175
+
176
+ const { required } = modifiedPropValues()
177
+ await wrapper.setProps({ required })
178
+ expect(tag().text()).toContain('Champ obligatoire')
179
+ })
180
+ })
181
+
182
+ // label > img
183
+ describe('Label Image', () => {
184
+ const img = () => wrapper.find('.amelipro-upload__label img')
185
+
186
+ // unique id
187
+ it('prop uniqueId sets attribute id', async () => {
188
+ expect(img().attributes('id')).toBe(`${testHelper.default('uniqueId')}-upload-img`)
189
+
190
+ const { uniqueId } = modifiedPropValues()
191
+ await wrapper.setProps({ uniqueId })
192
+ expect(img().attributes('id')).toBe(`${testHelper.modified('uniqueId')}-upload-img`)
193
+ })
51
194
  })
52
195
  })
53
196
 
54
197
  describe('Setting props should update props or attributes of inner components', () => {
55
- let wrapper: VueWrapper<any>
56
- beforeEach(() => {
57
- wrapper = shallowMount(AmeliproUpload, { props: requiredPropValues() })
198
+ describe('VFileInput', () => {
199
+ let wrapper: VueWrapper<InstanceType<typeof AmeliproUpload>>
200
+ const fileInput = () => wrapper.findComponent({ name: 'VFileInput' })
201
+
202
+ beforeEach(() => {
203
+ wrapper = shallowMount(AmeliproUpload, { props: requiredPropValues() })
204
+ })
205
+
206
+ it('prop uniqueId sets attribute id', async () => {
207
+ expect(fileInput().attributes('id')).toBe(`${testHelper.default('uniqueId')}`)
208
+
209
+ const { uniqueId } = modifiedPropValues()
210
+ await wrapper.setProps({ uniqueId })
211
+ expect(fileInput().attributes('id')).toBe(`${testHelper.modified('uniqueId')}`)
212
+ })
213
+
214
+ it('prop externalErrors sets attribute describedby', async () => {
215
+ expect(fileInput().attributes('aria-describedby')).toBeUndefined()
216
+
217
+ const { externalErrors } = modifiedPropValues()
218
+ await wrapper.setProps({ externalErrors })
219
+ expect(fileInput().attributes('aria-describedby')).toBe('required-unique-id-error')
220
+ })
221
+
222
+ it('prop externalErrors sets attribue aria-invalid', async () => {
223
+ expect(fileInput().attributes('aria-invalid')).toBe('false')
224
+
225
+ const { externalErrors } = modifiedPropValues()
226
+ await wrapper.setProps({ externalErrors })
227
+ expect(fileInput().attributes('aria-invalid')).toBe('true')
228
+ })
229
+
230
+ it('prop required sets attribue required', async () => {
231
+ expect(fileInput().attributes('required')).toBe('false')
232
+
233
+ const { required } = modifiedPropValues()
234
+ await wrapper.setProps({ required })
235
+ expect(fileInput().attributes('required')).toBe('true')
236
+ })
58
237
  })
59
238
 
60
- it('prop disabled sets prop disabled on VFileInput', async () => {
61
- expect(wrapper.findComponent({ name: 'VFileInput' }).props('disabled')).toBe(defaultPropValues().disabled)
62
- const { disabled } = modifiedPropValues()
63
- await wrapper.setProps({ disabled })
64
- expect(wrapper.findComponent({ name: 'VFileInput' }).props('disabled')).toBe(modifiedPropValues().disabled)
239
+ describe('AmeliproIcon', () => {
240
+ let wrapper: VueWrapper<InstanceType<typeof AmeliproUpload>>
241
+ const icon = () => wrapper.findComponent({ name: 'AmeliproIcon' })
242
+
243
+ beforeEach(() => {
244
+ wrapper = shallowMount(AmeliproUpload, {
245
+ props: requiredPropValues(),
246
+ global: {
247
+ stubs: {
248
+ VFileInput: VFileInputMock,
249
+ },
250
+ },
251
+ })
252
+ })
253
+
254
+ it('prop uniqueId sets attribute id', async () => {
255
+ expect(icon().props('uniqueId')).toBe(`${testHelper.default('uniqueId')}-upload-icon`)
256
+
257
+ const { uniqueId } = modifiedPropValues()
258
+ await wrapper.setProps({ uniqueId })
259
+ expect(icon().props('uniqueId')).toBe(`${testHelper.modified('uniqueId')}-upload-icon`)
260
+ })
65
261
  })
262
+ })
66
263
 
67
- it('prop ariaRequired sets attribute aria-required on VFileInput', async () => {
68
- expect(wrapper.findComponent({ name: 'VFileInput' }).attributes('aria-required')).toBe(String(defaultPropValues().ariaRequired))
69
- const { ariaRequired } = modifiedPropValues()
70
- await wrapper.setProps({ ariaRequired })
71
- expect(wrapper.findComponent({ name: 'VFileInput' }).attributes('aria-required')).toBe(String(modifiedPropValues().ariaRequired))
264
+ describe('Slots', () => {
265
+ it('displays slot content', () => {
266
+ const wrapper = shallowMount(AmeliproUpload, {
267
+ props: requiredPropValues(),
268
+ slots: {
269
+ 'append-icon': '<div id="slot-content">Slot Content</div>',
270
+ },
271
+ global: {
272
+ stubs: {
273
+ VFileInput: VFileInputMock,
274
+ },
275
+ },
276
+ })
277
+ expect(wrapper.find('#slot-content').text()).toBe('Slot Content')
72
278
  })
73
279
  })
280
+
281
+ // TODO: Events
74
282
  })
@@ -0,0 +1,166 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`AmeliproUpload > Snapshots > renders the component with all properties filled in 1`] = `
4
+ <div
5
+ class="
6
+ amelipro-upload
7
+ d-flex
8
+ dashed-style
9
+ flex-column
10
+ invalid
11
+ "
12
+ id="modified-unique-id-container"
13
+ >
14
+ <div class="
15
+ align-center
16
+ d-flex
17
+ justify-space-between
18
+ w-100
19
+ ">
20
+ <v-file-input-stub
21
+ accept="modified-type-1,modified-type-2"
22
+ active="false"
23
+ aria-describedby="modified-unique-id-error modified-unique-id-warning"
24
+ aria-invalid="true"
25
+ chips="false"
26
+ clearable="false"
27
+ clearicon="$clear"
28
+ counter="false"
29
+ countersizestring="$vuetify.fileInput.counterSize"
30
+ counterstring="$vuetify.fileInput.counter"
31
+ density="compact"
32
+ details="false"
33
+ direction="horizontal"
34
+ dirty="false"
35
+ disabled="true"
36
+ error="true"
37
+ errormessages=""
38
+ flat="false"
39
+ focused="false"
40
+ glow="false"
41
+ hidedetails="true"
42
+ hideinput="false"
43
+ hidespinbuttons="false"
44
+ iconcolor="false"
45
+ id="modified-unique-id"
46
+ loading="false"
47
+ maxerrors="1"
48
+ messages=""
49
+ modelvalue=""
50
+ multiple="true"
51
+ persistentclear="false"
52
+ persistenthint="false"
53
+ prependicon=""
54
+ required="true"
55
+ reverse="false"
56
+ rules=""
57
+ showsize="false"
58
+ singleline="false"
59
+ tile="false"
60
+ variant="filled"
61
+ ></v-file-input-stub>
62
+ </div>
63
+ <div class="
64
+ d-flex
65
+ error-wrapper
66
+ ">
67
+ <amelipro-message-stub
68
+ alignstart="false"
69
+ borderleftmessage="false"
70
+ class="my-2"
71
+ dark="false"
72
+ dismissible="false"
73
+ noicon="false"
74
+ text="true"
75
+ type="error"
76
+ uniqueid="modified-unique-id-error"
77
+ value="true"
78
+ width="100%"
79
+ ></amelipro-message-stub>
80
+ </div>
81
+ <div class="
82
+ d-flex
83
+ warning-wrapper
84
+ ">
85
+ <amelipro-message-stub
86
+ alignstart="false"
87
+ borderleftmessage="false"
88
+ class="my-2"
89
+ dark="false"
90
+ dismissible="false"
91
+ noicon="false"
92
+ text="true"
93
+ type="warning"
94
+ uniqueid="modified-unique-id-warning"
95
+ value="true"
96
+ width="100%"
97
+ ></amelipro-message-stub>
98
+ </div>
99
+ <!-- v-if -->
100
+ </div>
101
+ `;
102
+
103
+ exports[`AmeliproUpload > Snapshots > renders the component with only required properties filled in 1`] = `
104
+ <div
105
+ class="
106
+ amelipro-upload
107
+ d-flex
108
+ dashed-style
109
+ flex-column
110
+ valid
111
+ "
112
+ id="required-unique-id-container"
113
+ >
114
+ <div class="
115
+ align-center
116
+ d-flex
117
+ justify-space-between
118
+ w-100
119
+ ">
120
+ <v-file-input-stub
121
+ accept="required-type"
122
+ active="false"
123
+ aria-invalid="false"
124
+ chips="false"
125
+ clearable="false"
126
+ clearicon="$clear"
127
+ counter="false"
128
+ countersizestring="$vuetify.fileInput.counterSize"
129
+ counterstring="$vuetify.fileInput.counter"
130
+ density="compact"
131
+ details="false"
132
+ direction="horizontal"
133
+ dirty="false"
134
+ disabled="false"
135
+ error="false"
136
+ errormessages=""
137
+ flat="false"
138
+ focused="false"
139
+ glow="false"
140
+ hidedetails="true"
141
+ hideinput="false"
142
+ hidespinbuttons="false"
143
+ iconcolor="false"
144
+ id="required-unique-id"
145
+ loading="false"
146
+ maxerrors="1"
147
+ messages=""
148
+ modelvalue=""
149
+ multiple="true"
150
+ persistentclear="false"
151
+ persistenthint="false"
152
+ prependicon=""
153
+ required="false"
154
+ reverse="false"
155
+ rules=""
156
+ showsize="false"
157
+ singleline="false"
158
+ tile="false"
159
+ variant="filled"
160
+ ></v-file-input-stub>
161
+ </div>
162
+ <!-- v-if -->
163
+ <!-- v-if -->
164
+ <!-- v-if -->
165
+ </div>
166
+ `;
@@ -0,0 +1,137 @@
1
+ import { VueWrapper, mount, shallowMount } from '@vue/test-utils'
2
+ import { beforeEach, describe, expect, it } from 'vitest'
3
+ import type { ComponentProps } from 'vue-component-type-helpers'
4
+ import type { ExpectedPropOptions } from '@tests/types'
5
+ import type { PropType } from 'vue'
6
+ import type { Service } from '../types'
7
+ import ServiceBtn from '../ServiceBtn.vue'
8
+ import TestHelper from '@tests/helpers/TestHelper'
9
+
10
+ const expectedPropOptions: ExpectedPropOptions<typeof ServiceBtn> = {
11
+ iconBgColor: {
12
+ type: String,
13
+ required: true,
14
+ },
15
+ iconHoverBgColor: {
16
+ type: String,
17
+ required: true,
18
+ },
19
+ item: {
20
+ type: Object as PropType<Service>,
21
+ required: true,
22
+ },
23
+ uniqueId: {
24
+ type: String,
25
+ default: undefined,
26
+ },
27
+ }
28
+
29
+ // Values pour les props "required"
30
+ const requiredPropValues = (): ComponentProps<typeof ServiceBtn> => ({
31
+ iconBgColor: 'required-icon-bg-color',
32
+ iconHoverBgColor: 'required-icon-hover-bg-color',
33
+ item: {
34
+ icon: 'required-item-icon',
35
+ label: 'Required item label',
36
+ },
37
+ })
38
+
39
+ // Valeurs pour les props "modified"
40
+ const modifiedPropValues = (): ComponentProps<typeof ServiceBtn> => ({
41
+ iconBgColor: 'ap-blue-darken-1',
42
+ iconHoverBgColor: 'ap-blue darken-2',
43
+ item: {
44
+ icon: 'modified-item-icon',
45
+ label: 'Modified item label',
46
+ },
47
+ uniqueId: 'modified-unique-id',
48
+ })
49
+
50
+ const testHelper = new TestHelper(ServiceBtn)
51
+ testHelper.setExpectedPropOptions(expectedPropOptions)
52
+ .setRequiredPropValues(requiredPropValues)
53
+ .setModifiedPropValues(modifiedPropValues)
54
+
55
+ describe('ServiceBtn', () => {
56
+ describe('Snapshots', () => {
57
+ testHelper.snapshots()
58
+ })
59
+
60
+ describe('Properties', () => {
61
+ testHelper.properties()
62
+ })
63
+
64
+ describe('Setting props should update attributes of inner tags', () => {
65
+ let vueWrapper: VueWrapper<InstanceType<typeof ServiceBtn>>
66
+ beforeEach(() => {
67
+ // On utilie mount car le label est dans un slot
68
+ // et shallowMount ne gère pas les slots
69
+ vueWrapper = mount(ServiceBtn, { props: requiredPropValues() })
70
+ })
71
+
72
+ it('prop uniqueId sets id attribute on label span', async () => {
73
+ // Par défaut, uniqueId n'est pas défini donc pas d'id sur le span
74
+ expect(vueWrapper.find('.service-btn__text').attributes('id')).toBeUndefined()
75
+ const { uniqueId } = modifiedPropValues()
76
+ await vueWrapper.setProps({ uniqueId })
77
+ expect(vueWrapper.find('.service-btn__text').attributes('id')).toBe(`${testHelper.modified('uniqueId')}-text`)
78
+ })
79
+ })
80
+
81
+ describe('Setting props should update props or attributes of inner components', () => {
82
+ let vueWrapper: VueWrapper<InstanceType<typeof ServiceBtn>>
83
+ beforeEach(() => {
84
+ vueWrapper = shallowMount(ServiceBtn, { props: requiredPropValues() })
85
+ })
86
+
87
+ it('prop iconBgColor sets prop icon-bg-color on AmeliproIconBtn', async () => {
88
+ expect(vueWrapper.findComponent({ name: 'AmeliproIconBtn' }).props('iconBgColor')).toBe(testHelper.default('iconBgColor'))
89
+ const { iconBgColor } = modifiedPropValues()
90
+ await vueWrapper.setProps({ iconBgColor })
91
+ expect(vueWrapper.findComponent({ name: 'AmeliproIconBtn' }).props('iconBgColor')).toBe(testHelper.modified('iconBgColor'))
92
+ })
93
+
94
+ it('prop iconHoverBgColor sets prop icon-hover-bg-color on AmeliproIconBtn', async () => {
95
+ expect(vueWrapper.findComponent({ name: 'AmeliproIconBtn' }).props('iconHoverBgColor')).toBe(testHelper.default('iconHoverBgColor'))
96
+ const { iconHoverBgColor } = modifiedPropValues()
97
+ await vueWrapper.setProps({ iconHoverBgColor })
98
+ expect(vueWrapper.findComponent({ name: 'AmeliproIconBtn' }).props('iconHoverBgColor')).toBe(testHelper.modified('iconHoverBgColor'))
99
+ })
100
+ })
101
+
102
+ describe('Events', () => {
103
+ it('emits click when AmeliproIconBtn is clicked', async () => {
104
+ const vueWrapper = mount(ServiceBtn, { props: requiredPropValues() })
105
+ await vueWrapper.findComponent({ name: 'AmeliproIconBtn' }).trigger('click')
106
+ expect(vueWrapper.emitted('click')).toBeTruthy()
107
+ })
108
+ it('emits click when AmeliproBtn is clicked', async () => {
109
+ const vueWrapper = mount(ServiceBtn, {
110
+ props: {
111
+ ...requiredPropValues(),
112
+ item: { imgSrc: 'img.png', label: 'Required item label' },
113
+ },
114
+ })
115
+ await vueWrapper.findComponent({ name: 'AmeliproBtn' }).trigger('click')
116
+ expect(vueWrapper.emitted('click')).toBeTruthy()
117
+ })
118
+ })
119
+
120
+ describe('Other', () => {
121
+ it('renders AmeliproIconBtn if item.icon is defined', () => {
122
+ const vueWrapper = shallowMount(ServiceBtn, { props: requiredPropValues() })
123
+ expect(vueWrapper.findComponent({ name: 'AmeliproIconBtn' }).exists()).toBe(true)
124
+ expect(vueWrapper.findComponent({ name: 'AmeliproBtn' }).exists()).toBe(false)
125
+ })
126
+ it('renders AmeliproBtn if item.imgSrc is defined and no icon', () => {
127
+ const vueWrapper = shallowMount(ServiceBtn, {
128
+ props: {
129
+ ...requiredPropValues(),
130
+ item: { imgSrc: 'img.png', label: 'Required item label' },
131
+ },
132
+ })
133
+ expect(vueWrapper.findComponent({ name: 'AmeliproBtn' }).exists()).toBe(true)
134
+ expect(vueWrapper.findComponent({ name: 'AmeliproIconBtn' }).exists()).toBe(false)
135
+ })
136
+ })
137
+ })