@react-navigation/core 7.1.2 → 7.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/arrayStartsWith.js +16 -0
- package/lib/commonjs/arrayStartsWith.js.map +1 -0
- package/lib/commonjs/getPathFromState.js +50 -40
- package/lib/commonjs/getPathFromState.js.map +1 -1
- package/lib/commonjs/getPatternParts.js +105 -0
- package/lib/commonjs/getPatternParts.js.map +1 -0
- package/lib/commonjs/getStateFromPath.js +124 -101
- package/lib/commonjs/getStateFromPath.js.map +1 -1
- package/lib/module/arrayStartsWith.js +12 -0
- package/lib/module/arrayStartsWith.js.map +1 -0
- package/lib/module/getPathFromState.js +50 -40
- package/lib/module/getPathFromState.js.map +1 -1
- package/lib/module/getPatternParts.js +101 -0
- package/lib/module/getPatternParts.js.map +1 -0
- package/lib/module/getStateFromPath.js +124 -101
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/typescript/commonjs/src/arrayStartsWith.d.ts +5 -0
- package/lib/typescript/commonjs/src/arrayStartsWith.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/getPathFromState.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/getPatternParts.d.ts +11 -0
- package/lib/typescript/commonjs/src/getPatternParts.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/getStateFromPath.d.ts.map +1 -1
- package/lib/typescript/module/src/arrayStartsWith.d.ts +5 -0
- package/lib/typescript/module/src/arrayStartsWith.d.ts.map +1 -0
- package/lib/typescript/module/src/getPathFromState.d.ts.map +1 -1
- package/lib/typescript/module/src/getPatternParts.d.ts +11 -0
- package/lib/typescript/module/src/getPatternParts.d.ts.map +1 -0
- package/lib/typescript/module/src/getStateFromPath.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/arrayStartsWith.tsx +10 -0
- package/src/getPathFromState.tsx +61 -58
- package/src/getPatternParts.tsx +126 -0
- package/src/getStateFromPath.tsx +156 -156
|
@@ -6,7 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getStateFromPath = getStateFromPath;
|
|
7
7
|
var _escapeStringRegexp = _interopRequireDefault(require("escape-string-regexp"));
|
|
8
8
|
var queryString = _interopRequireWildcard(require("query-string"));
|
|
9
|
+
var _arrayStartsWith = require("./arrayStartsWith.js");
|
|
9
10
|
var _findFocusedRoute = require("./findFocusedRoute.js");
|
|
11
|
+
var _getPatternParts = require("./getPatternParts.js");
|
|
12
|
+
var _isArrayEqual = require("./isArrayEqual.js");
|
|
10
13
|
var _validatePathConfig = require("./validatePathConfig.js");
|
|
11
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
15
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -75,9 +78,7 @@ function getStateFromPath(path, options) {
|
|
|
75
78
|
if (remaining === '/') {
|
|
76
79
|
// We need to add special handling of empty path so navigation to empty path also works
|
|
77
80
|
// When handling empty path, we should only look at the root level config
|
|
78
|
-
const match = configs.find(config => config.
|
|
79
|
-
// Make sure that none of the parent configs have a non-empty path defined
|
|
80
|
-
name => !configs.find(c => c.screen === name)?.path));
|
|
81
|
+
const match = configs.find(config => config.segments.join('/') === '');
|
|
81
82
|
if (match) {
|
|
82
83
|
return createNestedStateObject(path, match.routeNames.map(name => ({
|
|
83
84
|
name
|
|
@@ -144,70 +145,100 @@ function getInitialRoutes(options) {
|
|
|
144
145
|
}
|
|
145
146
|
function getNormalizedConfigs(initialRoutes, screens = {}) {
|
|
146
147
|
// Create a normalized configs array which will be easier to use
|
|
147
|
-
return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, [],
|
|
148
|
-
// Sort config
|
|
149
|
-
// -
|
|
150
|
-
// -
|
|
148
|
+
return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, initialRoutes, [], [], []))).sort((a, b) => {
|
|
149
|
+
// Sort config from most specific to least specific:
|
|
150
|
+
// - more segments
|
|
151
|
+
// - static segments
|
|
152
|
+
// - params with regex
|
|
153
|
+
// - regular params
|
|
154
|
+
// - wildcard
|
|
151
155
|
|
|
152
156
|
// If 2 patterns are same, move the one with less route names up
|
|
153
157
|
// This is an error state, so it's only useful for consistent error messages
|
|
154
|
-
if (a.
|
|
158
|
+
if ((0, _isArrayEqual.isArrayEqual)(a.segments, b.segments)) {
|
|
155
159
|
return b.routeNames.join('>').localeCompare(a.routeNames.join('>'));
|
|
156
160
|
}
|
|
157
161
|
|
|
158
162
|
// If one of the patterns starts with the other, it's more exhaustive
|
|
159
163
|
// So move it up
|
|
160
|
-
if (a.
|
|
164
|
+
if ((0, _arrayStartsWith.arrayStartsWith)(a.segments, b.segments)) {
|
|
161
165
|
return -1;
|
|
162
166
|
}
|
|
163
|
-
if (b.
|
|
167
|
+
if ((0, _arrayStartsWith.arrayStartsWith)(b.segments, a.segments)) {
|
|
164
168
|
return 1;
|
|
165
169
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
// if b is longer, b get higher priority
|
|
170
|
-
if (aParts[i] == null) {
|
|
170
|
+
for (let i = 0; i < Math.max(a.segments.length, b.segments.length); i++) {
|
|
171
|
+
// if b is longer, b gets higher priority
|
|
172
|
+
if (a.segments[i] == null) {
|
|
171
173
|
return 1;
|
|
172
174
|
}
|
|
173
|
-
|
|
174
|
-
if
|
|
175
|
+
|
|
176
|
+
// if a is longer, a gets higher priority
|
|
177
|
+
if (b.segments[i] == null) {
|
|
175
178
|
return -1;
|
|
176
179
|
}
|
|
177
|
-
const aWildCard =
|
|
178
|
-
const bWildCard =
|
|
179
|
-
|
|
180
|
-
|
|
180
|
+
const aWildCard = a.segments[i] === '*';
|
|
181
|
+
const bWildCard = b.segments[i] === '*';
|
|
182
|
+
const aParam = a.segments[i].startsWith(':');
|
|
183
|
+
const bParam = b.segments[i].startsWith(':');
|
|
184
|
+
const aRegex = aParam && a.segments[i].includes('(');
|
|
185
|
+
const bRegex = bParam && b.segments[i].includes('(');
|
|
186
|
+
|
|
187
|
+
// if both are wildcard or regex, we compare next component
|
|
188
|
+
if (aWildCard && bWildCard || aRegex && bRegex) {
|
|
181
189
|
continue;
|
|
182
190
|
}
|
|
183
|
-
|
|
184
|
-
|
|
191
|
+
|
|
192
|
+
// If only a has a param, b gets higher priority
|
|
193
|
+
if (aParam && !bParam) {
|
|
194
|
+
return 1;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// If only b has a param, a gets higher priority
|
|
198
|
+
if (bParam && !aParam) {
|
|
199
|
+
return -1;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// if only a has regex, a gets higher priority
|
|
203
|
+
if (aRegex && !bRegex) {
|
|
204
|
+
return -1;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// if only b has regex, b gets higher priority
|
|
208
|
+
if (bRegex && !aRegex) {
|
|
209
|
+
return 1;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// if only a is wildcard, b gets higher priority
|
|
213
|
+
if (aWildCard && !bWildCard) {
|
|
185
214
|
return 1;
|
|
186
215
|
}
|
|
187
|
-
|
|
188
|
-
if
|
|
216
|
+
|
|
217
|
+
// if only b is wildcard, a gets higher priority
|
|
218
|
+
if (bWildCard && !aWildCard) {
|
|
189
219
|
return -1;
|
|
190
220
|
}
|
|
191
221
|
}
|
|
192
|
-
return
|
|
222
|
+
return a.segments.length - b.segments.length;
|
|
193
223
|
});
|
|
194
224
|
}
|
|
195
225
|
function checkForDuplicatedConfigs(configs) {
|
|
196
226
|
// Check for duplicate patterns in the config
|
|
197
227
|
configs.reduce((acc, config) => {
|
|
198
|
-
|
|
199
|
-
|
|
228
|
+
const pattern = config.segments.join('/');
|
|
229
|
+
if (acc[pattern]) {
|
|
230
|
+
const a = acc[pattern].routeNames;
|
|
200
231
|
const b = config.routeNames;
|
|
201
232
|
|
|
202
233
|
// It's not a problem if the path string omitted from a inner most screen
|
|
203
234
|
// For example, it's ok if a path resolves to `A > B > C` or `A > B`
|
|
204
235
|
const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);
|
|
205
236
|
if (!intersects) {
|
|
206
|
-
throw new Error(`Found conflicting screens with the same pattern. The pattern '${
|
|
237
|
+
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.`);
|
|
207
238
|
}
|
|
208
239
|
}
|
|
209
240
|
return Object.assign(acc, {
|
|
210
|
-
[
|
|
241
|
+
[pattern]: config
|
|
211
242
|
});
|
|
212
243
|
}, {});
|
|
213
244
|
}
|
|
@@ -218,7 +249,6 @@ function getConfigsWithRegexes(configs) {
|
|
|
218
249
|
regex: c.regex ? new RegExp(c.regex.source + '$') : undefined
|
|
219
250
|
}));
|
|
220
251
|
}
|
|
221
|
-
const joinPaths = (...paths) => [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
|
|
222
252
|
const matchAgainstConfigs = (remaining, configs) => {
|
|
223
253
|
let routes;
|
|
224
254
|
let remainingPath = remaining;
|
|
@@ -232,68 +262,37 @@ const matchAgainstConfigs = (remaining, configs) => {
|
|
|
232
262
|
|
|
233
263
|
// If our regex matches, we need to extract params from the path
|
|
234
264
|
if (match) {
|
|
235
|
-
|
|
236
|
-
if (!p.startsWith(':')) {
|
|
237
|
-
return acc;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// Path parameter so increment position for the segment
|
|
241
|
-
acc.pos += 1;
|
|
242
|
-
const decodedParamSegment = decodeURIComponent(
|
|
243
|
-
// The param segments appear every second item starting from 2 in the regex match result
|
|
244
|
-
match[(acc.pos + 1) * 2]
|
|
245
|
-
// Remove trailing slash
|
|
246
|
-
.replace(/\/$/, ''));
|
|
247
|
-
Object.assign(acc.matchedParams, {
|
|
248
|
-
[p]: Object.assign(acc.matchedParams[p] || {}, {
|
|
249
|
-
[index]: decodedParamSegment
|
|
250
|
-
})
|
|
251
|
-
});
|
|
252
|
-
return acc;
|
|
253
|
-
}, {
|
|
254
|
-
pos: -1,
|
|
255
|
-
matchedParams: {}
|
|
256
|
-
});
|
|
257
|
-
const matchedParams = matchResult.matchedParams || {};
|
|
258
|
-
routes = config.routeNames.map(name => {
|
|
265
|
+
routes = config.routeNames.map(routeName => {
|
|
259
266
|
const routeConfig = configs.find(c => {
|
|
260
267
|
// Check matching name AND pattern in case same screen is used at different levels in config
|
|
261
|
-
return c.screen ===
|
|
268
|
+
return c.screen === routeName && (0, _arrayStartsWith.arrayStartsWith)(config.segments, c.segments);
|
|
262
269
|
});
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
const numInitialSegments = routeConfig?.pattern
|
|
269
|
-
// Extract the prefix from the pattern by removing the ending path pattern (e.g pattern=`a/b/c/d` and normalizedPath=`c/d` becomes `a/b`)
|
|
270
|
-
.replace(new RegExp(`${(0, _escapeStringRegexp.default)(normalizedPath)}$`), '')?.split('/').length;
|
|
271
|
-
const params = normalizedPath?.split('/').reduce((acc, p, index) => {
|
|
272
|
-
if (!p.startsWith(':')) {
|
|
273
|
-
return acc;
|
|
270
|
+
const params = routeConfig && match.groups ? Object.fromEntries(Object.entries(match.groups).map(([key, value]) => {
|
|
271
|
+
const index = Number(key.replace('param_', ''));
|
|
272
|
+
const param = routeConfig.params.find(it => it.index === index);
|
|
273
|
+
if (param?.screen === routeName && param?.name) {
|
|
274
|
+
return [param.name, value];
|
|
274
275
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
const value = matchedParams[p]?.[index + offset];
|
|
280
|
-
if (value) {
|
|
281
|
-
const key = p.replace(/^:/, '').replace(/\?$/, '');
|
|
282
|
-
acc[key] = routeConfig?.parse?.[key] ? routeConfig.parse[key](value) : value;
|
|
276
|
+
return null;
|
|
277
|
+
}).filter(it => it != null).map(([key, value]) => {
|
|
278
|
+
if (value == null) {
|
|
279
|
+
return [key, undefined];
|
|
283
280
|
}
|
|
284
|
-
|
|
285
|
-
|
|
281
|
+
const decoded = decodeURIComponent(value);
|
|
282
|
+
const parsed = routeConfig.parse?.[key] ? routeConfig.parse[key](decoded) : decoded;
|
|
283
|
+
return [key, parsed];
|
|
284
|
+
})) : undefined;
|
|
286
285
|
if (params && Object.keys(params).length) {
|
|
287
286
|
return {
|
|
288
|
-
name,
|
|
287
|
+
name: routeName,
|
|
289
288
|
params
|
|
290
289
|
};
|
|
291
290
|
}
|
|
292
291
|
return {
|
|
293
|
-
name
|
|
292
|
+
name: routeName
|
|
294
293
|
};
|
|
295
294
|
});
|
|
296
|
-
remainingPath = remainingPath.replace(match[
|
|
295
|
+
remainingPath = remainingPath.replace(match[0], '');
|
|
297
296
|
break;
|
|
298
297
|
}
|
|
299
298
|
}
|
|
@@ -302,7 +301,7 @@ const matchAgainstConfigs = (remaining, configs) => {
|
|
|
302
301
|
remainingPath
|
|
303
302
|
};
|
|
304
303
|
};
|
|
305
|
-
const createNormalizedConfigs = (screen, routeConfig,
|
|
304
|
+
const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScreens, routeNames) => {
|
|
306
305
|
const configs = [];
|
|
307
306
|
routeNames.push(screen);
|
|
308
307
|
parentScreens.push(screen);
|
|
@@ -310,12 +309,12 @@ const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials,
|
|
|
310
309
|
// @ts-expect-error: we can't strongly typecheck this for now
|
|
311
310
|
const config = routeConfig[screen];
|
|
312
311
|
if (typeof config === 'string') {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
312
|
+
paths.push({
|
|
313
|
+
screen,
|
|
314
|
+
path: config
|
|
315
|
+
});
|
|
316
|
+
configs.push(createConfigItem(screen, [...routeNames], [...paths]));
|
|
316
317
|
} else if (typeof config === 'object') {
|
|
317
|
-
let pattern;
|
|
318
|
-
|
|
319
318
|
// if an object is specified as the value (e.g. Foo: { ... }),
|
|
320
319
|
// it can have `path` property and
|
|
321
320
|
// it could have `screens` prop which has nested configs
|
|
@@ -323,8 +322,16 @@ const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials,
|
|
|
323
322
|
if (config.exact && config.path === undefined) {
|
|
324
323
|
throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");
|
|
325
324
|
}
|
|
326
|
-
|
|
327
|
-
|
|
325
|
+
if (config.exact) {
|
|
326
|
+
// If it's an exact path, we don't need to keep track of the parent screens
|
|
327
|
+
// So we can clear it
|
|
328
|
+
paths.length = 0;
|
|
329
|
+
}
|
|
330
|
+
paths.push({
|
|
331
|
+
screen,
|
|
332
|
+
path: config.path
|
|
333
|
+
});
|
|
334
|
+
configs.push(createConfigItem(screen, [...routeNames], [...paths], config.parse));
|
|
328
335
|
}
|
|
329
336
|
if (config.screens) {
|
|
330
337
|
// property `initialRouteName` without `screens` has no purpose
|
|
@@ -335,7 +342,7 @@ const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials,
|
|
|
335
342
|
});
|
|
336
343
|
}
|
|
337
344
|
Object.keys(config.screens).forEach(nestedConfig => {
|
|
338
|
-
const result = createNormalizedConfigs(nestedConfig, config.screens,
|
|
345
|
+
const result = createNormalizedConfigs(nestedConfig, config.screens, initials, [...paths], [...parentScreens], routeNames);
|
|
339
346
|
configs.push(...result);
|
|
340
347
|
});
|
|
341
348
|
}
|
|
@@ -343,22 +350,38 @@ const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials,
|
|
|
343
350
|
routeNames.pop();
|
|
344
351
|
return configs;
|
|
345
352
|
};
|
|
346
|
-
const createConfigItem = (screen, routeNames,
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
353
|
+
const createConfigItem = (screen, routeNames, paths, parse) => {
|
|
354
|
+
const parts = [];
|
|
355
|
+
|
|
356
|
+
// Parse the path string into parts for easier matching
|
|
357
|
+
for (const {
|
|
358
|
+
screen,
|
|
359
|
+
path
|
|
360
|
+
} of paths) {
|
|
361
|
+
parts.push(...(0, _getPatternParts.getPatternParts)(path).map(part => ({
|
|
362
|
+
...part,
|
|
363
|
+
screen
|
|
364
|
+
})));
|
|
365
|
+
}
|
|
366
|
+
const regex = parts.length ? new RegExp(`^(${parts.map((it, i) => {
|
|
367
|
+
if (it.param) {
|
|
368
|
+
const reg = it.regex || '[^/]+';
|
|
369
|
+
return `(((?<param_${i}>${reg})\\/)${it.optional ? '?' : ''})`;
|
|
352
370
|
}
|
|
353
|
-
return `${it === '*' ? '.*' : (0, _escapeStringRegexp.default)(it)}\\/`;
|
|
371
|
+
return `${it.segment === '*' ? '.*' : (0, _escapeStringRegexp.default)(it.segment)}\\/`;
|
|
354
372
|
}).join('')})`) : undefined;
|
|
373
|
+
const segments = parts.map(it => it.segment);
|
|
374
|
+
const params = parts.map((it, i) => it.param ? {
|
|
375
|
+
index: i,
|
|
376
|
+
screen: it.screen,
|
|
377
|
+
name: it.param
|
|
378
|
+
} : null).filter(it => it != null);
|
|
355
379
|
return {
|
|
356
380
|
screen,
|
|
357
381
|
regex,
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
routeNames: [...routeNames],
|
|
382
|
+
segments,
|
|
383
|
+
params,
|
|
384
|
+
routeNames,
|
|
362
385
|
parse
|
|
363
386
|
};
|
|
364
387
|
};
|
|
@@ -450,7 +473,7 @@ const createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {
|
|
|
450
473
|
}
|
|
451
474
|
}
|
|
452
475
|
route = (0, _findFocusedRoute.findFocusedRoute)(state);
|
|
453
|
-
route.path = path;
|
|
476
|
+
route.path = path.replace(/\/$/, '');
|
|
454
477
|
const params = parseQueryParams(path, flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined);
|
|
455
478
|
if (params) {
|
|
456
479
|
route.params = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_escapeStringRegexp","_interopRequireDefault","require","queryString","_interopRequireWildcard","_findFocusedRoute","_validatePathConfig","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getStateFromPath","path","options","initialRoutes","configs","configWithRegexes","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","undefined","routes","split","filter","Boolean","map","segment","name","decodeURIComponent","length","createNestedStateObject","match","find","config","routeNames","every","c","screen","result","current","remainingPath","matchAgainstConfigs","cachedConfigResources","prepareConfigResources","cached","resources","validatePathConfig","getInitialRoutes","getNormalizedConfigs","checkForDuplicatedConfigs","getConfigsWithRegexes","initialRouteName","push","parentScreens","concat","keys","key","createNormalizedConfigs","sort","b","pattern","join","localeCompare","aParts","bParts","Math","max","aWildCard","bWildCard","reduce","acc","intersects","it","Error","assign","regex","RegExp","source","joinPaths","paths","p","matchResult","index","pos","decodedParamSegment","matchedParams","routeConfig","normalizedPath","numInitialSegments","escape","params","offset","value","parse","initials","parentPattern","createConfigItem","exact","forEach","nestedConfig","pop","findParseConfigForRoute","routeName","flatConfig","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","findFocusedRoute","parseQueryParams","parseConfig","query"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_escapeStringRegexp","_interopRequireDefault","require","queryString","_interopRequireWildcard","_arrayStartsWith","_findFocusedRoute","_getPatternParts","_isArrayEqual","_validatePathConfig","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getStateFromPath","path","options","initialRoutes","configs","configWithRegexes","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","undefined","routes","split","filter","Boolean","map","segment","name","decodeURIComponent","length","createNestedStateObject","match","find","config","segments","join","routeNames","result","current","remainingPath","matchAgainstConfigs","cachedConfigResources","prepareConfigResources","cached","resources","validatePathConfig","getInitialRoutes","getNormalizedConfigs","checkForDuplicatedConfigs","getConfigsWithRegexes","initialRouteName","push","parentScreens","concat","keys","key","createNormalizedConfigs","sort","b","isArrayEqual","localeCompare","arrayStartsWith","Math","max","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","reduce","acc","pattern","intersects","every","it","Error","assign","c","regex","RegExp","source","routeName","routeConfig","screen","params","groups","fromEntries","entries","value","index","Number","param","decoded","parsed","parse","initials","paths","createConfigItem","exact","forEach","nestedConfig","pop","parts","getPatternParts","part","reg","optional","escape","findParseConfigForRoute","flatConfig","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","findFocusedRoute","parseQueryParams","parseConfig","query"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":";;;;;;AAKA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,uBAAA,CAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AAEA,IAAAO,mBAAA,GAAAP,OAAA;AAA0D,SAAAQ,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAlB,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAwC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASmB,gBAAgBA,CAC9BC,IAAY,EACZC,OAA4B,EACH;EACzB,MAAM;IAAEC,aAAa;IAAEC,OAAO;IAAEC;EAAkB,CAAC,GACjDC,kBAAkB,CAACJ,OAAO,CAAC;EAE7B,MAAMK,OAAO,GAAGL,OAAO,EAAEK,OAAO;EAEhC,IAAIC,SAAS,GAAGP,IAAI,CACjBQ,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,GAAGT,OAAO,EAAED,IAAI,EAAEQ,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,OAAOE,SAAS;IAClB;;IAEA;IACAN,SAAS,GAAGA,SAAS,CAACC,OAAO,CAACG,gBAAgB,EAAE,EAAE,CAAC;EACrD;EAEA,IAAIL,OAAO,KAAKO,SAAS,EAAE;IACzB;IACA,MAAMC,MAAM,GAAGP,SAAS,CACrBQ,KAAK,CAAC,GAAG,CAAC,CACVC,MAAM,CAACC,OAAO,CAAC,CACfC,GAAG,CAAEC,OAAO,IAAK;MAChB,MAAMC,IAAI,GAAGC,kBAAkB,CAACF,OAAO,CAAC;MACxC,OAAO;QAAEC;MAAK,CAAC;IACjB,CAAC,CAAC;IAEJ,IAAIN,MAAM,CAACQ,MAAM,EAAE;MACjB,OAAOC,uBAAuB,CAACvB,IAAI,EAAEc,MAAM,EAAEZ,aAAa,CAAC;IAC7D;IAEA,OAAOW,SAAS;EAClB;EAEA,IAAIN,SAAS,KAAK,GAAG,EAAE;IACrB;IACA;IACA,MAAMiB,KAAK,GAAGrB,OAAO,CAACsB,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAExE,IAAIJ,KAAK,EAAE;MACT,OAAOD,uBAAuB,CAC5BvB,IAAI,EACJwB,KAAK,CAACK,UAAU,CAACX,GAAG,CAAEE,IAAI,KAAM;QAAEA;MAAK,CAAC,CAAC,CAAC,EAC1ClB,aAAa,EACbC,OACF,CAAC;IACH;IAEA,OAAOU,SAAS;EAClB;EAEA,IAAIiB,MAAiD;EACrD,IAAIC,OAAkD;;EAEtD;EACA;EACA,MAAM;IAAEjB,MAAM;IAAEkB;EAAc,CAAC,GAAGC,mBAAmB,CACnD1B,SAAS,EACTH,iBACF,CAAC;EAED,IAAIU,MAAM,KAAKD,SAAS,EAAE;IACxB;IACAkB,OAAO,GAAGR,uBAAuB,CAACvB,IAAI,EAAEc,MAAM,EAAEZ,aAAa,EAAEC,OAAO,CAAC;IACvEI,SAAS,GAAGyB,aAAa;IACzBF,MAAM,GAAGC,OAAO;EAClB;EAEA,IAAIA,OAAO,IAAI,IAAI,IAAID,MAAM,IAAI,IAAI,EAAE;IACrC,OAAOjB,SAAS;EAClB;EAEA,OAAOiB,MAAM;AACf;;AAEA;AACA;AACA;AACA,MAAMI,qBAAqB,GAAG,IAAIrD,OAAO,CAA+B,CAAC;AAEzE,SAASwB,kBAAkBA,CACzBJ,OAAuC,EACvC;EACA,IAAI,CAACA,OAAO,EAAE,OAAOkC,sBAAsB,CAAC,CAAC;EAE7C,MAAMC,MAAM,GAAGF,qBAAqB,CAAC/C,GAAG,CAACc,OAAO,CAAC;EAEjD,IAAImC,MAAM,EAAE,OAAOA,MAAM;EAEzB,MAAMC,SAAS,GAAGF,sBAAsB,CAAClC,OAAO,CAAC;EAEjDiC,qBAAqB,CAACpC,GAAG,CAACG,OAAO,EAAEoC,SAAS,CAAC;EAE7C,OAAOA,SAAS;AAClB;AAEA,SAASF,sBAAsBA,CAAClC,OAAqB,EAAE;EACrD,IAAIA,OAAO,EAAE;IACX,IAAAqC,sCAAkB,EAACrC,OAAO,CAAC;EAC7B;EAEA,MAAMC,aAAa,GAAGqC,gBAAgB,CAACtC,OAAO,CAAC;EAE/C,MAAME,OAAO,GAAGqC,oBAAoB,CAACtC,aAAa,EAAED,OAAO,EAAEK,OAAO,CAAC;EAErEmC,yBAAyB,CAACtC,OAAO,CAAC;EAElC,MAAMC,iBAAiB,GAAGsC,qBAAqB,CAACvC,OAAO,CAAC;EAExD,OAAO;IACLD,aAAa;IACbC,OAAO;IACPC;EACF,CAAC;AACH;AAEA,SAASmC,gBAAgBA,CAACtC,OAAqB,EAAE;EAC/C,MAAMC,aAAmC,GAAG,EAAE;EAE9C,IAAID,OAAO,EAAE0C,gBAAgB,EAAE;IAC7BzC,aAAa,CAAC0C,IAAI,CAAC;MACjBD,gBAAgB,EAAE1C,OAAO,CAAC0C,gBAAgB;MAC1CE,aAAa,EAAE;IACjB,CAAC,CAAC;EACJ;EAEA,OAAO3C,aAAa;AACtB;AAEA,SAASsC,oBAAoBA,CAC3BtC,aAAmC,EACnCI,OAA8B,GAAG,CAAC,CAAC,EACnC;EACA;EACA,OAAQ,EAAE,CACPwC,MAAM,CACL,GAAGvD,MAAM,CAACwD,IAAI,CAACzC,OAAO,CAAC,CAACY,GAAG,CAAE8B,GAAG,IAC9BC,uBAAuB,CACrBD,GAAG,EACH1C,OAAO,EACPJ,aAAa,EACb,EAAE,EACF,EAAE,EACF,EACF,CACF,CACF,CAAC,CACAgD,IAAI,CAAC,CAAC5D,CAAC,EAAE6D,CAAC,KAAK;IACd;IACA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA,IAAI,IAAAC,0BAAY,EAAC9D,CAAC,CAACqC,QAAQ,EAAEwB,CAAC,CAACxB,QAAQ,CAAC,EAAE;MACxC,OAAOwB,CAAC,CAACtB,UAAU,CAACD,IAAI,CAAC,GAAG,CAAC,CAACyB,aAAa,CAAC/D,CAAC,CAACuC,UAAU,CAACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE;;IAEA;IACA;IACA,IAAI,IAAA0B,gCAAe,EAAChE,CAAC,CAACqC,QAAQ,EAAEwB,CAAC,CAACxB,QAAQ,CAAC,EAAE;MAC3C,OAAO,CAAC,CAAC;IACX;IAEA,IAAI,IAAA2B,gCAAe,EAACH,CAAC,CAACxB,QAAQ,EAAErC,CAAC,CAACqC,QAAQ,CAAC,EAAE;MAC3C,OAAO,CAAC;IACV;IAEA,KAAK,IAAI9B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0D,IAAI,CAACC,GAAG,CAAClE,CAAC,CAACqC,QAAQ,CAACL,MAAM,EAAE6B,CAAC,CAACxB,QAAQ,CAACL,MAAM,CAAC,EAAEzB,CAAC,EAAE,EAAE;MACvE;MACA,IAAIP,CAAC,CAACqC,QAAQ,CAAC9B,CAAC,CAAC,IAAI,IAAI,EAAE;QACzB,OAAO,CAAC;MACV;;MAEA;MACA,IAAIsD,CAAC,CAACxB,QAAQ,CAAC9B,CAAC,CAAC,IAAI,IAAI,EAAE;QACzB,OAAO,CAAC,CAAC;MACX;MAEA,MAAM4D,SAAS,GAAGnE,CAAC,CAACqC,QAAQ,CAAC9B,CAAC,CAAC,KAAK,GAAG;MACvC,MAAM6D,SAAS,GAAGP,CAAC,CAACxB,QAAQ,CAAC9B,CAAC,CAAC,KAAK,GAAG;MACvC,MAAM8D,MAAM,GAAGrE,CAAC,CAACqC,QAAQ,CAAC9B,CAAC,CAAC,CAACe,UAAU,CAAC,GAAG,CAAC;MAC5C,MAAMgD,MAAM,GAAGT,CAAC,CAACxB,QAAQ,CAAC9B,CAAC,CAAC,CAACe,UAAU,CAAC,GAAG,CAAC;MAC5C,MAAMiD,MAAM,GAAGF,MAAM,IAAIrE,CAAC,CAACqC,QAAQ,CAAC9B,CAAC,CAAC,CAACiE,QAAQ,CAAC,GAAG,CAAC;MACpD,MAAMC,MAAM,GAAGH,MAAM,IAAIT,CAAC,CAACxB,QAAQ,CAAC9B,CAAC,CAAC,CAACiE,QAAQ,CAAC,GAAG,CAAC;;MAEpD;MACA,IAAKL,SAAS,IAAIC,SAAS,IAAMG,MAAM,IAAIE,MAAO,EAAE;QAClD;MACF;;MAEA;MACA,IAAIJ,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;;MAEA;MACA,IAAIJ,SAAS,IAAI,CAACC,SAAS,EAAE;QAC3B,OAAO,CAAC;MACV;;MAEA;MACA,IAAIA,SAAS,IAAI,CAACD,SAAS,EAAE;QAC3B,OAAO,CAAC,CAAC;MACX;IACF;IAEA,OAAOnE,CAAC,CAACqC,QAAQ,CAACL,MAAM,GAAG6B,CAAC,CAACxB,QAAQ,CAACL,MAAM;EAC9C,CAAC,CAAC;AACN;AAEA,SAASmB,yBAAyBA,CAACtC,OAAsB,EAAE;EACzD;EACAA,OAAO,CAAC6D,MAAM,CAA8B,CAACC,GAAG,EAAEvC,MAAM,KAAK;IAC3D,MAAMwC,OAAO,GAAGxC,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC;IAEzC,IAAIqC,GAAG,CAACC,OAAO,CAAC,EAAE;MAChB,MAAM5E,CAAC,GAAG2E,GAAG,CAACC,OAAO,CAAC,CAACrC,UAAU;MACjC,MAAMsB,CAAC,GAAGzB,MAAM,CAACG,UAAU;;MAE3B;MACA;MACA,MAAMsC,UAAU,GACd7E,CAAC,CAACgC,MAAM,GAAG6B,CAAC,CAAC7B,MAAM,GACf6B,CAAC,CAACiB,KAAK,CAAC,CAACC,EAAE,EAAExE,CAAC,KAAKP,CAAC,CAACO,CAAC,CAAC,KAAKwE,EAAE,CAAC,GAC/B/E,CAAC,CAAC8E,KAAK,CAAC,CAACC,EAAE,EAAExE,CAAC,KAAKsD,CAAC,CAACtD,CAAC,CAAC,KAAKwE,EAAE,CAAC;MAErC,IAAI,CAACF,UAAU,EAAE;QACf,MAAM,IAAIG,KAAK,CACb,iEACEJ,OAAO,uBACc5E,CAAC,CAACsC,IAAI,CAAC,KAAK,CAAC,UAAUuB,CAAC,CAACvB,IAAI,CAClD,KACF,CAAC,wEACH,CAAC;MACH;IACF;IAEA,OAAOrC,MAAM,CAACgF,MAAM,CAACN,GAAG,EAAE;MACxB,CAACC,OAAO,GAAGxC;IACb,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR;AAEA,SAASgB,qBAAqBA,CAACvC,OAAsB,EAAE;EACrD,OAAOA,OAAO,CAACe,GAAG,CAAEsD,CAAC,KAAM;IACzB,GAAGA,CAAC;IACJ;IACAC,KAAK,EAAED,CAAC,CAACC,KAAK,GAAG,IAAIC,MAAM,CAACF,CAAC,CAACC,KAAK,CAACE,MAAM,GAAG,GAAG,CAAC,GAAG9D;EACtD,CAAC,CAAC,CAAC;AACL;AAEA,MAAMoB,mBAAmB,GAAGA,CAAC1B,SAAiB,EAAEJ,OAAsB,KAAK;EACzE,IAAIW,MAAiC;EACrC,IAAIkB,aAAa,GAAGzB,SAAS;;EAE7B;EACA,KAAK,MAAMmB,MAAM,IAAIvB,OAAO,EAAE;IAC5B,IAAI,CAACuB,MAAM,CAAC+C,KAAK,EAAE;MACjB;IACF;IAEA,MAAMjD,KAAK,GAAGQ,aAAa,CAACR,KAAK,CAACE,MAAM,CAAC+C,KAAK,CAAC;;IAE/C;IACA,IAAIjD,KAAK,EAAE;MACTV,MAAM,GAAGY,MAAM,CAACG,UAAU,CAACX,GAAG,CAAE0D,SAAS,IAAK;QAC5C,MAAMC,WAAW,GAAG1E,OAAO,CAACsB,IAAI,CAAE+C,CAAC,IAAK;UACtC;UACA,OACEA,CAAC,CAACM,MAAM,KAAKF,SAAS,IACtB,IAAAtB,gCAAe,EAAC5B,MAAM,CAACC,QAAQ,EAAE6C,CAAC,CAAC7C,QAAQ,CAAC;QAEhD,CAAC,CAAC;QAEF,MAAMoD,MAAM,GACVF,WAAW,IAAIrD,KAAK,CAACwD,MAAM,GACvBzF,MAAM,CAAC0F,WAAW,CAChB1F,MAAM,CAAC2F,OAAO,CAAC1D,KAAK,CAACwD,MAAM,CAAC,CACzB9D,GAAG,CAAC,CAAC,CAAC8B,GAAG,EAAEmC,KAAK,CAAC,KAAK;UACrB,MAAMC,KAAK,GAAGC,MAAM,CAACrC,GAAG,CAACxC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;UAC/C,MAAM8E,KAAK,GAAGT,WAAW,CAACE,MAAM,CAACtD,IAAI,CAClC4C,EAAE,IAAKA,EAAE,CAACe,KAAK,KAAKA,KACvB,CAAC;UAED,IAAIE,KAAK,EAAER,MAAM,KAAKF,SAAS,IAAIU,KAAK,EAAElE,IAAI,EAAE;YAC9C,OAAO,CAACkE,KAAK,CAAClE,IAAI,EAAE+D,KAAK,CAAC;UAC5B;UAEA,OAAO,IAAI;QACb,CAAC,CAAC,CACDnE,MAAM,CAAEqD,EAAE,IAAKA,EAAE,IAAI,IAAI,CAAC,CAC1BnD,GAAG,CAAC,CAAC,CAAC8B,GAAG,EAAEmC,KAAK,CAAC,KAAK;UACrB,IAAIA,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,CAACnC,GAAG,EAAEnC,SAAS,CAAC;UACzB;UAEA,MAAM0E,OAAO,GAAGlE,kBAAkB,CAAC8D,KAAK,CAAC;UACzC,MAAMK,MAAM,GAAGX,WAAW,CAACY,KAAK,GAAGzC,GAAG,CAAC,GACnC6B,WAAW,CAACY,KAAK,CAACzC,GAAG,CAAC,CAACuC,OAAO,CAAC,GAC/BA,OAAO;UAEX,OAAO,CAACvC,GAAG,EAAEwC,MAAM,CAAC;QACtB,CAAC,CACL,CAAC,GACD3E,SAAS;QAEf,IAAIkE,MAAM,IAAIxF,MAAM,CAACwD,IAAI,CAACgC,MAAM,CAAC,CAACzD,MAAM,EAAE;UACxC,OAAO;YAAEF,IAAI,EAAEwD,SAAS;YAAEG;UAAO,CAAC;QACpC;QAEA,OAAO;UAAE3D,IAAI,EAAEwD;QAAU,CAAC;MAC5B,CAAC,CAAC;MAEF5C,aAAa,GAAGA,aAAa,CAACxB,OAAO,CAACgB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;MAEnD;IACF;EACF;EAEA,OAAO;IAAEV,MAAM;IAAEkB;EAAc,CAAC;AAClC,CAAC;AAED,MAAMiB,uBAAuB,GAAGA,CAC9B6B,MAAc,EACdD,WAAkC,EAClCa,QAA8B,EAC9BC,KAAyC,EACzC9C,aAAuB,EACvBhB,UAAoB,KACF;EAClB,MAAM1B,OAAsB,GAAG,EAAE;EAEjC0B,UAAU,CAACe,IAAI,CAACkC,MAAM,CAAC;EAEvBjC,aAAa,CAACD,IAAI,CAACkC,MAAM,CAAC;;EAE1B;EACA,MAAMpD,MAAM,GAAGmD,WAAW,CAACC,MAAM,CAAC;EAElC,IAAI,OAAOpD,MAAM,KAAK,QAAQ,EAAE;IAC9BiE,KAAK,CAAC/C,IAAI,CAAC;MAAEkC,MAAM;MAAE9E,IAAI,EAAE0B;IAAO,CAAC,CAAC;IACpCvB,OAAO,CAACyC,IAAI,CAACgD,gBAAgB,CAACd,MAAM,EAAE,CAAC,GAAGjD,UAAU,CAAC,EAAE,CAAC,GAAG8D,KAAK,CAAC,CAAC,CAAC;EACrE,CAAC,MAAM,IAAI,OAAOjE,MAAM,KAAK,QAAQ,EAAE;IACrC;IACA;IACA;IACA,IAAI,OAAOA,MAAM,CAAC1B,IAAI,KAAK,QAAQ,EAAE;MACnC,IAAI0B,MAAM,CAACmE,KAAK,IAAInE,MAAM,CAAC1B,IAAI,KAAKa,SAAS,EAAE;QAC7C,MAAM,IAAIyD,KAAK,CACb,sJACF,CAAC;MACH;MAEA,IAAI5C,MAAM,CAACmE,KAAK,EAAE;QAChB;QACA;QACAF,KAAK,CAACrE,MAAM,GAAG,CAAC;MAClB;MAEAqE,KAAK,CAAC/C,IAAI,CAAC;QAAEkC,MAAM;QAAE9E,IAAI,EAAE0B,MAAM,CAAC1B;MAAK,CAAC,CAAC;MACzCG,OAAO,CAACyC,IAAI,CACVgD,gBAAgB,CAACd,MAAM,EAAE,CAAC,GAAGjD,UAAU,CAAC,EAAE,CAAC,GAAG8D,KAAK,CAAC,EAAEjE,MAAM,CAAC+D,KAAK,CACpE,CAAC;IACH;IAEA,IAAI/D,MAAM,CAACpB,OAAO,EAAE;MAClB;MACA,IAAIoB,MAAM,CAACiB,gBAAgB,EAAE;QAC3B+C,QAAQ,CAAC9C,IAAI,CAAC;UACZD,gBAAgB,EAAEjB,MAAM,CAACiB,gBAAgB;UACzCE;QACF,CAAC,CAAC;MACJ;MAEAtD,MAAM,CAACwD,IAAI,CAACrB,MAAM,CAACpB,OAAO,CAAC,CAACwF,OAAO,CAAEC,YAAY,IAAK;QACpD,MAAMjE,MAAM,GAAGmB,uBAAuB,CACpC8C,YAAY,EACZrE,MAAM,CAACpB,OAAO,EACdoF,QAAQ,EACR,CAAC,GAAGC,KAAK,CAAC,EACV,CAAC,GAAG9C,aAAa,CAAC,EAClBhB,UACF,CAAC;QAED1B,OAAO,CAACyC,IAAI,CAAC,GAAGd,MAAM,CAAC;MACzB,CAAC,CAAC;IACJ;EACF;EAEAD,UAAU,CAACmE,GAAG,CAAC,CAAC;EAEhB,OAAO7F,OAAO;AAChB,CAAC;AAED,MAAMyF,gBAAgB,GAAGA,CACvBd,MAAc,EACdjD,UAAoB,EACpB8D,KAAyC,EACzCF,KAAmB,KACH;EAChB,MAAMQ,KAA2C,GAAG,EAAE;;EAEtD;EACA,KAAK,MAAM;IAAEnB,MAAM;IAAE9E;EAAK,CAAC,IAAI2F,KAAK,EAAE;IACpCM,KAAK,CAACrD,IAAI,CAAC,GAAG,IAAAsD,gCAAe,EAAClG,IAAI,CAAC,CAACkB,GAAG,CAAEiF,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAErB;IAAO,CAAC,CAAC,CAAC,CAAC;EAC3E;EAEA,MAAML,KAAK,GAAGwB,KAAK,CAAC3E,MAAM,GACtB,IAAIoD,MAAM,CACR,KAAKuB,KAAK,CACP/E,GAAG,CAAC,CAACmD,EAAE,EAAExE,CAAC,KAAK;IACd,IAAIwE,EAAE,CAACiB,KAAK,EAAE;MACZ,MAAMc,GAAG,GAAG/B,EAAE,CAACI,KAAK,IAAI,OAAO;MAE/B,OAAO,cAAc5E,CAAC,IAAIuG,GAAG,QAAQ/B,EAAE,CAACgC,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG;IAChE;IAEA,OAAO,GAAGhC,EAAE,CAAClD,OAAO,KAAK,GAAG,GAAG,IAAI,GAAG,IAAAmF,2BAAM,EAACjC,EAAE,CAAClD,OAAO,CAAC,KAAK;EAC/D,CAAC,CAAC,CACDS,IAAI,CAAC,EAAE,CAAC,GACb,CAAC,GACDf,SAAS;EAEb,MAAMc,QAAQ,GAAGsE,KAAK,CAAC/E,GAAG,CAAEmD,EAAE,IAAKA,EAAE,CAAClD,OAAO,CAAC;EAC9C,MAAM4D,MAAM,GAAGkB,KAAK,CACjB/E,GAAG,CAAC,CAACmD,EAAE,EAAExE,CAAC,KACTwE,EAAE,CAACiB,KAAK,GACJ;IACEF,KAAK,EAAEvF,CAAC;IACRiF,MAAM,EAAET,EAAE,CAACS,MAAM;IACjB1D,IAAI,EAAEiD,EAAE,CAACiB;EACX,CAAC,GACD,IACN,CAAC,CACAtE,MAAM,CAAEqD,EAAE,IAAKA,EAAE,IAAI,IAAI,CAAC;EAE7B,OAAO;IACLS,MAAM;IACNL,KAAK;IACL9C,QAAQ;IACRoD,MAAM;IACNlD,UAAU;IACV4D;EACF,CAAC;AACH,CAAC;AAED,MAAMc,uBAAuB,GAAGA,CAC9B3B,SAAiB,EACjB4B,UAAyB,KACG;EAC5B,KAAK,MAAM9E,MAAM,IAAI8E,UAAU,EAAE;IAC/B,IAAI5B,SAAS,KAAKlD,MAAM,CAACG,UAAU,CAACH,MAAM,CAACG,UAAU,CAACP,MAAM,GAAG,CAAC,CAAC,EAAE;MACjE,OAAOI,MAAM,CAAC+D,KAAK;IACrB;EACF;EAEA,OAAO5E,SAAS;AAClB,CAAC;;AAED;AACA,MAAM4F,gBAAgB,GAAGA,CACvB7B,SAAiB,EACjB/B,aAAuB,EACvB3C,aAAmC,KACZ;EACvB,KAAK,MAAMwB,MAAM,IAAIxB,aAAa,EAAE;IAClC,IAAI2C,aAAa,CAACvB,MAAM,KAAKI,MAAM,CAACmB,aAAa,CAACvB,MAAM,EAAE;MACxD,IAAIoF,WAAW,GAAG,IAAI;MACtB,KAAK,IAAI7G,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgD,aAAa,CAACvB,MAAM,EAAEzB,CAAC,EAAE,EAAE;QAC7C,IAAIgD,aAAa,CAAChD,CAAC,CAAC,CAACwD,aAAa,CAAC3B,MAAM,CAACmB,aAAa,CAAChD,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;UACjE6G,WAAW,GAAG,KAAK;UACnB;QACF;MACF;MACA,IAAIA,WAAW,EAAE;QACf,OAAO9B,SAAS,KAAKlD,MAAM,CAACiB,gBAAgB,GACxCjB,MAAM,CAACiB,gBAAgB,GACvB9B,SAAS;MACf;IACF;EACF;EACA,OAAOA,SAAS;AAClB,CAAC;;AAED;AACA;AACA,MAAM8F,iBAAiB,GAAGA,CACxBC,YAAgC,EAChCC,KAAkB,EAClBC,OAAgB,KACC;EACjB,IAAIA,OAAO,EAAE;IACX,IAAIF,YAAY,EAAE;MAChB,OAAO;QACLxB,KAAK,EAAE,CAAC;QACRtE,MAAM,EAAE,CAAC;UAAEM,IAAI,EAAEwF;QAAa,CAAC,EAAEC,KAAK;MACxC,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACL/F,MAAM,EAAE,CAAC+F,KAAK;MAChB,CAAC;IACH;EACF,CAAC,MAAM;IACL,IAAID,YAAY,EAAE;MAChB,OAAO;QACLxB,KAAK,EAAE,CAAC;QACRtE,MAAM,EAAE,CAAC;UAAEM,IAAI,EAAEwF;QAAa,CAAC,EAAE;UAAE,GAAGC,KAAK;UAAEE,KAAK,EAAE;YAAEjG,MAAM,EAAE;UAAG;QAAE,CAAC;MACtE,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACLA,MAAM,EAAE,CAAC;UAAE,GAAG+F,KAAK;UAAEE,KAAK,EAAE;YAAEjG,MAAM,EAAE;UAAG;QAAE,CAAC;MAC9C,CAAC;IACH;EACF;AACF,CAAC;AAED,MAAMS,uBAAuB,GAAGA,CAC9BvB,IAAY,EACZc,MAAqB,EACrBZ,aAAmC,EACnCsG,UAA0B,KACvB;EACH,IAAIK,KAAK,GAAG/F,MAAM,CAACkG,KAAK,CAAC,CAAgB;EACzC,MAAMnE,aAAuB,GAAG,EAAE;EAElC,IAAI+D,YAAY,GAAGH,gBAAgB,CAACI,KAAK,CAACzF,IAAI,EAAEyB,aAAa,EAAE3C,aAAa,CAAC;EAE7E2C,aAAa,CAACD,IAAI,CAACiE,KAAK,CAACzF,IAAI,CAAC;EAE9B,MAAM2F,KAAmB,GAAGJ,iBAAiB,CAC3CC,YAAY,EACZC,KAAK,EACL/F,MAAM,CAACQ,MAAM,KAAK,CACpB,CAAC;EAED,IAAIR,MAAM,CAACQ,MAAM,GAAG,CAAC,EAAE;IACrB,IAAI2F,WAAW,GAAGF,KAAK;IAEvB,OAAQF,KAAK,GAAG/F,MAAM,CAACkG,KAAK,CAAC,CAAgB,EAAG;MAC9CJ,YAAY,GAAGH,gBAAgB,CAACI,KAAK,CAACzF,IAAI,EAAEyB,aAAa,EAAE3C,aAAa,CAAC;MAEzE,MAAMgH,gBAAgB,GACpBD,WAAW,CAAC7B,KAAK,IAAI6B,WAAW,CAACnG,MAAM,CAACQ,MAAM,GAAG,CAAC;MAEpD2F,WAAW,CAACnG,MAAM,CAACoG,gBAAgB,CAAC,CAACH,KAAK,GAAGJ,iBAAiB,CAC5DC,YAAY,EACZC,KAAK,EACL/F,MAAM,CAACQ,MAAM,KAAK,CACpB,CAAC;MAED,IAAIR,MAAM,CAACQ,MAAM,GAAG,CAAC,EAAE;QACrB2F,WAAW,GAAGA,WAAW,CAACnG,MAAM,CAACoG,gBAAgB,CAAC,CAC/CH,KAAqB;MAC1B;MAEAlE,aAAa,CAACD,IAAI,CAACiE,KAAK,CAACzF,IAAI,CAAC;IAChC;EACF;EAEAyF,KAAK,GAAG,IAAAM,kCAAgB,EAACJ,KAAK,CAAgB;EAC9CF,KAAK,CAAC7G,IAAI,GAAGA,IAAI,CAACQ,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAEpC,MAAMuE,MAAM,GAAGqC,gBAAgB,CAC7BpH,IAAI,EACJwG,UAAU,GAAGD,uBAAuB,CAACM,KAAK,CAACzF,IAAI,EAAEoF,UAAU,CAAC,GAAG3F,SACjE,CAAC;EAED,IAAIkE,MAAM,EAAE;IACV8B,KAAK,CAAC9B,MAAM,GAAG;MAAE,GAAG8B,KAAK,CAAC9B,MAAM;MAAE,GAAGA;IAAO,CAAC;EAC/C;EAEA,OAAOgC,KAAK;AACd,CAAC;AAED,MAAMK,gBAAgB,GAAGA,CACvBpH,IAAY,EACZqH,WAAwD,KACrD;EACH,MAAMC,KAAK,GAAGtH,IAAI,CAACe,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAChC,MAAMgE,MAA+B,GAAG3G,WAAW,CAACqH,KAAK,CAAC6B,KAAK,CAAC;EAEhE,IAAID,WAAW,EAAE;IACf9H,MAAM,CAACwD,IAAI,CAACgC,MAAM,CAAC,CAACe,OAAO,CAAE1E,IAAI,IAAK;MACpC,IACE7B,MAAM,CAACI,cAAc,CAACC,IAAI,CAACyH,WAAW,EAAEjG,IAAI,CAAC,IAC7C,OAAO2D,MAAM,CAAC3D,IAAI,CAAC,KAAK,QAAQ,EAChC;QACA2D,MAAM,CAAC3D,IAAI,CAAC,GAAGiG,WAAW,CAACjG,IAAI,CAAC,CAAC2D,MAAM,CAAC3D,IAAI,CAAC,CAAC;MAChD;IACF,CAAC,CAAC;EACJ;EAEA,OAAO7B,MAAM,CAACwD,IAAI,CAACgC,MAAM,CAAC,CAACzD,MAAM,GAAGyD,MAAM,GAAGlE,SAAS;AACxD,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Compare two arrays to check if the first array starts with the second array.
|
|
5
|
+
*/
|
|
6
|
+
export function arrayStartsWith(array, start) {
|
|
7
|
+
if (start.length > array.length) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
return start.every((it, index) => it === array[index]);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=arrayStartsWith.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["arrayStartsWith","array","start","length","every","it","index"],"sourceRoot":"../../src","sources":["arrayStartsWith.tsx"],"mappings":";;AAAA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAAIC,KAAU,EAAEC,KAAU,EAAE;EACzD,IAAIA,KAAK,CAACC,MAAM,GAAGF,KAAK,CAACE,MAAM,EAAE;IAC/B,OAAO,KAAK;EACd;EAEA,OAAOD,KAAK,CAACE,KAAK,CAAC,CAACC,EAAE,EAAEC,KAAK,KAAKD,EAAE,KAAKJ,KAAK,CAACK,KAAK,CAAC,CAAC;AACxD","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as queryString from 'query-string';
|
|
4
|
+
import { getPatternParts } from "./getPatternParts.js";
|
|
4
5
|
import { validatePathConfig } from "./validatePathConfig.js";
|
|
5
6
|
const getActiveRoute = state => {
|
|
6
7
|
const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];
|
|
@@ -50,7 +51,7 @@ const getNormalizedConfigs = options => {
|
|
|
50
51
|
*/
|
|
51
52
|
export function getPathFromState(state, options) {
|
|
52
53
|
if (state == null) {
|
|
53
|
-
throw Error(
|
|
54
|
+
throw Error(`Got '${String(state)}' for the navigation state. You must pass a valid state object.`);
|
|
54
55
|
}
|
|
55
56
|
if (options) {
|
|
56
57
|
validatePathConfig(options);
|
|
@@ -62,21 +63,21 @@ export function getPathFromState(state, options) {
|
|
|
62
63
|
while (current) {
|
|
63
64
|
let index = typeof current.index === 'number' ? current.index : 0;
|
|
64
65
|
let route = current.routes[index];
|
|
65
|
-
let
|
|
66
|
+
let parts;
|
|
66
67
|
let focusedParams;
|
|
67
|
-
const focusedRoute = getActiveRoute(state);
|
|
68
68
|
let currentOptions = configs;
|
|
69
|
+
const focusedRoute = getActiveRoute(state);
|
|
69
70
|
|
|
70
71
|
// Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined
|
|
71
72
|
const nestedRouteNames = [];
|
|
72
73
|
let hasNext = true;
|
|
73
74
|
while (route.name in currentOptions && hasNext) {
|
|
74
|
-
|
|
75
|
+
parts = currentOptions[route.name].parts;
|
|
75
76
|
nestedRouteNames.push(route.name);
|
|
76
77
|
if (route.params) {
|
|
77
78
|
const stringify = currentOptions[route.name]?.stringify;
|
|
78
79
|
const currentParams = Object.fromEntries(Object.entries(route.params).map(([key, value]) => [key, stringify?.[key] ? stringify[key](value) : String(value)]));
|
|
79
|
-
if (
|
|
80
|
+
if (parts?.length) {
|
|
80
81
|
Object.assign(allParams, currentParams);
|
|
81
82
|
}
|
|
82
83
|
if (focusedRoute === route) {
|
|
@@ -85,15 +86,17 @@ export function getPathFromState(state, options) {
|
|
|
85
86
|
focusedParams = {
|
|
86
87
|
...currentParams
|
|
87
88
|
};
|
|
88
|
-
|
|
89
|
+
parts
|
|
89
90
|
// eslint-disable-next-line no-loop-func
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
?.forEach(({
|
|
92
|
+
param
|
|
93
|
+
}) => {
|
|
94
|
+
if (param) {
|
|
95
|
+
// Remove the params present in the pattern since we'll only use the rest for query string
|
|
96
|
+
if (focusedParams) {
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
98
|
+
delete focusedParams[param];
|
|
99
|
+
}
|
|
97
100
|
}
|
|
98
101
|
});
|
|
99
102
|
}
|
|
@@ -117,24 +120,23 @@ export function getPathFromState(state, options) {
|
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
}
|
|
120
|
-
if (pattern === undefined) {
|
|
121
|
-
pattern = nestedRouteNames.join('/');
|
|
122
|
-
}
|
|
123
123
|
if (currentOptions[route.name] !== undefined) {
|
|
124
|
-
path +=
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
path += parts?.map(({
|
|
125
|
+
segment,
|
|
126
|
+
param,
|
|
127
|
+
optional
|
|
128
|
+
}) => {
|
|
127
129
|
// We don't know what to show for wildcard patterns
|
|
128
130
|
// Showing the route name seems ok, though whatever we show here will be incorrect
|
|
129
131
|
// Since the page doesn't actually exist
|
|
130
|
-
if (
|
|
132
|
+
if (segment === '*') {
|
|
131
133
|
return route.name;
|
|
132
134
|
}
|
|
133
135
|
|
|
134
136
|
// If the path has a pattern for a param, put the param in the path
|
|
135
|
-
if (
|
|
136
|
-
const value = allParams[
|
|
137
|
-
if (value === undefined &&
|
|
137
|
+
if (param) {
|
|
138
|
+
const value = allParams[param];
|
|
139
|
+
if (value === undefined && optional) {
|
|
138
140
|
// Optional params without value assigned in route.params should be ignored
|
|
139
141
|
return '';
|
|
140
142
|
}
|
|
@@ -143,13 +145,13 @@ export function getPathFromState(state, options) {
|
|
|
143
145
|
// https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 (see pchar definition)
|
|
144
146
|
return String(value).replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g, char => encodeURIComponent(char));
|
|
145
147
|
}
|
|
146
|
-
return encodeURIComponent(
|
|
148
|
+
return encodeURIComponent(segment);
|
|
147
149
|
}).join('/');
|
|
148
150
|
} else {
|
|
149
151
|
path += encodeURIComponent(route.name);
|
|
150
152
|
}
|
|
151
|
-
if (!focusedParams) {
|
|
152
|
-
focusedParams = focusedRoute.params;
|
|
153
|
+
if (!focusedParams && focusedRoute.params) {
|
|
154
|
+
focusedParams = Object.fromEntries(Object.entries(focusedRoute.params).map(([key, value]) => [key, String(value)]));
|
|
153
155
|
}
|
|
154
156
|
if (route.state) {
|
|
155
157
|
path += '/';
|
|
@@ -170,24 +172,33 @@ export function getPathFromState(state, options) {
|
|
|
170
172
|
current = route.state;
|
|
171
173
|
}
|
|
172
174
|
|
|
175
|
+
// Include the root path if specified
|
|
176
|
+
if (options?.path) {
|
|
177
|
+
path = `${options.path}/${path}`;
|
|
178
|
+
}
|
|
179
|
+
|
|
173
180
|
// Remove multiple as well as trailing slashes
|
|
174
181
|
path = path.replace(/\/+/g, '/');
|
|
175
182
|
path = path.length > 1 ? path.replace(/\/$/, '') : path;
|
|
176
183
|
|
|
177
|
-
//
|
|
178
|
-
|
|
179
|
-
|
|
184
|
+
// If path doesn't start with a slash, add it
|
|
185
|
+
// This makes sure that history.pushState will update the path correctly instead of appending
|
|
186
|
+
if (!path.startsWith('/')) {
|
|
187
|
+
path = `/${path}`;
|
|
180
188
|
}
|
|
181
189
|
return path;
|
|
182
190
|
}
|
|
183
|
-
const
|
|
184
|
-
const joinPaths = (...paths) => [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
|
|
185
|
-
const createConfigItem = (config, parentPattern) => {
|
|
191
|
+
const createConfigItem = (config, parentParts) => {
|
|
186
192
|
if (typeof config === 'string') {
|
|
187
193
|
// If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern
|
|
188
|
-
const
|
|
194
|
+
const parts = getPatternParts(config);
|
|
195
|
+
if (parentParts) {
|
|
196
|
+
return {
|
|
197
|
+
parts: [...parentParts, ...parts]
|
|
198
|
+
};
|
|
199
|
+
}
|
|
189
200
|
return {
|
|
190
|
-
|
|
201
|
+
parts
|
|
191
202
|
};
|
|
192
203
|
}
|
|
193
204
|
if (config.exact && config.path === undefined) {
|
|
@@ -196,17 +207,16 @@ const createConfigItem = (config, parentPattern) => {
|
|
|
196
207
|
|
|
197
208
|
// If an object is specified as the value (e.g. Foo: { ... }),
|
|
198
209
|
// It can have `path` property and `screens` prop which has nested configs
|
|
199
|
-
const
|
|
200
|
-
const screens = config.screens ? createNormalizedConfigs(config.screens,
|
|
210
|
+
const parts = config.exact !== true ? [...(parentParts || []), ...(config.path ? getPatternParts(config.path) : [])] : config.path ? getPatternParts(config.path) : undefined;
|
|
211
|
+
const screens = config.screens ? createNormalizedConfigs(config.screens, parts) : undefined;
|
|
201
212
|
return {
|
|
202
|
-
|
|
203
|
-
pattern: pattern?.split('/').filter(Boolean).join('/'),
|
|
213
|
+
parts,
|
|
204
214
|
stringify: config.stringify,
|
|
205
215
|
screens
|
|
206
216
|
};
|
|
207
217
|
};
|
|
208
|
-
const createNormalizedConfigs = (options,
|
|
209
|
-
const result = createConfigItem(c,
|
|
218
|
+
const createNormalizedConfigs = (options, parts) => Object.fromEntries(Object.entries(options).map(([name, c]) => {
|
|
219
|
+
const result = createConfigItem(c, parts);
|
|
210
220
|
return [name, result];
|
|
211
221
|
}));
|
|
212
222
|
//# sourceMappingURL=getPathFromState.js.map
|