@react-navigation/core 8.0.0-alpha.26 → 8.0.0-alpha.28
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/lib/module/BaseNavigationContainer.js +12 -6
- package/lib/module/BaseNavigationContainer.js.map +1 -1
- package/lib/module/ConsumedParamsContext.js.map +1 -1
- package/lib/module/DataLoading.js +29 -4
- package/lib/module/DataLoading.js.map +1 -1
- package/lib/module/NavigationIndependentTree.js +8 -4
- package/lib/module/NavigationIndependentTree.js.map +1 -1
- package/lib/module/SceneView.js +16 -39
- package/lib/module/SceneView.js.map +1 -1
- package/lib/module/StaticNavigation.js +4 -3
- package/lib/module/StaticNavigation.js.map +1 -1
- package/lib/module/findFocusedRoute.js +1 -1
- package/lib/module/findFocusedRoute.js.map +1 -1
- package/lib/module/getActionFromState.js +1 -2
- package/lib/module/getActionFromState.js.map +1 -1
- package/lib/module/getPathFromState.js +41 -26
- package/lib/module/getPathFromState.js.map +1 -1
- package/lib/module/getPatternParts.js +15 -2
- package/lib/module/getPatternParts.js.map +1 -1
- package/lib/module/getStateFromPath.js +45 -19
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/useFocusEvents.js +6 -2
- package/lib/module/useFocusEvents.js.map +1 -1
- package/lib/module/useLazyValue.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +51 -27
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useOnAction.js +25 -17
- package/lib/module/useOnAction.js.map +1 -1
- package/lib/module/useOnPreventRemove.js +1 -3
- package/lib/module/useOnPreventRemove.js.map +1 -1
- package/lib/module/useRouteCache.js +1 -3
- package/lib/module/useRouteCache.js.map +1 -1
- package/lib/module/useSyncState.js +3 -2
- package/lib/module/useSyncState.js.map +1 -1
- package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/ConsumedParamsContext.d.ts +1 -6
- package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -1
- package/lib/typescript/src/DataLoading.d.ts +1 -0
- package/lib/typescript/src/DataLoading.d.ts.map +1 -1
- package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
- package/lib/typescript/src/SceneView.d.ts.map +1 -1
- package/lib/typescript/src/StaticNavigation.d.ts +39 -30
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
- package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
- package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +2 -2
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
- package/lib/typescript/src/useLazyValue.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useOnAction.d.ts.map +1 -1
- package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
- package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
- package/lib/typescript/src/useSyncState.d.ts.map +1 -1
- package/lib/typescript/src/utilities.d.ts +10 -0
- package/lib/typescript/src/utilities.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/BaseNavigationContainer.tsx +13 -7
- package/src/ConsumedParamsContext.tsx +1 -6
- package/src/DataLoading.tsx +68 -4
- package/src/NavigationIndependentTree.tsx +8 -5
- package/src/SceneView.tsx +18 -52
- package/src/StaticNavigation.tsx +88 -64
- package/src/findFocusedRoute.tsx +1 -1
- package/src/getActionFromState.tsx +7 -3
- package/src/getPathFromState.tsx +59 -32
- package/src/getPatternParts.tsx +15 -2
- package/src/getStateFromPath.tsx +77 -17
- package/src/index.tsx +5 -0
- package/src/types.tsx +2 -2
- package/src/useDescriptors.tsx +1 -1
- package/src/useFocusEvents.tsx +7 -5
- package/src/useLazyValue.tsx +2 -2
- package/src/useNavigationBuilder.tsx +82 -37
- package/src/useOnAction.tsx +36 -40
- package/src/useOnPreventRemove.tsx +4 -3
- package/src/useRouteCache.tsx +1 -4
- package/src/useSyncState.tsx +3 -2
- package/src/utilities.tsx +19 -0
|
@@ -4,6 +4,7 @@ import queryString from 'query-string';
|
|
|
4
4
|
import { getPatternParts } from "./getPatternParts.js";
|
|
5
5
|
import { getStateFromRouteParams } from "./getStateFromRouteParams.js";
|
|
6
6
|
import { validatePathConfig } from "./validatePathConfig.js";
|
|
7
|
+
const serializeParamValue = value => value === null ? null : Array.isArray(value) ? value.map(String) : String(value);
|
|
7
8
|
const encodePathParam = value => {
|
|
8
9
|
let result = '';
|
|
9
10
|
for (const char of value) {
|
|
@@ -92,7 +93,6 @@ export function getPathFromState(state, options) {
|
|
|
92
93
|
const focusedRoute = getActiveRoute(state, configs, getRouteState);
|
|
93
94
|
let path = '/';
|
|
94
95
|
let current = state;
|
|
95
|
-
const allParams = {};
|
|
96
96
|
while (current) {
|
|
97
97
|
let index = typeof current.index === 'number' ? current.index : 0;
|
|
98
98
|
const initialRoute = current.routes[index];
|
|
@@ -101,6 +101,10 @@ export function getPathFromState(state, options) {
|
|
|
101
101
|
}
|
|
102
102
|
let route = initialRoute;
|
|
103
103
|
let parts;
|
|
104
|
+
|
|
105
|
+
// Values for each pattern part object, so the same param name
|
|
106
|
+
// at different nesting levels gets the value from its own level
|
|
107
|
+
const partValues = new Map();
|
|
104
108
|
let focusedParams;
|
|
105
109
|
let currentOptions = configs;
|
|
106
110
|
|
|
@@ -113,6 +117,7 @@ export function getPathFromState(state, options) {
|
|
|
113
117
|
break;
|
|
114
118
|
}
|
|
115
119
|
parts = config.parts;
|
|
120
|
+
const ownParts = config.ownParts;
|
|
116
121
|
nestedRouteNames.push(route.name);
|
|
117
122
|
if (route.params) {
|
|
118
123
|
const options = config;
|
|
@@ -122,7 +127,7 @@ export function getPathFromState(state, options) {
|
|
|
122
127
|
const value = params[key];
|
|
123
128
|
if (value === undefined) {
|
|
124
129
|
let optional = false;
|
|
125
|
-
for (const part of
|
|
130
|
+
for (const part of ownParts) {
|
|
126
131
|
if (part.param === key) {
|
|
127
132
|
optional = part.optional === true;
|
|
128
133
|
break;
|
|
@@ -132,31 +137,37 @@ export function getPathFromState(state, options) {
|
|
|
132
137
|
continue;
|
|
133
138
|
}
|
|
134
139
|
}
|
|
135
|
-
const stringify = options.stringify?.[key]
|
|
136
|
-
currentParams[key] = stringify(value);
|
|
140
|
+
const stringify = options.stringify?.[key];
|
|
141
|
+
currentParams[key] = stringify ? stringify(value) : serializeParamValue(value);
|
|
137
142
|
}
|
|
138
|
-
|
|
139
|
-
|
|
143
|
+
const claimedParams = new Set();
|
|
144
|
+
for (const part of ownParts) {
|
|
145
|
+
if (part.param && part.param in currentParams) {
|
|
146
|
+
const value = currentParams[part.param];
|
|
147
|
+
if (value !== undefined) {
|
|
148
|
+
partValues.set(part, value);
|
|
149
|
+
claimedParams.add(part.param);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
140
152
|
}
|
|
141
153
|
if (focusedRoute === route) {
|
|
142
154
|
// If this is the focused route, keep the params for later use
|
|
143
155
|
// We save it here since it's been stringified already
|
|
156
|
+
// Params claimed by the pattern shouldn't be repeated in the query string
|
|
144
157
|
focusedParams = {};
|
|
145
158
|
for (const key in currentParams) {
|
|
146
|
-
let inPattern = false;
|
|
147
|
-
for (const part of parts ?? []) {
|
|
148
|
-
if (part.param === key) {
|
|
149
|
-
inPattern = true;
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
159
|
const value = currentParams[key];
|
|
154
|
-
if (!
|
|
160
|
+
if (!claimedParams.has(key) && value !== undefined && value !== 'undefined') {
|
|
155
161
|
focusedParams[key] = value;
|
|
156
162
|
}
|
|
157
163
|
}
|
|
158
164
|
}
|
|
159
165
|
}
|
|
166
|
+
for (const part of ownParts) {
|
|
167
|
+
if (part.param && !partValues.has(part)) {
|
|
168
|
+
partValues.set(part, undefined);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
160
171
|
|
|
161
172
|
// If there is no `screens` property or no nested state, we return pattern
|
|
162
173
|
const routeState = getRouteState(route, config);
|
|
@@ -184,11 +195,12 @@ export function getPathFromState(state, options) {
|
|
|
184
195
|
if (currentOptions[route.name] != null) {
|
|
185
196
|
if (parts) {
|
|
186
197
|
let index = 0;
|
|
187
|
-
for (const {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
198
|
+
for (const part of parts) {
|
|
199
|
+
const {
|
|
200
|
+
segment,
|
|
201
|
+
param,
|
|
202
|
+
optional
|
|
203
|
+
} = part;
|
|
192
204
|
if (index > 0) {
|
|
193
205
|
path += '/';
|
|
194
206
|
}
|
|
@@ -204,7 +216,7 @@ export function getPathFromState(state, options) {
|
|
|
204
216
|
|
|
205
217
|
// If the path has a pattern for a param, put the param in the path
|
|
206
218
|
if (param) {
|
|
207
|
-
const value =
|
|
219
|
+
const value = partValues.get(part);
|
|
208
220
|
if (value === undefined && optional) {
|
|
209
221
|
// Optional params without value assigned in route.params should be ignored
|
|
210
222
|
continue;
|
|
@@ -225,7 +237,7 @@ export function getPathFromState(state, options) {
|
|
|
225
237
|
focusedParams = {};
|
|
226
238
|
const params = focusedRoute.params;
|
|
227
239
|
for (const key in params) {
|
|
228
|
-
const value =
|
|
240
|
+
const value = serializeParamValue(params[key]);
|
|
229
241
|
if (value !== 'undefined') {
|
|
230
242
|
focusedParams[key] = value;
|
|
231
243
|
}
|
|
@@ -262,15 +274,16 @@ export function getPathFromState(state, options) {
|
|
|
262
274
|
}
|
|
263
275
|
const createConfigItem = (config, parentParts) => {
|
|
264
276
|
if (typeof config === 'string') {
|
|
265
|
-
|
|
266
|
-
const parts = getPatternParts(config);
|
|
277
|
+
const ownParts = getPatternParts(config);
|
|
267
278
|
if (parentParts) {
|
|
268
279
|
return {
|
|
269
|
-
parts: [...parentParts, ...
|
|
280
|
+
parts: [...parentParts, ...ownParts],
|
|
281
|
+
ownParts
|
|
270
282
|
};
|
|
271
283
|
}
|
|
272
284
|
return {
|
|
273
|
-
parts
|
|
285
|
+
parts: ownParts,
|
|
286
|
+
ownParts
|
|
274
287
|
};
|
|
275
288
|
}
|
|
276
289
|
if (config.exact && config.path === undefined) {
|
|
@@ -279,10 +292,12 @@ const createConfigItem = (config, parentParts) => {
|
|
|
279
292
|
|
|
280
293
|
// If an object is specified as the value (e.g. Foo: { ... }),
|
|
281
294
|
// It can have `path` property and `screens` prop which has nested configs
|
|
282
|
-
const
|
|
295
|
+
const ownParts = config.path ? getPatternParts(config.path) : [];
|
|
296
|
+
const parts = config.exact !== true ? [...(parentParts || []), ...ownParts] : ownParts.length ? ownParts : undefined;
|
|
283
297
|
const screens = 'screens' in config && config.screens ? createNormalizedConfigs(config.screens, parts) : undefined;
|
|
284
298
|
return {
|
|
285
299
|
parts,
|
|
300
|
+
ownParts,
|
|
286
301
|
stringify: config.stringify,
|
|
287
302
|
screens
|
|
288
303
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","
|
|
1
|
+
{"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","serializeParamValue","value","Array","isArray","map","String","encodePathParam","result","char","charCode","charCodeAt","safe","includes","encodeURIComponent","getActiveRoute","state","configs","getRouteState","route","index","routes","length","Error","config","name","routeState","screens","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","cached","get","normalizedConfigs","createNormalizedConfigs","set","getPathFromState","cachedRouteStates","Map","hasScreenParams","params","screen","hasStateParams","undefined","has","focusedRoute","path","current","initialRoute","parts","partValues","focusedParams","currentOptions","nestedRouteNames","hasNext","ownParts","push","currentParams","key","optional","part","param","stringify","claimedParams","Set","add","nextRoute","nestedConfig","segment","query","sort","replace","startsWith","createConfigItem","parentParts","exact"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,8 @@ export function getPatternParts(path) {
|
|
|
10
10
|
};
|
|
11
11
|
let isRegex = false;
|
|
12
12
|
let isParam = false;
|
|
13
|
+
let isEscaped = false;
|
|
14
|
+
let isInCharClass = false;
|
|
13
15
|
let regexInnerParens = 0;
|
|
14
16
|
|
|
15
17
|
// One extra iteration to add the last character
|
|
@@ -25,7 +27,7 @@ export function getPatternParts(path) {
|
|
|
25
27
|
} else if (!isRegex) {
|
|
26
28
|
throw new Error(`Encountered ':' in the middle of a segment in path: ${path}`);
|
|
27
29
|
}
|
|
28
|
-
} else if (char === '(') {
|
|
30
|
+
} else if (char === '(' && !isEscaped && !isInCharClass) {
|
|
29
31
|
if (isParam) {
|
|
30
32
|
if (isRegex) {
|
|
31
33
|
// The '(' is part of the regex if we're already inside one
|
|
@@ -36,7 +38,7 @@ export function getPatternParts(path) {
|
|
|
36
38
|
} else {
|
|
37
39
|
throw new Error(`Encountered '(' without preceding ':' in path: ${path}`);
|
|
38
40
|
}
|
|
39
|
-
} else if (char === ')') {
|
|
41
|
+
} else if (char === ')' && !isEscaped && !isInCharClass) {
|
|
40
42
|
if (isParam && isRegex) {
|
|
41
43
|
if (regexInnerParens) {
|
|
42
44
|
// The ')' is part of the regex if we're already inside one
|
|
@@ -81,6 +83,17 @@ export function getPatternParts(path) {
|
|
|
81
83
|
if (isRegex) {
|
|
82
84
|
current.regex = current.regex || '';
|
|
83
85
|
current.regex += char;
|
|
86
|
+
|
|
87
|
+
// Track escapes and character classes so parens inside them are not special
|
|
88
|
+
if (isEscaped) {
|
|
89
|
+
isEscaped = false;
|
|
90
|
+
} else if (char === '\\') {
|
|
91
|
+
isEscaped = true;
|
|
92
|
+
} else if (char === '[') {
|
|
93
|
+
isInCharClass = true;
|
|
94
|
+
} else if (char === ']') {
|
|
95
|
+
isInCharClass = false;
|
|
96
|
+
}
|
|
84
97
|
}
|
|
85
98
|
if (isParam && !isRegex) {
|
|
86
99
|
current.param = current.param || '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf","combinePatternParts","parentParts","exact"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":";;AAOA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAACC,IAAY,EAAiB;EAC3D,MAAMC,KAAoB,GAAG,EAAE;EAE/B,IAAIC,OAAoB,GAAG;IAAEC,OAAO,EAAE;EAAG,CAAC;EAE1C,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAIC,gBAAgB,GAAG,CAAC;;EAExB;EACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,
|
|
1
|
+
{"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","isEscaped","isInCharClass","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf","combinePatternParts","parentParts","exact"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,11 @@ const INVALID_SCHEMA_RESULT_ERROR = 'Invalid validation result from schema. It s
|
|
|
11
11
|
const INVALID_PARSER_ERROR = 'Invalid parser. Expected a function or a Standard Schema V1 object.';
|
|
12
12
|
const PARAM_GROUP_PREFIX = 'param_';
|
|
13
13
|
const NESTED_SCREEN_PARAM_NAMES = ['screen', 'params', 'initial', 'path', 'merge', 'pop'];
|
|
14
|
+
const getStaticSegmentPattern = segment => Array.from(segment, char => {
|
|
15
|
+
const encoded = encodeURIComponent(char);
|
|
16
|
+
const percentEncoded = encoded === char ? `%${char.charCodeAt(0).toString(16).padStart(2, '0').toUpperCase()}` : encoded;
|
|
17
|
+
return `(?:${escape(char)}|${escape(percentEncoded)})`;
|
|
18
|
+
}).join('');
|
|
14
19
|
const getExplicitParamNames = parse => {
|
|
15
20
|
const names = [];
|
|
16
21
|
if (parse) {
|
|
@@ -62,7 +67,8 @@ export function getStateFromPath(path, options, previous) {
|
|
|
62
67
|
initialRoutes,
|
|
63
68
|
configs,
|
|
64
69
|
configsByScreen,
|
|
65
|
-
configsByPattern
|
|
70
|
+
configsByPattern,
|
|
71
|
+
prefixRegex
|
|
66
72
|
} = getConfigResources(options);
|
|
67
73
|
const screens = options?.screens;
|
|
68
74
|
|
|
@@ -79,23 +85,17 @@ export function getStateFromPath(path, options, previous) {
|
|
|
79
85
|
};
|
|
80
86
|
let remaining = path.replace(/\/+/g, '/') // Replace multiple slash (//) with single ones
|
|
81
87
|
.replace(/^\//, '') // Remove extra leading slash
|
|
82
|
-
.replace(/\?.*$/, '')
|
|
88
|
+
.replace(/\?.*$/, '') // Remove query params which we will handle later
|
|
89
|
+
.replace(/%[0-9a-f]{2}/gi, m => m.toUpperCase()); // Normalize percent-encoding as hex digits are case-insensitive
|
|
83
90
|
|
|
84
91
|
// Make sure there is a trailing slash
|
|
85
92
|
remaining = remaining.endsWith('/') ? remaining : `${remaining}/`;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
// Make sure there is a trailing slash
|
|
90
|
-
const normalizedPrefix = prefix.endsWith('/') ? prefix : `${prefix}/`;
|
|
91
|
-
|
|
92
|
-
// If the path doesn't start with the prefix, it's not a match
|
|
93
|
-
if (!remaining.startsWith(normalizedPrefix)) {
|
|
93
|
+
if (prefixRegex) {
|
|
94
|
+
const prefixMatch = remaining.match(prefixRegex);
|
|
95
|
+
if (prefixMatch == null) {
|
|
94
96
|
return undefined;
|
|
95
97
|
}
|
|
96
|
-
|
|
97
|
-
// Remove the prefix from the path
|
|
98
|
-
remaining = remaining.replace(normalizedPrefix, '');
|
|
98
|
+
remaining = remaining.slice(prefixMatch[0].length);
|
|
99
99
|
}
|
|
100
100
|
if (screens === undefined) {
|
|
101
101
|
// When no config is specified, use the path segments as route names
|
|
@@ -198,6 +198,13 @@ function getConfigResources(options) {
|
|
|
198
198
|
function prepareConfigResources(options) {
|
|
199
199
|
const initialRoutes = getInitialRoutes(options);
|
|
200
200
|
const configs = getSortedNormalizedConfigs(initialRoutes, options?.screens);
|
|
201
|
+
const prefix = options?.path?.replace(/^\//, '');
|
|
202
|
+
let prefixRegex;
|
|
203
|
+
if (prefix) {
|
|
204
|
+
const normalizedPrefix = prefix.endsWith('/') ? prefix : `${prefix}/`;
|
|
205
|
+
const prefixPattern = normalizedPrefix.split('/').map(getStaticSegmentPattern).join('/');
|
|
206
|
+
prefixRegex = new RegExp(`^${prefixPattern}`);
|
|
207
|
+
}
|
|
201
208
|
const configsByScreen = {};
|
|
202
209
|
const configsByPattern = {};
|
|
203
210
|
for (const c of configs) {
|
|
@@ -214,7 +221,8 @@ function prepareConfigResources(options) {
|
|
|
214
221
|
initialRoutes,
|
|
215
222
|
configs,
|
|
216
223
|
configsByScreen,
|
|
217
|
-
configsByPattern
|
|
224
|
+
configsByPattern,
|
|
225
|
+
prefixRegex
|
|
218
226
|
};
|
|
219
227
|
}
|
|
220
228
|
function getInitialRoutes(options) {
|
|
@@ -250,7 +258,13 @@ function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
|
|
|
250
258
|
// If 2 patterns are same, move the one with less route names up
|
|
251
259
|
// This is an error state, so it's only useful for consistent error messages
|
|
252
260
|
if (isArrayEqual(a.segments, b.segments)) {
|
|
253
|
-
|
|
261
|
+
if (a.routeNames.length > b.routeNames.length && arrayStartsWith(a.routeNames, b.routeNames)) {
|
|
262
|
+
return -1;
|
|
263
|
+
}
|
|
264
|
+
if (b.routeNames.length > a.routeNames.length && arrayStartsWith(b.routeNames, a.routeNames)) {
|
|
265
|
+
return 1;
|
|
266
|
+
}
|
|
267
|
+
return a.routeNames.length - b.routeNames.length || a.order - b.order;
|
|
254
268
|
}
|
|
255
269
|
|
|
256
270
|
// If one of the patterns starts with the other, it's more exhaustive
|
|
@@ -369,6 +383,12 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
|
|
|
369
383
|
} catch {
|
|
370
384
|
return undefined;
|
|
371
385
|
}
|
|
386
|
+
|
|
387
|
+
// Percent-encoded values are matched permissively
|
|
388
|
+
// So validate the decoded value against the custom regex
|
|
389
|
+
if (param.regex && value !== decoded && !param.regex.test(decoded)) {
|
|
390
|
+
return undefined;
|
|
391
|
+
}
|
|
372
392
|
const parser = routeConfig.parse?.[param.name];
|
|
373
393
|
if (!parser) {
|
|
374
394
|
params[param.name] = decoded;
|
|
@@ -488,18 +508,23 @@ const createConfigItem = (screen, routeNames, parts, parse, hasNestedScreens = f
|
|
|
488
508
|
for (const part of parts) {
|
|
489
509
|
segments.push(part.segment);
|
|
490
510
|
if (part.param) {
|
|
491
|
-
|
|
511
|
+
// A custom regex may not match the percent-encoded form of the value
|
|
512
|
+
// So also accept segments containing an encoded character and validate them after decoding
|
|
513
|
+
const reg = part.regex ? `(?:${part.regex})|(?=[^/]*%[0-9A-F]{2})[^/]+` : '[^/]+';
|
|
492
514
|
regexString += `(((?<${PARAM_GROUP_PREFIX}${index}>${reg})\\/)${part.optional ? '?' : ''})`;
|
|
493
515
|
params.push({
|
|
494
516
|
index,
|
|
495
517
|
screen: part.screen,
|
|
496
|
-
name: part.param
|
|
518
|
+
name: part.param,
|
|
519
|
+
regex: part.regex ? new RegExp(`^(?:${part.regex})$`) : undefined
|
|
497
520
|
});
|
|
498
521
|
if (part.screen === screen) {
|
|
499
522
|
pathParamNames.add(part.param);
|
|
500
523
|
}
|
|
524
|
+
} else if (part.segment === '*') {
|
|
525
|
+
regexString += `.*\\/`;
|
|
501
526
|
} else {
|
|
502
|
-
regexString += `${
|
|
527
|
+
regexString += `${getStaticSegmentPattern(part.segment)}\\/`;
|
|
503
528
|
}
|
|
504
529
|
index++;
|
|
505
530
|
}
|
|
@@ -690,7 +715,8 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
|
|
|
690
715
|
return state;
|
|
691
716
|
};
|
|
692
717
|
const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explicitParamNames, hasNestedScreens = false, routeParams) => {
|
|
693
|
-
const
|
|
718
|
+
const queryIndex = path.indexOf('?');
|
|
719
|
+
const query = queryIndex === -1 ? undefined : path.slice(queryIndex + 1);
|
|
694
720
|
const params = query ? queryString.parse(query) : {};
|
|
695
721
|
|
|
696
722
|
// Path params should always win over same-named query params.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","combinePatternParts","getPatternParts","isArrayEqual","validatePathConfig","INVALID_SCHEMA_RESULT_ERROR","INVALID_PARSER_ERROR","PARAM_GROUP_PREFIX","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","name","push","length","Set","undefined","getStandardSchema","parser","version","validate","getValidationResult","schema","value","result","Array","isArray","issues","Error","getStateFromPath","path","options","previous","initialRoutes","configs","configsByScreen","configsByPattern","getConfigResources","screens","resolveSharedConfig","config","shared","candidates","pattern","selectSharedConfig","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","routes","segment","split","decodeURIComponent","createNestedStateObject","match","find","routeNames","map","firstRawSegment","firstDecodedSegment","canMatchFirstSegment","segments","matchAgainstConfig","selectedConfig","selectedRoutes","rematchedRoutes","state","configSegment","decodedSegment","rawSegment","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","getInitialRoutes","getSortedNormalizedConfigs","c","screen","existing","checkForDuplicatedConfigs","initialRouteName","parentScreens","key","createNormalizedConfigs","order","sort","a","b","join","localeCompare","i","Math","max","aSegment","bSegment","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","intersects","regex","validationFailed","matchedRoutes","index","routeName","entries","routeConfig","params","hasParams","groups","param","decoded","initials","parts","configParts","part","createConfigItem","nestedScreens","hasNestedScreens","currentParts","exact","aliasConfigs","alias","nestedConfig","pop","pathParamNames","regexString","reg","optional","add","RegExp","explicitParamNames","focusedRouteNames","current","route","score","focused","initial","selected","best","candidate","better","findInitialRoute","sameParents","parentScreen","configParentScreen","createStateObject","initialRoute","isEmpty","shift","nestedState","nextRoute","nestedStateIndex","nestedRoute","focusedRoute","queryParams","parseQueryParams","valid","parseConfig","routeParams","query","has","Object","hasOwn","keys"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","combinePatternParts","getPatternParts","isArrayEqual","validatePathConfig","INVALID_SCHEMA_RESULT_ERROR","INVALID_PARSER_ERROR","PARAM_GROUP_PREFIX","NESTED_SCREEN_PARAM_NAMES","getStaticSegmentPattern","segment","Array","from","char","encoded","encodeURIComponent","percentEncoded","charCodeAt","toString","padStart","toUpperCase","join","getExplicitParamNames","parse","names","name","push","length","Set","undefined","getStandardSchema","parser","version","validate","getValidationResult","schema","value","result","isArray","issues","Error","getStateFromPath","path","options","previous","initialRoutes","configs","configsByScreen","configsByPattern","prefixRegex","getConfigResources","screens","resolveSharedConfig","config","shared","candidates","pattern","selectSharedConfig","remaining","replace","m","endsWith","prefixMatch","match","slice","routes","split","decodeURIComponent","createNestedStateObject","find","routeNames","map","firstRawSegment","firstDecodedSegment","canMatchFirstSegment","segments","matchAgainstConfig","selectedConfig","selectedRoutes","rematchedRoutes","state","configSegment","decodedSegment","rawSegment","startsWith","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","getInitialRoutes","getSortedNormalizedConfigs","prefix","normalizedPrefix","prefixPattern","RegExp","c","screen","existing","checkForDuplicatedConfigs","initialRouteName","parentScreens","key","createNormalizedConfigs","order","sort","a","b","i","Math","max","aSegment","bSegment","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","intersects","regex","validationFailed","matchedRoutes","index","routeName","entries","routeConfig","params","hasParams","groups","param","decoded","test","initials","parts","configParts","part","createConfigItem","nestedScreens","hasNestedScreens","currentParts","exact","aliasConfigs","alias","nestedConfig","pop","pathParamNames","regexString","reg","optional","add","explicitParamNames","focusedRouteNames","current","route","score","focused","initial","selected","best","candidate","better","findInitialRoute","sameParents","parentScreen","configParentScreen","localeCompare","createStateObject","initialRoute","isEmpty","shift","nestedState","nextRoute","nestedStateIndex","nestedRoute","focusedRoute","queryParams","parseQueryParams","valid","parseConfig","routeParams","queryIndex","indexOf","query","has","Object","hasOwn","keys"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":";;AAKA,OAAOA,MAAM,MAAM,sBAAsB;AACzC,OAAOC,WAAW,MAAM,cAAc;AAEtC,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SACEC,mBAAmB,EACnBC,eAAe,QAEV,sBAAmB;AAC1B,SAASC,YAAY,QAAQ,mBAAgB;AAM7C,SAASC,kBAAkB,QAAQ,yBAAsB;AA0DzD,MAAMC,2BAA2B,GAC/B,oIAAoI;AAEtI,MAAMC,oBAAoB,GACxB,qEAAqE;AAEvE,MAAMC,kBAAkB,GAAG,QAAQ;AAEnC,MAAMC,yBAAyB,GAAG,CAChC,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,EACP,KAAK,CACN;AAED,MAAMC,uBAAuB,GAAIC,OAAe,IAC9CC,KAAK,CAACC,IAAI,CAACF,OAAO,EAAGG,IAAI,IAAK;EAC5B,MAAMC,OAAO,GAAGC,kBAAkB,CAACF,IAAI,CAAC;EACxC,MAAMG,cAAc,GAClBF,OAAO,KAAKD,IAAI,GACZ,IAAIA,IAAI,CAACI,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAACC,WAAW,CAAC,CAAC,EAAE,GACpEN,OAAO;EAEb,OAAO,MAAMjB,MAAM,CAACgB,IAAI,CAAC,IAAIhB,MAAM,CAACmB,cAAc,CAAC,GAAG;AACxD,CAAC,CAAC,CAACK,IAAI,CAAC,EAAE,CAAC;AAEb,MAAMC,qBAAqB,GAAIC,KAAmB,IAAK;EACrD,MAAMC,KAAe,GAAG,EAAE;EAE1B,IAAID,KAAK,EAAE;IACT,KAAK,MAAME,IAAI,IAAIF,KAAK,EAAE;MACxB,IAAIA,KAAK,CAACE,IAAI,CAAC,IAAI,IAAI,EAAE;QACvBD,KAAK,CAACE,IAAI,CAACD,IAAI,CAAC;MAClB;IACF;EACF;EAEA,OAAOD,KAAK,CAACG,MAAM,GAAG,IAAIC,GAAG,CAACJ,KAAK,CAAC,GAAGK,SAAS;AAClD,CAAC;AAED,MAAMC,iBAAiB,GAAIC,MAAwB,IAAK;EACtD,IACE,WAAW,IAAIA,MAAM,IACrB,OAAOA,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ,IACvCA,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,IAC5B,SAAS,IAAIA,MAAM,CAAC,WAAW,CAAC,IAChCA,MAAM,CAAC,WAAW,CAAC,CAACC,OAAO,KAAK,CAAC,IACjC,UAAU,IAAID,MAAM,CAAC,WAAW,CAAC,IACjC,OAAOA,MAAM,CAAC,WAAW,CAAC,CAACE,QAAQ,KAAK,UAAU,EAClD;IACA,OAAOF,MAAM,CAAC,WAAW,CAAC;EAC5B;EAEA,OAAOF,SAAS;AAClB,CAAC;AAED,MAAMK,mBAAmB,GAAGA,CAC1BC,MAAuD,EACvDC,KAAc,KAC8B;EAC5C,MAAMC,MAAM,GAAGF,MAAM,CAACF,QAAQ,CAACG,KAAK,CAAC;EAErC,IACEC,MAAM,IAAI,IAAI,IACd,OAAOA,MAAM,KAAK,QAAQ,KACzB,OAAO,IAAIA,MAAM,IAAK,QAAQ,IAAIA,MAAM,IAAI1B,KAAK,CAAC2B,OAAO,CAACD,MAAM,CAACE,MAAM,CAAE,CAAC,EAC3E;IACA,OAAOF,MAAM;EACf;EAEA,MAAM,IAAIG,KAAK,CAACnC,2BAA2B,CAAC;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASoC,gBAAgBA,CAC9BC,IAAY,EACZC,OAA4B,EAC5BC,QAA0B,EACD;EACzB,MAAM;IACJC,aAAa;IACbC,OAAO;IACPC,eAAe;IACfC,gBAAgB;IAChBC;EACF,CAAC,GAAGC,kBAAkB,CAACP,OAAO,CAAC;EAE/B,MAAMQ,OAAO,GAAGR,OAAO,EAAEQ,OAAO;;EAEhC;EACA;EACA,MAAMC,mBAAmB,GAAIC,MAAmB,IAAK;IACnD,IAAIA,MAAM,CAACC,MAAM,EAAE;MACjB,MAAMC,UAAU,GAAGP,gBAAgB,CAACK,MAAM,CAACG,OAAO,CAAC;MAEnD,IAAID,UAAU,EAAE;QACd,OAAOE,kBAAkB,CAACJ,MAAM,EAAEE,UAAU,EAAEX,QAAQ,EAAEC,aAAa,CAAC;MACxE;IACF;IAEA,OAAOQ,MAAM;EACf,CAAC;EAED,IAAIK,SAAS,GAAGhB,IAAI,CACjBiB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;EAAA,CACrBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;EAAA,CACnBA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;EAAA,CACrBA,OAAO,CAAC,gBAAgB,EAAGC,CAAC,IAAKA,CAAC,CAACxC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;;EAEtD;EACAsC,SAAS,GAAGA,SAAS,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAGH,SAAS,GAAG,GAAGA,SAAS,GAAG;EAEjE,IAAIT,WAAW,EAAE;IACf,MAAMa,WAAW,GAAGJ,SAAS,CAACK,KAAK,CAACd,WAAW,CAAC;IAEhD,IAAIa,WAAW,IAAI,IAAI,EAAE;MACvB,OAAOjC,SAAS;IAClB;IAEA6B,SAAS,GAAGA,SAAS,CAACM,KAAK,CAACF,WAAW,CAAC,CAAC,CAAC,CAACnC,MAAM,CAAC;EACpD;EAEA,IAAIwB,OAAO,KAAKtB,SAAS,EAAE;IACzB;IACA,MAAMoC,MAAqB,GAAG,EAAE;IAEhC,KAAK,MAAMvD,OAAO,IAAIgD,SAAS,CAACQ,KAAK,CAAC,GAAG,CAAC,EAAE;MAC1C,IAAI,CAACxD,OAAO,EAAE;QACZ;MACF;MAEA,IAAI;QACFuD,MAAM,CAACvC,IAAI,CAAC;UAAED,IAAI,EAAE0C,kBAAkB,CAACzD,OAAO;QAAE,CAAC,CAAC;MACpD,CAAC,CAAC,MAAM;QACN,OAAOmB,SAAS;MAClB;IACF;IAEA,IAAIoC,MAAM,CAACtC,MAAM,EAAE;MACjB,OAAOyC,uBAAuB,CAAC1B,IAAI,EAAEuB,MAAM,EAAEpB,aAAa,CAAC;IAC7D;IAEA,OAAOhB,SAAS;EAClB;EAEA,IAAI6B,SAAS,KAAK,GAAG,EAAE;IACrB;IACA;IACA,MAAMK,KAAK,GAAGjB,OAAO,CAACuB,IAAI,CAAEhB,MAAM,IAAKA,MAAM,CAACG,OAAO,KAAK,EAAE,CAAC;IAE7D,IAAIO,KAAK,EAAE;MACT,MAAMV,MAAM,GAAGD,mBAAmB,CAACW,KAAK,CAAC;MAEzC,OAAOK,uBAAuB,CAC5B1B,IAAI,EACJW,MAAM,CAACiB,UAAU,CAACC,GAAG,CAAE9C,IAAI,KAAM;QAAEA;MAAK,CAAC,CAAC,CAAC,EAC3CoB,aAAa,EACbQ,MACF,CAAC;IACH;IAEA,OAAOxB,SAAS;EAClB;;EAEA;EACA;EACA,MAAM2C,eAAe,GAAGd,SAAS,CAACQ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAE/C,IAAIO,mBAAuC;EAE3C,IAAI;IACFA,mBAAmB,GACjBD,eAAe,IAAI,IAAI,GAAGL,kBAAkB,CAACK,eAAe,CAAC,GAAG3C,SAAS;EAC7E,CAAC,CAAC,MAAM;IACN4C,mBAAmB,GAAG5C,SAAS;EACjC;EAEA,KAAK,MAAMwB,MAAM,IAAIP,OAAO,EAAE;IAC5B;IACA,IACE,CAAC4B,oBAAoB,CACnBrB,MAAM,CAACsB,QAAQ,CAAC,CAAC,CAAC,EAClBF,mBAAmB,EACnBD,eACF,CAAC,EACD;MACA;IACF;IAEA,MAAMP,MAAM,GAAGW,kBAAkB,CAAClB,SAAS,EAAEL,MAAM,EAAEN,eAAe,CAAC;IAErE,IAAIkB,MAAM,KAAKpC,SAAS,EAAE;MACxB;IACF;IAEA,IAAIgD,cAAc,GAAGzB,mBAAmB,CAACC,MAAM,CAAC;IAChD,IAAIyB,cAAc,GAAGb,MAAM;IAE3B,IAAIY,cAAc,KAAKxB,MAAM,EAAE;MAC7B,MAAM0B,eAAe,GAAGH,kBAAkB,CACxClB,SAAS,EACTmB,cAAc,EACd9B,eACF,CAAC;MAED,IAAIgC,eAAe,KAAKlD,SAAS,EAAE;QACjCgD,cAAc,GAAGxB,MAAM;MACzB,CAAC,MAAM;QACLyB,cAAc,GAAGC,eAAe;MAClC;IACF;IAEA,MAAMC,KAAK,GAAGZ,uBAAuB,CACnC1B,IAAI,EACJoC,cAAc,EACdjC,aAAa,EACbgC,cACF,CAAC;IAED,IAAIG,KAAK,KAAKnD,SAAS,EAAE;MACvB,OAAOmD,KAAK;IACd;EACF;EAEA,OAAOnD,SAAS;AAClB;AAEA,MAAM6C,oBAAoB,GAAGA,CAC3BO,aAAiC,EACjCC,cAAkC,EAClCC,UAA8B,KAC3B;EACH,IAAID,cAAc,KAAKrD,SAAS,EAAE;IAChC,OAAO,IAAI;EACb;EAEA,IAAIoD,aAAa,KAAKpD,SAAS,EAAE;IAC/B,OAAO,KAAK;EACd;EAEA,IAAIoD,aAAa,KAAK,GAAG,IAAIA,aAAa,CAACG,UAAU,CAAC,GAAG,CAAC,EAAE;IAC1D,OAAO,IAAI;EACb;EAEA,OAAOH,aAAa,KAAKC,cAAc,IAAID,aAAa,KAAKE,UAAU;AACzE,CAAC;;AAED;AACA;AACA;AACA,MAAME,qBAAqB,GAAG,IAAIC,OAAO,CAA+B,CAAC;AAEzE,SAASpC,kBAAkBA,CACzBP,OAAuC,EACvC;EACA,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO4C,sBAAsB,CAAC,CAAC;EACjC;EAEA,MAAMC,MAAM,GAAGH,qBAAqB,CAACI,GAAG,CAAC9C,OAAO,CAAC;EAEjD,IAAI6C,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;EAEApF,kBAAkB,CAACuC,OAAO,CAAC;EAE3B,MAAM+C,SAAS,GAAGH,sBAAsB,CAAC5C,OAAO,CAAC;EAEjD0C,qBAAqB,CAACM,GAAG,CAAChD,OAAO,EAAE+C,SAAS,CAAC;EAE7C,OAAOA,SAAS;AAClB;AAEA,SAASH,sBAAsBA,CAAC5C,OAAqB,EAAE;EACrD,MAAME,aAAa,GAAG+C,gBAAgB,CAACjD,OAAO,CAAC;EAC/C,MAAMG,OAAO,GAAG+C,0BAA0B,CAAChD,aAAa,EAAEF,OAAO,EAAEQ,OAAO,CAAC;EAC3E,MAAM2C,MAAM,GAAGnD,OAAO,EAAED,IAAI,EAAEiB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAEhD,IAAIV,WAA+B;EAEnC,IAAI6C,MAAM,EAAE;IACV,MAAMC,gBAAgB,GAAGD,MAAM,CAACjC,QAAQ,CAAC,GAAG,CAAC,GAAGiC,MAAM,GAAG,GAAGA,MAAM,GAAG;IACrE,MAAME,aAAa,GAAGD,gBAAgB,CACnC7B,KAAK,CAAC,GAAG,CAAC,CACVK,GAAG,CAAC9D,uBAAuB,CAAC,CAC5BY,IAAI,CAAC,GAAG,CAAC;IAEZ4B,WAAW,GAAG,IAAIgD,MAAM,CAAC,IAAID,aAAa,EAAE,CAAC;EAC/C;EAEA,MAAMjD,eAA8C,GAAG,CAAC,CAAC;EACzD,MAAMC,gBAA+C,GAAG,CAAC,CAAC;EAE1D,KAAK,MAAMkD,CAAC,IAAIpD,OAAO,EAAE;IACvB,CAACC,eAAe,CAACmD,CAAC,CAACC,MAAM,CAAC,KAAK,EAAE,EAAEzE,IAAI,CAACwE,CAAC,CAAC;IAE1C,MAAME,QAAQ,GAAGpD,gBAAgB,CAACkD,CAAC,CAAC1C,OAAO,CAAC;IAE5C,IAAI4C,QAAQ,EAAE;MACZC,yBAAyB,CAACD,QAAQ,CAACA,QAAQ,CAACzE,MAAM,GAAG,CAAC,CAAC,EAAEuE,CAAC,CAAC;MAC3DE,QAAQ,CAAC1E,IAAI,CAACwE,CAAC,CAAC;IAClB,CAAC,MAAM;MACLlD,gBAAgB,CAACkD,CAAC,CAAC1C,OAAO,CAAC,GAAG,CAAC0C,CAAC,CAAC;IACnC;EACF;EAEA,OAAO;IACLrD,aAAa;IACbC,OAAO;IACPC,eAAe;IACfC,gBAAgB;IAChBC;EACF,CAAC;AACH;AAEA,SAAS2C,gBAAgBA,CAACjD,OAAqB,EAAE;EAC/C,MAAME,aAAmC,GAAG,EAAE;EAE9C,IAAIF,OAAO,EAAE2D,gBAAgB,EAAE;IAC7BzD,aAAa,CAACnB,IAAI,CAAC;MACjB4E,gBAAgB,EAAE3D,OAAO,CAAC2D,gBAAgB;MAC1CC,aAAa,EAAE;IACjB,CAAC,CAAC;EACJ;EAEA,OAAO1D,aAAa;AACtB;AAEA,SAASgD,0BAA0BA,CACjChD,aAAmC,EACnCM,OAAgD,GAAG,CAAC,CAAC,EACrD;EACA;EACA,MAAML,OAAsB,GAAG,EAAE;EAEjC,KAAK,MAAM0D,GAAG,IAAIrD,OAAO,EAAE;IACzBL,OAAO,CAACpB,IAAI,CACV,GAAG+E,uBAAuB,CAACD,GAAG,EAAErD,OAAO,EAAEN,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CACpE,CAAC;EACH;EAEA,KAAK,IAAI6D,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG5D,OAAO,CAACnB,MAAM,EAAE+E,KAAK,EAAE,EAAE;IACnD,MAAMrD,MAAM,GAAGP,OAAO,CAAC4D,KAAK,CAAC;IAE7B,IAAIrD,MAAM,EAAE;MACVA,MAAM,CAACqD,KAAK,GAAGA,KAAK;IACtB;EACF;EAEA,OAAO5D,OAAO,CAAC6D,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;IAC5B;IACA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA,IAAI1G,YAAY,CAACyG,CAAC,CAACjC,QAAQ,EAAEkC,CAAC,CAAClC,QAAQ,CAAC,EAAE;MACxC,IACEiC,CAAC,CAACtC,UAAU,CAAC3C,MAAM,GAAGkF,CAAC,CAACvC,UAAU,CAAC3C,MAAM,IACzC5B,eAAe,CAAC6G,CAAC,CAACtC,UAAU,EAAEuC,CAAC,CAACvC,UAAU,CAAC,EAC3C;QACA,OAAO,CAAC,CAAC;MACX;MAEA,IACEuC,CAAC,CAACvC,UAAU,CAAC3C,MAAM,GAAGiF,CAAC,CAACtC,UAAU,CAAC3C,MAAM,IACzC5B,eAAe,CAAC8G,CAAC,CAACvC,UAAU,EAAEsC,CAAC,CAACtC,UAAU,CAAC,EAC3C;QACA,OAAO,CAAC;MACV;MAEA,OAAOsC,CAAC,CAACtC,UAAU,CAAC3C,MAAM,GAAGkF,CAAC,CAACvC,UAAU,CAAC3C,MAAM,IAAIiF,CAAC,CAACF,KAAK,GAAGG,CAAC,CAACH,KAAK;IACvE;;IAEA;IACA;IACA,IAAI3G,eAAe,CAAC6G,CAAC,CAACjC,QAAQ,EAAEkC,CAAC,CAAClC,QAAQ,CAAC,EAAE;MAC3C,OAAO,CAAC,CAAC;IACX;IAEA,IAAI5E,eAAe,CAAC8G,CAAC,CAAClC,QAAQ,EAAEiC,CAAC,CAACjC,QAAQ,CAAC,EAAE;MAC3C,OAAO,CAAC;IACV;IAEA,KAAK,IAAImC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACJ,CAAC,CAACjC,QAAQ,CAAChD,MAAM,EAAEkF,CAAC,CAAClC,QAAQ,CAAChD,MAAM,CAAC,EAAEmF,CAAC,EAAE,EAAE;MACvE,MAAMG,QAAQ,GAAGL,CAAC,CAACjC,QAAQ,CAACmC,CAAC,CAAC;MAC9B,MAAMI,QAAQ,GAAGL,CAAC,CAAClC,QAAQ,CAACmC,CAAC,CAAC;;MAE9B;MACA,IAAIG,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAO,CAAC;MACV;;MAEA;MACA,IAAIC,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAO,CAAC,CAAC;MACX;MAEA,MAAMC,SAAS,GAAGF,QAAQ,KAAK,GAAG;MAClC,MAAMG,SAAS,GAAGF,QAAQ,KAAK,GAAG;MAClC,MAAMG,MAAM,GAAGJ,QAAQ,CAAC7B,UAAU,CAAC,GAAG,CAAC;MACvC,MAAMkC,MAAM,GAAGJ,QAAQ,CAAC9B,UAAU,CAAC,GAAG,CAAC;MACvC,MAAMmC,MAAM,GAAGF,MAAM,IAAIJ,QAAQ,CAACO,QAAQ,CAAC,GAAG,CAAC;MAC/C,MAAMC,MAAM,GAAGH,MAAM,IAAIJ,QAAQ,CAACM,QAAQ,CAAC,GAAG,CAAC;;MAE/C;MACA,IAAKL,SAAS,IAAIC,SAAS,IAAMG,MAAM,IAAIE,MAAO,EAAE;QAClD;MACF;;MAEA;MACA,IAAIN,SAAS,IAAI,CAACC,SAAS,EAAE;QAC3B,OAAO,CAAC;MACV;;MAEA;MACA,IAAIA,SAAS,IAAI,CAACD,SAAS,EAAE;QAC3B,OAAO,CAAC,CAAC;MACX;;MAEA;MACA,IAAIE,MAAM,IAAI,CAACC,MAAM,EAAE;QACrB,OAAO,CAAC;MACV;;MAEA;MACA,IAAIA,MAAM,IAAI,CAACD,MAAM,EAAE;QACrB,OAAO,CAAC,CAAC;MACX;;MAEA;MACA,IAAIE,MAAM,IAAI,CAACE,MAAM,EAAE;QACrB,OAAO,CAAC,CAAC;MACX;;MAEA;MACA,IAAIA,MAAM,IAAI,CAACF,MAAM,EAAE;QACrB,OAAO,CAAC;MACV;IACF;IAEA,OAAOX,CAAC,CAACjC,QAAQ,CAAChD,MAAM,GAAGkF,CAAC,CAAClC,QAAQ,CAAChD,MAAM;EAC9C,CAAC,CAAC;AACJ;;AAEA;AACA,SAAS0E,yBAAyBA,CAChCD,QAAiC,EACjC/C,MAAmB,EACnB;EACA,IAAI,CAAC+C,QAAQ,EAAE;IACb;EACF;EAEA,MAAMQ,CAAC,GAAGR,QAAQ,CAAC9B,UAAU;EAC7B,MAAMuC,CAAC,GAAGxD,MAAM,CAACiB,UAAU;;EAE3B;EACA;EACA,MAAMoD,UAAU,GACdd,CAAC,CAACjF,MAAM,GAAGkF,CAAC,CAAClF,MAAM,GAAG5B,eAAe,CAAC6G,CAAC,EAAEC,CAAC,CAAC,GAAG9G,eAAe,CAAC8G,CAAC,EAAED,CAAC,CAAC;EAErE,IAAI,CAACc,UAAU,KAAK,CAACtB,QAAQ,CAAC9C,MAAM,IAAI,CAACD,MAAM,CAACC,MAAM,CAAC,EAAE;IACvD,MAAM,IAAId,KAAK,CACb,iEACEa,MAAM,CAACG,OAAO,uBACOoD,CAAC,CAACvF,IAAI,CAAC,KAAK,CAAC,UAAUwF,CAAC,CAACxF,IAAI,CAClD,KACF,CAAC,yGACH,CAAC;EACH;AACF;AAEA,MAAMuD,kBAAkB,GAAGA,CACzBlB,SAAiB,EACjBL,MAAmB,EACnBN,eAA8C,KAC3C;EACH,IAAI,CAACM,MAAM,CAACsE,KAAK,EAAE;IACjB,OAAO9F,SAAS;EAClB;EAEA,MAAMkC,KAAK,GAAGL,SAAS,CAACK,KAAK,CAACV,MAAM,CAACsE,KAAK,CAAC;EAE3C,IAAI,CAAC5D,KAAK,EAAE;IACV,OAAOlC,SAAS;EAClB;EAEA,IAAI+F,gBAAgB,GAAG,KAAK;EAC5B,MAAMC,aAA4B,GAAG,EAAE;EAEvC,KAAK,MAAM,CAACC,KAAK,EAAEC,SAAS,CAAC,IAAI1E,MAAM,CAACiB,UAAU,CAAC0D,OAAO,CAAC,CAAC,EAAE;IAC5D;IACA;IACA,MAAMC,WAAW,GAAGlF,eAAe,CAACgF,SAAS,CAAC,EAAE1D,IAAI,CACjD6B,CAAC,IACA4B,KAAK,KAAK5B,CAAC,CAAC5B,UAAU,CAAC3C,MAAM,GAAG,CAAC,IACjC5B,eAAe,CAACsD,MAAM,CAACiB,UAAU,EAAE4B,CAAC,CAAC5B,UAAU,CAAC,IAChDvE,eAAe,CAACsD,MAAM,CAACsB,QAAQ,EAAEuB,CAAC,CAACvB,QAAQ,CAC/C,CAAC;IAED,IAAIuD,MAA2C;IAC/C,IAAIC,SAAS,GAAG,KAAK;IAErB,IAAIF,WAAW,IAAIlE,KAAK,CAACqE,MAAM,EAAE;MAC/BF,MAAM,GAAG,CAAC,CAAC;MAEX,KAAK,MAAMG,KAAK,IAAIJ,WAAW,CAACC,MAAM,EAAE;QACtC,IAAIG,KAAK,CAAClC,MAAM,KAAK4B,SAAS,EAAE;UAC9B;QACF;QAEA,MAAM3F,KAAK,GAAG2B,KAAK,CAACqE,MAAM,CAAC,GAAG7H,kBAAkB,GAAG8H,KAAK,CAACP,KAAK,EAAE,CAAC;QAEjE,IAAI1F,KAAK,IAAI,IAAI,EAAE;UACjB8F,MAAM,CAACG,KAAK,CAAC5G,IAAI,CAAC,GAAGI,SAAS;UAC9BsG,SAAS,GAAG,IAAI;UAChB;QACF;QAEA,IAAIG,OAAe;QAEnB,IAAI;UACFA,OAAO,GAAGnE,kBAAkB,CAAC/B,KAAK,CAAC;QACrC,CAAC,CAAC,MAAM;UACN,OAAOP,SAAS;QAClB;;QAEA;QACA;QACA,IAAIwG,KAAK,CAACV,KAAK,IAAIvF,KAAK,KAAKkG,OAAO,IAAI,CAACD,KAAK,CAACV,KAAK,CAACY,IAAI,CAACD,OAAO,CAAC,EAAE;UAClE,OAAOzG,SAAS;QAClB;QAEA,MAAME,MAAM,GAAGkG,WAAW,CAAC1G,KAAK,GAAG8G,KAAK,CAAC5G,IAAI,CAAC;QAE9C,IAAI,CAACM,MAAM,EAAE;UACXmG,MAAM,CAACG,KAAK,CAAC5G,IAAI,CAAC,GAAG6G,OAAO;UAC5BH,SAAS,GAAG,IAAI;UAChB;QACF;QAEA,MAAMhG,MAAM,GAAGL,iBAAiB,CAACC,MAAM,CAAC;QAExC,IAAII,MAAM,EAAE;UACV,MAAME,MAAM,GAAGH,mBAAmB,CAACC,MAAM,EAAEmG,OAAO,CAAC;UAEnD,IAAIjG,MAAM,CAACE,MAAM,EAAE;YACjBqF,gBAAgB,GAAG,IAAI;YACvB;UACF;UAEAM,MAAM,CAACG,KAAK,CAAC5G,IAAI,CAAC,GAAGY,MAAM,CAACD,KAAK;UACjC+F,SAAS,GAAG,IAAI;UAChB;QACF;QAEA,IAAI,OAAOpG,MAAM,KAAK,UAAU,EAAE;UAChCmG,MAAM,CAACG,KAAK,CAAC5G,IAAI,CAAC,GAAGM,MAAM,CAACuG,OAAO,CAAC;UACpCH,SAAS,GAAG,IAAI;UAChB;QACF;QAEA,MAAM,IAAI3F,KAAK,CAAClC,oBAAoB,CAAC;MACvC;MAEA,IAAIsH,gBAAgB,EAAE;QACpB;QACA;MACF;IACF;IAEA,IAAIM,MAAM,IAAIC,SAAS,EAAE;MACvBN,aAAa,CAACnG,IAAI,CAAC;QAAED,IAAI,EAAEsG,SAAS;QAAEG;MAAO,CAAC,CAAC;IACjD,CAAC,MAAM;MACLL,aAAa,CAACnG,IAAI,CAAC;QAAED,IAAI,EAAEsG;MAAU,CAAC,CAAC;IACzC;EACF;EAEA,IAAIH,gBAAgB,EAAE;IACpB,OAAO/F,SAAS;EAClB;EAEA,OAAOgG,aAAa;AACtB,CAAC;AAED,MAAMpB,uBAAuB,GAAGA,CAC9BN,MAAc,EACd8B,WAAoD,EACpDO,QAA8B,EAC9BC,KAAyB,EACzBlC,aAAuB,EACvBjC,UAAoB,KACF;EAClB,MAAMxB,OAAsB,GAAG,EAAE;EAEjCwB,UAAU,CAAC5C,IAAI,CAACyE,MAAM,CAAC;EAEvBI,aAAa,CAAC7E,IAAI,CAACyE,MAAM,CAAC;EAE1B,MAAM9C,MAAM,GAAG4E,WAAW,CAAC9B,MAAM,CAAC;EAElC,IAAI,OAAO9C,MAAM,KAAK,QAAQ,EAAE;IAC9B,MAAMqF,WAAW,GAAGzI,mBAAmB,CACrCwI,KAAK,EACLvI,eAAe,CAACmD,MAAM,CAAC,CAACkB,GAAG,CAAEoE,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAExC;IAAO,CAAC,CAAC,CAC7D,CAAC;IAEDrD,OAAO,CAACpB,IAAI,CAACkH,gBAAgB,CAACzC,MAAM,EAAE,CAAC,GAAG7B,UAAU,CAAC,EAAEoE,WAAW,CAAC,CAAC;EACtE,CAAC,MAAM,IAAI,OAAOrF,MAAM,KAAK,QAAQ,EAAE;IACrC;IACA;IACA;IACA,MAAMwF,aAAa,GACjB,SAAS,IAAIxF,MAAM,GACdA,MAAM,CAACF,OAAO,GACftB,SAAS;IACf,MAAMiH,gBAAgB,GAAG,CAAC,CAACD,aAAa;IACxC,MAAME,YAAY,GAChB,OAAO1F,MAAM,CAACX,IAAI,KAAK,QAAQ,GAC3BzC,mBAAmB,CACjBwI,KAAK,EACLvI,eAAe,CAACmD,MAAM,CAACX,IAAI,CAAC,CAAC6B,GAAG,CAAEoE,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAExC;IAAO,CAAC,CAAC,CAAC,EACjE9C,MAAM,CAAC2F,KACT,CAAC,GACDP,KAAK;IAEX,IAAI,OAAOpF,MAAM,CAACX,IAAI,KAAK,QAAQ,EAAE;MACnC;MACA;MACA,MAAMuG,YAAY,GAAG,EAAE;MAEvB,IAAI5F,MAAM,CAAC6F,KAAK,EAAE;QAChB,KAAK,MAAMA,KAAK,IAAI7F,MAAM,CAAC6F,KAAK,EAAE;UAChC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;YAC7BD,YAAY,CAACvH,IAAI,CACfkH,gBAAgB,CACdzC,MAAM,EACN,CAAC,GAAG7B,UAAU,CAAC,EACfrE,mBAAmB,CACjBwI,KAAK,EACLvI,eAAe,CAACgJ,KAAK,CAAC,CAAC3E,GAAG,CAAEoE,IAAI,KAAM;cAAE,GAAGA,IAAI;cAAExC;YAAO,CAAC,CAAC,CAC5D,CAAC,EACD9C,MAAM,CAAC9B,KAAK,EACZuH,gBAAgB,EAChB,KACF,CACF,CAAC;UACH,CAAC,MAAM,IAAI,OAAOI,KAAK,KAAK,QAAQ,EAAE;YACpCD,YAAY,CAACvH,IAAI,CACfkH,gBAAgB,CACdzC,MAAM,EACN,CAAC,GAAG7B,UAAU,CAAC,EACfrE,mBAAmB,CACjBwI,KAAK,EACLvI,eAAe,CAACgJ,KAAK,CAACxG,IAAI,CAAC,CAAC6B,GAAG,CAAEoE,IAAI,KAAM;cACzC,GAAGA,IAAI;cACPxC;YACF,CAAC,CAAC,CAAC,EACH+C,KAAK,CAACF,KACR,CAAC,EACDE,KAAK,CAAC3H,KAAK,EACXuH,gBAAgB,EAChBI,KAAK,CAAC5F,MAAM,KAAK,IACnB,CACF,CAAC;UACH;QACF;MACF;MAEAR,OAAO,CAACpB,IAAI,CACVkH,gBAAgB,CACdzC,MAAM,EACN,CAAC,GAAG7B,UAAU,CAAC,EACfyE,YAAY,EACZ1F,MAAM,CAAC9B,KAAK,EACZuH,gBAAgB,EAChBzF,MAAM,CAACC,MAAM,KAAK,IACpB,CACF,CAAC;MAEDR,OAAO,CAACpB,IAAI,CAAC,GAAGuH,YAAY,CAAC;IAC/B;IAEA,IACE,OAAO5F,MAAM,KAAK,QAAQ,IAC1B,OAAOA,MAAM,CAACX,IAAI,KAAK,QAAQ,IAC/BW,MAAM,CAAC6F,KAAK,EAAEvH,MAAM,EACpB;MACA,MAAM,IAAIa,KAAK,CACb,WAAW2D,MAAM,qFACnB,CAAC;IACH;IAEA,IAAI0C,aAAa,EAAE;MACjB;MACA,IACE,kBAAkB,IAAIxF,MAAM,IAC5B,OAAOA,MAAM,CAACiD,gBAAgB,KAAK,QAAQ,EAC3C;QACAkC,QAAQ,CAAC9G,IAAI,CAAC;UACZ4E,gBAAgB,EAAEjD,MAAM,CAACiD,gBAAgB;UACzCC;QACF,CAAC,CAAC;MACJ;MAEA,KAAK,MAAM4C,YAAY,IAAIN,aAAa,EAAE;QACxC,MAAMxG,MAAM,GAAGoE,uBAAuB,CACpC0C,YAAY,EACZN,aAAa,EACbL,QAAQ,EACRO,YAAY,EACZ,CAAC,GAAGxC,aAAa,CAAC,EAClBjC,UACF,CAAC;QAEDxB,OAAO,CAACpB,IAAI,CAAC,GAAGW,MAAM,CAAC;MACzB;IACF;EACF;EAEAiC,UAAU,CAAC8E,GAAG,CAAC,CAAC;EAEhB,OAAOtG,OAAO;AAChB,CAAC;AAED,MAAM8F,gBAAgB,GAAGA,CACvBzC,MAAc,EACd7B,UAAoB,EACpBmE,KAAyB,EACzBlH,KAAmB,EACnBuH,gBAAgB,GAAG,KAAK,EACxBxF,MAAM,GAAG,KAAK,KACE;EAChB,IAAIqE,KAAyB;EAE7B,MAAMhD,QAAkB,GAAG,EAAE;EAC7B,MAAMuD,MAA6B,GAAG,EAAE;EACxC,MAAMmB,cAAc,GAAG,IAAIzH,GAAG,CAAS,CAAC;EAExC,IAAI6G,KAAK,CAAC9G,MAAM,EAAE;IAChB,IAAI2H,WAAW,GAAG,IAAI;IACtB,IAAIxB,KAAK,GAAG,CAAC;IAEb,KAAK,MAAMa,IAAI,IAAIF,KAAK,EAAE;MACxB9D,QAAQ,CAACjD,IAAI,CAACiH,IAAI,CAACjI,OAAO,CAAC;MAE3B,IAAIiI,IAAI,CAACN,KAAK,EAAE;QACd;QACA;QACA,MAAMkB,GAAG,GAAGZ,IAAI,CAAChB,KAAK,GAClB,MAAMgB,IAAI,CAAChB,KAAK,8BAA8B,GAC9C,OAAO;QAEX2B,WAAW,IAAI,QAAQ/I,kBAAkB,GAAGuH,KAAK,IAAIyB,GAAG,QAAQZ,IAAI,CAACa,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG;QAC3FtB,MAAM,CAACxG,IAAI,CAAC;UACVoG,KAAK;UACL3B,MAAM,EAAEwC,IAAI,CAACxC,MAAM;UACnB1E,IAAI,EAAEkH,IAAI,CAACN,KAAK;UAChBV,KAAK,EAAEgB,IAAI,CAAChB,KAAK,GAAG,IAAI1B,MAAM,CAAC,OAAO0C,IAAI,CAAChB,KAAK,IAAI,CAAC,GAAG9F;QAC1D,CAAC,CAAC;QAEF,IAAI8G,IAAI,CAACxC,MAAM,KAAKA,MAAM,EAAE;UAC1BkD,cAAc,CAACI,GAAG,CAACd,IAAI,CAACN,KAAK,CAAC;QAChC;MACF,CAAC,MAAM,IAAIM,IAAI,CAACjI,OAAO,KAAK,GAAG,EAAE;QAC/B4I,WAAW,IAAI,OAAO;MACxB,CAAC,MAAM;QACLA,WAAW,IAAI,GAAG7I,uBAAuB,CAACkI,IAAI,CAACjI,OAAO,CAAC,KAAK;MAC9D;MAEAoH,KAAK,EAAE;IACT;IAEAwB,WAAW,IAAI,IAAI;IACnB3B,KAAK,GAAG,IAAI1B,MAAM,CAACqD,WAAW,CAAC;EACjC;EAEA,MAAM9F,OAAO,GAAGmB,QAAQ,CAACtD,IAAI,CAAC,GAAG,CAAC;EAElC,OAAO;IACL8E,MAAM;IACNO,KAAK,EAAE,CAAC;IACRiB,KAAK;IACLnE,OAAO;IACPmB,QAAQ;IACRuD,MAAM;IACN5D,UAAU;IACV/C,KAAK;IACLmI,kBAAkB,EAAEpI,qBAAqB,CAACC,KAAK,CAAC;IAChD8H,cAAc;IACdP,gBAAgB;IAChBxF;EACF,CAAC;AACH,CAAC;AAED,MAAMG,kBAAkB,GAAGA,CACzBM,KAAkB,EAClBR,UAAyB,EACzBX,QAAqE,EACrEC,aAAmC,KAChC;EACH;EACA,MAAM8G,iBAA2B,GAAG,EAAE;EAEtC,IAAIC,OAAO,GAAGhH,QAAQ;EAEtB,OAAOgH,OAAO,EAAE3F,MAAM,CAACtC,MAAM,EAAE;IAC7B,MAAMmG,KAAK,GACT,OAAO8B,OAAO,CAAC9B,KAAK,KAAK,QAAQ,GAC7B8B,OAAO,CAAC9B,KAAK,GACb8B,OAAO,CAAC3F,MAAM,CAACtC,MAAM,GAAG,CAAC;IAE/B,MAAMkI,KAAK,GAAGD,OAAO,CAAC3F,MAAM,CAAC6D,KAAK,CAAC;IAEnC,IAAI+B,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEAF,iBAAiB,CAACjI,IAAI,CAACmI,KAAK,CAACpI,IAAI,CAAC;IAClCmI,OAAO,GAAGC,KAAK,CAAC7E,KAAK;EACvB;;EAEA;EACA;EACA,MAAM8E,KAAK,GAAIxF,UAAoB,IAAK;IACtC,IAAIyF,OAAO,GAAG,CAAC;IAEf,OACEzF,UAAU,CAACyF,OAAO,CAAC,KAAKlI,SAAS,IACjCyC,UAAU,CAACyF,OAAO,CAAC,KAAKJ,iBAAiB,CAACI,OAAO,CAAC,EAClD;MACAA,OAAO,EAAE;IACX;IAEA,IAAIC,OAAO,GAAG,CAAC;IAEf,KAAK,MAAM3G,MAAM,IAAIR,aAAa,EAAE;MAClC,IACE9C,eAAe,CAACuE,UAAU,EAAEjB,MAAM,CAACkD,aAAa,CAAC,IACjDjC,UAAU,CAACjB,MAAM,CAACkD,aAAa,CAAC5E,MAAM,CAAC,KAAK0B,MAAM,CAACiD,gBAAgB,EACnE;QACA0D,OAAO,EAAE;MACX;IACF;IAEA,OAAO;MAAED,OAAO;MAAEC;IAAQ,CAAC;EAC7B,CAAC;EAED,IAAIC,QAAQ,GAAGlG,KAAK;EACpB,IAAImG,IAAI,GAAG;IAAEH,OAAO,EAAE,CAAC,CAAC;IAAEC,OAAO,EAAE,CAAC;EAAE,CAAC;EAEvC,KAAK,MAAMG,SAAS,IAAI5G,UAAU,EAAE;IAClC,IAAI,CAAC4G,SAAS,CAAC7G,MAAM,EAAE;MACrB;IACF;IAEA,MAAM;MAAEyG,OAAO;MAAEC;IAAQ,CAAC,GAAGF,KAAK,CAACK,SAAS,CAAC7F,UAAU,CAAC;IAExD,MAAM8F,MAAM,GACVL,OAAO,KAAKG,IAAI,CAACH,OAAO,GACpBA,OAAO,GAAGG,IAAI,CAACH,OAAO,GACtBC,OAAO,KAAKE,IAAI,CAACF,OAAO,GACtBA,OAAO,GAAGE,IAAI,CAACF,OAAO,GACtBG,SAAS,CAACzD,KAAK,GAAGuD,QAAQ,CAACvD,KAAK;IAExC,IAAI0D,MAAM,EAAE;MACVH,QAAQ,GAAGE,SAAS;MACpBD,IAAI,GAAG;QAAEH,OAAO;QAAEC;MAAQ,CAAC;IAC7B;EACF;EAEA,OAAOC,QAAQ;AACjB,CAAC;;AAED;AACA,MAAMI,gBAAgB,GAAGA,CACvBtC,SAAiB,EACjBxB,aAAuB,EACvB1D,aAAmC,KACZ;EACvB,KAAK,MAAMQ,MAAM,IAAIR,aAAa,EAAE;IAClC,IAAI0D,aAAa,CAAC5E,MAAM,KAAK0B,MAAM,CAACkD,aAAa,CAAC5E,MAAM,EAAE;MACxD,IAAI2I,WAAW,GAAG,IAAI;MACtB,KAAK,IAAIxD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,aAAa,CAAC5E,MAAM,EAAEmF,CAAC,EAAE,EAAE;QAC7C,MAAMyD,YAAY,GAAGhE,aAAa,CAACO,CAAC,CAAC;QACrC,MAAM0D,kBAAkB,GAAGnH,MAAM,CAACkD,aAAa,CAACO,CAAC,CAAC;QAElD,IACEyD,YAAY,IAAI,IAAI,IACpBC,kBAAkB,IAAI,IAAI,IAC1BD,YAAY,CAACE,aAAa,CAACD,kBAAkB,CAAC,KAAK,CAAC,EACpD;UACAF,WAAW,GAAG,KAAK;UACnB;QACF;MACF;MACA,IAAIA,WAAW,EAAE;QACf,OAAOvC,SAAS,KAAK1E,MAAM,CAACiD,gBAAgB,GACxCjD,MAAM,CAACiD,gBAAgB,GACvBzE,SAAS;MACf;IACF;EACF;EACA,OAAOA,SAAS;AAClB,CAAC;;AAED;AACA;AACA,MAAM6I,iBAAiB,GAAGA,CACxBC,YAAgC,EAChCd,KAAkB,EAClBe,OAAgB,KACC;EACjB,IAAIA,OAAO,EAAE;IACX,IAAID,YAAY,EAAE;MAChB,OAAO;QACL7C,KAAK,EAAE,CAAC;QACR7D,MAAM,EAAE,CAAC;UAAExC,IAAI,EAAEkJ;QAAa,CAAC,EAAEd,KAAK;MACxC,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACL5F,MAAM,EAAE,CAAC4F,KAAK;MAChB,CAAC;IACH;EACF,CAAC,MAAM;IACL,IAAIc,YAAY,EAAE;MAChB,OAAO;QACL7C,KAAK,EAAE,CAAC;QACR7D,MAAM,EAAE,CAAC;UAAExC,IAAI,EAAEkJ;QAAa,CAAC,EAAE;UAAE,GAAGd,KAAK;UAAE7E,KAAK,EAAE;YAAEf,MAAM,EAAE;UAAG;QAAE,CAAC;MACtE,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACLA,MAAM,EAAE,CAAC;UAAE,GAAG4F,KAAK;UAAE7E,KAAK,EAAE;YAAEf,MAAM,EAAE;UAAG;QAAE,CAAC;MAC9C,CAAC;IACH;EACF;AACF,CAAC;AAED,MAAMG,uBAAuB,GAAGA,CAC9B1B,IAAY,EACZuB,MAAqB,EACrBpB,aAAmC,EACnCoF,WAAyB,KACI;EAC7B,IAAI4B,KAAK,GAAG5F,MAAM,CAAC4G,KAAK,CAAC,CAAC;EAE1B,IAAIhB,KAAK,IAAI,IAAI,EAAE;IACjB,OAAOhI,SAAS;EAClB;EAEA,MAAM0E,aAAuB,GAAG,EAAE;EAElC,IAAIoE,YAAY,GAAGN,gBAAgB,CAACR,KAAK,CAACpI,IAAI,EAAE8E,aAAa,EAAE1D,aAAa,CAAC;EAE7E0D,aAAa,CAAC7E,IAAI,CAACmI,KAAK,CAACpI,IAAI,CAAC;EAE9B,MAAMuD,KAAmB,GAAG0F,iBAAiB,CAC3CC,YAAY,EACZd,KAAK,EACL5F,MAAM,CAACtC,MAAM,KAAK,CACpB,CAAC;EAED,IAAIsC,MAAM,CAACtC,MAAM,GAAG,CAAC,EAAE;IACrB,IAAImJ,WAAW,GAAG9F,KAAK;IAEvB,IAAI+F,SAAS,GAAG9G,MAAM,CAAC4G,KAAK,CAAC,CAAC;IAE9B,OAAOE,SAAS,IAAI,IAAI,EAAE;MACxBlB,KAAK,GAAGkB,SAAS;MACjBJ,YAAY,GAAGN,gBAAgB,CAACR,KAAK,CAACpI,IAAI,EAAE8E,aAAa,EAAE1D,aAAa,CAAC;MAEzE,MAAMmI,gBAAgB,GACpBF,WAAW,CAAChD,KAAK,IAAIgD,WAAW,CAAC7G,MAAM,CAACtC,MAAM,GAAG,CAAC;MACpD,MAAMsJ,WAAW,GAAGH,WAAW,CAAC7G,MAAM,CAAC+G,gBAAgB,CAAC;MAExD,IAAIC,WAAW,IAAI,IAAI,EAAE;QACvB,MAAM,IAAIzI,KAAK,CAAC,kCAAkCwI,gBAAgB,GAAG,CAAC;MACxE;MAEAC,WAAW,CAACjG,KAAK,GAAG0F,iBAAiB,CACnCC,YAAY,EACZd,KAAK,EACL5F,MAAM,CAACtC,MAAM,KAAK,CACpB,CAAC;MAED,IAAIsC,MAAM,CAACtC,MAAM,GAAG,CAAC,EAAE;QACrB,IAAIsJ,WAAW,CAACjG,KAAK,IAAI,IAAI,EAAE;UAC7B,MAAM,IAAIxC,KAAK,CACb,yCAAyCqH,KAAK,CAACpI,IAAI,IACrD,CAAC;QACH;QAEAqJ,WAAW,GAAGG,WAAW,CAACjG,KAAK;MACjC;MAEAuB,aAAa,CAAC7E,IAAI,CAACmI,KAAK,CAACpI,IAAI,CAAC;MAC9BsJ,SAAS,GAAG9G,MAAM,CAAC4G,KAAK,CAAC,CAAC;IAC5B;EACF;EAEA,MAAMK,YAAY,GAAGlL,gBAAgB,CAACgF,KAAK,CAAC;EAE5C,IAAIkG,YAAY,IAAI,IAAI,EAAE;IACxB,OAAOrJ,SAAS;EAClB;EAEAqJ,YAAY,CAACxI,IAAI,GAAGA,IAAI,CAACiB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAE3C,MAAMwH,WAAW,GAAGC,gBAAgB,CAClC1I,IAAI,EACJuF,WAAW,EAAE1G,KAAK,EAClB0G,WAAW,EAAEoB,cAAc,EAC3BpB,WAAW,EAAEyB,kBAAkB,EAC/BzB,WAAW,EAAEa,gBAAgB,EAC7BoC,YAAY,CAAChD,MACf,CAAC;EAED,IAAI,CAACiD,WAAW,CAACE,KAAK,EAAE;IACtB,OAAOxJ,SAAS;EAClB;EAEA,IAAIsJ,WAAW,CAACjD,MAAM,EAAE;IACtBgD,YAAY,CAAChD,MAAM,GAAG;MAAE,GAAGgD,YAAY,CAAChD,MAAM;MAAE,GAAGiD,WAAW,CAACjD;IAAO,CAAC;EACzE;EAEA,OAAOlD,KAAK;AACd,CAAC;AAED,MAAMoG,gBAAgB,GAAGA,CACvB1I,IAAY,EACZ4I,WAAyB,EACzBjC,cAA2B,GAAG,IAAIzH,GAAG,CAAC,CAAC,EACvC8H,kBAAgC,EAChCZ,gBAAgB,GAAG,KAAK,EACxByC,WAAoB,KAGE;EACtB,MAAMC,UAAU,GAAG9I,IAAI,CAAC+I,OAAO,CAAC,GAAG,CAAC;EACpC,MAAMC,KAAK,GAAGF,UAAU,KAAK,CAAC,CAAC,GAAG3J,SAAS,GAAGa,IAAI,CAACsB,KAAK,CAACwH,UAAU,GAAG,CAAC,CAAC;EACxE,MAAMtD,MAA+B,GAAGwD,KAAK,GAAG5L,WAAW,CAACyB,KAAK,CAACmK,KAAK,CAAC,GAAG,CAAC,CAAC;;EAE7E;EACA,KAAK,MAAMjK,IAAI,IAAI4H,cAAc,EAAE;IACjC;IACA,OAAOnB,MAAM,CAACzG,IAAI,CAAC;EACrB;EAEA,IAAI6J,WAAW,EAAE;IACf,KAAK,MAAM7J,IAAI,IAAI6J,WAAW,EAAE;MAC9B,MAAMvJ,MAAM,GAAGuJ,WAAW,CAAC7J,IAAI,CAAC;MAEhC,IAAI,CAACM,MAAM,IAAIsH,cAAc,CAACsC,GAAG,CAAClK,IAAI,CAAC,EAAE;QACvC;MACF;MAEA,MAAMU,MAAM,GAAGL,iBAAiB,CAACC,MAAM,CAAC;MAExC,IAAI,CAAC6J,MAAM,CAACC,MAAM,CAAC3D,MAAM,EAAEzG,IAAI,CAAC,EAAE;QAChC,IAAI,CAACU,MAAM,EAAE;UACX;QACF;QAEA,MAAME,MAAM,GAAGH,mBAAmB,CAACC,MAAM,EAAEN,SAAS,CAAC;QAErD,IAAIQ,MAAM,CAACE,MAAM,EAAE;UACjB,OAAO;YAAE8I,KAAK,EAAE;UAAM,CAAC;QACzB;QAEA,IAAIhJ,MAAM,CAACD,KAAK,KAAKP,SAAS,EAAE;UAC9BqG,MAAM,CAACzG,IAAI,CAAC,GAAGY,MAAM,CAACD,KAAK;QAC7B;QAEA;MACF;MAEA,IAAID,MAAM,EAAE;QACV,MAAME,MAAM,GAAGH,mBAAmB,CAACC,MAAM,EAAE+F,MAAM,CAACzG,IAAI,CAAC,CAAC;QAExD,IAAIY,MAAM,CAACE,MAAM,EAAE;UACjB,OAAO;YAAE8I,KAAK,EAAE;UAAM,CAAC;QACzB;QAEAnD,MAAM,CAACzG,IAAI,CAAC,GAAGY,MAAM,CAACD,KAAK;QAC3B;MACF;MAEA,MAAMA,KAAK,GAAGzB,KAAK,CAAC2B,OAAO,CAAC4F,MAAM,CAACzG,IAAI,CAAC,CAAC,GACrCyG,MAAM,CAACzG,IAAI,CAAC,CAAC,CAAC,CAAC,GACfyG,MAAM,CAACzG,IAAI,CAAC;MAEhB,IAAI,OAAOW,KAAK,KAAK,QAAQ,EAAE;QAC7B;QACA,OAAO8F,MAAM,CAACzG,IAAI,CAAC;QACnB;MACF;MAEA,IAAI,OAAOM,MAAM,KAAK,UAAU,EAAE;QAChCmG,MAAM,CAACzG,IAAI,CAAC,GAAGM,MAAM,CAACK,KAAK,CAAC;QAC5B;MACF;MAEA,MAAM,IAAII,KAAK,CAAClC,oBAAoB,CAAC;IACvC;EACF;EAEA,IACEwI,gBAAgB,IAChB,CAACY,kBAAkB,EAAEiC,GAAG,CAAC,QAAQ,CAAC,KACjC,OAAOzD,MAAM,CAAC/B,MAAM,KAAK,QAAQ,IAC/BoF,WAAW,IAAI,IAAI,IAClB,QAAQ,IAAIA,WAAW,IACvB,OAAOA,WAAW,CAACpF,MAAM,KAAK,QAAS,CAAC,EAC5C;IACA,KAAK,MAAM1E,IAAI,IAAIjB,yBAAyB,EAAE;MAC5C,IAAI,CAACkJ,kBAAkB,EAAEiC,GAAG,CAAClK,IAAI,CAAC,EAAE;QAClC;QACA,OAAOyG,MAAM,CAACzG,IAAI,CAAC;MACrB;IACF;EACF;EAEA,OAAO;IACL4J,KAAK,EAAE,IAAI;IACXnD,MAAM,EAAE0D,MAAM,CAACE,IAAI,CAAC5D,MAAM,CAAC,CAACvG,MAAM,GAAGuG,MAAM,GAAGrG;EAChD,CAAC;AACH,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { getFocusedRouteNameFromRoute } from "./getFocusedRouteNameFromRoute.js"
|
|
|
10
10
|
export { getPathFromState } from "./getPathFromState.js";
|
|
11
11
|
export { getStateFromPath } from "./getStateFromPath.js";
|
|
12
12
|
export { NavigationContainerRefContext } from "./NavigationContainerRefContext.js";
|
|
13
|
+
export { NavigationFocusedRouteStateContext } from "./NavigationFocusedRouteStateContext.js";
|
|
13
14
|
export { NavigationHelpersContext } from "./NavigationHelpersContext.js";
|
|
14
15
|
export { NavigationIndependentTree } from "./NavigationIndependentTree.js";
|
|
15
16
|
export { NavigationMetaContext } from "./NavigationMetaContext.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","getLoaderForState","UNSTABLE_getLoaderForState","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationHelpersContext","NavigationIndependentTree","NavigationMetaContext","NavigationContext","NavigationProvider","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","createPathConfigForStaticNavigation","createScreenFactory","ThemeContext","ThemeProvider","useTheme","PrivateValueStore","useFocusEffect","IsFocusedContext","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationIndependentTree","useNavigationState","usePreventRemove","usePreventRemoveContext","useRoute","useStateForPath","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SACEC,sBAAsB,QAEjB,6BAA0B;AACjC,SAASC,iBAAiB,IAAIC,0BAA0B,QAAQ,kBAAe;AAC/E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,mCAAmC,EACnCC,mBAAmB,QASd,uBAAoB;AAC3B,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,aAAa,QAAQ,4BAAyB;AACvD,SAASC,QAAQ,QAAQ,uBAAoB;
|
|
1
|
+
{"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","getLoaderForState","UNSTABLE_getLoaderForState","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationFocusedRouteStateContext","NavigationHelpersContext","NavigationIndependentTree","NavigationMetaContext","NavigationContext","NavigationProvider","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","createPathConfigForStaticNavigation","createScreenFactory","ThemeContext","ThemeProvider","useTheme","PrivateValueStore","useFocusEffect","IsFocusedContext","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationIndependentTree","useNavigationState","usePreventRemove","usePreventRemoveContext","useRoute","useStateForPath","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SACEC,sBAAsB,QAEjB,6BAA0B;AACjC,SAASC,iBAAiB,IAAIC,0BAA0B,QAAQ,kBAAe;AAC/E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAEEC,kCAAkC,QAC7B,yCAAsC;AAC7C,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,mCAAmC,EACnCC,mBAAmB,QASd,uBAAoB;AAC3B,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,aAAa,QAAQ,4BAAyB;AACvD,SAASC,QAAQ,QAAQ,uBAAoB;AA0C7C,SAASC,iBAAiB,QAAQ,YAAS;AAC3C,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,gBAAgB,EAAEC,YAAY,QAAQ,mBAAgB;AAC/D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,cAAc,2BAA2B","ignoreList":[]}
|
|
@@ -35,7 +35,11 @@ export function useFocusEvents({
|
|
|
35
35
|
}), [currentFocusedKey, emitter, navigation]);
|
|
36
36
|
React.useEffect(() => {
|
|
37
37
|
const lastFocusedKey = lastFocusedKeyRef.current;
|
|
38
|
-
|
|
38
|
+
const isFocused = navigation ? navigation.isFocused() : true;
|
|
39
|
+
if (isFocused) {
|
|
40
|
+
// Remember the current route as focused if the navigator is focused
|
|
41
|
+
lastFocusedKeyRef.current = currentFocusedKey;
|
|
42
|
+
}
|
|
39
43
|
|
|
40
44
|
// We wouldn't have `lastFocusedKey` on initial mount
|
|
41
45
|
// Fire focus event for the current route on mount if there's no parent navigator
|
|
@@ -48,7 +52,7 @@ export function useFocusEvents({
|
|
|
48
52
|
|
|
49
53
|
// We should only emit events when the focused key changed and navigator is focused
|
|
50
54
|
// When navigator is not focused, screens inside shouldn't receive focused status either
|
|
51
|
-
if (lastFocusedKey === currentFocusedKey || !
|
|
55
|
+
if (lastFocusedKey === currentFocusedKey || !isFocused) {
|
|
52
56
|
return;
|
|
53
57
|
}
|
|
54
58
|
if (lastFocusedKey === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationContext","useFocusEvents","state","emitter","navigation","use","lastFocusedKeyRef","useRef","undefined","currentFocusedRoute","routes","index","Error","currentFocusedKey","key","useEffect","addListener","current","emit","type","target","lastFocusedKey","isFocused"],"sourceRoot":"../../src","sources":["useFocusEvents.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,iBAAiB,QAAQ,yBAAsB;AASxD;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAgC;EAC5DC,KAAK;EACLC;AACc,CAAC,EAAE;EACjB,MAAMC,UAAU,GAAGL,KAAK,CAACM,GAAG,CAACL,iBAAiB,CAAC;EAC/C,MAAMM,iBAAiB,GAAGP,KAAK,CAACQ,MAAM,CAAqBC,SAAS,CAAC;EAErE,MAAMC,mBAAmB,GAAGP,KAAK,CAACQ,MAAM,CAACR,KAAK,CAACS,KAAK,CAAC;EAErD,IAAIF,mBAAmB,IAAI,IAAI,EAAE;IAC/B,MAAM,IAAIG,KAAK,CAAC,kCAAkCV,KAAK,CAACS,KAAK,GAAG,CAAC;EACnE;EAEA,MAAME,iBAAiB,GAAGJ,mBAAmB,CAACK,GAAG;;EAEjD;EACA;EACAf,KAAK,CAACgB,SAAS,CACb,MACEX,UAAU,EAAEY,WAAW,CAAC,OAAO,EAAE,MAAM;IACrCV,iBAAiB,CAACW,OAAO,GAAGJ,iBAAiB;IAC7CV,OAAO,CAACe,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAEP;IAAkB,CAAC,CAAC;EAC5D,CAAC,CAAC,EACJ,CAACA,iBAAiB,EAAEV,OAAO,EAAEC,UAAU,CACzC,CAAC;EAEDL,KAAK,CAACgB,SAAS,CACb,MACEX,UAAU,EAAEY,WAAW,CAAC,MAAM,EAAE,MAAM;IACpCV,iBAAiB,CAACW,OAAO,GAAGT,SAAS;IACrCL,OAAO,CAACe,IAAI,CAAC;MAAEC,IAAI,EAAE,MAAM;MAAEC,MAAM,EAAEP;IAAkB,CAAC,CAAC;EAC3D,CAAC,CAAC,EACJ,CAACA,iBAAiB,EAAEV,OAAO,EAAEC,UAAU,CACzC,CAAC;EAEDL,KAAK,CAACgB,SAAS,CAAC,MAAM;IACpB,MAAMM,cAAc,GAAGf,iBAAiB,CAACW,OAAO;
|
|
1
|
+
{"version":3,"names":["React","NavigationContext","useFocusEvents","state","emitter","navigation","use","lastFocusedKeyRef","useRef","undefined","currentFocusedRoute","routes","index","Error","currentFocusedKey","key","useEffect","addListener","current","emit","type","target","lastFocusedKey","isFocused"],"sourceRoot":"../../src","sources":["useFocusEvents.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,iBAAiB,QAAQ,yBAAsB;AASxD;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAgC;EAC5DC,KAAK;EACLC;AACc,CAAC,EAAE;EACjB,MAAMC,UAAU,GAAGL,KAAK,CAACM,GAAG,CAACL,iBAAiB,CAAC;EAC/C,MAAMM,iBAAiB,GAAGP,KAAK,CAACQ,MAAM,CAAqBC,SAAS,CAAC;EAErE,MAAMC,mBAAmB,GAAGP,KAAK,CAACQ,MAAM,CAACR,KAAK,CAACS,KAAK,CAAC;EAErD,IAAIF,mBAAmB,IAAI,IAAI,EAAE;IAC/B,MAAM,IAAIG,KAAK,CAAC,kCAAkCV,KAAK,CAACS,KAAK,GAAG,CAAC;EACnE;EAEA,MAAME,iBAAiB,GAAGJ,mBAAmB,CAACK,GAAG;;EAEjD;EACA;EACAf,KAAK,CAACgB,SAAS,CACb,MACEX,UAAU,EAAEY,WAAW,CAAC,OAAO,EAAE,MAAM;IACrCV,iBAAiB,CAACW,OAAO,GAAGJ,iBAAiB;IAC7CV,OAAO,CAACe,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAEP;IAAkB,CAAC,CAAC;EAC5D,CAAC,CAAC,EACJ,CAACA,iBAAiB,EAAEV,OAAO,EAAEC,UAAU,CACzC,CAAC;EAEDL,KAAK,CAACgB,SAAS,CACb,MACEX,UAAU,EAAEY,WAAW,CAAC,MAAM,EAAE,MAAM;IACpCV,iBAAiB,CAACW,OAAO,GAAGT,SAAS;IACrCL,OAAO,CAACe,IAAI,CAAC;MAAEC,IAAI,EAAE,MAAM;MAAEC,MAAM,EAAEP;IAAkB,CAAC,CAAC;EAC3D,CAAC,CAAC,EACJ,CAACA,iBAAiB,EAAEV,OAAO,EAAEC,UAAU,CACzC,CAAC;EAEDL,KAAK,CAACgB,SAAS,CAAC,MAAM;IACpB,MAAMM,cAAc,GAAGf,iBAAiB,CAACW,OAAO;IAEhD,MAAMK,SAAS,GAAGlB,UAAU,GAAGA,UAAU,CAACkB,SAAS,CAAC,CAAC,GAAG,IAAI;IAE5D,IAAIA,SAAS,EAAE;MACb;MACAhB,iBAAiB,CAACW,OAAO,GAAGJ,iBAAiB;IAC/C;;IAEA;IACA;IACA,IAAIQ,cAAc,KAAKb,SAAS,IAAI,CAACJ,UAAU,EAAE;MAC/CD,OAAO,CAACe,IAAI,CAAC;QAAEC,IAAI,EAAE,OAAO;QAAEC,MAAM,EAAEP;MAAkB,CAAC,CAAC;IAC5D;;IAEA;IACA;IACA,IAAIQ,cAAc,KAAKR,iBAAiB,IAAI,CAACS,SAAS,EAAE;MACtD;IACF;IAEA,IAAID,cAAc,KAAKb,SAAS,EAAE;MAChC;MACA;IACF;IAEAL,OAAO,CAACe,IAAI,CAAC;MAAEC,IAAI,EAAE,MAAM;MAAEC,MAAM,EAAEC;IAAe,CAAC,CAAC;IACtDlB,OAAO,CAACe,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAEP;IAAkB,CAAC,CAAC;EAC5D,CAAC,EAAE,CAACA,iBAAiB,EAAEV,OAAO,EAAEC,UAAU,CAAC,CAAC;AAC9C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLazyValue","create","lazyRef","useRef","undefined","current"],"sourceRoot":"../../src","sources":["useLazyValue.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,YAAYA,CAAIC,MAAe,
|
|
1
|
+
{"version":3,"names":["React","useLazyValue","create","lazyRef","useRef","undefined","current"],"sourceRoot":"../../src","sources":["useLazyValue.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,YAAYA,CAAIC,MAAe,EAAK;EAClD,MAAMC,OAAO,GAAGH,KAAK,CAACI,MAAM,CAAIC,SAAS,CAAC;EAE1C,IAAIF,OAAO,CAACG,OAAO,KAAKD,SAAS,EAAE;IACjCF,OAAO,CAACG,OAAO,GAAGJ,MAAM,CAAC,CAAC;EAC5B;EAEA,OAAOC,OAAO,CAACG,OAAO;AACxB","ignoreList":[]}
|