@pi-spi/app 1.5.1 → 2.0.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.
- package/README.md +64 -30
- package/example/App.tsx +27 -24
- package/lib/module/core/assets.js +0 -7
- package/lib/module/core/assets.js.map +1 -1
- package/lib/module/core/di.js +17 -8
- package/lib/module/core/di.js.map +1 -1
- package/lib/module/core/pi_spi_custom_theme.js +22 -10
- package/lib/module/core/pi_spi_custom_theme.js.map +1 -1
- package/lib/module/core/pi_spi_sdk_config.js +22 -8
- package/lib/module/core/pi_spi_sdk_config.js.map +1 -1
- package/lib/module/core/theme.js +345 -225
- package/lib/module/core/theme.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/l10n/app_localizations.js.map +1 -1
- package/lib/module/l10n/app_localizations_en.js +26 -1
- package/lib/module/l10n/app_localizations_en.js.map +1 -1
- package/lib/module/l10n/app_localizations_fr.js +26 -1
- package/lib/module/l10n/app_localizations_fr.js.map +1 -1
- package/lib/module/l10n/app_localizations_pt.js +26 -1
- package/lib/module/l10n/app_localizations_pt.js.map +1 -1
- package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js +15 -19
- package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js.map +1 -1
- package/lib/module/modules/alias/presentation/pages/alias_page_claim.js +4 -11
- package/lib/module/modules/alias/presentation/pages/alias_page_claim.js.map +1 -1
- package/lib/module/modules/compte/presentation/pages/compte_details_widget.js +6 -7
- package/lib/module/modules/compte/presentation/pages/compte_details_widget.js.map +1 -1
- package/lib/module/modules/config/domain/models/config_keys.js +3 -1
- package/lib/module/modules/config/domain/models/config_keys.js.map +1 -1
- package/lib/module/modules/config/domain/services/config_service.js +31 -2
- package/lib/module/modules/config/domain/services/config_service.js.map +1 -1
- package/lib/module/modules/home/presentation/pages/home_tab_compte.js +0 -1
- package/lib/module/modules/home/presentation/pages/home_tab_compte.js.map +1 -1
- package/lib/module/modules/home/presentation/pages/home_tab_compte_more_menu.js +38 -37
- package/lib/module/modules/home/presentation/pages/home_tab_compte_more_menu.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/compte/profile_compte_page.js +25 -11
- package/lib/module/modules/profile/presentation/pages/compte/profile_compte_page.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page.js +14 -20
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js +109 -103
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js +55 -72
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.js +31 -45
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.js +175 -203
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/profile_app_bar.js +26 -0
- package/lib/module/modules/profile/presentation/pages/profile_app_bar.js.map +1 -0
- package/lib/module/modules/profile/presentation/pages/profile_menu.js +144 -34
- package/lib/module/modules/profile/presentation/pages/profile_menu.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/profile_page.js +95 -63
- package/lib/module/modules/profile/presentation/pages/profile_page.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js +97 -45
- package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js +9 -8
- package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js.map +1 -1
- package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js +26 -2
- package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js.map +1 -1
- package/lib/module/modules/search/presentation/pages/search_page.js +0 -1
- package/lib/module/modules/search/presentation/pages/search_page.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_recu.js +3 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_recu.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page.js +4 -11
- package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js +13 -10
- package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.js +5 -4
- package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js +2 -2
- package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js.map +1 -1
- package/lib/module/pi_spi_sdk_entry.js +7 -2
- package/lib/module/pi_spi_sdk_entry.js.map +1 -1
- package/lib/module/shared/utils/color.js +15 -0
- package/lib/module/shared/utils/color.js.map +1 -0
- package/lib/module/shared/widgets/custom_progressbar.js +3 -2
- package/lib/module/shared/widgets/custom_progressbar.js.map +1 -1
- package/lib/module/shared/widgets/error_card_widget.js +70 -0
- package/lib/module/shared/widgets/error_card_widget.js.map +1 -0
- package/lib/module/shared/widgets/selection.js +136 -0
- package/lib/module/shared/widgets/selection.js.map +1 -0
- package/lib/typescript/src/core/assets.d.ts +0 -7
- package/lib/typescript/src/core/assets.d.ts.map +1 -1
- package/lib/typescript/src/core/di.d.ts.map +1 -1
- package/lib/typescript/src/core/pi_spi_custom_theme.d.ts +17 -8
- package/lib/typescript/src/core/pi_spi_custom_theme.d.ts.map +1 -1
- package/lib/typescript/src/core/pi_spi_sdk_config.d.ts +22 -8
- package/lib/typescript/src/core/pi_spi_sdk_config.d.ts.map +1 -1
- package/lib/typescript/src/core/theme.d.ts +123 -53
- package/lib/typescript/src/core/theme.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations.d.ts +50 -0
- package/lib/typescript/src/l10n/app_localizations.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations_en.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations_fr.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations_pt.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_delete_btn_widget.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_claim.d.ts.map +1 -1
- package/lib/typescript/src/modules/compte/presentation/pages/compte_details_widget.d.ts.map +1 -1
- package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts +3 -1
- package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts.map +1 -1
- package/lib/typescript/src/modules/config/domain/services/config_service.d.ts +7 -0
- package/lib/typescript/src/modules/config/domain/services/config_service.d.ts.map +1 -1
- package/lib/typescript/src/modules/home/presentation/pages/home_tab_compte_more_menu.d.ts +2 -0
- package/lib/typescript/src/modules/home/presentation/pages/home_tab_compte_more_menu.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/compte/profile_compte_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.d.ts +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_app_bar.d.ts +5 -0
- package/lib/typescript/src/modules/profile/presentation/pages/profile_app_bar.d.ts.map +1 -0
- package/lib/typescript/src/modules/profile/presentation/pages/profile_menu.d.ts +31 -4
- package/lib/typescript/src/modules/profile/presentation/pages/profile_menu.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_page.d.ts +4 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_page_avatar.d.ts +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_page_avatar.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts.d.ts.map +1 -1
- package/lib/typescript/src/modules/search/presentation/pages/search_fonctionnalites.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.d.ts.map +1 -1
- package/lib/typescript/src/shared/utils/color.d.ts +7 -0
- package/lib/typescript/src/shared/utils/color.d.ts.map +1 -0
- package/lib/typescript/src/shared/widgets/custom_progressbar.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/error_card_widget.d.ts +11 -0
- package/lib/typescript/src/shared/widgets/error_card_widget.d.ts.map +1 -0
- package/lib/typescript/src/shared/widgets/selection.d.ts +21 -0
- package/lib/typescript/src/shared/widgets/selection.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/core/assets.ts +0 -7
- package/src/core/di.ts +13 -8
- package/src/core/pi_spi_custom_theme.ts +22 -15
- package/src/core/pi_spi_sdk_config.ts +27 -9
- package/src/core/theme.ts +381 -269
- package/src/index.ts +1 -1
- package/src/l10n/app_localizations.ts +50 -0
- package/src/l10n/app_localizations_en.ts +25 -0
- package/src/l10n/app_localizations_fr.ts +25 -0
- package/src/l10n/app_localizations_pt.ts +25 -0
- package/src/modules/alias/presentation/pages/alias_delete_btn_widget.tsx +13 -12
- package/src/modules/alias/presentation/pages/alias_page_claim.tsx +5 -4
- package/src/modules/compte/presentation/pages/compte_details_widget.tsx +3 -4
- package/src/modules/config/domain/models/config_keys.ts +3 -1
- package/src/modules/config/domain/services/config_service.ts +31 -2
- package/src/modules/home/presentation/pages/home_tab_compte.tsx +1 -1
- package/src/modules/home/presentation/pages/home_tab_compte_more_menu.tsx +34 -42
- package/src/modules/profile/presentation/pages/compte/profile_compte_page.tsx +15 -7
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page.tsx +12 -17
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.tsx +89 -68
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.tsx +84 -54
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.tsx +28 -24
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.tsx +121 -131
- package/src/modules/profile/presentation/pages/profile_app_bar.tsx +21 -0
- package/src/modules/profile/presentation/pages/profile_menu.tsx +126 -33
- package/src/modules/profile/presentation/pages/profile_page.tsx +90 -66
- package/src/modules/profile/presentation/pages/profile_page_avatar.tsx +69 -28
- package/src/modules/profile/presentation/pages/profile_page_contacts.tsx +5 -4
- package/src/modules/search/presentation/pages/search_fonctionnalites.ts +40 -7
- package/src/modules/search/presentation/pages/search_page.tsx +1 -1
- package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_recu.tsx +3 -1
- package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page.tsx +2 -4
- package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.tsx +13 -6
- package/src/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.tsx +4 -4
- package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.tsx +2 -2
- package/src/pi_spi_sdk_entry.tsx +9 -2
- package/src/shared/utils/color.ts +14 -0
- package/src/shared/widgets/custom_progressbar.tsx +3 -2
- package/src/shared/widgets/error_card_widget.tsx +58 -0
- package/src/shared/widgets/selection.tsx +98 -0
- package/assets/images/theme_light_blue.jpeg +0 -0
- package/assets/images/theme_light_green.jpeg +0 -0
- package/assets/images/theme_light_orange.jpeg +0 -0
- package/assets/images/theme_light_pink.jpeg +0 -0
- package/assets/images/theme_light_purple.jpeg +0 -0
- package/assets/images/theme_light_red.jpeg +0 -0
- package/assets/images/theme_light_yellow.jpeg +0 -0
package/lib/typescript/src/modules/profile/presentation/pages/compte/profile_compte_page.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_compte_page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/compte/profile_compte_page.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_compte_page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/compte/profile_compte_page.tsx"],"names":[],"mappings":"AAUA,0EAA0E;AAC1E,wBAAgB,iBAAiB,gCAiBhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_parametre_page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_parametre_page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page.tsx"],"names":[],"mappings":"AAkEA,8DAA8D;AAC9D,wBAAgB,oBAAoB,gCA4BnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_parametre_page_notifications.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.tsx"],"names":[],"mappings":"AA2BA,gHAAgH;AAChH,wBAAgB,iCAAiC,
|
|
1
|
+
{"version":3,"file":"profile_parametre_page_notifications.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.tsx"],"names":[],"mappings":"AA2BA,gHAAgH;AAChH,wBAAgB,iCAAiC,gCAwIhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_parametre_page_notifications_son.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_parametre_page_notifications_son.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.tsx"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,gCAkFnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_parametre_page_qrcode.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_parametre_page_qrcode.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.tsx"],"names":[],"mappings":"AAcA,qFAAqF;AACrF,wBAAgB,0BAA0B,gCAoCzC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/** Choix du thème de
|
|
1
|
+
/** Choix du thème (système, clair, sombre) et de la couleur d'accentuation (route `profileParametreTheme`). */
|
|
2
2
|
export declare function ProfileParametrePageTheme(): import("react").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=profile_parametre_page_theme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_parametre_page_theme.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_parametre_page_theme.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.tsx"],"names":[],"mappings":"AAmCA,+GAA+G;AAC/G,wBAAgB,yBAAyB,gCAsHxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile_app_bar.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_app_bar.tsx"],"names":[],"mappings":"AAMA,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,+BAazD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { MaterialIcons } from '@expo/vector-icons';
|
|
2
|
+
import { type ComponentProps, type ReactElement, type ReactNode } from 'react';
|
|
2
3
|
/** Une entrée du menu du profil : une route, une action, ou une feuille à ouvrir. */
|
|
3
4
|
export declare class ProfileItem {
|
|
4
5
|
readonly icon: number;
|
|
@@ -15,8 +16,34 @@ export declare class ProfileItem {
|
|
|
15
16
|
sheet?: () => ReactNode;
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Groupe d'entrées du profil dans une carte : [titre] de section facultatif
|
|
21
|
+
* au-dessus, puis une ligne par élément, séparées par un trait. Les [items]
|
|
22
|
+
* sont des `ProfileItem` ou des composants déjà construits (ex. bouton de
|
|
23
|
+
* modification du code PIN, qui utilise `ProfileMenuTile`).
|
|
24
|
+
*/
|
|
25
|
+
export declare function ProfilePageMenu({ items, titre }: {
|
|
26
|
+
items: (ProfileItem | ReactElement)[];
|
|
27
|
+
titre?: string;
|
|
28
|
+
}): import("react").JSX.Element;
|
|
29
|
+
/**
|
|
30
|
+
* Ligne d'un menu du profil : pastille avec l'icône, [titre], [sousTitre]
|
|
31
|
+
* facultatif et, à droite, [trailing] (ex. Switch) ou une flèche.
|
|
32
|
+
* [couleur] remplace la couleur principale (ex. rouge pour une action
|
|
33
|
+
* destructive).
|
|
34
|
+
*/
|
|
35
|
+
export declare function ProfileMenuTile({ image, icone, titre, sousTitre, onPress, trailing, couleur, disabled, }: {
|
|
36
|
+
image?: number;
|
|
37
|
+
icone?: ComponentProps<typeof MaterialIcons>['name'];
|
|
38
|
+
titre: string;
|
|
39
|
+
sousTitre?: string;
|
|
40
|
+
onPress?: () => void;
|
|
41
|
+
trailing?: ReactNode;
|
|
42
|
+
couleur?: string;
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
}): import("react").JSX.Element;
|
|
45
|
+
/** Titre d'une section du profil, en petites capitales. */
|
|
46
|
+
export declare function ProfileSectionTitre({ titre }: {
|
|
47
|
+
titre: string;
|
|
21
48
|
}): import("react").JSX.Element;
|
|
22
49
|
//# sourceMappingURL=profile_menu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_menu.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_menu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_menu.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAA4B,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AASzG,qFAAqF;AACrF,qBAAa,WAAW;IAOpB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI;IAR7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,SAAS,CAAC;gBAGtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,EAC3C,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,SAAS,CAAA;KAAO;CAOnH;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BA8C1G;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,+BAiCA;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,+BAK/D"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Profil du client (route `profile`) : en-tête de l'utilisateur, menus
|
|
3
|
+
* « Mon compte » et « Assistance », puis liens légaux et version de l'app.
|
|
4
|
+
*/
|
|
2
5
|
export declare function ProfilePage(): import("react").JSX.Element;
|
|
3
6
|
//# sourceMappingURL=profile_page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_page.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_page.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_page.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_page.tsx"],"names":[],"mappings":"AAqDA;;;GAGG;AACH,wBAAgB,WAAW,gCAyE1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_page_avatar.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_page_avatar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_page_avatar.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_page_avatar.tsx"],"names":[],"mappings":"AAuBA,4DAA4D;AAC5D,wBAAgB,iBAAiB,gCA0FhC"}
|
package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_page_contacts.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_page_contacts.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"profile_page_contacts.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/profile/presentation/pages/profile_page_contacts.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAqC,CAAC;AAQrE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,+BAsElF"}
|
package/lib/typescript/src/modules/search/presentation/pages/search_fonctionnalites.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search_fonctionnalites.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/search/presentation/pages/search_fonctionnalites.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search_fonctionnalites.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/search/presentation/pages/search_fonctionnalites.ts"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,4BAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAoC,CAAC;AAEpE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,gBAAgB,EAC7B,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC3D,cAAc,EAAE,CA4IlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction_rtp_page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction_rtp_page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,6DAA0D,CAAC;AAkBlH,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,EACjC,EAAE,EACF,IAAI,EACJ,WAAW,EACX,eAAe,GAChB,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,+BA2NA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction_rtp_page_actions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction_rtp_page_actions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wDAAqD,CAAC;AACxF,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,uCAAoC,CAAC;AAGzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAiD,CAAC;AAe1F;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,EAAE,EACF,GAAG,EACH,KAAK,EACL,IAAI,EACJ,WAAW,GACZ,EAAE;IACD,EAAE,EAAE,WAAW,CAAC;IAChB,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB,+BAoFA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Équivalent de `Color.withValues(alpha:)` : la couleur [color] avec
|
|
3
|
+
* l'opacité [alpha] (0 à 1). Accepte `#RGB`, `#RRGGBB` et `#RRGGBBAA` ;
|
|
4
|
+
* toute autre forme est rendue telle quelle.
|
|
5
|
+
*/
|
|
6
|
+
export declare function withAlpha(color: string, alpha: number): string;
|
|
7
|
+
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/color.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom_progressbar.d.ts","sourceRoot":"","sources":["../../../../../src/shared/widgets/custom_progressbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,aAAa,EACb,aAAa,EACb,eAAe,EACf,IAAS,EACT,WAAiB,EACjB,QAAQ,GACT,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+
|
|
1
|
+
{"version":3,"file":"custom_progressbar.d.ts","sourceRoot":"","sources":["../../../../../src/shared/widgets/custom_progressbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,aAAa,EACb,aAAa,EACb,eAAe,EACf,IAAS,EACT,WAAiB,EACjB,QAAQ,GACT,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BA2BA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MaterialIcons } from '@expo/vector-icons';
|
|
2
|
+
import type { ComponentProps } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Carte d'avertissement : fond teinté, bordure et icône dans la couleur
|
|
5
|
+
* d'erreur du thème, suivies du `message`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function ErrorCardWidget({ message, icon, }: {
|
|
8
|
+
message: string;
|
|
9
|
+
icon?: ComponentProps<typeof MaterialIcons>['name'];
|
|
10
|
+
}): import("react").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=error_card_widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error_card_widget.d.ts","sourceRoot":"","sources":["../../../../../src/shared/widgets/error_card_widget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAY5C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,IAAsB,GACvB,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;CACrD,+BAqBA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Feuille de sélection : poignée, [titre], [entete] facultatif, puis le
|
|
4
|
+
* [contenu] (qui défile s'il est trop long : utiliser un ScrollView).
|
|
5
|
+
* À ouvrir avec showModalBottomSheet.
|
|
6
|
+
*/
|
|
7
|
+
export declare function SelectionSheet({ titre, titreSize, entete, contenu, }: {
|
|
8
|
+
titre?: string;
|
|
9
|
+
titreSize?: number;
|
|
10
|
+
entete?: ReactNode;
|
|
11
|
+
contenu: ReactNode;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
/** Ligne d'une feuille de sélection : [pastille], [texte], [detail] facultatif et coche si elle est [choisie]. */
|
|
14
|
+
export declare function SbSelectionLigne({ pastille, texte, detail, choisie, onPress, }: {
|
|
15
|
+
pastille: ReactNode;
|
|
16
|
+
texte: string;
|
|
17
|
+
detail?: string;
|
|
18
|
+
choisie: boolean;
|
|
19
|
+
onPress: () => void;
|
|
20
|
+
}): import("react").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../../../src/shared/widgets/selection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;CACpB,+BAqBA;AAED,kHAAkH;AAClH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BA2BA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-spi/app",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "SDK React Native permettant d'intégrer PI-SPI (transactions, demande d'annulation, retour de fond, demande de paiement, QR Code, gestion des alias, gestion des abonnements, notifications, profil, compte) dans une application mobile existante.",
|
|
5
5
|
"homepage": "https://github.com/pisfn-sandbox/mobile-app-react-native-sdk.git",
|
|
6
6
|
"repository": {
|
package/src/core/assets.ts
CHANGED
|
@@ -194,13 +194,6 @@ export class Images {
|
|
|
194
194
|
|
|
195
195
|
static readonly imageThemeSystem: number = require('../../assets/images/theme_system.png');
|
|
196
196
|
static readonly imageThemeLight: number = require('../../assets/images/theme_light.jpeg');
|
|
197
|
-
static readonly imageThemeLightBlue: number = require('../../assets/images/theme_light_blue.jpeg');
|
|
198
|
-
static readonly imageThemeLightGreen: number = require('../../assets/images/theme_light_green.jpeg');
|
|
199
|
-
static readonly imageThemeLightYellow: number = require('../../assets/images/theme_light_yellow.jpeg');
|
|
200
|
-
static readonly imageThemeLightRed: number = require('../../assets/images/theme_light_red.jpeg');
|
|
201
|
-
static readonly imageThemeLightOrange: number = require('../../assets/images/theme_light_orange.jpeg');
|
|
202
|
-
static readonly imageThemeLightPurple: number = require('../../assets/images/theme_light_purple.jpeg');
|
|
203
|
-
static readonly imageThemeLightPink: number = require('../../assets/images/theme_light_pink.jpeg');
|
|
204
197
|
static readonly imageThemeDark: number = require('../../assets/images/theme_dark.jpeg');
|
|
205
198
|
|
|
206
199
|
static readonly imageHomeThemeDefault: number = require('../../assets/images/home_default.jpeg');
|
package/src/core/di.ts
CHANGED
|
@@ -139,14 +139,19 @@ export class Di {
|
|
|
139
139
|
* aucune n'existe encore) est conservée telle quelle.
|
|
140
140
|
*/
|
|
141
141
|
private static async applyDefaultTheme(config: PiSpiSdkConfig): Promise<void> {
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
142
|
+
// La couleur d'un thème personnalisé (PiSpiAppConfig.customTheme)
|
|
143
|
+
// prime sur defaultAccent : elle est préparée ici et persistée sous
|
|
144
|
+
// son code.
|
|
145
|
+
const { customTheme, defaultTheme, defaultAccent } = config.appConfig;
|
|
146
|
+
Themer.customAccent = customTheme?.teintes() ?? null;
|
|
147
|
+
Themer.customThemeData = customTheme?.themeDataFourni ?? null;
|
|
148
|
+
Themer.resetCustomThemes();
|
|
149
|
+
if (defaultTheme != null) {
|
|
150
|
+
await Di.sharedPreferences.setString(ConfigKey.preferedTheme, defaultTheme);
|
|
151
|
+
}
|
|
152
|
+
const accent = customTheme != null ? Themer.customAccentCode : defaultAccent;
|
|
153
|
+
if (accent != null) {
|
|
154
|
+
await Di.sharedPreferences.setString(ConfigKey.preferedAccent, accent);
|
|
150
155
|
}
|
|
151
156
|
}
|
|
152
157
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Themer,
|
|
1
|
+
import { Themer, type AccentTeintes, type ThemeData } from './theme';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Thème personnalisé de l'application hôte, quand aucun des thèmes du SDK
|
|
@@ -6,18 +6,20 @@ import { Themer, lerpColor, type ThemeData } from './theme';
|
|
|
6
6
|
*
|
|
7
7
|
* Deux façons de le définir :
|
|
8
8
|
*
|
|
9
|
-
* - **Par ses couleurs** (cas courant) :
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* - **Par ses couleurs** (cas courant) : la couleur devient la couleur
|
|
10
|
+
* d'accentuation « Thème de l'application » du SDK, en clair comme en
|
|
11
|
+
* sombre (une teinte plus lumineuse est dérivée pour le sombre). Seule
|
|
12
|
+
* `primary` est obligatoire ; les autres couleurs en sont dérivées si
|
|
13
|
+
* elles ne sont pas fournies.
|
|
13
14
|
*
|
|
14
15
|
* ```ts
|
|
15
16
|
* new PiSpiCustomTheme({ primary: '#00695C', secondary: '#B2DFDB' })
|
|
16
17
|
* ```
|
|
17
18
|
*
|
|
18
19
|
* - **Par un `ThemeData` complet** (avancé), avec
|
|
19
|
-
* `PiSpiCustomTheme.themeData`.
|
|
20
|
-
*
|
|
20
|
+
* `PiSpiCustomTheme.themeData`. Il remplace alors les thèmes clair et
|
|
21
|
+
* sombre du SDK. Partez de préférence du thème construit par le SDK,
|
|
22
|
+
* pour conserver tous les réglages dont ses écrans ont
|
|
21
23
|
* besoin (cartes, champs, boutons, textes) :
|
|
22
24
|
*
|
|
23
25
|
* ```ts
|
|
@@ -52,15 +54,20 @@ export class PiSpiCustomTheme {
|
|
|
52
54
|
return custom;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
|
-
/**
|
|
57
|
+
/** Thème complet fourni par l'hôte, `undefined` s'il est défini par ses couleurs. */
|
|
58
|
+
get themeDataFourni(): ThemeData | undefined {
|
|
59
|
+
return this.themeDataValue;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Teintes claire et sombre de la couleur, `null` pour un thème complet. */
|
|
63
|
+
teintes(): { clair: AccentTeintes; sombre: AccentTeintes } | null {
|
|
64
|
+
if (this.themeDataValue != null) return null;
|
|
65
|
+
return Themer.teintesDepuis(this.primary!, this.secondary, this.tertiary, this.pressed);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Le `ThemeData` clair appliqué aux écrans du SDK. */
|
|
56
69
|
build(): ThemeData {
|
|
57
70
|
if (this.themeDataValue != null) return this.themeDataValue;
|
|
58
|
-
|
|
59
|
-
return Themer.colored(
|
|
60
|
-
main,
|
|
61
|
-
this.secondary ?? lerpColor(main, '#FFFFFF', 0.75),
|
|
62
|
-
this.tertiary ?? lerpColor(main, '#FFFFFF', 0.4),
|
|
63
|
-
this.pressed ?? lerpColor(main, '#000000', 0.2),
|
|
64
|
-
);
|
|
71
|
+
return Themer.depuisTeintes(this.teintes()!.clair);
|
|
65
72
|
}
|
|
66
73
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { supportedLocales, type SupportedLocaleCode } from '../l10n/app_localizations';
|
|
2
2
|
import type { PiSpiCustomTheme } from './pi_spi_custom_theme';
|
|
3
|
-
import { Themes } from './theme';
|
|
3
|
+
import { Accents, Themes } from './theme';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Équivalent des `assert` Dart : vérifié uniquement en développement
|
|
@@ -226,18 +226,31 @@ export class PiSpiAppConfig {
|
|
|
226
226
|
* SDK lors d'une session précédente (voir {@link canChangeTheme}). Si
|
|
227
227
|
* absent, la préférence locale actuelle est conservée telle quelle (ou
|
|
228
228
|
* le défaut du SDK, `Themes.light`, si aucune n'existe encore).
|
|
229
|
+
* Valeurs : `Themes.system`, `Themes.light` ou `Themes.dark` ; la couleur
|
|
230
|
+
* se choisit avec {@link defaultAccent}.
|
|
229
231
|
*/
|
|
230
232
|
readonly defaultTheme?: Themes;
|
|
231
233
|
|
|
234
|
+
/**
|
|
235
|
+
* Couleur d'accentuation avec laquelle le SDK s'ouvre (boutons, liens,
|
|
236
|
+
* pastilles), en clair comme en sombre. Optionnelle : si fournie, elle
|
|
237
|
+
* est appliquée et **persistée** à chaque ouverture du SDK, comme
|
|
238
|
+
* {@link defaultTheme}. Si absente, la préférence locale est conservée
|
|
239
|
+
* (ou la couleur PI-SPI, `Accents.pispi`, si aucune n'existe encore).
|
|
240
|
+
* Ignorée si {@link customTheme} est fourni.
|
|
241
|
+
*/
|
|
242
|
+
readonly defaultAccent?: Accents;
|
|
243
|
+
|
|
232
244
|
/**
|
|
233
245
|
* Thème personnalisé de l'application hôte, quand aucun des thèmes du
|
|
234
246
|
* SDK (`Themes`) ne convient : défini par ses couleurs ou par un
|
|
235
247
|
* `ThemeData` complet (voir {@link PiSpiCustomTheme}). Optionnel : si
|
|
236
|
-
* fourni,
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
* et
|
|
248
|
+
* fourni, sa couleur est appliquée et **persistée** à chaque ouverture
|
|
249
|
+
* du SDK, en clair comme en sombre, et elle prime sur
|
|
250
|
+
* {@link defaultAccent}. L'entrée « Thème » des paramètres est alors
|
|
251
|
+
* masquée, sauf si {@link canChangeTheme} vaut `true` : le client peut
|
|
252
|
+
* alors choisir entre la couleur « Thème de l'application » et celles du
|
|
253
|
+
* SDK.
|
|
241
254
|
*/
|
|
242
255
|
readonly customTheme?: PiSpiCustomTheme;
|
|
243
256
|
|
|
@@ -248,8 +261,9 @@ export class PiSpiAppConfig {
|
|
|
248
261
|
* la préférence déjà persistée, voir sa documentation) pour toute la
|
|
249
262
|
* session — comme pour {@link defaultLocale}.
|
|
250
263
|
*
|
|
251
|
-
* Non fourni, sa valeur par défaut dépend de {@link defaultTheme}
|
|
252
|
-
* {@link customTheme} : `false` si l'hôte a
|
|
264
|
+
* Non fourni, sa valeur par défaut dépend de {@link defaultTheme},
|
|
265
|
+
* {@link defaultAccent} et {@link customTheme} : `false` si l'hôte a
|
|
266
|
+
* fourni l'un d'eux (il impose alors ce
|
|
253
267
|
* thème, cohérent avec le comportement de `defaultLocale`), `true` sinon
|
|
254
268
|
* (l'hôte n'a exprimé aucun avis sur le thème, donc autant laisser le
|
|
255
269
|
* client choisir). Passez explicitement `true`/`false` pour imposer un
|
|
@@ -268,6 +282,7 @@ export class PiSpiAppConfig {
|
|
|
268
282
|
appstoreLink?: string;
|
|
269
283
|
defaultLocale?: SupportedLocaleCode;
|
|
270
284
|
defaultTheme?: Themes;
|
|
285
|
+
defaultAccent?: Accents;
|
|
271
286
|
customTheme?: PiSpiCustomTheme;
|
|
272
287
|
canChangeTheme?: boolean;
|
|
273
288
|
}) {
|
|
@@ -281,8 +296,11 @@ export class PiSpiAppConfig {
|
|
|
281
296
|
this.appstoreLink = params.appstoreLink ?? '';
|
|
282
297
|
this.defaultLocale = params.defaultLocale ?? 'fr';
|
|
283
298
|
this.defaultTheme = params.defaultTheme;
|
|
299
|
+
this.defaultAccent = params.defaultAccent;
|
|
284
300
|
this.customTheme = params.customTheme;
|
|
285
|
-
this.canChangeTheme =
|
|
301
|
+
this.canChangeTheme =
|
|
302
|
+
params.canChangeTheme ??
|
|
303
|
+
(params.defaultTheme === undefined && params.defaultAccent === undefined && params.customTheme === undefined);
|
|
286
304
|
|
|
287
305
|
devAssert(
|
|
288
306
|
(PiSpiAppConfig.supportedLocaleCodes as readonly string[]).includes(this.defaultLocale),
|