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