@cnamts/synapse 1.0.9 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/dist/{DateFilter-BylukfjR.js → DateFilter-C0wDuzgn.js} +1 -1
  2. package/dist/{NumberFilter-C_bUk9o1.js → NumberFilter-CBj7zdOi.js} +1 -1
  3. package/dist/{PeriodFilter-dVOmcfmt.js → PeriodFilter-DB4wWyKy.js} +1 -1
  4. package/dist/{SelectFilter-BW8KpXkQ.js → SelectFilter-Dces8572.js} +1 -1
  5. package/dist/{TextFilter-diwVzTz7.js → TextFilter-BU9nlkuS.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.d.ts +110 -0
  7. package/dist/components/Amelipro/AmeliproAccordionFrieze/types.d.ts +6 -0
  8. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +120 -120
  9. package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +2 -2
  10. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +3 -3
  11. package/dist/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.d.ts +47 -0
  12. package/dist/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.d.ts +88 -0
  13. package/dist/components/Amelipro/AmeliproDentalChart/types.d.ts +13 -0
  14. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +70 -0
  15. package/dist/components/Amelipro/AmeliproFirstLogin/locales.d.ts +46 -0
  16. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +1 -1
  17. package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +149 -0
  18. package/dist/components/Amelipro/AmeliproPatientLogged/types.d.ts +48 -0
  19. package/dist/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.d.ts +177 -0
  20. package/dist/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.d.ts +169 -0
  21. package/dist/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/types.d.ts +5 -0
  22. package/dist/components/Amelipro/AmeliproPatientLogin/types.d.ts +5 -0
  23. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +2925 -0
  24. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/types.d.ts +11 -0
  25. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +4489 -0
  26. package/dist/components/Amelipro/AmeliproPostalAddressField/types.d.ts +17 -0
  27. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +120 -120
  28. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +120 -120
  29. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +12 -12
  30. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +30 -30
  31. package/dist/components/Amelipro/AmeliproTooltips/AmeliproTooltips.d.ts +12 -2
  32. package/dist/components/CookieBanner/CookieBanner.d.ts +7 -7
  33. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +20 -20
  34. package/dist/components/CookiesSelection/CookiesSelection.d.ts +9 -9
  35. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +7 -6
  36. package/dist/components/Customs/SyForm/SyForm.d.ts +1820 -0
  37. package/dist/components/Customs/SyTabs/SyTabs.d.ts +3 -1
  38. package/dist/components/Customs/SyTabs/useTabTransition.d.ts +5 -0
  39. package/dist/components/Customs/SyTextField/SyTextField.d.ts +36 -31
  40. package/dist/components/Customs/SyTextField/types.d.ts +1 -1
  41. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +232 -134
  42. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +121 -71
  43. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +60 -37
  44. package/dist/components/DatePicker/composables/useDateValidation.d.ts +14 -2
  45. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +2 -2
  46. package/dist/components/DatePicker/tests/setup.d.ts +74354 -0
  47. package/dist/components/DialogBox/DialogBox.d.ts +10 -10
  48. package/dist/components/DialogBox/locales.d.ts +1 -0
  49. package/dist/components/DialogBox/useDraggable.d.ts +2 -0
  50. package/dist/components/FilterSideBar/FilterSideBar.d.ts +7 -7
  51. package/dist/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.d.ts +2 -0
  52. package/dist/components/HeaderNavigationBar/types.d.ts +1 -0
  53. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +842 -9
  54. package/dist/components/HeaderToolbar/locales.d.ts +3 -0
  55. package/dist/components/HeaderToolbar/useMobileRightMenu.d.ts +10 -0
  56. package/dist/components/LangBtn/LangBtn.d.ts +8 -8
  57. package/dist/components/NirField/NirField.d.ts +90 -65
  58. package/dist/components/NirField/locales.d.ts +6 -4
  59. package/dist/components/PasswordField/PasswordField.d.ts +3 -1
  60. package/dist/components/PasswordField/locales.d.ts +2 -0
  61. package/dist/components/PeriodField/PeriodField.d.ts +460 -260
  62. package/dist/components/PhoneField/PhoneField.d.ts +45 -32
  63. package/dist/components/RangeField/RangeField.d.ts +11 -1
  64. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +2 -2
  65. package/dist/components/RangeField/config.d.ts +3 -0
  66. package/dist/components/RatingPicker/EmotionPicker/EmotionPicker.d.ts +3 -1
  67. package/dist/components/RatingPicker/EmotionPicker/locales.d.ts +2 -0
  68. package/dist/components/RatingPicker/NumberPicker/NumberPicker.d.ts +3 -1
  69. package/dist/components/RatingPicker/StarsPicker/StarsPicker.d.ts +3 -1
  70. package/dist/components/RatingPicker/locales.d.ts +1 -0
  71. package/dist/components/SearchListField/SearchListField.d.ts +6 -6
  72. package/dist/components/SyAlert/SyAlert.d.ts +2 -2
  73. package/dist/components/SyTextArea/SyTextArea.d.ts +13 -13
  74. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +3 -5
  75. package/dist/components/Tables/SyTable/SyTable.d.ts +3 -5
  76. package/dist/components/Tables/common/SyTablePagination.d.ts +8 -6
  77. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +4 -4
  78. package/dist/components/Tables/common/usePagination.d.ts +1 -3
  79. package/dist/components/Tables/common/useTableCheckbox.d.ts +1 -1
  80. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +4 -4
  81. package/dist/components/index.d.ts +8 -0
  82. package/dist/composables/validation/useFormValidation.d.ts +24 -0
  83. package/dist/composables/validation/useValidatable.d.ts +17 -0
  84. package/dist/design-system-v3.js +181 -173
  85. package/dist/design-system-v3.umd.cjs +265 -263
  86. package/dist/{main-2eWGB7zZ.js → main-Dt4iNotT.js} +14095 -11151
  87. package/dist/style.css +1 -1
  88. package/dist/tooth-11-B9fN9Ow_.js +4 -0
  89. package/dist/tooth-12-BOOjuDe9.js +4 -0
  90. package/dist/tooth-13-DVU7jhZ8.js +4 -0
  91. package/dist/tooth-14-CXNleTBu.js +4 -0
  92. package/dist/tooth-15-iq3z8dzZ.js +4 -0
  93. package/dist/tooth-16-BuNIHSQk.js +4 -0
  94. package/dist/tooth-17-DLb4ijsH.js +4 -0
  95. package/dist/tooth-18-huijQe68.js +4 -0
  96. package/dist/tooth-21-Bl7Q-o4y.js +4 -0
  97. package/dist/tooth-22-ChQKI3h5.js +4 -0
  98. package/dist/tooth-23-CkzbEvBa.js +4 -0
  99. package/dist/tooth-24-BpaPUSEp.js +4 -0
  100. package/dist/tooth-25-BaVfhAL6.js +4 -0
  101. package/dist/tooth-26-BnL03Jv5.js +4 -0
  102. package/dist/tooth-27-BaHyZfhH.js +4 -0
  103. package/dist/tooth-28-BrMBVEgX.js +4 -0
  104. package/dist/tooth-31-DEH3Btej.js +4 -0
  105. package/dist/tooth-32-Dqcy596v.js +4 -0
  106. package/dist/tooth-33-DLzQOVky.js +4 -0
  107. package/dist/tooth-34-36nkjUPW.js +4 -0
  108. package/dist/tooth-35-VfFhleWT.js +4 -0
  109. package/dist/tooth-36-BHwtGkLx.js +4 -0
  110. package/dist/tooth-37-CT47Rtk-.js +4 -0
  111. package/dist/tooth-38-D15JmYSD.js +4 -0
  112. package/dist/tooth-41--x9N_iSc.js +4 -0
  113. package/dist/tooth-42-DZ1D3qmP.js +4 -0
  114. package/dist/tooth-43-C9T3b5_0.js +4 -0
  115. package/dist/tooth-44-CsPRBSZV.js +4 -0
  116. package/dist/tooth-45-Dg3wQunm.js +4 -0
  117. package/dist/tooth-46-DAOEt4G5.js +4 -0
  118. package/dist/tooth-47-DcqUeVM0.js +4 -0
  119. package/dist/tooth-48-0MVzkYem.js +4 -0
  120. package/dist/tooth-51-DOTod22I.js +4 -0
  121. package/dist/tooth-52-DZB1Jabv.js +4 -0
  122. package/dist/tooth-53-nunm2BQr.js +4 -0
  123. package/dist/tooth-54-BwdYfBd-.js +4 -0
  124. package/dist/tooth-55-BUJdNwqL.js +4 -0
  125. package/dist/tooth-61-BwqR1B88.js +4 -0
  126. package/dist/tooth-62-BzaECsvF.js +4 -0
  127. package/dist/tooth-63-wjdIfSq2.js +4 -0
  128. package/dist/tooth-64-CGW4ZcUq.js +4 -0
  129. package/dist/tooth-65-DxH4GgAL.js +4 -0
  130. package/dist/tooth-71-CmjVz11G.js +4 -0
  131. package/dist/tooth-72-CCyNUD-W.js +4 -0
  132. package/dist/tooth-73-D6aJwVz4.js +4 -0
  133. package/dist/tooth-74-zNtDQ6ig.js +4 -0
  134. package/dist/tooth-75-DDEx6y4E.js +4 -0
  135. package/dist/tooth-81-xg8UVvz2.js +4 -0
  136. package/dist/tooth-82-CtNXwBtB.js +4 -0
  137. package/dist/tooth-83-C2ODw7VT.js +4 -0
  138. package/dist/tooth-84-BKIdO9HA.js +4 -0
  139. package/dist/tooth-85-3YmvfAsK.js +4 -0
  140. package/package.json +2 -2
  141. package/src/assets/amelipro/img/dental-chart-img/tooth-11.svg +16 -0
  142. package/src/assets/amelipro/img/dental-chart-img/tooth-12.svg +11 -0
  143. package/src/assets/amelipro/img/dental-chart-img/tooth-13.svg +11 -0
  144. package/src/assets/amelipro/img/dental-chart-img/tooth-14.svg +26 -0
  145. package/src/assets/amelipro/img/dental-chart-img/tooth-15.svg +21 -0
  146. package/src/assets/amelipro/img/dental-chart-img/tooth-16.svg +31 -0
  147. package/src/assets/amelipro/img/dental-chart-img/tooth-17.svg +26 -0
  148. package/src/assets/amelipro/img/dental-chart-img/tooth-18.svg +26 -0
  149. package/src/assets/amelipro/img/dental-chart-img/tooth-21.svg +16 -0
  150. package/src/assets/amelipro/img/dental-chart-img/tooth-22.svg +11 -0
  151. package/src/assets/amelipro/img/dental-chart-img/tooth-23.svg +11 -0
  152. package/src/assets/amelipro/img/dental-chart-img/tooth-24.svg +26 -0
  153. package/src/assets/amelipro/img/dental-chart-img/tooth-25.svg +21 -0
  154. package/src/assets/amelipro/img/dental-chart-img/tooth-26.svg +31 -0
  155. package/src/assets/amelipro/img/dental-chart-img/tooth-27.svg +26 -0
  156. package/src/assets/amelipro/img/dental-chart-img/tooth-28.svg +26 -0
  157. package/src/assets/amelipro/img/dental-chart-img/tooth-31.svg +11 -0
  158. package/src/assets/amelipro/img/dental-chart-img/tooth-32.svg +11 -0
  159. package/src/assets/amelipro/img/dental-chart-img/tooth-33.svg +11 -0
  160. package/src/assets/amelipro/img/dental-chart-img/tooth-34.svg +11 -0
  161. package/src/assets/amelipro/img/dental-chart-img/tooth-35.svg +22 -0
  162. package/src/assets/amelipro/img/dental-chart-img/tooth-36.svg +26 -0
  163. package/src/assets/amelipro/img/dental-chart-img/tooth-37.svg +26 -0
  164. package/src/assets/amelipro/img/dental-chart-img/tooth-38.svg +11 -0
  165. package/src/assets/amelipro/img/dental-chart-img/tooth-41.svg +11 -0
  166. package/src/assets/amelipro/img/dental-chart-img/tooth-42.svg +11 -0
  167. package/src/assets/amelipro/img/dental-chart-img/tooth-43.svg +11 -0
  168. package/src/assets/amelipro/img/dental-chart-img/tooth-44.svg +11 -0
  169. package/src/assets/amelipro/img/dental-chart-img/tooth-45.svg +22 -0
  170. package/src/assets/amelipro/img/dental-chart-img/tooth-46.svg +26 -0
  171. package/src/assets/amelipro/img/dental-chart-img/tooth-47.svg +26 -0
  172. package/src/assets/amelipro/img/dental-chart-img/tooth-48.svg +11 -0
  173. package/src/assets/amelipro/img/dental-chart-img/tooth-51.svg +11 -0
  174. package/src/assets/amelipro/img/dental-chart-img/tooth-52.svg +16 -0
  175. package/src/assets/amelipro/img/dental-chart-img/tooth-53.svg +16 -0
  176. package/src/assets/amelipro/img/dental-chart-img/tooth-54.svg +11 -0
  177. package/src/assets/amelipro/img/dental-chart-img/tooth-55.svg +16 -0
  178. package/src/assets/amelipro/img/dental-chart-img/tooth-61.svg +11 -0
  179. package/src/assets/amelipro/img/dental-chart-img/tooth-62.svg +16 -0
  180. package/src/assets/amelipro/img/dental-chart-img/tooth-63.svg +16 -0
  181. package/src/assets/amelipro/img/dental-chart-img/tooth-64.svg +11 -0
  182. package/src/assets/amelipro/img/dental-chart-img/tooth-65.svg +16 -0
  183. package/src/assets/amelipro/img/dental-chart-img/tooth-71.svg +11 -0
  184. package/src/assets/amelipro/img/dental-chart-img/tooth-72.svg +16 -0
  185. package/src/assets/amelipro/img/dental-chart-img/tooth-73.svg +16 -0
  186. package/src/assets/amelipro/img/dental-chart-img/tooth-74.svg +11 -0
  187. package/src/assets/amelipro/img/dental-chart-img/tooth-75.svg +16 -0
  188. package/src/assets/amelipro/img/dental-chart-img/tooth-81.svg +11 -0
  189. package/src/assets/amelipro/img/dental-chart-img/tooth-82.svg +16 -0
  190. package/src/assets/amelipro/img/dental-chart-img/tooth-83.svg +16 -0
  191. package/src/assets/amelipro/img/dental-chart-img/tooth-84.svg +11 -0
  192. package/src/assets/amelipro/img/dental-chart-img/tooth-85.svg +16 -0
  193. package/src/assets/amelipro/img/idpa/apcv_logo.svg +16 -0
  194. package/src/assets/amelipro/img/idpa/carte-vitale.svg +75 -0
  195. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.mdx +15 -0
  196. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.stories.ts +261 -0
  197. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +419 -0
  198. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/AmeliproAccordionFrieze.spec.ts +98 -0
  199. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +858 -0
  200. package/src/components/Amelipro/AmeliproAccordionFrieze/types.d.ts +6 -0
  201. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +2 -2
  202. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +0 -4
  203. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +2 -2
  204. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +0 -4
  205. package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.stories.ts +97 -0
  206. package/src/components/Amelipro/AmeliproBtn/AmeliproBtn.stories.ts +190 -8
  207. package/src/components/Amelipro/AmeliproCallback/AmeliproCallback.stories.ts +321 -0
  208. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
  209. package/src/components/Amelipro/AmeliproCard/AmeliproCard.stories.ts +360 -0
  210. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +1 -1
  211. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +2 -2
  212. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +1 -1
  213. package/src/components/Amelipro/AmeliproChips/AmeliproChips.stories.ts +46 -0
  214. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.stories.ts +173 -0
  215. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +112 -26
  216. package/src/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.mdx +15 -0
  217. package/src/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.stories.ts +1078 -0
  218. package/src/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.vue +163 -0
  219. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +183 -0
  220. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/AmeliproTooth.spec.ts +20 -0
  221. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/__snapshots__/AmeliproTooth.spec.ts.snap +39 -0
  222. package/src/components/Amelipro/AmeliproDentalChart/tests/AmeliproDentalChart.spec.ts +468 -0
  223. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +2589 -0
  224. package/src/components/Amelipro/AmeliproDentalChart/types.d.ts +13 -0
  225. package/src/components/Amelipro/AmeliproDialog/AmeliproDialog.stories.ts +333 -0
  226. package/src/components/Amelipro/AmeliproDialog/AmeliproDialog.vue +7 -2
  227. package/src/components/Amelipro/AmeliproDialog/tests/__snapshots__/AmeliproDialog.spec.ts.snap +1 -0
  228. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +1 -1
  229. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +1 -2
  230. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.mdx +15 -0
  231. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.stories.ts +287 -0
  232. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +331 -0
  233. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/AmeliproFirstLogin.spec.ts +29 -0
  234. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +1210 -0
  235. package/src/components/Amelipro/AmeliproFirstLogin/locales.ts +48 -0
  236. package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.stories.ts +61 -1
  237. package/src/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.stories.ts +174 -0
  238. package/src/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.stories.ts +186 -0
  239. package/src/components/Amelipro/AmeliproMailTile/AmeliproMailTile.stories.ts +237 -0
  240. package/src/components/Amelipro/AmeliproMessage/AmeliproMessage.stories.ts +111 -0
  241. package/src/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.stories.ts +199 -0
  242. package/src/components/Amelipro/AmeliproNumberedCard/AmeliproNumberedCard.stories.ts +150 -0
  243. package/src/components/Amelipro/AmeliproOnboarding/AmeliproOnboarding.stories.ts +281 -8
  244. package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.stories.ts +123 -43
  245. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.mdx +18 -0
  246. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +250 -0
  247. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +520 -0
  248. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +79 -0
  249. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +1140 -0
  250. package/src/components/Amelipro/AmeliproPatientLogged/types.d.ts +49 -0
  251. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.mdx +18 -0
  252. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.stories.ts +151 -0
  253. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.vue +231 -0
  254. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +252 -0
  255. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/__tests__/AmeliproPatientLoginForm.spec.ts +46 -0
  256. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/__tests__/__snapshots__/AmeliproPatientLoginForm.spec.ts.snap +33 -0
  257. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/types.d.ts +6 -0
  258. package/src/components/Amelipro/AmeliproPatientLogin/__tests__/AmeliproPatientLogin.spec.ts +49 -0
  259. package/src/components/Amelipro/AmeliproPatientLogin/__tests__/__snapshots__/AmeliproPatientLogin.spec.ts.snap +60 -0
  260. package/src/components/Amelipro/AmeliproPatientLogin/types.d.ts +6 -0
  261. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +464 -0
  262. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +41 -0
  263. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +548 -0
  264. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/types.d.ts +12 -0
  265. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.mdx +15 -0
  266. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +133 -0
  267. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +360 -0
  268. package/src/components/Amelipro/AmeliproPostalAddressField/tests/AmeliproPostalAddressField.spec.ts +27 -0
  269. package/src/components/Amelipro/AmeliproPostalAddressField/tests/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +548 -0
  270. package/src/components/Amelipro/AmeliproPostalAddressField/types.d.ts +18 -0
  271. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +4 -3
  272. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +2 -2
  273. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +0 -4
  274. package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.stories.ts +210 -0
  275. package/src/components/Amelipro/AmeliproStatus/AmeliproStatus.stories.ts +326 -0
  276. package/src/components/Amelipro/AmeliproTable/AmeliproTable.stories.ts +232 -4
  277. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +3 -2
  278. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +0 -4
  279. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +1 -1
  280. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +2 -2
  281. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +222 -6
  282. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.stories.ts +169 -0
  283. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +6 -1
  284. package/src/components/Amelipro/AmeliproTooltips/tests/__snapshots__/AmeliproTooltips.spec.ts.snap +1 -5
  285. package/src/components/Amelipro/AmeliproTransmission/AmeliproTransmission.stories.ts +160 -0
  286. package/src/components/Amelipro/StructureMenu/StructureMenu.vue +1 -1
  287. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +1 -2
  288. package/src/components/Customs/Selects/SySelect/SySelect.vue +43 -1
  289. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +4 -0
  290. package/src/components/Customs/SyForm/Introduction.mdx +132 -0
  291. package/src/components/Customs/SyForm/SyForm.mdx +105 -0
  292. package/src/components/Customs/SyForm/SyForm.stories.ts +375 -0
  293. package/src/components/Customs/SyForm/SyForm.vue +80 -0
  294. package/src/components/Customs/SyTabs/SyTabs.stories.ts +31 -0
  295. package/src/components/Customs/SyTabs/SyTabs.vue +185 -27
  296. package/src/components/Customs/SyTabs/useTabTransition.ts +42 -0
  297. package/src/components/Customs/SyTextField/SyTextField.vue +12 -3
  298. package/src/components/Customs/SyTextField/types.d.ts +1 -1
  299. package/src/components/DataListItem/DataListItem.vue +12 -13
  300. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +242 -41
  301. package/src/components/DatePicker/CalendarMode/DatePicker.vue +30 -12
  302. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +246 -59
  303. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +40 -10
  304. package/src/components/DatePicker/DatePickerOverview.mdx +5 -1
  305. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.mdx +21 -21
  306. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.stories.ts +240 -133
  307. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +29 -1
  308. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +32 -9
  309. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +166 -38
  310. package/src/components/DatePicker/composables/useDateValidation.ts +8 -5
  311. package/src/components/DatePicker/composables/useManualDateValidation.ts +23 -6
  312. package/src/components/DatePicker/datePickers.stories.ts +28 -0
  313. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +47 -58
  314. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +2 -2
  315. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +4654 -0
  316. package/src/components/DatePicker/tests/archiTest.md +33 -0
  317. package/src/components/DatePicker/tests/setup.ts +243 -0
  318. package/src/components/DialogBox/DialogBox.stories.ts +1 -1
  319. package/src/components/DialogBox/DialogBox.vue +25 -8
  320. package/src/components/DialogBox/locales.ts +1 -0
  321. package/src/components/DialogBox/tests/DialogBox.spec.ts +187 -15
  322. package/src/components/DialogBox/useDraggable.ts +92 -4
  323. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +4 -0
  324. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/tests/__snapshots__/HeaderMenuItem.spec.ts.snap +4 -1
  325. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +18 -2
  326. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +14 -4
  327. package/src/components/HeaderNavigationBar/types.ts +1 -0
  328. package/src/components/HeaderToolbar/Accessibilite.stories.ts +8 -0
  329. package/src/components/HeaderToolbar/HeaderToolbar.mdx +0 -1
  330. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +65 -6
  331. package/src/components/HeaderToolbar/HeaderToolbar.vue +589 -162
  332. package/src/components/HeaderToolbar/locales.ts +3 -0
  333. package/src/components/HeaderToolbar/useMobileRightMenu.ts +121 -0
  334. package/src/components/NirField/Accessibilite.stories.ts +4 -0
  335. package/src/components/NirField/NirField.stories.ts +0 -11
  336. package/src/components/NirField/NirField.vue +164 -53
  337. package/src/components/NirField/locales.ts +6 -4
  338. package/src/components/NirField/tests/NirField.spec.ts +2 -2
  339. package/src/components/PasswordField/Accessibilite.stories.ts +96 -0
  340. package/src/components/PasswordField/PasswordField.stories.ts +8 -1
  341. package/src/components/PasswordField/PasswordField.vue +98 -19
  342. package/src/components/PasswordField/locales.ts +2 -0
  343. package/src/components/PasswordField/tests/PasswordField.spec.ts +1 -1
  344. package/src/components/PhoneField/PhoneField.vue +4 -0
  345. package/src/components/RangeField/Accessibilite.stories.ts +4 -0
  346. package/src/components/RangeField/RangeField.stories.ts +60 -0
  347. package/src/components/RangeField/RangeField.vue +37 -21
  348. package/src/components/RangeField/RangeSlider/RangeSlider.vue +30 -8
  349. package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -0
  350. package/src/components/RangeField/RangeSlider/tests/__snapshots__/rangeSlider.spec.ts.snap +12 -4
  351. package/src/components/RangeField/RangeSlider/tests/useMouseSlide.spec.ts +9 -1
  352. package/src/components/RangeField/RangeSlider/useMouseSlide.ts +23 -8
  353. package/src/components/RangeField/config.ts +3 -1
  354. package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +132 -141
  355. package/src/components/RatingPicker/Accessibilite.stories.ts +4 -0
  356. package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +119 -66
  357. package/src/components/RatingPicker/EmotionPicker/locales.ts +2 -0
  358. package/src/components/RatingPicker/EmotionPicker/tests/EmotionPicker.spec.ts +4 -4
  359. package/src/components/RatingPicker/EmotionPicker/tests/__snapshots__/EmotionPicker.spec.ts.snap +462 -678
  360. package/src/components/RatingPicker/NumberPicker/NumberPicker.vue +106 -42
  361. package/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.ts +3 -3
  362. package/src/components/RatingPicker/NumberPicker/tests/__snapshots__/NumberPicker.spec.ts.snap +119 -515
  363. package/src/components/RatingPicker/Rating.ts +5 -1
  364. package/src/components/RatingPicker/RatingPicker.stories.ts +5 -6
  365. package/src/components/RatingPicker/RatingPicker.vue +7 -2
  366. package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +78 -42
  367. package/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.ts +7 -7
  368. package/src/components/RatingPicker/StarsPicker/tests/__snapshots__/StarsPicker.spec.ts.snap +163 -245
  369. package/src/components/RatingPicker/locales.ts +1 -0
  370. package/src/components/RatingPicker/tests/__snapshots__/RatingPicker.spec.ts.snap +120 -516
  371. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +109 -84
  372. package/src/components/Tables/SyServerTable/SyServerTable.vue +51 -16
  373. package/src/components/Tables/SyTable/SyTable.vue +1 -6
  374. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +6 -0
  375. package/src/components/Tables/common/SyTablePagination.vue +0 -6
  376. package/src/components/Tables/common/tableProps.ts +19 -1
  377. package/src/components/Tables/common/usePagination.ts +0 -6
  378. package/src/components/Tables/common/useTableCheckbox.ts +5 -5
  379. package/src/components/index.ts +8 -0
  380. package/src/composables/rules/useFieldValidation.ts +21 -3
  381. package/src/composables/validation/AvecVosComposants.mdx +145 -0
  382. package/src/composables/validation/FormValidation.mdx +151 -0
  383. package/src/composables/validation/FormValidation.stories.ts +402 -0
  384. package/src/composables/validation/useFormValidation.ts +91 -0
  385. package/src/composables/validation/useValidatable.ts +41 -0
  386. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +2 -2
  387. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +2 -2
  388. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +2 -2
  389. package/src/stories/Demarrer/Accueil.stories.ts +6 -6
  390. package/src/stories/GuideDuDev/Installation.mdx +13 -0
  391. package/src/stories/GuideDuDev/LesBreackingChanges.mdx +1 -1
  392. package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
  393. package/src/stories/GuideDuDev/MigrationDepuisVue2.mdx +1 -1
@@ -0,0 +1,49 @@
1
+ import { SelectItem } from '../AmeliproSelect/types'
2
+
3
+ export interface IPatientInfos {
4
+ birthdate?: string
5
+ center?: string
6
+ exemptionDialogBtnText?: string
7
+ firstName?: string
8
+ name?: string
9
+ nir?: string
10
+ rank?: string
11
+ fund?: string
12
+ fundTooltip?: string
13
+ doctor?: string
14
+ doctorTooltip?: string
15
+ exemption?: string
16
+ exemptionLine2?: string
17
+ plan?: string
18
+ rights?: string
19
+ c2s?: string
20
+ c2sTooltip?: string
21
+ ame?: string
22
+ mtm?: string
23
+ selectItems?: SelectItem[]
24
+ }
25
+
26
+ export interface IPatientInfoLabels {
27
+ ame: string
28
+ birthdate: string
29
+ btnLabel: string
30
+ center: string
31
+ c2s: string
32
+ doctor: string
33
+ doctorDialogBtn: string
34
+ doctorDialogTitle: string
35
+ exemption: string
36
+ exemptionDialogTitle: string
37
+ exemptionLine2: string
38
+ firstName: string
39
+ fund: string
40
+ fundDialogTitle: string
41
+ moreInfo: string
42
+ mtm: string
43
+ name: string
44
+ nir: string
45
+ plan: string
46
+ rank: string
47
+ rights: string
48
+ selectLabel: string
49
+ }
@@ -0,0 +1,18 @@
1
+ import { Controls, Canvas, Meta, Source } from '@storybook/blocks';
2
+
3
+ import * as AmeliproPatientLoginStories from './AmeliproPatientLogin.stories';
4
+
5
+ <Meta of={AmeliproPatientLoginStories} />
6
+
7
+ # AmeliproPatientLogin
8
+
9
+ L’élément `AmeliproPatientLogin` est utilisé pour afficher le formulaire d'identification patient
10
+
11
+ <Canvas of={AmeliproPatientLoginStories.Default} />
12
+
13
+ ## API
14
+
15
+ <Controls of={AmeliproPatientLoginStories.Default} />
16
+
17
+
18
+
@@ -0,0 +1,151 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import { fn } from '@storybook/test'
3
+ import AmeliproPatientLogin from './AmeliproPatientLogin.vue'
4
+ import { ref, watch } from 'vue'
5
+
6
+ const meta = {
7
+ argTypes: {
8
+ 'autoCompleteCardItems': {
9
+ description: 'Liste des items pour le champ d\'autocomplétion',
10
+ table: {
11
+ type: {
12
+ detail: `[
13
+ {
14
+ disabled?: boolean
15
+ title: string
16
+ value: string | object
17
+ }
18
+ ]`,
19
+ summary: 'AutoCompleteItem',
20
+ },
21
+ },
22
+ },
23
+ 'click:vital-card': { description: 'Evénement émis au click sur le bouton "Lire carte"' },
24
+ 'click:vital-card-app': { description: 'Evénement émis au click sur le bouton "Lire appli carte vitale"' },
25
+ 'disableBtnAppVitalCard': { description: 'Désactive le bouton "Lire appli carte vitale"' },
26
+ 'disableBtnNir': { description: 'Désactive le bouton "Valider NIR"' },
27
+ 'disableBtnVitalCard': { description: 'Désactive le bouton "Lire carte"' },
28
+ 'errorMessageAppVitalCard': { description: 'Message d\'erreur personnalisé concernant la partie Application carte vitale' },
29
+ 'errorMessageNir': { description: 'Message d\'erreur personnalisé concernant la partie NIR' },
30
+ 'errorMessageVitalCard': { description: 'Message d\'erreur personnalisé concernant la partie carte vitale' },
31
+ 'loading': { description: 'Passe le composant dans un affichage en chargement' },
32
+ 'messageAppVitalCard': { description: 'Slot pour un message personnalisé concernant la partie application carte vitale' },
33
+ 'messageNir': { description: 'Slot pour un message personnalisé concernant la partie NIR' },
34
+ 'messageVitalCard': { description: 'Slot pour un message personnalisé concernant la partie carte vitale' },
35
+ 'modelValue': {
36
+ description: 'Valeur des champs du formulaire et le la modale pour la version mobile',
37
+ table: {
38
+ type: {
39
+ detail: `{
40
+ dialog: boolean
41
+ formValue?: {
42
+ fieldValue?: string | number
43
+ autoCompleteValue?: AutoCompleteItem | string
44
+ }
45
+ }`,
46
+ summary: 'IPatientLogin',
47
+ },
48
+ },
49
+ },
50
+ 'noAppVitalCard': { description: 'Masque la partie Application carte vitale' },
51
+ 'noNir': { description: 'Masque la partie NIR' },
52
+ 'noVitalCard': { description: 'Masque la partie Carte vitale' },
53
+ 'rulesAutoCompleteCard': { description: 'Règles appliquées au champ d\'autocomplétion' },
54
+ 'rulesNir': { description: 'Règles appliquées au champ NIR' },
55
+ 'submit:nir': { description: 'Evénement émis au click sur le bouton "Valider Le NIR" ou sur la touche "Entrée" dans le champ NIR' },
56
+ 'uniqueId': { description: 'Identifiant unique du composant.' },
57
+ 'update:model-value': { description: 'Evénement émis au lors de la mise à jour du v-model' },
58
+ },
59
+ component: AmeliproPatientLogin,
60
+ title: 'Composants/Amelipro/IDPA/AmeliproPatientLogin',
61
+ } as Meta<typeof AmeliproPatientLogin>
62
+
63
+ export default meta
64
+
65
+ type Story = StoryObj<typeof AmeliproPatientLogin>
66
+
67
+ export const Default: Story = {
68
+ args: {
69
+ 'autoCompleteCardItems': [
70
+ {
71
+ title: 'Carte 1',
72
+ value: '1',
73
+ },
74
+ {
75
+ title: 'Carte 2',
76
+ value: '2',
77
+ },
78
+ {
79
+ title: 'Carte 3',
80
+ value: '3',
81
+ },
82
+ ],
83
+ 'modelValue': {
84
+ dialog: false,
85
+ formValue: {},
86
+ },
87
+ 'uniqueId': 'test-id',
88
+ 'onClick:vital-card': fn(),
89
+ 'onClick:vital-card-app': fn(),
90
+ 'onSubmit:nir': fn(),
91
+ },
92
+ parameters: {
93
+ sourceCode: [
94
+ {
95
+ name: 'Template',
96
+ code: `<AmeliproPatientLogin
97
+ v-model="myModel"
98
+ :autocomplete-card-items="autocompleteCardItems"
99
+ unique-id="test-id"
100
+ />`,
101
+ },
102
+ {
103
+ name: 'Script',
104
+ code: `<script setup lang="ts">
105
+ import { AmeliproPatientLogin } from '@cnamts/synapse'
106
+ import { ref } from 'vue'
107
+
108
+ const autoCompleteCardItems = [
109
+ {
110
+ title: 'Carte 1',
111
+ value: '1',
112
+ },
113
+ {
114
+ title: 'Carte 2',
115
+ value: '2',
116
+ },
117
+ {
118
+ title: 'Carte 3',
119
+ value: '3',
120
+ },
121
+ ];
122
+
123
+ const myModel = ref({
124
+ dialog: false,
125
+ formValue: {},
126
+ })
127
+ </script>
128
+ `,
129
+ },
130
+ ],
131
+ },
132
+ render: args => ({
133
+ components: { AmeliproPatientLogin },
134
+ setup() {
135
+ const model = ref(args.modelValue)
136
+
137
+ // Optional: Keeps v-model in sync with storybook args
138
+ watch(() => args.modelValue, (newValue) => {
139
+ model.value = newValue
140
+ })
141
+ return { args, model }
142
+ },
143
+ template: `<AmeliproPatientLogin
144
+ v-bind="args"
145
+ v-model="model"
146
+ @click:vital-card="args['onClick:vital-card']"
147
+ @click:vital-card-app="args['onClick:vital-card-app']"
148
+ @submit:nir="args['onSubmit:nir']"
149
+ />`,
150
+ }),
151
+ }
@@ -0,0 +1,231 @@
1
+ <script setup lang="ts">
2
+ import { type PropType, computed } from 'vue'
3
+ import type { AutoCompleteItem } from '../AmeliproAutoCompleteField/types'
4
+ import type { IPatientLogin } from './types'
5
+ import AmeliproBtn from '../AmeliproBtn/AmeliproBtn.vue'
6
+ import AmeliproCard from '../AmeliproCard/AmeliproCard.vue'
7
+ import AmeliproDialog from '../AmeliproDialog/AmeliproDialog.vue'
8
+ import AmeliproPatientLoginForm from './AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue'
9
+ import { useDisplay } from 'vuetify'
10
+ import type { ValidationRule } from '@/utils/rules/types'
11
+
12
+ const props = defineProps({
13
+ autoCompleteCardItems: {
14
+ type: Array as PropType<AutoCompleteItem[]>,
15
+ default: undefined,
16
+ },
17
+ disableBtnAppVitalCard: {
18
+ type: Boolean,
19
+ default: false,
20
+ },
21
+ disableBtnNir: {
22
+ type: Boolean,
23
+ default: false,
24
+ },
25
+ disableBtnVitalCard: {
26
+ type: Boolean,
27
+ default: false,
28
+ },
29
+ errorMessageAppVitalCard: {
30
+ type: Boolean,
31
+ default: false,
32
+ },
33
+ errorMessageNir: {
34
+ type: Boolean,
35
+ default: false,
36
+ },
37
+ errorMessageVitalCard: {
38
+ type: Boolean,
39
+ default: false,
40
+ },
41
+ loading: {
42
+ type: Boolean,
43
+ default: false,
44
+ },
45
+ modelValue: {
46
+ type: Object as PropType<IPatientLogin>,
47
+ default: () => ({ dialog: false, formValue: { fieldValue: undefined, autoCompleteValue: undefined } }),
48
+ },
49
+ noAppVitalCard: {
50
+ type: Boolean,
51
+ default: false,
52
+ },
53
+ noNir: {
54
+ type: Boolean,
55
+ default: false,
56
+ },
57
+ noVitalCard: {
58
+ type: Boolean,
59
+ default: false,
60
+ },
61
+ rulesAutoCompleteCard: {
62
+ type: Array as PropType<ValidationRule[]>,
63
+ default: () => [],
64
+ },
65
+ rulesNir: {
66
+ type: Array as PropType<ValidationRule[]>,
67
+ default: () => [],
68
+ },
69
+ uniqueId: {
70
+ type: String,
71
+ required: true,
72
+ },
73
+ })
74
+
75
+ const { mdAndUp } = useDisplay()
76
+ const emit = defineEmits(['click:vital-card', 'click:vital-card-app', 'submit:nir', 'update:model-value'])
77
+
78
+ const componentValue = computed({
79
+ get: (): IPatientLogin => props.modelValue,
80
+ set: (newValue: IPatientLogin): void => {
81
+ emit('update:model-value', newValue, `${props.uniqueId}`)
82
+ },
83
+ })
84
+
85
+ const clickVitalCard = () => emit('click:vital-card', props.modelValue, `${props.uniqueId}-form-vital-card-btn`)
86
+ const clickVitalCardApp = () => emit('click:vital-card-app', props.modelValue, `${props.uniqueId}-form-vital-card-app-btn`)
87
+ const submitNir = () => emit('submit:nir', props.modelValue, `${props.uniqueId}-form-nir-btn`)
88
+ </script>
89
+
90
+ <template>
91
+ <div :id="uniqueId">
92
+ <AmeliproCard no-card-header>
93
+ <h2
94
+ :id="`${uniqueId}-title`"
95
+ class="ident-title "
96
+ >
97
+ Identification patient
98
+ </h2>
99
+
100
+ <AmeliproPatientLoginForm
101
+ v-if="mdAndUp"
102
+ v-model="componentValue.formValue"
103
+ :auto-complete-card-items="autoCompleteCardItems"
104
+ :disable-btn-app-vital-card="disableBtnAppVitalCard"
105
+ :disable-btn-nir="disableBtnNir"
106
+ :disable-btn-vital-card="disableBtnVitalCard"
107
+ :error-message-app-vital-card="errorMessageAppVitalCard"
108
+ :error-message-nir="errorMessageNir"
109
+ :error-message-vital-card="errorMessageVitalCard"
110
+ :loading="loading"
111
+ :no-app-vital-card="noAppVitalCard"
112
+ :no-nir="noNir"
113
+ :no-vital-card="noVitalCard"
114
+ :rules-auto-complete-card="rulesAutoCompleteCard"
115
+ :rules-nir="rulesNir"
116
+ :unique-id="`${uniqueId}-form`"
117
+ @click:vital-card="clickVitalCard"
118
+ @click:vital-card-app="clickVitalCardApp"
119
+ @submit:nir="submitNir"
120
+ >
121
+ <template
122
+ v-if="$slots.messageAppVitalCard"
123
+ #messageAppVitalCard
124
+ >
125
+ <slot name="messageAppVitalCard" />
126
+ </template>
127
+
128
+ <template
129
+ v-if="$slots.messageNir"
130
+ #messageNir
131
+ >
132
+ <slot name="messageNir" />
133
+ </template>
134
+
135
+ <template
136
+ v-if="$slots.messageVitalCard"
137
+ #messageVitalCard
138
+ >
139
+ <slot name="messageVitalCard" />
140
+ </template>
141
+ </AmeliproPatientLoginForm>
142
+
143
+ <div
144
+ v-if="!mdAndUp"
145
+ class="mt-6 w-100"
146
+ >
147
+ <AmeliproBtn
148
+ class="w-100"
149
+ :unique-id="`${uniqueId}-dialog-btn`"
150
+ @click="componentValue.dialog = true"
151
+ >
152
+ Identifier
153
+ </AmeliproBtn>
154
+
155
+ <AmeliproDialog
156
+ v-model="componentValue.dialog"
157
+ :labelledby="`${uniqueId}-dialog-title`"
158
+ :unique-id="`${uniqueId}-dialog`"
159
+ >
160
+ <template #header>
161
+ <h2
162
+ :id="`${uniqueId}-dialog-title`"
163
+ class="ma-0 text-h4"
164
+ >
165
+ Identification patient
166
+ </h2>
167
+ </template>
168
+
169
+ <template #default>
170
+ <AmeliproPatientLoginForm
171
+ v-model="componentValue.formValue"
172
+ :auto-complete-card-items="autoCompleteCardItems"
173
+ :disable-btn-app-vital-card="disableBtnAppVitalCard"
174
+ :disable-btn-nir="disableBtnNir"
175
+ :disable-btn-vital-card="disableBtnVitalCard"
176
+ :error-message-app-vital-card="errorMessageAppVitalCard"
177
+ :error-message-nir="errorMessageNir"
178
+ :error-message-vital-card="errorMessageVitalCard"
179
+ :loading="loading"
180
+ :no-app-vital-card="noAppVitalCard"
181
+ :no-nir="noNir"
182
+ :no-vital-card="noVitalCard"
183
+ :rules-auto-complete-card="rulesAutoCompleteCard"
184
+ :rules-nir="rulesNir"
185
+ :unique-id="`${uniqueId}-form`"
186
+ @click:vital-card="clickVitalCard"
187
+ @click:vital-card-app="clickVitalCardApp"
188
+ @submit:nir="submitNir"
189
+ >
190
+ <template
191
+ v-if="$slots.messageAppVitalCard"
192
+ #messageAppVitalCard
193
+ >
194
+ <slot name="messageAppVitalCard" />
195
+ </template>
196
+
197
+ <template
198
+ v-if="$slots.messageNir"
199
+ #messageNir
200
+ >
201
+ <slot name="messageNir" />
202
+ </template>
203
+
204
+ <template
205
+ v-if="$slots.messageVitalCard"
206
+ #messageVitalCard
207
+ >
208
+ <slot name="messageVitalCard" />
209
+ </template>
210
+ </AmeliproPatientLoginForm>
211
+ </template>
212
+ </AmeliproDialog>
213
+ </div>
214
+ </AmeliproCard>
215
+ </div>
216
+ </template>
217
+
218
+ <style lang="scss" scoped>
219
+ @use '@/assets/amelipro/apTokens';
220
+
221
+ .ident-title {
222
+ font-size: apTokens.$font-size-xs !important;
223
+ text-align: center;
224
+ font-weight: apTokens.$ap-font-weight-bold;
225
+ text-transform: uppercase;
226
+
227
+ @media #{apTokens.$media-up-md} {
228
+ text-align: left;
229
+ }
230
+ }
231
+ </style>
@@ -0,0 +1,252 @@
1
+ <script setup lang="ts">
2
+ import { type PropType, computed } from 'vue'
3
+ import AmeliproAutoCompleteField from '../../AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue'
4
+ import AmeliproBtn from '../../AmeliproBtn/AmeliproBtn.vue'
5
+ import AmeliproMessage from '../../AmeliproMessage/AmeliproMessage.vue'
6
+ import AmeliproTextField from '../../AmeliproTextField/AmeliproTextField.vue'
7
+ import type { AutoCompleteItem } from '../../AmeliproAutoCompleteField/types'
8
+ import type { IPatientLoginForm } from './types'
9
+ import type { ValidationRule } from '@/utils/rules/types'
10
+ import { vMaska } from 'maska/vue'
11
+ import imgVital from '@/assets/amelipro/img/idpa/carte-vitale.svg'
12
+ import apcvLogo from '@/assets/amelipro/img/idpa/apcv_logo.svg'
13
+
14
+ const props = defineProps({
15
+ autoCompleteCardItems: {
16
+ type: Array as PropType<AutoCompleteItem[]>,
17
+ default: undefined,
18
+ },
19
+ disableBtnAppVitalCard: {
20
+ type: Boolean,
21
+ default: false,
22
+ },
23
+ disableBtnNir: {
24
+ type: Boolean,
25
+ default: false,
26
+ },
27
+ disableBtnVitalCard: {
28
+ type: Boolean,
29
+ default: false,
30
+ },
31
+ errorMessageAppVitalCard: {
32
+ type: Boolean,
33
+ default: false,
34
+ },
35
+ errorMessageNir: {
36
+ type: Boolean,
37
+ default: false,
38
+ },
39
+ errorMessageVitalCard: {
40
+ type: Boolean,
41
+ default: false,
42
+ },
43
+ loading: {
44
+ type: Boolean,
45
+ default: false,
46
+ },
47
+ modelValue: {
48
+ type: Object as PropType<IPatientLoginForm>,
49
+ default: () => ({ fieldValue: undefined, autoCompleteValue: undefined }),
50
+ },
51
+ noAppVitalCard: {
52
+ type: Boolean,
53
+ default: false,
54
+ },
55
+ noNir: {
56
+ type: Boolean,
57
+ default: false,
58
+ },
59
+ noVitalCard: {
60
+ type: Boolean,
61
+ default: false,
62
+ },
63
+ rulesAutoCompleteCard: {
64
+ type: Array as PropType<ValidationRule[]>,
65
+ default: () => [],
66
+ },
67
+ rulesNir: {
68
+ type: Array as PropType<ValidationRule[]>,
69
+ default: () => [],
70
+ },
71
+ uniqueId: {
72
+ type: String,
73
+ default: undefined,
74
+ },
75
+ })
76
+
77
+ const emit = defineEmits(['click:vital-card', 'click:vital-card-app', 'submit:nir', 'update:model-value'])
78
+
79
+ const currentValue = computed({
80
+ get: (): IPatientLoginForm => props.modelValue,
81
+ set: (newValue: IPatientLoginForm): void => {
82
+ emit('update:model-value', newValue, props.uniqueId)
83
+ },
84
+ })
85
+
86
+ const vitalCardBtnText = computed(() => (props.autoCompleteCardItems ? 'Lire carte virtuelle' : 'Lire la carte'))
87
+
88
+ const clickVitalCard = () => emit('click:vital-card', `${props.uniqueId}-vital-card-btn`)
89
+ const clickVitalCardApp = () => emit('click:vital-card-app', `${props.uniqueId}-vital-card-app-btn`)
90
+ const submitNir = () => emit('submit:nir', `${props.uniqueId}-nir-btn`)
91
+
92
+ const mask = {
93
+ tokens: {
94
+ '#': { pattern: /\d/ },
95
+ 'X': { pattern: /[0-9a-z]/i },
96
+ },
97
+ mask: '#####XX######',
98
+ }
99
+ </script>
100
+
101
+ <template>
102
+ <div aria-live="polite">
103
+ <form v-if="!loading">
104
+ <div
105
+ v-if="!noVitalCard"
106
+ class="mt-4"
107
+ >
108
+ <img
109
+ alt="Carte Vitale"
110
+ class="mx-auto mb-6 d-block"
111
+ :src="imgVital"
112
+ >
113
+
114
+ <AmeliproAutoCompleteField
115
+ v-if="autoCompleteCardItems"
116
+ v-model="currentValue.autoCompleteValue"
117
+ :items="autoCompleteCardItems"
118
+ label="Sélectionnez une carte :"
119
+ :rules="rulesAutoCompleteCard"
120
+ :unique-id="`${uniqueId}-select-card`"
121
+ />
122
+
123
+ <AmeliproBtn
124
+ class="w-100"
125
+ :disabled="disableBtnVitalCard"
126
+ :unique-id="`${uniqueId}-vital-card-btn`"
127
+ @click="clickVitalCard"
128
+ >
129
+ {{ vitalCardBtnText }}
130
+ </AmeliproBtn>
131
+
132
+ <AmeliproMessage
133
+ v-if="$slots.messageVitalCard"
134
+ align-start
135
+ class="w-100 mt-2"
136
+ text
137
+ :type="errorMessageVitalCard ? 'error' : 'info'"
138
+ >
139
+ <slot name="messageVitalCard" />
140
+ </AmeliproMessage>
141
+ </div>
142
+
143
+ <div
144
+ v-if="!noAppVitalCard"
145
+ class="mt-4"
146
+ >
147
+ <img
148
+ alt=""
149
+ class="mx-auto mb-6 d-block"
150
+ :src="apcvLogo"
151
+ >
152
+
153
+ <AmeliproBtn
154
+ class="w-100"
155
+ :disabled="disableBtnAppVitalCard"
156
+ :unique-id="`${uniqueId}-vital-card-app-btn`"
157
+ @click="clickVitalCardApp"
158
+ >
159
+ Lire appli carte vitale
160
+ </AmeliproBtn>
161
+
162
+ <AmeliproMessage
163
+ v-if="$slots.messageAppVitalCard"
164
+ align-start
165
+ class="w-100 mt-2"
166
+ text
167
+ :type="errorMessageAppVitalCard ? 'error' : 'info'"
168
+ >
169
+ <slot name="messageAppVitalCard" />
170
+ </AmeliproMessage>
171
+ </div>
172
+
173
+ <div
174
+ v-if="!noNir"
175
+ class="mt-4"
176
+ >
177
+ <AmeliproTextField
178
+ v-model="currentValue.fieldValue"
179
+ v-maska="mask"
180
+ aria-required
181
+ classes="mt-6"
182
+ clearable
183
+ :counter="13"
184
+ label="Saisir son NIR :"
185
+ :rules="rulesNir"
186
+ :unique-id="`${uniqueId}-nir`"
187
+ @keypress.enter.prevent="submitNir"
188
+ />
189
+
190
+ <AmeliproBtn
191
+ class="w-100"
192
+ :disabled="disableBtnNir"
193
+ :unique-id="`${uniqueId}-nir-btn`"
194
+ @click="submitNir"
195
+ >
196
+ Valider le NIR
197
+ </AmeliproBtn>
198
+
199
+ <AmeliproMessage
200
+ v-if="$slots.messageNir"
201
+ align-start
202
+ class="w-100 mt-2"
203
+ text
204
+ :type="errorMessageNir ? 'error' : 'info'"
205
+ >
206
+ <slot name="messageNir" />
207
+ </AmeliproMessage>
208
+ </div>
209
+ </form>
210
+
211
+ <div
212
+ v-if="loading"
213
+ aria-busy="true"
214
+ class="d-block mt-8"
215
+ >
216
+ <p class="text-center">
217
+ <span
218
+ aria-hidden="true"
219
+ class="d-block mx-auto my-4"
220
+ >
221
+ <span class="loader" />
222
+ </span>
223
+ Veuillez patienter pendant le chargement...
224
+ </p>
225
+ </div>
226
+ </div>
227
+ </template>
228
+
229
+ <style lang="scss" scoped>
230
+ @use '@/assets/amelipro/apTokens';
231
+
232
+ .loader {
233
+ width: 30px;
234
+ height: 30px;
235
+ border: 4px solid apTokens.$ap-blue-darken1;
236
+ border-bottom-color: transparent;
237
+ border-radius: 50%;
238
+ display: inline-block;
239
+ box-sizing: border-box;
240
+ animation: rotation 1s linear infinite;
241
+ }
242
+
243
+ @keyframes rotation {
244
+ 0% {
245
+ transform: rotate(0deg);
246
+ }
247
+
248
+ 100% {
249
+ transform: rotate(360deg);
250
+ }
251
+ }
252
+ </style>