@react-navigation/core 7.8.4 → 7.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/package.json +4 -3
  2. package/lib/commonjs/BaseNavigationContainer.js +0 -368
  3. package/lib/commonjs/BaseNavigationContainer.js.map +0 -1
  4. package/lib/commonjs/CurrentRenderContext.js +0 -15
  5. package/lib/commonjs/CurrentRenderContext.js.map +0 -1
  6. package/lib/commonjs/DeprecatedNavigationInChildContext.js +0 -14
  7. package/lib/commonjs/DeprecatedNavigationInChildContext.js.map +0 -1
  8. package/lib/commonjs/EnsureSingleNavigator.js +0 -43
  9. package/lib/commonjs/EnsureSingleNavigator.js.map +0 -1
  10. package/lib/commonjs/Group.js +0 -14
  11. package/lib/commonjs/Group.js.map +0 -1
  12. package/lib/commonjs/NavigationBuilderContext.js +0 -23
  13. package/lib/commonjs/NavigationBuilderContext.js.map +0 -1
  14. package/lib/commonjs/NavigationContainerRefContext.js +0 -14
  15. package/lib/commonjs/NavigationContainerRefContext.js.map +0 -1
  16. package/lib/commonjs/NavigationContext.js +0 -14
  17. package/lib/commonjs/NavigationContext.js.map +0 -1
  18. package/lib/commonjs/NavigationFocusedRouteStateContext.js +0 -14
  19. package/lib/commonjs/NavigationFocusedRouteStateContext.js.map +0 -1
  20. package/lib/commonjs/NavigationHelpersContext.js +0 -15
  21. package/lib/commonjs/NavigationHelpersContext.js.map +0 -1
  22. package/lib/commonjs/NavigationIndependentTree.js +0 -35
  23. package/lib/commonjs/NavigationIndependentTree.js.map +0 -1
  24. package/lib/commonjs/NavigationIndependentTreeContext.js +0 -14
  25. package/lib/commonjs/NavigationIndependentTreeContext.js.map +0 -1
  26. package/lib/commonjs/NavigationRouteContext.js +0 -14
  27. package/lib/commonjs/NavigationRouteContext.js.map +0 -1
  28. package/lib/commonjs/NavigationStateContext.js +0 -29
  29. package/lib/commonjs/NavigationStateContext.js.map +0 -1
  30. package/lib/commonjs/PreventRemoveContext.js +0 -16
  31. package/lib/commonjs/PreventRemoveContext.js.map +0 -1
  32. package/lib/commonjs/PreventRemoveProvider.js +0 -91
  33. package/lib/commonjs/PreventRemoveProvider.js.map +0 -1
  34. package/lib/commonjs/SceneView.js +0 -151
  35. package/lib/commonjs/SceneView.js.map +0 -1
  36. package/lib/commonjs/Screen.js +0 -14
  37. package/lib/commonjs/Screen.js.map +0 -1
  38. package/lib/commonjs/StaticContainer.js +0 -31
  39. package/lib/commonjs/StaticContainer.js.map +0 -1
  40. package/lib/commonjs/StaticNavigation.js +0 -258
  41. package/lib/commonjs/StaticNavigation.js.map +0 -1
  42. package/lib/commonjs/UnhandledActionContext.js +0 -11
  43. package/lib/commonjs/UnhandledActionContext.js.map +0 -1
  44. package/lib/commonjs/arrayStartsWith.js +0 -16
  45. package/lib/commonjs/arrayStartsWith.js.map +0 -1
  46. package/lib/commonjs/checkDuplicateRouteNames.js +0 -25
  47. package/lib/commonjs/checkDuplicateRouteNames.js.map +0 -1
  48. package/lib/commonjs/checkSerializable.js +0 -50
  49. package/lib/commonjs/checkSerializable.js.map +0 -1
  50. package/lib/commonjs/createNavigationContainerRef.js +0 -69
  51. package/lib/commonjs/createNavigationContainerRef.js.map +0 -1
  52. package/lib/commonjs/createNavigatorFactory.js +0 -34
  53. package/lib/commonjs/createNavigatorFactory.js.map +0 -1
  54. package/lib/commonjs/deepFreeze.js +0 -40
  55. package/lib/commonjs/deepFreeze.js.map +0 -1
  56. package/lib/commonjs/findFocusedRoute.js +0 -15
  57. package/lib/commonjs/findFocusedRoute.js.map +0 -1
  58. package/lib/commonjs/getActionFromState.js +0 -111
  59. package/lib/commonjs/getActionFromState.js.map +0 -1
  60. package/lib/commonjs/getFocusedRouteNameFromRoute.js +0 -22
  61. package/lib/commonjs/getFocusedRouteNameFromRoute.js.map +0 -1
  62. package/lib/commonjs/getPathFromState.js +0 -241
  63. package/lib/commonjs/getPathFromState.js.map +0 -1
  64. package/lib/commonjs/getPatternParts.js +0 -105
  65. package/lib/commonjs/getPatternParts.js.map +0 -1
  66. package/lib/commonjs/getStateFromPath.js +0 -521
  67. package/lib/commonjs/getStateFromPath.js.map +0 -1
  68. package/lib/commonjs/index.js +0 -295
  69. package/lib/commonjs/index.js.map +0 -1
  70. package/lib/commonjs/isArrayEqual.js +0 -20
  71. package/lib/commonjs/isArrayEqual.js.map +0 -1
  72. package/lib/commonjs/isRecordEqual.js +0 -21
  73. package/lib/commonjs/isRecordEqual.js.map +0 -1
  74. package/lib/commonjs/package.json +0 -1
  75. package/lib/commonjs/theming/ThemeContext.js +0 -12
  76. package/lib/commonjs/theming/ThemeContext.js.map +0 -1
  77. package/lib/commonjs/theming/ThemeProvider.js +0 -21
  78. package/lib/commonjs/theming/ThemeProvider.js.map +0 -1
  79. package/lib/commonjs/theming/useTheme.js +0 -18
  80. package/lib/commonjs/theming/useTheme.js.map +0 -1
  81. package/lib/commonjs/types.js +0 -9
  82. package/lib/commonjs/types.js.map +0 -1
  83. package/lib/commonjs/useChildListeners.js +0 -36
  84. package/lib/commonjs/useChildListeners.js.map +0 -1
  85. package/lib/commonjs/useComponent.js +0 -40
  86. package/lib/commonjs/useComponent.js.map +0 -1
  87. package/lib/commonjs/useCurrentRender.js +0 -25
  88. package/lib/commonjs/useCurrentRender.js.map +0 -1
  89. package/lib/commonjs/useDescriptors.js +0 -192
  90. package/lib/commonjs/useDescriptors.js.map +0 -1
  91. package/lib/commonjs/useEventEmitter.js +0 -105
  92. package/lib/commonjs/useEventEmitter.js.map +0 -1
  93. package/lib/commonjs/useFocusEffect.js +0 -80
  94. package/lib/commonjs/useFocusEffect.js.map +0 -1
  95. package/lib/commonjs/useFocusEvents.js +0 -70
  96. package/lib/commonjs/useFocusEvents.js.map +0 -1
  97. package/lib/commonjs/useFocusedListenersChildrenAdapter.js +0 -48
  98. package/lib/commonjs/useFocusedListenersChildrenAdapter.js.map +0 -1
  99. package/lib/commonjs/useIsFocused.js +0 -28
  100. package/lib/commonjs/useIsFocused.js.map +0 -1
  101. package/lib/commonjs/useIsomorphicLayoutEffect.js +0 -12
  102. package/lib/commonjs/useIsomorphicLayoutEffect.js.map +0 -1
  103. package/lib/commonjs/useIsomorphicLayoutEffect.native.js +0 -9
  104. package/lib/commonjs/useIsomorphicLayoutEffect.native.js.map +0 -1
  105. package/lib/commonjs/useKeyedChildListeners.js +0 -33
  106. package/lib/commonjs/useKeyedChildListeners.js.map +0 -1
  107. package/lib/commonjs/useLazyValue.js +0 -17
  108. package/lib/commonjs/useLazyValue.js.map +0 -1
  109. package/lib/commonjs/useNavigation.js +0 -27
  110. package/lib/commonjs/useNavigation.js.map +0 -1
  111. package/lib/commonjs/useNavigationBuilder.js +0 -495
  112. package/lib/commonjs/useNavigationBuilder.js.map +0 -1
  113. package/lib/commonjs/useNavigationCache.js +0 -162
  114. package/lib/commonjs/useNavigationCache.js.map +0 -1
  115. package/lib/commonjs/useNavigationContainerRef.js +0 -18
  116. package/lib/commonjs/useNavigationContainerRef.js.map +0 -1
  117. package/lib/commonjs/useNavigationHelpers.js +0 -88
  118. package/lib/commonjs/useNavigationHelpers.js.map +0 -1
  119. package/lib/commonjs/useNavigationIndependentTree.js +0 -14
  120. package/lib/commonjs/useNavigationIndependentTree.js.map +0 -1
  121. package/lib/commonjs/useNavigationState.js +0 -26
  122. package/lib/commonjs/useNavigationState.js.map +0 -1
  123. package/lib/commonjs/useOnAction.js +0 -106
  124. package/lib/commonjs/useOnAction.js.map +0 -1
  125. package/lib/commonjs/useOnGetState.js +0 -48
  126. package/lib/commonjs/useOnGetState.js.map +0 -1
  127. package/lib/commonjs/useOnPreventRemove.js +0 -72
  128. package/lib/commonjs/useOnPreventRemove.js.map +0 -1
  129. package/lib/commonjs/useOnRouteFocus.js +0 -36
  130. package/lib/commonjs/useOnRouteFocus.js.map +0 -1
  131. package/lib/commonjs/useOptionsGetters.js +0 -78
  132. package/lib/commonjs/useOptionsGetters.js.map +0 -1
  133. package/lib/commonjs/usePreventRemove.js +0 -48
  134. package/lib/commonjs/usePreventRemove.js.map +0 -1
  135. package/lib/commonjs/usePreventRemoveContext.js +0 -18
  136. package/lib/commonjs/usePreventRemoveContext.js.map +0 -1
  137. package/lib/commonjs/useRegisterNavigator.js +0 -32
  138. package/lib/commonjs/useRegisterNavigator.js.map +0 -1
  139. package/lib/commonjs/useRoute.js +0 -23
  140. package/lib/commonjs/useRoute.js.map +0 -1
  141. package/lib/commonjs/useRouteCache.js +0 -69
  142. package/lib/commonjs/useRouteCache.js.map +0 -1
  143. package/lib/commonjs/useScheduleUpdate.js +0 -30
  144. package/lib/commonjs/useScheduleUpdate.js.map +0 -1
  145. package/lib/commonjs/useStateForPath.js +0 -21
  146. package/lib/commonjs/useStateForPath.js.map +0 -1
  147. package/lib/commonjs/useSyncState.js +0 -87
  148. package/lib/commonjs/useSyncState.js.map +0 -1
  149. package/lib/commonjs/validatePathConfig.js +0 -56
  150. package/lib/commonjs/validatePathConfig.js.map +0 -1
@@ -1,111 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getActionFromState = getActionFromState;
7
- function getActionFromState(state, options) {
8
- // Create a normalized configs object which will be easier to use
9
- const normalizedConfig = options ? createNormalizedConfigItem(options) : {};
10
- const routes = state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;
11
- if (routes.length === 0) {
12
- return undefined;
13
- }
14
- if (!(routes.length === 1 && routes[0].key === undefined || routes.length === 2 && routes[0].key === undefined && routes[0].name === normalizedConfig?.initialRouteName && routes[1].key === undefined)) {
15
- return {
16
- type: 'RESET',
17
- payload: state
18
- };
19
- }
20
- const route = state.routes[state.index ?? state.routes.length - 1];
21
- let current = route?.state;
22
- let config = normalizedConfig?.screens?.[route?.name];
23
- let params = {
24
- ...route.params
25
- };
26
- const payload = route ? {
27
- name: route.name,
28
- path: route.path,
29
- params
30
- } : undefined;
31
-
32
- // If the screen contains a navigator, pop other screens to navigate to it
33
- // This avoid pushing multiple instances of navigators onto a stack
34
- //
35
- // For example:
36
- // - RootStack
37
- // - BottomTabs
38
- // - SomeScreen
39
- //
40
- // In this case, if deep linking to `BottomTabs`, we should pop `SomeScreen`
41
- // Otherwise, we'll end up with 2 instances of `BottomTabs` in the stack
42
- //
43
- // There are 2 ways we can detect if a screen contains a navigator:
44
- // - The route contains nested state in `route.state`
45
- // - Nested screens are defined in the config
46
- if (payload && config?.screens && Object.keys(config.screens).length) {
47
- payload.pop = true;
48
- }
49
- while (current) {
50
- if (current.routes.length === 0) {
51
- return undefined;
52
- }
53
- const routes = current.index != null ? current.routes.slice(0, current.index + 1) : current.routes;
54
- const route = routes[routes.length - 1];
55
-
56
- // Explicitly set to override existing value when merging params
57
- Object.assign(params, {
58
- initial: undefined,
59
- screen: undefined,
60
- params: undefined,
61
- state: undefined
62
- });
63
- if (routes.length === 1 && routes[0].key === undefined) {
64
- params.initial = true;
65
- params.screen = route.name;
66
- } else if (routes.length === 2 && routes[0].key === undefined && routes[0].name === config?.initialRouteName && routes[1].key === undefined) {
67
- params.initial = false;
68
- params.screen = route.name;
69
- } else {
70
- params.state = current;
71
- break;
72
- }
73
- if (route.state) {
74
- params.params = {
75
- ...route.params
76
- };
77
- params.pop = true;
78
- params = params.params;
79
- } else {
80
- params.path = route.path;
81
- params.params = route.params;
82
- }
83
- current = route.state;
84
- config = config?.screens?.[route.name];
85
- if (config?.screens && Object.keys(config.screens).length) {
86
- params.pop = true;
87
- }
88
- }
89
- if (payload?.params.screen || payload?.params.state) {
90
- payload.pop = true;
91
- }
92
- if (!payload) {
93
- return;
94
- }
95
-
96
- // Try to construct payload for a `NAVIGATE` action from the state
97
- // This lets us preserve the navigation state and not lose it
98
- return {
99
- type: 'NAVIGATE',
100
- payload
101
- };
102
- }
103
- const createNormalizedConfigItem = config => typeof config === 'object' && config != null ? {
104
- initialRouteName: config.initialRouteName,
105
- screens: config.screens != null ? createNormalizedConfigs(config.screens) : undefined
106
- } : {};
107
- const createNormalizedConfigs = options => Object.entries(options).reduce((acc, [k, v]) => {
108
- acc[k] = createNormalizedConfigItem(v);
109
- return acc;
110
- }, {});
111
- //# sourceMappingURL=getActionFromState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getActionFromState","state","options","normalizedConfig","createNormalizedConfigItem","routes","index","slice","length","undefined","key","name","initialRouteName","type","payload","route","current","config","screens","params","path","Object","keys","pop","assign","initial","screen","createNormalizedConfigs","entries","reduce","acc","k","v"],"sourceRoot":"../../src","sources":["getActionFromState.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getFocusedRouteNameFromRoute = getFocusedRouteNameFromRoute;
7
- var _useRouteCache = require("./useRouteCache.js");
8
- function getFocusedRouteNameFromRoute(route) {
9
- // @ts-expect-error: this isn't in type definitions coz we want this private
10
- const state = route[_useRouteCache.CHILD_STATE] ?? route.state;
11
- const params = route.params;
12
- const routeName = state ?
13
- // Get the currently active route name in the nested navigator
14
- state.routes[
15
- // If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack
16
- // The type property will only exist for rehydrated state and not for state from deep link
17
- state.index ?? (typeof state.type === 'string' && state.type !== 'stack' ? 0 : state.routes.length - 1)].name :
18
- // If state doesn't exist, we need to default to `screen` param if available
19
- typeof params?.screen === 'string' ? params.screen : undefined;
20
- return routeName;
21
- }
22
- //# sourceMappingURL=getFocusedRouteNameFromRoute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_useRouteCache","require","getFocusedRouteNameFromRoute","route","state","CHILD_STATE","params","routeName","routes","index","type","length","name","screen","undefined"],"sourceRoot":"../../src","sources":["getFocusedRouteNameFromRoute.tsx"],"mappings":";;;;;;AAEA,IAAAA,cAAA,GAAAC,OAAA;AAEO,SAASC,4BAA4BA,CAC1CC,KAA6B,EACT;EACpB;EACA,MAAMC,KAAK,GAAGD,KAAK,CAACE,0BAAW,CAAC,IAAIF,KAAK,CAACC,KAAK;EAC/C,MAAME,MAAM,GAAGH,KAAK,CAACG,MAA0C;EAE/D,MAAMC,SAAS,GAAGH,KAAK;EACnB;EACAA,KAAK,CAACI,MAAM;EACV;EACA;EACAJ,KAAK,CAACK,KAAK,KACR,OAAOL,KAAK,CAACM,IAAI,KAAK,QAAQ,IAAIN,KAAK,CAACM,IAAI,KAAK,OAAO,GACrD,CAAC,GACDN,KAAK,CAACI,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC,CAC/B,CAACC,IAAI;EACN;EACA,OAAON,MAAM,EAAEO,MAAM,KAAK,QAAQ,GAChCP,MAAM,CAACO,MAAM,GACbC,SAAS;EAEf,OAAOP,SAAS;AAClB","ignoreList":[]}
@@ -1,241 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getPathFromState = getPathFromState;
7
- var queryString = _interopRequireWildcard(require("query-string"));
8
- var _getPatternParts = require("./getPatternParts.js");
9
- var _validatePathConfig = require("./validatePathConfig.js");
10
- 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); }
11
- 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; }
12
- const getActiveRoute = state => {
13
- const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];
14
- if (route.state) {
15
- return getActiveRoute(route.state);
16
- }
17
- return route;
18
- };
19
- const cachedNormalizedConfigs = new WeakMap();
20
- const getNormalizedConfigs = options => {
21
- if (!options?.screens) return {};
22
- const cached = cachedNormalizedConfigs.get(options?.screens);
23
- if (cached) return cached;
24
- const normalizedConfigs = createNormalizedConfigs(options.screens);
25
- cachedNormalizedConfigs.set(options.screens, normalizedConfigs);
26
- return normalizedConfigs;
27
- };
28
-
29
- /**
30
- * Utility to serialize a navigation state object to a path string.
31
- *
32
- * @example
33
- * ```js
34
- * getPathFromState(
35
- * {
36
- * routes: [
37
- * {
38
- * name: 'Chat',
39
- * params: { author: 'Jane', id: 42 },
40
- * },
41
- * ],
42
- * },
43
- * {
44
- * screens: {
45
- * Chat: {
46
- * path: 'chat/:author/:id',
47
- * stringify: { author: author => author.toLowerCase() }
48
- * }
49
- * }
50
- * }
51
- * )
52
- * ```
53
- *
54
- * @param state Navigation state to serialize.
55
- * @param options Extra options to fine-tune how to serialize the path.
56
- * @returns Path representing the state, e.g. /foo/bar?count=42.
57
- */
58
- function getPathFromState(state, options) {
59
- if (state == null) {
60
- throw Error(`Got '${String(state)}' for the navigation state. You must pass a valid state object.`);
61
- }
62
- if (options) {
63
- (0, _validatePathConfig.validatePathConfig)(options);
64
- }
65
- const configs = getNormalizedConfigs(options);
66
- let path = '/';
67
- let current = state;
68
- const allParams = {};
69
- while (current) {
70
- let index = typeof current.index === 'number' ? current.index : 0;
71
- let route = current.routes[index];
72
- let parts;
73
- let focusedParams;
74
- let currentOptions = configs;
75
- const focusedRoute = getActiveRoute(state);
76
-
77
- // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined
78
- const nestedRouteNames = [];
79
- let hasNext = true;
80
- while (route.name in currentOptions && hasNext) {
81
- parts = currentOptions[route.name].parts;
82
- nestedRouteNames.push(route.name);
83
- if (route.params) {
84
- const options = currentOptions[route.name];
85
- const currentParams = Object.fromEntries(Object.entries(route.params).map(([key, value]) => {
86
- if (value === undefined) {
87
- if (options) {
88
- const optional = options.parts?.find(part => part.param === key)?.optional;
89
- if (optional) {
90
- return null;
91
- }
92
- } else {
93
- return null;
94
- }
95
- }
96
- const stringify = options?.stringify?.[key] ?? String;
97
- return [key, stringify(value)];
98
- }).filter(entry => entry != null));
99
- if (parts?.length) {
100
- Object.assign(allParams, currentParams);
101
- }
102
- if (focusedRoute === route) {
103
- // If this is the focused route, keep the params for later use
104
- // We save it here since it's been stringified already
105
- focusedParams = {
106
- ...currentParams
107
- };
108
- parts
109
- // eslint-disable-next-line no-loop-func
110
- ?.forEach(({
111
- param
112
- }) => {
113
- if (param) {
114
- // Remove the params present in the pattern since we'll only use the rest for query string
115
- if (focusedParams) {
116
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
117
- delete focusedParams[param];
118
- }
119
- }
120
- });
121
- }
122
- }
123
-
124
- // If there is no `screens` property or no nested state, we return pattern
125
- if (!currentOptions[route.name].screens || route.state === undefined) {
126
- hasNext = false;
127
- } else {
128
- index = typeof route.state.index === 'number' ? route.state.index : route.state.routes.length - 1;
129
- const nextRoute = route.state.routes[index];
130
- const nestedConfig = currentOptions[route.name].screens;
131
-
132
- // if there is config for next route name, we go deeper
133
- if (nestedConfig && nextRoute.name in nestedConfig) {
134
- route = nextRoute;
135
- currentOptions = nestedConfig;
136
- } else {
137
- // If not, there is no sense in going deeper in config
138
- hasNext = false;
139
- }
140
- }
141
- }
142
- if (currentOptions[route.name] !== undefined) {
143
- path += parts?.map(({
144
- segment,
145
- param,
146
- optional
147
- }) => {
148
- // We don't know what to show for wildcard patterns
149
- // Showing the route name seems ok, though whatever we show here will be incorrect
150
- // Since the page doesn't actually exist
151
- if (segment === '*') {
152
- return route.name;
153
- }
154
-
155
- // If the path has a pattern for a param, put the param in the path
156
- if (param) {
157
- const value = allParams[param];
158
- if (value === undefined && optional) {
159
- // Optional params without value assigned in route.params should be ignored
160
- return '';
161
- }
162
-
163
- // Valid characters according to
164
- // https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 (see pchar definition)
165
- return String(value).replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g, char => encodeURIComponent(char));
166
- }
167
- return encodeURIComponent(segment);
168
- }).join('/');
169
- } else {
170
- path += encodeURIComponent(route.name);
171
- }
172
- if (!focusedParams && focusedRoute.params) {
173
- focusedParams = Object.fromEntries(Object.entries(focusedRoute.params).map(([key, value]) => [key, String(value)]));
174
- }
175
- if (route.state) {
176
- path += '/';
177
- } else if (focusedParams) {
178
- for (const param in focusedParams) {
179
- if (focusedParams[param] === 'undefined') {
180
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
181
- delete focusedParams[param];
182
- }
183
- }
184
- const query = queryString.stringify(focusedParams, {
185
- sort: false
186
- });
187
- if (query) {
188
- path += `?${query}`;
189
- }
190
- }
191
- current = route.state;
192
- }
193
-
194
- // Include the root path if specified
195
- if (options?.path) {
196
- path = `${options.path}/${path}`;
197
- }
198
-
199
- // Remove multiple as well as trailing slashes
200
- path = path.replace(/\/+/g, '/');
201
- path = path.length > 1 ? path.replace(/\/$/, '') : path;
202
-
203
- // If path doesn't start with a slash, add it
204
- // This makes sure that history.pushState will update the path correctly instead of appending
205
- if (!path.startsWith('/')) {
206
- path = `/${path}`;
207
- }
208
- return path;
209
- }
210
- const createConfigItem = (config, parentParts) => {
211
- if (typeof config === 'string') {
212
- // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern
213
- const parts = (0, _getPatternParts.getPatternParts)(config);
214
- if (parentParts) {
215
- return {
216
- parts: [...parentParts, ...parts]
217
- };
218
- }
219
- return {
220
- parts
221
- };
222
- }
223
- if (config.exact && config.path === undefined) {
224
- 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: ''`.");
225
- }
226
-
227
- // If an object is specified as the value (e.g. Foo: { ... }),
228
- // It can have `path` property and `screens` prop which has nested configs
229
- const parts = config.exact !== true ? [...(parentParts || []), ...(config.path ? (0, _getPatternParts.getPatternParts)(config.path) : [])] : config.path ? (0, _getPatternParts.getPatternParts)(config.path) : undefined;
230
- const screens = config.screens ? createNormalizedConfigs(config.screens, parts) : undefined;
231
- return {
232
- parts,
233
- stringify: config.stringify,
234
- screens
235
- };
236
- };
237
- const createNormalizedConfigs = (options, parts) => Object.fromEntries(Object.entries(options).map(([name, c]) => {
238
- const result = createConfigItem(c, parts);
239
- return [name, result];
240
- }));
241
- //# sourceMappingURL=getPathFromState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["queryString","_interopRequireWildcard","require","_getPatternParts","_validatePathConfig","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getActiveRoute","state","route","index","routes","length","cachedNormalizedConfigs","getNormalizedConfigs","options","screens","cached","normalizedConfigs","createNormalizedConfigs","getPathFromState","Error","String","validatePathConfig","configs","path","current","allParams","parts","focusedParams","currentOptions","focusedRoute","nestedRouteNames","hasNext","name","push","params","currentParams","fromEntries","entries","map","key","value","undefined","optional","find","part","param","stringify","filter","entry","assign","forEach","nextRoute","nestedConfig","segment","replace","char","encodeURIComponent","join","query","sort","startsWith","createConfigItem","config","parentParts","getPatternParts","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,105 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getPatternParts = getPatternParts;
7
- /**
8
- * Parse a path into an array of parts with information about each segment.
9
- */
10
- function getPatternParts(path) {
11
- const parts = [];
12
- let current = {
13
- segment: ''
14
- };
15
- let isRegex = false;
16
- let isParam = false;
17
- let regexInnerParens = 0;
18
-
19
- // One extra iteration to add the last character
20
- for (let i = 0; i <= path.length; i++) {
21
- const char = path[i];
22
- if (char != null) {
23
- current.segment += char;
24
- }
25
- if (char === ':') {
26
- // The segment must start with a colon if it's a param
27
- if (current.segment === ':') {
28
- isParam = true;
29
- } else if (!isRegex) {
30
- throw new Error(`Encountered ':' in the middle of a segment in path: ${path}`);
31
- }
32
- } else if (char === '(') {
33
- if (isParam) {
34
- if (isRegex) {
35
- // The '(' is part of the regex if we're already inside one
36
- regexInnerParens++;
37
- } else {
38
- isRegex = true;
39
- }
40
- } else {
41
- throw new Error(`Encountered '(' without preceding ':' in path: ${path}`);
42
- }
43
- } else if (char === ')') {
44
- if (isParam && isRegex) {
45
- if (regexInnerParens) {
46
- // The ')' is part of the regex if we're already inside one
47
- regexInnerParens--;
48
- current.regex += char;
49
- } else {
50
- isRegex = false;
51
- isParam = false;
52
- }
53
- } else {
54
- throw new Error(`Encountered ')' without preceding '(' in path: ${path}`);
55
- }
56
- } else if (char === '?') {
57
- if (current.param) {
58
- isParam = false;
59
- current.optional = true;
60
- } else {
61
- throw new Error(`Encountered '?' without preceding ':' in path: ${path}`);
62
- }
63
- } else if (char == null || char === '/' && !isRegex) {
64
- isParam = false;
65
-
66
- // Remove trailing slash from segment
67
- current.segment = current.segment.replace(/\/$/, '');
68
- if (current.segment === '') {
69
- continue;
70
- }
71
- if (current.param) {
72
- current.param = current.param.replace(/^:/, '');
73
- }
74
- if (current.regex) {
75
- current.regex = current.regex.replace(/^\(/, '').replace(/\)$/, '');
76
- }
77
- parts.push(current);
78
- if (char == null) {
79
- break;
80
- }
81
- current = {
82
- segment: ''
83
- };
84
- }
85
- if (isRegex) {
86
- current.regex = current.regex || '';
87
- current.regex += char;
88
- }
89
- if (isParam && !isRegex) {
90
- current.param = current.param || '';
91
- current.param += char;
92
- }
93
- }
94
- if (isRegex) {
95
- throw new Error(`Could not find closing ')' in path: ${path}`);
96
- }
97
- const params = parts.map(part => part.param).filter(Boolean);
98
- for (const [index, param] of params.entries()) {
99
- if (params.indexOf(param) !== index) {
100
- throw new Error(`Duplicate param name '${param}' found in path: ${path}`);
101
- }
102
- }
103
- return parts;
104
- }
105
- //# sourceMappingURL=getPatternParts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":"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","ignoreList":[]}