react-native-unit-components 1.0.2 → 1.0.3
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 +75 -6
- package/android/src/main/AndroidManifest.xml +12 -1
- package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +2 -1
- package/android/src/main/java/com/unitreactnativecomponents/sharepdf/UNSharePDF.kt +75 -0
- package/android/src/main/res/layout/un_black_add_to_googlepay_button.xml +2 -2
- package/android/src/main/res/layout/un_view_google_push_provisioning.xml +1 -13
- package/android/src/main/res/layout/un_white_add_to_googlepay_button.xml +1 -1
- package/android/src/main/res/layout/un_white_add_to_googlepay_button_no_shadow.xml +1 -1
- package/android/src/main/res/xml/file_paths.xml +4 -0
- package/ios/UnitReactNativeComponentsViewManager.m +0 -1
- package/ios/UnitReactNativeComponentsViewManager.swift +6 -2
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +103 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +47 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +28 -4
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +19 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +22 -10
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +4 -0
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +3 -3
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +114 -46
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +4 -8
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +95 -0
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -0
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +31 -0
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -0
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +64 -7
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +57 -8
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js +20 -0
- package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -0
- package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +44 -0
- package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -0
- package/lib/commonjs/components/index.js +13 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js +32 -12
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/commonjs/helpers/EventBus.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/cardMessage.js +36 -0
- package/lib/commonjs/messages/nativeMessages/cardMessage.js.map +1 -0
- package/lib/commonjs/messages/nativeMessages/index.js +0 -8
- package/lib/commonjs/messages/nativeMessages/index.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/sdkMessage.js +14 -0
- package/lib/commonjs/messages/nativeMessages/sdkMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/unitMessages.js +1 -0
- package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/commonjs/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js} +1 -1
- package/lib/commonjs/nativeComponent/UnitAddToWalletButton.js.map +1 -0
- package/lib/commonjs/scripts/html/bodyScript.js +22 -5
- package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
- package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/card.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/index.js +13 -0
- package/lib/commonjs/sharedTypes/index.js.map +1 -1
- package/lib/commonjs/sharedTypes/onLoadResponse.types.js +6 -0
- package/lib/commonjs/sharedTypes/onLoadResponse.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/wallet.types.js +22 -0
- package/lib/commonjs/sharedTypes/wallet.types.js.map +1 -0
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js +5 -3
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -1
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js +12 -2
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.js +20 -8
- package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.utils.js +41 -0
- package/lib/commonjs/webComponent/WebComponent.utils.js.map +1 -0
- package/lib/commonjs/webComponent/html.js +9 -1
- package/lib/commonjs/webComponent/html.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js +74 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js +26 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js +28 -6
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +10 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +21 -10
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +3 -0
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +111 -46
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +5 -9
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +68 -0
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -0
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +21 -0
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -0
- package/lib/module/components/UNCardComponent/UNCardComponent.js +64 -9
- package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +48 -7
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js +10 -0
- package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -0
- package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +29 -0
- package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.js +30 -13
- package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +2 -2
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/module/helpers/EventBus.js.map +1 -1
- package/lib/module/messages/nativeMessages/cardMessage.js +27 -0
- package/lib/module/messages/nativeMessages/cardMessage.js.map +1 -0
- package/lib/module/messages/nativeMessages/index.js +1 -6
- package/lib/module/messages/nativeMessages/index.js.map +1 -1
- package/lib/module/messages/nativeMessages/sdkMessage.js +7 -0
- package/lib/module/messages/nativeMessages/sdkMessage.js.map +1 -0
- package/lib/module/messages/webMessages/unitMessages.js +1 -0
- package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/module/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js} +1 -1
- package/lib/module/nativeComponent/UnitAddToWalletButton.js.map +1 -0
- package/lib/module/scripts/html/bodyScript.js +19 -3
- package/lib/module/scripts/html/bodyScript.js.map +1 -1
- package/lib/module/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/module/sharedTypes/card.types.js.map +1 -1
- package/lib/module/sharedTypes/index.js +1 -0
- package/lib/module/sharedTypes/index.js.map +1 -1
- package/lib/module/sharedTypes/onLoadResponse.types.js +2 -0
- package/lib/module/sharedTypes/onLoadResponse.types.js.map +1 -0
- package/lib/module/sharedTypes/wallet.types.js +14 -0
- package/lib/module/sharedTypes/wallet.types.js.map +1 -0
- package/lib/module/unitSdkManager/UnitSdk.api.js +4 -3
- package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -1
- package/lib/module/unitSdkManager/UnitSdkManager.js +12 -2
- package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/module/webComponent/WebComponent.js +18 -7
- package/lib/module/webComponent/WebComponent.js.map +1 -1
- package/lib/module/webComponent/WebComponent.utils.js +27 -0
- package/lib/module/webComponent/WebComponent.utils.js.map +1 -0
- package/lib/module/webComponent/html.js +9 -2
- package/lib/module/webComponent/html.js.map +1 -1
- package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +12 -0
- package/lib/typescript/components/UNAccountComponent/UNAccountComponent.utils.d.ts +7 -0
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +2 -0
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +4 -0
- package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +2 -1
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.d.ts +1 -1
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +9 -2
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts +2 -1
- package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.d.ts +6 -0
- package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.d.ts +17 -0
- package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +4 -1
- package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +9 -1
- package/lib/typescript/components/UNCardComponent/networking/common/UNNetworkConstants.d.ts +8 -0
- package/lib/typescript/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.d.ts +1 -0
- package/lib/typescript/components/index.d.ts +1 -0
- package/lib/typescript/helpers/EventBus.d.ts +3 -3
- package/lib/typescript/messages/nativeMessages/cardMessage.d.ts +28 -0
- package/lib/typescript/messages/nativeMessages/index.d.ts +7 -3
- package/lib/typescript/messages/nativeMessages/sdkMessage.d.ts +8 -0
- package/lib/typescript/messages/webMessages/unitMessages.d.ts +16 -6
- package/lib/typescript/scripts/html/bodyScript.d.ts +4 -1
- package/lib/typescript/sharedTypes/bookPayment.types.d.ts +3 -3
- package/lib/typescript/sharedTypes/card.types.d.ts +6 -6
- package/lib/typescript/sharedTypes/index.d.ts +1 -0
- package/lib/typescript/sharedTypes/onLoadResponse.types.d.ts +18 -0
- package/lib/typescript/sharedTypes/wallet.types.d.ts +14 -0
- package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +3 -0
- package/lib/typescript/webComponent/WebComponent.d.ts +2 -1
- package/lib/typescript/webComponent/WebComponent.utils.d.ts +2 -0
- package/package.json +2 -1
- package/src/components/UNAccountComponent/UNAccountComponent.tsx +82 -0
- package/src/components/UNAccountComponent/UNAccountComponent.utils.ts +30 -0
- package/src/components/UNActivityComponent/UNActivityComponent.tsx +28 -5
- package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +14 -0
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +18 -10
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +3 -0
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts +1 -1
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +120 -44
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +7 -10
- package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.ts +21 -0
- package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.tsx +74 -0
- package/src/components/UNCardComponent/UNCardComponent.tsx +67 -13
- package/src/components/UNCardComponent/UNCardComponent.utils.ts +47 -7
- package/src/components/UNCardComponent/networking/common/UNNetworkConstants.ts +11 -0
- package/src/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.ts +34 -0
- package/src/components/index.ts +1 -0
- package/src/helpers/BottomSheet/BottomSheet.styles.ts +2 -2
- package/src/helpers/BottomSheet/BottomSheet.tsx +28 -12
- package/src/helpers/EventBus.ts +3 -3
- package/src/messages/nativeMessages/cardMessage.ts +37 -0
- package/src/messages/nativeMessages/index.ts +14 -3
- package/src/messages/nativeMessages/sdkMessage.ts +11 -0
- package/src/messages/webMessages/unitMessages.ts +20 -7
- package/src/scripts/html/bodyScript.ts +21 -4
- package/src/sharedTypes/bookPayment.types.ts +3 -3
- package/src/sharedTypes/card.types.ts +6 -6
- package/src/sharedTypes/index.ts +1 -0
- package/src/sharedTypes/onLoadResponse.types.ts +27 -0
- package/src/sharedTypes/wallet.types.ts +17 -0
- package/src/unitSdkManager/UnitSdk.api.ts +3 -2
- package/src/unitSdkManager/UnitSdkManager.ts +11 -2
- package/src/webComponent/WebComponent.tsx +21 -10
- package/src/webComponent/WebComponent.utils.ts +26 -0
- package/src/webComponent/html.ts +9 -2
- package/lib/commonjs/nativeComponent/UNNativeAddToWalletButton.js.map +0 -1
- package/lib/module/nativeComponent/UNNativeAddToWalletButton.js.map +0 -1
- /package/lib/typescript/nativeComponent/{UNNativeAddToWalletButton.d.ts → UnitAddToWalletButton.d.ts} +0 -0
- /package/src/nativeComponent/{UNNativeAddToWalletButton.tsx → UnitAddToWalletButton.tsx} +0 -0
|
@@ -4,8 +4,9 @@ import React, { useEffect, useRef, useState } from 'react';
|
|
|
4
4
|
import { Animated, BackHandler, Dimensions, Easing, Image, KeyboardAvoidingView, PanResponder, TouchableOpacity, View } from 'react-native';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { CloseIcon } from '../../assets/images';
|
|
7
|
-
import {
|
|
7
|
+
import { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
|
|
8
8
|
import { getStylesObject } from './BottomSheet.styles';
|
|
9
|
+
import { useAppStateListener } from '../../hooks/useAppStateListener';
|
|
9
10
|
|
|
10
11
|
const BottomSheet = props => {
|
|
11
12
|
const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;
|
|
@@ -15,6 +16,7 @@ const BottomSheet = props => {
|
|
|
15
16
|
const [contentHeight, setContentHeight] = useState(undefined);
|
|
16
17
|
const [currentHeight, setCurrentHeight] = useState(props.sliderMaxHeight);
|
|
17
18
|
const [dy, setDy] = useState(0);
|
|
19
|
+
const isAppActive = useAppStateListener();
|
|
18
20
|
|
|
19
21
|
const _parentPanResponder = PanResponder.create({
|
|
20
22
|
onMoveShouldSetPanResponderCapture: (_, gestureState) => {
|
|
@@ -45,6 +47,13 @@ const BottomSheet = props => {
|
|
|
45
47
|
}
|
|
46
48
|
});
|
|
47
49
|
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (!isAppActive && isPanelOpened) {
|
|
52
|
+
setContentHeight(0);
|
|
53
|
+
|
|
54
|
+
_dismiss(false);
|
|
55
|
+
}
|
|
56
|
+
}, [isAppActive]);
|
|
48
57
|
useEffect(() => {
|
|
49
58
|
if (props.isOpen && !isPanelOpened) {
|
|
50
59
|
fadeIn();
|
|
@@ -64,23 +73,29 @@ const BottomSheet = props => {
|
|
|
64
73
|
}, []);
|
|
65
74
|
|
|
66
75
|
const fadeIn = () => {
|
|
76
|
+
setIsPanelOpened(true);
|
|
67
77
|
Animated.timing(fadeAnim, {
|
|
68
78
|
toValue: 0.3,
|
|
69
79
|
duration: 500,
|
|
70
80
|
useNativeDriver: false
|
|
71
|
-
}).start(
|
|
72
|
-
setIsPanelOpened(true);
|
|
73
|
-
});
|
|
81
|
+
}).start();
|
|
74
82
|
};
|
|
75
83
|
|
|
76
|
-
const fadeOut = ()
|
|
84
|
+
const fadeOut = function () {
|
|
85
|
+
let withTimeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
withTimeout - most of the time we declare 'Close' after the animation is end.
|
|
89
|
+
In a case that the app is not active we do it without timeout. (Otherwise a race condition may occur.)
|
|
90
|
+
*/
|
|
91
|
+
setIsPanelOpened(false);
|
|
92
|
+
!withTimeout && props.onClose();
|
|
77
93
|
Animated.timing(fadeAnim, {
|
|
78
94
|
toValue: 0,
|
|
79
95
|
duration: 500,
|
|
80
96
|
useNativeDriver: false
|
|
81
97
|
}).start(() => {
|
|
82
|
-
|
|
83
|
-
props.onClose();
|
|
98
|
+
withTimeout && props.onClose();
|
|
84
99
|
});
|
|
85
100
|
};
|
|
86
101
|
|
|
@@ -97,6 +112,7 @@ const BottomSheet = props => {
|
|
|
97
112
|
const {
|
|
98
113
|
animationDuration
|
|
99
114
|
} = props;
|
|
115
|
+
props.onOpen();
|
|
100
116
|
|
|
101
117
|
if (contentHeight && currentHeight > sliderMaxHeight - contentHeight) {
|
|
102
118
|
setToContentHeight(contentHeight);
|
|
@@ -132,7 +148,8 @@ const BottomSheet = props => {
|
|
|
132
148
|
setToContentHeight(newContentHeight);
|
|
133
149
|
};
|
|
134
150
|
|
|
135
|
-
const _dismiss = ()
|
|
151
|
+
const _dismiss = function () {
|
|
152
|
+
let withTimeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
136
153
|
const {
|
|
137
154
|
animationDuration
|
|
138
155
|
} = props;
|
|
@@ -144,7 +161,7 @@ const BottomSheet = props => {
|
|
|
144
161
|
}).start(() => {
|
|
145
162
|
null;
|
|
146
163
|
});
|
|
147
|
-
fadeOut();
|
|
164
|
+
fadeOut(withTimeout);
|
|
148
165
|
};
|
|
149
166
|
|
|
150
167
|
const {
|
|
@@ -154,7 +171,7 @@ const BottomSheet = props => {
|
|
|
154
171
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
155
172
|
style: styles.outsideContainer,
|
|
156
173
|
activeOpacity: 1,
|
|
157
|
-
onPress: _dismiss
|
|
174
|
+
onPress: () => _dismiss()
|
|
158
175
|
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
159
176
|
style: styles.animation
|
|
160
177
|
})), /*#__PURE__*/React.createElement(Animated.View, _extends({}, _parentPanResponder.panHandlers, {
|
|
@@ -169,7 +186,7 @@ const BottomSheet = props => {
|
|
|
169
186
|
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
170
187
|
activeOpacity: 1,
|
|
171
188
|
style: styles.closeButton,
|
|
172
|
-
onPress: _dismiss
|
|
189
|
+
onPress: () => _dismiss()
|
|
173
190
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
174
191
|
source: CloseIcon
|
|
175
192
|
})), /*#__PURE__*/React.createElement(View, {
|
|
@@ -179,7 +196,7 @@ const BottomSheet = props => {
|
|
|
179
196
|
style: {
|
|
180
197
|
height: props.height
|
|
181
198
|
},
|
|
182
|
-
keyboardVerticalOffset: props.height * (1 -
|
|
199
|
+
keyboardVerticalOffset: props.height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE)
|
|
183
200
|
}, children)))));
|
|
184
201
|
};
|
|
185
202
|
|
|
@@ -196,7 +213,7 @@ BottomSheet.propTypes = {
|
|
|
196
213
|
BottomSheet.defaultProps = {
|
|
197
214
|
children: /*#__PURE__*/React.createElement(View, null),
|
|
198
215
|
isOpen: true,
|
|
199
|
-
sliderMaxHeight: Dimensions.get('window').height *
|
|
216
|
+
sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE,
|
|
200
217
|
animationDuration: 200,
|
|
201
218
|
onOpen: () => null,
|
|
202
219
|
onClose: () => null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","Animated","BackHandler","Dimensions","Easing","Image","KeyboardAvoidingView","PanResponder","TouchableOpacity","View","PropTypes","CloseIcon","BOTTOM_SHEET_MAX_PRECANTAGE_SIZE","getStylesObject","BottomSheet","props","panelHeightValue","Value","sliderMaxHeight","current","fadeAnim","styles","isPanelOpened","setIsPanelOpened","isOpen","contentHeight","setContentHeight","undefined","currentHeight","setCurrentHeight","dy","setDy","_parentPanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","shouldEnableBottomSheetScroll","Math","abs","onPanResponderMove","handleWebViewScroll","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","fadeIn","_dismiss","addEventListener","_onBackPress","id","addListener","e","value","removeEventListener","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","onClose","animationDuration","easing","quad","_setSize","newContentHeight","nativeEvent","layout","height","children","outsideContainer","animation","panHandlers","container","transform","translateY","outerContent","closeButton","propTypes","oneOfType","node","bool","number","func","onOpen","defaultProps","get"],"sources":["BottomSheet.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n Image,\n KeyboardAvoidingView,\n LayoutChangeEvent,\n PanResponder,\n TouchableOpacity,\n View,\n} from 'react-native';\nimport PropTypes from 'prop-types';\nimport { CloseIcon } from '../../assets/images';\nimport { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { getStylesObject } from './BottomSheet.styles';\n\nexport interface BottomSheetProps {\n isOpen: boolean\n children: ReactNode\n sliderMaxHeight: number\n onOpen: () => void\n onClose: () => void\n height: number,\n animationDuration: number,\n expandToMaxHeightEnabled: boolean\n handleWebViewScroll: () => void\n shouldEnableBottomSheetScroll: boolean\n}\n\nconst BottomSheet = (props: BottomSheetProps) => {\n const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;\n const fadeAnim = useRef(new Animated.Value(0)).current;\n const styles = getStylesObject(fadeAnim);\n const [isPanelOpened, setIsPanelOpened] = useState(props.isOpen);\n const [contentHeight, setContentHeight] = useState<number | undefined>(undefined);\n\n const [currentHeight, setCurrentHeight] = useState<number>(props.sliderMaxHeight);\n\n const [dy, setDy] = useState(0);\n\n const _parentPanResponder = PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, gestureState) => {\n return props.shouldEnableBottomSheetScroll && Math.abs(gestureState.dy) > 10;\n },\n onPanResponderMove(_, gestureState) {\n if (props.shouldEnableBottomSheetScroll && gestureState.dy < 5) {\n props.handleWebViewScroll();\n }\n if (currentHeight + gestureState.dy < 0) return;\n if (!props.expandToMaxHeightEnabled && contentHeight && currentHeight + gestureState.dy < sliderMaxHeight - contentHeight) return;\n panelHeightValue.setValue(currentHeight + gestureState.dy);\n setDy(gestureState.dy);\n },\n onPanResponderRelease: () => {\n if (dy > 0) {\n collapse();\n } else if (!props.expandToMaxHeightEnabled) {\n contentHeight && setToContentHeight(contentHeight);\n } else if (dy < 0) {\n expand();\n } else {\n expand();\n }\n }\n });\n\n useEffect(() => {\n if (props.isOpen && !isPanelOpened) {\n fadeIn();\n } else if (isPanelOpened) {\n setContentHeight(0);\n _dismiss();\n }\n }, [props.isOpen]);\n\n useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', _onBackPress);\n const id = panelHeightValue.addListener(e => setCurrentHeight(e.value));\n\n return (() => {\n BackHandler.removeEventListener('hardwareBackPress', _onBackPress);\n panelHeightValue.removeListener(id);\n });\n }, []);\n\n const fadeIn = () => {\n Animated.timing(fadeAnim, {\n toValue: 0.3,\n duration: 500,\n useNativeDriver: false\n }).start(() => { setIsPanelOpened(true); });\n };\n\n const fadeOut = () => {\n Animated.timing(fadeAnim, {\n toValue: 0,\n duration: 500,\n useNativeDriver: false\n }).start(() => {\n setIsPanelOpened(false);\n props.onClose();\n });\n };\n\n const setToContentHeight = (contentHeight: number) => {\n Animated.timing(panelHeightValue, {\n duration: props.animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight - contentHeight,\n useNativeDriver: false,\n }).start();\n };\n\n const expand = () => {\n const { animationDuration } = props;\n\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n setToContentHeight(contentHeight);\n return;\n }\n\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: 0,\n useNativeDriver: false,\n }).start();\n };\n\n const collapse = () => {\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n _dismiss();\n return;\n }\n\n contentHeight && setToContentHeight(contentHeight);\n };\n\n const _onBackPress = () => {\n isPanelOpened && collapse();\n return isPanelOpened;\n };\n\n const _setSize = (e: LayoutChangeEvent) => {\n const newContentHeight = e.nativeEvent.layout.height;\n\n setContentHeight(newContentHeight);\n setToContentHeight(newContentHeight);\n };\n\n const _dismiss = () => {\n const { animationDuration } = props;\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight,\n useNativeDriver: false,\n }).start(() => {\n null;\n });\n fadeOut();\n };\n\n const {\n sliderMaxHeight,\n children,\n } = props;\n\n return (\n <>\n <TouchableOpacity\n style={styles.outsideContainer} activeOpacity={1}\n onPress={_dismiss}\n >\n <Animated.View\n style={styles.animation}\n >\n </Animated.View>\n </TouchableOpacity>\n <Animated.View\n {..._parentPanResponder.panHandlers}\n style={{\n ...styles.container,\n height: sliderMaxHeight,\n transform: [\n { translateY: panelHeightValue },\n ],\n }}\n >\n <View\n style={styles.outerContent}\n >\n <TouchableOpacity\n activeOpacity={1}\n style={styles.closeButton}\n onPress={_dismiss}\n >\n <Image source={CloseIcon} />\n </TouchableOpacity>\n\n <View\n onLayout={_setSize}\n >\n <KeyboardAvoidingView\n behavior=\"padding\"\n style={{ height: props.height }}\n keyboardVerticalOffset={props.height * (1 - BOTTOM_SHEET_MAX_PRECANTAGE_SIZE)}\n >\n {children}\n </KeyboardAvoidingView>\n </View>\n </View>\n </Animated.View>\n </>\n );\n};\n\nBottomSheet.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node]),\n isOpen: PropTypes.bool,\n sliderMaxHeight: PropTypes.number,\n animation: PropTypes.func,\n animationDuration: PropTypes.number,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n expandToMaxHeightEnabled: PropTypes.bool\n};\n\nBottomSheet.defaultProps = {\n children: <View />,\n isOpen: true,\n sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PRECANTAGE_SIZE,\n animationDuration: 200,\n onOpen: () => null,\n onClose: () => null,\n expandToMaxHeightEnabled: false\n};\n\nexport default BottomSheet;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","Animated","BackHandler","Dimensions","Easing","Image","KeyboardAvoidingView","PanResponder","TouchableOpacity","View","PropTypes","CloseIcon","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","getStylesObject","useAppStateListener","BottomSheet","props","panelHeightValue","Value","sliderMaxHeight","current","fadeAnim","styles","isPanelOpened","setIsPanelOpened","isOpen","contentHeight","setContentHeight","undefined","currentHeight","setCurrentHeight","dy","setDy","isAppActive","_parentPanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","shouldEnableBottomSheetScroll","Math","abs","onPanResponderMove","handleWebViewScroll","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","_dismiss","fadeIn","addEventListener","_onBackPress","id","addListener","e","value","removeEventListener","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","withTimeout","onClose","animationDuration","easing","quad","onOpen","_setSize","newContentHeight","nativeEvent","layout","height","children","outsideContainer","animation","panHandlers","container","transform","translateY","outerContent","closeButton","propTypes","oneOfType","node","bool","number","func","defaultProps","get"],"sources":["BottomSheet.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n Image,\n KeyboardAvoidingView,\n LayoutChangeEvent,\n PanResponder,\n TouchableOpacity,\n View,\n} from 'react-native';\nimport PropTypes from 'prop-types';\nimport { CloseIcon } from '../../assets/images';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { getStylesObject } from './BottomSheet.styles';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\n\nexport interface BottomSheetProps {\n isOpen: boolean\n children: ReactNode\n sliderMaxHeight: number\n onOpen: () => void\n onClose: () => void\n height: number,\n animationDuration: number,\n expandToMaxHeightEnabled: boolean\n handleWebViewScroll: () => void\n shouldEnableBottomSheetScroll: boolean\n}\n\nconst BottomSheet = (props: BottomSheetProps) => {\n const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;\n const fadeAnim = useRef(new Animated.Value(0)).current;\n const styles = getStylesObject(fadeAnim);\n const [isPanelOpened, setIsPanelOpened] = useState(props.isOpen);\n const [contentHeight, setContentHeight] = useState<number | undefined>(undefined);\n\n const [currentHeight, setCurrentHeight] = useState<number>(props.sliderMaxHeight);\n\n const [dy, setDy] = useState(0);\n\n const isAppActive = useAppStateListener();\n\n const _parentPanResponder = PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, gestureState) => {\n return props.shouldEnableBottomSheetScroll && Math.abs(gestureState.dy) > 10;\n },\n onPanResponderMove(_, gestureState) {\n if (props.shouldEnableBottomSheetScroll && gestureState.dy < 5) {\n props.handleWebViewScroll();\n }\n if (currentHeight + gestureState.dy < 0) return;\n if (!props.expandToMaxHeightEnabled && contentHeight && currentHeight + gestureState.dy < sliderMaxHeight - contentHeight) return;\n panelHeightValue.setValue(currentHeight + gestureState.dy);\n setDy(gestureState.dy);\n },\n onPanResponderRelease: () => {\n if (dy > 0) {\n collapse();\n } else if (!props.expandToMaxHeightEnabled) {\n contentHeight && setToContentHeight(contentHeight);\n } else if (dy < 0) {\n expand();\n } else {\n expand();\n }\n }\n });\n\n useEffect(() => {\n if (!isAppActive && isPanelOpened) {\n setContentHeight(0);\n _dismiss(false);\n }\n }, [isAppActive]);\n\n useEffect(() => {\n if (props.isOpen && !isPanelOpened) {\n fadeIn();\n } else if (isPanelOpened) {\n setContentHeight(0);\n _dismiss();\n }\n }, [props.isOpen]);\n\n useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', _onBackPress);\n const id = panelHeightValue.addListener(e => setCurrentHeight(e.value));\n\n return (() => {\n BackHandler.removeEventListener('hardwareBackPress', _onBackPress);\n panelHeightValue.removeListener(id);\n });\n }, []);\n\n const fadeIn = () => {\n setIsPanelOpened(true);\n Animated.timing(fadeAnim, {\n toValue: 0.3,\n duration: 500,\n useNativeDriver: false\n }).start();\n };\n\n const fadeOut = (withTimeout = true) => {\n /*\n withTimeout - most of the time we declare 'Close' after the animation is end.\n In a case that the app is not active we do it without timeout. (Otherwise a race condition may occur.)\n */\n setIsPanelOpened(false);\n !withTimeout && props.onClose();\n Animated.timing(fadeAnim, {\n toValue: 0,\n duration: 500,\n useNativeDriver: false\n }).start(() => {\n withTimeout && props.onClose();\n });\n };\n\n const setToContentHeight = (contentHeight: number) => {\n Animated.timing(panelHeightValue, {\n duration: props.animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight - contentHeight,\n useNativeDriver: false,\n }).start();\n };\n\n const expand = () => {\n const { animationDuration } = props;\n props.onOpen();\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n setToContentHeight(contentHeight);\n return;\n }\n\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: 0,\n useNativeDriver: false,\n }).start();\n };\n\n const collapse = () => {\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n _dismiss();\n return;\n }\n\n contentHeight && setToContentHeight(contentHeight);\n };\n\n const _onBackPress = () => {\n isPanelOpened && collapse();\n return isPanelOpened;\n };\n\n const _setSize = (e: LayoutChangeEvent) => {\n const newContentHeight = e.nativeEvent.layout.height;\n\n setContentHeight(newContentHeight);\n setToContentHeight(newContentHeight);\n };\n\n const _dismiss = (withTimeout = true) => {\n const { animationDuration } = props;\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight,\n useNativeDriver: false,\n }).start(() => {\n null;\n });\n fadeOut(withTimeout);\n };\n\n const {\n sliderMaxHeight,\n children,\n } = props;\n\n return (\n <>\n <TouchableOpacity\n style={styles.outsideContainer} activeOpacity={1}\n onPress={() => _dismiss()}\n >\n <Animated.View\n style={styles.animation}\n >\n </Animated.View>\n </TouchableOpacity>\n <Animated.View\n {..._parentPanResponder.panHandlers}\n style={{\n ...styles.container,\n height: sliderMaxHeight,\n transform: [\n { translateY: panelHeightValue },\n ],\n }}\n >\n <View\n style={styles.outerContent}\n >\n <TouchableOpacity\n activeOpacity={1}\n style={styles.closeButton}\n onPress={() => _dismiss()}\n >\n <Image source={CloseIcon} />\n </TouchableOpacity>\n\n <View\n onLayout={_setSize}\n >\n <KeyboardAvoidingView\n behavior=\"padding\"\n style={{ height: props.height }}\n keyboardVerticalOffset={props.height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE)}\n >\n {children}\n </KeyboardAvoidingView>\n </View>\n </View>\n </Animated.View>\n </>\n );\n};\n\nBottomSheet.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node]),\n isOpen: PropTypes.bool,\n sliderMaxHeight: PropTypes.number,\n animation: PropTypes.func,\n animationDuration: PropTypes.number,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n expandToMaxHeightEnabled: PropTypes.bool\n};\n\nBottomSheet.defaultProps = {\n children: <View />,\n isOpen: true,\n sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE,\n animationDuration: 200,\n onOpen: () => null,\n onClose: () => null,\n expandToMaxHeightEnabled: false\n};\n\nexport default BottomSheet;\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Dimensions, StyleSheet } from 'react-native';
|
|
2
|
-
import {
|
|
2
|
+
import { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
|
|
3
3
|
import { VARIABLES } from '../../styles/variables'; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
4
|
|
|
5
5
|
export const getStylesObject = fadeAnim => {
|
|
@@ -19,7 +19,7 @@ export const getStylesObject = fadeAnim => {
|
|
|
19
19
|
container: {
|
|
20
20
|
position: 'relative',
|
|
21
21
|
flex: 1,
|
|
22
|
-
marginTop: Dimensions.get('window').height * (1 -
|
|
22
|
+
marginTop: Dimensions.get('window').height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE),
|
|
23
23
|
shadowColor: VARIABLES.COLORS.BLACK,
|
|
24
24
|
shadowOffset: {
|
|
25
25
|
width: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dimensions","StyleSheet","
|
|
1
|
+
{"version":3,"names":["Dimensions","StyleSheet","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","VARIABLES","getStylesObject","fadeAnim","create","outsideContainer","position","top","bottom","right","left","animation","backgroundColor","flex","opacity","container","marginTop","get","height","shadowColor","COLORS","BLACK","shadowOffset","width","shadowOpacity","shadowRadius","elevation","borderTopLeftRadius","borderTopRightRadius","WHITE","overflow","lineContainer","alignItems","line","borderRadius","SILVER_FLAKE","outerContent","innerContent","closeButton","display","justifyContent","padding","zIndex"],"sources":["BottomSheet.styles.ts"],"sourcesContent":["import { Dimensions, StyleSheet } from 'react-native';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { VARIABLES } from '../../styles/variables';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const getStylesObject = (fadeAnim: any) => {\n return StyleSheet.create({\n outsideContainer: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n left: 0\n },\n animation: {\n backgroundColor: 'black',\n flex: 1,\n opacity: fadeAnim,\n },\n container: {\n position: 'relative',\n flex: 1,\n marginTop: Dimensions.get('window').height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE),\n shadowColor: VARIABLES.COLORS.BLACK,\n shadowOffset: {\n width: 0,\n height: 6,\n },\n shadowOpacity: 0.37,\n shadowRadius: 7.49,\n elevation: 12,\n borderTopLeftRadius: 15,\n borderTopRightRadius: 15,\n backgroundColor: VARIABLES.COLORS.WHITE,\n overflow: 'hidden'\n },\n lineContainer: {\n borderTopLeftRadius: 30,\n borderTopRightRadius: 30,\n alignItems: 'center'\n },\n line: {\n width: 35,\n height: 4,\n borderRadius: 2,\n marginTop: 18,\n backgroundColor: VARIABLES.COLORS.SILVER_FLAKE,\n },\n outerContent: {\n flex: -1,\n },\n innerContent: {\n flex: -1,\n },\n closeButton: {\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 36,\n height: 36,\n backgroundColor: VARIABLES.COLORS.WHITE,\n borderRadius: 18,\n padding: 7,\n top: 12,\n right: 12,\n zIndex: 100\n }\n });\n};\n"],"mappings":"AAAA,SAASA,UAAT,EAAqBC,UAArB,QAAuC,cAAvC;AACA,SAASC,gCAAT,QAAiD,0EAAjD;AACA,SAASC,SAAT,QAA0B,wBAA1B,C,CAEA;;AACA,OAAO,MAAMC,eAAe,GAAIC,QAAD,IAAmB;EAChD,OAAOJ,UAAU,CAACK,MAAX,CAAkB;IACvBC,gBAAgB,EAAE;MAChBC,QAAQ,EAAE,UADM;MAEhBC,GAAG,EAAE,CAFW;MAGhBC,MAAM,EAAE,CAHQ;MAIhBC,KAAK,EAAE,CAJS;MAKhBC,IAAI,EAAE;IALU,CADK;IAQvBC,SAAS,EAAE;MACTC,eAAe,EAAE,OADR;MAETC,IAAI,EAAE,CAFG;MAGTC,OAAO,EAAEX;IAHA,CARY;IAavBY,SAAS,EAAE;MACTT,QAAQ,EAAE,UADD;MAETO,IAAI,EAAE,CAFG;MAGTG,SAAS,EAAElB,UAAU,CAACmB,GAAX,CAAe,QAAf,EAAyBC,MAAzB,IAAmC,IAAIlB,gCAAvC,CAHF;MAITmB,WAAW,EAAElB,SAAS,CAACmB,MAAV,CAAiBC,KAJrB;MAKTC,YAAY,EAAE;QACZC,KAAK,EAAE,CADK;QAEZL,MAAM,EAAE;MAFI,CALL;MASTM,aAAa,EAAE,IATN;MAUTC,YAAY,EAAE,IAVL;MAWTC,SAAS,EAAE,EAXF;MAYTC,mBAAmB,EAAE,EAZZ;MAaTC,oBAAoB,EAAE,EAbb;MAcThB,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBS,KAdzB;MAeTC,QAAQ,EAAE;IAfD,CAbY;IA8BvBC,aAAa,EAAE;MACbJ,mBAAmB,EAAE,EADR;MAEbC,oBAAoB,EAAE,EAFT;MAGbI,UAAU,EAAE;IAHC,CA9BQ;IAmCvBC,IAAI,EAAE;MACJV,KAAK,EAAE,EADH;MAEJL,MAAM,EAAE,CAFJ;MAGJgB,YAAY,EAAE,CAHV;MAIJlB,SAAS,EAAE,EAJP;MAKJJ,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBe;IAL9B,CAnCiB;IA0CvBC,YAAY,EAAE;MACZvB,IAAI,EAAE,CAAC;IADK,CA1CS;IA6CvBwB,YAAY,EAAE;MACZxB,IAAI,EAAE,CAAC;IADK,CA7CS;IAgDvByB,WAAW,EAAE;MACXhC,QAAQ,EAAE,UADC;MAEXiC,OAAO,EAAE,MAFE;MAGXP,UAAU,EAAE,QAHD;MAIXQ,cAAc,EAAE,QAJL;MAKXjB,KAAK,EAAE,EALI;MAMXL,MAAM,EAAE,EANG;MAOXN,eAAe,EAAEX,SAAS,CAACmB,MAAV,CAAiBS,KAPvB;MAQXK,YAAY,EAAE,EARH;MASXO,OAAO,EAAE,CATE;MAUXlC,GAAG,EAAE,EAVM;MAWXE,KAAK,EAAE,EAXI;MAYXiC,MAAM,EAAE;IAZG;EAhDU,CAAlB,CAAP;AA+DD,CAhEM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventBus","constructor","eventListeners","Instance","_instance","event","data","listeners","valueOf","Array","isArray","map","listener","addListener","push","removeListener","Object","keys","eventName","_remove","length","array","item","i","l","splice"],"sources":["EventBus.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {
|
|
1
|
+
{"version":3,"names":["EventBus","constructor","eventListeners","Instance","_instance","event","data","listeners","valueOf","Array","isArray","map","listener","addListener","push","removeListener","Object","keys","eventName","_remove","length","array","item","i","l","splice"],"sources":["EventBus.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { NativeMessageType } from '../messages/nativeMessages';\nimport type { WebViewMessageType } from '../messages/webMessages';\n\nexport type BusEventKey = NativeMessageType | WebViewMessageType\n\nexport default class EventBus {\n private static _instance: EventBus;\n\n private eventListeners: { [name: string]: Array<(data: any) => void> } = {};\n\n private constructor() {\n this.eventListeners = {};\n }\n\n public static get Instance() {\n return this._instance || (this._instance = new this());\n }\n\n public event(event: BusEventKey, data?: any) {\n const listeners = this.eventListeners[event.valueOf()];\n if (Array.isArray(listeners)) {\n listeners.map(listener => {\n if (typeof listener === 'function') {\n listener(data);\n }\n });\n }\n }\n\n public addListener(event: BusEventKey, listener: (data: any) => void) {\n const listeners = this.eventListeners[event.valueOf()];\n if (Array.isArray(listeners)) {\n listeners.push(listener);\n } else {\n this.eventListeners[event.valueOf()] = [listener];\n }\n }\n\n public removeListener(listener: (data: any) => void) {\n Object.keys(this.eventListeners).map(eventName => {\n const listeners = this.eventListeners[eventName];\n if (listeners) {\n this._remove(listeners, listener);\n if (listeners.length === 0) {\n delete this.eventListeners[eventName];\n }\n }\n });\n }\n\n private _remove(array: Array<(data: any) => void>, item: (data: string) => void) {\n if (!array) return;\n for (let i = 0, l = array.length; i < l; i++) {\n if (item === array[i]) array.splice(i, 1);\n }\n }\n}\n"],"mappings":";;AAAA;AAMA,eAAe,MAAMA,QAAN,CAAe;EAKpBC,WAAW,GAAG;IAAA,wCAFmD,EAEnD;;IACpB,KAAKC,cAAL,GAAsB,EAAtB;EACD;;EAEyB,WAARC,QAAQ,GAAG;IAC3B,OAAO,KAAKC,SAAL,KAAmB,KAAKA,SAAL,GAAiB,IAAI,IAAJ,EAApC,CAAP;EACD;;EAEMC,KAAK,CAACA,KAAD,EAAqBC,IAArB,EAAiC;IAC3C,MAAMC,SAAS,GAAG,KAAKL,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,CAAlB;;IACA,IAAIC,KAAK,CAACC,OAAN,CAAcH,SAAd,CAAJ,EAA8B;MAC5BA,SAAS,CAACI,GAAV,CAAcC,QAAQ,IAAI;QACxB,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;UAClCA,QAAQ,CAACN,IAAD,CAAR;QACD;MACF,CAJD;IAKD;EACF;;EAEMO,WAAW,CAACR,KAAD,EAAqBO,QAArB,EAAoD;IACpE,MAAML,SAAS,GAAG,KAAKL,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,CAAlB;;IACA,IAAIC,KAAK,CAACC,OAAN,CAAcH,SAAd,CAAJ,EAA8B;MAC5BA,SAAS,CAACO,IAAV,CAAeF,QAAf;IACD,CAFD,MAEO;MACL,KAAKV,cAAL,CAAoBG,KAAK,CAACG,OAAN,EAApB,IAAuC,CAACI,QAAD,CAAvC;IACD;EACF;;EAEMG,cAAc,CAACH,QAAD,EAAgC;IACnDI,MAAM,CAACC,IAAP,CAAY,KAAKf,cAAjB,EAAiCS,GAAjC,CAAqCO,SAAS,IAAI;MAChD,MAAMX,SAAS,GAAG,KAAKL,cAAL,CAAoBgB,SAApB,CAAlB;;MACA,IAAIX,SAAJ,EAAe;QACb,KAAKY,OAAL,CAAaZ,SAAb,EAAwBK,QAAxB;;QACA,IAAIL,SAAS,CAACa,MAAV,KAAqB,CAAzB,EAA4B;UAC1B,OAAO,KAAKlB,cAAL,CAAoBgB,SAApB,CAAP;QACD;MACF;IACF,CARD;EASD;;EAEOC,OAAO,CAACE,KAAD,EAAoCC,IAApC,EAAkE;IAC/E,IAAI,CAACD,KAAL,EAAY;;IACZ,KAAK,IAAIE,CAAC,GAAG,CAAR,EAAWC,CAAC,GAAGH,KAAK,CAACD,MAA1B,EAAkCG,CAAC,GAAGC,CAAtC,EAAyCD,CAAC,EAA1C,EAA8C;MAC5C,IAAID,IAAI,KAAKD,KAAK,CAACE,CAAD,CAAlB,EAAuBF,KAAK,CAACI,MAAN,CAAaF,CAAb,EAAgB,CAAhB;IACxB;EACF;;AAlD2B;;gBAATvB,Q"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export let CardNativeMessage;
|
|
2
|
+
|
|
3
|
+
(function (CardNativeMessage) {
|
|
4
|
+
CardNativeMessage["CARD_GET_ADD_TO_WALLET_STATUS"] = "cardGetAddToWalletStatus";
|
|
5
|
+
CardNativeMessage["CARD_UPDATE_ADD_TO_WALLET_STATUS"] = "cardUpdateAddToWalletStatus";
|
|
6
|
+
CardNativeMessage["CARD_START_PUSH_PROVISIONING"] = "cardStartPushProvisioning";
|
|
7
|
+
})(CardNativeMessage || (CardNativeMessage = {}));
|
|
8
|
+
|
|
9
|
+
export let CardAddToWalletStatus;
|
|
10
|
+
|
|
11
|
+
(function (CardAddToWalletStatus) {
|
|
12
|
+
CardAddToWalletStatus[CardAddToWalletStatus["pending"] = 0] = "pending";
|
|
13
|
+
CardAddToWalletStatus["readyToProvisioning"] = "ReadyToProvision";
|
|
14
|
+
CardAddToWalletStatus["addedToWallet"] = "AlreadyProvisioned";
|
|
15
|
+
CardAddToWalletStatus["iosProvisionedInCurrentDevice"] = "ProvisionedInCurrentDevice";
|
|
16
|
+
CardAddToWalletStatus["iosProvisionedInPairedDevice"] = "ProvisionedInPairedDevice";
|
|
17
|
+
CardAddToWalletStatus["androidNotInstalled"] = "NotInstalled";
|
|
18
|
+
CardAddToWalletStatus["androidWalletSetupNotCompleted"] = "WalletSetupNotCompleted";
|
|
19
|
+
CardAddToWalletStatus["androidWalletAppUpdateAvailable"] = "WalletAppUpdateAvailable";
|
|
20
|
+
})(CardAddToWalletStatus || (CardAddToWalletStatus = {}));
|
|
21
|
+
|
|
22
|
+
export let CardAddToWalletErrors;
|
|
23
|
+
|
|
24
|
+
(function (CardAddToWalletErrors) {
|
|
25
|
+
CardAddToWalletErrors["closedNativeWalletScreen"] = "VP_ERROR_302";
|
|
26
|
+
})(CardAddToWalletErrors || (CardAddToWalletErrors = {}));
|
|
27
|
+
//# sourceMappingURL=cardMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CardNativeMessage","CardAddToWalletStatus","CardAddToWalletErrors"],"sources":["cardMessage.ts"],"sourcesContent":["export enum CardNativeMessage {\n CARD_GET_ADD_TO_WALLET_STATUS = 'cardGetAddToWalletStatus',\n CARD_UPDATE_ADD_TO_WALLET_STATUS = 'cardUpdateAddToWalletStatus',\n CARD_START_PUSH_PROVISIONING = 'cardStartPushProvisioning'\n}\n\nexport enum CardAddToWalletStatus {\n pending,\n readyToProvisioning = 'ReadyToProvision',\n addedToWallet = 'AlreadyProvisioned',\n iosProvisionedInCurrentDevice = 'ProvisionedInCurrentDevice',\n iosProvisionedInPairedDevice = 'ProvisionedInPairedDevice',\n androidNotInstalled = 'NotInstalled',\n androidWalletSetupNotCompleted = 'WalletSetupNotCompleted',\n androidWalletAppUpdateAvailable = 'WalletAppUpdateAvailable'\n\n}\n\nexport enum CardAddToWalletErrors {\n closedNativeWalletScreen = 'VP_ERROR_302'\n}\nexport interface CardAddToWalletStatusEvent {\n status: CardAddToWalletStatus\n}\n\nexport interface CardGetAddToWalletStatusEvent {\n cardId: string\n}\n\nexport interface CardStartPushProvisioningEvent {\n cardId: string\n}\n\nexport type CardNativeEvent =\n | CardAddToWalletStatusEvent\n | CardGetAddToWalletStatusEvent\n | CardStartPushProvisioningEvent\n"],"mappings":"AAAA,WAAYA,iBAAZ;;WAAYA,iB;EAAAA,iB;EAAAA,iB;EAAAA,iB;GAAAA,iB,KAAAA,iB;;AAMZ,WAAYC,qBAAZ;;WAAYA,qB;EAAAA,qB,CAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;GAAAA,qB,KAAAA,qB;;AAYZ,WAAYC,qBAAZ;;WAAYA,qB;EAAAA,qB;GAAAA,qB,KAAAA,qB"}
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
(function (NativeMessage) {
|
|
4
|
-
NativeMessage["IS_SCRIPT_FETCHED"] = "isScriptFetched";
|
|
5
|
-
NativeMessage["IS_SDK_INITIALIZED"] = "isSdkInitialized";
|
|
6
|
-
})(NativeMessage || (NativeMessage = {}));
|
|
1
|
+
export {};
|
|
7
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["import type { CardNativeEvent, CardNativeMessage } from './cardMessage';\nimport type { SDKEvent, SDKMessage } from './sdkMessage';\n\nexport type NativeMessageType =\n | SDKMessage\n | CardNativeMessage\n\nexport type NativeEvent =\n | CardNativeEvent\n | SDKEvent\n\nexport interface NativeMessage {\n type: NativeMessageType,\n details?: NativeEvent\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SDKMessage"],"sources":["sdkMessage.ts"],"sourcesContent":["export enum SDKMessage {\n IS_SCRIPT_FETCHED = 'isScriptFetched',\n IS_SDK_INITIALIZED = 'isSdkInitialized',\n}\n\nexport interface SdkScriptFetched {\n unitScript: string\n}\n\nexport type SDKEvent =\n | SdkScriptFetched\n"],"mappings":"AAAA,WAAYA,UAAZ;;WAAYA,U;EAAAA,U;EAAAA,U;GAAAA,U,KAAAA,U"}
|
|
@@ -6,5 +6,6 @@ export let UnitMessage;
|
|
|
6
6
|
UnitMessage["UNIT_REQUEST_CLOSE_FLOW"] = "unitRequestCloseFlow";
|
|
7
7
|
UnitMessage["UNIT_REQUEST_OPEN_LINK"] = "unitRequestOpenLink";
|
|
8
8
|
UnitMessage["UNIT_ON_LOAD"] = "unitOnLoad";
|
|
9
|
+
UnitMessage["UNIT_REQUEST_DOWNLOAD"] = "unitRequestDownload";
|
|
9
10
|
})(UnitMessage || (UnitMessage = {}));
|
|
10
11
|
//# sourceMappingURL=unitMessages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UnitMessage"],"sources":["unitMessages.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["UnitMessage"],"sources":["unitMessages.ts"],"sourcesContent":["import type { ResponseUnitOnLoadEvent } from '../../sharedTypes';\n\nexport enum UnitMessage {\n UNIT_REQUEST_RENDERING = 'unitRequestRendering',\n UNIT_REQUEST_REFRESH = 'unitRequestRefresh',\n UNIT_REQUEST_CLOSE_FLOW = 'unitRequestCloseFlow',\n UNIT_REQUEST_OPEN_LINK = 'unitRequestOpenLink',\n UNIT_ON_LOAD = 'unitOnLoad',\n UNIT_REQUEST_DOWNLOAD = 'unitRequestDownload'\n}\nexport interface RequestRenderingEvent {\n data: RequestRenderingEventData\n}\n\nexport interface RequestRenderingEventData {\n actionType?: string,\n nativePlace: string,\n nativeComponent: string,\n}\n\nexport interface RequestRefreshEvent {\n refEvent: string;\n dependencies: string[];\n resourceId: string;\n}\n\nexport interface RequestOpenLinkEvent {\n href: string;\n target: string\n}\n\nexport interface RequestDownloadEvent {\n url: string\n accessToken: string\n fileType: string\n responseType: string\n fileName: string\n}\n\nexport type UnitEvent =\n | RequestRenderingEvent\n | RequestRefreshEvent\n | RequestOpenLinkEvent\n | ResponseUnitOnLoadEvent\n | RequestDownloadEvent\n"],"mappings":"AAEA,WAAYA,WAAZ;;WAAYA,W;EAAAA,W;EAAAA,W;EAAAA,W;EAAAA,W;EAAAA,W;EAAAA,W;GAAAA,W,KAAAA,W"}
|
package/lib/module/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { requireNativeComponent } from 'react-native';
|
|
2
2
|
const UnitAddToWalletButtonView = requireNativeComponent('UnitAddToWalletButtonView');
|
|
3
3
|
export default UnitAddToWalletButtonView;
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=UnitAddToWalletButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["requireNativeComponent","UnitAddToWalletButtonView"],"sources":["UnitAddToWalletButton.tsx"],"sourcesContent":["import {\n requireNativeComponent,\n} from 'react-native';\n\ntype UnitAddToWalletButtonViewProps = {\n style: object;\n onAddToWalletClicked: () => void;\n};\n\nconst UnitAddToWalletButtonView = requireNativeComponent<UnitAddToWalletButtonViewProps>('UnitAddToWalletButtonView');\n\nexport default UnitAddToWalletButtonView;\n"],"mappings":"AAAA,SACEA,sBADF,QAEO,cAFP;AASA,MAAMC,yBAAyB,GAAGD,sBAAsB,CAAiC,2BAAjC,CAAxD;AAEA,eAAeC,yBAAf"}
|
|
@@ -25,13 +25,18 @@ export const LISTENERS = {
|
|
|
25
25
|
`,
|
|
26
26
|
requestRendering: `
|
|
27
27
|
window.addEventListener("${UnitMessage.UNIT_REQUEST_RENDERING}", (e) => {
|
|
28
|
-
postMessageToSDK({ type: "${UnitMessage.UNIT_REQUEST_RENDERING}", details: { data:
|
|
28
|
+
postMessageToSDK({ type: "${UnitMessage.UNIT_REQUEST_RENDERING}", details: { data: e.detail }})
|
|
29
|
+
});
|
|
30
|
+
`,
|
|
31
|
+
requestRefresh: `
|
|
32
|
+
window.addEventListener("${UnitMessage.UNIT_REQUEST_REFRESH}", (e) => {
|
|
33
|
+
postMessageToSDK({ type: "${UnitMessage.UNIT_REQUEST_REFRESH}", details: e.detail })
|
|
29
34
|
});
|
|
30
35
|
`,
|
|
31
36
|
onLoad: `
|
|
32
37
|
window.addEventListener("${UnitMessage.UNIT_ON_LOAD}", (e) => {
|
|
33
38
|
postHeight()
|
|
34
|
-
postMessageToSDK({ type: "${UnitMessage.UNIT_ON_LOAD}" })
|
|
39
|
+
postMessageToSDK({ type: "${UnitMessage.UNIT_ON_LOAD}", details: e.detail })
|
|
35
40
|
});
|
|
36
41
|
`,
|
|
37
42
|
requestCloseFlow: `
|
|
@@ -44,6 +49,11 @@ export const LISTENERS = {
|
|
|
44
49
|
postMessageToSDK({ type: "${UnitMessage.UNIT_REQUEST_OPEN_LINK}", details: e.detail })
|
|
45
50
|
});
|
|
46
51
|
`,
|
|
52
|
+
unitRequestDownload: `
|
|
53
|
+
window.addEventListener("${UnitMessage.UNIT_REQUEST_DOWNLOAD}", (e) => {
|
|
54
|
+
postMessageToSDK({ type: "${UnitMessage.UNIT_REQUEST_DOWNLOAD}", details: e.detail })
|
|
55
|
+
});
|
|
56
|
+
`,
|
|
47
57
|
cardStatusChange: `
|
|
48
58
|
window.addEventListener("${CardMessage.CARD_STATUS_CHANGED}", (e) => {
|
|
49
59
|
const response = e.detail
|
|
@@ -55,10 +65,16 @@ export const LISTENERS = {
|
|
|
55
65
|
});
|
|
56
66
|
`
|
|
57
67
|
};
|
|
58
|
-
export const
|
|
68
|
+
export const DISPATCH_RENDERING_EVENT = `
|
|
59
69
|
const dispatchRenderingEvent = (details) => {
|
|
60
70
|
const event = new CustomEvent("${UnitMessage.UNIT_REQUEST_RENDERING}",{ detail: JSON.parse(details) })
|
|
61
71
|
window.dispatchEvent(event)
|
|
62
72
|
}
|
|
63
73
|
`;
|
|
74
|
+
export const DISPATCH_REQUEST_REFRESH = `
|
|
75
|
+
const dispatchRefreshEvent = (details) => {
|
|
76
|
+
const event = new CustomEvent("${UnitMessage.UNIT_REQUEST_REFRESH}",{ detail: JSON.parse(details) })
|
|
77
|
+
window.dispatchEvent(event)
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
64
80
|
//# sourceMappingURL=bodyScript.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CardMessage","PageMessage","UnitMessage","POST_MESSAGE_TO_SDK","POST_PAGE_HEIGHT","PAGE_HEIGHT","LISTENERS","isPageLoaded","PAGE_LOADED","requestRendering","UNIT_REQUEST_RENDERING","onLoad","UNIT_ON_LOAD","requestCloseFlow","UNIT_REQUEST_CLOSE_FLOW","requestOpenLink","UNIT_REQUEST_OPEN_LINK","cardStatusChange","CARD_STATUS_CHANGED","
|
|
1
|
+
{"version":3,"names":["CardMessage","PageMessage","UnitMessage","POST_MESSAGE_TO_SDK","POST_PAGE_HEIGHT","PAGE_HEIGHT","LISTENERS","isPageLoaded","PAGE_LOADED","requestRendering","UNIT_REQUEST_RENDERING","requestRefresh","UNIT_REQUEST_REFRESH","onLoad","UNIT_ON_LOAD","requestCloseFlow","UNIT_REQUEST_CLOSE_FLOW","requestOpenLink","UNIT_REQUEST_OPEN_LINK","unitRequestDownload","UNIT_REQUEST_DOWNLOAD","cardStatusChange","CARD_STATUS_CHANGED","DISPATCH_RENDERING_EVENT","DISPATCH_REQUEST_REFRESH"],"sources":["bodyScript.ts"],"sourcesContent":["import { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { PageMessage } from '../../messages/webMessages/pageMessage';\nimport { UnitMessage } from '../../messages/webMessages/unitMessages';\n\nexport const POST_MESSAGE_TO_SDK = `\n const postMessageToSDK = (message) => {\n if ('ReactNativeWebView' in window) {\n const messageString = JSON.stringify(message)\n window['ReactNativeWebView'].postMessage(messageString)\n }\n }\n`;\n\nexport const POST_PAGE_HEIGHT = `\n const postHeight = () => {\n setTimeout(() => {\n const height = window.document.documentElement.getBoundingClientRect().height\n postMessageToSDK({ type: \"${PageMessage.PAGE_HEIGHT}\", details: { height } })\n })\n }\n`;\n\nexport const LISTENERS = {\n isPageLoaded: `\n window.addEventListener('DOMContentLoaded', e => {\n postMessageToSDK({ type: \"${PageMessage.PAGE_LOADED}\" })\n });\n `,\n requestRendering: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_RENDERING}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_RENDERING}\", details: { data: e.detail }})\n });\n `,\n requestRefresh: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_REFRESH}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_REFRESH}\", details: e.detail })\n });\n `,\n onLoad: `\n window.addEventListener(\"${UnitMessage.UNIT_ON_LOAD}\", (e) => {\n postHeight()\n postMessageToSDK({ type: \"${UnitMessage.UNIT_ON_LOAD}\", details: e.detail })\n });\n `,\n requestCloseFlow: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_CLOSE_FLOW}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_CLOSE_FLOW}\" })\n });\n `,\n requestOpenLink: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_OPEN_LINK}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_OPEN_LINK}\", details: e.detail })\n });\n `,\n unitRequestDownload: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_DOWNLOAD}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_DOWNLOAD}\", details: e.detail })\n });\n `,\n cardStatusChange: `\n window.addEventListener(\"${CardMessage.CARD_STATUS_CHANGED}\", (e) => {\n const response = e.detail\n response.then((data) => {\n postMessageToSDK({ type: \"${CardMessage.CARD_STATUS_CHANGED}\", details: { card: JSON.stringify(data.data) }})\n }).catch((e) => {\n console.log(e)\n })\n });\n `\n};\n\nexport const DISPATCH_RENDERING_EVENT = `\n const dispatchRenderingEvent = (details) => {\n const event = new CustomEvent(\"${UnitMessage.UNIT_REQUEST_RENDERING}\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n`;\n\nexport const DISPATCH_REQUEST_REFRESH = `\n const dispatchRefreshEvent = (details) => {\n const event = new CustomEvent(\"${UnitMessage.UNIT_REQUEST_REFRESH}\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n`;\n"],"mappings":"AAAA,SAASA,WAAT,QAA4B,wCAA5B;AACA,SAASC,WAAT,QAA4B,wCAA5B;AACA,SAASC,WAAT,QAA4B,yCAA5B;AAEA,OAAO,MAAMC,mBAAmB,GAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,CAPO;AASP,OAAO,MAAMC,gBAAgB,GAAI;AACjC;AACA;AACA;AACA,kCAAkCH,WAAW,CAACI,WAAY;AAC1D;AACA;AACA,CAPO;AASP,OAAO,MAAMC,SAAS,GAAG;EACvBC,YAAY,EAAG;AACjB;AACA,kCAAkCN,WAAW,CAACO,WAAY;AAC1D;AACA,GALyB;EAMvBC,gBAAgB,EAAG;AACrB,+BAA+BP,WAAW,CAACQ,sBAAuB;AAClE,kCAAkCR,WAAW,CAACQ,sBAAuB;AACrE;AACA,GAVyB;EAWvBC,cAAc,EAAG;AACnB,+BAA+BT,WAAW,CAACU,oBAAqB;AAChE,kCAAkCV,WAAW,CAACU,oBAAqB;AACnE;AACA,GAfyB;EAgBvBC,MAAM,EAAG;AACX,+BAA+BX,WAAW,CAACY,YAAa;AACxD;AACA,kCAAkCZ,WAAW,CAACY,YAAa;AAC3D;AACA,GArByB;EAsBvBC,gBAAgB,EAAG;AACrB,+BAA+Bb,WAAW,CAACc,uBAAwB;AACnE,kCAAkCd,WAAW,CAACc,uBAAwB;AACtE;AACA,GA1ByB;EA2BvBC,eAAe,EAAG;AACpB,+BAA+Bf,WAAW,CAACgB,sBAAuB;AAClE,kCAAkChB,WAAW,CAACgB,sBAAuB;AACrE;AACA,GA/ByB;EAgCvBC,mBAAmB,EAAG;AACxB,+BAA+BjB,WAAW,CAACkB,qBAAsB;AACjE,kCAAkClB,WAAW,CAACkB,qBAAsB;AACpE;AACA,GApCyB;EAqCvBC,gBAAgB,EAAG;AACrB,+BAA+BrB,WAAW,CAACsB,mBAAoB;AAC/D;AACA;AACA,oCAAoCtB,WAAW,CAACsB,mBAAoB;AACpE;AACA;AACA;AACA;AACA;AA9CyB,CAAlB;AAiDP,OAAO,MAAMC,wBAAwB,GAAI;AACzC;AACA,qCAAqCrB,WAAW,CAACQ,sBAAuB;AACxE;AACA;AACA,CALO;AAOP,OAAO,MAAMc,wBAAwB,GAAI;AACzC;AACA,qCAAqCtB,WAAW,CAACU,oBAAqB;AACtE;AACA;AACA,CALO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["bookPayment.types.ts"],"sourcesContent":["import type { Tags, Relationship } from
|
|
1
|
+
{"version":3,"names":[],"sources":["bookPayment.types.ts"],"sourcesContent":["import type { Tags, Relationship } from './types';\n\ntype BookPaymentStatus = 'Sent' | 'Rejected'\n\nexport type UNBookPaymentData = {\n type: 'bookPayment',\n id: string,\n attributes: {\n createdAt: string | Date,\n status: BookPaymentStatus,\n reason: string,\n direction: 'Debit' | 'Credit',\n description: string,\n transactionSummaryOverride?: string,\n amount: string,\n tags: Tags,\n },\n relationships: {\n account: Relationship,\n customer?: Relationship,\n customers?: Relationship,\n counterpartyAccount: Relationship,\n counterpartyCustomer: Relationship,\n transaction: Relationship,\n recurringPayment: Relationship\n }\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["card.types.ts"],"sourcesContent":["import type { Address, FullName, Limits, Relationship, Tags } from
|
|
1
|
+
{"version":3,"names":[],"sources":["card.types.ts"],"sourcesContent":["import type { Address, FullName, Limits, Relationship, Tags } from './types';\n\nexport type UNCardData = IndividualDebitCard | BusinessDebitCard\n\ntype CardStatus = 'Active' | 'Inactive' | 'Stolen' | 'Lost' | 'Frozen' | 'ClosedByCustomer' | 'SuspectedFraud'\n\nexport type IndividualDebitCard = {\n id: string,\n type: 'individualDebitCard' | 'individualVirtualDebitCard',\n attributes: {\n createdAt: string,\n last4Digits: string,\n expirationDate: string,\n status: CardStatus,\n shippingAddress?: Address, /* not exists in virtual card */\n updatedAt?: string,\n design?: string,\n additionalEmbossedText?: string,\n idempotencyKey?: string,\n tags?: Tags,\n limits?: Limits,\n printOnlyBusinessName?: boolean\n },\n relationships: {\n account: Relationship,\n customer: Relationship\n }\n}\n\nexport type BusinessDebitCard = {\n id: string,\n type: 'businessDebitCard' | 'businessVirtualDebitCard',\n attributes: {\n fullName: FullName,\n dateOfBirth: string,\n address: Address,\n shippingAddress?: Address,\n phone: string,\n email: string,\n createdAt: string,\n last4Digits: string,\n expirationDate: string,\n status: CardStatus,\n updatedAt?: string,\n ssn?: string,\n passport?: string,\n nationality?: string,\n design?: string,\n additionalEmbossedText?: string,\n idempotencyKey?: string,\n tags?: Record<string, string>\n limits?: Limits,\n printOnlyBusinessName?: boolean\n },\n relationships: {\n account: Relationship,\n customer: Relationship\n }\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './bookPayment.types';\nexport * from './card.types';\n"],"mappings":"AAAA,cAAc,qBAAd;AACA,cAAc,cAAd"}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './bookPayment.types';\nexport * from './card.types';\nexport * from './onLoadResponse.types';\n"],"mappings":"AAAA,cAAc,qBAAd;AACA,cAAc,cAAd;AACA,cAAc,wBAAd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["onLoadResponse.types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { UNCardData } from '../sharedTypes';\n\nexport type SuccessResponseUnitOnLoad = {\n /*\n Object since the current response data types from 'Activities' and 'BookPayment' do not have documentation.\n When things are determined, we may update it\n */\n data: UNCardData | Object,\n included: [Object],\n errors: null\n}\n\nexport type ErrorResponseUnitOnLoad = {\n errors: [\n {\n status: string,\n title: string,\n detail?: string,\n details?: string,\n meta?: Record<string, string>\n }\n ]\n}\nexport type ResponseUnitOnLoadEvent =\n | SuccessResponseUnitOnLoad\n | ErrorResponseUnitOnLoad\n"],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export let UNWalletCode;
|
|
2
|
+
|
|
3
|
+
(function (UNWalletCode) {
|
|
4
|
+
UNWalletCode["Apple"] = "ApplePayPushProvision";
|
|
5
|
+
UNWalletCode["Google"] = "GooglePayPushProvision";
|
|
6
|
+
})(UNWalletCode || (UNWalletCode = {}));
|
|
7
|
+
|
|
8
|
+
export let UNWalletName;
|
|
9
|
+
|
|
10
|
+
(function (UNWalletName) {
|
|
11
|
+
UNWalletName["Apple"] = "APPLE";
|
|
12
|
+
UNWalletName["Google"] = "GOOGLE";
|
|
13
|
+
})(UNWalletName || (UNWalletName = {}));
|
|
14
|
+
//# sourceMappingURL=wallet.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UNWalletCode","UNWalletName"],"sources":["wallet.types.ts"],"sourcesContent":["import type { CardAddToWalletStatus } from 'src/messages/nativeMessages/cardMessage';\n\nexport enum UNWalletCode {\n Apple = 'ApplePayPushProvision',\n Google = 'GooglePayPushProvision',\n}\n\nexport enum UNWalletName {\n Apple = 'APPLE',\n Google = 'GOOGLE',\n}\n\nexport interface UNWallet {\n name: string;\n code: string;\n status: CardAddToWalletStatus\n}\n"],"mappings":"AAEA,WAAYA,YAAZ;;WAAYA,Y;EAAAA,Y;EAAAA,Y;GAAAA,Y,KAAAA,Y;;AAKZ,WAAYC,YAAZ;;WAAYA,Y;EAAAA,Y;EAAAA,Y;GAAAA,Y,KAAAA,Y"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import EventBus from '../helpers/EventBus';
|
|
2
|
-
import {
|
|
2
|
+
import { SDKMessage } from '../messages/nativeMessages/sdkMessage';
|
|
3
3
|
import { UnitSDK, UNIT_SCRIPT_URL } from './UnitSdkManager';
|
|
4
4
|
let isLoadingScript = false;
|
|
5
5
|
/** globalUnitScript is exported ONLY to our project components **/
|
|
@@ -20,9 +20,10 @@ export const fetchUnitScript = async () => {
|
|
|
20
20
|
const unitScript = await unitScriptRes.text();
|
|
21
21
|
|
|
22
22
|
if (unitScript) {
|
|
23
|
-
|
|
23
|
+
const scriptFetchData = {
|
|
24
24
|
unitScript
|
|
25
|
-
}
|
|
25
|
+
};
|
|
26
|
+
EventBus.Instance.event(SDKMessage.IS_SCRIPT_FETCHED, scriptFetchData);
|
|
26
27
|
globalUnitScript = unitScript;
|
|
27
28
|
}
|
|
28
29
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventBus","
|
|
1
|
+
{"version":3,"names":["EventBus","SDKMessage","UnitSDK","UNIT_SCRIPT_URL","isLoadingScript","globalUnitScript","fetchUnitScript","env","getEnv","unitScriptRes","fetch","unitScript","text","scriptFetchData","Instance","event","IS_SCRIPT_FETCHED","e","console","log"],"sources":["UnitSdk.api.ts"],"sourcesContent":["import EventBus from '../helpers/EventBus';\nimport { SDKMessage, SdkScriptFetched } from '../messages/nativeMessages/sdkMessage';\nimport { UnitSDK, UNIT_SCRIPT_URL } from './UnitSdkManager';\n\nlet isLoadingScript = false;\n\n/** globalUnitScript is exported ONLY to our project components **/\nexport let globalUnitScript = '';\n\nexport const fetchUnitScript = async () => {\n const env = UnitSDK.getEnv();\n if (isLoadingScript || globalUnitScript || !env) {\n // init function is called and success OR in progress\n return null;\n }\n isLoadingScript = true;\n try {\n const unitScriptRes = await fetch(UNIT_SCRIPT_URL[env]);\n const unitScript = await unitScriptRes.text();\n if (unitScript) {\n const scriptFetchData: SdkScriptFetched = { unitScript };\n EventBus.Instance.event(SDKMessage.IS_SCRIPT_FETCHED, scriptFetchData);\n globalUnitScript = unitScript;\n }\n return null;\n } catch (e) {\n console.log(e);\n return null;\n } finally {\n isLoadingScript = false;\n }\n};\n"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,qBAArB;AACA,SAASC,UAAT,QAA6C,uCAA7C;AACA,SAASC,OAAT,EAAkBC,eAAlB,QAAyC,kBAAzC;AAEA,IAAIC,eAAe,GAAG,KAAtB;AAEA;;AACA,OAAO,IAAIC,gBAAgB,GAAG,EAAvB;AAEP,OAAO,MAAMC,eAAe,GAAG,YAAY;EACzC,MAAMC,GAAG,GAAGL,OAAO,CAACM,MAAR,EAAZ;;EACA,IAAIJ,eAAe,IAAIC,gBAAnB,IAAuC,CAACE,GAA5C,EAAiD;IAC/C;IACA,OAAO,IAAP;EACD;;EACDH,eAAe,GAAG,IAAlB;;EACA,IAAI;IACF,MAAMK,aAAa,GAAG,MAAMC,KAAK,CAACP,eAAe,CAACI,GAAD,CAAhB,CAAjC;IACA,MAAMI,UAAU,GAAG,MAAMF,aAAa,CAACG,IAAd,EAAzB;;IACA,IAAID,UAAJ,EAAgB;MACd,MAAME,eAAiC,GAAG;QAAEF;MAAF,CAA1C;MACAX,QAAQ,CAACc,QAAT,CAAkBC,KAAlB,CAAwBd,UAAU,CAACe,iBAAnC,EAAsDH,eAAtD;MACAR,gBAAgB,GAAGM,UAAnB;IACD;;IACD,OAAO,IAAP;EACD,CATD,CASE,OAAOM,CAAP,EAAU;IACVC,OAAO,CAACC,GAAR,CAAYF,CAAZ;IACA,OAAO,IAAP;EACD,CAZD,SAYU;IACRb,eAAe,GAAG,KAAlB;EACD;AACF,CAtBM"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
|
|
3
3
|
import EventBus from '../helpers/EventBus';
|
|
4
|
-
import {
|
|
4
|
+
import { SDKMessage } from '../messages/nativeMessages/sdkMessage';
|
|
5
5
|
import { fetchUnitScript } from './UnitSdk.api';
|
|
6
6
|
export let UNEnvironment;
|
|
7
7
|
|
|
@@ -20,17 +20,23 @@ _defineProperty(UnitSDK, "env", void 0);
|
|
|
20
20
|
|
|
21
21
|
_defineProperty(UnitSDK, "theme", void 0);
|
|
22
22
|
|
|
23
|
+
_defineProperty(UnitSDK, "signedNonce", void 0);
|
|
24
|
+
|
|
23
25
|
_defineProperty(UnitSDK, "init", async (env, theme) => {
|
|
24
26
|
try {
|
|
25
27
|
UnitSDK.env = env;
|
|
26
28
|
UnitSDK.theme = theme;
|
|
27
29
|
await fetchUnitScript();
|
|
28
|
-
EventBus.Instance.event(
|
|
30
|
+
EventBus.Instance.event(SDKMessage.IS_SDK_INITIALIZED, {});
|
|
29
31
|
} catch (e) {
|
|
30
32
|
console.log(e);
|
|
31
33
|
}
|
|
32
34
|
});
|
|
33
35
|
|
|
36
|
+
_defineProperty(UnitSDK, "setSignedNonce", signedNonce => {
|
|
37
|
+
UnitSDK.signedNonce = signedNonce;
|
|
38
|
+
});
|
|
39
|
+
|
|
34
40
|
_defineProperty(UnitSDK, "getEnv", () => {
|
|
35
41
|
return UnitSDK.env;
|
|
36
42
|
});
|
|
@@ -38,4 +44,8 @@ _defineProperty(UnitSDK, "getEnv", () => {
|
|
|
38
44
|
_defineProperty(UnitSDK, "getTheme", () => {
|
|
39
45
|
return UnitSDK.theme;
|
|
40
46
|
});
|
|
47
|
+
|
|
48
|
+
_defineProperty(UnitSDK, "getSignedNonce", () => {
|
|
49
|
+
return UnitSDK.signedNonce;
|
|
50
|
+
});
|
|
41
51
|
//# sourceMappingURL=UnitSdkManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventBus","
|
|
1
|
+
{"version":3,"names":["EventBus","SDKMessage","fetchUnitScript","UNEnvironment","UNIT_SCRIPT_URL","sandbox","production","UnitSDK","env","theme","Instance","event","IS_SDK_INITIALIZED","e","console","log","signedNonce"],"sources":["UnitSdkManager.ts"],"sourcesContent":["import EventBus from '../helpers/EventBus';\nimport { SDKMessage } from '../messages/nativeMessages/sdkMessage';\nimport { fetchUnitScript } from './UnitSdk.api';\n\nexport enum UNEnvironment {\n sandbox = 'sandbox',\n production = 'production'\n}\n\nexport const UNIT_SCRIPT_URL = {\n [UNEnvironment.sandbox]: 'https://ui.s.unit.sh/components.js',\n [UNEnvironment.production]: 'https://ui.unit.co/components.js'\n};\nexport class UnitSDK {\n protected static env?: UNEnvironment;\n protected static theme?: string;\n protected static signedNonce?: string;\n\n public static init = async (env: UNEnvironment, theme?: string) => {\n try {\n this.env = env;\n this.theme = theme;\n await fetchUnitScript();\n EventBus.Instance.event(SDKMessage.IS_SDK_INITIALIZED, {});\n } catch (e) {\n console.log(e);\n }\n };\n\n public static setSignedNonce = (signedNonce: string) => {\n this.signedNonce = signedNonce;\n };\n\n public static getEnv = () => {\n return this.env;\n };\n\n public static getTheme = () => {\n return this.theme;\n };\n\n public static getSignedNonce = () => {\n return this.signedNonce;\n };\n}\n"],"mappings":";;AAAA,OAAOA,QAAP,MAAqB,qBAArB;AACA,SAASC,UAAT,QAA2B,uCAA3B;AACA,SAASC,eAAT,QAAgC,eAAhC;AAEA,WAAYC,aAAZ;;WAAYA,a;EAAAA,a;EAAAA,a;GAAAA,a,KAAAA,a;;AAKZ,OAAO,MAAMC,eAAe,GAAG;EAC7B,CAACD,aAAa,CAACE,OAAf,GAAyB,oCADI;EAE7B,CAACF,aAAa,CAACG,UAAf,GAA4B;AAFC,CAAxB;AAIP,OAAO,MAAMC,OAAN,CAAc;;gBAARA,O;;gBAAAA,O;;gBAAAA,O;;gBAAAA,O,UAKU,OAAOC,GAAP,EAA2BC,KAA3B,KAA8C;EACjE,IAAI;IANKF,OAOP,CAAKC,GAAL,GAAWA,GAAX;IAPOD,OAQP,CAAKE,KAAL,GAAaA,KAAb;IACA,MAAMP,eAAe,EAArB;IACAF,QAAQ,CAACU,QAAT,CAAkBC,KAAlB,CAAwBV,UAAU,CAACW,kBAAnC,EAAuD,EAAvD;EACD,CALD,CAKE,OAAOC,CAAP,EAAU;IACVC,OAAO,CAACC,GAAR,CAAYF,CAAZ;EACD;AACF,C;;gBAdUN,O,oBAgBqBS,WAAD,IAAyB;EAhB7CT,OAiBT,CAAKS,WAAL,GAAmBA,WAAnB;AACD,C;;gBAlBUT,O,YAoBY,MAAM;EAC3B,OArBSA,OAqBF,CAAKC,GAAZ;AACD,C;;gBAtBUD,O,cAwBc,MAAM;EAC7B,OAzBSA,OAyBF,CAAKE,KAAZ;AACD,C;;gBA1BUF,O,oBA4BoB,MAAM;EACnC,OA7BSA,OA6BF,CAAKS,WAAZ;AACD,C"}
|