@rownd/react-native 0.1.1
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 +21 -0
- package/README.md +213 -0
- package/android/build.gradle +59 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/reactnative/ReactNativePackage.java +22 -0
- package/android/src/main/java/com/reactnative/ReactNativeViewManager.java +31 -0
- package/ios/ReactNative.xcodeproj/project.pbxproj +282 -0
- package/ios/ReactNative.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/ios/ReactNativeViewManager.m +34 -0
- package/lib/commonjs/assets/images/checkmark--filled.svg +12 -0
- package/lib/commonjs/assets/images/email-verify-waiting.svg +36 -0
- package/lib/commonjs/assets/images/phone-verify-waiting.svg +26 -0
- package/lib/commonjs/components/AuthenticatedComponent.js +35 -0
- package/lib/commonjs/components/AuthenticatedComponent.js.map +1 -0
- package/lib/commonjs/components/AutoSigninDialog.js +119 -0
- package/lib/commonjs/components/AutoSigninDialog.js.map +1 -0
- package/lib/commonjs/components/DefaultContext.js +269 -0
- package/lib/commonjs/components/DefaultContext.js.map +1 -0
- package/lib/commonjs/components/GlobalContext.js +340 -0
- package/lib/commonjs/components/GlobalContext.js.map +1 -0
- package/lib/commonjs/components/RowndComponents.js +29 -0
- package/lib/commonjs/components/RowndComponents.js.map +1 -0
- package/lib/commonjs/components/RowndProvider.js +55 -0
- package/lib/commonjs/components/RowndProvider.js.map +1 -0
- package/lib/commonjs/components/SignIn.js +622 -0
- package/lib/commonjs/components/SignIn.js.map +1 -0
- package/lib/commonjs/data/actions.js +26 -0
- package/lib/commonjs/data/actions.js.map +1 -0
- package/lib/commonjs/hooks/api.js +157 -0
- package/lib/commonjs/hooks/api.js.map +1 -0
- package/lib/commonjs/hooks/debounce.js +38 -0
- package/lib/commonjs/hooks/debounce.js.map +1 -0
- package/lib/commonjs/hooks/fingerprint.js +176 -0
- package/lib/commonjs/hooks/fingerprint.js.map +1 -0
- package/lib/commonjs/hooks/index.js +48 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/hooks/interval.js +31 -0
- package/lib/commonjs/hooks/interval.js.map +1 -0
- package/lib/commonjs/hooks/nav.js +39 -0
- package/lib/commonjs/hooks/nav.js.map +1 -0
- package/lib/commonjs/hooks/rownd.js +163 -0
- package/lib/commonjs/hooks/rownd.js.map +1 -0
- package/lib/commonjs/index.js +32 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/index.tsx.bak +26 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils/config.js +28 -0
- package/lib/commonjs/utils/config.js.map +1 -0
- package/lib/commonjs/utils/events.js +57 -0
- package/lib/commonjs/utils/events.js.map +1 -0
- package/lib/commonjs/utils/form.js +46 -0
- package/lib/commonjs/utils/form.js.map +1 -0
- package/lib/commonjs/utils/queue.js +117 -0
- package/lib/commonjs/utils/queue.js.map +1 -0
- package/lib/commonjs/utils/storage.js +15 -0
- package/lib/commonjs/utils/storage.js.map +1 -0
- package/lib/commonjs/utils/tailwind.js +17 -0
- package/lib/commonjs/utils/tailwind.js.map +1 -0
- package/lib/commonjs/utils/tokens.js +35 -0
- package/lib/commonjs/utils/tokens.js.map +1 -0
- package/lib/commonjs/utils/user-data.js +21 -0
- package/lib/commonjs/utils/user-data.js.map +1 -0
- package/lib/module/assets/images/checkmark--filled.svg +12 -0
- package/lib/module/assets/images/email-verify-waiting.svg +36 -0
- package/lib/module/assets/images/phone-verify-waiting.svg +26 -0
- package/lib/module/components/AuthenticatedComponent.js +24 -0
- package/lib/module/components/AuthenticatedComponent.js.map +1 -0
- package/lib/module/components/AutoSigninDialog.js +100 -0
- package/lib/module/components/AutoSigninDialog.js.map +1 -0
- package/lib/module/components/DefaultContext.js +244 -0
- package/lib/module/components/DefaultContext.js.map +1 -0
- package/lib/module/components/GlobalContext.js +318 -0
- package/lib/module/components/GlobalContext.js.map +1 -0
- package/lib/module/components/RowndComponents.js +14 -0
- package/lib/module/components/RowndComponents.js.map +1 -0
- package/lib/module/components/RowndProvider.js +39 -0
- package/lib/module/components/RowndProvider.js.map +1 -0
- package/lib/module/components/SignIn.js +593 -0
- package/lib/module/components/SignIn.js.map +1 -0
- package/lib/module/data/actions.js +19 -0
- package/lib/module/data/actions.js.map +1 -0
- package/lib/module/hooks/api.js +138 -0
- package/lib/module/hooks/api.js.map +1 -0
- package/lib/module/hooks/debounce.js +29 -0
- package/lib/module/hooks/debounce.js.map +1 -0
- package/lib/module/hooks/fingerprint.js +157 -0
- package/lib/module/hooks/fingerprint.js.map +1 -0
- package/lib/module/hooks/index.js +7 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/interval.js +23 -0
- package/lib/module/hooks/interval.js.map +1 -0
- package/lib/module/hooks/nav.js +30 -0
- package/lib/module/hooks/nav.js.map +1 -0
- package/lib/module/hooks/rownd.js +148 -0
- package/lib/module/hooks/rownd.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.tsx.bak +26 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/config.js +17 -0
- package/lib/module/utils/config.js.map +1 -0
- package/lib/module/utils/events.js +45 -0
- package/lib/module/utils/events.js.map +1 -0
- package/lib/module/utils/form.js +34 -0
- package/lib/module/utils/form.js.map +1 -0
- package/lib/module/utils/queue.js +109 -0
- package/lib/module/utils/queue.js.map +1 -0
- package/lib/module/utils/storage.js +6 -0
- package/lib/module/utils/storage.js.map +1 -0
- package/lib/module/utils/tailwind.js +5 -0
- package/lib/module/utils/tailwind.js.map +1 -0
- package/lib/module/utils/tokens.js +24 -0
- package/lib/module/utils/tokens.js.map +1 -0
- package/lib/module/utils/user-data.js +14 -0
- package/lib/module/utils/user-data.js.map +1 -0
- package/lib/typescript/example2/App.d.ts +11 -0
- package/lib/typescript/src/components/AuthenticatedComponent.d.ts +7 -0
- package/lib/typescript/src/components/AutoSigninDialog.d.ts +1 -0
- package/lib/typescript/src/components/DefaultContext.d.ts +12 -0
- package/lib/typescript/src/components/GlobalContext.d.ts +111 -0
- package/lib/typescript/src/components/RowndComponents.d.ts +1 -0
- package/lib/typescript/src/components/RowndProvider.d.ts +8 -0
- package/lib/typescript/src/components/SignIn.d.ts +1 -0
- package/lib/typescript/src/data/actions.d.ts +20 -0
- package/lib/typescript/src/hooks/api.d.ts +12 -0
- package/lib/typescript/src/hooks/debounce.d.ts +5 -0
- package/lib/typescript/src/hooks/fingerprint.d.ts +12 -0
- package/lib/typescript/src/hooks/index.d.ts +6 -0
- package/lib/typescript/src/hooks/interval.d.ts +2 -0
- package/lib/typescript/src/hooks/nav.d.ts +6 -0
- package/lib/typescript/src/hooks/rownd.d.ts +37 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/types.d.ts +26 -0
- package/lib/typescript/src/utils/config.d.ts +18 -0
- package/lib/typescript/src/utils/events.d.ts +22 -0
- package/lib/typescript/src/utils/form.d.ts +17 -0
- package/lib/typescript/src/utils/queue.d.ts +21 -0
- package/lib/typescript/src/utils/storage.d.ts +3 -0
- package/lib/typescript/src/utils/tailwind.d.ts +2 -0
- package/lib/typescript/src/utils/tokens.d.ts +4 -0
- package/lib/typescript/src/utils/user-data.d.ts +3 -0
- package/lib/typescript/tailwind.config.d.ts +10 -0
- package/package.json +177 -0
- package/react-native.podspec +19 -0
- package/src/assets/images/checkmark--filled.svg +12 -0
- package/src/assets/images/email-verify-waiting.svg +36 -0
- package/src/assets/images/phone-verify-waiting.svg +26 -0
- package/src/components/AuthenticatedComponent.tsx +30 -0
- package/src/components/AutoSigninDialog.tsx +125 -0
- package/src/components/DefaultContext.tsx +278 -0
- package/src/components/GlobalContext.tsx +485 -0
- package/src/components/RowndComponents.tsx +21 -0
- package/src/components/RowndProvider.tsx +56 -0
- package/src/components/SignIn.tsx +770 -0
- package/src/data/actions.ts +21 -0
- package/src/hooks/api.ts +163 -0
- package/src/hooks/debounce.ts +36 -0
- package/src/hooks/fingerprint.ts +217 -0
- package/src/hooks/index.ts +7 -0
- package/src/hooks/interval.ts +25 -0
- package/src/hooks/nav.tsx +29 -0
- package/src/hooks/rownd.ts +184 -0
- package/src/index.tsx +6 -0
- package/src/index.tsx.bak +26 -0
- package/src/types.ts +27 -0
- package/src/utils/config.ts +36 -0
- package/src/utils/events.ts +54 -0
- package/src/utils/form.tsx +64 -0
- package/src/utils/queue.ts +75 -0
- package/src/utils/storage.ts +7 -0
- package/src/utils/tailwind.ts +6 -0
- package/src/utils/tokens.ts +26 -0
- package/src/utils/user-data.ts +15 -0
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.GlobalContextProvider = exports.GlobalContext = void 0;
|
|
7
|
+
exports.useGlobalContext = useGlobalContext;
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
|
|
11
|
+
var _isEqual = _interopRequireDefault(require("lodash-es/isEqual"));
|
|
12
|
+
|
|
13
|
+
var _pick = _interopRequireDefault(require("lodash-es/pick"));
|
|
14
|
+
|
|
15
|
+
var _jwtDecode = _interopRequireDefault(require("jwt-decode"));
|
|
16
|
+
|
|
17
|
+
var _storage = _interopRequireDefault(require("../utils/storage"));
|
|
18
|
+
|
|
19
|
+
var _events = require("../utils/events");
|
|
20
|
+
|
|
21
|
+
var _actions = require("../data/actions");
|
|
22
|
+
|
|
23
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
+
|
|
27
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
|
+
|
|
29
|
+
const GlobalContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
30
|
+
exports.GlobalContext = GlobalContext;
|
|
31
|
+
|
|
32
|
+
function handleStateInit(initialState) {
|
|
33
|
+
if (_storage.default.contains('state')) {
|
|
34
|
+
const state = JSON.parse(_storage.default.getString('state') || '{}');
|
|
35
|
+
return { ...initialState,
|
|
36
|
+
...state
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return initialState;
|
|
41
|
+
} // async function updateStorage(newState: any) {
|
|
42
|
+
// const oldState = JSON.parse(await storage.getItem('state') || '{}');
|
|
43
|
+
// if (!isEqual(oldState, newState)) {
|
|
44
|
+
// console.log('writing new state', newState);
|
|
45
|
+
// await storage.setItem('state', JSON.stringify(newState));
|
|
46
|
+
// }
|
|
47
|
+
// }
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
const GlobalContextProvider = _ref => {
|
|
51
|
+
let {
|
|
52
|
+
children,
|
|
53
|
+
config
|
|
54
|
+
} = _ref;
|
|
55
|
+
const initialState = {
|
|
56
|
+
is_initializing: false,
|
|
57
|
+
is_container_visible: false,
|
|
58
|
+
use_modal: false,
|
|
59
|
+
nav: {
|
|
60
|
+
current_route: '/',
|
|
61
|
+
route_trigger: '',
|
|
62
|
+
event_id: '',
|
|
63
|
+
section: '',
|
|
64
|
+
options: {}
|
|
65
|
+
},
|
|
66
|
+
user: {
|
|
67
|
+
data: {
|
|
68
|
+
email: null
|
|
69
|
+
},
|
|
70
|
+
needs_refresh: false,
|
|
71
|
+
redacted: []
|
|
72
|
+
},
|
|
73
|
+
auth: {
|
|
74
|
+
access_token: null,
|
|
75
|
+
refresh_token: null,
|
|
76
|
+
app_id: null
|
|
77
|
+
},
|
|
78
|
+
app: {
|
|
79
|
+
schema: null,
|
|
80
|
+
config: null
|
|
81
|
+
},
|
|
82
|
+
local_acls: null,
|
|
83
|
+
is_saving_user_data: false,
|
|
84
|
+
config
|
|
85
|
+
}; // TODO: There's a better way to do this where we have a set of rules that watch/apply to the state as it changes
|
|
86
|
+
// function dispatchExternalEvents(prevState: GlobalState, nextState: GlobalState) {
|
|
87
|
+
// // Log in, get new token, load previous auth state, etc
|
|
88
|
+
// if (prevState.auth.access_token !== nextState.auth.access_token) {
|
|
89
|
+
// events.dispatch(EventType.AUTH, {
|
|
90
|
+
// access_token: nextState.auth.access_token,
|
|
91
|
+
// user_id: nextState.user.data.id,
|
|
92
|
+
// app_id: nextState.auth.app_id,
|
|
93
|
+
// });
|
|
94
|
+
// }
|
|
95
|
+
// // User data changes. Also, fire the event when ACLs change since this affects the data
|
|
96
|
+
// // that the application can see.
|
|
97
|
+
// if (!isEqual(prevState.local_acls, nextState.local_acls) ||
|
|
98
|
+
// !isEqual(prevState.user.data, nextState.user.data)) {
|
|
99
|
+
// events.dispatch(EventType.USER_DATA, {
|
|
100
|
+
// // The data is filtered on the local_acls
|
|
101
|
+
// data: redactUserDataWithAcls(nextState.user.data, nextState.local_acls),
|
|
102
|
+
// });
|
|
103
|
+
// }
|
|
104
|
+
// // Log out
|
|
105
|
+
// if (nextState.auth.access_token === null) {
|
|
106
|
+
// events.dispatch(EventType.SIGN_OUT, {});
|
|
107
|
+
// }
|
|
108
|
+
// }
|
|
109
|
+
|
|
110
|
+
function mainReducer(state, action) {
|
|
111
|
+
var _decodedToken;
|
|
112
|
+
|
|
113
|
+
let decodedToken;
|
|
114
|
+
let newState; // let cachedAuth;
|
|
115
|
+
|
|
116
|
+
switch (action.type) {
|
|
117
|
+
case _actions.ActionType.SET_CONTAINER_VISIBLE:
|
|
118
|
+
newState = { ...state,
|
|
119
|
+
is_container_visible: action.payload.isVisible,
|
|
120
|
+
use_modal: action.payload.isVisible === false ? false : state.use_modal,
|
|
121
|
+
nav: { ...state.nav,
|
|
122
|
+
current_route: '/'
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
break;
|
|
126
|
+
|
|
127
|
+
case _actions.ActionType.CHANGE_ROUTE:
|
|
128
|
+
newState = { ...state,
|
|
129
|
+
nav: { ...state.nav,
|
|
130
|
+
current_route: action.payload.route,
|
|
131
|
+
route_trigger: action.payload.trigger || '',
|
|
132
|
+
event_id: action.payload.event_id,
|
|
133
|
+
options: action.payload.opts
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
break;
|
|
137
|
+
|
|
138
|
+
case _actions.ActionType.SET_SECTION:
|
|
139
|
+
newState = { ...state,
|
|
140
|
+
nav: { ...state.nav,
|
|
141
|
+
section: action.payload.section
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
break;
|
|
145
|
+
|
|
146
|
+
case _actions.ActionType.LOGIN_SUCCESS:
|
|
147
|
+
// storage.setItem('auth', JSON.stringify(action.payload));
|
|
148
|
+
decodedToken = (0, _jwtDecode.default)(action.payload.access_token); // Ensure this token is for this app
|
|
149
|
+
|
|
150
|
+
if (action.payload.app_id !== state.app.id) {
|
|
151
|
+
return { ...state
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
newState = { ...state,
|
|
156
|
+
auth: { ...state.auth,
|
|
157
|
+
access_token: action.payload.access_token,
|
|
158
|
+
refresh_token: action.payload.refresh_token,
|
|
159
|
+
app_id: action.payload.app_id,
|
|
160
|
+
is_verified_user: ((_decodedToken = decodedToken) === null || _decodedToken === void 0 ? void 0 : _decodedToken['https://auth.rownd.io/is_verified_user']) !== false // default is `true` if the attribute doesn't exist
|
|
161
|
+
|
|
162
|
+
},
|
|
163
|
+
user: { ...state.user,
|
|
164
|
+
data: { ...state.user.data,
|
|
165
|
+
id: action.payload.app_user_id
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
break;
|
|
170
|
+
|
|
171
|
+
case _actions.ActionType.SIGN_OUT:
|
|
172
|
+
// storage.removeItem('auth');
|
|
173
|
+
newState = { ...state,
|
|
174
|
+
user: {
|
|
175
|
+
data: {
|
|
176
|
+
email: null
|
|
177
|
+
},
|
|
178
|
+
redacted: []
|
|
179
|
+
},
|
|
180
|
+
auth: {
|
|
181
|
+
access_token: null,
|
|
182
|
+
refresh_token: null,
|
|
183
|
+
app_id: null
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
break;
|
|
187
|
+
|
|
188
|
+
case _actions.ActionType.REFRESH_TOKEN:
|
|
189
|
+
newState = { ...state,
|
|
190
|
+
auth: { ...state.auth,
|
|
191
|
+
access_token: action.payload.access_token,
|
|
192
|
+
refresh_token: action.payload.refresh_token
|
|
193
|
+
}
|
|
194
|
+
}; // cachedAuth = storage.getItem('auth');
|
|
195
|
+
// if (cachedAuth) {
|
|
196
|
+
// const cachedAuthObj = JSON.parse(cachedAuth);
|
|
197
|
+
// cachedAuth = {
|
|
198
|
+
// ...cachedAuthObj,
|
|
199
|
+
// ...newState.auth,
|
|
200
|
+
// };
|
|
201
|
+
// storage.setItem('auth', JSON.stringify(newState.auth));
|
|
202
|
+
// }
|
|
203
|
+
|
|
204
|
+
break;
|
|
205
|
+
|
|
206
|
+
case _actions.ActionType.LOAD_USER:
|
|
207
|
+
newState = { ...state,
|
|
208
|
+
user: { ...state.user,
|
|
209
|
+
data: { ...action.payload.data
|
|
210
|
+
},
|
|
211
|
+
redacted: action.payload.redacted
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
break;
|
|
215
|
+
|
|
216
|
+
case _actions.ActionType.UPDATE_LOCAL_ACLS:
|
|
217
|
+
newState = { ...state,
|
|
218
|
+
local_acls: { ...state.local_acls,
|
|
219
|
+
...action.payload
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
break;
|
|
223
|
+
|
|
224
|
+
case _actions.ActionType.SET_USER_DATA_FIELD:
|
|
225
|
+
// Dispatch a USER_DATA_SAVED event to satisfy event listeners when the data
|
|
226
|
+
// was not changed and no request to Rownd was ever made.
|
|
227
|
+
if (state.user.data[action.payload.field] === action.payload.value) {
|
|
228
|
+
_events.events.dispatch(_events.EventType.USER_DATA_SAVED, state.user.data);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
newState = { ...state,
|
|
232
|
+
user: { ...state.user,
|
|
233
|
+
data: { ...state.user.data,
|
|
234
|
+
[action.payload.field]: action.payload.value
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
break;
|
|
239
|
+
|
|
240
|
+
case _actions.ActionType.SET_USER_DATA:
|
|
241
|
+
// Dispatch a USER_DATA_SAVED event to satisfy event listeners when the data
|
|
242
|
+
// was not changed and no request to Rownd was ever made.
|
|
243
|
+
if ((0, _isEqual.default)((0, _pick.default)(state.user.data, Object.keys(action.payload.data)), action.payload.data)) {
|
|
244
|
+
_events.events.dispatch(_events.EventType.USER_DATA_SAVED, state.user.data);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
newState = { ...state,
|
|
248
|
+
user: { ...state.user,
|
|
249
|
+
data: { ...state.user.data,
|
|
250
|
+
...action.payload.data
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
break;
|
|
255
|
+
|
|
256
|
+
case _actions.ActionType.SET_REFRESH_USER_DATA:
|
|
257
|
+
newState = { ...state,
|
|
258
|
+
user: { ...state.user,
|
|
259
|
+
needs_refresh: action.payload.needs_refresh
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
break;
|
|
263
|
+
|
|
264
|
+
case _actions.ActionType.LOAD_STATE:
|
|
265
|
+
newState = { ...action.payload
|
|
266
|
+
};
|
|
267
|
+
break;
|
|
268
|
+
|
|
269
|
+
case _actions.ActionType.SET_IS_SAVING_USER_DATA:
|
|
270
|
+
{
|
|
271
|
+
newState = { ...state,
|
|
272
|
+
is_saving_user_data: action.payload.saving
|
|
273
|
+
};
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
case _actions.ActionType.SET_APP_CONFIG:
|
|
278
|
+
newState = { ...state,
|
|
279
|
+
app: { ...state.app,
|
|
280
|
+
...action.payload
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
break;
|
|
284
|
+
|
|
285
|
+
default:
|
|
286
|
+
newState = state;
|
|
287
|
+
} // Write state to local storage, minus a few fields
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
const persistedState = { ...newState
|
|
291
|
+
};
|
|
292
|
+
delete persistedState.config;
|
|
293
|
+
delete persistedState.nav;
|
|
294
|
+
delete persistedState.is_container_visible;
|
|
295
|
+
delete persistedState.use_modal;
|
|
296
|
+
delete persistedState.is_initializing;
|
|
297
|
+
delete persistedState.is_saving_user_data; // updateStorage(persistedState);
|
|
298
|
+
|
|
299
|
+
_storage.default.set('state', JSON.stringify(persistedState)); // Fire any events that depend on state updates
|
|
300
|
+
// dispatchExternalEvents(state, newState);
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
return newState;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
const [state, dispatch] = (0, _react.useReducer)(mainReducer, initialState, handleStateInit); // Async load cached state from storage
|
|
307
|
+
// useEffect(() => {
|
|
308
|
+
// (async () => {
|
|
309
|
+
// const existingStateStr = await storage.getItem('state');
|
|
310
|
+
// if (!existingStateStr) {
|
|
311
|
+
// return;
|
|
312
|
+
// }
|
|
313
|
+
// dispatch({
|
|
314
|
+
// type: ActionType.LOAD_STATE,
|
|
315
|
+
// payload: JSON.parse(existingStateStr),
|
|
316
|
+
// });
|
|
317
|
+
// });
|
|
318
|
+
// }, []);
|
|
319
|
+
|
|
320
|
+
const value = {
|
|
321
|
+
state,
|
|
322
|
+
dispatch
|
|
323
|
+
};
|
|
324
|
+
return /*#__PURE__*/_react.default.createElement(GlobalContext.Provider, {
|
|
325
|
+
value: value
|
|
326
|
+
}, children);
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
exports.GlobalContextProvider = GlobalContextProvider;
|
|
330
|
+
|
|
331
|
+
function useGlobalContext() {
|
|
332
|
+
const context = (0, _react.useContext)(GlobalContext);
|
|
333
|
+
|
|
334
|
+
if (context === undefined) {
|
|
335
|
+
throw new Error('useGlobalContext must be used within a GlobalContext Provider');
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
return context;
|
|
339
|
+
}
|
|
340
|
+
//# sourceMappingURL=GlobalContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GlobalContext","createContext","undefined","handleStateInit","initialState","storage","contains","state","JSON","parse","getString","GlobalContextProvider","children","config","is_initializing","is_container_visible","use_modal","nav","current_route","route_trigger","event_id","section","options","user","data","email","needs_refresh","redacted","auth","access_token","refresh_token","app_id","app","schema","local_acls","is_saving_user_data","mainReducer","action","decodedToken","newState","type","ActionType","SET_CONTAINER_VISIBLE","payload","isVisible","CHANGE_ROUTE","route","trigger","opts","SET_SECTION","LOGIN_SUCCESS","jwt_decode","id","is_verified_user","app_user_id","SIGN_OUT","REFRESH_TOKEN","LOAD_USER","UPDATE_LOCAL_ACLS","SET_USER_DATA_FIELD","field","value","events","dispatch","EventType","USER_DATA_SAVED","SET_USER_DATA","isEqual","pick","Object","keys","SET_REFRESH_USER_DATA","LOAD_STATE","SET_IS_SAVING_USER_DATA","saving","SET_APP_CONFIG","persistedState","set","stringify","useReducer","useGlobalContext","context","useContext","Error"],"sources":["GlobalContext.tsx"],"sourcesContent":["import React, { createContext, FunctionComponent } from 'react';\nimport { useReducer, useContext } from 'react';\nimport isEqual from 'lodash-es/isEqual';\nimport pick from 'lodash-es/pick';\nimport jwt_decode from 'jwt-decode';\nimport type { IConfig } from '../utils/config';\nimport storage from '../utils/storage';\nimport { events, EventType } from '../utils/events';\n\nimport { type TAction, ActionType } from '../data/actions';\n\ntype Dispatch = (action: TAction) => void;\n\nexport type GlobalState = {\n is_initializing: boolean;\n is_container_visible: boolean;\n use_modal: boolean;\n nav: {\n current_route: string;\n route_trigger: string;\n event_id: string;\n section: string;\n options?: any;\n };\n user: {\n data: {\n id?: string;\n email: string | null;\n [key: string]: any;\n };\n needs_refresh?: boolean;\n redacted: string[];\n };\n auth: {\n access_token: string | null;\n refresh_token: string | null;\n app_id: string | null;\n init_data?: Record<string, any>;\n is_verified_user?: boolean;\n };\n app: {\n id?: string;\n icon?: string;\n icon_content_type?: string;\n config: AppConfig | null;\n schema: AppSchema | null;\n user_verification_field?: string;\n user_verification_fields?: string[];\n };\n local_acls: Record<string, { shared: boolean }> | null;\n is_saving_user_data: boolean;\n config?: IConfig;\n};\n\ntype AppSchema = Record<string, SchemaField>;\n\nexport interface SchemaField {\n display_name: string;\n type: string;\n data_category: string;\n required: boolean;\n owned_by: string;\n user_visible: boolean;\n revoke_after: string;\n required_retention: string;\n collection_justification: string;\n opt_out_warning: string;\n}\n\ninterface AppConfig {\n customizations: {\n primary_color: string;\n };\n default_user_id_format?: string;\n hub: {\n auth: {\n allow_unverified_users?: boolean;\n additional_fields: [\n {\n name: string;\n type: string;\n label: string;\n placeholder?: string;\n options: [\n {\n value: string;\n label: string;\n }\n ];\n }\n ];\n email: {\n from_address: string;\n image: string;\n };\n show_app_icon: boolean;\n };\n customizations: HubCustomizations;\n };\n}\n\nexport interface HubCustomizations {\n rounded_corners: boolean;\n primary_color: string;\n placement: 'bottom-left' | 'hidden';\n offset_x: number;\n offset_y: number;\n property_overrides: Record<string, string>;\n}\n\ntype ContextProps = {\n config: IConfig;\n};\n\nexport const GlobalContext = createContext<\n { state: GlobalState; dispatch: Dispatch } | undefined\n>(undefined);\n\nfunction handleStateInit(initialState: GlobalState) {\n if (storage.contains('state')) {\n const state = JSON.parse(storage.getString('state') || '{}');\n\n return {\n ...initialState,\n ...state,\n };\n }\n\n return initialState;\n}\n\n// async function updateStorage(newState: any) {\n// const oldState = JSON.parse(await storage.getItem('state') || '{}');\n\n// if (!isEqual(oldState, newState)) {\n// console.log('writing new state', newState);\n// await storage.setItem('state', JSON.stringify(newState));\n// }\n// }\n\nconst GlobalContextProvider: FunctionComponent<ContextProps> = ({\n children,\n config,\n}) => {\n const initialState: GlobalState = {\n is_initializing: false,\n is_container_visible: false,\n use_modal: false,\n nav: {\n current_route: '/',\n route_trigger: '',\n event_id: '',\n section: '',\n options: {},\n },\n user: {\n data: {\n email: null,\n },\n needs_refresh: false,\n redacted: [],\n },\n auth: {\n access_token: null,\n refresh_token: null,\n app_id: null,\n },\n app: {\n schema: null,\n config: null,\n },\n local_acls: null,\n is_saving_user_data: false,\n config,\n };\n\n // TODO: There's a better way to do this where we have a set of rules that watch/apply to the state as it changes\n // function dispatchExternalEvents(prevState: GlobalState, nextState: GlobalState) {\n\n // // Log in, get new token, load previous auth state, etc\n // if (prevState.auth.access_token !== nextState.auth.access_token) {\n // events.dispatch(EventType.AUTH, {\n // access_token: nextState.auth.access_token,\n // user_id: nextState.user.data.id,\n // app_id: nextState.auth.app_id,\n // });\n // }\n\n // // User data changes. Also, fire the event when ACLs change since this affects the data\n // // that the application can see.\n // if (!isEqual(prevState.local_acls, nextState.local_acls) ||\n // !isEqual(prevState.user.data, nextState.user.data)) {\n // events.dispatch(EventType.USER_DATA, {\n // // The data is filtered on the local_acls\n // data: redactUserDataWithAcls(nextState.user.data, nextState.local_acls),\n // });\n // }\n\n // // Log out\n // if (nextState.auth.access_token === null) {\n // events.dispatch(EventType.SIGN_OUT, {});\n // }\n // }\n\n function mainReducer(state: GlobalState, action: TAction): GlobalState {\n let decodedToken: any;\n\n let newState;\n // let cachedAuth;\n switch (action.type) {\n case ActionType.SET_CONTAINER_VISIBLE:\n newState = {\n ...state,\n is_container_visible: action.payload.isVisible,\n use_modal:\n action.payload.isVisible === false ? false : state.use_modal,\n nav: {\n ...state.nav,\n current_route: '/',\n },\n };\n break;\n\n case ActionType.CHANGE_ROUTE:\n newState = {\n ...state,\n nav: {\n ...state.nav,\n current_route: action.payload.route,\n route_trigger: action.payload.trigger || '',\n event_id: action.payload.event_id,\n options: action.payload.opts,\n },\n };\n\n break;\n\n case ActionType.SET_SECTION:\n newState = {\n ...state,\n nav: {\n ...state.nav,\n section: action.payload.section,\n },\n };\n break;\n\n case ActionType.LOGIN_SUCCESS:\n // storage.setItem('auth', JSON.stringify(action.payload));\n decodedToken = jwt_decode(action.payload.access_token);\n\n // Ensure this token is for this app\n if (action.payload.app_id !== state.app.id) {\n return {\n ...state,\n };\n }\n\n newState = {\n ...state,\n auth: {\n ...state.auth,\n access_token: action.payload.access_token,\n refresh_token: action.payload.refresh_token,\n app_id: action.payload.app_id,\n is_verified_user:\n decodedToken?.['https://auth.rownd.io/is_verified_user'] !==\n false, // default is `true` if the attribute doesn't exist\n },\n user: {\n ...state.user,\n data: {\n ...state.user.data,\n id: action.payload.app_user_id,\n },\n },\n };\n break;\n\n case ActionType.SIGN_OUT:\n // storage.removeItem('auth');\n newState = {\n ...state,\n user: {\n data: {\n email: null,\n },\n redacted: [],\n },\n auth: {\n access_token: null,\n refresh_token: null,\n app_id: null,\n },\n };\n break;\n\n case ActionType.REFRESH_TOKEN:\n newState = {\n ...state,\n auth: {\n ...state.auth,\n access_token: action.payload.access_token,\n refresh_token: action.payload.refresh_token,\n },\n };\n\n // cachedAuth = storage.getItem('auth');\n // if (cachedAuth) {\n // const cachedAuthObj = JSON.parse(cachedAuth);\n // cachedAuth = {\n // ...cachedAuthObj,\n // ...newState.auth,\n // };\n // storage.setItem('auth', JSON.stringify(newState.auth));\n // }\n\n break;\n\n case ActionType.LOAD_USER:\n newState = {\n ...state,\n user: {\n ...state.user,\n data: {\n ...action.payload.data,\n },\n redacted: action.payload.redacted,\n },\n };\n break;\n\n case ActionType.UPDATE_LOCAL_ACLS:\n newState = {\n ...state,\n local_acls: {\n ...state.local_acls,\n ...action.payload,\n },\n };\n break;\n\n case ActionType.SET_USER_DATA_FIELD:\n // Dispatch a USER_DATA_SAVED event to satisfy event listeners when the data\n // was not changed and no request to Rownd was ever made.\n if (state.user.data[action.payload.field] === action.payload.value) {\n events.dispatch(EventType.USER_DATA_SAVED, state.user.data);\n }\n\n newState = {\n ...state,\n user: {\n ...state.user,\n data: {\n ...state.user.data,\n [action.payload.field]: action.payload.value,\n },\n },\n };\n break;\n\n case ActionType.SET_USER_DATA:\n // Dispatch a USER_DATA_SAVED event to satisfy event listeners when the data\n // was not changed and no request to Rownd was ever made.\n if (\n isEqual(\n pick(state.user.data, Object.keys(action.payload.data)),\n action.payload.data\n )\n ) {\n events.dispatch(EventType.USER_DATA_SAVED, state.user.data);\n }\n\n newState = {\n ...state,\n user: {\n ...state.user,\n data: {\n ...state.user.data,\n ...action.payload.data,\n },\n },\n };\n break;\n\n case ActionType.SET_REFRESH_USER_DATA:\n newState = {\n ...state,\n user: {\n ...state.user,\n needs_refresh: action.payload.needs_refresh,\n },\n };\n break;\n\n case ActionType.LOAD_STATE:\n newState = {\n ...action.payload,\n };\n break;\n\n case ActionType.SET_IS_SAVING_USER_DATA: {\n newState = {\n ...state,\n is_saving_user_data: action.payload.saving,\n };\n break;\n }\n\n case ActionType.SET_APP_CONFIG:\n newState = {\n ...state,\n app: {\n ...state.app,\n ...action.payload,\n },\n };\n break;\n\n default:\n newState = state;\n }\n\n // Write state to local storage, minus a few fields\n const persistedState: any = { ...newState };\n delete persistedState.config;\n delete persistedState.nav;\n delete persistedState.is_container_visible;\n delete persistedState.use_modal;\n delete persistedState.is_initializing;\n delete persistedState.is_saving_user_data;\n\n // updateStorage(persistedState);\n storage.set('state', JSON.stringify(persistedState));\n\n // Fire any events that depend on state updates\n // dispatchExternalEvents(state, newState);\n\n return newState;\n }\n\n const [state, dispatch] = useReducer(\n mainReducer,\n initialState,\n handleStateInit\n );\n\n // Async load cached state from storage\n // useEffect(() => {\n // (async () => {\n // const existingStateStr = await storage.getItem('state');\n\n // if (!existingStateStr) {\n // return;\n // }\n\n // dispatch({\n // type: ActionType.LOAD_STATE,\n // payload: JSON.parse(existingStateStr),\n // });\n // });\n // }, []);\n\n const value = { state, dispatch };\n return (\n <GlobalContext.Provider value={value}>\n {children}\n {/* <ExternalApi config={config} dispatchEvents={(state: GlobalState) => dispatchExternalEvents(initialState, state)} /> */}\n </GlobalContext.Provider>\n );\n};\n\nfunction useGlobalContext() {\n const context = useContext(GlobalContext);\n\n if (context === undefined) {\n throw new Error(\n 'useGlobalContext must be used within a GlobalContext Provider'\n );\n }\n\n return context;\n}\n\nexport { GlobalContextProvider, useGlobalContext };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RowndComponents = RowndComponents;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _twrnc = require("twrnc");
|
|
11
|
+
|
|
12
|
+
var _tailwind = _interopRequireDefault(require("../utils/tailwind"));
|
|
13
|
+
|
|
14
|
+
var _SignIn = require("./SignIn");
|
|
15
|
+
|
|
16
|
+
var _AutoSigninDialog = require("./AutoSigninDialog");
|
|
17
|
+
|
|
18
|
+
var _GlobalContext = require("./GlobalContext");
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function RowndComponents() {
|
|
23
|
+
const {
|
|
24
|
+
state
|
|
25
|
+
} = (0, _GlobalContext.useGlobalContext)();
|
|
26
|
+
(0, _twrnc.useDeviceContext)(_tailwind.default);
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, state.nav.current_route === '/account/login' && /*#__PURE__*/_react.default.createElement(_SignIn.SignIn, null), state.nav.current_route === '/account/auto-signin' && /*#__PURE__*/_react.default.createElement(_AutoSigninDialog.AutoSigninDialog, null));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=RowndComponents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RowndComponents","state","useGlobalContext","useDeviceContext","tw","nav","current_route"],"sources":["RowndComponents.tsx"],"sourcesContent":["import React from 'react';\nimport { useDeviceContext } from 'twrnc';\n\nimport tw from '../utils/tailwind';\nimport { SignIn } from './SignIn';\nimport { AutoSigninDialog } from './AutoSigninDialog';\nimport { useGlobalContext } from './GlobalContext';\n\nexport function RowndComponents() {\n const { state } = useGlobalContext();\n useDeviceContext(tw);\n\n return (\n <>\n {state.nav.current_route === '/account/login' && <SignIn />}\n {state.nav.current_route === '/account/auto-signin' && (\n <AutoSigninDialog />\n )}\n </>\n );\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;AAEO,SAASA,eAAT,GAA2B;EAChC,MAAM;IAAEC;EAAF,IAAY,IAAAC,+BAAA,GAAlB;EACA,IAAAC,uBAAA,EAAiBC,iBAAjB;EAEA,oBACE,4DACGH,KAAK,CAACI,GAAN,CAAUC,aAAV,KAA4B,gBAA5B,iBAAgD,6BAAC,cAAD,OADnD,EAEGL,KAAK,CAACI,GAAN,CAAUC,aAAV,KAA4B,sBAA5B,iBACC,6BAAC,kCAAD,OAHJ,CADF;AAQD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RowndProvider = RowndProvider;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
|
|
12
|
+
var _GlobalContext = require("./GlobalContext");
|
|
13
|
+
|
|
14
|
+
var _DefaultContext = require("./DefaultContext");
|
|
15
|
+
|
|
16
|
+
var _config = require("../utils/config");
|
|
17
|
+
|
|
18
|
+
var _RowndComponents = require("./RowndComponents");
|
|
19
|
+
|
|
20
|
+
var _bottomSheet = require("@gorhom/bottom-sheet");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
function RowndProvider(_ref) {
|
|
25
|
+
let {
|
|
26
|
+
appKey,
|
|
27
|
+
apiUrl,
|
|
28
|
+
children
|
|
29
|
+
} = _ref;
|
|
30
|
+
// const [isSigningIn, setIsSigningIn] = useState<boolean>(false);
|
|
31
|
+
// const requestSignIn = useRef(function () {
|
|
32
|
+
// setIsSigningIn(true);
|
|
33
|
+
// });
|
|
34
|
+
// const [rowndState, setRowndState] = useState<any>({
|
|
35
|
+
// requestSignIn: requestSignIn.current,
|
|
36
|
+
// });
|
|
37
|
+
const config = (0, _config.createConfig)({
|
|
38
|
+
appKey,
|
|
39
|
+
apiUrl
|
|
40
|
+
});
|
|
41
|
+
return /*#__PURE__*/_react.default.createElement(_GlobalContext.GlobalContextProvider, {
|
|
42
|
+
config: config
|
|
43
|
+
}, /*#__PURE__*/_react.default.createElement(_DefaultContext.DefaultContext, {
|
|
44
|
+
config: config
|
|
45
|
+
}), /*#__PURE__*/_react.default.createElement(_bottomSheet.BottomSheetModalProvider, null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
46
|
+
style: styles.container
|
|
47
|
+
}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children, /*#__PURE__*/_react.default.createElement(_RowndComponents.RowndComponents, null)))));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const styles = _reactNative.StyleSheet.create({
|
|
51
|
+
container: {
|
|
52
|
+
flex: 1
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=RowndProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RowndProvider","appKey","apiUrl","children","config","createConfig","styles","container","StyleSheet","create","flex"],"sources":["RowndProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { GlobalContextProvider } from './GlobalContext';\nimport { DefaultContext } from './DefaultContext';\nimport { createConfig } from '../utils/config';\nimport { RowndComponents } from './RowndComponents';\nimport { BottomSheetModalProvider } from '@gorhom/bottom-sheet';\n\n// const RowndContext = createContext<TRowndContext | undefined>(undefined);\n\ninterface IRowndProviderProps {\n appKey: string;\n apiUrl?: string;\n children: React.ReactNode;\n}\n\nexport function RowndProvider({\n appKey,\n apiUrl,\n children,\n}: IRowndProviderProps) {\n // const [isSigningIn, setIsSigningIn] = useState<boolean>(false);\n\n // const requestSignIn = useRef(function () {\n // setIsSigningIn(true);\n // });\n\n // const [rowndState, setRowndState] = useState<any>({\n // requestSignIn: requestSignIn.current,\n // });\n\n const config = createConfig({\n appKey,\n apiUrl,\n });\n\n return (\n <GlobalContextProvider config={config}>\n <DefaultContext config={config} />\n <BottomSheetModalProvider>\n <View style={styles.container}>\n <>\n {children}\n <RowndComponents />\n </>\n </View>\n </BottomSheetModalProvider>\n </GlobalContextProvider>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAUO,SAASA,aAAT,OAIiB;EAAA,IAJM;IAC5BC,MAD4B;IAE5BC,MAF4B;IAG5BC;EAH4B,CAIN;EACtB;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA,MAAMC,MAAM,GAAG,IAAAC,oBAAA,EAAa;IAC1BJ,MAD0B;IAE1BC;EAF0B,CAAb,CAAf;EAKA,oBACE,6BAAC,oCAAD;IAAuB,MAAM,EAAEE;EAA/B,gBACE,6BAAC,8BAAD;IAAgB,MAAM,EAAEA;EAAxB,EADF,eAEE,6BAAC,qCAAD,qBACE,6BAAC,iBAAD;IAAM,KAAK,EAAEE,MAAM,CAACC;EAApB,gBACE,4DACGJ,QADH,eAEE,6BAAC,gCAAD,OAFF,CADF,CADF,CAFF,CADF;AAaD;;AAED,MAAMG,MAAM,GAAGE,uBAAA,CAAWC,MAAX,CAAkB;EAC/BF,SAAS,EAAE;IACTG,IAAI,EAAE;EADG;AADoB,CAAlB,CAAf"}
|