@react-navigation/core 8.0.0-alpha.23 → 8.0.0-alpha.25

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.
Files changed (153) hide show
  1. package/lib/module/BaseNavigationContainer.js +5 -2
  2. package/lib/module/BaseNavigationContainer.js.map +1 -1
  3. package/lib/module/DataLoading.js +102 -0
  4. package/lib/module/DataLoading.js.map +1 -0
  5. package/lib/module/NavigationBuilderContext.js.map +1 -1
  6. package/lib/module/NavigationIndependentTree.js +7 -6
  7. package/lib/module/NavigationIndependentTree.js.map +1 -1
  8. package/lib/module/NavigationProvider.js +12 -12
  9. package/lib/module/NavigationProvider.js.map +1 -1
  10. package/lib/module/PreventRemoveContext.js.map +1 -1
  11. package/lib/module/PreventRemoveProvider.js +34 -24
  12. package/lib/module/PreventRemoveProvider.js.map +1 -1
  13. package/lib/module/StaticNavigation.js +15 -7
  14. package/lib/module/StaticNavigation.js.map +1 -1
  15. package/lib/module/StaticTreeContext.js +5 -0
  16. package/lib/module/StaticTreeContext.js.map +1 -0
  17. package/lib/module/checkSerializable.js +7 -9
  18. package/lib/module/checkSerializable.js.map +1 -1
  19. package/lib/module/createNavigationContainerRef.js +6 -8
  20. package/lib/module/createNavigationContainerRef.js.map +1 -1
  21. package/lib/module/createNavigatorFactory.js.map +1 -1
  22. package/lib/module/getActionFromState.js +11 -11
  23. package/lib/module/getActionFromState.js.map +1 -1
  24. package/lib/module/getPathFromState.js +125 -96
  25. package/lib/module/getPathFromState.js.map +1 -1
  26. package/lib/module/getPatternParts.js +2 -2
  27. package/lib/module/getPatternParts.js.map +1 -1
  28. package/lib/module/getStateFromPath.js +136 -78
  29. package/lib/module/getStateFromPath.js.map +1 -1
  30. package/lib/module/index.js +1 -0
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/module/types.js +13 -0
  33. package/lib/module/types.js.map +1 -1
  34. package/lib/module/useEventEmitter.js +5 -2
  35. package/lib/module/useEventEmitter.js.map +1 -1
  36. package/lib/module/useKeyedChildListeners.js +4 -2
  37. package/lib/module/useKeyedChildListeners.js.map +1 -1
  38. package/lib/module/useNavigation.js +2 -15
  39. package/lib/module/useNavigation.js.map +1 -1
  40. package/lib/module/useNavigationBuilder.js +5 -21
  41. package/lib/module/useNavigationBuilder.js.map +1 -1
  42. package/lib/module/useNavigationCache.js +19 -14
  43. package/lib/module/useNavigationCache.js.map +1 -1
  44. package/lib/module/useNavigationHelpers.js +27 -9
  45. package/lib/module/useNavigationHelpers.js.map +1 -1
  46. package/lib/module/useNavigationState.js +69 -36
  47. package/lib/module/useNavigationState.js.map +1 -1
  48. package/lib/module/useOnAction.js +25 -3
  49. package/lib/module/useOnAction.js.map +1 -1
  50. package/lib/module/useOnPreventRemove.js +35 -24
  51. package/lib/module/useOnPreventRemove.js.map +1 -1
  52. package/lib/module/useOptionsGetters.js +3 -1
  53. package/lib/module/useOptionsGetters.js.map +1 -1
  54. package/lib/module/usePreventRemove.js +9 -2
  55. package/lib/module/usePreventRemove.js.map +1 -1
  56. package/lib/module/useRoute.js.map +1 -1
  57. package/lib/module/useRouteCache.js +14 -7
  58. package/lib/module/useRouteCache.js.map +1 -1
  59. package/lib/module/useScheduleUpdate.js +8 -8
  60. package/lib/module/useScheduleUpdate.js.map +1 -1
  61. package/lib/module/useSyncState.js +4 -1
  62. package/lib/module/useSyncState.js.map +1 -1
  63. package/lib/module/validatePathConfig.js +50 -37
  64. package/lib/module/validatePathConfig.js.map +1 -1
  65. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  66. package/lib/typescript/src/DataLoading.d.ts +20 -0
  67. package/lib/typescript/src/DataLoading.d.ts.map +1 -0
  68. package/lib/typescript/src/NavigationBuilderContext.d.ts +2 -2
  69. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  70. package/lib/typescript/src/NavigationProvider.d.ts +0 -1
  71. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  72. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
  73. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
  74. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  75. package/lib/typescript/src/StaticNavigation.d.ts +68 -42
  76. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  77. package/lib/typescript/src/StaticTreeContext.d.ts +4 -0
  78. package/lib/typescript/src/StaticTreeContext.d.ts.map +1 -0
  79. package/lib/typescript/src/checkSerializable.d.ts +4 -2
  80. package/lib/typescript/src/checkSerializable.d.ts.map +1 -1
  81. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  82. package/lib/typescript/src/createNavigatorFactory.d.ts +11 -5
  83. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  84. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  85. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  86. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  87. package/lib/typescript/src/index.d.ts +2 -1
  88. package/lib/typescript/src/index.d.ts.map +1 -1
  89. package/lib/typescript/src/types.d.ts +84 -29
  90. package/lib/typescript/src/types.d.ts.map +1 -1
  91. package/lib/typescript/src/useEventEmitter.d.ts +1 -1
  92. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  93. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  94. package/lib/typescript/src/useNavigation.d.ts.map +1 -1
  95. package/lib/typescript/src/useNavigationBuilder.d.ts +1 -1
  96. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  97. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  98. package/lib/typescript/src/useNavigationHelpers.d.ts +3 -4
  99. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  100. package/lib/typescript/src/useNavigationState.d.ts +11 -1
  101. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  102. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  103. package/lib/typescript/src/useOnPreventRemove.d.ts +2 -6
  104. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  105. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  106. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  107. package/lib/typescript/src/usePreventRemoveContext.d.ts +1 -0
  108. package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
  109. package/lib/typescript/src/useRoute.d.ts +1 -1
  110. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  111. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  112. package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
  113. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  114. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  115. package/lib/typescript/src/utilities.d.ts +21 -38
  116. package/lib/typescript/src/utilities.d.ts.map +1 -1
  117. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  118. package/package.json +6 -8
  119. package/src/BaseNavigationContainer.tsx +9 -2
  120. package/src/DataLoading.tsx +139 -0
  121. package/src/NavigationBuilderContext.tsx +5 -1
  122. package/src/NavigationIndependentTree.tsx +11 -11
  123. package/src/NavigationProvider.tsx +13 -16
  124. package/src/PreventRemoveContext.tsx +1 -0
  125. package/src/PreventRemoveProvider.tsx +48 -43
  126. package/src/StaticNavigation.tsx +164 -99
  127. package/src/StaticTreeContext.tsx +7 -0
  128. package/src/checkSerializable.tsx +20 -14
  129. package/src/createNavigationContainerRef.tsx +12 -9
  130. package/src/createNavigatorFactory.tsx +27 -18
  131. package/src/getActionFromState.tsx +18 -16
  132. package/src/getPathFromState.tsx +167 -132
  133. package/src/getPatternParts.tsx +2 -2
  134. package/src/getStateFromPath.tsx +260 -193
  135. package/src/index.tsx +3 -0
  136. package/src/types.tsx +298 -62
  137. package/src/useEventEmitter.tsx +7 -2
  138. package/src/useKeyedChildListeners.tsx +4 -2
  139. package/src/useNavigation.tsx +2 -21
  140. package/src/useNavigationBuilder.tsx +7 -24
  141. package/src/useNavigationCache.tsx +26 -19
  142. package/src/useNavigationHelpers.tsx +26 -9
  143. package/src/useNavigationState.tsx +90 -60
  144. package/src/useOnAction.tsx +55 -3
  145. package/src/useOnPreventRemove.tsx +68 -36
  146. package/src/useOptionsGetters.tsx +4 -1
  147. package/src/usePreventRemove.tsx +11 -2
  148. package/src/useRoute.tsx +3 -5
  149. package/src/useRouteCache.tsx +19 -11
  150. package/src/useScheduleUpdate.tsx +8 -7
  151. package/src/useSyncState.tsx +5 -1
  152. package/src/utilities.tsx +36 -41
  153. package/src/validatePathConfig.tsx +86 -58
@@ -12,7 +12,14 @@ const INVALID_PARSER_ERROR = 'Invalid parser. Expected a function or a Standard
12
12
  const PARAM_GROUP_PREFIX = 'param_';
13
13
  const NESTED_SCREEN_PARAM_NAMES = ['screen', 'params', 'initial', 'path', 'merge', 'pop'];
14
14
  const getExplicitParamNames = parse => {
15
- const names = Object.entries(parse ?? {}).filter(([, parser]) => parser != null).map(([name]) => name);
15
+ const names = [];
16
+ if (parse) {
17
+ for (const name in parse) {
18
+ if (parse[name] != null) {
19
+ names.push(name);
20
+ }
21
+ }
22
+ }
16
23
  return names.length ? new Set(names) : undefined;
17
24
  };
18
25
  const getStandardSchema = parser => {
@@ -63,7 +70,7 @@ export function getStateFromPath(path, options, previous) {
63
70
  // pick the one that best matches the current navigation state
64
71
  const resolveSharedConfig = config => {
65
72
  if (config.shared) {
66
- const candidates = configsByPattern[config.segments.join('/')];
73
+ const candidates = configsByPattern[config.pattern];
67
74
  if (candidates) {
68
75
  return selectSharedConfig(config, candidates, previous, initialRoutes);
69
76
  }
@@ -90,22 +97,21 @@ export function getStateFromPath(path, options, previous) {
90
97
  // Remove the prefix from the path
91
98
  remaining = remaining.replace(normalizedPrefix, '');
92
99
  }
93
- const decodedSegments = [];
94
- for (const segment of remaining.split('/')) {
95
- if (!segment) {
96
- continue;
97
- }
98
- try {
99
- decodedSegments.push(decodeURIComponent(segment));
100
- } catch {
101
- return undefined;
102
- }
103
- }
104
100
  if (screens === undefined) {
105
101
  // When no config is specified, use the path segments as route names
106
- const routes = decodedSegments.map(name => ({
107
- name
108
- }));
102
+ const routes = [];
103
+ for (const segment of remaining.split('/')) {
104
+ if (!segment) {
105
+ continue;
106
+ }
107
+ try {
108
+ routes.push({
109
+ name: decodeURIComponent(segment)
110
+ });
111
+ } catch {
112
+ return undefined;
113
+ }
114
+ }
109
115
  if (routes.length) {
110
116
  return createNestedStateObject(path, routes, initialRoutes);
111
117
  }
@@ -114,7 +120,7 @@ export function getStateFromPath(path, options, previous) {
114
120
  if (remaining === '/') {
115
121
  // We need to add special handling of empty path so navigation to empty path also works
116
122
  // When handling empty path, we should only look at the root level config
117
- const match = configs.find(config => config.segments.join('/') === '');
123
+ const match = configs.find(config => config.pattern === '');
118
124
  if (match) {
119
125
  const config = resolveSharedConfig(match);
120
126
  return createNestedStateObject(path, config.routeNames.map(name => ({
@@ -126,7 +132,18 @@ export function getStateFromPath(path, options, previous) {
126
132
 
127
133
  // We match the whole path against the regex instead of segments
128
134
  // This makes sure matches such as wildcard will catch any unmatched routes, even if nested
135
+ const firstRawSegment = remaining.split('/')[0];
136
+ let firstDecodedSegment;
137
+ try {
138
+ firstDecodedSegment = firstRawSegment != null ? decodeURIComponent(firstRawSegment) : undefined;
139
+ } catch {
140
+ firstDecodedSegment = undefined;
141
+ }
129
142
  for (const config of configs) {
143
+ // Regex matching is expensive, so skip configs that can't match this path.
144
+ if (!canMatchFirstSegment(config.segments[0], firstDecodedSegment, firstRawSegment)) {
145
+ continue;
146
+ }
130
147
  const routes = matchAgainstConfig(remaining, config, configsByScreen);
131
148
  if (routes === undefined) {
132
149
  continue;
@@ -148,31 +165,50 @@ export function getStateFromPath(path, options, previous) {
148
165
  }
149
166
  return undefined;
150
167
  }
168
+ const canMatchFirstSegment = (configSegment, decodedSegment, rawSegment) => {
169
+ if (decodedSegment === undefined) {
170
+ return true;
171
+ }
172
+ if (configSegment === undefined) {
173
+ return false;
174
+ }
175
+ if (configSegment === '*' || configSegment.startsWith(':')) {
176
+ return true;
177
+ }
178
+ return configSegment === decodedSegment || configSegment === rawSegment;
179
+ };
151
180
 
152
181
  /**
153
182
  * Reference to the last used config resources. This is used to avoid recomputing the config resources when the options are the same.
154
183
  */
155
184
  const cachedConfigResources = new WeakMap();
156
185
  function getConfigResources(options) {
157
- if (!options) return prepareConfigResources();
186
+ if (!options) {
187
+ return prepareConfigResources();
188
+ }
158
189
  const cached = cachedConfigResources.get(options);
159
- if (cached) return cached;
190
+ if (cached) {
191
+ return cached;
192
+ }
193
+ validatePathConfig(options);
160
194
  const resources = prepareConfigResources(options);
161
195
  cachedConfigResources.set(options, resources);
162
196
  return resources;
163
197
  }
164
198
  function prepareConfigResources(options) {
165
- if (options) {
166
- validatePathConfig(options);
167
- }
168
199
  const initialRoutes = getInitialRoutes(options);
169
200
  const configs = getSortedNormalizedConfigs(initialRoutes, options?.screens);
170
- checkForDuplicatedConfigs(configs);
171
201
  const configsByScreen = {};
172
202
  const configsByPattern = {};
173
203
  for (const c of configs) {
174
204
  (configsByScreen[c.screen] ??= []).push(c);
175
- (configsByPattern[c.segments.join('/')] ??= []).push(c);
205
+ const existing = configsByPattern[c.pattern];
206
+ if (existing) {
207
+ checkForDuplicatedConfigs(existing[existing.length - 1], c);
208
+ existing.push(c);
209
+ } else {
210
+ configsByPattern[c.pattern] = [c];
211
+ }
176
212
  }
177
213
  return {
178
214
  initialRoutes,
@@ -193,10 +229,17 @@ function getInitialRoutes(options) {
193
229
  }
194
230
  function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
195
231
  // Create a normalized configs array which will be easier to use
196
- return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, initialRoutes, [], [], []))).map((config, order) => ({
197
- ...config,
198
- order
199
- })).sort((a, b) => {
232
+ const configs = [];
233
+ for (const key in screens) {
234
+ configs.push(...createNormalizedConfigs(key, screens, initialRoutes, [], [], []));
235
+ }
236
+ for (let order = 0; order < configs.length; order++) {
237
+ const config = configs[order];
238
+ if (config) {
239
+ config.order = order;
240
+ }
241
+ }
242
+ return configs.sort((a, b) => {
200
243
  // Sort config from most specific to least specific:
201
244
  // - more segments
202
245
  // - static segments
@@ -276,25 +319,21 @@ function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
276
319
  return a.segments.length - b.segments.length;
277
320
  });
278
321
  }
279
- function checkForDuplicatedConfigs(configs) {
280
- // Check for duplicate patterns in the config
281
- configs.reduce((acc, config) => {
282
- const pattern = config.segments.join('/');
283
- if (acc[pattern]) {
284
- const a = acc[pattern].routeNames;
285
- const b = config.routeNames;
286
322
 
287
- // It's not a problem if the path string omitted from a inner most screen
288
- // For example, it's ok if a path resolves to `A > B > C` or `A > B`
289
- const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);
290
- if (!intersects && (!acc[pattern].shared || !config.shared)) {
291
- throw new Error(`Found conflicting screens with the same pattern. The pattern '${pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen unless shared: true is specified.`);
292
- }
293
- }
294
- return Object.assign(acc, {
295
- [pattern]: config
296
- });
297
- }, {});
323
+ // Throw if two configs resolve to the same pattern but conflicting screens
324
+ function checkForDuplicatedConfigs(existing, config) {
325
+ if (!existing) {
326
+ return;
327
+ }
328
+ const a = existing.routeNames;
329
+ const b = config.routeNames;
330
+
331
+ // It's not a problem if the path string omitted from a inner most screen
332
+ // For example, it's ok if a path resolves to `A > B > C` or `A > B`
333
+ const intersects = a.length > b.length ? arrayStartsWith(a, b) : arrayStartsWith(b, a);
334
+ if (!intersects && (!existing.shared || !config.shared)) {
335
+ throw new Error(`Found conflicting screens with the same pattern. The pattern '${config.pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen unless shared: true is specified.`);
336
+ }
298
337
  }
299
338
  const matchAgainstConfig = (remaining, config, configsByScreen) => {
300
339
  if (!config.regex) {
@@ -311,16 +350,17 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
311
350
  // at different levels or branches in config
312
351
  const routeConfig = configsByScreen[routeName]?.find(c => index === c.routeNames.length - 1 && arrayStartsWith(config.routeNames, c.routeNames) && arrayStartsWith(config.segments, c.segments));
313
352
  let params;
353
+ let hasParams = false;
314
354
  if (routeConfig && match.groups) {
315
- const paramEntries = [];
316
- for (const [key, value] of Object.entries(match.groups)) {
317
- const index = Number(key.replace(PARAM_GROUP_PREFIX, ''));
318
- const param = routeConfig.params.find(it => it.index === index);
319
- if (param?.screen !== routeName || !param.name) {
355
+ params = {};
356
+ for (const param of routeConfig.params) {
357
+ if (param.screen !== routeName) {
320
358
  continue;
321
359
  }
360
+ const value = match.groups[`${PARAM_GROUP_PREFIX}${param.index}`];
322
361
  if (value == null) {
323
- paramEntries.push([param.name, undefined]);
362
+ params[param.name] = undefined;
363
+ hasParams = true;
324
364
  continue;
325
365
  }
326
366
  let decoded;
@@ -331,7 +371,8 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
331
371
  }
332
372
  const parser = routeConfig.parse?.[param.name];
333
373
  if (!parser) {
334
- paramEntries.push([param.name, decoded]);
374
+ params[param.name] = decoded;
375
+ hasParams = true;
335
376
  continue;
336
377
  }
337
378
  const schema = getStandardSchema(parser);
@@ -341,11 +382,13 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
341
382
  validationFailed = true;
342
383
  break;
343
384
  }
344
- paramEntries.push([param.name, result.value]);
385
+ params[param.name] = result.value;
386
+ hasParams = true;
345
387
  continue;
346
388
  }
347
389
  if (typeof parser === 'function') {
348
- paramEntries.push([param.name, parser(decoded)]);
390
+ params[param.name] = parser(decoded);
391
+ hasParams = true;
349
392
  continue;
350
393
  }
351
394
  throw new Error(INVALID_PARSER_ERROR);
@@ -354,11 +397,8 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
354
397
  // A failed param validation invalidates the whole nested route chain for this config.
355
398
  break;
356
399
  }
357
- if (paramEntries.length) {
358
- params = Object.fromEntries(paramEntries);
359
- }
360
400
  }
361
- if (params && Object.keys(params).length) {
401
+ if (params && hasParams) {
362
402
  matchedRoutes.push({
363
403
  name: routeName,
364
404
  params
@@ -420,7 +460,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, parts, parentScr
420
460
  if (typeof config !== 'string' && typeof config.path !== 'string' && config.alias?.length) {
421
461
  throw new Error(`Screen '${screen}' doesn't specify a 'path'. A 'path' needs to be specified in order to use 'alias'.`);
422
462
  }
423
- if (hasNestedScreens) {
463
+ if (nestedScreens) {
424
464
  // property `initialRouteName` without `screens` has no purpose
425
465
  if ('initialRouteName' in config && typeof config.initialRouteName === 'string') {
426
466
  initials.push({
@@ -428,38 +468,56 @@ const createNormalizedConfigs = (screen, routeConfig, initials, parts, parentScr
428
468
  parentScreens
429
469
  });
430
470
  }
431
- Object.keys(nestedScreens).forEach(nestedConfig => {
471
+ for (const nestedConfig in nestedScreens) {
432
472
  const result = createNormalizedConfigs(nestedConfig, nestedScreens, initials, currentParts, [...parentScreens], routeNames);
433
473
  configs.push(...result);
434
- });
474
+ }
435
475
  }
436
476
  }
437
477
  routeNames.pop();
438
478
  return configs;
439
479
  };
440
480
  const createConfigItem = (screen, routeNames, parts, parse, hasNestedScreens = false, shared = false) => {
441
- const regex = parts.length ? new RegExp(`^(${parts.map((it, i) => {
442
- if (it.param) {
443
- const reg = it.regex || '[^/]+';
444
- return `(((?<${PARAM_GROUP_PREFIX}${i}>${reg})\\/)${it.optional ? '?' : ''})`;
445
- }
446
- return `${it.segment === '*' ? '.*' : escape(it.segment)}\\/`;
447
- }).join('')})$`) : undefined;
448
- const segments = parts.map(it => it.segment);
449
- const params = parts.map((it, i) => it.param ? {
450
- index: i,
451
- screen: it.screen,
452
- name: it.param
453
- } : null).filter(it => it != null);
481
+ let regex;
482
+ const segments = [];
483
+ const params = [];
484
+ const pathParamNames = new Set();
485
+ if (parts.length) {
486
+ let regexString = '^(';
487
+ let index = 0;
488
+ for (const part of parts) {
489
+ segments.push(part.segment);
490
+ if (part.param) {
491
+ const reg = part.regex || '[^/]+';
492
+ regexString += `(((?<${PARAM_GROUP_PREFIX}${index}>${reg})\\/)${part.optional ? '?' : ''})`;
493
+ params.push({
494
+ index,
495
+ screen: part.screen,
496
+ name: part.param
497
+ });
498
+ if (part.screen === screen) {
499
+ pathParamNames.add(part.param);
500
+ }
501
+ } else {
502
+ regexString += `${part.segment === '*' ? '.*' : escape(part.segment)}\\/`;
503
+ }
504
+ index++;
505
+ }
506
+ regexString += ')$';
507
+ regex = new RegExp(regexString);
508
+ }
509
+ const pattern = segments.join('/');
454
510
  return {
455
511
  screen,
456
512
  order: 0,
457
513
  regex,
514
+ pattern,
458
515
  segments,
459
516
  params,
460
517
  routeNames,
461
518
  parse,
462
519
  explicitParamNames: getExplicitParamNames(parse),
520
+ pathParamNames,
463
521
  hasNestedScreens,
464
522
  shared
465
523
  };
@@ -619,8 +677,7 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
619
677
  return undefined;
620
678
  }
621
679
  focusedRoute.path = path.replace(/\/$/, '');
622
- const pathParamNames = new Set(routeConfig?.params.filter(param => param.screen === routeConfig.screen && typeof param.name === 'string').map(param => param.name));
623
- const queryParams = parseQueryParams(path, routeConfig?.parse, pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, focusedRoute.params);
680
+ const queryParams = parseQueryParams(path, routeConfig?.parse, routeConfig?.pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, focusedRoute.params);
624
681
  if (!queryParams.valid) {
625
682
  return undefined;
626
683
  }
@@ -642,7 +699,8 @@ const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explici
642
699
  delete params[name];
643
700
  }
644
701
  if (parseConfig) {
645
- for (const [name, parser] of Object.entries(parseConfig)) {
702
+ for (const name in parseConfig) {
703
+ const parser = parseConfig[name];
646
704
  if (!parser || pathParamNames.has(name)) {
647
705
  continue;
648
706
  }
@@ -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","Object","entries","filter","parser","map","name","length","Set","undefined","getStandardSchema","version","validate","getValidationResult","schema","value","result","Array","isArray","issues","Error","getStateFromPath","path","options","previous","initialRoutes","configs","configsByScreen","configsByPattern","getConfigResources","screens","resolveSharedConfig","config","shared","candidates","segments","join","selectSharedConfig","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","decodedSegments","segment","split","push","decodeURIComponent","routes","createNestedStateObject","match","find","routeNames","matchAgainstConfig","selectedConfig","selectedRoutes","rematchedRoutes","state","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","getInitialRoutes","getSortedNormalizedConfigs","checkForDuplicatedConfigs","c","screen","initialRouteName","parentScreens","concat","keys","key","createNormalizedConfigs","order","sort","a","b","localeCompare","i","Math","max","aSegment","bSegment","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","reduce","acc","pattern","intersects","every","it","assign","regex","validationFailed","matchedRoutes","index","routeName","routeConfig","params","groups","paramEntries","Number","param","decoded","fromEntries","initials","parts","configParts","part","createConfigItem","nestedScreens","hasNestedScreens","currentParts","exact","aliasConfigs","alias","forEach","nestedConfig","pop","RegExp","reg","optional","explicitParamNames","focusedRouteNames","current","route","score","focused","initial","selected","best","candidate","better","findInitialRoute","sameParents","parentScreen","configParentScreen","createStateObject","initialRoute","isEmpty","shift","nestedState","nextRoute","nestedStateIndex","nestedRoute","focusedRoute","pathParamNames","queryParams","parseQueryParams","valid","parseConfig","routeParams","query","has","hasOwn"],"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","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":";;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;AAoDzD,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,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,IAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACG,MAAM,CAAE,CAAC,EAC3E;IACA,OAAOH,MAAM;EACf;EAEA,MAAM,IAAII,KAAK,CAACvB,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,SAASwB,gBAAgBA,CAC9BC,IAAY,EACZC,OAA4B,EAC5BC,QAA0B,EACD;EACzB,MAAM;IAAEC,aAAa;IAAEC,OAAO;IAAEC,eAAe;IAAEC;EAAiB,CAAC,GACjEC,kBAAkB,CAACN,OAAO,CAAC;EAE7B,MAAMO,OAAO,GAAGP,OAAO,EAAEO,OAAO;;EAEhC;EACA;EACA,MAAMC,mBAAmB,GAAIC,MAAmB,IAAK;IACnD,IAAIA,MAAM,CAACC,MAAM,EAAE;MACjB,MAAMC,UAAU,GAAGN,gBAAgB,CAACI,MAAM,CAACG,OAAO,CAAC;MAEnD,IAAID,UAAU,EAAE;QACd,OAAOE,kBAAkB,CAACJ,MAAM,EAAEE,UAAU,EAAEV,QAAQ,EAAEC,aAAa,CAAC;MACxE;IACF;IAEA,OAAOO,MAAM;EACf,CAAC;EAED,IAAIK,SAAS,GAAGf,IAAI,CACjBgB,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,CAAC;;EAEzB;EACAD,SAAS,GAAGA,SAAS,CAACE,QAAQ,CAAC,GAAG,CAAC,GAAGF,SAAS,GAAG,GAAGA,SAAS,GAAG;EAEjE,MAAMG,MAAM,GAAGjB,OAAO,EAAED,IAAI,EAAEgB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;;EAElD,IAAIE,MAAM,EAAE;IACV;IACA,MAAMC,gBAAgB,GAAGD,MAAM,CAACD,QAAQ,CAAC,GAAG,CAAC,GAAGC,MAAM,GAAG,GAAGA,MAAM,GAAG;;IAErE;IACA,IAAI,CAACH,SAAS,CAACK,UAAU,CAACD,gBAAgB,CAAC,EAAE;MAC3C,OAAOjC,SAAS;IAClB;;IAEA;IACA6B,SAAS,GAAGA,SAAS,CAACC,OAAO,CAACG,gBAAgB,EAAE,EAAE,CAAC;EACrD;EAEA,IAAIX,OAAO,KAAKtB,SAAS,EAAE;IACzB;IACA,MAAMmC,MAAqB,GAAG,EAAE;IAEhC,KAAK,MAAMC,OAAO,IAAIP,SAAS,CAACQ,KAAK,CAAC,GAAG,CAAC,EAAE;MAC1C,IAAI,CAACD,OAAO,EAAE;QACZ;MACF;MAEA,IAAI;QACFD,MAAM,CAACtC,IAAI,CAAC;UAAED,IAAI,EAAE0C,kBAAkB,CAACF,OAAO;QAAE,CAAC,CAAC;MACpD,CAAC,CAAC,MAAM;QACN,OAAOpC,SAAS;MAClB;IACF;IAEA,IAAImC,MAAM,CAACrC,MAAM,EAAE;MACjB,OAAOyC,uBAAuB,CAACzB,IAAI,EAAEqB,MAAM,EAAElB,aAAa,CAAC;IAC7D;IAEA,OAAOjB,SAAS;EAClB;EAEA,IAAI6B,SAAS,KAAK,GAAG,EAAE;IACrB;IACA;IACA,MAAMW,KAAK,GAAGtB,OAAO,CAACuB,IAAI,CAAEjB,MAAM,IAAKA,MAAM,CAACG,OAAO,KAAK,EAAE,CAAC;IAE7D,IAAIa,KAAK,EAAE;MACT,MAAMhB,MAAM,GAAGD,mBAAmB,CAACiB,KAAK,CAAC;MAEzC,OAAOD,uBAAuB,CAC5BzB,IAAI,EACJU,MAAM,CAACkB,UAAU,CAACC,GAAG,CAAE/C,IAAI,KAAM;QAAEA;MAAK,CAAC,CAAC,CAAC,EAC3CqB,aAAa,EACbO,MACF,CAAC;IACH;IAEA,OAAOxB,SAAS;EAClB;;EAEA;EACA;EACA,MAAM4C,eAAe,GAAGf,SAAS,CAACQ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAE/C,IAAIQ,mBAAuC;EAE3C,IAAI;IACFA,mBAAmB,GACjBD,eAAe,IAAI,IAAI,GAAGN,kBAAkB,CAACM,eAAe,CAAC,GAAG5C,SAAS;EAC7E,CAAC,CAAC,MAAM;IACN6C,mBAAmB,GAAG7C,SAAS;EACjC;EAEA,KAAK,MAAMwB,MAAM,IAAIN,OAAO,EAAE;IAC5B;IACA,IACE,CAAC4B,oBAAoB,CACnBtB,MAAM,CAACuB,QAAQ,CAAC,CAAC,CAAC,EAClBF,mBAAmB,EACnBD,eACF,CAAC,EACD;MACA;IACF;IAEA,MAAMT,MAAM,GAAGa,kBAAkB,CAACnB,SAAS,EAAEL,MAAM,EAAEL,eAAe,CAAC;IAErE,IAAIgB,MAAM,KAAKnC,SAAS,EAAE;MACxB;IACF;IAEA,IAAIiD,cAAc,GAAG1B,mBAAmB,CAACC,MAAM,CAAC;IAChD,IAAI0B,cAAc,GAAGf,MAAM;IAE3B,IAAIc,cAAc,KAAKzB,MAAM,EAAE;MAC7B,MAAM2B,eAAe,GAAGH,kBAAkB,CACxCnB,SAAS,EACToB,cAAc,EACd9B,eACF,CAAC;MAED,IAAIgC,eAAe,KAAKnD,SAAS,EAAE;QACjCiD,cAAc,GAAGzB,MAAM;MACzB,CAAC,MAAM;QACL0B,cAAc,GAAGC,eAAe;MAClC;IACF;IAEA,MAAMC,KAAK,GAAGb,uBAAuB,CACnCzB,IAAI,EACJoC,cAAc,EACdjC,aAAa,EACbgC,cACF,CAAC;IAED,IAAIG,KAAK,KAAKpD,SAAS,EAAE;MACvB,OAAOoD,KAAK;IACd;EACF;EAEA,OAAOpD,SAAS;AAClB;AAEA,MAAM8C,oBAAoB,GAAGA,CAC3BO,aAAiC,EACjCC,cAAkC,EAClCC,UAA8B,KAC3B;EACH,IAAID,cAAc,KAAKtD,SAAS,EAAE;IAChC,OAAO,IAAI;EACb;EAEA,IAAIqD,aAAa,KAAKrD,SAAS,EAAE;IAC/B,OAAO,KAAK;EACd;EAEA,IAAIqD,aAAa,KAAK,GAAG,IAAIA,aAAa,CAACnB,UAAU,CAAC,GAAG,CAAC,EAAE;IAC1D,OAAO,IAAI;EACb;EAEA,OAAOmB,aAAa,KAAKC,cAAc,IAAID,aAAa,KAAKE,UAAU;AACzE,CAAC;;AAED;AACA;AACA;AACA,MAAMC,qBAAqB,GAAG,IAAIC,OAAO,CAA+B,CAAC;AAEzE,SAASpC,kBAAkBA,CACzBN,OAAuC,EACvC;EACA,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO2C,sBAAsB,CAAC,CAAC;EACjC;EAEA,MAAMC,MAAM,GAAGH,qBAAqB,CAACI,GAAG,CAAC7C,OAAO,CAAC;EAEjD,IAAI4C,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;EAEAvE,kBAAkB,CAAC2B,OAAO,CAAC;EAE3B,MAAM8C,SAAS,GAAGH,sBAAsB,CAAC3C,OAAO,CAAC;EAEjDyC,qBAAqB,CAACM,GAAG,CAAC/C,OAAO,EAAE8C,SAAS,CAAC;EAE7C,OAAOA,SAAS;AAClB;AAEA,SAASH,sBAAsBA,CAAC3C,OAAqB,EAAE;EACrD,MAAME,aAAa,GAAG8C,gBAAgB,CAAChD,OAAO,CAAC;EAC/C,MAAMG,OAAO,GAAG8C,0BAA0B,CAAC/C,aAAa,EAAEF,OAAO,EAAEO,OAAO,CAAC;EAE3E,MAAMH,eAA8C,GAAG,CAAC,CAAC;EACzD,MAAMC,gBAA+C,GAAG,CAAC,CAAC;EAE1D,KAAK,MAAM6C,CAAC,IAAI/C,OAAO,EAAE;IACvB,CAACC,eAAe,CAAC8C,CAAC,CAACC,MAAM,CAAC,KAAK,EAAE,EAAErE,IAAI,CAACoE,CAAC,CAAC;IAE1C,MAAME,QAAQ,GAAG/C,gBAAgB,CAAC6C,CAAC,CAACtC,OAAO,CAAC;IAE5C,IAAIwC,QAAQ,EAAE;MACZC,yBAAyB,CAACD,QAAQ,CAACA,QAAQ,CAACrE,MAAM,GAAG,CAAC,CAAC,EAAEmE,CAAC,CAAC;MAC3DE,QAAQ,CAACtE,IAAI,CAACoE,CAAC,CAAC;IAClB,CAAC,MAAM;MACL7C,gBAAgB,CAAC6C,CAAC,CAACtC,OAAO,CAAC,GAAG,CAACsC,CAAC,CAAC;IACnC;EACF;EAEA,OAAO;IACLhD,aAAa;IACbC,OAAO;IACPC,eAAe;IACfC;EACF,CAAC;AACH;AAEA,SAAS2C,gBAAgBA,CAAChD,OAAqB,EAAE;EAC/C,MAAME,aAAmC,GAAG,EAAE;EAE9C,IAAIF,OAAO,EAAEsD,gBAAgB,EAAE;IAC7BpD,aAAa,CAACpB,IAAI,CAAC;MACjBwE,gBAAgB,EAAEtD,OAAO,CAACsD,gBAAgB;MAC1CC,aAAa,EAAE;IACjB,CAAC,CAAC;EACJ;EAEA,OAAOrD,aAAa;AACtB;AAEA,SAAS+C,0BAA0BA,CACjC/C,aAAmC,EACnCK,OAAgD,GAAG,CAAC,CAAC,EACrD;EACA;EACA,MAAMJ,OAAsB,GAAG,EAAE;EAEjC,KAAK,MAAMqD,GAAG,IAAIjD,OAAO,EAAE;IACzBJ,OAAO,CAACrB,IAAI,CACV,GAAG2E,uBAAuB,CAACD,GAAG,EAAEjD,OAAO,EAAEL,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CACpE,CAAC;EACH;EAEA,KAAK,IAAIwD,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGvD,OAAO,CAACpB,MAAM,EAAE2E,KAAK,EAAE,EAAE;IACnD,MAAMjD,MAAM,GAAGN,OAAO,CAACuD,KAAK,CAAC;IAE7B,IAAIjD,MAAM,EAAE;MACVA,MAAM,CAACiD,KAAK,GAAGA,KAAK;IACtB;EACF;EAEA,OAAOvD,OAAO,CAACwD,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;IAC5B;IACA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA,IAAIzF,YAAY,CAACwF,CAAC,CAAC5B,QAAQ,EAAE6B,CAAC,CAAC7B,QAAQ,CAAC,EAAE;MACxC,OAAO6B,CAAC,CAAClC,UAAU,CAACmC,IAAI,CAAC,GAAG,CAAC,CAACC,aAAa,CAACH,CAAC,CAACjC,UAAU,CAACmC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE;;IAEA;IACA;IACA,IAAI9F,eAAe,CAAC4F,CAAC,CAAC5B,QAAQ,EAAE6B,CAAC,CAAC7B,QAAQ,CAAC,EAAE;MAC3C,OAAO,CAAC,CAAC;IACX;IAEA,IAAIhE,eAAe,CAAC6F,CAAC,CAAC7B,QAAQ,EAAE4B,CAAC,CAAC5B,QAAQ,CAAC,EAAE;MAC3C,OAAO,CAAC;IACV;IAEA,KAAK,IAAIgC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACN,CAAC,CAAC5B,QAAQ,CAACjD,MAAM,EAAE8E,CAAC,CAAC7B,QAAQ,CAACjD,MAAM,CAAC,EAAEiF,CAAC,EAAE,EAAE;MACvE,MAAMG,QAAQ,GAAGP,CAAC,CAAC5B,QAAQ,CAACgC,CAAC,CAAC;MAC9B,MAAMI,QAAQ,GAAGP,CAAC,CAAC7B,QAAQ,CAACgC,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,CAAChD,UAAU,CAAC,GAAG,CAAC;MACvC,MAAMqD,MAAM,GAAGJ,QAAQ,CAACjD,UAAU,CAAC,GAAG,CAAC;MACvC,MAAMsD,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,OAAOb,CAAC,CAAC5B,QAAQ,CAACjD,MAAM,GAAG8E,CAAC,CAAC7B,QAAQ,CAACjD,MAAM;EAC9C,CAAC,CAAC;AACJ;;AAEA;AACA,SAASsE,yBAAyBA,CAChCD,QAAiC,EACjC3C,MAAmB,EACnB;EACA,IAAI,CAAC2C,QAAQ,EAAE;IACb;EACF;EAEA,MAAMQ,CAAC,GAAGR,QAAQ,CAACzB,UAAU;EAC7B,MAAMkC,CAAC,GAAGpD,MAAM,CAACkB,UAAU;;EAE3B;EACA;EACA,MAAMiD,UAAU,GACdhB,CAAC,CAAC7E,MAAM,GAAG8E,CAAC,CAAC9E,MAAM,GAAGf,eAAe,CAAC4F,CAAC,EAAEC,CAAC,CAAC,GAAG7F,eAAe,CAAC6F,CAAC,EAAED,CAAC,CAAC;EAErE,IAAI,CAACgB,UAAU,KAAK,CAACxB,QAAQ,CAAC1C,MAAM,IAAI,CAACD,MAAM,CAACC,MAAM,CAAC,EAAE;IACvD,MAAM,IAAIb,KAAK,CACb,iEACEY,MAAM,CAACG,OAAO,uBACOgD,CAAC,CAACE,IAAI,CAAC,KAAK,CAAC,UAAUD,CAAC,CAACC,IAAI,CAClD,KACF,CAAC,yGACH,CAAC;EACH;AACF;AAEA,MAAM7B,kBAAkB,GAAGA,CACzBnB,SAAiB,EACjBL,MAAmB,EACnBL,eAA8C,KAC3C;EACH,IAAI,CAACK,MAAM,CAACoE,KAAK,EAAE;IACjB,OAAO5F,SAAS;EAClB;EAEA,MAAMwC,KAAK,GAAGX,SAAS,CAACW,KAAK,CAAChB,MAAM,CAACoE,KAAK,CAAC;EAE3C,IAAI,CAACpD,KAAK,EAAE;IACV,OAAOxC,SAAS;EAClB;EAEA,IAAI6F,gBAAgB,GAAG,KAAK;EAC5B,MAAMC,aAA4B,GAAG,EAAE;EAEvC,KAAK,MAAM,CAACC,KAAK,EAAEC,SAAS,CAAC,IAAIxE,MAAM,CAACkB,UAAU,CAACuD,OAAO,CAAC,CAAC,EAAE;IAC5D;IACA;IACA,MAAMC,WAAW,GAAG/E,eAAe,CAAC6E,SAAS,CAAC,EAAEvD,IAAI,CACjDwB,CAAC,IACA8B,KAAK,KAAK9B,CAAC,CAACvB,UAAU,CAAC5C,MAAM,GAAG,CAAC,IACjCf,eAAe,CAACyC,MAAM,CAACkB,UAAU,EAAEuB,CAAC,CAACvB,UAAU,CAAC,IAChD3D,eAAe,CAACyC,MAAM,CAACuB,QAAQ,EAAEkB,CAAC,CAAClB,QAAQ,CAC/C,CAAC;IAED,IAAIoD,MAA2C;IAC/C,IAAIC,SAAS,GAAG,KAAK;IAErB,IAAIF,WAAW,IAAI1D,KAAK,CAAC6D,MAAM,EAAE;MAC/BF,MAAM,GAAG,CAAC,CAAC;MAEX,KAAK,MAAMG,KAAK,IAAIJ,WAAW,CAACC,MAAM,EAAE;QACtC,IAAIG,KAAK,CAACpC,MAAM,KAAK8B,SAAS,EAAE;UAC9B;QACF;QAEA,MAAMzF,KAAK,GAAGiC,KAAK,CAAC6D,MAAM,CAAC,GAAG9G,kBAAkB,GAAG+G,KAAK,CAACP,KAAK,EAAE,CAAC;QAEjE,IAAIxF,KAAK,IAAI,IAAI,EAAE;UACjB4F,MAAM,CAACG,KAAK,CAAC1G,IAAI,CAAC,GAAGI,SAAS;UAC9BoG,SAAS,GAAG,IAAI;UAChB;QACF;QAEA,IAAIG,OAAe;QAEnB,IAAI;UACFA,OAAO,GAAGjE,kBAAkB,CAAC/B,KAAK,CAAC;QACrC,CAAC,CAAC,MAAM;UACN,OAAOP,SAAS;QAClB;QAEA,MAAME,MAAM,GAAGgG,WAAW,CAACxG,KAAK,GAAG4G,KAAK,CAAC1G,IAAI,CAAC;QAE9C,IAAI,CAACM,MAAM,EAAE;UACXiG,MAAM,CAACG,KAAK,CAAC1G,IAAI,CAAC,GAAG2G,OAAO;UAC5BH,SAAS,GAAG,IAAI;UAChB;QACF;QAEA,MAAM9F,MAAM,GAAGL,iBAAiB,CAACC,MAAM,CAAC;QAExC,IAAII,MAAM,EAAE;UACV,MAAME,MAAM,GAAGH,mBAAmB,CAACC,MAAM,EAAEiG,OAAO,CAAC;UAEnD,IAAI/F,MAAM,CAACG,MAAM,EAAE;YACjBkF,gBAAgB,GAAG,IAAI;YACvB;UACF;UAEAM,MAAM,CAACG,KAAK,CAAC1G,IAAI,CAAC,GAAGY,MAAM,CAACD,KAAK;UACjC6F,SAAS,GAAG,IAAI;UAChB;QACF;QAEA,IAAI,OAAOlG,MAAM,KAAK,UAAU,EAAE;UAChCiG,MAAM,CAACG,KAAK,CAAC1G,IAAI,CAAC,GAAGM,MAAM,CAACqG,OAAO,CAAC;UACpCH,SAAS,GAAG,IAAI;UAChB;QACF;QAEA,MAAM,IAAIxF,KAAK,CAACtB,oBAAoB,CAAC;MACvC;MAEA,IAAIuG,gBAAgB,EAAE;QACpB;QACA;MACF;IACF;IAEA,IAAIM,MAAM,IAAIC,SAAS,EAAE;MACvBN,aAAa,CAACjG,IAAI,CAAC;QAAED,IAAI,EAAEoG,SAAS;QAAEG;MAAO,CAAC,CAAC;IACjD,CAAC,MAAM;MACLL,aAAa,CAACjG,IAAI,CAAC;QAAED,IAAI,EAAEoG;MAAU,CAAC,CAAC;IACzC;EACF;EAEA,IAAIH,gBAAgB,EAAE;IACpB,OAAO7F,SAAS;EAClB;EAEA,OAAO8F,aAAa;AACtB,CAAC;AAED,MAAMtB,uBAAuB,GAAGA,CAC9BN,MAAc,EACdgC,WAAoD,EACpDM,QAA8B,EAC9BC,KAAyB,EACzBnC,aAAuB,EACvB5B,UAAoB,KACF;EAClB,MAAMxB,OAAsB,GAAG,EAAE;EAEjCwB,UAAU,CAAC7C,IAAI,CAACqE,MAAM,CAAC;EAEvBI,aAAa,CAACzE,IAAI,CAACqE,MAAM,CAAC;EAE1B,MAAM1C,MAAM,GAAG0E,WAAW,CAAChC,MAAM,CAAC;EAElC,IAAI,OAAO1C,MAAM,KAAK,QAAQ,EAAE;IAC9B,MAAMkF,WAAW,GAAGzH,mBAAmB,CACrCwH,KAAK,EACLvH,eAAe,CAACsC,MAAM,CAAC,CAACmB,GAAG,CAAEgE,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAEzC;IAAO,CAAC,CAAC,CAC7D,CAAC;IAEDhD,OAAO,CAACrB,IAAI,CAAC+G,gBAAgB,CAAC1C,MAAM,EAAE,CAAC,GAAGxB,UAAU,CAAC,EAAEgE,WAAW,CAAC,CAAC;EACtE,CAAC,MAAM,IAAI,OAAOlF,MAAM,KAAK,QAAQ,EAAE;IACrC;IACA;IACA;IACA,MAAMqF,aAAa,GACjB,SAAS,IAAIrF,MAAM,GACdA,MAAM,CAACF,OAAO,GACftB,SAAS;IACf,MAAM8G,gBAAgB,GAAG,CAAC,CAACD,aAAa;IACxC,MAAME,YAAY,GAChB,OAAOvF,MAAM,CAACV,IAAI,KAAK,QAAQ,GAC3B7B,mBAAmB,CACjBwH,KAAK,EACLvH,eAAe,CAACsC,MAAM,CAACV,IAAI,CAAC,CAAC6B,GAAG,CAAEgE,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAEzC;IAAO,CAAC,CAAC,CAAC,EACjE1C,MAAM,CAACwF,KACT,CAAC,GACDP,KAAK;IAEX,IAAI,OAAOjF,MAAM,CAACV,IAAI,KAAK,QAAQ,EAAE;MACnC;MACA;MACA,MAAMmG,YAAY,GAAG,EAAE;MAEvB,IAAIzF,MAAM,CAAC0F,KAAK,EAAE;QAChB,KAAK,MAAMA,KAAK,IAAI1F,MAAM,CAAC0F,KAAK,EAAE;UAChC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;YAC7BD,YAAY,CAACpH,IAAI,CACf+G,gBAAgB,CACd1C,MAAM,EACN,CAAC,GAAGxB,UAAU,CAAC,EACfzD,mBAAmB,CACjBwH,KAAK,EACLvH,eAAe,CAACgI,KAAK,CAAC,CAACvE,GAAG,CAAEgE,IAAI,KAAM;cAAE,GAAGA,IAAI;cAAEzC;YAAO,CAAC,CAAC,CAC5D,CAAC,EACD1C,MAAM,CAAC9B,KAAK,EACZoH,gBAAgB,EAChB,KACF,CACF,CAAC;UACH,CAAC,MAAM,IAAI,OAAOI,KAAK,KAAK,QAAQ,EAAE;YACpCD,YAAY,CAACpH,IAAI,CACf+G,gBAAgB,CACd1C,MAAM,EACN,CAAC,GAAGxB,UAAU,CAAC,EACfzD,mBAAmB,CACjBwH,KAAK,EACLvH,eAAe,CAACgI,KAAK,CAACpG,IAAI,CAAC,CAAC6B,GAAG,CAAEgE,IAAI,KAAM;cACzC,GAAGA,IAAI;cACPzC;YACF,CAAC,CAAC,CAAC,EACHgD,KAAK,CAACF,KACR,CAAC,EACDE,KAAK,CAACxH,KAAK,EACXoH,gBAAgB,EAChBI,KAAK,CAACzF,MAAM,KAAK,IACnB,CACF,CAAC;UACH;QACF;MACF;MAEAP,OAAO,CAACrB,IAAI,CACV+G,gBAAgB,CACd1C,MAAM,EACN,CAAC,GAAGxB,UAAU,CAAC,EACfqE,YAAY,EACZvF,MAAM,CAAC9B,KAAK,EACZoH,gBAAgB,EAChBtF,MAAM,CAACC,MAAM,KAAK,IACpB,CACF,CAAC;MAEDP,OAAO,CAACrB,IAAI,CAAC,GAAGoH,YAAY,CAAC;IAC/B;IAEA,IACE,OAAOzF,MAAM,KAAK,QAAQ,IAC1B,OAAOA,MAAM,CAACV,IAAI,KAAK,QAAQ,IAC/BU,MAAM,CAAC0F,KAAK,EAAEpH,MAAM,EACpB;MACA,MAAM,IAAIc,KAAK,CACb,WAAWsD,MAAM,qFACnB,CAAC;IACH;IAEA,IAAI2C,aAAa,EAAE;MACjB;MACA,IACE,kBAAkB,IAAIrF,MAAM,IAC5B,OAAOA,MAAM,CAAC6C,gBAAgB,KAAK,QAAQ,EAC3C;QACAmC,QAAQ,CAAC3G,IAAI,CAAC;UACZwE,gBAAgB,EAAE7C,MAAM,CAAC6C,gBAAgB;UACzCC;QACF,CAAC,CAAC;MACJ;MAEA,KAAK,MAAM6C,YAAY,IAAIN,aAAa,EAAE;QACxC,MAAMrG,MAAM,GAAGgE,uBAAuB,CACpC2C,YAAY,EACZN,aAAa,EACbL,QAAQ,EACRO,YAAY,EACZ,CAAC,GAAGzC,aAAa,CAAC,EAClB5B,UACF,CAAC;QAEDxB,OAAO,CAACrB,IAAI,CAAC,GAAGW,MAAM,CAAC;MACzB;IACF;EACF;EAEAkC,UAAU,CAAC0E,GAAG,CAAC,CAAC;EAEhB,OAAOlG,OAAO;AAChB,CAAC;AAED,MAAM0F,gBAAgB,GAAGA,CACvB1C,MAAc,EACdxB,UAAoB,EACpB+D,KAAyB,EACzB/G,KAAmB,EACnBoH,gBAAgB,GAAG,KAAK,EACxBrF,MAAM,GAAG,KAAK,KACE;EAChB,IAAImE,KAAyB;EAE7B,MAAM7C,QAAkB,GAAG,EAAE;EAC7B,MAAMoD,MAA6B,GAAG,EAAE;EACxC,MAAMkB,cAAc,GAAG,IAAItH,GAAG,CAAS,CAAC;EAExC,IAAI0G,KAAK,CAAC3G,MAAM,EAAE;IAChB,IAAIwH,WAAW,GAAG,IAAI;IACtB,IAAIvB,KAAK,GAAG,CAAC;IAEb,KAAK,MAAMY,IAAI,IAAIF,KAAK,EAAE;MACxB1D,QAAQ,CAAClD,IAAI,CAAC8G,IAAI,CAACvE,OAAO,CAAC;MAE3B,IAAIuE,IAAI,CAACL,KAAK,EAAE;QACd,MAAMiB,GAAG,GAAGZ,IAAI,CAACf,KAAK,IAAI,OAAO;QAEjC0B,WAAW,IAAI,QAAQ/H,kBAAkB,GAAGwG,KAAK,IAAIwB,GAAG,QAAQZ,IAAI,CAACa,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG;QAC3FrB,MAAM,CAACtG,IAAI,CAAC;UACVkG,KAAK;UACL7B,MAAM,EAAEyC,IAAI,CAACzC,MAAM;UACnBtE,IAAI,EAAE+G,IAAI,CAACL;QACb,CAAC,CAAC;QAEF,IAAIK,IAAI,CAACzC,MAAM,KAAKA,MAAM,EAAE;UAC1BmD,cAAc,CAACI,GAAG,CAACd,IAAI,CAACL,KAAK,CAAC;QAChC;MACF,CAAC,MAAM;QACLgB,WAAW,IAAI,GAAGX,IAAI,CAACvE,OAAO,KAAK,GAAG,GAAG,IAAI,GAAGvD,MAAM,CAAC8H,IAAI,CAACvE,OAAO,CAAC,KAAK;MAC3E;MAEA2D,KAAK,EAAE;IACT;IAEAuB,WAAW,IAAI,IAAI;IACnB1B,KAAK,GAAG,IAAI8B,MAAM,CAACJ,WAAW,CAAC;EACjC;EAEA,MAAM3F,OAAO,GAAGoB,QAAQ,CAAC8B,IAAI,CAAC,GAAG,CAAC;EAElC,OAAO;IACLX,MAAM;IACNO,KAAK,EAAE,CAAC;IACRmB,KAAK;IACLjE,OAAO;IACPoB,QAAQ;IACRoD,MAAM;IACNzD,UAAU;IACVhD,KAAK;IACLiI,kBAAkB,EAAElI,qBAAqB,CAACC,KAAK,CAAC;IAChD2H,cAAc;IACdP,gBAAgB;IAChBrF;EACF,CAAC;AACH,CAAC;AAED,MAAMG,kBAAkB,GAAGA,CACzBY,KAAkB,EAClBd,UAAyB,EACzBV,QAAqE,EACrEC,aAAmC,KAChC;EACH;EACA,MAAM2G,iBAA2B,GAAG,EAAE;EAEtC,IAAIC,OAAO,GAAG7G,QAAQ;EAEtB,OAAO6G,OAAO,EAAE1F,MAAM,CAACrC,MAAM,EAAE;IAC7B,MAAMiG,KAAK,GACT,OAAO8B,OAAO,CAAC9B,KAAK,KAAK,QAAQ,GAC7B8B,OAAO,CAAC9B,KAAK,GACb8B,OAAO,CAAC1F,MAAM,CAACrC,MAAM,GAAG,CAAC;IAE/B,MAAMgI,KAAK,GAAGD,OAAO,CAAC1F,MAAM,CAAC4D,KAAK,CAAC;IAEnC,IAAI+B,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEAF,iBAAiB,CAAC/H,IAAI,CAACiI,KAAK,CAAClI,IAAI,CAAC;IAClCiI,OAAO,GAAGC,KAAK,CAAC1E,KAAK;EACvB;;EAEA;EACA;EACA,MAAM2E,KAAK,GAAIrF,UAAoB,IAAK;IACtC,IAAIsF,OAAO,GAAG,CAAC;IAEf,OACEtF,UAAU,CAACsF,OAAO,CAAC,KAAKhI,SAAS,IACjC0C,UAAU,CAACsF,OAAO,CAAC,KAAKJ,iBAAiB,CAACI,OAAO,CAAC,EAClD;MACAA,OAAO,EAAE;IACX;IAEA,IAAIC,OAAO,GAAG,CAAC;IAEf,KAAK,MAAMzG,MAAM,IAAIP,aAAa,EAAE;MAClC,IACElC,eAAe,CAAC2D,UAAU,EAAElB,MAAM,CAAC8C,aAAa,CAAC,IACjD5B,UAAU,CAAClB,MAAM,CAAC8C,aAAa,CAACxE,MAAM,CAAC,KAAK0B,MAAM,CAAC6C,gBAAgB,EACnE;QACA4D,OAAO,EAAE;MACX;IACF;IAEA,OAAO;MAAED,OAAO;MAAEC;IAAQ,CAAC;EAC7B,CAAC;EAED,IAAIC,QAAQ,GAAG1F,KAAK;EACpB,IAAI2F,IAAI,GAAG;IAAEH,OAAO,EAAE,CAAC,CAAC;IAAEC,OAAO,EAAE,CAAC;EAAE,CAAC;EAEvC,KAAK,MAAMG,SAAS,IAAI1G,UAAU,EAAE;IAClC,IAAI,CAAC0G,SAAS,CAAC3G,MAAM,EAAE;MACrB;IACF;IAEA,MAAM;MAAEuG,OAAO;MAAEC;IAAQ,CAAC,GAAGF,KAAK,CAACK,SAAS,CAAC1F,UAAU,CAAC;IAExD,MAAM2F,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,CAAC3D,KAAK,GAAGyD,QAAQ,CAACzD,KAAK;IAExC,IAAI4D,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,EACjB1B,aAAuB,EACvBrD,aAAmC,KACZ;EACvB,KAAK,MAAMO,MAAM,IAAIP,aAAa,EAAE;IAClC,IAAIqD,aAAa,CAACxE,MAAM,KAAK0B,MAAM,CAAC8C,aAAa,CAACxE,MAAM,EAAE;MACxD,IAAIyI,WAAW,GAAG,IAAI;MACtB,KAAK,IAAIxD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,aAAa,CAACxE,MAAM,EAAEiF,CAAC,EAAE,EAAE;QAC7C,MAAMyD,YAAY,GAAGlE,aAAa,CAACS,CAAC,CAAC;QACrC,MAAM0D,kBAAkB,GAAGjH,MAAM,CAAC8C,aAAa,CAACS,CAAC,CAAC;QAElD,IACEyD,YAAY,IAAI,IAAI,IACpBC,kBAAkB,IAAI,IAAI,IAC1BD,YAAY,CAAC1D,aAAa,CAAC2D,kBAAkB,CAAC,KAAK,CAAC,EACpD;UACAF,WAAW,GAAG,KAAK;UACnB;QACF;MACF;MACA,IAAIA,WAAW,EAAE;QACf,OAAOvC,SAAS,KAAKxE,MAAM,CAAC6C,gBAAgB,GACxC7C,MAAM,CAAC6C,gBAAgB,GACvBrE,SAAS;MACf;IACF;EACF;EACA,OAAOA,SAAS;AAClB,CAAC;;AAED;AACA;AACA,MAAM0I,iBAAiB,GAAGA,CACxBC,YAAgC,EAChCb,KAAkB,EAClBc,OAAgB,KACC;EACjB,IAAIA,OAAO,EAAE;IACX,IAAID,YAAY,EAAE;MAChB,OAAO;QACL5C,KAAK,EAAE,CAAC;QACR5D,MAAM,EAAE,CAAC;UAAEvC,IAAI,EAAE+I;QAAa,CAAC,EAAEb,KAAK;MACxC,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACL3F,MAAM,EAAE,CAAC2F,KAAK;MAChB,CAAC;IACH;EACF,CAAC,MAAM;IACL,IAAIa,YAAY,EAAE;MAChB,OAAO;QACL5C,KAAK,EAAE,CAAC;QACR5D,MAAM,EAAE,CAAC;UAAEvC,IAAI,EAAE+I;QAAa,CAAC,EAAE;UAAE,GAAGb,KAAK;UAAE1E,KAAK,EAAE;YAAEjB,MAAM,EAAE;UAAG;QAAE,CAAC;MACtE,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACLA,MAAM,EAAE,CAAC;UAAE,GAAG2F,KAAK;UAAE1E,KAAK,EAAE;YAAEjB,MAAM,EAAE;UAAG;QAAE,CAAC;MAC9C,CAAC;IACH;EACF;AACF,CAAC;AAED,MAAMI,uBAAuB,GAAGA,CAC9BzB,IAAY,EACZqB,MAAqB,EACrBlB,aAAmC,EACnCiF,WAAyB,KACI;EAC7B,IAAI4B,KAAK,GAAG3F,MAAM,CAAC0G,KAAK,CAAC,CAAC;EAE1B,IAAIf,KAAK,IAAI,IAAI,EAAE;IACjB,OAAO9H,SAAS;EAClB;EAEA,MAAMsE,aAAuB,GAAG,EAAE;EAElC,IAAIqE,YAAY,GAAGL,gBAAgB,CAACR,KAAK,CAAClI,IAAI,EAAE0E,aAAa,EAAErD,aAAa,CAAC;EAE7EqD,aAAa,CAACzE,IAAI,CAACiI,KAAK,CAAClI,IAAI,CAAC;EAE9B,MAAMwD,KAAmB,GAAGsF,iBAAiB,CAC3CC,YAAY,EACZb,KAAK,EACL3F,MAAM,CAACrC,MAAM,KAAK,CACpB,CAAC;EAED,IAAIqC,MAAM,CAACrC,MAAM,GAAG,CAAC,EAAE;IACrB,IAAIgJ,WAAW,GAAG1F,KAAK;IAEvB,IAAI2F,SAAS,GAAG5G,MAAM,CAAC0G,KAAK,CAAC,CAAC;IAE9B,OAAOE,SAAS,IAAI,IAAI,EAAE;MACxBjB,KAAK,GAAGiB,SAAS;MACjBJ,YAAY,GAAGL,gBAAgB,CAACR,KAAK,CAAClI,IAAI,EAAE0E,aAAa,EAAErD,aAAa,CAAC;MAEzE,MAAM+H,gBAAgB,GACpBF,WAAW,CAAC/C,KAAK,IAAI+C,WAAW,CAAC3G,MAAM,CAACrC,MAAM,GAAG,CAAC;MACpD,MAAMmJ,WAAW,GAAGH,WAAW,CAAC3G,MAAM,CAAC6G,gBAAgB,CAAC;MAExD,IAAIC,WAAW,IAAI,IAAI,EAAE;QACvB,MAAM,IAAIrI,KAAK,CAAC,kCAAkCoI,gBAAgB,GAAG,CAAC;MACxE;MAEAC,WAAW,CAAC7F,KAAK,GAAGsF,iBAAiB,CACnCC,YAAY,EACZb,KAAK,EACL3F,MAAM,CAACrC,MAAM,KAAK,CACpB,CAAC;MAED,IAAIqC,MAAM,CAACrC,MAAM,GAAG,CAAC,EAAE;QACrB,IAAImJ,WAAW,CAAC7F,KAAK,IAAI,IAAI,EAAE;UAC7B,MAAM,IAAIxC,KAAK,CACb,yCAAyCkH,KAAK,CAAClI,IAAI,IACrD,CAAC;QACH;QAEAkJ,WAAW,GAAGG,WAAW,CAAC7F,KAAK;MACjC;MAEAkB,aAAa,CAACzE,IAAI,CAACiI,KAAK,CAAClI,IAAI,CAAC;MAC9BmJ,SAAS,GAAG5G,MAAM,CAAC0G,KAAK,CAAC,CAAC;IAC5B;EACF;EAEA,MAAMK,YAAY,GAAGlK,gBAAgB,CAACoE,KAAK,CAAC;EAE5C,IAAI8F,YAAY,IAAI,IAAI,EAAE;IACxB,OAAOlJ,SAAS;EAClB;EAEAkJ,YAAY,CAACpI,IAAI,GAAGA,IAAI,CAACgB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAE3C,MAAMqH,WAAW,GAAGC,gBAAgB,CAClCtI,IAAI,EACJoF,WAAW,EAAExG,KAAK,EAClBwG,WAAW,EAAEmB,cAAc,EAC3BnB,WAAW,EAAEyB,kBAAkB,EAC/BzB,WAAW,EAAEY,gBAAgB,EAC7BoC,YAAY,CAAC/C,MACf,CAAC;EAED,IAAI,CAACgD,WAAW,CAACE,KAAK,EAAE;IACtB,OAAOrJ,SAAS;EAClB;EAEA,IAAImJ,WAAW,CAAChD,MAAM,EAAE;IACtB+C,YAAY,CAAC/C,MAAM,GAAG;MAAE,GAAG+C,YAAY,CAAC/C,MAAM;MAAE,GAAGgD,WAAW,CAAChD;IAAO,CAAC;EACzE;EAEA,OAAO/C,KAAK;AACd,CAAC;AAED,MAAMgG,gBAAgB,GAAGA,CACvBtI,IAAY,EACZwI,WAAyB,EACzBjC,cAA2B,GAAG,IAAItH,GAAG,CAAC,CAAC,EACvC4H,kBAAgC,EAChCb,gBAAgB,GAAG,KAAK,EACxByC,WAAoB,KAGE;EACtB,MAAMC,KAAK,GAAG1I,IAAI,CAACuB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAChC,MAAM8D,MAA+B,GAAGqD,KAAK,GAAG1K,WAAW,CAACY,KAAK,CAAC8J,KAAK,CAAC,GAAG,CAAC,CAAC;;EAE7E;EACA,KAAK,MAAM5J,IAAI,IAAIyH,cAAc,EAAE;IACjC;IACA,OAAOlB,MAAM,CAACvG,IAAI,CAAC;EACrB;EAEA,IAAI0J,WAAW,EAAE;IACf,KAAK,MAAM1J,IAAI,IAAI0J,WAAW,EAAE;MAC9B,MAAMpJ,MAAM,GAAGoJ,WAAW,CAAC1J,IAAI,CAAC;MAEhC,IAAI,CAACM,MAAM,IAAImH,cAAc,CAACoC,GAAG,CAAC7J,IAAI,CAAC,EAAE;QACvC;MACF;MAEA,MAAMU,MAAM,GAAGL,iBAAiB,CAACC,MAAM,CAAC;MAExC,IAAI,CAACwJ,MAAM,CAACC,MAAM,CAACxD,MAAM,EAAEvG,IAAI,CAAC,EAAE;QAChC,IAAI,CAACU,MAAM,EAAE;UACX;QACF;QAEA,MAAME,MAAM,GAAGH,mBAAmB,CAACC,MAAM,EAAEN,SAAS,CAAC;QAErD,IAAIQ,MAAM,CAACG,MAAM,EAAE;UACjB,OAAO;YAAE0I,KAAK,EAAE;UAAM,CAAC;QACzB;QAEA,IAAI7I,MAAM,CAACD,KAAK,KAAKP,SAAS,EAAE;UAC9BmG,MAAM,CAACvG,IAAI,CAAC,GAAGY,MAAM,CAACD,KAAK;QAC7B;QAEA;MACF;MAEA,IAAID,MAAM,EAAE;QACV,MAAME,MAAM,GAAGH,mBAAmB,CAACC,MAAM,EAAE6F,MAAM,CAACvG,IAAI,CAAC,CAAC;QAExD,IAAIY,MAAM,CAACG,MAAM,EAAE;UACjB,OAAO;YAAE0I,KAAK,EAAE;UAAM,CAAC;QACzB;QAEAlD,MAAM,CAACvG,IAAI,CAAC,GAAGY,MAAM,CAACD,KAAK;QAC3B;MACF;MAEA,MAAMA,KAAK,GAAGE,KAAK,CAACC,OAAO,CAACyF,MAAM,CAACvG,IAAI,CAAC,CAAC,GACrCuG,MAAM,CAACvG,IAAI,CAAC,CAAC,CAAC,CAAC,GACfuG,MAAM,CAACvG,IAAI,CAAC;MAEhB,IAAI,OAAOW,KAAK,KAAK,QAAQ,EAAE;QAC7B;QACA,OAAO4F,MAAM,CAACvG,IAAI,CAAC;QACnB;MACF;MAEA,IAAI,OAAOM,MAAM,KAAK,UAAU,EAAE;QAChCiG,MAAM,CAACvG,IAAI,CAAC,GAAGM,MAAM,CAACK,KAAK,CAAC;QAC5B;MACF;MAEA,MAAM,IAAIK,KAAK,CAACtB,oBAAoB,CAAC;IACvC;EACF;EAEA,IACEwH,gBAAgB,IAChB,CAACa,kBAAkB,EAAE8B,GAAG,CAAC,QAAQ,CAAC,KACjC,OAAOtD,MAAM,CAACjC,MAAM,KAAK,QAAQ,IAC/BqF,WAAW,IAAI,IAAI,IAClB,QAAQ,IAAIA,WAAW,IACvB,OAAOA,WAAW,CAACrF,MAAM,KAAK,QAAS,CAAC,EAC5C;IACA,KAAK,MAAMtE,IAAI,IAAIJ,yBAAyB,EAAE;MAC5C,IAAI,CAACmI,kBAAkB,EAAE8B,GAAG,CAAC7J,IAAI,CAAC,EAAE;QAClC;QACA,OAAOuG,MAAM,CAACvG,IAAI,CAAC;MACrB;IACF;EACF;EAEA,OAAO;IACLyJ,KAAK,EAAE,IAAI;IACXlD,MAAM,EAAEuD,MAAM,CAACE,IAAI,CAACzD,MAAM,CAAC,CAACrG,MAAM,GAAGqG,MAAM,GAAGnG;EAChD,CAAC;AACH,CAAC","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  export { BaseNavigationContainer } from "./BaseNavigationContainer.js";
4
4
  export { createNavigationContainerRef } from "./createNavigationContainerRef.js";
5
5
  export { createNavigatorFactory } from "./createNavigatorFactory.js";
6
+ export { getLoaderForState as UNSTABLE_getLoaderForState } from "./DataLoading.js";
6
7
  export { findFocusedRoute } from "./findFocusedRoute.js";
7
8
  export { getActionFromState } from "./getActionFromState.js";
8
9
  export { getFocusedRouteNameFromRoute } from "./getFocusedRouteNameFromRoute.js";
@@ -1 +1 @@
1
- {"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","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,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;AAuC7C,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":[]}
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;AAyC7C,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":[]}
@@ -36,6 +36,9 @@
36
36
 
37
37
  export class PrivateValueStore {}
38
38
 
39
+ // Remove `undefined` before checking for nested navigator params.
40
+ // If nothing remains, avoid matching `never` against `NavigatorScreenParams`
41
+
39
42
  // Everything in `NavigationProp` except `getParent` and the private brand.
40
43
  // The composite navigation prop intersects this directly, so it doesn't have
41
44
  // to walk `NavigationProp`'s members with `Omit` to drop `getParent`/the brand.
@@ -54,6 +57,16 @@ export class PrivateValueStore {}
54
57
  * Union of param lists of the nested navigators in a param list.
55
58
  */
56
59
 
60
+ // Map of route name to nested navigator type
61
+ // inferred from `NavigatorScreenParams<typeof Navigator>`
62
+
63
+ // Like `NavigationListForScreens`, but reads nested navigators from the brand
64
+ // map instead of a static config.
65
+
66
+ // Fallback for dynamic nested routes declared through NavigatorScreenParams<ParamList>.
67
+ // Param-list branches expose generic navigation props, while nested navigator
68
+ // entries still recover their concrete navigator props.
69
+
57
70
  // Compose every entry in a navigator's list with the accumulated parent.
58
71
  // When there's no parent (root navigator), the list is returned as-is so the
59
72
  // common shallow case doesn't pay for a redundant mapped type.
@@ -1 +1 @@
1
- {"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":";;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8NA,OAAO,MAAMA,iBAAiB,CAAiC;;AAmM/D;AACA;AACA;;AAucA;AACA;AACA;AACA;AACA;AACA;;AAmEA;AACA;;AAkBA;AACA;AACA;;AA6FA;AACA;AACA;;AAqFA;;AAuBA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":";;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8NA,OAAO,MAAMA,iBAAiB,CAAiC;;AA+B/D;AACA;;AA0MA;AACA;AACA;;AA2cA;AACA;AACA;AACA;AACA;AACA;;AAmEA;AACA;;AAcA;AACA;AACA;;AAwMA;AACA;;AAQA;AACA;;AAUA;AACA;AACA;;AA4BA;AACA;AACA;;AAqFA;;AAuBA;AACA;AACA;AACA","ignoreList":[]}
@@ -4,10 +4,12 @@ import * as React from 'react';
4
4
  /**
5
5
  * Hook to manage the event system used by the navigator to notify screens of various events.
6
6
  */
7
- export function useEventEmitter(listen) {
7
+ export function useEventEmitter(listen, onPostEmit) {
8
8
  const listenRef = React.useRef(listen);
9
- React.useEffect(() => {
9
+ const onPostEmitRef = React.useRef(onPostEmit);
10
+ React.useInsertionEffect(() => {
10
11
  listenRef.current = listen;
12
+ onPostEmitRef.current = onPostEmit;
11
13
  });
12
14
  const listeners = React.useRef(Object.create(null));
13
15
  const create = React.useCallback(target => {
@@ -90,6 +92,7 @@ export function useEventEmitter(listen) {
90
92
  const event = Object.defineProperties({}, descriptors);
91
93
  listenRef.current?.(event);
92
94
  callbacks?.forEach(cb => cb(event));
95
+ onPostEmitRef.current?.(event);
93
96
  return event;
94
97
  }, []);
95
98
  return React.useMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEventEmitter","listen","listenRef","useRef","useEffect","current","listeners","Object","create","useCallback","target","removeListener","type","callback","callbacks","delete","addListener","Set","add","emit","data","canPreventDefault","items","undefined","targetSet","size","key","set","cb","descriptors","enumerable","value","defaultPrevented","get","preventDefault","event","defineProperties","forEach","useMemo"],"sourceRoot":"../../src","sources":["useEventEmitter.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEventEmitter","listen","onPostEmit","listenRef","useRef","onPostEmitRef","useInsertionEffect","current","listeners","Object","create","useCallback","target","removeListener","type","callback","callbacks","delete","addListener","Set","add","emit","data","canPreventDefault","items","undefined","targetSet","size","key","set","cb","descriptors","enumerable","value","defaultPrevented","get","preventDefault","event","defineProperties","forEach","useMemo"],"sourceRoot":"../../src","sources":["useEventEmitter.tsx"],"mappings":"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","ignoreList":[]}
@@ -15,8 +15,10 @@ export function useKeyedChildListeners() {
15
15
  // @ts-expect-error: according to ref stated above you can use `key` to index type
16
16
  keyedListeners[type][key] = listener;
17
17
  return () => {
18
- // @ts-expect-error: according to ref stated above you can use `key` to index type
19
- keyedListeners[type][key] = undefined;
18
+ if (keyedListeners[type][key] === listener) {
19
+ // @ts-expect-error: according to ref stated above you can use `key` to index type
20
+ keyedListeners[type][key] = undefined;
21
+ }
20
22
  };
21
23
  }, [keyedListeners]);
22
24
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sourceRoot":"../../src","sources":["useKeyedChildListeners.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IACH;IACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MACX;MACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGE,SAAS;IACvC,CAAC;EACH,CAAC,EACD,CAACZ,cAAc,CACjB,CAAC;EAED,OAAO;IACLA,cAAc;IACdO;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sourceRoot":"../../src","sources":["useKeyedChildListeners.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IACH;IACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MACX,IAAIX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,KAAKC,QAAQ,EAAE;QAC1C;QACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGE,SAAS;MACvC;IACF,CAAC;EACH,CAAC,EACD,CAACZ,cAAc,CACjB,CAAC;EAED,OAAO;IACLA,cAAc;IACdO;EACF,CAAC;AACH","ignoreList":[]}