@pi-spi/app 2.1.0 → 2.2.0

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 (314) hide show
  1. package/lib/module/l10n/app_localizations.js.map +1 -1
  2. package/lib/module/l10n/app_localizations_en.js +32 -8
  3. package/lib/module/l10n/app_localizations_en.js.map +1 -1
  4. package/lib/module/l10n/app_localizations_fr.js +41 -14
  5. package/lib/module/l10n/app_localizations_fr.js.map +1 -1
  6. package/lib/module/l10n/app_localizations_pt.js +33 -7
  7. package/lib/module/l10n/app_localizations_pt.js.map +1 -1
  8. package/lib/module/modules/alias/domain/models/alias_revendication.js +4 -2
  9. package/lib/module/modules/alias/domain/models/alias_revendication.js.map +1 -1
  10. package/lib/module/modules/alias/infra/alias_output_local.js +11 -0
  11. package/lib/module/modules/alias/infra/alias_output_local.js.map +1 -1
  12. package/lib/module/modules/alias/infra/alias_output_repository.js +9 -8
  13. package/lib/module/modules/alias/infra/alias_output_repository.js.map +1 -1
  14. package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js +14 -18
  15. package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js.map +1 -1
  16. package/lib/module/modules/alias/presentation/pages/alias_page_claim.js +113 -60
  17. package/lib/module/modules/alias/presentation/pages/alias_page_claim.js.map +1 -1
  18. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_form.js +151 -76
  19. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_form.js.map +1 -1
  20. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_timer.js +38 -24
  21. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_timer.js.map +1 -1
  22. package/lib/module/modules/alias/presentation/pages/alias_page_create_options.js +28 -26
  23. package/lib/module/modules/alias/presentation/pages/alias_page_create_options.js.map +1 -1
  24. package/lib/module/modules/alias/presentation/pages/alias_page_otp.js +27 -110
  25. package/lib/module/modules/alias/presentation/pages/alias_page_otp.js.map +1 -1
  26. package/lib/module/modules/categorie/domain/services/categorie_service.js +2 -1
  27. package/lib/module/modules/categorie/domain/services/categorie_service.js.map +1 -1
  28. package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js +38 -42
  29. package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js.map +1 -1
  30. package/lib/module/modules/categorie/presentation/pages/categorie_form_pages.js +88 -80
  31. package/lib/module/modules/categorie/presentation/pages/categorie_form_pages.js.map +1 -1
  32. package/lib/module/modules/categorie/presentation/pages/categorie_icon.js +39 -0
  33. package/lib/module/modules/categorie/presentation/pages/categorie_icon.js.map +1 -1
  34. package/lib/module/modules/categorie/presentation/pages/categorie_liste_widget.js +55 -27
  35. package/lib/module/modules/categorie/presentation/pages/categorie_liste_widget.js.map +1 -1
  36. package/lib/module/modules/categorie/presentation/pages/categorie_select_page.js +21 -81
  37. package/lib/module/modules/categorie/presentation/pages/categorie_select_page.js.map +1 -1
  38. package/lib/module/modules/categorie/presentation/pages/categorie_select_widget.js +53 -16
  39. package/lib/module/modules/categorie/presentation/pages/categorie_select_widget.js.map +1 -1
  40. package/lib/module/modules/config/domain/models/config_keys.js +2 -0
  41. package/lib/module/modules/config/domain/models/config_keys.js.map +1 -1
  42. package/lib/module/modules/contacts/domain/contact_pi.js +3 -5
  43. package/lib/module/modules/contacts/domain/contact_pi.js.map +1 -1
  44. package/lib/module/modules/contacts/presentation/bloc/contact_bloc.js +30 -14
  45. package/lib/module/modules/contacts/presentation/bloc/contact_bloc.js.map +1 -1
  46. package/lib/module/modules/contacts/presentation/pages/contact_actions_sheet.js +106 -0
  47. package/lib/module/modules/contacts/presentation/pages/contact_actions_sheet.js.map +1 -0
  48. package/lib/module/modules/contacts/presentation/pages/contact_list_alias_widget.js +17 -7
  49. package/lib/module/modules/contacts/presentation/pages/contact_list_alias_widget.js.map +1 -1
  50. package/lib/module/modules/contacts/presentation/pages/contact_list_phone_widget.js +5 -4
  51. package/lib/module/modules/contacts/presentation/pages/contact_list_phone_widget.js.map +1 -1
  52. package/lib/module/modules/contacts/presentation/pages/contact_list_widget_item.js +76 -67
  53. package/lib/module/modules/contacts/presentation/pages/contact_list_widget_item.js.map +1 -1
  54. package/lib/module/modules/contacts/presentation/pages/contact_section.js +14 -4
  55. package/lib/module/modules/contacts/presentation/pages/contact_section.js.map +1 -1
  56. package/lib/module/modules/contacts/presentation/pages/contact_select_page.js +131 -110
  57. package/lib/module/modules/contacts/presentation/pages/contact_select_page.js.map +1 -1
  58. package/lib/module/modules/contacts/presentation/pages/create/contact_create_page.js +118 -59
  59. package/lib/module/modules/contacts/presentation/pages/create/contact_create_page.js.map +1 -1
  60. package/lib/module/modules/home/presentation/pages/home_page.js +3 -13
  61. package/lib/module/modules/home/presentation/pages/home_page.js.map +1 -1
  62. package/lib/module/modules/introduction/presentation/pages/introduction.js +17 -4
  63. package/lib/module/modules/introduction/presentation/pages/introduction.js.map +1 -1
  64. package/lib/module/modules/introduction/presentation/pages/introduction_footer.js +15 -53
  65. package/lib/module/modules/introduction/presentation/pages/introduction_footer.js.map +1 -1
  66. package/lib/module/modules/introduction/presentation/pages/introduction_page.js +22 -4
  67. package/lib/module/modules/introduction/presentation/pages/introduction_page.js.map +1 -1
  68. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js +2 -2
  69. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js.map +1 -1
  70. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js +1 -1
  71. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js.map +1 -1
  72. package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js +2 -2
  73. package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js.map +1 -1
  74. package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js +14 -52
  75. package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js.map +1 -1
  76. package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js +11 -1
  77. package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js.map +1 -1
  78. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js +3 -3
  79. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js.map +1 -1
  80. package/lib/module/modules/search/domain/models/fonctionnalite.js +51 -0
  81. package/lib/module/modules/search/domain/models/fonctionnalite.js.map +1 -1
  82. package/lib/module/modules/search/presentation/pages/search_btn_widget.js +136 -0
  83. package/lib/module/modules/search/presentation/pages/search_btn_widget.js.map +1 -0
  84. package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js +21 -1
  85. package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js.map +1 -1
  86. package/lib/module/modules/search/presentation/pages/search_page.js +266 -97
  87. package/lib/module/modules/search/presentation/pages/search_page.js.map +1 -1
  88. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page.js +5 -3
  89. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page.js.map +1 -1
  90. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.js +5 -6
  91. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.js.map +1 -1
  92. package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js +3 -3
  93. package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js.map +1 -1
  94. package/lib/module/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.js +1 -2
  95. package/lib/module/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.js.map +1 -1
  96. package/lib/module/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.js +17 -0
  97. package/lib/module/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.js.map +1 -1
  98. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.js +30 -23
  99. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.js.map +1 -1
  100. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js +6 -6
  101. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js.map +1 -1
  102. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js +6 -6
  103. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js.map +1 -1
  104. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page.js +16 -4
  105. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page.js.map +1 -1
  106. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.js +11 -9
  107. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.js.map +1 -1
  108. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js +9 -7
  109. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js.map +1 -1
  110. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.js +8 -10
  111. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.js.map +1 -1
  112. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js +127 -105
  113. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js.map +1 -1
  114. package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page.js +9 -15
  115. package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page.js.map +1 -1
  116. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js +5 -11
  117. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js.map +1 -1
  118. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.js +9 -9
  119. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.js.map +1 -1
  120. package/lib/module/shared/widgets/alias_widget.js +33 -12
  121. package/lib/module/shared/widgets/alias_widget.js.map +1 -1
  122. package/lib/module/shared/widgets/auth_code_field.js +89 -0
  123. package/lib/module/shared/widgets/auth_code_field.js.map +1 -0
  124. package/lib/module/shared/widgets/calendar_date_picker.js +21 -16
  125. package/lib/module/shared/widgets/calendar_date_picker.js.map +1 -1
  126. package/lib/module/shared/widgets/confirm_action_sheet_widget.js +20 -1
  127. package/lib/module/shared/widgets/confirm_action_sheet_widget.js.map +1 -1
  128. package/lib/module/shared/widgets/emoji_select_widget.js +34 -39
  129. package/lib/module/shared/widgets/emoji_select_widget.js.map +1 -1
  130. package/lib/module/shared/widgets/frequence_input_widget.js +18 -29
  131. package/lib/module/shared/widgets/frequence_input_widget.js.map +1 -1
  132. package/lib/module/shared/widgets/frequence_select_widget.js +233 -140
  133. package/lib/module/shared/widgets/frequence_select_widget.js.map +1 -1
  134. package/lib/module/shared/widgets/image_select_widget.js +4 -4
  135. package/lib/module/shared/widgets/image_select_widget.js.map +1 -1
  136. package/lib/module/shared/widgets/input_text.js +1 -1
  137. package/lib/module/shared/widgets/input_text.js.map +1 -1
  138. package/lib/module/shared/widgets/notification_dialog.js +3 -2
  139. package/lib/module/shared/widgets/notification_dialog.js.map +1 -1
  140. package/lib/module/shared/widgets/pin_entete.js +114 -0
  141. package/lib/module/shared/widgets/pin_entete.js.map +1 -0
  142. package/lib/module/shared/widgets/select_date_widget.js +74 -59
  143. package/lib/module/shared/widgets/select_date_widget.js.map +1 -1
  144. package/lib/module/shared/widgets/selection.js +21 -16
  145. package/lib/module/shared/widgets/selection.js.map +1 -1
  146. package/lib/typescript/src/l10n/app_localizations.d.ts +59 -11
  147. package/lib/typescript/src/l10n/app_localizations.d.ts.map +1 -1
  148. package/lib/typescript/src/l10n/app_localizations_en.d.ts.map +1 -1
  149. package/lib/typescript/src/l10n/app_localizations_fr.d.ts.map +1 -1
  150. package/lib/typescript/src/l10n/app_localizations_pt.d.ts.map +1 -1
  151. package/lib/typescript/src/modules/alias/domain/models/alias_revendication.d.ts.map +1 -1
  152. package/lib/typescript/src/modules/alias/infra/alias_output_local.d.ts +5 -0
  153. package/lib/typescript/src/modules/alias/infra/alias_output_local.d.ts.map +1 -1
  154. package/lib/typescript/src/modules/alias/infra/alias_output_repository.d.ts.map +1 -1
  155. package/lib/typescript/src/modules/alias/presentation/pages/alias_delete_btn_widget.d.ts.map +1 -1
  156. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_claim.d.ts.map +1 -1
  157. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_form.d.ts.map +1 -1
  158. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.d.ts +1 -1
  159. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.d.ts.map +1 -1
  160. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_options.d.ts +4 -1
  161. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_options.d.ts.map +1 -1
  162. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_otp.d.ts +9 -5
  163. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_otp.d.ts.map +1 -1
  164. package/lib/typescript/src/modules/categorie/domain/services/categorie_service.d.ts.map +1 -1
  165. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts +3 -0
  166. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts.map +1 -1
  167. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_form_pages.d.ts.map +1 -1
  168. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_icon.d.ts +9 -0
  169. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_icon.d.ts.map +1 -1
  170. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_liste_widget.d.ts +7 -2
  171. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_liste_widget.d.ts.map +1 -1
  172. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_page.d.ts.map +1 -1
  173. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_widget.d.ts +10 -2
  174. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_widget.d.ts.map +1 -1
  175. package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts +3 -1
  176. package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts.map +1 -1
  177. package/lib/typescript/src/modules/contacts/domain/contact_pi.d.ts +0 -2
  178. package/lib/typescript/src/modules/contacts/domain/contact_pi.d.ts.map +1 -1
  179. package/lib/typescript/src/modules/contacts/presentation/bloc/contact_bloc.d.ts +7 -0
  180. package/lib/typescript/src/modules/contacts/presentation/bloc/contact_bloc.d.ts.map +1 -1
  181. package/lib/typescript/src/modules/contacts/presentation/pages/contact_actions_sheet.d.ts +14 -0
  182. package/lib/typescript/src/modules/contacts/presentation/pages/contact_actions_sheet.d.ts.map +1 -0
  183. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_alias_widget.d.ts +4 -2
  184. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_alias_widget.d.ts.map +1 -1
  185. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_phone_widget.d.ts.map +1 -1
  186. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_widget_item.d.ts +6 -4
  187. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_widget_item.d.ts.map +1 -1
  188. package/lib/typescript/src/modules/contacts/presentation/pages/contact_section.d.ts +3 -1
  189. package/lib/typescript/src/modules/contacts/presentation/pages/contact_section.d.ts.map +1 -1
  190. package/lib/typescript/src/modules/contacts/presentation/pages/contact_select_page.d.ts.map +1 -1
  191. package/lib/typescript/src/modules/contacts/presentation/pages/create/contact_create_page.d.ts.map +1 -1
  192. package/lib/typescript/src/modules/home/presentation/pages/home_page.d.ts.map +1 -1
  193. package/lib/typescript/src/modules/introduction/presentation/pages/introduction.d.ts.map +1 -1
  194. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_footer.d.ts +5 -1
  195. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_footer.d.ts.map +1 -1
  196. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_page.d.ts.map +1 -1
  197. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts.d.ts.map +1 -1
  198. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts_actions.d.ts.map +1 -1
  199. package/lib/typescript/src/modules/search/domain/models/fonctionnalite.d.ts +20 -0
  200. package/lib/typescript/src/modules/search/domain/models/fonctionnalite.d.ts.map +1 -1
  201. package/lib/typescript/src/modules/search/presentation/pages/search_btn_widget.d.ts +11 -0
  202. package/lib/typescript/src/modules/search/presentation/pages/search_btn_widget.d.ts.map +1 -0
  203. package/lib/typescript/src/modules/search/presentation/pages/search_fonctionnalites.d.ts.map +1 -1
  204. package/lib/typescript/src/modules/search/presentation/pages/search_page.d.ts.map +1 -1
  205. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.d.ts.map +1 -1
  206. package/lib/typescript/src/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.d.ts.map +1 -1
  207. package/lib/typescript/src/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.d.ts.map +1 -1
  208. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.d.ts +4 -1
  209. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.d.ts.map +1 -1
  210. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.d.ts +4 -0
  211. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.d.ts.map +1 -1
  212. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.d.ts.map +1 -1
  213. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.d.ts.map +1 -1
  214. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.d.ts.map +1 -1
  215. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_search/transaction_search_page.d.ts.map +1 -1
  216. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.d.ts.map +1 -1
  217. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.d.ts.map +1 -1
  218. package/lib/typescript/src/shared/widgets/alias_widget.d.ts +2 -2
  219. package/lib/typescript/src/shared/widgets/alias_widget.d.ts.map +1 -1
  220. package/lib/typescript/src/shared/widgets/auth_code_field.d.ts +17 -0
  221. package/lib/typescript/src/shared/widgets/auth_code_field.d.ts.map +1 -0
  222. package/lib/typescript/src/shared/widgets/calendar_date_picker.d.ts.map +1 -1
  223. package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts +12 -1
  224. package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts.map +1 -1
  225. package/lib/typescript/src/shared/widgets/emoji_select_widget.d.ts.map +1 -1
  226. package/lib/typescript/src/shared/widgets/frequence_input_widget.d.ts +6 -3
  227. package/lib/typescript/src/shared/widgets/frequence_input_widget.d.ts.map +1 -1
  228. package/lib/typescript/src/shared/widgets/frequence_select_widget.d.ts +23 -5
  229. package/lib/typescript/src/shared/widgets/frequence_select_widget.d.ts.map +1 -1
  230. package/lib/typescript/src/shared/widgets/image_select_widget.d.ts +1 -1
  231. package/lib/typescript/src/shared/widgets/input_text.d.ts +2 -0
  232. package/lib/typescript/src/shared/widgets/input_text.d.ts.map +1 -1
  233. package/lib/typescript/src/shared/widgets/notification_dialog.d.ts +3 -1
  234. package/lib/typescript/src/shared/widgets/notification_dialog.d.ts.map +1 -1
  235. package/lib/typescript/src/shared/widgets/pin_entete.d.ts +15 -0
  236. package/lib/typescript/src/shared/widgets/pin_entete.d.ts.map +1 -0
  237. package/lib/typescript/src/shared/widgets/select_date_widget.d.ts +4 -0
  238. package/lib/typescript/src/shared/widgets/select_date_widget.d.ts.map +1 -1
  239. package/lib/typescript/src/shared/widgets/selection.d.ts +11 -7
  240. package/lib/typescript/src/shared/widgets/selection.d.ts.map +1 -1
  241. package/package.json +1 -1
  242. package/src/l10n/app_localizations.ts +59 -11
  243. package/src/l10n/app_localizations_en.ts +32 -8
  244. package/src/l10n/app_localizations_fr.ts +38 -14
  245. package/src/l10n/app_localizations_pt.ts +31 -7
  246. package/src/modules/alias/domain/models/alias_revendication.ts +4 -2
  247. package/src/modules/alias/infra/alias_output_local.ts +11 -0
  248. package/src/modules/alias/infra/alias_output_repository.ts +9 -8
  249. package/src/modules/alias/presentation/pages/alias_delete_btn_widget.tsx +17 -24
  250. package/src/modules/alias/presentation/pages/alias_page_claim.tsx +76 -48
  251. package/src/modules/alias/presentation/pages/alias_page_create_mbno_form.tsx +113 -65
  252. package/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.tsx +34 -25
  253. package/src/modules/alias/presentation/pages/alias_page_create_options.tsx +29 -36
  254. package/src/modules/alias/presentation/pages/alias_page_otp.tsx +24 -88
  255. package/src/modules/categorie/domain/services/categorie_service.ts +2 -1
  256. package/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.tsx +38 -28
  257. package/src/modules/categorie/presentation/pages/categorie_form_pages.tsx +71 -41
  258. package/src/modules/categorie/presentation/pages/categorie_icon.tsx +26 -0
  259. package/src/modules/categorie/presentation/pages/categorie_liste_widget.tsx +45 -24
  260. package/src/modules/categorie/presentation/pages/categorie_select_page.tsx +10 -46
  261. package/src/modules/categorie/presentation/pages/categorie_select_widget.tsx +54 -13
  262. package/src/modules/config/domain/models/config_keys.ts +3 -0
  263. package/src/modules/contacts/domain/contact_pi.ts +3 -6
  264. package/src/modules/contacts/presentation/bloc/contact_bloc.ts +37 -20
  265. package/src/modules/contacts/presentation/pages/contact_actions_sheet.tsx +69 -0
  266. package/src/modules/contacts/presentation/pages/contact_list_alias_widget.tsx +26 -4
  267. package/src/modules/contacts/presentation/pages/contact_list_phone_widget.tsx +3 -0
  268. package/src/modules/contacts/presentation/pages/contact_list_widget_item.tsx +54 -65
  269. package/src/modules/contacts/presentation/pages/contact_section.tsx +13 -3
  270. package/src/modules/contacts/presentation/pages/contact_select_page.tsx +106 -74
  271. package/src/modules/contacts/presentation/pages/create/contact_create_page.tsx +86 -47
  272. package/src/modules/home/presentation/pages/home_page.tsx +2 -9
  273. package/src/modules/introduction/presentation/pages/introduction.tsx +8 -0
  274. package/src/modules/introduction/presentation/pages/introduction_footer.tsx +16 -36
  275. package/src/modules/introduction/presentation/pages/introduction_page.tsx +17 -5
  276. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.tsx +2 -2
  277. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.tsx +1 -1
  278. package/src/modules/profile/presentation/pages/profile_page_avatar.tsx +2 -2
  279. package/src/modules/profile/presentation/pages/profile_page_contacts.tsx +12 -19
  280. package/src/modules/profile/presentation/pages/profile_page_contacts_actions.tsx +10 -1
  281. package/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.tsx +3 -3
  282. package/src/modules/search/domain/models/fonctionnalite.ts +56 -0
  283. package/src/modules/search/presentation/pages/search_btn_widget.tsx +91 -0
  284. package/src/modules/search/presentation/pages/search_fonctionnalites.ts +21 -1
  285. package/src/modules/search/presentation/pages/search_page.tsx +166 -57
  286. package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.tsx +4 -2
  287. package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.tsx +5 -5
  288. package/src/modules/subscription/presentation/pages/subscription_menu_widget.tsx +3 -3
  289. package/src/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.ts +1 -2
  290. package/src/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.ts +17 -0
  291. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.tsx +26 -17
  292. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.tsx +9 -9
  293. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.tsx +9 -9
  294. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page.tsx +20 -2
  295. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.tsx +6 -8
  296. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.tsx +5 -5
  297. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.tsx +5 -7
  298. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.tsx +112 -103
  299. package/src/modules/transactions/presentation/pages/transaction_search/transaction_search_page.tsx +6 -10
  300. package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.tsx +3 -6
  301. package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.tsx +5 -5
  302. package/src/shared/widgets/alias_widget.tsx +45 -18
  303. package/src/shared/widgets/auth_code_field.tsx +89 -0
  304. package/src/shared/widgets/calendar_date_picker.tsx +12 -11
  305. package/src/shared/widgets/confirm_action_sheet_widget.tsx +19 -1
  306. package/src/shared/widgets/emoji_select_widget.tsx +31 -29
  307. package/src/shared/widgets/frequence_input_widget.tsx +18 -24
  308. package/src/shared/widgets/frequence_select_widget.tsx +237 -117
  309. package/src/shared/widgets/image_select_widget.tsx +4 -4
  310. package/src/shared/widgets/input_text.tsx +3 -0
  311. package/src/shared/widgets/notification_dialog.tsx +4 -1
  312. package/src/shared/widgets/pin_entete.tsx +74 -0
  313. package/src/shared/widgets/select_date_widget.tsx +66 -34
  314. package/src/shared/widgets/selection.tsx +23 -12
@@ -63,8 +63,7 @@ export const AppLocalizationsFr: AppLocalizations = {
63
63
  introductionItem5: `Économisez et partagez des dépenses entre amis`,
64
64
  introductionItem6: `Utilisez l’alias pour la confidentialité et la précision`,
65
65
  introductionLogin: `Connexion`,
66
- introductionFooterTitle: `Vous n'avez pas de compte`,
67
- introductionFooterSubtitle: `Trouvez une agence proche`,
66
+ introductionPasser: `Passer`,
68
67
  loginPageTitle: `Connexion`,
69
68
  loginPageWebSubtitle: `Pour accéder à votre compte, vous devez vous authentifier.`,
70
69
  loginPageWebSubtitle2: `Redirection vers le service d'authentification...`,
@@ -105,7 +104,8 @@ Vérifiez votre Wi-Fi ou vos données mobiles puis appuyez sur Réessayer.`,
105
104
  forgetCodePinFormTitle: `Entrer votre nouveau code pin`,
106
105
  updateCodePinError: `La modification du code pin a échouée, veuillez réessayer`,
107
106
  updateCodePinSuccess: `Votre code pin a été modifiée avec succès`,
108
- forgetCodePinOptionPageTitle: `Choisissez un moyen de recupération`,
107
+ forgetCodePinOptionPageTitle: `Moyen de récupération`,
108
+ forgetCodePinOptionPageSubTitle: `Un code de confirmation sera envoyé`,
109
109
  forgetCodePinOptionEmail: `Email`,
110
110
  forgetCodePinOptionPhone: `Téléphone`,
111
111
  forgetCodePinOptionBtnContinuer: `Continuer`,
@@ -119,8 +119,10 @@ Vérifiez votre Wi-Fi ou vos données mobiles puis appuyez sur Réessayer.`,
119
119
  configureBiometryFormSubmitBtn: (method: string) => `Utiliser ${method}`,
120
120
  configureBiometryFormNotNowBtn: `Pas maintenant`,
121
121
  identificationFormLoginMessage: `Saisissez votre code PIN`,
122
- identificationFormForgotMessage: `Code PIN oublié?`,
122
+ identificationFormForgotMessage: `Code PIN oublié ?`,
123
123
  identificationHelloUser: (user: string) => `Bonjour, ${user}`,
124
+ identificationGoodEveningUser: (user: string) => `Bonsoir, ${user}`,
125
+ identificationConfirmationTitle: `Confirmation`,
124
126
  identificationErrorPinInvalid: `Le code PIN est invalide`,
125
127
  permissionNotificationTitle: `Ne ratez rien`,
126
128
  permissionNotificationSubTitle: `Recevez des notifications sur les dépenses, la sécurité et vos économies afin d'être toujours au courant`,
@@ -135,7 +137,7 @@ Vérifiez votre Wi-Fi ou vos données mobiles puis appuyez sur Réessayer.`,
135
137
  permissionErrorDevice: `Votre appareil n'est pas supporté.`,
136
138
  permissionErrorToken: `Une erreur est survenue. Réessayer à nouveau`,
137
139
  permissionErrorApi: `Erreur de communication - Vérifier votre connexion internet ou réessayer plus tard!`,
138
- securityLogoutTitle: `Êtes-vous sûr de vouloir vous déconnecter ?`,
140
+ securityLogoutTitle: `Vous partez déjà ?`,
139
141
  securityLogoutSubTitle: `Si vous souhaitez continuer à travailler, cliquez sur « Annuler » et vous reviendrez à votre état actuel. Si vous souhaitez vraiment vous déconnecter, cliquez sur « Déconnecter ».`,
140
142
  securityLogoutBtnConfirmer: `Déconnecter`,
141
143
  securityLogoutBtnAnnuler: `Annuler`,
@@ -159,14 +161,15 @@ Vérifiez votre Wi-Fi ou vos données mobiles puis appuyez sur Réessayer.`,
159
161
  addPhoneNumberPageSubTitle: `Un code de vérification sera envoyé sur ce numéro`,
160
162
  addPhoneNumberFormHint: `Téléphone mobile`,
161
163
  addPhoneNumberFormErrorEmpty: `Champ obligatoire`,
162
- addPhoneNumberFormErrorInvalid: `Numero invalide`,
164
+ addPhoneNumberFormErrorInvalid: `Numéro invalide`,
163
165
  addPhoneNumberFormBtnContinuer: `Continuer`,
166
+ addPhoneNumberIndicatifSheetTitle: `Indicatif du pays`,
164
167
  verifyPhoneNumberPageTitle: `Code de vérification`,
165
168
  verifyPhoneNumberPageSubTitle: (number: string) => `Saisissez le code envoyé au ${number}`,
166
169
  aliaMBNOResendMessage: (delay: string) => `Renvoyer le code dans ${delay}`,
167
170
  aliaMBNOResendMessageBtn: `Renvoyer le code`,
168
- aliaMBNOInvalidOtpMessage: `Code otp invalide`,
169
- aliaMBNOServeurMessage: `Une erreur c'est produite, veuillez`,
171
+ aliaMBNOInvalidOtpMessage: `Code invalide`,
172
+ aliaMBNOServeurMessage: `Une erreur s'est produite, veuillez réessayer`,
170
173
  aliaErrorPageTitle: `😔 Oooops`,
171
174
  aliaErrorPageSubTitle: `Cet alias est pris`,
172
175
  aliaErrorPageDescription: `Le numéro de téléphone est déjà enregistré comme alias sur un autre compte`,
@@ -190,6 +193,8 @@ Vérifiez votre Wi-Fi ou vos données mobiles puis appuyez sur Réessayer.`,
190
193
  aliasClaimRejectSuccessTitle: `Revendication refusée`,
191
194
  aliasClaimRejectSuccessDescription: (alias: string) => `Votre alias ${alias} est conservé`,
192
195
  aliasClaimDetailsRefusPageSubTitile: `Le refus ne peut être accepter que si vous prouvez que le numèro de téléphone vous appartient en renseignant le code OTP`,
196
+ aliasClaimRefusOtpTitle: `Refuser la revendication`,
197
+ aliasClaimRefusOtpSubTitle: (number: string) => `Pour prouver que le numéro ${number} vous appartient, saisissez le code qui vient de lui être envoyé`,
193
198
  aliasClaimConfirmError: `La confirmation a échouée veuillez réessayer svp`,
194
199
  aliasClaimConfirmSuccessRejectTitle: `Alias conservé`,
195
200
  aliasClaimConfirmSuccessAcceptTitle: `Alias supprimé`,
@@ -219,11 +224,18 @@ Vérifiez votre Wi-Fi ou vos données mobiles puis appuyez sur Réessayer.`,
219
224
  contactCreateNameLabel: `Prénoms et nom`,
220
225
  contactCreateNameErrorEmpty: `Nom obligatoire`,
221
226
  contactBtnSave: `Enregistrer et continuer`,
227
+ contactSelectBtnContinue: (nombre: string) => `Continuer (${nombre})`,
228
+ contactActionsCopy: `Copier l'alias`,
229
+ contactActionsShare: `Partager l'alias`,
230
+ contactActionsTooltip: `Actions`,
231
+ contactSectionPi: `Contacts PI-SPI`,
222
232
  contactAliasSaveText: `Enregistrer dans les contacts`,
233
+ aliasWidgetCopyTooltip: `Copier l'alias`,
223
234
  contactAliasSaveConfirmMessage: (clientNom: string, alias: string) => `Êtes-vous sûr de vouloir enregistrer ${clientNom} dans la liste des contacts avec l'alias ${alias} ?`,
224
235
  homePageToolbarTabbarCompte: `Compte`,
225
236
  homePageToolbarTabbarAbonnement: `Abonnements`,
226
237
  homePageToolbarTabbarEconomie: `Economies`,
238
+ homePageSearchTooltip: `Rechercher une fonctionnalité`,
227
239
  homeSolde: `Solde`,
228
240
  homeActionSend: `Envoyer`,
229
241
  homeActionRequest: `Recevoir`,
@@ -331,9 +343,13 @@ Vérifiez votre Wi-Fi ou vos données mobiles puis appuyez sur Réessayer.`,
331
343
  transactionFormScheduleFrequenceHebdomadaire: `Hebdomadaire`,
332
344
  transactionFormScheduleFrequenceMensuelle: `Mensuelle`,
333
345
  transactionFormScheduleFrequenceAnnuelle: `Annuelle`,
346
+ transactionFormScheduleFrequenceJour: `Chaque jour`,
347
+ transactionFormScheduleFrequenceSemaine: `Chaque semaine`,
348
+ transactionFormScheduleFrequenceMois: `Chaque mois`,
349
+ transactionFormScheduleFrequenceAnnuee: `Chaque année`,
334
350
  transactionFormScheduleFrequenceSurMesure: `Sur mesure`,
335
351
  transactionFormSchedulePeriodiciteLabel: `Périodicité`,
336
- transactionFormScheduleFrequenceSelected: (periodicite: string, frequence: string) => `Tous les ${periodicite} ${frequence}`,
352
+ transactionFormScheduleFrequenceSelected: (periodicite: string, frequence: string, unite: string) => `${(({ "semaine": `Toutes les`, "annee": `Toutes les` } as Record<string, string>)[unite] ?? `Tous les`)} ${periodicite} ${frequence}`,
337
353
  transactionFormScheduleDateRange: (start: string, end: string) => `du ${start} au ${end}`,
338
354
  transactionFormScheduleDateSelected: (start: string) => `A partir du ${start}`,
339
355
  transactionFormScheduleSuccessMessage: (montant: string, payee: string) => `Vous avez programmé ${montant} FCFA pour ${payee}`,
@@ -410,8 +426,8 @@ Si cette demande provient d'une personne de confiance, il vous suffit d'ajouter
410
426
  transactionDetailsFrequenceJour: `jours`,
411
427
  transactionDetailsFrequenceSemaine1: `semaine`,
412
428
  transactionDetailsFrequenceJour1: `jour`,
413
- transactionDetailsFrequenceAnnee: `ans`,
414
- transactionDetailsFrequenceAnnee1: `an`,
429
+ transactionDetailsFrequenceAnnee: `années`,
430
+ transactionDetailsFrequenceAnnee1: `année`,
415
431
  transactionRtpDetailsTontineInviteTitle: `Invitation à rejoindre une tontine`,
416
432
  transactionRtpDetailsTontineInviteSubtitle: (tontineNom: string, auteur: string, nombreDeMain: string, montantMise: string, frequence: string, montantAverser: string) => `Vous êtes invité(e) à participer à la tontine « ${tontineNom} » créée par ${auteur} :
417
433
  • ✋Votre nombre de mise : ${nombreDeMain}
@@ -605,7 +621,7 @@ Le scan se fait automatiquement`,
605
621
  compteDetailsPagePopupDeleteAliasTitle: `Êtes-vous sûr de vouloir supprimer votre alias ?`,
606
622
  compteDetailsPagePopupDeleteAliasSHIDSubTitle: `Si vous confirmez la suppression de votre alias, cette action sera irréversible. Votre alias sera complètement supprimé de notre système et les autres utilisateurs ne pourront plus effectuer de paiements en votre faveur ou vous trouver à l'aide de cet alias.`,
607
623
  compteDetailsPagePopupDeleteAliasMBNOSubTitle: `Si vous confirmez la suppression de votre alias, cette action sera irréversible. Votre alias numéro de téléphone sera complètement supprimé de notre système et les autres utilisateurs ne pourront plus effectuer de paiements en votre faveur ou vous trouver à l'aide de cet alias. Toutefois vous resterez connecter à PI-SPI avec votre alias adresse de paiement associé.`,
608
- compteDetailsPagePopupDeleteAliasBtnConfirmer: `Supprimer l'alias`,
624
+ compteDetailsPagePopupDeleteAliasBtnConfirmer: `Supprimer`,
609
625
  compteDetailsPagePopupDeleteAliasBtnAnnuler: `Annuler`,
610
626
  compteDetailsPagePopupDeleteAliasErrorMsg: `La suppression de votre alias à échoué, veuillez réessayer ultérieurement`,
611
627
  appSettingPageTitle: `Paramètres de l’application`,
@@ -650,6 +666,7 @@ Le scan se fait automatiquement`,
650
666
  appSettingPageMenuNotificationStyleDialogDesc: `Les alertes requièrent une action avant de poursuivre. Les bannières apparaissent en haut de l'écran et disparaissent automatiquement`,
651
667
  appSettingPageMenuNotificationStyleNone: `Aucun`,
652
668
  appSettingPageMenuNotificationSonTitle: `Son`,
669
+ appSettingPageMenuNotificationSonActiveTitle: `Notification`,
653
670
  appSettingPageMenuNotificationSonPageTitle: `Notification Sonore`,
654
671
  appSettingPageMenuNotificationSonDefault: `Par défaut`,
655
672
  appSettingPageMenuNotificationVibrTitle: `Vibreur`,
@@ -657,7 +674,9 @@ Le scan se fait automatiquement`,
657
674
  appSettingPageMenuHomeThemeTitle: `Page d'accueil`,
658
675
  appSettingPageMenuHomeThemeDefault: `Simple`,
659
676
  appSettingPageMenuHomeThemeWithtQr: `Avec QrCode`,
660
- categorieDefaultTitle: `Catégories par défault`,
677
+ categorieSelectionTitle: `Sélectionner des catégories`,
678
+ categorieSelectionUniqueTitle: `Choisir une catégorie`,
679
+ categorieDefaultTitle: `Catégories par défaut`,
661
680
  categorieCustomTitle: `Catégories personnalisées`,
662
681
  categorieCustomAdd: `Ajouter une catégorie`,
663
682
  categorieCustomEdit: `Modifier`,
@@ -672,7 +691,7 @@ Le scan se fait automatiquement`,
672
691
  categorieFormIconSheetImageTitle: `Utiliser une icône`,
673
692
  categorieFormIconSheetGalleryTitle: `Sélectionnez dans la galerie`,
674
693
  categorieFormIconSheetPhotoTitle: `Prendre une photo`,
675
- notificationPageTitle: `Notification`,
694
+ notificationPageTitle: `Notifications`,
676
695
  notificationPageListeEmptyTitle: `Vous êtes au courant de tout`,
677
696
  notificationPageListeEmptySubTitle: `Revenez plus tard pour obtenir des informations et des recommandations afin de maintenir votre compte à jour`,
678
697
  notificationPageClaimTitle: `Revendication d'alias`,
@@ -709,6 +728,11 @@ Le scan se fait automatiquement`,
709
728
  notificationMAJMessage: (systeme: string) => `Une nouvelle version de l'application est disponible sur ${systeme}`,
710
729
  notificationMAJBtn: `Installer`,
711
730
  searchTitle: `Que voulez-vous faire ?`,
731
+ searchShortcutsTitle: `Raccourcis`,
732
+ searchRubriquePaiements: `Paiements`,
733
+ searchRubriqueAbonnements: `Abonnements`,
734
+ searchRubriqueServicesBancaires: `Services bancaires`,
735
+ searchRubriqueProfil: `Profil et paramètres`,
712
736
  searchHint: `Rechercher une fonctionnalité`,
713
737
  searchEmpty: (motCle: string) => `Aucune fonctionnalité ne correspond à « ${motCle} »`,
714
738
  searchSendSubTitle: `Envoyer de l’argent à un contact`,
@@ -63,8 +63,7 @@ export const AppLocalizationsPt: AppLocalizations = {
63
63
  introductionItem5: `Economize e compartilhe despesas entre amigos`,
64
64
  introductionItem6: `Utilize o alias para privacidade e precisão`,
65
65
  introductionLogin: `Conectar`,
66
- introductionFooterTitle: `Você não tem uma conta`,
67
- introductionFooterSubtitle: `Encontre uma agência próxima`,
66
+ introductionPasser: `Saltar`,
68
67
  loginPageTitle: `Conectar`,
69
68
  loginPageWebSubtitle: `Para acessar sua conta, você precisa se autenticar.`,
70
69
  loginPageWebSubtitle2: `Redirecionando para o serviço de autenticação...`,
@@ -105,7 +104,8 @@ Verifique o Wi-Fi ou os dados móveis e toque em Tentar novamente.`,
105
104
  forgetCodePinFormTitle: `Introduza o seu novo código PIN`,
106
105
  updateCodePinError: `Falha ao alterar o código PIN, por favor tente novamente`,
107
106
  updateCodePinSuccess: `O seu código PIN foi alterado com sucesso`,
108
- forgetCodePinOptionPageTitle: `Escolha um método de recuperação`,
107
+ forgetCodePinOptionPageTitle: `Método de recuperação`,
108
+ forgetCodePinOptionPageSubTitle: `Será enviado um código de confirmação`,
109
109
  forgetCodePinOptionEmail: `Email`,
110
110
  forgetCodePinOptionPhone: `Telefone`,
111
111
  forgetCodePinOptionBtnContinuer: `Continuar`,
@@ -121,6 +121,8 @@ Verifique o Wi-Fi ou os dados móveis e toque em Tentar novamente.`,
121
121
  identificationFormLoginMessage: `Digite seu código PIN`,
122
122
  identificationFormForgotMessage: `Código PIN esquecido?`,
123
123
  identificationHelloUser: (user: string) => `Olá, ${user}`,
124
+ identificationGoodEveningUser: (user: string) => `Boa noite, ${user}`,
125
+ identificationConfirmationTitle: `Confirmação`,
124
126
  identificationErrorPinInvalid: `O código PIN é inválido`,
125
127
  permissionNotificationTitle: `Não perca nada`,
126
128
  permissionNotificationSubTitle: `Receba notificações sobre despesas, segurança e suas economias para ficar sempre atualizado`,
@@ -135,7 +137,7 @@ Verifique o Wi-Fi ou os dados móveis e toque em Tentar novamente.`,
135
137
  permissionErrorDevice: `Seu dispositivo não é suportado.`,
136
138
  permissionErrorToken: `Ocorreu um erro. Tente novamente`,
137
139
  permissionErrorApi: `Erro de comunicação - Verifique sua conexão com a internet ou tente novamente mais tarde!`,
138
- securityLogoutTitle: `Você tem certeza que deseja se desconectar?`,
140
+ securityLogoutTitle: `Já vai embora?`,
139
141
  securityLogoutSubTitle: `Se você deseja continuar trabalhando, clique em « Cancelar » e você voltará para o seu estado atual. Se você realmente deseja se desconectar, clique em « Desconectar ».`,
140
142
  securityLogoutBtnConfirmer: `Desconectar`,
141
143
  securityLogoutBtnAnnuler: `Cancelar`,
@@ -161,11 +163,12 @@ Verifique o Wi-Fi ou os dados móveis e toque em Tentar novamente.`,
161
163
  addPhoneNumberFormErrorEmpty: `Campo obrigatório`,
162
164
  addPhoneNumberFormErrorInvalid: `Número inválido`,
163
165
  addPhoneNumberFormBtnContinuer: `Continuar`,
166
+ addPhoneNumberIndicatifSheetTitle: `Indicativo do país`,
164
167
  verifyPhoneNumberPageTitle: `Código de verificação`,
165
168
  verifyPhoneNumberPageSubTitle: (number: string) => `Digite o código enviado para ${number}`,
166
169
  aliaMBNOResendMessage: (delay: string) => `Reenviar o código em ${delay}`,
167
170
  aliaMBNOResendMessageBtn: `Reenviar o código`,
168
- aliaMBNOInvalidOtpMessage: `Código OTP inválido`,
171
+ aliaMBNOInvalidOtpMessage: `Código inválido`,
169
172
  aliaMBNOServeurMessage: `Ocorreu um erro, por favor tente novamente`,
170
173
  aliaErrorPageTitle: `😔 Oooops`,
171
174
  aliaErrorPageSubTitle: `Este alias está ocupado`,
@@ -190,6 +193,8 @@ Verifique o Wi-Fi ou os dados móveis e toque em Tentar novamente.`,
190
193
  aliasClaimRejectSuccessTitle: `Revendicação rejeitada`,
191
194
  aliasClaimRejectSuccessDescription: (alias: string) => `Seu alias ${alias} foi conservado`,
192
195
  aliasClaimDetailsRefusPageSubTitile: `O rejeito só pode ser aceito se você provar que o número de telefone pertence a você inserindo o código OTP`,
196
+ aliasClaimRefusOtpTitle: `Recusar a reivindicação`,
197
+ aliasClaimRefusOtpSubTitle: (number: string) => `Para provar que o número ${number} é seu, insira o código que acaba de lhe ser enviado`,
193
198
  aliasClaimConfirmError: `A confirmação falhou, por favor, tente novamente`,
194
199
  aliasClaimConfirmSuccessRejectTitle: `Alias conservado`,
195
200
  aliasClaimConfirmSuccessAcceptTitle: `Alias deletado`,
@@ -219,11 +224,18 @@ Verifique o Wi-Fi ou os dados móveis e toque em Tentar novamente.`,
219
224
  contactCreateNameLabel: `Nome e sobrenome`,
220
225
  contactCreateNameErrorEmpty: `Nome obrigatório`,
221
226
  contactBtnSave: `Salvar e continuar`,
227
+ contactSelectBtnContinue: (nombre: string) => `Continuar (${nombre})`,
228
+ contactActionsCopy: `Copiar o alias`,
229
+ contactActionsShare: `Partilhar o alias`,
230
+ contactActionsTooltip: `Ações`,
231
+ contactSectionPi: `Contactos PI-SPI`,
222
232
  contactAliasSaveText: `Salvar nos contatos`,
233
+ aliasWidgetCopyTooltip: `Copiar o alias`,
223
234
  contactAliasSaveConfirmMessage: (clientNom: string, alias: string) => `Tem certeza de que deseja salvar ${clientNom} na lista de contatos com o alias ${alias}?`,
224
235
  homePageToolbarTabbarCompte: `Conta`,
225
236
  homePageToolbarTabbarAbonnement: `Assinaturas`,
226
237
  homePageToolbarTabbarEconomie: `Economia`,
238
+ homePageSearchTooltip: `Pesquisar uma funcionalidade`,
227
239
  homeSolde: `Saldo`,
228
240
  homeActionSend: `Enviar`,
229
241
  homeActionRequest: `Receber`,
@@ -331,9 +343,13 @@ Verifique o Wi-Fi ou os dados móveis e toque em Tentar novamente.`,
331
343
  transactionFormScheduleFrequenceHebdomadaire: `Semanal`,
332
344
  transactionFormScheduleFrequenceMensuelle: `Mensal`,
333
345
  transactionFormScheduleFrequenceAnnuelle: `Anual`,
346
+ transactionFormScheduleFrequenceJour: `Todos os dias`,
347
+ transactionFormScheduleFrequenceSemaine: `Todas as semanas`,
348
+ transactionFormScheduleFrequenceMois: `Todos os meses`,
349
+ transactionFormScheduleFrequenceAnnuee: `Todos os anos`,
334
350
  transactionFormScheduleFrequenceSurMesure: `Sob medida`,
335
351
  transactionFormSchedulePeriodiciteLabel: `Périodicité`,
336
- transactionFormScheduleFrequenceSelected: (periodicite: string, frequence: string) => `Todos os ${periodicite} ${frequence}`,
352
+ transactionFormScheduleFrequenceSelected: (periodicite: string, frequence: string, unite: string) => `${(({ "semaine": `Todas as` } as Record<string, string>)[unite] ?? `Todos os`)} ${periodicite} ${frequence}`,
337
353
  transactionFormScheduleDateRange: (start: string, end: string) => `de ${start} a ${end}`,
338
354
  transactionFormScheduleDateSelected: (start: string) => `A partir de ${start}`,
339
355
  transactionFormScheduleSuccessMessage: (montant: string, payee: string) => `Você programou ${montant} FCFA para ${payee}`,
@@ -606,7 +622,7 @@ O scan é feito automaticamente`,
606
622
  compteDetailsPagePopupDeleteAliasTitle: `Você tem certeza que deseja suprimir o seu alias?`,
607
623
  compteDetailsPagePopupDeleteAliasSHIDSubTitle: `Se você confirmar a exclusão do seu alias, esta ação será irreversível. Seu alias será completamente removido do nosso sistema e outros usuários não poderão mais realizar pagamentos para você nem encontrá-lo usando este alias.`,
608
624
  compteDetailsPagePopupDeleteAliasMBNOSubTitle: `Se você confirmar a exclusão do seu alias, esta ação será irreversível. Seu alias de número de telefone será completamente removido do nosso sistema e outros usuários não poderão mais realizar pagamentos para você nem encontrá-lo usando este alias. No entanto, você permanecerá conectado ao PI-SPI com o seu alias de endereço de pagamento associado.`,
609
- compteDetailsPagePopupDeleteAliasBtnConfirmer: `Suprimir o meu alias`,
625
+ compteDetailsPagePopupDeleteAliasBtnConfirmer: `Suprimir`,
610
626
  compteDetailsPagePopupDeleteAliasBtnAnnuler: `Cancelar`,
611
627
  compteDetailsPagePopupDeleteAliasErrorMsg: `A supressão do seu alias falhou, por favor, tente novamente mais tarde`,
612
628
  appSettingPageTitle: `Configurações da aplicação`,
@@ -651,6 +667,7 @@ O scan é feito automaticamente`,
651
667
  appSettingPageMenuNotificationStyleDialogDesc: `Os alertas requerem uma ação antes de continuar. Os banners aparecem no topo da tela e desaparecem automaticamente`,
652
668
  appSettingPageMenuNotificationStyleNone: `Nenhum`,
653
669
  appSettingPageMenuNotificationSonTitle: `Som`,
670
+ appSettingPageMenuNotificationSonActiveTitle: `Notificações`,
654
671
  appSettingPageMenuNotificationSonPageTitle: `Notificação Sonora`,
655
672
  appSettingPageMenuNotificationSonDefault: `Por defeito`,
656
673
  appSettingPageMenuNotificationVibrTitle: `Vibração`,
@@ -658,6 +675,8 @@ O scan é feito automaticamente`,
658
675
  appSettingPageMenuHomeThemeTitle: `Página inicial`,
659
676
  appSettingPageMenuHomeThemeDefault: `Simples`,
660
677
  appSettingPageMenuHomeThemeWithtQr: `Com QR Code`,
678
+ categorieSelectionTitle: `Selecionar categorias`,
679
+ categorieSelectionUniqueTitle: `Escolher uma categoria`,
661
680
  categorieDefaultTitle: `Categorias por defeito`,
662
681
  categorieCustomTitle: `Categorias personalizadas`,
663
682
  categorieCustomAdd: `Adicionar uma categoria`,
@@ -710,6 +729,11 @@ O scan é feito automaticamente`,
710
729
  notificationMAJMessage: (systeme: string) => `Uma nova versão da aplicação está disponível em ${systeme}`,
711
730
  notificationMAJBtn: `Instalar`,
712
731
  searchTitle: `O que deseja fazer?`,
732
+ searchShortcutsTitle: `Atalhos`,
733
+ searchRubriquePaiements: `Pagamentos`,
734
+ searchRubriqueAbonnements: `Assinaturas`,
735
+ searchRubriqueServicesBancaires: `Serviços bancários`,
736
+ searchRubriqueProfil: `Perfil e definições`,
713
737
  searchHint: `Pesquisar uma funcionalidade`,
714
738
  searchEmpty: (motCle: string) => `Nenhuma funcionalidade corresponde a «${motCle}»`,
715
739
  searchSendSubTitle: `Enviar dinheiro a um contacto`,
@@ -53,7 +53,8 @@ export class AliasRevendication {
53
53
  }
54
54
 
55
55
  static fromJson(json: Record<string, any>): AliasRevendication {
56
- // Le cache local stocke le nom Dart du statut (`initiee`), l'API sa valeur (`INITIEE`).
56
+ // Valeur de l'API (`INITIEE`) ; le nom (`initiee`) mis en cache par les
57
+ // anciennes versions est aussi accepté.
57
58
  return new AliasRevendication({
58
59
  id: json.id,
59
60
  alias: json.alias,
@@ -70,7 +71,8 @@ export class AliasRevendication {
70
71
  return {
71
72
  id: this.id,
72
73
  alias: this.alias,
73
- statut: AliasRevendicationStatut.nameOf(this.statut),
74
+ // Même format que l'API, relu par fromJson
75
+ statut: this.statut,
74
76
  dateDemande: this.dateDemande.toISOString(),
75
77
  dateVerrouillage: this.dateVerrouillage.toISOString(),
76
78
  dateCloture: this.dateCloture.toISOString(),
@@ -18,6 +18,17 @@ export class AliasOutputLocal {
18
18
  await AppStorage.delete(AliasOutputLocal.collectionId, cle);
19
19
  }
20
20
 
21
+ /**
22
+ * Supprime l'alias de clé [cle] (numéro de téléphone ou adresse de
23
+ * paiement) : les alias sont rangés par compte, pas par clé
24
+ */
25
+ async supprimerParCle(cle: string): Promise<void> {
26
+ const aliases = await AppStorage.list(AliasOutputLocal.collectionId, (json) => Alias.fromJson(json));
27
+ for (const alias of aliases.filter((a) => a.cle === cle)) {
28
+ await this.supprimer(alias.compte);
29
+ }
30
+ }
31
+
21
32
  async revendicationEnregistrer(demande: AliasRevendication): Promise<void> {
22
33
  await AppStorage.save(AliasOutputLocal.revendicationCollectionId, demande.id, demande.toJson());
23
34
  }
@@ -22,7 +22,7 @@ export class AliasOutputRepository implements AliasOutputPort {
22
22
  try {
23
23
  const alias = await this.repoRemote.recuperer(compte);
24
24
  if (alias != null) {
25
- void this.repoLocal.enregistrer(alias);
25
+ await this.repoLocal.enregistrer(alias);
26
26
  }
27
27
  return alias;
28
28
  } catch (e) {
@@ -36,20 +36,21 @@ export class AliasOutputRepository implements AliasOutputPort {
36
36
  const response = await this.repoRemote.creer(alias);
37
37
  // Une fois crée on l'enregistre en local (si c'est MBNO, l'alias n'est pas encore créé)
38
38
  if (alias.type === AliasType.shid) {
39
- void this.repoLocal.enregistrer(response);
39
+ await this.repoLocal.enregistrer(response);
40
40
  }
41
41
  return response;
42
42
  }
43
43
 
44
44
  async confirmer(alias: AliasCreateCommand, otp: string): Promise<Alias> {
45
45
  const response = await this.repoRemote.confirmer(alias, otp);
46
- void this.repoLocal.enregistrer(response);
46
+ await this.repoLocal.enregistrer(response);
47
47
  return response;
48
48
  }
49
49
 
50
50
  async supprimer(cle: string): Promise<void> {
51
51
  await this.repoRemote.supprimer(cle);
52
- await this.repoLocal.supprimer(cle);
52
+ // En local, les alias sont rangés par compte
53
+ await this.repoLocal.supprimerParCle(cle);
53
54
  }
54
55
 
55
56
  async revendicationInitier(compte: string, phone: AliasCreateCommandPhoneNumber): Promise<void> {
@@ -59,7 +60,7 @@ export class AliasOutputRepository implements AliasOutputPort {
59
60
  async revendicationRecuperer(id: string): Promise<AliasRevendication | null> {
60
61
  const demande = await this.repoRemote.revendicationRecuperer(id);
61
62
  if (demande != null) {
62
- void this.repoLocal.revendicationEnregistrer(demande);
63
+ await this.repoLocal.revendicationEnregistrer(demande);
63
64
  }
64
65
  return demande;
65
66
  }
@@ -69,11 +70,11 @@ export class AliasOutputRepository implements AliasOutputPort {
69
70
  const response = await this.repoRemote.revendicationRepondre(id, decision, otpCode);
70
71
  if (decision) {
71
72
  // Supprimer l'alias MBNO en local
72
- void this.repoLocal.supprimer(response.alias);
73
+ await this.repoLocal.supprimerParCle(response.alias);
73
74
  // Creer l'alias SHID en local
74
- void this.repoLocal.enregistrer(response.shid!);
75
+ await this.repoLocal.enregistrer(response.shid!);
75
76
  }
76
- void this.repoLocal.revendicationEnregistrer(response);
77
+ await this.repoLocal.revendicationEnregistrer(response);
77
78
  return response;
78
79
  }
79
80
  }
@@ -7,8 +7,8 @@ import { AppRouter, useAppRouter } from '../../../../core/router';
7
7
  import { useTheme } from '../../../../core/theme';
8
8
  import { useAppLocalizations } from '../../../../l10n/localizations';
9
9
  import { Card } from '../../../../shared/material/card';
10
- import { showDialog, showModalBottomSheet } from '../../../../shared/material/overlays';
11
- import { CustomAlertDialog } from '../../../../shared/widgets/custom_alert_dialog';
10
+ import { showModalBottomSheet } from '../../../../shared/material/overlays';
11
+ import { showConfirmActionSheet } from '../../../../shared/widgets/confirm_action_sheet_widget';
12
12
  import { CustomLoadingDialog } from '../../../../shared/widgets/loading_page';
13
13
  import { NotificationDialog, NotificationType } from '../../../../shared/widgets/notification_dialog';
14
14
  import { ProfileMenuTile } from '../../../profile/presentation/pages/profile_menu';
@@ -30,7 +30,6 @@ export function AliasDeleteBtnWidget() {
30
30
  (state) => {
31
31
  // En cours de suppression
32
32
  if (state instanceof AliasDeletingState) {
33
- AppRouter.pop(router);
34
33
  CustomLoadingDialog.show(router);
35
34
  }
36
35
  // Supprimé
@@ -56,27 +55,21 @@ export function AliasDeleteBtnWidget() {
56
55
  state instanceof AliasDeletingState || state instanceof AliasDeleteErrorState || state instanceof AliasNotExistState,
57
56
  );
58
57
 
59
- const onPress = () => {
60
- void showDialog(router, {
61
- builder: () => (
62
- <CustomAlertDialog
63
- title={traductions.compteDetailsPagePopupDeleteAliasTitle}
64
- description={
65
- alias.type === AliasType.mbno
66
- ? traductions.compteDetailsPagePopupDeleteAliasMBNOSubTitle
67
- : traductions.compteDetailsPagePopupDeleteAliasSHIDSubTitle
68
- }
69
- confirmBtnText={traductions.compteDetailsPagePopupDeleteAliasBtnConfirmer}
70
- confirmBtnAction={async () => {
71
- // Action sensible : vérification (step-up) déléguée à l'hôte
72
- if (!(await Di.config.identification.requireStepUpIdentification())) return;
73
- aliasBloc.add(new AliasDeleteEvent(alias));
74
- }}
75
- cancelBtnText={traductions.compteDetailsPagePopupDeleteAliasBtnAnnuler}
76
- cancelBtnAction={() => AppRouter.pop(router)}
77
- />
78
- ),
58
+ const onPress = async () => {
59
+ // Confirmation, comme la suppression d'un appareil
60
+ const confirme = await showConfirmActionSheet(router, {
61
+ title: traductions.compteDetailsPagePopupDeleteAliasTitle,
62
+ subtitle:
63
+ alias.type === AliasType.mbno
64
+ ? traductions.compteDetailsPagePopupDeleteAliasMBNOSubTitle
65
+ : traductions.compteDetailsPagePopupDeleteAliasSHIDSubTitle,
66
+ confirmTitle: traductions.compteDetailsPagePopupDeleteAliasBtnConfirmer,
67
+ cancelTitle: traductions.compteDetailsPagePopupDeleteAliasBtnAnnuler,
79
68
  });
69
+ if (!confirme) return;
70
+ // Action sensible : vérification (step-up) déléguée à l'hôte
71
+ if (!(await Di.config.identification.requireStepUpIdentification())) return;
72
+ aliasBloc.add(new AliasDeleteEvent(alias));
80
73
  };
81
74
 
82
75
  // Ligne de menu du profil, en rouge
@@ -86,7 +79,7 @@ export function AliasDeleteBtnWidget() {
86
79
  icone="delete-outline"
87
80
  titre={traductions.compteDetailsPageBtnSupprimer}
88
81
  couleur={theme.colorScheme.error}
89
- onPress={onPress}
82
+ onPress={() => void onPress()}
90
83
  />
91
84
  </Card>
92
85
  );