mobx-route 0.0.35 → 0.0.37
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/core/route/route.d.ts +40 -0
- package/core/route/route.d.ts.map +1 -1
- package/core/route/route.js +38 -6
- package/core/route/route.types.d.ts +1 -0
- package/core/route/route.types.d.ts.map +1 -1
- package/core/route-group/route-group.d.ts +16 -2
- package/core/route-group/route-group.d.ts.map +1 -1
- package/core/route-group/route-group.js +19 -4
- package/package.json +2 -2
package/core/route/route.d.ts
CHANGED
|
@@ -13,24 +13,64 @@ export declare class Route<TPath extends string, TParentRoute extends Route<any,
|
|
|
13
13
|
private _tokenData;
|
|
14
14
|
private _matcher?;
|
|
15
15
|
private _compiler?;
|
|
16
|
+
/**
|
|
17
|
+
* Indicates if this route is an index route. Index routes activate when parent route path matches exactly.
|
|
18
|
+
*
|
|
19
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#isindex-boolean)
|
|
20
|
+
*/
|
|
16
21
|
isIndex: boolean;
|
|
17
22
|
children: AnyRoute[];
|
|
18
23
|
constructor(path: TPath, config?: RouteConfiguration<TParentRoute>);
|
|
19
24
|
protected get data(): RouteMatchesData<TPath> | null;
|
|
25
|
+
/**
|
|
26
|
+
* Matched path segment for current URL.
|
|
27
|
+
*
|
|
28
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#currentpath-parsedpathname-null)
|
|
29
|
+
*/
|
|
20
30
|
get currentPath(): string | null;
|
|
31
|
+
/**
|
|
32
|
+
* Current parsed path parameters.
|
|
33
|
+
*
|
|
34
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#params-parsedpathparams-null)
|
|
35
|
+
*/
|
|
21
36
|
get params(): ParsedPathParams<TPath> | null;
|
|
37
|
+
/**
|
|
38
|
+
* Defines the "open" state for this route.
|
|
39
|
+
*
|
|
40
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#isopened-boolean)
|
|
41
|
+
*/
|
|
22
42
|
get isOpened(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Allows to create child route based on this route with merging this route path and extending path.
|
|
45
|
+
*
|
|
46
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#extend-path-config-route)
|
|
47
|
+
*/
|
|
23
48
|
extend<TExtendPath extends string>(path: TExtendPath, config?: Omit<RouteConfiguration<any>, 'parent'>): Route<`${TPath}${TExtendPath}`, this>;
|
|
24
49
|
addChildren(...routes: AnyRoute[]): void;
|
|
25
50
|
removeChildren(...routes: AnyRoute[]): void;
|
|
26
51
|
get hasOpenedChildren(): boolean;
|
|
27
52
|
protected processParams(params?: ExtractPathParams<TPath> | null | undefined): ParamData | undefined;
|
|
28
53
|
createUrl(...args: AllPropertiesOptional<ExtractPathParams<TPath>> extends true ? [params?: Maybe<ExtractPathParams<TPath>>, query?: AnyObject] : [params: ExtractPathParams<TPath>, query?: AnyObject]): string;
|
|
54
|
+
/**
|
|
55
|
+
* Navigates to this route.
|
|
56
|
+
*
|
|
57
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#open-args)
|
|
58
|
+
*/
|
|
29
59
|
open(...args: AllPropertiesOptional<ExtractPathParams<TPath>> extends true ? [
|
|
30
60
|
params?: ExtractPathParams<TPath> | null | undefined,
|
|
31
61
|
navigateParams?: RouteNavigateParams
|
|
32
62
|
] : [params: ExtractPathParams<TPath>, navigateParams?: RouteNavigateParams]): void;
|
|
63
|
+
open(...args: AllPropertiesOptional<ExtractPathParams<TPath>> extends true ? [
|
|
64
|
+
params?: ExtractPathParams<TPath> | null | undefined,
|
|
65
|
+
replace?: RouteNavigateParams['replace'],
|
|
66
|
+
query?: RouteNavigateParams['query']
|
|
67
|
+
] : [
|
|
68
|
+
params: ExtractPathParams<TPath>,
|
|
69
|
+
replace?: RouteNavigateParams['replace'],
|
|
70
|
+
query?: RouteNavigateParams['query']
|
|
71
|
+
]): void;
|
|
33
72
|
open(url: string, navigateParams?: RouteNavigateParams): void;
|
|
73
|
+
open(url: string, replace?: RouteNavigateParams['replace'], query?: RouteNavigateParams['query']): void;
|
|
34
74
|
protected get tokenData(): TokenData;
|
|
35
75
|
}
|
|
36
76
|
//# sourceMappingURL=route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/core/route/route.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkB,SAAS,EAAS,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAI9E,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,KAAK,CAChB,KAAK,SAAS,MAAM,EACpB,YAAY,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/core/route/route.ts"],"names":[],"mappings":"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"}
|
package/core/route/route.js
CHANGED
|
@@ -13,6 +13,11 @@ export class Route {
|
|
|
13
13
|
_tokenData;
|
|
14
14
|
_matcher;
|
|
15
15
|
_compiler;
|
|
16
|
+
/**
|
|
17
|
+
* Indicates if this route is an index route. Index routes activate when parent route path matches exactly.
|
|
18
|
+
*
|
|
19
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#isindex-boolean)
|
|
20
|
+
*/
|
|
16
21
|
isIndex;
|
|
17
22
|
children = [];
|
|
18
23
|
constructor(path, config = {}) {
|
|
@@ -55,15 +60,35 @@ export class Route {
|
|
|
55
60
|
}
|
|
56
61
|
return parsed;
|
|
57
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Matched path segment for current URL.
|
|
65
|
+
*
|
|
66
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#currentpath-parsedpathname-null)
|
|
67
|
+
*/
|
|
58
68
|
get currentPath() {
|
|
59
69
|
return this.data?.path ?? null;
|
|
60
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Current parsed path parameters.
|
|
73
|
+
*
|
|
74
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#params-parsedpathparams-null)
|
|
75
|
+
*/
|
|
61
76
|
get params() {
|
|
62
77
|
return this.data?.params ?? null;
|
|
63
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Defines the "open" state for this route.
|
|
81
|
+
*
|
|
82
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#isopened-boolean)
|
|
83
|
+
*/
|
|
64
84
|
get isOpened() {
|
|
65
85
|
return this.data !== null;
|
|
66
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Allows to create child route based on this route with merging this route path and extending path.
|
|
89
|
+
*
|
|
90
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#extend-path-config-route)
|
|
91
|
+
*/
|
|
67
92
|
extend(path, config) {
|
|
68
93
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
69
94
|
const { index, ...configFromCurrentRoute } = this.config;
|
|
@@ -106,15 +131,22 @@ export class Route {
|
|
|
106
131
|
buildSearchString(queryParams || {}),
|
|
107
132
|
].join('');
|
|
108
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Navigates to this route.
|
|
136
|
+
*
|
|
137
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#open-args)
|
|
138
|
+
*/
|
|
109
139
|
open(...args) {
|
|
110
|
-
const
|
|
111
|
-
? args[
|
|
112
|
-
:
|
|
113
|
-
|
|
114
|
-
|
|
140
|
+
const { replace, state: rawState, query, } = typeof args[1] === 'boolean' || args.length > 2
|
|
141
|
+
? { replace: args[1], query: args[2] }
|
|
142
|
+
: (args[1] ?? {});
|
|
143
|
+
const url = typeof args[0] === 'string' ? args[0] : this.createUrl(args[0], query);
|
|
144
|
+
const state = rawState ?? null;
|
|
145
|
+
if (replace) {
|
|
146
|
+
this.history.replaceState(state, '', url);
|
|
115
147
|
}
|
|
116
148
|
else {
|
|
117
|
-
this.history.pushState(
|
|
149
|
+
this.history.pushState(state, '', url);
|
|
118
150
|
}
|
|
119
151
|
}
|
|
120
152
|
get tokenData() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.types.d.ts","sourceRoot":"","sources":["../../../src/core/route/route.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route.types.d.ts","sourceRoot":"","sources":["../../../src/core/route/route.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import { RouteNavigateParams } from '../route/index.js';
|
|
2
1
|
import { RoutesCollection } from './route-group.types.js';
|
|
3
2
|
export declare class RouteGroup<TRoutesCollection extends RoutesCollection> {
|
|
4
3
|
routes: TRoutesCollection;
|
|
5
4
|
constructor(routes: TRoutesCollection);
|
|
5
|
+
/**
|
|
6
|
+
* Returns true if at least one route in the group is open.
|
|
7
|
+
*
|
|
8
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#isopened-boolean)
|
|
9
|
+
*/
|
|
6
10
|
get isOpened(): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* First found index route.
|
|
13
|
+
*
|
|
14
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#indexroute-route-undefined)
|
|
15
|
+
*/
|
|
7
16
|
get indexRoute(): import("./route-group.types.js").AnyRouteEntity | undefined;
|
|
8
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Main navigation method for the group.
|
|
19
|
+
*
|
|
20
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#open-args-any-void)
|
|
21
|
+
*/
|
|
22
|
+
open(...args: any[]): void;
|
|
9
23
|
}
|
|
10
24
|
//# sourceMappingURL=route-group.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-group.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/route-group.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"route-group.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/route-group.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,qBAAa,UAAU,CAAC,iBAAiB,SAAS,gBAAgB;IAChE,MAAM,EAAE,iBAAiB,CAAC;gBAEd,MAAM,EAAE,iBAAiB;IASrC;;;;OAIG;IACH,IAAI,QAAQ,IAAI,OAAO,CAOtB;IAED;;;;OAIG;IACH,IAAI,UAAU,gEAIb;IAED;;;;OAIG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAuBpB"}
|
|
@@ -3,23 +3,38 @@ export class RouteGroup {
|
|
|
3
3
|
routes;
|
|
4
4
|
constructor(routes) {
|
|
5
5
|
this.routes = routes;
|
|
6
|
-
computed.struct(this, '
|
|
6
|
+
computed.struct(this, 'isOpened');
|
|
7
7
|
computed.struct(this, 'indexRoute');
|
|
8
8
|
observable.shallow(this, 'routes');
|
|
9
9
|
makeObservable(this);
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Returns true if at least one route in the group is open.
|
|
13
|
+
*
|
|
14
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#isopened-boolean)
|
|
15
|
+
*/
|
|
11
16
|
get isOpened() {
|
|
12
17
|
const routes = Object.values(this.routes);
|
|
13
18
|
return routes.some((route) => route.isOpened ||
|
|
14
19
|
('hasOpenedChildren' in route && route.hasOpenedChildren));
|
|
15
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* First found index route.
|
|
23
|
+
*
|
|
24
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#indexroute-route-undefined)
|
|
25
|
+
*/
|
|
16
26
|
get indexRoute() {
|
|
17
27
|
return Object.values(this.routes).find((route) => 'isIndex' in route && route.isIndex);
|
|
18
28
|
}
|
|
19
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Main navigation method for the group.
|
|
31
|
+
*
|
|
32
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#open-args-any-void)
|
|
33
|
+
*/
|
|
34
|
+
open(...args) {
|
|
20
35
|
let lastGroupRoute;
|
|
21
36
|
if (this.indexRoute) {
|
|
22
|
-
this.indexRoute.open(
|
|
37
|
+
this.indexRoute.open(...args);
|
|
23
38
|
return;
|
|
24
39
|
}
|
|
25
40
|
for (const routeName in this.routes) {
|
|
@@ -29,7 +44,7 @@ export class RouteGroup {
|
|
|
29
44
|
}
|
|
30
45
|
}
|
|
31
46
|
if (lastGroupRoute) {
|
|
32
|
-
lastGroupRoute.open(
|
|
47
|
+
lastGroupRoute.open(...args);
|
|
33
48
|
}
|
|
34
49
|
else if (process.env.NODE_ENV !== 'production') {
|
|
35
50
|
console.warn("RouteGroup doesn't have index route. open() method doesn't work.");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mobx-route",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.37",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"mobx",
|
|
6
6
|
"react",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"url": "git://github.com/js2me/mobx-route"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"mobx-location-history": "^2.2.
|
|
25
|
+
"mobx-location-history": "^2.2.2",
|
|
26
26
|
"path-to-regexp": "^8.2.0",
|
|
27
27
|
"react-simple-loadable": "^2.1.0",
|
|
28
28
|
"yummies": "^3.2.1"
|