@pi-spi/app 2.0.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 (389) hide show
  1. package/lib/module/core/api.js +14 -5
  2. package/lib/module/core/api.js.map +1 -1
  3. package/lib/module/l10n/app_localizations.js.map +1 -1
  4. package/lib/module/l10n/app_localizations_en.js +40 -8
  5. package/lib/module/l10n/app_localizations_en.js.map +1 -1
  6. package/lib/module/l10n/app_localizations_fr.js +49 -14
  7. package/lib/module/l10n/app_localizations_fr.js.map +1 -1
  8. package/lib/module/l10n/app_localizations_pt.js +41 -7
  9. package/lib/module/l10n/app_localizations_pt.js.map +1 -1
  10. package/lib/module/modules/alias/domain/models/alias_revendication.js +4 -2
  11. package/lib/module/modules/alias/domain/models/alias_revendication.js.map +1 -1
  12. package/lib/module/modules/alias/infra/alias_output_local.js +11 -0
  13. package/lib/module/modules/alias/infra/alias_output_local.js.map +1 -1
  14. package/lib/module/modules/alias/infra/alias_output_repository.js +9 -8
  15. package/lib/module/modules/alias/infra/alias_output_repository.js.map +1 -1
  16. package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js +14 -18
  17. package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js.map +1 -1
  18. package/lib/module/modules/alias/presentation/pages/alias_page_claim.js +113 -60
  19. package/lib/module/modules/alias/presentation/pages/alias_page_claim.js.map +1 -1
  20. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_form.js +151 -76
  21. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_form.js.map +1 -1
  22. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_timer.js +38 -24
  23. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_timer.js.map +1 -1
  24. package/lib/module/modules/alias/presentation/pages/alias_page_create_options.js +28 -26
  25. package/lib/module/modules/alias/presentation/pages/alias_page_create_options.js.map +1 -1
  26. package/lib/module/modules/alias/presentation/pages/alias_page_otp.js +27 -110
  27. package/lib/module/modules/alias/presentation/pages/alias_page_otp.js.map +1 -1
  28. package/lib/module/modules/categorie/domain/services/categorie_service.js +2 -1
  29. package/lib/module/modules/categorie/domain/services/categorie_service.js.map +1 -1
  30. package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js +58 -72
  31. package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js.map +1 -1
  32. package/lib/module/modules/categorie/presentation/pages/categorie_form_pages.js +88 -80
  33. package/lib/module/modules/categorie/presentation/pages/categorie_form_pages.js.map +1 -1
  34. package/lib/module/modules/categorie/presentation/pages/categorie_icon.js +39 -0
  35. package/lib/module/modules/categorie/presentation/pages/categorie_icon.js.map +1 -1
  36. package/lib/module/modules/categorie/presentation/pages/categorie_liste_widget.js +55 -27
  37. package/lib/module/modules/categorie/presentation/pages/categorie_liste_widget.js.map +1 -1
  38. package/lib/module/modules/categorie/presentation/pages/categorie_select_page.js +21 -81
  39. package/lib/module/modules/categorie/presentation/pages/categorie_select_page.js.map +1 -1
  40. package/lib/module/modules/categorie/presentation/pages/categorie_select_widget.js +53 -16
  41. package/lib/module/modules/categorie/presentation/pages/categorie_select_widget.js.map +1 -1
  42. package/lib/module/modules/config/domain/models/config_keys.js +2 -0
  43. package/lib/module/modules/config/domain/models/config_keys.js.map +1 -1
  44. package/lib/module/modules/contacts/domain/contact_pi.js +3 -5
  45. package/lib/module/modules/contacts/domain/contact_pi.js.map +1 -1
  46. package/lib/module/modules/contacts/presentation/bloc/contact_bloc.js +30 -14
  47. package/lib/module/modules/contacts/presentation/bloc/contact_bloc.js.map +1 -1
  48. package/lib/module/modules/contacts/presentation/pages/contact_actions_sheet.js +106 -0
  49. package/lib/module/modules/contacts/presentation/pages/contact_actions_sheet.js.map +1 -0
  50. package/lib/module/modules/contacts/presentation/pages/contact_list_alias_widget.js +17 -7
  51. package/lib/module/modules/contacts/presentation/pages/contact_list_alias_widget.js.map +1 -1
  52. package/lib/module/modules/contacts/presentation/pages/contact_list_phone_widget.js +5 -4
  53. package/lib/module/modules/contacts/presentation/pages/contact_list_phone_widget.js.map +1 -1
  54. package/lib/module/modules/contacts/presentation/pages/contact_list_widget_item.js +76 -67
  55. package/lib/module/modules/contacts/presentation/pages/contact_list_widget_item.js.map +1 -1
  56. package/lib/module/modules/contacts/presentation/pages/contact_section.js +14 -4
  57. package/lib/module/modules/contacts/presentation/pages/contact_section.js.map +1 -1
  58. package/lib/module/modules/contacts/presentation/pages/contact_select_page.js +131 -110
  59. package/lib/module/modules/contacts/presentation/pages/contact_select_page.js.map +1 -1
  60. package/lib/module/modules/contacts/presentation/pages/create/contact_create_page.js +118 -59
  61. package/lib/module/modules/contacts/presentation/pages/create/contact_create_page.js.map +1 -1
  62. package/lib/module/modules/home/presentation/pages/home_page.js +3 -13
  63. package/lib/module/modules/home/presentation/pages/home_page.js.map +1 -1
  64. package/lib/module/modules/introduction/presentation/pages/introduction.js +17 -4
  65. package/lib/module/modules/introduction/presentation/pages/introduction.js.map +1 -1
  66. package/lib/module/modules/introduction/presentation/pages/introduction_footer.js +15 -53
  67. package/lib/module/modules/introduction/presentation/pages/introduction_footer.js.map +1 -1
  68. package/lib/module/modules/introduction/presentation/pages/introduction_page.js +22 -4
  69. package/lib/module/modules/introduction/presentation/pages/introduction_page.js.map +1 -1
  70. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js +2 -2
  71. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js.map +1 -1
  72. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js +1 -1
  73. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js.map +1 -1
  74. package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js +6 -28
  75. package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js.map +1 -1
  76. package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js +14 -53
  77. package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js.map +1 -1
  78. package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js +131 -161
  79. package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js.map +1 -1
  80. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page.js +0 -1
  81. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page.js.map +1 -1
  82. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js +26 -38
  83. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js.map +1 -1
  84. package/lib/module/modules/search/domain/models/fonctionnalite.js +51 -0
  85. package/lib/module/modules/search/domain/models/fonctionnalite.js.map +1 -1
  86. package/lib/module/modules/search/presentation/pages/search_btn_widget.js +136 -0
  87. package/lib/module/modules/search/presentation/pages/search_btn_widget.js.map +1 -0
  88. package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js +21 -1
  89. package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js.map +1 -1
  90. package/lib/module/modules/search/presentation/pages/search_page.js +266 -97
  91. package/lib/module/modules/search/presentation/pages/search_page.js.map +1 -1
  92. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page.js +5 -3
  93. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page.js.map +1 -1
  94. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.js +5 -6
  95. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.js.map +1 -1
  96. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page.js +0 -1
  97. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page.js.map +1 -1
  98. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.js +0 -1
  99. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.js.map +1 -1
  100. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.js +38 -93
  101. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.js.map +1 -1
  102. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.js +0 -1
  103. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.js.map +1 -1
  104. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.js +0 -1
  105. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.js.map +1 -1
  106. package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js +23 -42
  107. package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js.map +1 -1
  108. package/lib/module/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.js +1 -2
  109. package/lib/module/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.js.map +1 -1
  110. package/lib/module/modules/transactions/infra/transaction_output_remote.js +2 -1
  111. package/lib/module/modules/transactions/infra/transaction_output_remote.js.map +1 -1
  112. package/lib/module/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.js +17 -0
  113. package/lib/module/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.js.map +1 -1
  114. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.js +0 -1
  115. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.js.map +1 -1
  116. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.js +34 -61
  117. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.js.map +1 -1
  118. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.js +49 -62
  119. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.js.map +1 -1
  120. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.js +68 -88
  121. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.js.map +1 -1
  122. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.js +30 -23
  123. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.js.map +1 -1
  124. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js +77 -0
  125. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js.map +1 -0
  126. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js +49 -155
  127. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js.map +1 -1
  128. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page.js +16 -4
  129. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page.js.map +1 -1
  130. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.js +11 -9
  131. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.js.map +1 -1
  132. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js +17 -35
  133. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js.map +1 -1
  134. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.js +8 -10
  135. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.js.map +1 -1
  136. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js +127 -106
  137. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js.map +1 -1
  138. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.js +50 -42
  139. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.js.map +1 -1
  140. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.js +0 -1
  141. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.js.map +1 -1
  142. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js +0 -1
  143. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js.map +1 -1
  144. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.js +37 -67
  145. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.js.map +1 -1
  146. package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page.js +9 -15
  147. package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page.js.map +1 -1
  148. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js +5 -11
  149. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js.map +1 -1
  150. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.js +9 -9
  151. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.js.map +1 -1
  152. package/lib/module/shared/widgets/alias_widget.js +33 -12
  153. package/lib/module/shared/widgets/alias_widget.js.map +1 -1
  154. package/lib/module/shared/widgets/auth_code_field.js +89 -0
  155. package/lib/module/shared/widgets/auth_code_field.js.map +1 -0
  156. package/lib/module/shared/widgets/calendar_date_picker.js +21 -16
  157. package/lib/module/shared/widgets/calendar_date_picker.js.map +1 -1
  158. package/lib/module/shared/widgets/confirm_action_sheet_widget.js +53 -67
  159. package/lib/module/shared/widgets/confirm_action_sheet_widget.js.map +1 -1
  160. package/lib/module/shared/widgets/emoji_select_widget.js +34 -39
  161. package/lib/module/shared/widgets/emoji_select_widget.js.map +1 -1
  162. package/lib/module/shared/widgets/frequence_input_widget.js +18 -29
  163. package/lib/module/shared/widgets/frequence_input_widget.js.map +1 -1
  164. package/lib/module/shared/widgets/frequence_select_widget.js +233 -140
  165. package/lib/module/shared/widgets/frequence_select_widget.js.map +1 -1
  166. package/lib/module/shared/widgets/image_select_widget.js +43 -107
  167. package/lib/module/shared/widgets/image_select_widget.js.map +1 -1
  168. package/lib/module/shared/widgets/input_text.js +1 -1
  169. package/lib/module/shared/widgets/input_text.js.map +1 -1
  170. package/lib/module/shared/widgets/notification_dialog.js +28 -37
  171. package/lib/module/shared/widgets/notification_dialog.js.map +1 -1
  172. package/lib/module/shared/widgets/pin_entete.js +114 -0
  173. package/lib/module/shared/widgets/pin_entete.js.map +1 -0
  174. package/lib/module/shared/widgets/select_date_widget.js +74 -59
  175. package/lib/module/shared/widgets/select_date_widget.js.map +1 -1
  176. package/lib/module/shared/widgets/selection.js +387 -6
  177. package/lib/module/shared/widgets/selection.js.map +1 -1
  178. package/lib/typescript/src/core/api.d.ts +6 -0
  179. package/lib/typescript/src/core/api.d.ts.map +1 -1
  180. package/lib/typescript/src/l10n/app_localizations.d.ts +75 -11
  181. package/lib/typescript/src/l10n/app_localizations.d.ts.map +1 -1
  182. package/lib/typescript/src/l10n/app_localizations_en.d.ts.map +1 -1
  183. package/lib/typescript/src/l10n/app_localizations_fr.d.ts.map +1 -1
  184. package/lib/typescript/src/l10n/app_localizations_pt.d.ts.map +1 -1
  185. package/lib/typescript/src/modules/alias/domain/models/alias_revendication.d.ts.map +1 -1
  186. package/lib/typescript/src/modules/alias/infra/alias_output_local.d.ts +5 -0
  187. package/lib/typescript/src/modules/alias/infra/alias_output_local.d.ts.map +1 -1
  188. package/lib/typescript/src/modules/alias/infra/alias_output_repository.d.ts.map +1 -1
  189. package/lib/typescript/src/modules/alias/presentation/pages/alias_delete_btn_widget.d.ts.map +1 -1
  190. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_claim.d.ts.map +1 -1
  191. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_form.d.ts.map +1 -1
  192. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.d.ts +1 -1
  193. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.d.ts.map +1 -1
  194. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_options.d.ts +4 -1
  195. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_options.d.ts.map +1 -1
  196. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_otp.d.ts +9 -5
  197. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_otp.d.ts.map +1 -1
  198. package/lib/typescript/src/modules/categorie/domain/services/categorie_service.d.ts.map +1 -1
  199. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts +3 -0
  200. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts.map +1 -1
  201. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_form_pages.d.ts.map +1 -1
  202. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_icon.d.ts +9 -0
  203. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_icon.d.ts.map +1 -1
  204. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_liste_widget.d.ts +7 -2
  205. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_liste_widget.d.ts.map +1 -1
  206. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_page.d.ts.map +1 -1
  207. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_widget.d.ts +10 -2
  208. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_widget.d.ts.map +1 -1
  209. package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts +3 -1
  210. package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts.map +1 -1
  211. package/lib/typescript/src/modules/contacts/domain/contact_pi.d.ts +0 -2
  212. package/lib/typescript/src/modules/contacts/domain/contact_pi.d.ts.map +1 -1
  213. package/lib/typescript/src/modules/contacts/presentation/bloc/contact_bloc.d.ts +7 -0
  214. package/lib/typescript/src/modules/contacts/presentation/bloc/contact_bloc.d.ts.map +1 -1
  215. package/lib/typescript/src/modules/contacts/presentation/pages/contact_actions_sheet.d.ts +14 -0
  216. package/lib/typescript/src/modules/contacts/presentation/pages/contact_actions_sheet.d.ts.map +1 -0
  217. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_alias_widget.d.ts +4 -2
  218. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_alias_widget.d.ts.map +1 -1
  219. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_phone_widget.d.ts.map +1 -1
  220. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_widget_item.d.ts +6 -4
  221. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_widget_item.d.ts.map +1 -1
  222. package/lib/typescript/src/modules/contacts/presentation/pages/contact_section.d.ts +3 -1
  223. package/lib/typescript/src/modules/contacts/presentation/pages/contact_section.d.ts.map +1 -1
  224. package/lib/typescript/src/modules/contacts/presentation/pages/contact_select_page.d.ts.map +1 -1
  225. package/lib/typescript/src/modules/contacts/presentation/pages/create/contact_create_page.d.ts.map +1 -1
  226. package/lib/typescript/src/modules/home/presentation/pages/home_page.d.ts.map +1 -1
  227. package/lib/typescript/src/modules/introduction/presentation/pages/introduction.d.ts.map +1 -1
  228. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_footer.d.ts +5 -1
  229. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_footer.d.ts.map +1 -1
  230. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_page.d.ts.map +1 -1
  231. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_avatar.d.ts.map +1 -1
  232. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts.d.ts.map +1 -1
  233. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts_actions.d.ts.map +1 -1
  234. package/lib/typescript/src/modules/qrcode/presentation/pages/qrcode_alias_page.d.ts.map +1 -1
  235. package/lib/typescript/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.d.ts.map +1 -1
  236. package/lib/typescript/src/modules/search/domain/models/fonctionnalite.d.ts +20 -0
  237. package/lib/typescript/src/modules/search/domain/models/fonctionnalite.d.ts.map +1 -1
  238. package/lib/typescript/src/modules/search/presentation/pages/search_btn_widget.d.ts +11 -0
  239. package/lib/typescript/src/modules/search/presentation/pages/search_btn_widget.d.ts.map +1 -0
  240. package/lib/typescript/src/modules/search/presentation/pages/search_fonctionnalites.d.ts.map +1 -1
  241. package/lib/typescript/src/modules/search/presentation/pages/search_page.d.ts.map +1 -1
  242. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.d.ts.map +1 -1
  243. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page.d.ts.map +1 -1
  244. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.d.ts.map +1 -1
  245. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.d.ts +2 -2
  246. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.d.ts.map +1 -1
  247. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_menu_widget.d.ts.map +1 -1
  248. package/lib/typescript/src/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.d.ts.map +1 -1
  249. package/lib/typescript/src/modules/transactions/infra/transaction_output_remote.d.ts.map +1 -1
  250. package/lib/typescript/src/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.d.ts.map +1 -1
  251. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.d.ts.map +1 -1
  252. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.d.ts.map +1 -1
  253. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.d.ts.map +1 -1
  254. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.d.ts +4 -1
  255. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.d.ts.map +1 -1
  256. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.d.ts +17 -0
  257. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.d.ts.map +1 -0
  258. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.d.ts +6 -2
  259. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.d.ts.map +1 -1
  260. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.d.ts +4 -0
  261. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.d.ts.map +1 -1
  262. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.d.ts.map +1 -1
  263. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.d.ts.map +1 -1
  264. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.d.ts.map +1 -1
  265. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.d.ts.map +1 -1
  266. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.d.ts.map +1 -1
  267. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.d.ts.map +1 -1
  268. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_search/transaction_search_page.d.ts.map +1 -1
  269. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.d.ts.map +1 -1
  270. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.d.ts.map +1 -1
  271. package/lib/typescript/src/shared/widgets/alias_widget.d.ts +2 -2
  272. package/lib/typescript/src/shared/widgets/alias_widget.d.ts.map +1 -1
  273. package/lib/typescript/src/shared/widgets/auth_code_field.d.ts +17 -0
  274. package/lib/typescript/src/shared/widgets/auth_code_field.d.ts.map +1 -0
  275. package/lib/typescript/src/shared/widgets/calendar_date_picker.d.ts.map +1 -1
  276. package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts +16 -2
  277. package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts.map +1 -1
  278. package/lib/typescript/src/shared/widgets/emoji_select_widget.d.ts.map +1 -1
  279. package/lib/typescript/src/shared/widgets/frequence_input_widget.d.ts +6 -3
  280. package/lib/typescript/src/shared/widgets/frequence_input_widget.d.ts.map +1 -1
  281. package/lib/typescript/src/shared/widgets/frequence_select_widget.d.ts +23 -5
  282. package/lib/typescript/src/shared/widgets/frequence_select_widget.d.ts.map +1 -1
  283. package/lib/typescript/src/shared/widgets/image_select_widget.d.ts +6 -4
  284. package/lib/typescript/src/shared/widgets/image_select_widget.d.ts.map +1 -1
  285. package/lib/typescript/src/shared/widgets/input_text.d.ts +2 -0
  286. package/lib/typescript/src/shared/widgets/input_text.d.ts.map +1 -1
  287. package/lib/typescript/src/shared/widgets/notification_dialog.d.ts +5 -3
  288. package/lib/typescript/src/shared/widgets/notification_dialog.d.ts.map +1 -1
  289. package/lib/typescript/src/shared/widgets/pin_entete.d.ts +15 -0
  290. package/lib/typescript/src/shared/widgets/pin_entete.d.ts.map +1 -0
  291. package/lib/typescript/src/shared/widgets/select_date_widget.d.ts +4 -0
  292. package/lib/typescript/src/shared/widgets/select_date_widget.d.ts.map +1 -1
  293. package/lib/typescript/src/shared/widgets/selection.d.ts +74 -3
  294. package/lib/typescript/src/shared/widgets/selection.d.ts.map +1 -1
  295. package/package.json +1 -1
  296. package/src/core/api.ts +11 -2
  297. package/src/l10n/app_localizations.ts +75 -11
  298. package/src/l10n/app_localizations_en.ts +40 -8
  299. package/src/l10n/app_localizations_fr.ts +46 -14
  300. package/src/l10n/app_localizations_pt.ts +39 -7
  301. package/src/modules/alias/domain/models/alias_revendication.ts +4 -2
  302. package/src/modules/alias/infra/alias_output_local.ts +11 -0
  303. package/src/modules/alias/infra/alias_output_repository.ts +9 -8
  304. package/src/modules/alias/presentation/pages/alias_delete_btn_widget.tsx +17 -24
  305. package/src/modules/alias/presentation/pages/alias_page_claim.tsx +76 -48
  306. package/src/modules/alias/presentation/pages/alias_page_create_mbno_form.tsx +113 -65
  307. package/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.tsx +34 -25
  308. package/src/modules/alias/presentation/pages/alias_page_create_options.tsx +29 -36
  309. package/src/modules/alias/presentation/pages/alias_page_otp.tsx +24 -88
  310. package/src/modules/categorie/domain/services/categorie_service.ts +2 -1
  311. package/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.tsx +58 -50
  312. package/src/modules/categorie/presentation/pages/categorie_form_pages.tsx +71 -41
  313. package/src/modules/categorie/presentation/pages/categorie_icon.tsx +26 -0
  314. package/src/modules/categorie/presentation/pages/categorie_liste_widget.tsx +45 -24
  315. package/src/modules/categorie/presentation/pages/categorie_select_page.tsx +10 -46
  316. package/src/modules/categorie/presentation/pages/categorie_select_widget.tsx +54 -13
  317. package/src/modules/config/domain/models/config_keys.ts +3 -0
  318. package/src/modules/contacts/domain/contact_pi.ts +3 -6
  319. package/src/modules/contacts/presentation/bloc/contact_bloc.ts +37 -20
  320. package/src/modules/contacts/presentation/pages/contact_actions_sheet.tsx +69 -0
  321. package/src/modules/contacts/presentation/pages/contact_list_alias_widget.tsx +26 -4
  322. package/src/modules/contacts/presentation/pages/contact_list_phone_widget.tsx +3 -0
  323. package/src/modules/contacts/presentation/pages/contact_list_widget_item.tsx +54 -65
  324. package/src/modules/contacts/presentation/pages/contact_section.tsx +13 -3
  325. package/src/modules/contacts/presentation/pages/contact_select_page.tsx +106 -74
  326. package/src/modules/contacts/presentation/pages/create/contact_create_page.tsx +86 -47
  327. package/src/modules/home/presentation/pages/home_page.tsx +2 -9
  328. package/src/modules/introduction/presentation/pages/introduction.tsx +8 -0
  329. package/src/modules/introduction/presentation/pages/introduction_footer.tsx +16 -36
  330. package/src/modules/introduction/presentation/pages/introduction_page.tsx +17 -5
  331. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.tsx +2 -2
  332. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.tsx +1 -1
  333. package/src/modules/profile/presentation/pages/profile_page_avatar.tsx +6 -12
  334. package/src/modules/profile/presentation/pages/profile_page_contacts.tsx +12 -20
  335. package/src/modules/profile/presentation/pages/profile_page_contacts_actions.tsx +120 -117
  336. package/src/modules/qrcode/presentation/pages/qrcode_alias_page.tsx +0 -1
  337. package/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.tsx +32 -40
  338. package/src/modules/search/domain/models/fonctionnalite.ts +56 -0
  339. package/src/modules/search/presentation/pages/search_btn_widget.tsx +91 -0
  340. package/src/modules/search/presentation/pages/search_fonctionnalites.ts +21 -1
  341. package/src/modules/search/presentation/pages/search_page.tsx +166 -57
  342. package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.tsx +4 -2
  343. package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.tsx +5 -5
  344. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page.tsx +0 -1
  345. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.tsx +0 -1
  346. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.tsx +20 -59
  347. package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.tsx +1 -1
  348. package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.tsx +1 -1
  349. package/src/modules/subscription/presentation/pages/subscription_menu_widget.tsx +25 -39
  350. package/src/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.ts +1 -2
  351. package/src/modules/transactions/infra/transaction_output_remote.ts +6 -1
  352. package/src/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.ts +17 -0
  353. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.tsx +0 -1
  354. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.tsx +39 -41
  355. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.tsx +41 -46
  356. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.tsx +46 -40
  357. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.tsx +26 -17
  358. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.tsx +92 -0
  359. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.tsx +48 -94
  360. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page.tsx +20 -2
  361. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.tsx +6 -8
  362. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.tsx +9 -22
  363. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.tsx +5 -7
  364. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.tsx +112 -104
  365. package/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.tsx +49 -42
  366. package/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.tsx +1 -1
  367. package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.tsx +0 -1
  368. package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.tsx +47 -48
  369. package/src/modules/transactions/presentation/pages/transaction_search/transaction_search_page.tsx +6 -10
  370. package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.tsx +3 -6
  371. package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.tsx +5 -5
  372. package/src/shared/widgets/alias_widget.tsx +45 -18
  373. package/src/shared/widgets/auth_code_field.tsx +89 -0
  374. package/src/shared/widgets/calendar_date_picker.tsx +12 -11
  375. package/src/shared/widgets/confirm_action_sheet_widget.tsx +49 -35
  376. package/src/shared/widgets/emoji_select_widget.tsx +31 -29
  377. package/src/shared/widgets/frequence_input_widget.tsx +18 -24
  378. package/src/shared/widgets/frequence_select_widget.tsx +237 -117
  379. package/src/shared/widgets/image_select_widget.tsx +46 -61
  380. package/src/shared/widgets/input_text.tsx +3 -0
  381. package/src/shared/widgets/notification_dialog.tsx +70 -71
  382. package/src/shared/widgets/pin_entete.tsx +74 -0
  383. package/src/shared/widgets/select_date_widget.tsx +66 -34
  384. package/src/shared/widgets/selection.tsx +304 -5
  385. package/lib/module/modules/transactions/presentation/pages/transaction_details/sheet_box.js +0 -47
  386. package/lib/module/modules/transactions/presentation/pages/transaction_details/sheet_box.js.map +0 -1
  387. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/sheet_box.d.ts +0 -10
  388. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/sheet_box.d.ts.map +0 -1
  389. package/src/modules/transactions/presentation/pages/transaction_details/sheet_box.tsx +0 -30
@@ -0,0 +1,92 @@
1
+ import { useState } from 'react';
2
+
3
+ import { AppRouter, useAppRouter } from '../../../../../core/router';
4
+ import { useAppLocalizations } from '../../../../../l10n/localizations';
5
+ import { showModalBottomSheet } from '../../../../../shared/material/overlays';
6
+ import { UEMOACountry } from '../../../../../shared/models/uemoa_countries';
7
+ import {
8
+ SelectionLigne,
9
+ SelectionListe,
10
+ SelectionPastille,
11
+ SelectionRecherche,
12
+ selectionContient,
13
+ SelectionChamp,
14
+ SelectionSheet,
15
+ } from '../../../../../shared/widgets/selection';
16
+ import type { TransactionSendCommand } from '../../../domain/models/transaction_send/transaction_send_command';
17
+ import type { TransactionSendBloc } from '../../bloc/transaction_send/transaction_send_bloc';
18
+ import { TransactionSendFormChangedEvent } from '../../bloc/transaction_send/transaction_send_event';
19
+
20
+ /**
21
+ * Pays de l'institution financière : champ qui ouvre une feuille de
22
+ * sélection, avec recherche par nom ou par code. Changer de pays efface
23
+ * l'institution choisie.
24
+ */
25
+ export function TransactionSendFormInputPays({
26
+ command,
27
+ transactionSendBloc,
28
+ }: {
29
+ command: TransactionSendCommand;
30
+ transactionSendBloc: TransactionSendBloc;
31
+ }) {
32
+ const traductions = useAppLocalizations();
33
+ const router = useAppRouter();
34
+ const selected = command.pspPays != null ? UEMOACountry.get(command.pspPays) : undefined;
35
+
36
+ const select = async () => {
37
+ const value = await showModalBottomSheet<UEMOACountry>(router, {
38
+ builder: () => <SelectPays selected={selected} />,
39
+ });
40
+ if (value != null && value.iso !== command.pspPays) {
41
+ command.pspPays = value.iso;
42
+ command.pspCode = undefined;
43
+ command.pspNom = undefined;
44
+ transactionSendBloc.add(new TransactionSendFormChangedEvent(command));
45
+ }
46
+ };
47
+
48
+ return (
49
+ <SelectionChamp
50
+ libelle={traductions.transactionFormOthrPaysLabel}
51
+ valeur={selected?.name}
52
+ pastille={selected != null ? <SelectionPastille code={selected.iso3} /> : undefined}
53
+ onPress={() => void select()}
54
+ />
55
+ );
56
+ }
57
+
58
+ /** Feuille de sélection d'un pays de l'UEMOA ; renvoie le pays choisi. */
59
+ export function SelectPays({ selected }: { selected?: UEMOACountry }) {
60
+ const traductions = useAppLocalizations();
61
+ const router = useAppRouter();
62
+ const [recherche, setRecherche] = useState('');
63
+
64
+ const pays =
65
+ recherche.trim() === ''
66
+ ? UEMOACountry.liste
67
+ : UEMOACountry.liste.filter(
68
+ (p) =>
69
+ selectionContient(p.name, recherche) || selectionContient(p.iso, recherche) || selectionContient(p.iso3, recherche),
70
+ );
71
+
72
+ return (
73
+ <SelectionSheet
74
+ titre={traductions.transactionFormOthrPaysLabel}
75
+ entete={<SelectionRecherche hintText={traductions.transactionFormOthrPaysRecherche} onChanged={setRecherche} />}
76
+ contenu={
77
+ <SelectionListe
78
+ vide={traductions.transactionFormOthrPaysAucun}
79
+ lignes={pays.map((p) => (
80
+ <SelectionLigne
81
+ key={p.iso}
82
+ pastille={<SelectionPastille code={p.iso3} choisie={p.iso === selected?.iso} />}
83
+ texte={p.name}
84
+ choisie={p.iso === selected?.iso}
85
+ onPress={() => AppRouter.pop(router, { value: p })}
86
+ />
87
+ ))}
88
+ />
89
+ }
90
+ />
91
+ );
92
+ }
@@ -1,20 +1,24 @@
1
- import { MaterialIcons } from '@expo/vector-icons';
2
- import { useEffect, useRef, useState } from 'react';
3
- import { Animated, Easing, Keyboard, Pressable, ScrollView, StyleSheet, Text, TextInput, useWindowDimensions, View } from 'react-native';
4
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
1
+ import { useState } from 'react';
2
+ import { View, StyleSheet } from 'react-native';
5
3
 
6
4
  import { AppRouter, useAppRouter } from '../../../../../core/router';
7
- import { Themer, useTheme } from '../../../../../core/theme';
8
5
  import { useAppLocalizations } from '../../../../../l10n/localizations';
9
- import { Card } from '../../../../../shared/material/card';
10
6
  import { showModalBottomSheet } from '../../../../../shared/material/overlays';
11
- import { CustomTextInput } from '../../../../../shared/widgets/input_text';
7
+ import {
8
+ SelectionLigne,
9
+ SelectionListe,
10
+ SelectionPastille,
11
+ SelectionRecherche,
12
+ selectionContient,
13
+ SelectionChamp,
14
+ SelectionSheet,
15
+ } from '../../../../../shared/widgets/selection';
12
16
  import type { Participant } from '../../../domain/models/participant/participant';
13
17
  import type { TransactionSendCommand } from '../../../domain/models/transaction_send/transaction_send_command';
14
18
  import type { TransactionSendBloc } from '../../bloc/transaction_send/transaction_send_bloc';
15
19
  import { TransactionSendFormChangedEvent } from '../../bloc/transaction_send/transaction_send_event';
16
20
 
17
- /** Champ « Institution » : ouvre la liste des participants du pays choisi. */
21
+ /** Institution financière du bénéficiaire : champ qui ouvre la liste des participants du pays choisi, avec recherche. */
18
22
  export function TransactionSendFormInputPsp({
19
23
  command,
20
24
  transactionSendBloc,
@@ -25,14 +29,11 @@ export function TransactionSendFormInputPsp({
25
29
  participants: Participant[];
26
30
  }) {
27
31
  const traductions = useAppLocalizations();
28
- const theme = useTheme();
29
32
  const router = useAppRouter();
30
33
  const psp = participants.find((p) => p.codeMembre === command.pspCode) ?? null;
31
34
 
32
35
  const select = async () => {
33
- Keyboard.dismiss();
34
36
  const value = await showModalBottomSheet<Participant>(router, {
35
- themed: true,
36
37
  builder: () => <SelectPsp participants={participants} pays={command.pspPays} selected={psp} />,
37
38
  });
38
39
  if (value != null) {
@@ -43,21 +44,20 @@ export function TransactionSendFormInputPsp({
43
44
  };
44
45
 
45
46
  return (
46
- <Pressable onPress={() => void select()}>
47
- <View pointerEvents="none">
48
- <CustomTextInput
49
- labelText={traductions.transactionFormOthrNomLabel}
50
- hintText={traductions.transactionFormOthrNomLabel}
51
- value={psp?.nomMembre ?? ''}
52
- readOnly
53
- suffixIcon={<MaterialIcons name="keyboard-arrow-down" size={24} color={theme.colorScheme.onSurface} />}
54
- />
55
- </View>
56
- </Pressable>
47
+ <SelectionChamp
48
+ libelle={traductions.transactionFormOthrNomLabel}
49
+ valeur={psp?.nomMembre}
50
+ pastille={psp != null ? <SelectionPastille icone="account-balance" /> : undefined}
51
+ onPress={() => void select()}
52
+ />
57
53
  );
58
54
  }
59
55
 
60
- /** Feuille de choix d'un participant, avec recherche ; les participants indisponibles sont grisés. */
56
+ /**
57
+ * Feuille de choix d'un participant, avec recherche ; renvoie le
58
+ * participant choisi. Les participants indisponibles sont grisés et ne
59
+ * peuvent pas être choisis, sauf avec [canSelectDisablePsp].
60
+ */
61
61
  export function SelectPsp({
62
62
  canSelectDisablePsp = false,
63
63
  participants,
@@ -70,91 +70,45 @@ export function SelectPsp({
70
70
  selected?: Participant | null;
71
71
  }) {
72
72
  const traductions = useAppLocalizations();
73
- const theme = useTheme();
74
73
  const router = useAppRouter();
75
- const insets = useSafeAreaInsets();
76
- const { height } = useWindowDimensions();
77
- const [keyword, setKeyword] = useState('');
78
- const [searchFocused, setSearchFocused] = useState(false);
79
- // Comme l'AnimatedContainer Flutter : 50 % de l'écran, 80 % pendant la recherche
80
- const sheetHeight = useRef(new Animated.Value(height * 0.5)).current;
81
- useEffect(() => {
82
- Animated.timing(sheetHeight, {
83
- toValue: height * (searchFocused ? 0.8 : 0.5),
84
- duration: 300,
85
- easing: Easing.inOut(Easing.ease),
86
- useNativeDriver: false,
87
- }).start();
88
- }, [height, searchFocused, sheetHeight]);
74
+ const [recherche, setRecherche] = useState('');
89
75
 
90
76
  const psps = participants.filter(
91
77
  (p) =>
92
78
  (pays == null || p.pays.toLowerCase() === pays.toLowerCase()) &&
93
- (keyword === '' || p.nomMembre.toLowerCase().includes(keyword.toLowerCase())),
79
+ (recherche.trim() === '' || selectionContient(p.nomMembre, recherche)),
94
80
  );
95
81
 
96
82
  return (
97
- <Animated.View style={[styles.sheet, { backgroundColor: theme.colorScheme.surface, height: sheetHeight, paddingBottom: insets.bottom }]}>
98
- <Text style={theme.textTheme.headlineLarge}>{traductions.transactionFormOthrNomLabel}</Text>
99
- <View style={styles.gap10} />
100
- {/* Recherche */}
101
- <Card>
102
- <View style={[styles.search, { backgroundColor: theme.inputDecorationTheme.fillColor }]}>
103
- <MaterialIcons name="search" size={24} color={Themer.neural03Color} />
104
- <TextInput
105
- style={[theme.textTheme.displayLarge, styles.searchInput]}
106
- placeholder={traductions.btnTextRechercher}
107
- placeholderTextColor={Themer.neural03Color}
108
- onFocus={() => setSearchFocused(true)}
109
- onBlur={() => setSearchFocused(false)}
110
- onChangeText={setKeyword}
111
- />
112
- </View>
113
- </Card>
114
- <View style={styles.gap20} />
115
- {/* Liste des participants */}
116
- <Card style={styles.flex}>
117
- <ScrollView keyboardShouldPersistTaps="handled">
118
- {psps.map((psp) => {
119
- const disabled = !canSelectDisablePsp && psp.isDisable();
120
- const isCurrent = psp.codeMembre === selected?.codeMembre;
83
+ <SelectionSheet
84
+ titre={traductions.transactionFormOthrNomLabel}
85
+ entete={<SelectionRecherche hintText={traductions.transactionFormOthrPspRecherche} onChanged={setRecherche} />}
86
+ contenu={
87
+ <SelectionListe
88
+ vide={traductions.transactionFormOthrPspAucune}
89
+ lignes={psps.map((psp) => {
90
+ const choisie = psp.codeMembre === selected?.codeMembre;
91
+ const indisponible = !canSelectDisablePsp && psp.isDisable();
121
92
  return (
122
- <View key={psp.codeMembre} style={styles.itemPadding}>
123
- <Pressable
124
- disabled={disabled}
125
- onPress={() => AppRouter.pop(router, { value: psp })}
126
- style={[styles.item, isCurrent ? { backgroundColor: Themer.neural01Color } : null]}
127
- >
128
- <View style={styles.flex}>
129
- <Text
130
- numberOfLines={1}
131
- style={[theme.textTheme.headlineSmall, styles.pspName, disabled ? { color: Themer.neural02Color } : null]}
132
- >
133
- {psp.nomMembre}
134
- </Text>
135
- {disabled && (
136
- <Text style={[theme.textTheme.displaySmall, { color: Themer.neural02Color }]}>{traductions.indisponible}</Text>
137
- )}
138
- </View>
139
- {isCurrent && <MaterialIcons name="check" size={24} color={Themer.neural03Color} />}
140
- </Pressable>
93
+ <View key={psp.codeMembre} style={indisponible ? styles.indisponible : null}>
94
+ <SelectionLigne
95
+ pastille={<SelectionPastille icone="account-balance" choisie={choisie} />}
96
+ texte={psp.nomMembre}
97
+ detail={indisponible ? traductions.indisponible : undefined}
98
+ choisie={choisie}
99
+ onPress={() => {
100
+ if (!indisponible) AppRouter.pop(router, { value: psp });
101
+ }}
102
+ />
141
103
  </View>
142
104
  );
143
105
  })}
144
- </ScrollView>
145
- </Card>
146
- </Animated.View>
106
+ />
107
+ }
108
+ />
147
109
  );
148
110
  }
149
111
 
150
112
  const styles = StyleSheet.create({
151
- flex: { flex: 1 },
152
- sheet: { borderRadius: 20, paddingTop: 20, paddingHorizontal: 20 },
153
- search: { height: 36, flexDirection: 'row', alignItems: 'center', paddingHorizontal: 12 },
154
- searchInput: { flex: 1, marginLeft: 8, paddingVertical: 0 },
155
- itemPadding: { paddingHorizontal: 8 },
156
- item: { flexDirection: 'row', alignItems: 'center', paddingHorizontal: 10, minHeight: 56, borderRadius: 20 },
157
- pspName: { fontWeight: '700', fontSize: 15 },
158
- gap10: { height: 10 },
159
- gap20: { height: 20 },
113
+ indisponible: { opacity: 0.5 },
160
114
  });
@@ -30,7 +30,7 @@ import {
30
30
  } from '../../bloc/transaction_send/transaction_send_state';
31
31
  import { TransactionSendPageError } from '../transaction_send/transaction_send_page_error';
32
32
  import { TransactionSendPageSuccess } from '../transaction_send/transaction_send_page_succes';
33
- import { TransactionFormPageAlias } from './transaction_form_page_alias';
33
+ import { pageTitle, TransactionFormPageAlias } from './transaction_form_page_alias';
34
34
  import { TransactionFormPageOthr } from './transaction_form_page_othr';
35
35
 
36
36
  export function showTransactionError(router: SdkRouter, error: string, method?: TransactionSendMethod | null) {
@@ -144,9 +144,27 @@ export function TransactionFormPage() {
144
144
  /** Barre du haut : le destinataire choisi parmi les contacts (nom, alias, photo) */
145
145
  function FormAppBar({ command: cmd, onBack: back }: { command: TransactionSendCommand; onBack: () => void }) {
146
146
  const theme = useTheme();
147
+ const traductions = useAppLocalizations();
147
148
  const contact = cmd.contact;
148
149
  // Destinataire choisi parmi les contacts : son nom, son alias et sa photo
149
- if (contact == null || cmd.method !== TransactionSendMethod.alias) return <AppBar onBack={back} />;
150
+ if (contact == null || cmd.method !== TransactionSendMethod.alias) {
151
+ // Titre de la page dans la barre du haut
152
+ const titre = [TransactionSendMethod.iban, TransactionSendMethod.othr].includes(cmd.method)
153
+ ? traductions.transactionsSendFormOthrTitle
154
+ : pageTitle(traductions, cmd);
155
+ return (
156
+ <AppBar
157
+ onBack={back}
158
+ title={
159
+ titre.length === 0 ? undefined : (
160
+ <Text numberOfLines={1} style={[theme.textTheme.headlineMedium, { color: theme.appBarTheme.foregroundColor }]}>
161
+ {titre}
162
+ </Text>
163
+ )
164
+ }
165
+ />
166
+ );
167
+ }
150
168
  return (
151
169
  <AppBar
152
170
  onBack={back}
@@ -72,16 +72,12 @@ export function TransactionFormPageAlias() {
72
72
  return (
73
73
  <View>
74
74
  {/* Titre de la page */}
75
- {cmd.contact == null && (
76
- <>
77
- <Text style={theme.textTheme.titleSmall}>{pageTitle(traductions, cmd)}</Text>
78
- <View style={styles.gap5} />
79
- </>
80
- )}
75
+ {/* Titre dans la barre du haut (voir pageTitle, utilisé par TransactionFormPage) */}
76
+ {cmd.contact == null && <View style={styles.gap8} />}
81
77
  {cmd.contact == null && cmd.method !== TransactionSendMethod.qrcode ? (
82
78
  <>
83
79
  {/* Sous-titre de la page */}
84
- <Text style={theme.textTheme.displaySmall}>{traductions.transactionsSendFormAliasSubtitle}</Text>
80
+ <Text style={[theme.textTheme.displaySmall, { color: Themer.neural03Color }]}>{traductions.transactionsSendFormAliasSubtitle}</Text>
85
81
  <View style={showAmount ? styles.gap32 : styles.gap10} />
86
82
  {/* Alias */}
87
83
  <TransactionFormInputAlias
@@ -138,7 +134,8 @@ export function TransactionFormPageAlias() {
138
134
  );
139
135
  }
140
136
 
141
- function pageTitle(traductions: AppLocalizations, cmd: TransactionSendCommand): string {
137
+ /** Titre de la page, affiché dans la barre du haut par TransactionFormPage (vide pour un envoi à un contact) */
138
+ export function pageTitle(traductions: AppLocalizations, cmd: TransactionSendCommand): string {
142
139
  if (cmd.contact != null) return '';
143
140
  if (cmd.action === TransactionSendCommand.actionSendNow || cmd.action === TransactionSendCommand.actionSendSchedule) {
144
141
  if (cmd.method === TransactionSendMethod.qrcode) {
@@ -157,6 +154,7 @@ function pageTitle(traductions: AppLocalizations, cmd: TransactionSendCommand):
157
154
  }
158
155
 
159
156
  const styles = StyleSheet.create({
157
+ gap8: { height: 8 },
160
158
  gap5: { height: 5 },
161
159
  gap6: { height: 6 },
162
160
  gap10: { height: 10 },
@@ -3,10 +3,9 @@ import { Keyboard, StyleSheet, Text, useWindowDimensions, View } from 'react-nat
3
3
 
4
4
  import { AppEnv } from '../../../../../core/env';
5
5
  import { useBloc, useBlocBuilder } from '../../../../../core/bloc_react';
6
- import { useTheme } from '../../../../../core/theme';
6
+ import { Themer, useTheme } from '../../../../../core/theme';
7
7
  import type { AppLocalizations } from '../../../../../l10n/app_localizations';
8
8
  import { useAppLocalizations } from '../../../../../l10n/localizations';
9
- import { DropdownButton } from '../../../../../shared/material/dropdown';
10
9
  import { CompteValidator } from '../../../../../shared/models/compte_validator';
11
10
  import { UEMOACountry } from '../../../../../shared/models/uemoa_countries';
12
11
  import { useKeyboardVisible } from '../../../../../shared/utils/use_keyboard_visible';
@@ -17,11 +16,11 @@ import type { Participant } from '../../../domain/models/participant/participant
17
16
  import type { TransactionSendCommand } from '../../../domain/models/transaction_send/transaction_send_command';
18
17
  import { TransactionSendMethod } from '../../../domain/models/transaction_send/transaction_send_method';
19
18
  import { TransactionSendBloc } from '../../bloc/transaction_send/transaction_send_bloc';
20
- import { TransactionSendFormChangedEvent } from '../../bloc/transaction_send/transaction_send_event';
21
19
  import { TransactionSendFormInputState } from '../../bloc/transaction_send/transaction_send_state';
22
20
  import { TransactionFormInputAmount } from './transaction_form_input_amount';
23
21
  import { TransactionFormInputMotif } from './transaction_form_input_motif';
24
22
  import { setOthrCompte, TransactionFormInputOthr } from './transaction_form_input_othr';
23
+ import { TransactionSendFormInputPays } from './transaction_form_input_pays';
25
24
  import { TransactionSendFormInputPsp } from './transaction_form_input_psp';
26
25
 
27
26
  /**
@@ -49,11 +48,10 @@ export function TransactionFormPageOthr() {
49
48
 
50
49
  return (
51
50
  <View>
52
- {/* Titre de la page */}
53
- <Text style={[theme.textTheme.titleSmall, styles.title]}>{traductions.transactionsSendFormOthrTitle}</Text>
54
- <View style={styles.gap5} />
51
+ {/* Titre dans la barre du haut (TransactionFormPage) */}
52
+ <View style={styles.gap8} />
55
53
  {/* Sous-titre de la page */}
56
- <Text style={theme.textTheme.displaySmall}>{traductions.transactionsSendFormOthrSubtitle}</Text>
54
+ <Text style={[theme.textTheme.displaySmall, { color: Themer.neural03Color }]}>{traductions.transactionsSendFormOthrSubtitle}</Text>
57
55
  <View style={showDetails ? styles.gap32 : styles.gap10} />
58
56
 
59
57
  {/* Compte */}
@@ -101,20 +99,8 @@ export function TransactionFormPageOthr() {
101
99
  <View>
102
100
  <View style={styles.gap16} />
103
101
  {/* Pays */}
104
- <View style={[styles.pays, { backgroundColor: theme.cardTheme.color }]}>
105
- <Text style={theme.inputDecorationTheme.floatingLabelStyle}>{traductions.transactionFormOthrPaysLabel}</Text>
106
- <DropdownButton
107
- value={cmd.pspPays}
108
- items={UEMOACountry.liste.map((c) => ({ value: c.iso, label: `${c.flag} ${c.name}` }))}
109
- onChanged={(value) => {
110
- cmd.pspPays = value;
111
- cmd.pspCode = undefined;
112
- cmd.pspNom = undefined;
113
- transactionSendBloc.add(new TransactionSendFormChangedEvent(cmd));
114
- }}
115
- />
116
- </View>
117
- <View style={styles.gap16} />
102
+ <TransactionSendFormInputPays command={cmd} transactionSendBloc={transactionSendBloc} />
103
+ <View style={styles.gap12} />
118
104
  {/* Participant */}
119
105
  <TransactionSendFormInputPsp
120
106
  command={cmd}
@@ -184,11 +170,12 @@ function pspError(traductions: AppLocalizations, participants: Participant[], cm
184
170
  }
185
171
 
186
172
  const styles = StyleSheet.create({
173
+ gap8: { height: 8 },
187
174
  title: { fontSize: 25 },
188
- pays: { borderRadius: 14, paddingHorizontal: 16, paddingTop: 8 },
189
175
  gap5: { height: 5 },
190
176
  gap6: { height: 6 },
191
177
  gap10: { height: 10 },
178
+ gap12: { height: 12 },
192
179
  gap16: { height: 16 },
193
180
  gap32: { height: 32 },
194
181
  });
@@ -3,11 +3,11 @@ import { ScrollView, StyleSheet, Text, View } from 'react-native';
3
3
  import { useBloc, useBlocBuilder, useBlocListener } from '../../../../../core/bloc_react';
4
4
  import { Di } from '../../../../../core/di';
5
5
  import { AppRouter, useAppRouter } from '../../../../../core/router';
6
- import { useTheme } from '../../../../../core/theme';
6
+ import { Themer, useTheme } from '../../../../../core/theme';
7
7
  import { useAppLocalizations } from '../../../../../l10n/localizations';
8
8
  import { ElevatedButton } from '../../../../../shared/material/buttons';
9
9
  import { showModalBottomSheet } from '../../../../../shared/material/overlays';
10
- import { AppBar, Scaffold } from '../../../../../shared/material/scaffold';
10
+ import { Scaffold } from '../../../../../shared/material/scaffold';
11
11
  import { FrequenceInputWidget } from '../../../../../shared/widgets/frequence_input_widget';
12
12
  import { CustomLoadingDialog, LoadingPage } from '../../../../../shared/widgets/loading_page';
13
13
  import { MyPageContainer } from '../../../../../shared/widgets/my_page_container';
@@ -24,6 +24,7 @@ import {
24
24
  import { TransactionSendPageError } from '../transaction_send/transaction_send_page_error';
25
25
  import { TransactionSendPageSuccess } from '../transaction_send/transaction_send_page_succes';
26
26
  import { TransactionSendFormInputDate } from './transaction_form_input_date';
27
+ import { ProfileAppBar } from '../../../../profile/presentation/pages/profile_app_bar';
27
28
 
28
29
  /** Programmation d'un transfert : fréquence et dates (route `transactionFormSchedule`). */
29
30
  export function TransactionFormPageSchedule({
@@ -99,14 +100,11 @@ export function TransactionFormPageSchedule({
99
100
  };
100
101
 
101
102
  return (
102
- <Scaffold appBar={<AppBar onBack={() => AppRouter.pop(router)} />}>
103
+ <Scaffold appBar={<ProfileAppBar titre={traductions.transactionFormScheduleTitle} />}>
103
104
  <MyPageContainer>
104
105
  <ScrollView style={styles.flex}>
105
- {/* Titre de la page */}
106
- <Text style={theme.textTheme.titleSmall}>{traductions.transactionFormScheduleTitle}</Text>
107
- <View style={styles.gap5} />
108
106
  {/* Sous-titre de la page */}
109
- <Text style={theme.textTheme.displaySmall}>{traductions.transactionFormScheduleSubtitle}</Text>
107
+ <Text style={[theme.textTheme.displaySmall, { color: Themer.neural03Color }]}>{traductions.transactionFormScheduleSubtitle}</Text>
110
108
  <View style={styles.gap32} />
111
109
  {/* Fréquence */}
112
110
  <FrequenceInputWidget