@deuna/react-native-sdk 1.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/LICENSE +20 -0
- package/README.md +15 -0
- package/lib/module/DeunaLogs.js +18 -0
- package/lib/module/DeunaLogs.js.map +1 -0
- package/lib/module/DeunaSDK.js +207 -0
- package/lib/module/DeunaSDK.js.map +1 -0
- package/lib/module/components/DeunaWebView.js +37 -0
- package/lib/module/components/DeunaWebView.js.map +1 -0
- package/lib/module/components/DeunaWidget.js +82 -0
- package/lib/module/components/DeunaWidget.js.map +1 -0
- package/lib/module/components/NewTabWebView.js +55 -0
- package/lib/module/components/NewTabWebView.js.map +1 -0
- package/lib/module/components/WebViewLoader.js +25 -0
- package/lib/module/components/WebViewLoader.js.map +1 -0
- package/lib/module/controllers/BaseWebViewController.js +252 -0
- package/lib/module/controllers/BaseWebViewController.js.map +1 -0
- package/lib/module/controllers/ElementsWidgetController.js +64 -0
- package/lib/module/controllers/ElementsWidgetController.js.map +1 -0
- package/lib/module/controllers/OpenInNewTabController.js +34 -0
- package/lib/module/controllers/OpenInNewTabController.js.map +1 -0
- package/lib/module/controllers/PaymentWidgetController.js +98 -0
- package/lib/module/controllers/PaymentWidgetController.js.map +1 -0
- package/lib/module/helpers/Completer.js +30 -0
- package/lib/module/helpers/Completer.js.map +1 -0
- package/lib/module/helpers/getController.js +48 -0
- package/lib/module/helpers/getController.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/interfaces/constants.js +8 -0
- package/lib/module/interfaces/constants.js.map +1 -0
- package/lib/module/interfaces/errors.js +36 -0
- package/lib/module/interfaces/errors.js.map +1 -0
- package/lib/module/interfaces/events/checkout.js +45 -0
- package/lib/module/interfaces/events/checkout.js.map +1 -0
- package/lib/module/interfaces/events/elements.js +28 -0
- package/lib/module/interfaces/events/elements.js.map +1 -0
- package/lib/module/interfaces/index.js +6 -0
- package/lib/module/interfaces/index.js.map +1 -0
- package/lib/module/interfaces/types.js +13 -0
- package/lib/module/interfaces/types.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/types/base.js +24 -0
- package/lib/module/types/base.js.map +1 -0
- package/lib/module/types/env.js +48 -0
- package/lib/module/types/env.js.map +1 -0
- package/lib/module/types/helpers/buildElementsLink.js +75 -0
- package/lib/module/types/helpers/buildElementsLink.js.map +1 -0
- package/lib/module/types/helpers/buildNextActionLink.js +33 -0
- package/lib/module/types/helpers/buildNextActionLink.js.map +1 -0
- package/lib/module/types/helpers/buildPaymentLink.js +54 -0
- package/lib/module/types/helpers/buildPaymentLink.js.map +1 -0
- package/lib/module/types/helpers/buildVoucherLink.js +48 -0
- package/lib/module/types/helpers/buildVoucherLink.js.map +1 -0
- package/lib/module/types/helpers/index.js +13 -0
- package/lib/module/types/helpers/index.js.map +1 -0
- package/lib/module/types/helpers/urlConfig.js +19 -0
- package/lib/module/types/helpers/urlConfig.js.map +1 -0
- package/lib/module/types/index.js +7 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/types/interfaces/callbacks.js +2 -0
- package/lib/module/types/interfaces/callbacks.js.map +1 -0
- package/lib/module/types/interfaces/customStyle.js +2 -0
- package/lib/module/types/interfaces/customStyle.js.map +1 -0
- package/lib/module/types/interfaces/index.js +9 -0
- package/lib/module/types/interfaces/index.js.map +1 -0
- package/lib/module/types/interfaces/initWidgetBase.js +4 -0
- package/lib/module/types/interfaces/initWidgetBase.js.map +1 -0
- package/lib/module/types/interfaces/merchant.js +2 -0
- package/lib/module/types/interfaces/merchant.js.map +1 -0
- package/lib/module/types/interfaces/order.js +2 -0
- package/lib/module/types/interfaces/order.js.map +1 -0
- package/lib/module/types/interfaces/user.js +2 -0
- package/lib/module/types/interfaces/user.js.map +1 -0
- package/lib/module/types/utils/hasKey.js +8 -0
- package/lib/module/types/utils/hasKey.js.map +1 -0
- package/lib/module/types/utils/index.js +4 -0
- package/lib/module/types/utils/index.js.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/DeunaLogs.d.ts +6 -0
- package/lib/typescript/deuna-sdk-react-native/src/DeunaLogs.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts +88 -0
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWebView.d.ts +11 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWebView.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWidget.d.ts +7 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWidget.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/NewTabWebView.d.ts +7 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/NewTabWebView.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/WebViewLoader.d.ts +2 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/WebViewLoader.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts +83 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/ElementsWidgetController.d.ts +9 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/ElementsWidgetController.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/OpenInNewTabController.d.ts +12 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/OpenInNewTabController.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/PaymentWidgetController.d.ts +12 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/PaymentWidgetController.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/Completer.d.ts +12 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/Completer.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/getController.d.ts +22 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/getController.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/index.d.ts +5 -0
- package/lib/typescript/deuna-sdk-react-native/src/index.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts +6 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/errors.d.ts +32 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/errors.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/events/checkout.d.ts +46 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/events/checkout.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/events/elements.d.ts +29 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/events/elements.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/index.d.ts +4 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/index.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts +15 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts +91 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/env.d.ts +45 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/env.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts +3 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildNextActionLink.d.ts +3 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildNextActionLink.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildPaymentLink.d.ts +8 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildPaymentLink.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildVoucherLink.d.ts +8 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildVoucherLink.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/index.d.ts +7 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/index.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts +34 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/index.d.ts +5 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/index.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts +38 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/customStyle.d.ts +156 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/customStyle.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/index.d.ts +7 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/index.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts +78 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/merchant.d.ts +76 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/merchant.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/order.d.ts +3 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/order.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/user.d.ts +23 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/user.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/utils/hasKey.d.ts +2 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/utils/hasKey.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/utils/index.d.ts +2 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/utils/index.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/package.json +159 -0
- package/src/DeunaLogs.ts +17 -0
- package/src/DeunaSDK.ts +269 -0
- package/src/components/DeunaWebView.tsx +38 -0
- package/src/components/DeunaWidget.tsx +92 -0
- package/src/components/NewTabWebView.tsx +61 -0
- package/src/components/WebViewLoader.tsx +22 -0
- package/src/controllers/BaseWebViewController.ts +289 -0
- package/src/controllers/ElementsWidgetController.ts +78 -0
- package/src/controllers/OpenInNewTabController.ts +39 -0
- package/src/controllers/PaymentWidgetController.ts +118 -0
- package/src/helpers/Completer.ts +33 -0
- package/src/helpers/getController.ts +83 -0
- package/src/index.tsx +4 -0
- package/src/interfaces/constants.ts +5 -0
- package/src/interfaces/errors.ts +34 -0
- package/src/interfaces/events/checkout.ts +46 -0
- package/src/interfaces/events/elements.ts +29 -0
- package/src/interfaces/index.ts +3 -0
- package/src/interfaces/types.ts +13 -0
- package/src/types/base.ts +126 -0
- package/src/types/env.ts +51 -0
- package/src/types/helpers/buildElementsLink.ts +87 -0
- package/src/types/helpers/buildNextActionLink.ts +42 -0
- package/src/types/helpers/buildPaymentLink.ts +63 -0
- package/src/types/helpers/buildVoucherLink.ts +53 -0
- package/src/types/helpers/index.ts +11 -0
- package/src/types/helpers/urlConfig.ts +80 -0
- package/src/types/index.ts +4 -0
- package/src/types/interfaces/callbacks.ts +43 -0
- package/src/types/interfaces/customStyle.ts +189 -0
- package/src/types/interfaces/index.ts +6 -0
- package/src/types/interfaces/initWidgetBase.ts +97 -0
- package/src/types/interfaces/merchant.ts +79 -0
- package/src/types/interfaces/order.ts +1 -0
- package/src/types/interfaces/user.ts +22 -0
- package/src/types/utils/hasKey.ts +5 -0
- package/src/types/utils/index.ts +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 DEUNA
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
in the Software without restriction, including without limitation the rights
|
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
furnished to do so, subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# @deuna/react-native-sdk
|
|
2
|
+
|
|
3
|
+
React Native SDK
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Usage
|
|
7
|
+
|
|
8
|
+
For detailed installation and usage instructions, please refer to our official documentation at [DEUNA React Native SDK Documentation](https://docs.deuna.com/reference/react-native-sdk).
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## License
|
|
12
|
+
|
|
13
|
+
MIT
|
|
14
|
+
|
|
15
|
+
---
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export class DeunaLogs {
|
|
4
|
+
static enable = true;
|
|
5
|
+
static info(tag, message) {
|
|
6
|
+
if (!DeunaLogs.enable) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
console.info(`✅ DeunaSDK: ${tag}`, message);
|
|
10
|
+
}
|
|
11
|
+
static error(tag, message) {
|
|
12
|
+
if (!DeunaLogs.enable) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
console.error(`❌ DeunaSDK: ${tag}`, message);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=DeunaLogs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DeunaLogs","enable","info","tag","message","console","error"],"sourceRoot":"../../src","sources":["DeunaLogs.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,CAAC;EACrB,OAAOC,MAAM,GAAG,IAAI;EAEpB,OAAOC,IAAIA,CAACC,GAAW,EAAEC,OAAY,EAAE;IACrC,IAAI,CAACJ,SAAS,CAACC,MAAM,EAAE;MACrB;IACF;IACAI,OAAO,CAACH,IAAI,CAAC,eAAeC,GAAG,EAAE,EAAEC,OAAO,CAAC;EAC7C;EAEA,OAAOE,KAAKA,CAACH,GAAW,EAAEC,OAAY,EAAE;IACtC,IAAI,CAACJ,SAAS,CAACC,MAAM,EAAE;MACrB;IACF;IACAI,OAAO,CAACC,KAAK,CAAC,eAAeH,GAAG,EAAE,EAAEC,OAAO,CAAC;EAC9C;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BaseDeuna } from "./types/index.js";
|
|
4
|
+
import { PaymentWidgetController } from "./controllers/PaymentWidgetController.js";
|
|
5
|
+
import { OpenInNewTabController } from "./controllers/OpenInNewTabController.js";
|
|
6
|
+
import { getWidgetController } from "./helpers/getController.js";
|
|
7
|
+
import { Completer } from "./helpers/Completer.js";
|
|
8
|
+
import { ElementsWidgetController } from "./controllers/ElementsWidgetController.js";
|
|
9
|
+
import { Mode } from "./interfaces/types.js";
|
|
10
|
+
import { Platform } from 'react-native';
|
|
11
|
+
export class DeunaSDK extends BaseDeuna {
|
|
12
|
+
constructor(config) {
|
|
13
|
+
super();
|
|
14
|
+
this.config = config;
|
|
15
|
+
}
|
|
16
|
+
mode = null;
|
|
17
|
+
listeners = new Set();
|
|
18
|
+
webViewController = null;
|
|
19
|
+
newTabWebViewController = null;
|
|
20
|
+
modalDismissPromise = null;
|
|
21
|
+
newTabModalDismissPromise = null;
|
|
22
|
+
get safeWebViewController() {
|
|
23
|
+
if (!this.webViewController) {
|
|
24
|
+
const errorMessage = 'A variant of the init method must be called first. Please call initPaymentWidget, initVoucherWidget, or another init method before using this functionality.';
|
|
25
|
+
console.error(errorMessage);
|
|
26
|
+
throw new Error(errorMessage);
|
|
27
|
+
}
|
|
28
|
+
return this.webViewController;
|
|
29
|
+
}
|
|
30
|
+
getSessionId() {
|
|
31
|
+
throw new Error('Method not implemented.');
|
|
32
|
+
}
|
|
33
|
+
static initialize(config) {
|
|
34
|
+
return new DeunaSDK(config);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Sets the DEUNA widget controller
|
|
39
|
+
* @param params - The parameters for the widget controller
|
|
40
|
+
* @param params.controller - The controller for the widget
|
|
41
|
+
* @param params.mode - The mode for the widget
|
|
42
|
+
*/
|
|
43
|
+
setWidgetController = params => {
|
|
44
|
+
const {
|
|
45
|
+
controller,
|
|
46
|
+
mode
|
|
47
|
+
} = params;
|
|
48
|
+
this.mode = mode ?? Mode.MODAL;
|
|
49
|
+
if (this.mode === Mode.MODAL && Platform.OS === 'ios') {
|
|
50
|
+
this.modalDismissPromise = new Completer();
|
|
51
|
+
}
|
|
52
|
+
this.webViewController = controller;
|
|
53
|
+
this.webViewController.delegate = this.buildDelegate();
|
|
54
|
+
this.notifyListeners();
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Shows the payment widget
|
|
59
|
+
* @param props - The parameters for the payment widget controller
|
|
60
|
+
* @param props.mode - The mode for the widget
|
|
61
|
+
*/
|
|
62
|
+
async initPaymentWidget(props) {
|
|
63
|
+
this.setWidgetController({
|
|
64
|
+
controller: getWidgetController(this.config, {
|
|
65
|
+
widget: 'payment',
|
|
66
|
+
...props
|
|
67
|
+
}),
|
|
68
|
+
mode: props.mode
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Shows the elements widget
|
|
74
|
+
* @param props - The parameters for the elements widget controller
|
|
75
|
+
* @param props.mode - The mode for the widget
|
|
76
|
+
*/
|
|
77
|
+
async initElements(props) {
|
|
78
|
+
this.setWidgetController({
|
|
79
|
+
controller: getWidgetController(this.config, {
|
|
80
|
+
widget: 'elements',
|
|
81
|
+
...props
|
|
82
|
+
}),
|
|
83
|
+
mode: props.mode
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Shows the next action widget
|
|
89
|
+
* @param props - The parameters for the next action widget controller
|
|
90
|
+
* @param props.mode - The mode for the widget
|
|
91
|
+
*/
|
|
92
|
+
async initNextAction(props) {
|
|
93
|
+
this.setWidgetController({
|
|
94
|
+
controller: getWidgetController(this.config, {
|
|
95
|
+
widget: 'nextAction',
|
|
96
|
+
...props
|
|
97
|
+
}),
|
|
98
|
+
mode: props.mode
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Shows the voucher widget
|
|
104
|
+
* @param props - The parameters for the voucher widget controller
|
|
105
|
+
* @param props.mode - The mode for the widget
|
|
106
|
+
*/
|
|
107
|
+
async initVoucherWidget(props) {
|
|
108
|
+
this.setWidgetController({
|
|
109
|
+
controller: getWidgetController(this.config, {
|
|
110
|
+
widget: 'voucher',
|
|
111
|
+
...props
|
|
112
|
+
}),
|
|
113
|
+
mode: props.mode
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
isValid = async () => {
|
|
117
|
+
return this.safeWebViewController.isValid();
|
|
118
|
+
};
|
|
119
|
+
submit = async () => {
|
|
120
|
+
return this.safeWebViewController.submit();
|
|
121
|
+
};
|
|
122
|
+
setCustomStyle = async style => {
|
|
123
|
+
return this.safeWebViewController.setCustomStyle(style);
|
|
124
|
+
};
|
|
125
|
+
refetchOrder = async () => {
|
|
126
|
+
return this.safeWebViewController.refetchOrder();
|
|
127
|
+
};
|
|
128
|
+
getWidgetState = async () => {
|
|
129
|
+
return this.safeWebViewController.getWidgetState();
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Closes the DEUNA widget and releases the resources
|
|
134
|
+
*/
|
|
135
|
+
close = async () => {
|
|
136
|
+
if (this.webViewController instanceof PaymentWidgetController) {
|
|
137
|
+
this.webViewController.callbacks.onClosed?.(this.webViewController.closedAction);
|
|
138
|
+
} else if (this.webViewController instanceof ElementsWidgetController) {
|
|
139
|
+
this.webViewController.callbacks.onClosed?.(this.webViewController.closedAction);
|
|
140
|
+
}
|
|
141
|
+
this.onCloseNewTab();
|
|
142
|
+
await this.newTabModalDismissPromise?.wait;
|
|
143
|
+
this.newTabWebViewController?.dispose();
|
|
144
|
+
this.webViewController?.dispose();
|
|
145
|
+
// reset all prop
|
|
146
|
+
this.newTabWebViewController = null;
|
|
147
|
+
this.webViewController = null;
|
|
148
|
+
this.mode = null;
|
|
149
|
+
this.notifyListeners();
|
|
150
|
+
|
|
151
|
+
// if the widget was shown in modal mode, wait for the modal to be dismissed
|
|
152
|
+
await this.modalDismissPromise?.wait;
|
|
153
|
+
this.modalDismissPromise = null;
|
|
154
|
+
};
|
|
155
|
+
onModalDismissed = () => {
|
|
156
|
+
this.modalDismissPromise?.complete();
|
|
157
|
+
};
|
|
158
|
+
onNewTabDismissed = () => {
|
|
159
|
+
this.newTabModalDismissPromise?.complete();
|
|
160
|
+
};
|
|
161
|
+
addListener = listener => {
|
|
162
|
+
this.listeners.add(listener);
|
|
163
|
+
};
|
|
164
|
+
removeListener = listener => {
|
|
165
|
+
this.listeners.delete(listener);
|
|
166
|
+
};
|
|
167
|
+
notifyListeners = () => {
|
|
168
|
+
this.listeners.forEach(listener => listener());
|
|
169
|
+
};
|
|
170
|
+
onCloseNewTab = () => {
|
|
171
|
+
if (this.webViewController) {
|
|
172
|
+
this.webViewController.redirectUrl = null;
|
|
173
|
+
}
|
|
174
|
+
this.newTabWebViewController?.dispose();
|
|
175
|
+
this.newTabWebViewController = null;
|
|
176
|
+
this.notifyListeners();
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Builds the delegate for the DEUNA widget to listen to the events
|
|
181
|
+
* like when the user presses the close button or when the user
|
|
182
|
+
* opens a new tab.
|
|
183
|
+
* @returns The delegate for the DEUNA widget
|
|
184
|
+
*/
|
|
185
|
+
buildDelegate = () => {
|
|
186
|
+
return {
|
|
187
|
+
onOpenInNewTab: url => {
|
|
188
|
+
this.newTabWebViewController = new OpenInNewTabController(url);
|
|
189
|
+
if (Platform.OS === 'ios') {
|
|
190
|
+
this.newTabModalDismissPromise = new Completer();
|
|
191
|
+
}
|
|
192
|
+
this.notifyListeners();
|
|
193
|
+
},
|
|
194
|
+
onCloseButtonPressed: () => {
|
|
195
|
+
// Close the payment widget when the user
|
|
196
|
+
// presses the close button
|
|
197
|
+
this.close();
|
|
198
|
+
},
|
|
199
|
+
onCloseSubWebView: () => {
|
|
200
|
+
// Close the new tab web view when the DEUNA widget
|
|
201
|
+
// emits an error event or when the purchase is successful
|
|
202
|
+
this.onCloseNewTab();
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=DeunaSDK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseDeuna","PaymentWidgetController","OpenInNewTabController","getWidgetController","Completer","ElementsWidgetController","Mode","Platform","DeunaSDK","constructor","config","mode","listeners","Set","webViewController","newTabWebViewController","modalDismissPromise","newTabModalDismissPromise","safeWebViewController","errorMessage","console","error","Error","getSessionId","initialize","setWidgetController","params","controller","MODAL","OS","delegate","buildDelegate","notifyListeners","initPaymentWidget","props","widget","initElements","initNextAction","initVoucherWidget","isValid","submit","setCustomStyle","style","refetchOrder","getWidgetState","close","callbacks","onClosed","closedAction","onCloseNewTab","wait","dispose","onModalDismissed","complete","onNewTabDismissed","addListener","listener","add","removeListener","delete","forEach","redirectUrl","onOpenInNewTab","url","onCloseButtonPressed","onCloseSubWebView"],"sourceRoot":"../../src","sources":["DeunaSDK.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet, View } from 'react-native';
|
|
4
|
+
import WebView from 'react-native-webview';
|
|
5
|
+
import { WebViewLoader } from "./WebViewLoader.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export const DeunaWebView = props => {
|
|
8
|
+
return /*#__PURE__*/_jsx(View, {
|
|
9
|
+
style: styles.container,
|
|
10
|
+
children: /*#__PURE__*/_jsx(WebView, {
|
|
11
|
+
ref: webView => {
|
|
12
|
+
if (webView && props.onWebView) {
|
|
13
|
+
props.onWebView(webView);
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
source: {
|
|
17
|
+
uri: props.url
|
|
18
|
+
},
|
|
19
|
+
onMessage: props.onMessage,
|
|
20
|
+
onLoad: () => {
|
|
21
|
+
props.onLoad?.();
|
|
22
|
+
},
|
|
23
|
+
startInLoadingState: true,
|
|
24
|
+
renderLoading: () => /*#__PURE__*/_jsx(WebViewLoader, {}),
|
|
25
|
+
javaScriptEnabled: true,
|
|
26
|
+
onError: props.onError,
|
|
27
|
+
setSupportMultipleWindows: false,
|
|
28
|
+
javaScriptCanOpenWindowsAutomatically: false
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const styles = StyleSheet.create({
|
|
33
|
+
container: {
|
|
34
|
+
flex: 1
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=DeunaWebView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","View","WebView","WebViewLoader","jsx","_jsx","DeunaWebView","props","style","styles","container","children","ref","webView","onWebView","source","uri","url","onMessage","onLoad","startInLoadingState","renderLoading","javaScriptEnabled","onError","setSupportMultipleWindows","javaScriptCanOpenWindowsAutomatically","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWebView.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUhD,OAAO,MAAMC,YAAY,GAAIC,KAAwB,IAAK;EACxD,oBACEF,IAAA,CAACJ,IAAI;IAACO,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BN,IAAA,CAACH,OAAO;MACNU,GAAG,EAAGC,OAAO,IAAK;QAChB,IAAIA,OAAO,IAAIN,KAAK,CAACO,SAAS,EAAE;UAC9BP,KAAK,CAACO,SAAS,CAACD,OAAO,CAAC;QAC1B;MACF,CAAE;MACFE,MAAM,EAAE;QAAEC,GAAG,EAAET,KAAK,CAACU;MAAI,CAAE;MAC3BC,SAAS,EAAEX,KAAK,CAACW,SAAU;MAC3BC,MAAM,EAAEA,CAAA,KAAM;QACZZ,KAAK,CAACY,MAAM,GAAG,CAAC;MAClB,CAAE;MACFC,mBAAmB;MACnBC,aAAa,EAAEA,CAAA,kBAAMhB,IAAA,CAACF,aAAa,IAAE,CAAE;MACvCmB,iBAAiB,EAAE,IAAK;MACxBC,OAAO,EAAEhB,KAAK,CAACgB,OAAQ;MACvBC,yBAAyB,EAAE,KAAM;MACjCC,qCAAqC,EAAE;IAAM,CAC9C;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMhB,MAAM,GAAGT,UAAU,CAAC0B,MAAM,CAAC;EAAEhB,SAAS,EAAE;IAAEiB,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Modal, SafeAreaView, StyleSheet, View } from 'react-native';
|
|
4
|
+
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
import { DeunaWebView } from "./DeunaWebView.js";
|
|
6
|
+
import { NewTabWebView } from "./NewTabWebView.js";
|
|
7
|
+
import { Mode } from "../interfaces/types.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
9
|
+
export const DeunaWidget = props => {
|
|
10
|
+
const {
|
|
11
|
+
instance
|
|
12
|
+
} = props;
|
|
13
|
+
const instanceRef = useRef(instance);
|
|
14
|
+
const [mode, setMode] = useState(instance.mode);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
instanceRef.current = instance;
|
|
17
|
+
}, [instance]);
|
|
18
|
+
|
|
19
|
+
// Listen when the DeunaSDK instance configuration
|
|
20
|
+
// has changed
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
const listener = () => {
|
|
23
|
+
setMode(instanceRef.current.mode);
|
|
24
|
+
};
|
|
25
|
+
instanceRef.current.addListener(listener);
|
|
26
|
+
return () => {
|
|
27
|
+
instanceRef.current.removeListener(listener);
|
|
28
|
+
instanceRef.current.webViewController?.dispose();
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
31
|
+
const isModal = mode === Mode.MODAL;
|
|
32
|
+
const isEmbedded = mode === Mode.EMBEDDED;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* This function is used to close the widget
|
|
36
|
+
*/
|
|
37
|
+
const onClose = () => {
|
|
38
|
+
const controller = instanceRef.current.webViewController;
|
|
39
|
+
controller.closedAction = 'userAction';
|
|
40
|
+
instanceRef.current.close();
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// render the widget if mode is not null
|
|
44
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
45
|
+
children: [/*#__PURE__*/_jsx(Modal, {
|
|
46
|
+
presentationStyle: "pageSheet",
|
|
47
|
+
animationType: "slide",
|
|
48
|
+
onRequestClose: onClose,
|
|
49
|
+
onDismiss: instanceRef.current.onModalDismissed,
|
|
50
|
+
visible: isModal,
|
|
51
|
+
children: isModal && /*#__PURE__*/_jsx(SafeAreaView, {
|
|
52
|
+
style: styles.container,
|
|
53
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
54
|
+
style: styles.container,
|
|
55
|
+
children: [/*#__PURE__*/_jsx(DeunaWebView, {
|
|
56
|
+
url: instanceRef.current.webViewController?.url ?? '',
|
|
57
|
+
onWebView: instanceRef.current.webViewController?.setWebView,
|
|
58
|
+
onMessage: instanceRef.current.webViewController?.onMessage,
|
|
59
|
+
onLoad: instanceRef.current.webViewController?.onLoad,
|
|
60
|
+
onError: instanceRef.current.webViewController?.onError
|
|
61
|
+
}), /*#__PURE__*/_jsx(NewTabWebView, {
|
|
62
|
+
instance: instanceRef.current
|
|
63
|
+
})]
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
}), isEmbedded && /*#__PURE__*/_jsx(NewTabWebView, {
|
|
67
|
+
instance: instanceRef.current
|
|
68
|
+
}), isEmbedded && /*#__PURE__*/_jsx(DeunaWebView, {
|
|
69
|
+
url: instanceRef.current.webViewController?.url ?? '',
|
|
70
|
+
onWebView: instanceRef.current.webViewController?.setWebView,
|
|
71
|
+
onMessage: instanceRef.current.webViewController?.onMessage,
|
|
72
|
+
onLoad: instanceRef.current.webViewController?.onLoad,
|
|
73
|
+
onError: instanceRef.current.webViewController?.onError
|
|
74
|
+
})]
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const styles = StyleSheet.create({
|
|
78
|
+
container: {
|
|
79
|
+
flex: 1
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=DeunaWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Modal","SafeAreaView","StyleSheet","View","useEffect","useRef","useState","DeunaWebView","NewTabWebView","Mode","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DeunaWidget","props","instance","instanceRef","mode","setMode","current","listener","addListener","removeListener","webViewController","dispose","isModal","MODAL","isEmbedded","EMBEDDED","onClose","controller","closedAction","close","children","presentationStyle","animationType","onRequestClose","onDismiss","onModalDismissed","visible","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWidget.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { Modal, SafeAreaView, StyleSheet } from 'react-native';
|
|
5
|
+
import { DeunaWebView } from "./DeunaWebView.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export const NewTabWebView = props => {
|
|
8
|
+
const {
|
|
9
|
+
instance
|
|
10
|
+
} = props;
|
|
11
|
+
const instanceRef = useRef(instance);
|
|
12
|
+
const [visible, setVisible] = useState(false);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
instanceRef.current = instance;
|
|
15
|
+
}, [instance]);
|
|
16
|
+
|
|
17
|
+
// Listen when the DeunaSDK instance configuration
|
|
18
|
+
// has changed
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const ref = instanceRef.current;
|
|
21
|
+
const listener = () => {
|
|
22
|
+
const isVisible = !!ref.newTabWebViewController;
|
|
23
|
+
setVisible(isVisible);
|
|
24
|
+
};
|
|
25
|
+
instanceRef.current.addListener(listener);
|
|
26
|
+
return () => {
|
|
27
|
+
ref.removeListener(listener);
|
|
28
|
+
ref.newTabWebViewController?.dispose();
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
31
|
+
const newTabController = instanceRef.current.newTabWebViewController;
|
|
32
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
33
|
+
presentationStyle: "pageSheet",
|
|
34
|
+
visible: visible,
|
|
35
|
+
animationType: "slide",
|
|
36
|
+
onRequestClose: instanceRef.current.onCloseNewTab,
|
|
37
|
+
onDismiss: instanceRef.current.onNewTabDismissed,
|
|
38
|
+
children: visible && /*#__PURE__*/_jsx(SafeAreaView, {
|
|
39
|
+
style: styles.container,
|
|
40
|
+
children: /*#__PURE__*/_jsx(DeunaWebView, {
|
|
41
|
+
url: newTabController?.url ?? '',
|
|
42
|
+
onWebView: newTabController?.setWebView,
|
|
43
|
+
onMessage: newTabController?.onMessage,
|
|
44
|
+
onLoad: newTabController?.onLoad,
|
|
45
|
+
onError: newTabController?.onError
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const styles = StyleSheet.create({
|
|
51
|
+
container: {
|
|
52
|
+
flex: 1
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=NewTabWebView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","Modal","SafeAreaView","StyleSheet","DeunaWebView","jsx","_jsx","NewTabWebView","props","instance","instanceRef","visible","setVisible","current","ref","listener","isVisible","newTabWebViewController","addListener","removeListener","dispose","newTabController","presentationStyle","animationType","onRequestClose","onCloseNewTab","onDismiss","onNewTabDismissed","children","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","create","flex"],"sourceRoot":"../../../src","sources":["components/NewTabWebView.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,SAASC,KAAK,EAAEC,YAAY,EAAEC,UAAU,QAAQ,cAAc;AAC9D,SAASC,YAAY,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM9C,OAAO,MAAMC,aAAa,GAAIC,KAAyB,IAAK;EAC1D,MAAM;IAAEC;EAAS,CAAC,GAAGD,KAAK;EAC1B,MAAME,WAAW,GAAGX,MAAM,CAAWU,QAAQ,CAAC;EAC9C,MAAM,CAACE,OAAO,EAAEC,UAAU,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EAE7CF,SAAS,CAAC,MAAM;IACdY,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAEd;EACA;EACAX,SAAS,CAAC,MAAM;IACd,MAAMgB,GAAG,GAAGJ,WAAW,CAACG,OAAO;IAC/B,MAAME,QAAQ,GAAGA,CAAA,KAAM;MACrB,MAAMC,SAAS,GAAG,CAAC,CAACF,GAAG,CAACG,uBAAuB;MAC/CL,UAAU,CAACI,SAAS,CAAC;IACvB,CAAC;IAEDN,WAAW,CAACG,OAAO,CAACK,WAAW,CAACH,QAAQ,CAAC;IAEzC,OAAO,MAAM;MACXD,GAAG,CAACK,cAAc,CAACJ,QAAQ,CAAC;MAC5BD,GAAG,CAACG,uBAAuB,EAAEG,OAAO,CAAC,CAAC;IACxC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,gBAAgB,GAAGX,WAAW,CAACG,OAAO,CAACI,uBAAuB;EAEpE,oBACEX,IAAA,CAACL,KAAK;IACJqB,iBAAiB,EAAC,WAAW;IAC7BX,OAAO,EAAEA,OAAQ;IACjBY,aAAa,EAAC,OAAO;IACrBC,cAAc,EAAEd,WAAW,CAACG,OAAO,CAACY,aAAc;IAClDC,SAAS,EAAEhB,WAAW,CAACG,OAAO,CAACc,iBAAkB;IAAAC,QAAA,EAEhDjB,OAAO,iBACNL,IAAA,CAACJ,YAAY;MAAC2B,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAH,QAAA,eACpCtB,IAAA,CAACF,YAAY;QACX4B,GAAG,EAAEX,gBAAgB,EAAEW,GAAG,IAAI,EAAG;QACjCC,SAAS,EAAEZ,gBAAgB,EAAEa,UAAW;QACxCC,SAAS,EAAEd,gBAAgB,EAAEc,SAAU;QACvCC,MAAM,EAAEf,gBAAgB,EAAEe,MAAO;QACjCC,OAAO,EAAEhB,gBAAgB,EAAEgB;MAAQ,CACpC;IAAC,CACU;EACf,CACI,CAAC;AAEZ,CAAC;AAED,MAAMP,MAAM,GAAG3B,UAAU,CAACmC,MAAM,CAAC;EAAEP,SAAS,EAAE;IAAEQ,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { ActivityIndicator, StyleSheet, View } from 'react-native';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const WebViewLoader = () => {
|
|
6
|
+
return /*#__PURE__*/_jsx(View, {
|
|
7
|
+
style: styles.container,
|
|
8
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
9
|
+
size: "small"
|
|
10
|
+
})
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
const styles = StyleSheet.create({
|
|
14
|
+
container: {
|
|
15
|
+
position: 'absolute',
|
|
16
|
+
top: 0,
|
|
17
|
+
left: 0,
|
|
18
|
+
right: 0,
|
|
19
|
+
bottom: 0,
|
|
20
|
+
justifyContent: 'center',
|
|
21
|
+
alignItems: 'center',
|
|
22
|
+
backgroundColor: '#FFFFFF'
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=WebViewLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ActivityIndicator","StyleSheet","View","jsx","_jsx","WebViewLoader","style","styles","container","children","size","create","position","top","left","right","bottom","justifyContent","alignItems","backgroundColor"],"sourceRoot":"../../../src","sources":["components/WebViewLoader.tsx"],"mappings":";;AAAA,SAASA,iBAAiB,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnE,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,oBACED,IAAA,CAACF,IAAI;IAACI,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BL,IAAA,CAACJ,iBAAiB;MAACU,IAAI,EAAC;IAAO,CAAE;EAAC,CAC9B,CAAC;AAEX,CAAC;AAED,MAAMH,MAAM,GAAGN,UAAU,CAACU,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|