one 1.1.390 → 1.1.391
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/dist/cjs/Root.cjs +6 -17
- package/dist/cjs/Root.js +9 -13
- package/dist/cjs/Root.js.map +1 -1
- package/dist/cjs/Root.native.js +4 -12
- package/dist/cjs/Root.native.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.cjs +49 -31
- package/dist/cjs/fork/NavigationContainer.js +40 -21
- package/dist/cjs/fork/NavigationContainer.js.map +2 -2
- package/dist/cjs/fork/NavigationContainer.native.js +51 -29
- package/dist/cjs/fork/NavigationContainer.native.js.map +2 -2
- package/dist/cjs/fork/createMemoryHistory.cjs +4 -3
- package/dist/cjs/fork/createMemoryHistory.js +3 -2
- package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js +8 -4
- package/dist/cjs/fork/createMemoryHistory.native.js.map +2 -2
- package/dist/cjs/fork/extractPathFromURL.cjs +48 -28
- package/dist/cjs/fork/extractPathFromURL.js +44 -21
- package/dist/cjs/fork/extractPathFromURL.js.map +2 -2
- package/dist/cjs/fork/extractPathFromURL.native.js +58 -26
- package/dist/cjs/fork/extractPathFromURL.native.js.map +2 -2
- package/dist/cjs/fork/findFocusedRoute.js.map +1 -1
- package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.cjs +65 -0
- package/dist/cjs/fork/getPathFromState-mods.js +56 -0
- package/dist/cjs/fork/getPathFromState-mods.js.map +6 -0
- package/dist/cjs/fork/getPathFromState-mods.native.js +70 -0
- package/dist/cjs/fork/getPathFromState-mods.native.js.map +6 -0
- package/dist/cjs/fork/getPathFromState.cjs +75 -224
- package/dist/cjs/fork/getPathFromState.js +68 -223
- package/dist/cjs/fork/getPathFromState.js.map +2 -2
- package/dist/cjs/fork/getPathFromState.native.js +79 -261
- package/dist/cjs/fork/getPathFromState.native.js.map +2 -2
- package/dist/cjs/fork/getStateFromPath-mods.cjs +187 -0
- package/dist/cjs/fork/getStateFromPath-mods.js +199 -0
- package/dist/cjs/fork/getStateFromPath-mods.js.map +6 -0
- package/dist/cjs/fork/getStateFromPath-mods.native.js +284 -0
- package/dist/cjs/fork/getStateFromPath-mods.native.js.map +6 -0
- package/dist/cjs/fork/getStateFromPath.cjs +181 -263
- package/dist/cjs/fork/getStateFromPath.js +148 -264
- package/dist/cjs/fork/getStateFromPath.js.map +2 -2
- package/dist/cjs/fork/getStateFromPath.native.js +164 -304
- package/dist/cjs/fork/getStateFromPath.native.js.map +2 -2
- package/dist/cjs/fork/useBackButton.js.map +1 -1
- package/dist/cjs/fork/useBackButton.native.js.map +1 -1
- package/dist/cjs/fork/useDocumentTitle.js +4 -1
- package/dist/cjs/fork/useDocumentTitle.js.map +1 -1
- package/dist/cjs/fork/useDocumentTitle.native.js +1 -1
- package/dist/cjs/fork/useDocumentTitle.native.js.map +2 -2
- package/dist/cjs/fork/useLinking.cjs +21 -24
- package/dist/cjs/fork/useLinking.js +21 -25
- package/dist/cjs/fork/useLinking.js.map +2 -2
- package/dist/cjs/fork/useLinking.native.js +68 -66
- package/dist/cjs/fork/useLinking.native.js.map +2 -2
- package/dist/cjs/fork/useThenable.js.map +1 -1
- package/dist/cjs/fork/useThenable.native.js.map +1 -1
- package/dist/cjs/fork/validatePathConfig.cjs +32 -11
- package/dist/cjs/fork/validatePathConfig.js +41 -11
- package/dist/cjs/fork/validatePathConfig.js.map +1 -1
- package/dist/cjs/fork/validatePathConfig.native.js +47 -18
- package/dist/cjs/fork/validatePathConfig.native.js.map +2 -2
- package/dist/cjs/layouts/withLayoutContext.cjs +1 -1
- package/dist/cjs/layouts/withLayoutContext.js +1 -1
- package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/link/linking.cjs +4 -4
- package/dist/cjs/link/linking.js +3 -3
- package/dist/cjs/link/linking.js.map +2 -2
- package/dist/cjs/link/linking.native.js +3 -3
- package/dist/cjs/link/linking.native.js.map +1 -1
- package/dist/cjs/link/useLinkTo.cjs +2 -2
- package/dist/cjs/link/useLinkTo.js +2 -2
- package/dist/cjs/link/useLinkTo.js.map +1 -1
- package/dist/cjs/link/useLinkTo.native.js +2 -2
- package/dist/cjs/link/useLinkTo.native.js.map +1 -1
- package/dist/cjs/router/getNormalizedStatePath.cjs +2 -2
- package/dist/cjs/router/getNormalizedStatePath.js +2 -2
- package/dist/cjs/router/getNormalizedStatePath.js.map +1 -1
- package/dist/cjs/router/getNormalizedStatePath.native.js +2 -2
- package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +19 -3
- package/dist/cjs/router/router.js +25 -3
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +39 -3
- package/dist/cjs/router/router.native.js.map +2 -2
- package/dist/esm/Root.js +6 -2
- package/dist/esm/Root.js.map +1 -1
- package/dist/esm/Root.mjs +1 -1
- package/dist/esm/Root.mjs.map +1 -1
- package/dist/esm/Root.native.js +1 -1
- package/dist/esm/Root.native.js.map +2 -2
- package/dist/esm/fork/NavigationContainer.js +43 -20
- package/dist/esm/fork/NavigationContainer.js.map +1 -1
- package/dist/esm/fork/NavigationContainer.mjs +42 -24
- package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
- package/dist/esm/fork/NavigationContainer.native.js +44 -24
- package/dist/esm/fork/NavigationContainer.native.js.map +2 -2
- package/dist/esm/fork/createMemoryHistory.js +3 -2
- package/dist/esm/fork/createMemoryHistory.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.mjs +4 -3
- package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
- package/dist/esm/fork/createMemoryHistory.native.js +4 -4
- package/dist/esm/fork/createMemoryHistory.native.js.map +2 -2
- package/dist/esm/fork/extractPathFromURL.js +42 -11
- package/dist/esm/fork/extractPathFromURL.js.map +1 -1
- package/dist/esm/fork/extractPathFromURL.mjs +39 -11
- package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
- package/dist/esm/fork/extractPathFromURL.native.js +52 -15
- package/dist/esm/fork/extractPathFromURL.native.js.map +2 -2
- package/dist/esm/fork/findFocusedRoute.js.map +1 -1
- package/dist/esm/fork/findFocusedRoute.mjs.map +1 -1
- package/dist/esm/fork/findFocusedRoute.native.js.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.js +40 -0
- package/dist/esm/fork/getPathFromState-mods.js.map +6 -0
- package/dist/esm/fork/getPathFromState-mods.mjs +40 -0
- package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -0
- package/dist/esm/fork/getPathFromState-mods.native.js +47 -0
- package/dist/esm/fork/getPathFromState-mods.native.js.map +6 -0
- package/dist/esm/fork/getPathFromState.js +71 -228
- package/dist/esm/fork/getPathFromState.js.map +2 -2
- package/dist/esm/fork/getPathFromState.mjs +73 -221
- package/dist/esm/fork/getPathFromState.mjs.map +1 -1
- package/dist/esm/fork/getPathFromState.native.js +79 -260
- package/dist/esm/fork/getPathFromState.native.js.map +2 -2
- package/dist/esm/fork/getStateFromPath-mods.js +176 -0
- package/dist/esm/fork/getStateFromPath-mods.js.map +6 -0
- package/dist/esm/fork/getStateFromPath-mods.mjs +143 -0
- package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -0
- package/dist/esm/fork/getStateFromPath-mods.native.js +246 -0
- package/dist/esm/fork/getStateFromPath-mods.native.js.map +6 -0
- package/dist/esm/fork/getStateFromPath.js +160 -265
- package/dist/esm/fork/getStateFromPath.js.map +2 -2
- package/dist/esm/fork/getStateFromPath.mjs +181 -260
- package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath.native.js +164 -302
- package/dist/esm/fork/getStateFromPath.native.js.map +2 -2
- package/dist/esm/fork/useBackButton.js.map +1 -1
- package/dist/esm/fork/useBackButton.mjs.map +1 -1
- package/dist/esm/fork/useBackButton.native.js.map +1 -1
- package/dist/esm/fork/useDocumentTitle.js +4 -1
- package/dist/esm/fork/useDocumentTitle.js.map +1 -1
- package/dist/esm/fork/useDocumentTitle.mjs.map +1 -1
- package/dist/esm/fork/useDocumentTitle.native.js +1 -1
- package/dist/esm/fork/useDocumentTitle.native.js.map +2 -2
- package/dist/esm/fork/useLinking.js +22 -26
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +20 -23
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/fork/useLinking.native.js +65 -67
- package/dist/esm/fork/useLinking.native.js.map +2 -2
- package/dist/esm/fork/useThenable.js.map +1 -1
- package/dist/esm/fork/useThenable.mjs.map +1 -1
- package/dist/esm/fork/useThenable.native.js.map +1 -1
- package/dist/esm/fork/validatePathConfig.js +41 -11
- package/dist/esm/fork/validatePathConfig.js.map +1 -1
- package/dist/esm/fork/validatePathConfig.mjs +32 -11
- package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
- package/dist/esm/fork/validatePathConfig.native.js +43 -18
- package/dist/esm/fork/validatePathConfig.native.js.map +2 -2
- package/dist/esm/layouts/withLayoutContext.js +1 -1
- package/dist/esm/layouts/withLayoutContext.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/esm/link/linking.js +2 -2
- package/dist/esm/link/linking.js.map +1 -1
- package/dist/esm/link/linking.mjs +2 -2
- package/dist/esm/link/linking.mjs.map +1 -1
- package/dist/esm/link/linking.native.js +2 -2
- package/dist/esm/link/linking.native.js.map +1 -1
- package/dist/esm/link/useLinkTo.js +1 -1
- package/dist/esm/link/useLinkTo.mjs +1 -1
- package/dist/esm/link/useLinkTo.native.js +1 -1
- package/dist/esm/router/getNormalizedStatePath.js +1 -1
- package/dist/esm/router/getNormalizedStatePath.mjs +1 -1
- package/dist/esm/router/getNormalizedStatePath.native.js +1 -1
- package/dist/esm/router/router.js +24 -2
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +18 -2
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +38 -2
- package/dist/esm/router/router.native.js.map +2 -2
- package/package.json +8 -9
- package/src/Root.tsx +6 -2
- package/src/fork/NavigationContainer.tsx +101 -39
- package/src/fork/createMemoryHistory.tsx +15 -13
- package/src/fork/extractPathFromURL.ts +85 -40
- package/src/fork/findFocusedRoute.tsx +9 -1
- package/src/fork/getPathFromState-mods.ts +142 -0
- package/src/fork/getPathFromState.ts +244 -501
- package/src/fork/getStateFromPath-mods.ts +400 -0
- package/src/fork/getStateFromPath.ts +447 -538
- package/src/fork/useBackButton.native.tsx +16 -2
- package/src/fork/useBackButton.tsx +11 -2
- package/src/fork/useDocumentTitle.native.tsx +9 -4
- package/src/fork/useDocumentTitle.tsx +12 -7
- package/src/fork/useLinking.native.ts +71 -63
- package/src/fork/useLinking.ts +75 -40
- package/src/fork/useThenable.tsx +7 -1
- package/src/fork/validatePathConfig.ts +64 -12
- package/src/layouts/withLayoutContext.tsx +1 -1
- package/src/link/linking.ts +2 -2
- package/src/link/useLinkTo.tsx +1 -1
- package/src/router/getNormalizedStatePath.tsx +1 -1
- package/src/router/router.ts +41 -2
- package/types/Root.d.ts.map +1 -1
- package/types/fork/NavigationContainer.d.ts +19 -8
- package/types/fork/NavigationContainer.d.ts.map +1 -1
- package/types/fork/createMemoryHistory.d.ts +10 -1
- package/types/fork/createMemoryHistory.d.ts.map +1 -1
- package/types/fork/extractPathFromURL.d.ts +7 -1
- package/types/fork/extractPathFromURL.d.ts.map +1 -1
- package/types/fork/findFocusedRoute.d.ts +9 -0
- package/types/fork/findFocusedRoute.d.ts.map +1 -1
- package/types/fork/getPathFromState-mods.d.ts +23 -0
- package/types/fork/getPathFromState-mods.d.ts.map +1 -0
- package/types/fork/getPathFromState.d.ts +15 -14
- package/types/fork/getPathFromState.d.ts.map +1 -1
- package/types/fork/getStateFromPath-mods.d.ts +58 -0
- package/types/fork/getStateFromPath-mods.d.ts.map +1 -0
- package/types/fork/getStateFromPath.d.ts +28 -29
- package/types/fork/getStateFromPath.d.ts.map +1 -1
- package/types/fork/useBackButton.d.ts +6 -0
- package/types/fork/useBackButton.d.ts.map +1 -1
- package/types/fork/useBackButton.native.d.ts +9 -1
- package/types/fork/useBackButton.native.d.ts.map +1 -1
- package/types/fork/useDocumentTitle.d.ts +8 -6
- package/types/fork/useDocumentTitle.d.ts.map +1 -1
- package/types/fork/useDocumentTitle.native.d.ts +5 -2
- package/types/fork/useDocumentTitle.native.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts +8 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/fork/useLinking.native.d.ts +9 -2
- package/types/fork/useLinking.native.d.ts.map +1 -1
- package/types/fork/useThenable.d.ts +6 -0
- package/types/fork/useThenable.d.ts.map +1 -1
- package/types/fork/validatePathConfig.d.ts +8 -1
- package/types/fork/validatePathConfig.d.ts.map +1 -1
- package/types/link/linking.d.ts +2 -2
- package/types/link/linking.d.ts.map +1 -1
@@ -1,261 +1,86 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
var
|
1
|
+
import { getPathWithConventionsCollapsed, appendBaseUrl } from "./getPathFromState-mods";
|
2
|
+
import { validatePathConfig } from "./validatePathConfig";
|
3
|
+
var getActiveRoute = function(state) {
|
4
4
|
var route = typeof state.index == "number" ? state.routes[state.index] : state.routes[state.routes.length - 1];
|
5
|
-
return route.state ? getActiveRoute(route.state) : route
|
5
|
+
return route.state ? getActiveRoute(route.state) : route;
|
6
|
+
}, cachedNormalizedConfigs = /* @__PURE__ */ new WeakMap(), getNormalizedConfigs = function(options) {
|
7
|
+
if (!options?.screens) return {};
|
8
|
+
var cached = cachedNormalizedConfigs.get(options?.screens);
|
9
|
+
if (cached) return cached;
|
10
|
+
var normalizedConfigs = createNormalizedConfigs(options.screens);
|
11
|
+
return cachedNormalizedConfigs.set(options.screens, normalizedConfigs), normalizedConfigs;
|
6
12
|
};
|
7
|
-
function
|
8
|
-
return
|
9
|
-
stale: !1,
|
10
|
-
type: "UNKNOWN",
|
11
|
-
key: "UNKNOWN",
|
12
|
-
index: 0,
|
13
|
-
routeNames: [],
|
14
|
-
routes: [
|
15
|
-
{
|
16
|
-
key: "UNKNOWN",
|
17
|
-
name: params.screen,
|
18
|
-
params: params.params,
|
19
|
-
path: params.path
|
20
|
-
}
|
21
|
-
]
|
22
|
-
};
|
23
|
-
}
|
24
|
-
function segmentMatchesConvention(segment) {
|
25
|
-
return segment === "index" || matchDynamicName(segment) != null || matchGroupName(segment) != null || matchDeepDynamicRouteName(segment) != null;
|
26
|
-
}
|
27
|
-
function encodeURIComponentPreservingBrackets(str) {
|
28
|
-
return encodeURIComponent(str).replace(/%5B/g, "[").replace(/%5D/g, "]");
|
29
|
-
}
|
30
|
-
function getPathFromState(state, _options) {
|
31
|
-
return getPathDataFromState(state, _options).path;
|
32
|
-
}
|
33
|
-
function getPathDataFromState(state) {
|
34
|
-
var _options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
|
35
|
-
screens: DEFAULT_SCREENS
|
36
|
-
};
|
37
|
-
if (state == null)
|
38
|
-
throw Error("Got 'undefined' for the navigation state. You must pass a valid state object.");
|
39
|
-
var { preserveGroups, preserveDynamicRoutes, ...options } = _options;
|
40
|
-
if (validatePathConfig(options), Object.is(options.screens, DEFAULT_SCREENS))
|
41
|
-
throw Error("You must pass a 'screens' object to 'getPathFromState' to generate a path.");
|
42
|
-
return getPathFromResolvedState(
|
43
|
-
state,
|
44
|
-
// Create a normalized configs object which will be easier to use
|
45
|
-
createNormalizedConfigs(options.screens),
|
46
|
-
{
|
47
|
-
preserveGroups,
|
48
|
-
preserveDynamicRoutes
|
49
|
-
}
|
50
|
-
);
|
13
|
+
function getPathFromState(state, options) {
|
14
|
+
return getPathDataFromState(state, options).path;
|
51
15
|
}
|
52
|
-
function
|
53
|
-
var
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
if (!deepEqual(a[i], b[i]))
|
74
|
-
return !1;
|
75
|
-
return !0;
|
76
|
-
}
|
77
|
-
if (typeof a == "object" && typeof b == "object") {
|
78
|
-
var keysA = Object.keys(a), keysB = Object.keys(b);
|
79
|
-
if (keysA.length !== keysB.length)
|
80
|
-
return !1;
|
81
|
-
var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
82
|
-
try {
|
83
|
-
for (var _iterator = keysA[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
84
|
-
var key = _step.value;
|
85
|
-
if (!deepEqual(a[key], b[key]))
|
86
|
-
return !1;
|
16
|
+
function getPathDataFromState(state, options) {
|
17
|
+
var _loop = function() {
|
18
|
+
for (var _loop2 = function() {
|
19
|
+
if (pattern = currentOptions[route.name].pattern, nestedRouteNames.push(route.name), route.params) {
|
20
|
+
var _currentOptions_route_name, stringify = (_currentOptions_route_name = currentOptions[route.name]) === null || _currentOptions_route_name === void 0 ? void 0 : _currentOptions_route_name.stringify, currentParams = Object.fromEntries(Object.entries(route.params).flatMap(function(param2) {
|
21
|
+
var [key, value] = param2;
|
22
|
+
return key === "screen" || key === "params" ? [] : [
|
23
|
+
[
|
24
|
+
key,
|
25
|
+
stringify?.[key] ? stringify[key](value) : Array.isArray(value) ? value.map(String) : String(value)
|
26
|
+
]
|
27
|
+
];
|
28
|
+
}));
|
29
|
+
Object.assign(allParams, currentParams), focusedRoute === route && (focusedParams = {
|
30
|
+
...currentParams
|
31
|
+
}, pattern?.split("/").filter(function(p) {
|
32
|
+
return p.startsWith(":");
|
33
|
+
}).forEach(function(p) {
|
34
|
+
var name = getParamName(p);
|
35
|
+
focusedParams && delete focusedParams[name];
|
36
|
+
}));
|
87
37
|
}
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
38
|
+
if (!currentOptions[route.name].screens || route.state === void 0) {
|
39
|
+
var _route_params_screen, _currentOptions_route_name_screens, screens = currentOptions[route.name].screens, screen = route.params && "screen" in route.params ? (_route_params_screen = route.params.screen) === null || _route_params_screen === void 0 ? void 0 : _route_params_screen.toString() : screens ? Object.keys(screens)[0] : void 0;
|
40
|
+
screen && screens && (!((_currentOptions_route_name_screens = currentOptions[route.name].screens) === null || _currentOptions_route_name_screens === void 0) && _currentOptions_route_name_screens[screen]) ? (route = {
|
41
|
+
...screens[screen],
|
42
|
+
name: screen,
|
43
|
+
key: screen
|
44
|
+
}, currentOptions = screens) : hasNext = !1;
|
45
|
+
} else {
|
46
|
+
index = typeof route.state.index == "number" ? route.state.index : route.state.routes.length - 1;
|
47
|
+
var nextRoute = route.state.routes[index], nestedConfig = currentOptions[route.name].screens;
|
48
|
+
nestedConfig && nextRoute.name in nestedConfig ? (route = nextRoute, currentOptions = nestedConfig) : hasNext = !1;
|
96
49
|
}
|
97
|
-
}
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
function walkConfigItems(route, focusedRoute, configs, param) {
|
103
|
-
var { preserveDynamicRoutes } = param;
|
104
|
-
!route.state && isInvalidParams(route.params);
|
105
|
-
for (var pattern = null, focusedParams, hash, collectedParams = {}; route.name in configs; ) {
|
106
|
-
var configItem = configs[route.name], inputPattern = configItem.pattern;
|
107
|
-
if (inputPattern == null)
|
108
|
-
throw new Error("Unexpected: No pattern found for route " + route.name);
|
109
|
-
if (pattern = inputPattern, route.params) {
|
110
|
-
route.params["#"] && (hash = route.params["#"], delete route.params["#"]);
|
111
|
-
var params = processParamsWithUserSettings(configItem, route.params);
|
112
|
-
pattern != null && Object.assign(collectedParams, params), deepEqual(focusedRoute, route) && (preserveDynamicRoutes ? focusedParams = params : focusedParams = getParamsWithConventionsCollapsed({
|
113
|
-
params,
|
50
|
+
}, index = typeof current.index == "number" ? current.index : 0, route = current.routes[index], pattern = void 0, focusedParams = void 0, focusedRoute = getActiveRoute(state), currentOptions = configs, nestedRouteNames = [], hasNext = !0; route.name in currentOptions && hasNext; ) _loop2();
|
51
|
+
if (currentOptions[route.name] !== void 0) {
|
52
|
+
var _configs_route_name;
|
53
|
+
pattern === void 0 && (pattern = nestedRouteNames.join("/")), path += getPathWithConventionsCollapsed({
|
54
|
+
...options,
|
114
55
|
pattern,
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
56
|
+
route,
|
57
|
+
params: allParams,
|
58
|
+
initialRouteName: (_configs_route_name = configs[route.name]) === null || _configs_route_name === void 0 ? void 0 : _configs_route_name.initialRouteName
|
59
|
+
});
|
60
|
+
} else
|
61
|
+
route.name.startsWith("+") || (path += encodeURIComponent(route.name));
|
62
|
+
if (focusedParams || (focusedParams = focusedRoute.params), route.state)
|
63
|
+
path += "/";
|
64
|
+
else if (focusedParams) {
|
65
|
+
for (var param in focusedParams)
|
66
|
+
focusedParams[param] === "undefined" && delete focusedParams[param];
|
67
|
+
delete focusedParams["#"];
|
68
|
+
var query = new URLSearchParams(focusedParams).toString();
|
69
|
+
query && (path += `?${query}`);
|
129
70
|
}
|
130
|
-
|
131
|
-
if (nestedScreens && nextRoute.name in nestedScreens)
|
132
|
-
route = nextRoute, configs = nestedScreens;
|
133
|
-
else
|
134
|
-
break;
|
135
|
-
}
|
136
|
-
if (pattern == null)
|
137
|
-
throw new Error(`No pattern found for route "${route.name}". Options are: ${Object.keys(configs).join(", ")}.`);
|
138
|
-
return pattern && !focusedParams && focusedRoute.params && (preserveDynamicRoutes ? focusedParams = focusedRoute.params : focusedParams = getParamsWithConventionsCollapsed({
|
139
|
-
params: focusedRoute.params,
|
140
|
-
pattern,
|
141
|
-
routeName: route.name
|
142
|
-
}), focusedParams = {
|
143
|
-
...focusedParams,
|
144
|
-
...collectedParams
|
145
|
-
}), {
|
146
|
-
pattern,
|
147
|
-
nextRoute: route,
|
148
|
-
focusedParams,
|
149
|
-
hash,
|
150
|
-
params: collectedParams
|
71
|
+
current = route.state;
|
151
72
|
};
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
var { pattern, params, nextRoute, focusedParams, hash: $hash } = walkConfigItems(route, getActiveRoute(current), {
|
160
|
-
...configs
|
161
|
-
}, {
|
162
|
-
preserveDynamicRoutes
|
163
|
-
});
|
164
|
-
$hash && (hash = $hash), Object.assign(allParams, params), path += getPathWithConventionsCollapsed({
|
165
|
-
pattern,
|
166
|
-
routePath: nextRoute.path,
|
167
|
-
params: allParams,
|
168
|
-
initialRouteName: (_configs_nextRoute_name = configs[nextRoute.name]) === null || _configs_nextRoute_name === void 0 ? void 0 : _configs_nextRoute_name.initialRouteName,
|
169
|
-
preserveGroups,
|
170
|
-
preserveDynamicRoutes
|
171
|
-
});
|
172
|
-
var _nextRoute_state_index;
|
173
|
-
if (nextRoute.state && // NOTE: The upstream implementation allows for sending in synthetic states (states that weren't generated by `getStateFromPath`)
|
174
|
-
// and any invalid routes will simply be ignored.
|
175
|
-
// Because of this, we need to check if the next route is valid before continuing, otherwise our more strict
|
176
|
-
// implementation will throw an error.
|
177
|
-
configs[(_nextRoute_state_routes = nextRoute.state.routes) === null || _nextRoute_state_routes === void 0 || (_nextRoute_state_routes_ = _nextRoute_state_routes[(_nextRoute_state_index = (_nextRoute_state = nextRoute.state) === null || _nextRoute_state === void 0 ? void 0 : _nextRoute_state.index) !== null && _nextRoute_state_index !== void 0 ? _nextRoute_state_index : 0]) === null || _nextRoute_state_routes_ === void 0 ? void 0 : _nextRoute_state_routes_.name])
|
178
|
-
current = nextRoute.state;
|
179
|
-
else {
|
180
|
-
if (focusedParams && // note: using [...route] is returning an array which shouldn't go on search, this is just
|
181
|
-
// an initial hacky test to work around this as we dont want to pass that to search
|
182
|
-
!Array.isArray(focusedParams)) {
|
183
|
-
for (var _$param in focusedParams)
|
184
|
-
focusedParams[_$param] === "undefined" && delete focusedParams[_$param];
|
185
|
-
var query = new URLSearchParams(focusedParams).toString();
|
186
|
-
query && (path += `?${query}`);
|
187
|
-
}
|
188
|
-
break;
|
189
|
-
}
|
190
|
-
}
|
191
|
-
hash && (allParams["#"] = hash, path += `#${hash}`);
|
192
|
-
var params1 = decodeParams(allParams);
|
193
|
-
return {
|
194
|
-
path: appendBaseUrl(basicSanitizePath(path)),
|
195
|
-
params: params1
|
73
|
+
if (state == null)
|
74
|
+
throw Error("Got 'undefined' for the navigation state. You must pass a valid state object.");
|
75
|
+
options && validatePathConfig(options);
|
76
|
+
for (var configs = getNormalizedConfigs(options), path = "/", current = state, allParams = {}; current; ) _loop();
|
77
|
+
return path = path.replace(/\/+/g, "/"), path = path.length > 1 ? path.replace(/\/$/, "") : path, options?.path && (path = joinPaths(options.path, path)), path = appendBaseUrl(path), allParams["#"] && (path += `#${allParams["#"]}`), {
|
78
|
+
path,
|
79
|
+
params: allParams
|
196
80
|
};
|
197
81
|
}
|
198
|
-
function decodeParams(params) {
|
199
|
-
var parsed = {}, _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
200
|
-
try {
|
201
|
-
for (var _iterator = Object.entries(params)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
202
|
-
var [key, value] = _step.value;
|
203
|
-
try {
|
204
|
-
Array.isArray(value) ? parsed[key] = value.map(function(v) {
|
205
|
-
return decodeURIComponent(v);
|
206
|
-
}) : parsed[key] = decodeURIComponent(value);
|
207
|
-
} catch {
|
208
|
-
parsed[key] = value;
|
209
|
-
}
|
210
|
-
}
|
211
|
-
} catch (err) {
|
212
|
-
_didIteratorError = !0, _iteratorError = err;
|
213
|
-
} finally {
|
214
|
-
try {
|
215
|
-
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
216
|
-
} finally {
|
217
|
-
if (_didIteratorError)
|
218
|
-
throw _iteratorError;
|
219
|
-
}
|
220
|
-
}
|
221
|
-
return parsed;
|
222
|
-
}
|
223
|
-
function getPathWithConventionsCollapsed(param) {
|
224
|
-
var { pattern, routePath, params, preserveGroups, preserveDynamicRoutes, initialRouteName } = param, segments = pattern.split("/");
|
225
|
-
return segments.map(function(p, i) {
|
226
|
-
var name = getParamName(p);
|
227
|
-
return p.startsWith("*") ? preserveDynamicRoutes ? name === "not-found" ? "+not-found" : `[...${name}]` : params[name] ? Array.isArray(params[name]) ? params[name].join("/") : params[name] : i === 0 ? routePath : routePath?.split("/").slice(i + 1).join("/") : p.startsWith(":") ? preserveDynamicRoutes ? `[${name}]` : params[name] : !preserveGroups && matchGroupName(p) != null ? segments.length - 1 === i && initialRouteName ? segmentMatchesConvention(initialRouteName) ? "" : encodeURIComponentPreservingBrackets(initialRouteName) : "" : encodeURIComponentPreservingBrackets(p);
|
228
|
-
}).map(function(v) {
|
229
|
-
return v ?? "";
|
230
|
-
}).join("/");
|
231
|
-
}
|
232
|
-
function getParamsWithConventionsCollapsed(param) {
|
233
|
-
var { pattern, routeName, params } = param, processedParams = {
|
234
|
-
...params
|
235
|
-
}, segments = pattern.split("/");
|
236
|
-
if (segments.filter(function(segment) {
|
237
|
-
return segment.startsWith(":");
|
238
|
-
}).forEach(function(segment) {
|
239
|
-
var name2 = getParamName(segment);
|
240
|
-
delete processedParams[name2];
|
241
|
-
}), segments.some(function(segment) {
|
242
|
-
return segment.startsWith("*");
|
243
|
-
})) {
|
244
|
-
var _matchDeepDynamicRouteName, name = testNotFound(routeName) ? "not-found" : (_matchDeepDynamicRouteName = matchDeepDynamicRouteName(routeName)) !== null && _matchDeepDynamicRouteName !== void 0 ? _matchDeepDynamicRouteName : routeName;
|
245
|
-
delete processedParams[name];
|
246
|
-
}
|
247
|
-
return processedParams;
|
248
|
-
}
|
249
|
-
function basicSanitizePath(path) {
|
250
|
-
var simplifiedPath = path.replace(/\/+/g, "/");
|
251
|
-
return simplifiedPath.length <= 1 ? simplifiedPath : simplifiedPath.replace(/\/$/, "");
|
252
|
-
}
|
253
|
-
function isInvalidParams(params) {
|
254
|
-
return params ? "params" in params && typeof params.params == "object" && params.params ? !0 : "initial" in params && typeof params.initial == "boolean" && // "path" in params &&
|
255
|
-
"screen" in params : !1;
|
256
|
-
}
|
257
82
|
var getParamName = function(pattern) {
|
258
|
-
return pattern.replace(
|
83
|
+
return pattern.replace(/^:/, "").replace(/\?$/, "");
|
259
84
|
}, joinPaths = function() {
|
260
85
|
for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++)
|
261
86
|
paths[_key] = arguments[_key];
|
@@ -276,26 +101,20 @@ var getParamName = function(pattern) {
|
|
276
101
|
// Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.
|
277
102
|
pattern: pattern1?.split("/").filter(Boolean).join("/"),
|
278
103
|
stringify: config.stringify,
|
279
|
-
screens
|
280
|
-
initialRouteName: config.initialRouteName
|
104
|
+
screens
|
281
105
|
};
|
282
106
|
}, createNormalizedConfigs = function(options, pattern) {
|
283
107
|
return Object.fromEntries(Object.entries(options).map(function(param) {
|
284
|
-
var [name, c] = param;
|
108
|
+
var [name, c] = param, result = createConfigItem(c, pattern);
|
285
109
|
return [
|
286
110
|
name,
|
287
|
-
|
111
|
+
result
|
288
112
|
];
|
289
113
|
}));
|
290
|
-
};
|
291
|
-
function appendBaseUrl(path) {
|
292
|
-
var baseUrl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.env.EXPO_BASE_URL;
|
293
|
-
return process.env.NODE_ENV !== "development" && baseUrl ? `/${baseUrl.replace(/^\/+/, "").replace(/\/$/, "")}${path}` : path;
|
294
|
-
}
|
114
|
+
}, getPathFromState_default = getPathFromState;
|
295
115
|
export {
|
296
|
-
|
297
|
-
|
298
|
-
getPathFromState
|
299
|
-
getPathDataFromState
|
116
|
+
getPathFromState_default as default,
|
117
|
+
getPathDataFromState,
|
118
|
+
getPathFromState
|
300
119
|
};
|
301
120
|
//# sourceMappingURL=getPathFromState.js.map
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../src/fork/Users/n8/one/packages/one/src/fork/getPathFromState.ts"],
|
4
|
-
"mappings": "
|
5
|
-
"names": ["
|
4
|
+
"mappings": "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",
|
5
|
+
"names": ["getPathWithConventionsCollapsed", "appendBaseUrl", "validatePathConfig", "getActiveRoute", "state", "route", "index", "routes", "length", "cachedNormalizedConfigs", "WeakMap", "getNormalizedConfigs", "options", "screens", "cached", "get", "normalizedConfigs", "createNormalizedConfigs", "set", "getPathFromState", "getPathDataFromState", "path", "pattern", "currentOptions", "name", "nestedRouteNames", "push", "params", "stringify", "currentParams", "Object", "fromEntries", "entries", "flatMap", "param", "key", "value", "Array", "isArray", "map", "String", "assign", "allParams", "focusedRoute", "focusedParams", "split", "filter", "p", "startsWith", "forEach", "getParamName", "undefined", "screen", "toString", "keys", "hasNext", "nextRoute", "nestedConfig", "current", "configs", "join", "initialRouteName", "encodeURIComponent", "query", "URLSearchParams", "Error", "replace", "joinPaths", "paths", "concat", "Boolean", "createConfigItem", "config", "parentPattern", "exact", "c", "result"]
|
6
6
|
}
|
@@ -0,0 +1,176 @@
|
|
1
|
+
import escape_ from "escape-string-regexp";
|
2
|
+
import { matchGroupName, stripGroupSegmentsFromPath } from "../router/matchers";
|
3
|
+
function getUrlWithReactNavigationConcessions(path, baseUrl = process.env.EXPO_BASE_URL) {
|
4
|
+
let parsed;
|
5
|
+
try {
|
6
|
+
parsed = new URL(path, "https://phony.example");
|
7
|
+
} catch {
|
8
|
+
return {
|
9
|
+
path,
|
10
|
+
cleanUrl: "",
|
11
|
+
nonstandardPathname: "",
|
12
|
+
url: new URL("https://phony.example")
|
13
|
+
};
|
14
|
+
}
|
15
|
+
const pathname = parsed.pathname, withoutBaseUrl = stripBaseUrl(pathname, baseUrl), pathWithoutGroups = stripGroupSegmentsFromPath(stripBaseUrl(path, baseUrl));
|
16
|
+
return {
|
17
|
+
// The slashes are at the end, not the beginning
|
18
|
+
path,
|
19
|
+
nonstandardPathname: withoutBaseUrl.replace(/^\/+/g, "").replace(/\/+$/g, "") + "/",
|
20
|
+
url: parsed,
|
21
|
+
pathWithoutGroups
|
22
|
+
};
|
23
|
+
}
|
24
|
+
function matchForEmptyPath(configs) {
|
25
|
+
const leafNodes = configs.filter((config) => !config.hasChildren).map((value) => ({
|
26
|
+
...value,
|
27
|
+
// Collapse all levels of group segments before testing.
|
28
|
+
// This enables `app/(one)/(two)/index.js` to be matched.
|
29
|
+
path: stripGroupSegmentsFromPath(value.path)
|
30
|
+
}));
|
31
|
+
return leafNodes.find(
|
32
|
+
(config) => (
|
33
|
+
// NOTE: Test leaf node index routes that either don't have a regex or match an empty string.
|
34
|
+
config.path === "" && (!config.regex || config.regex.test(""))
|
35
|
+
)
|
36
|
+
) ?? leafNodes.find(
|
37
|
+
(config) => (
|
38
|
+
// NOTE: Test leaf node dynamic routes that match an empty string.
|
39
|
+
config.path.startsWith(":") && config.regex.test("")
|
40
|
+
)
|
41
|
+
) ?? // NOTE: Test leaf node deep dynamic routes that match a slash.
|
42
|
+
// This should be done last to enable dynamic routes having a higher priority.
|
43
|
+
leafNodes.find((config) => config.path.startsWith("*") && config.regex.test("/"));
|
44
|
+
}
|
45
|
+
function appendIsInitial(initialRoutes) {
|
46
|
+
const resolvedInitialPatterns = initialRoutes.map(
|
47
|
+
(route) => joinPaths(...route.parentScreens, route.initialRouteName)
|
48
|
+
);
|
49
|
+
return (config) => (config.isInitial = resolvedInitialPatterns.includes(config.routeNames.join("/")), config);
|
50
|
+
}
|
51
|
+
const joinPaths = (...paths) => [].concat(...paths.map((p) => p.split("/"))).filter(Boolean).join("/");
|
52
|
+
function getRouteConfigSorter(previousSegments = []) {
|
53
|
+
return function(a, b) {
|
54
|
+
if (a.pattern === b.pattern)
|
55
|
+
return b.routeNames.join(">").localeCompare(a.routeNames.join(">"));
|
56
|
+
if (a.pattern.startsWith(b.pattern) && !b.isIndex)
|
57
|
+
return -1;
|
58
|
+
if (b.pattern.startsWith(a.pattern) && !a.isIndex)
|
59
|
+
return 1;
|
60
|
+
if (a.type === "static" && b.type !== "static")
|
61
|
+
return -1;
|
62
|
+
if (a.type !== "static" && b.type === "static")
|
63
|
+
return 1;
|
64
|
+
const similarToPreviousA = previousSegments.filter((value, index) => value === a.expandedRouteNames[index] && value.startsWith("(") && value.endsWith(")")), similarToPreviousB = previousSegments.filter((value, index) => value === b.expandedRouteNames[index] && value.startsWith("(") && value.endsWith(")"));
|
65
|
+
if ((similarToPreviousA.length > 0 || similarToPreviousB.length > 0) && similarToPreviousA.length !== similarToPreviousB.length)
|
66
|
+
return similarToPreviousB.length - similarToPreviousA.length;
|
67
|
+
for (let i = 0; i < Math.max(a.parts.length, b.parts.length); i++) {
|
68
|
+
if (a.parts[i] == null)
|
69
|
+
return 1;
|
70
|
+
if (b.parts[i] == null)
|
71
|
+
return -1;
|
72
|
+
const aWildCard = a.parts[i].startsWith("*"), bWildCard = b.parts[i].startsWith("*");
|
73
|
+
if (aWildCard && bWildCard) {
|
74
|
+
const aNotFound = a.parts[i].match(/^[*]not-found$/), bNotFound = b.parts[i].match(/^[*]not-found$/);
|
75
|
+
if (aNotFound && bNotFound)
|
76
|
+
continue;
|
77
|
+
if (aNotFound)
|
78
|
+
return 1;
|
79
|
+
if (bNotFound)
|
80
|
+
return -1;
|
81
|
+
continue;
|
82
|
+
}
|
83
|
+
if (aWildCard)
|
84
|
+
return 1;
|
85
|
+
if (bWildCard)
|
86
|
+
return -1;
|
87
|
+
const aSlug = a.parts[i].startsWith(":"), bSlug = b.parts[i].startsWith(":");
|
88
|
+
if (aSlug && bSlug) {
|
89
|
+
const aNotFound = a.parts[i].match(/^[*]not-found$/), bNotFound = b.parts[i].match(/^[*]not-found$/);
|
90
|
+
if (aNotFound && bNotFound)
|
91
|
+
continue;
|
92
|
+
if (aNotFound)
|
93
|
+
return 1;
|
94
|
+
if (bNotFound)
|
95
|
+
return -1;
|
96
|
+
continue;
|
97
|
+
}
|
98
|
+
if (aSlug)
|
99
|
+
return 1;
|
100
|
+
if (bSlug)
|
101
|
+
return -1;
|
102
|
+
}
|
103
|
+
return a.isInitial && !b.isInitial ? -1 : !a.isInitial && b.isInitial ? 1 : b.parts.length - a.parts.length;
|
104
|
+
};
|
105
|
+
}
|
106
|
+
function formatRegexPattern(it) {
|
107
|
+
return it = it.replace(" ", "%20"), it.startsWith(":") ? `(([^/]+\\/)${it.endsWith("?") ? "?" : ""})` : it.startsWith("*") ? `((.*\\/)${it.endsWith("?") ? "?" : ""})` : matchGroupName(it) != null ? `(?:${escape(it)}\\/)?` : escape_(it) + "\\/";
|
108
|
+
}
|
109
|
+
function decodeURIComponentSafe(str) {
|
110
|
+
try {
|
111
|
+
return decodeURIComponent(str);
|
112
|
+
} catch {
|
113
|
+
return str;
|
114
|
+
}
|
115
|
+
}
|
116
|
+
function getParamValue(p, value) {
|
117
|
+
if (p.startsWith("*")) {
|
118
|
+
const values = value.split("/").filter((v) => v !== "");
|
119
|
+
return values.length === 0 && p.endsWith("?") ? void 0 : values;
|
120
|
+
}
|
121
|
+
return value;
|
122
|
+
}
|
123
|
+
function populateParams(routes, params) {
|
124
|
+
if (!(!routes || !params || Object.keys(params).length === 0)) {
|
125
|
+
for (const route of routes)
|
126
|
+
Object.assign(route, { params });
|
127
|
+
return routes;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
function createConfigItemAdditionalProperties(screen, pattern, routeNames, config = {}) {
|
131
|
+
const parts = [];
|
132
|
+
let isDynamic = !1;
|
133
|
+
const isIndex = screen === "index" || screen.endsWith("/index");
|
134
|
+
for (const part of pattern.split("/"))
|
135
|
+
part && (isDynamic ||= part.startsWith(":") || part.startsWith("*") || part.includes("*not-found"), matchGroupName(part) || parts.push(part));
|
136
|
+
const hasChildren = config.screens ? !!Object.keys(config.screens)?.length : !1, type = hasChildren ? "layout" : isDynamic ? "dynamic" : "static";
|
137
|
+
return isIndex && parts.push("index"), {
|
138
|
+
type,
|
139
|
+
isIndex,
|
140
|
+
hasChildren,
|
141
|
+
parts,
|
142
|
+
userReadableName: [...routeNames.slice(0, -1), config.path || screen].join("/"),
|
143
|
+
expandedRouteNames: routeNames.flatMap((name) => name.split("/"))
|
144
|
+
};
|
145
|
+
}
|
146
|
+
function parseQueryParamsExtended(path, route, parseConfig, hash) {
|
147
|
+
const searchParams = new URL(path, "https://phony.example").searchParams, params = /* @__PURE__ */ Object.create(null);
|
148
|
+
hash && (params["#"] = hash.slice(1));
|
149
|
+
for (const name of searchParams.keys())
|
150
|
+
if (route.params?.[name])
|
151
|
+
process.env.NODE_ENV !== "production" && console.warn(
|
152
|
+
`Route '/${route.name}' with param '${name}' was specified both in the path and as a param, removing from path`
|
153
|
+
);
|
154
|
+
else {
|
155
|
+
const values = parseConfig?.hasOwnProperty(name) ? searchParams.getAll(name).map((value) => parseConfig[name](value)) : searchParams.getAll(name);
|
156
|
+
params[name] = values.length === 1 ? values[0] : values;
|
157
|
+
}
|
158
|
+
return Object.keys(params).length ? params : void 0;
|
159
|
+
}
|
160
|
+
function stripBaseUrl(path, baseUrl = process.env.EXPO_BASE_URL) {
|
161
|
+
return process.env.NODE_ENV !== "development" && baseUrl ? path.replace(/^\/+/g, "/").replace(new RegExp(`^\\/?${escape(baseUrl)}`, "g"), "") : path;
|
162
|
+
}
|
163
|
+
export {
|
164
|
+
appendIsInitial,
|
165
|
+
createConfigItemAdditionalProperties,
|
166
|
+
decodeURIComponentSafe,
|
167
|
+
formatRegexPattern,
|
168
|
+
getParamValue,
|
169
|
+
getRouteConfigSorter,
|
170
|
+
getUrlWithReactNavigationConcessions,
|
171
|
+
matchForEmptyPath,
|
172
|
+
parseQueryParamsExtended,
|
173
|
+
populateParams,
|
174
|
+
stripBaseUrl
|
175
|
+
};
|
176
|
+
//# sourceMappingURL=getStateFromPath-mods.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/fork/getStateFromPath-mods.ts"],
|
4
|
+
"mappings": "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",
|
5
|
+
"names": []
|
6
|
+
}
|