mobx-route 0.14.2 → 0.16.0
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/README.md +5 -7
- package/dist/core/config/config.cjs +43 -0
- package/dist/core/config/config.d.cts +7 -0
- package/dist/core/config/config.d.cts.map +1 -0
- package/{core → dist/core}/config/config.d.ts +1 -1
- package/{core → dist/core}/config/config.d.ts.map +1 -1
- package/dist/core/config/config.types.cjs +2 -0
- package/dist/core/config/config.types.d.cts +11 -0
- package/dist/core/config/config.types.d.cts.map +1 -0
- package/{core → dist/core}/config/config.types.d.ts +1 -1
- package/dist/core/config/config.types.d.ts.map +1 -0
- package/dist/core/config/index.cjs +18 -0
- package/dist/core/config/index.d.cts +3 -0
- package/dist/core/config/index.d.cts.map +1 -0
- package/dist/core/config/index.d.ts +3 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +2 -0
- package/dist/core/index.cjs +21 -0
- package/dist/core/index.d.cts +6 -0
- package/dist/core/index.d.cts.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +5 -0
- package/dist/core/route/index.cjs +18 -0
- package/dist/core/route/index.d.cts +3 -0
- package/dist/core/route/index.d.cts.map +1 -0
- package/dist/core/route/index.d.ts +3 -0
- package/dist/core/route/index.d.ts.map +1 -0
- package/dist/core/route/index.js +2 -0
- package/dist/core/route/route.cjs +296 -0
- package/dist/core/route/route.d.cts +107 -0
- package/dist/core/route/route.d.cts.map +1 -0
- package/{core → dist/core}/route/route.d.ts +1 -1
- package/dist/core/route/route.d.ts.map +1 -0
- package/{core → dist/core}/route/route.js +1 -1
- package/dist/core/route/route.types.cjs +2 -0
- package/dist/core/route/route.types.d.cts +142 -0
- package/dist/core/route/route.types.d.cts.map +1 -0
- package/{core → dist/core}/route/route.types.d.ts +4 -4
- package/dist/core/route/route.types.d.ts.map +1 -0
- package/dist/core/route-group/index.cjs +18 -0
- package/dist/core/route-group/index.d.cts +3 -0
- package/dist/core/route-group/index.d.cts.map +1 -0
- package/dist/core/route-group/index.d.ts +3 -0
- package/{core → dist/core}/route-group/index.d.ts.map +1 -1
- package/dist/core/route-group/index.js +2 -0
- package/dist/core/route-group/route-group.cjs +67 -0
- package/dist/core/route-group/route-group.d.cts +31 -0
- package/dist/core/route-group/route-group.d.cts.map +1 -0
- package/{core → dist/core}/route-group/route-group.d.ts +1 -1
- package/dist/core/route-group/route-group.d.ts.map +1 -0
- package/dist/core/route-group/route-group.types.cjs +2 -0
- package/dist/core/route-group/route-group.types.d.cts +15 -0
- package/dist/core/route-group/route-group.types.d.cts.map +1 -0
- package/{core → dist/core}/route-group/route-group.types.d.ts +3 -3
- package/dist/core/route-group/route-group.types.d.ts.map +1 -0
- package/dist/core/router/index.cjs +18 -0
- package/dist/core/router/index.d.cts +3 -0
- package/dist/core/router/index.d.cts.map +1 -0
- package/dist/core/router/index.d.ts +3 -0
- package/dist/core/router/index.d.ts.map +1 -0
- package/dist/core/router/index.js +2 -0
- package/dist/core/router/router.cjs +42 -0
- package/dist/core/router/router.d.cts +18 -0
- package/dist/core/router/router.d.cts.map +1 -0
- package/{core → dist/core}/router/router.d.ts +2 -2
- package/dist/core/router/router.d.ts.map +1 -0
- package/{core → dist/core}/router/router.js +1 -1
- package/dist/core/router/router.types.cjs +2 -0
- package/dist/core/router/router.types.d.cts +13 -0
- package/dist/core/router/router.types.d.cts.map +1 -0
- package/{core → dist/core}/router/router.types.d.ts +3 -3
- package/dist/core/router/router.types.d.ts.map +1 -0
- package/dist/core/utils/is-route-entity.cjs +5 -0
- package/dist/core/utils/is-route-entity.d.cts +3 -0
- package/dist/core/utils/is-route-entity.d.cts.map +1 -0
- package/dist/core/utils/is-route-entity.d.ts +3 -0
- package/{core → dist/core}/utils/is-route-entity.d.ts.map +1 -1
- package/dist/core/virtual-route/index.cjs +18 -0
- package/dist/core/virtual-route/index.d.cts +3 -0
- package/dist/core/virtual-route/index.d.cts.map +1 -0
- package/dist/core/virtual-route/index.d.ts +3 -0
- package/{core → dist/core}/virtual-route/index.d.ts.map +1 -1
- package/dist/core/virtual-route/index.js +2 -0
- package/dist/core/virtual-route/virtual-route.cjs +133 -0
- package/dist/core/virtual-route/virtual-route.d.cts +39 -0
- package/dist/core/virtual-route/virtual-route.d.cts.map +1 -0
- package/{core → dist/core}/virtual-route/virtual-route.d.ts +1 -1
- package/dist/core/virtual-route/virtual-route.d.ts.map +1 -0
- package/{core → dist/core}/virtual-route/virtual-route.js +1 -1
- package/dist/core/virtual-route/virtual-route.types.cjs +2 -0
- package/dist/core/virtual-route/virtual-route.types.d.cts +57 -0
- package/dist/core/virtual-route/virtual-route.types.d.cts.map +1 -0
- package/{core → dist/core}/virtual-route/virtual-route.types.d.ts +2 -2
- package/dist/core/virtual-route/virtual-route.types.d.ts.map +1 -0
- package/dist/index.cjs +18 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/{index.d.ts.map → dist/index.d.ts.map} +1 -1
- package/{index.js → dist/index.js} +1 -1
- package/dist/react/components/index.cjs +21 -0
- package/dist/react/components/index.d.cts +4 -0
- package/dist/react/components/index.d.cts.map +1 -0
- package/dist/react/components/index.d.ts +4 -0
- package/{react → dist/react}/components/index.d.ts.map +1 -1
- package/dist/react/components/index.js +5 -0
- package/dist/react/components/link.cjs +79 -0
- package/dist/react/components/link.d.cts +23 -0
- package/dist/react/components/link.d.cts.map +1 -0
- package/{react → dist/react}/components/link.d.ts +1 -1
- package/dist/react/components/link.d.ts.map +1 -0
- package/{react → dist/react}/components/link.js +2 -4
- package/dist/react/components/route-view-group.cjs +57 -0
- package/dist/react/components/route-view-group.d.cts +26 -0
- package/dist/react/components/route-view-group.d.cts.map +1 -0
- package/{react → dist/react}/components/route-view-group.d.ts +1 -1
- package/dist/react/components/route-view-group.d.ts.map +1 -0
- package/{react → dist/react}/components/route-view-group.js +3 -3
- package/dist/react/components/route-view.cjs +43 -0
- package/dist/react/components/route-view.d.cts +25 -0
- package/dist/react/components/route-view.d.cts.map +1 -0
- package/{react → dist/react}/components/route-view.d.ts +1 -1
- package/dist/react/components/route-view.d.ts.map +1 -0
- package/dist/react/index.cjs +17 -0
- package/dist/react/index.d.cts +2 -0
- package/dist/react/index.d.cts.map +1 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +1 -0
- package/dist/view-model/index.cjs +17 -0
- package/dist/view-model/index.d.cts +2 -0
- package/dist/view-model/index.d.cts.map +1 -0
- package/dist/view-model/index.d.ts +2 -0
- package/dist/view-model/index.d.ts.map +1 -0
- package/dist/view-model/index.js +1 -0
- package/dist/view-model/route-view-model.cjs +37 -0
- package/dist/view-model/route-view-model.d.cts +13 -0
- package/dist/view-model/route-view-model.d.cts.map +1 -0
- package/{view-model → dist/view-model}/route-view-model.d.ts +1 -1
- package/dist/view-model/route-view-model.d.ts.map +1 -0
- package/{view-model → dist/view-model}/route-view-model.js +1 -1
- package/package.json +41 -132
- package/assets/logo.png +0 -0
- package/assets/logo.pxz +0 -0
- package/assets/new-logo.pxz +0 -0
- package/core/config/config.types.d.ts.map +0 -1
- package/core/config/index.d.ts +0 -3
- package/core/config/index.d.ts.map +0 -1
- package/core/config/index.js +0 -2
- package/core/index.d.ts +0 -6
- package/core/index.d.ts.map +0 -1
- package/core/index.js +0 -5
- package/core/route/index.d.ts +0 -3
- package/core/route/index.d.ts.map +0 -1
- package/core/route/index.js +0 -2
- package/core/route/route.d.ts.map +0 -1
- package/core/route/route.test.d.ts +0 -19
- package/core/route/route.test.d.ts.map +0 -1
- package/core/route/route.test.js +0 -250
- package/core/route/route.types.d.ts.map +0 -1
- package/core/route-group/index.d.ts +0 -3
- package/core/route-group/index.js +0 -2
- package/core/route-group/route-group.d.ts.map +0 -1
- package/core/route-group/route-group.types.d.ts.map +0 -1
- package/core/router/index.d.ts +0 -3
- package/core/router/index.d.ts.map +0 -1
- package/core/router/index.js +0 -2
- package/core/router/router.d.ts.map +0 -1
- package/core/router/router.types.d.ts.map +0 -1
- package/core/utils/build-url.d.ts +0 -3
- package/core/utils/build-url.d.ts.map +0 -1
- package/core/utils/build-url.js +0 -12
- package/core/utils/is-route-entity.d.ts +0 -3
- package/core/virtual-route/index.d.ts +0 -3
- package/core/virtual-route/index.js +0 -2
- package/core/virtual-route/virtual-route.d.ts.map +0 -1
- package/core/virtual-route/virtual-route.types.d.ts.map +0 -1
- package/index.d.ts +0 -3
- package/react/components/index.d.ts +0 -4
- package/react/components/index.js +0 -5
- package/react/components/link.d.ts.map +0 -1
- package/react/components/route-view-group.d.ts.map +0 -1
- package/react/components/route-view-group.test.d.ts +0 -2
- package/react/components/route-view-group.test.d.ts.map +0 -1
- package/react/components/route-view-group.test.js +0 -101
- package/react/components/route-view.d.ts.map +0 -1
- package/react/index.d.ts +0 -2
- package/react/index.d.ts.map +0 -1
- package/react/index.js +0 -1
- package/view-model/index.d.ts +0 -2
- package/view-model/index.d.ts.map +0 -1
- package/view-model/index.js +0 -1
- package/view-model/route-view-model.d.ts.map +0 -1
- /package/{core → dist/core}/config/config.js +0 -0
- /package/{core → dist/core}/config/config.types.js +0 -0
- /package/{core → dist/core}/route/route.types.js +0 -0
- /package/{core → dist/core}/route-group/route-group.js +0 -0
- /package/{core → dist/core}/route-group/route-group.types.js +0 -0
- /package/{core → dist/core}/router/router.types.js +0 -0
- /package/{core → dist/core}/utils/is-route-entity.js +0 -0
- /package/{core → dist/core}/virtual-route/virtual-route.types.js +0 -0
- /package/{react → dist/react}/components/route-view.js +0 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { type History, type IQueryParams } from 'mobx-location-history';
|
|
2
|
+
import { type ParamData, type TokenData } from 'path-to-regexp';
|
|
3
|
+
import type { AnyObject, IsPartial, Maybe, MaybePromise } from 'yummies/utils/types';
|
|
4
|
+
import type { AnyRoute, BeforeOpenFeedback, CreatedUrlOutputParams, InputPathParams, IRoute, ParsedPathData, ParsedPathParams, PreparedNavigationData, RouteConfiguration, RouteNavigateParams } from "./route.types.cjs";
|
|
5
|
+
/**
|
|
6
|
+
* Class for creating path based route.
|
|
7
|
+
*
|
|
8
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html)
|
|
9
|
+
*/
|
|
10
|
+
export declare class Route<TPath extends string, TInputParams extends InputPathParams<TPath> = InputPathParams<TPath>, TOutputParams extends AnyObject = ParsedPathParams<TPath>, TParentRoute extends Route<any, any, any, any> | null = null> implements IRoute<TPath, TInputParams, TOutputParams> {
|
|
11
|
+
path: TPath;
|
|
12
|
+
protected config: RouteConfiguration<TPath, TInputParams, TOutputParams, TParentRoute>;
|
|
13
|
+
protected abortController: AbortController;
|
|
14
|
+
protected history: History;
|
|
15
|
+
parent: TParentRoute;
|
|
16
|
+
query: IQueryParams;
|
|
17
|
+
private _tokenData;
|
|
18
|
+
private _matcher?;
|
|
19
|
+
private _compiler?;
|
|
20
|
+
private reactionDisposer;
|
|
21
|
+
meta?: AnyObject;
|
|
22
|
+
/**
|
|
23
|
+
* Indicates if this route is an index route. Index routes activate when parent route path matches exactly.
|
|
24
|
+
*
|
|
25
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#isindex-boolean)
|
|
26
|
+
*/
|
|
27
|
+
isIndex: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Indicates if this route is an hash route.
|
|
30
|
+
*
|
|
31
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#ishash-boolean)
|
|
32
|
+
*/
|
|
33
|
+
isHash: boolean;
|
|
34
|
+
children: AnyRoute[];
|
|
35
|
+
constructor(path: TPath, config?: RouteConfiguration<TPath, TInputParams, TOutputParams, TParentRoute>);
|
|
36
|
+
protected get baseUrl(): string | undefined;
|
|
37
|
+
protected get parsedPathData(): ParsedPathData<TPath> | null;
|
|
38
|
+
/**
|
|
39
|
+
* Matched path segment for current URL.
|
|
40
|
+
*
|
|
41
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#currentpath-parsedpathname-null)
|
|
42
|
+
*/
|
|
43
|
+
get currentPath(): string | null;
|
|
44
|
+
/**
|
|
45
|
+
* Current parsed path parameters.
|
|
46
|
+
*
|
|
47
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#params-parsedpathparams-null)
|
|
48
|
+
*/
|
|
49
|
+
get params(): TOutputParams | null;
|
|
50
|
+
/**
|
|
51
|
+
* Defines the "open" state for this route.
|
|
52
|
+
*
|
|
53
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#isopened-boolean)
|
|
54
|
+
*/
|
|
55
|
+
get isOpened(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Allows to create child route based on this route with merging this route path and extending path.
|
|
58
|
+
*
|
|
59
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#extend-path-config-route)
|
|
60
|
+
*/
|
|
61
|
+
extend<TExtendedPath extends string, TExtendedInputParams extends InputPathParams<`${TPath}${TExtendedPath}`> = InputPathParams<`${TPath}${TExtendedPath}`>, TExtendedOutputParams extends AnyObject = TInputParams & ParsedPathParams<`${TPath}${TExtendedPath}`>>(path: TExtendedPath, config?: Omit<RouteConfiguration<`${TPath}${TExtendedPath}`, TInputParams & TExtendedInputParams, TExtendedOutputParams, any>, 'parent'>): Route<`${TPath}${TExtendedPath}`, TInputParams & TExtendedInputParams, TExtendedOutputParams, this>;
|
|
62
|
+
addChildren(...routes: AnyRoute[]): void;
|
|
63
|
+
removeChildren(...routes: AnyRoute[]): void;
|
|
64
|
+
/**
|
|
65
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#hasopenedchildren-boolean)
|
|
66
|
+
*/
|
|
67
|
+
get hasOpenedChildren(): boolean;
|
|
68
|
+
protected processParams(params?: TInputParams | null | undefined): ParamData | undefined;
|
|
69
|
+
createUrl(...args: IsPartial<TInputParams> extends true ? [
|
|
70
|
+
params?: Maybe<TInputParams>,
|
|
71
|
+
query?: Maybe<AnyObject>,
|
|
72
|
+
mergeQueryOrParams?: boolean | CreatedUrlOutputParams
|
|
73
|
+
] : [
|
|
74
|
+
params: TInputParams,
|
|
75
|
+
query?: Maybe<AnyObject>,
|
|
76
|
+
mergeQueryOrParams?: boolean | CreatedUrlOutputParams
|
|
77
|
+
]): string;
|
|
78
|
+
/**
|
|
79
|
+
* Navigates to this route.
|
|
80
|
+
*
|
|
81
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#open-args)
|
|
82
|
+
*/
|
|
83
|
+
open(...args: IsPartial<TInputParams> extends true ? [
|
|
84
|
+
params?: TInputParams | null | undefined,
|
|
85
|
+
navigateParams?: RouteNavigateParams
|
|
86
|
+
] : [params: TInputParams, navigateParams?: RouteNavigateParams]): Promise<void>;
|
|
87
|
+
open(...args: IsPartial<TInputParams> extends true ? [
|
|
88
|
+
params?: TInputParams | null | undefined,
|
|
89
|
+
replace?: RouteNavigateParams['replace'],
|
|
90
|
+
query?: RouteNavigateParams['query']
|
|
91
|
+
] : [
|
|
92
|
+
params: TInputParams,
|
|
93
|
+
replace?: RouteNavigateParams['replace'],
|
|
94
|
+
query?: RouteNavigateParams['query']
|
|
95
|
+
]): Promise<void>;
|
|
96
|
+
open(url: string, navigateParams?: RouteNavigateParams): Promise<void>;
|
|
97
|
+
open(url: string, replace?: RouteNavigateParams['replace'], query?: RouteNavigateParams['query']): Promise<void>;
|
|
98
|
+
protected beforeOpen(openData: PreparedNavigationData<TInputParams>): MaybePromise<BeforeOpenFeedback>;
|
|
99
|
+
protected afterClose(): true | void;
|
|
100
|
+
protected get tokenData(): TokenData;
|
|
101
|
+
private firstOpenedStateCheck;
|
|
102
|
+
private processOpenedState;
|
|
103
|
+
private get isAbleToMergeQuery();
|
|
104
|
+
destroy(): void;
|
|
105
|
+
}
|
|
106
|
+
export declare const createRoute: <TPath extends string, TInputParams extends InputPathParams<TPath> = InputPathParams<TPath>, TOutputParams extends AnyObject = ParsedPathParams<TPath>, TParentRoute extends Route<any, any, any, any> | null = null>(path: TPath, config?: RouteConfiguration<TPath, TInputParams, TOutputParams, TParentRoute>) => Route<TPath, TInputParams, TOutputParams, TParentRoute>;
|
|
107
|
+
//# sourceMappingURL=route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/core/route/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type History, type IQueryParams } from 'mobx-location-history';
|
|
2
2
|
import { type ParamData, type TokenData } from 'path-to-regexp';
|
|
3
3
|
import type { AnyObject, IsPartial, Maybe, MaybePromise } from 'yummies/utils/types';
|
|
4
|
-
import type { AnyRoute, BeforeOpenFeedback, CreatedUrlOutputParams, InputPathParams, IRoute, ParsedPathData, ParsedPathParams, PreparedNavigationData, RouteConfiguration, RouteNavigateParams } from
|
|
4
|
+
import type { AnyRoute, BeforeOpenFeedback, CreatedUrlOutputParams, InputPathParams, IRoute, ParsedPathData, ParsedPathParams, PreparedNavigationData, RouteConfiguration, RouteNavigateParams } from "./route.types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Class for creating path based route.
|
|
7
7
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/core/route/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { LinkedAbortController } from 'linked-abort-controller';
|
|
|
2
2
|
import { action, computed, makeObservable, observable, onBecomeObserved, onBecomeUnobserved, reaction, } from 'mobx';
|
|
3
3
|
import { buildSearchString, } from 'mobx-location-history';
|
|
4
4
|
import { compile, match, parse, } from 'path-to-regexp';
|
|
5
|
-
import { routeConfig } from
|
|
5
|
+
import { routeConfig } from "../config/config.js";
|
|
6
6
|
/**
|
|
7
7
|
* Class for creating path based route.
|
|
8
8
|
*
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { RawQueryParamsData } from 'mobx-location-history';
|
|
2
|
+
import type { ParseOptions } from 'path-to-regexp';
|
|
3
|
+
import type { AnyObject, IsPartial, Maybe, MaybePromise } from 'yummies/utils/types';
|
|
4
|
+
import type { RouteGlobalConfig } from "../config/config.types.cjs";
|
|
5
|
+
import type { AnyAbstractRouteEntity } from "../route-group/route-group.types.cjs";
|
|
6
|
+
import type { VirtualRoute } from "../virtual-route/virtual-route.cjs";
|
|
7
|
+
import type { Route } from "./route.cjs";
|
|
8
|
+
export type PreparedNavigationData<TParams extends AnyObject = AnyObject> = {
|
|
9
|
+
state?: any;
|
|
10
|
+
/**
|
|
11
|
+
* path parameters
|
|
12
|
+
*
|
|
13
|
+
* can be received from extended routes
|
|
14
|
+
*/
|
|
15
|
+
params?: TParams;
|
|
16
|
+
url: string;
|
|
17
|
+
replace?: boolean;
|
|
18
|
+
query?: AnyObject;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Returning `false` means ignore navigation
|
|
22
|
+
*/
|
|
23
|
+
export type BeforeOpenFeedback = void | boolean | {
|
|
24
|
+
url: string;
|
|
25
|
+
state?: any;
|
|
26
|
+
replace?: boolean;
|
|
27
|
+
};
|
|
28
|
+
export interface UrlCreateParams<TInputParams> {
|
|
29
|
+
baseUrl?: string | undefined;
|
|
30
|
+
params: TInputParams;
|
|
31
|
+
query: AnyObject;
|
|
32
|
+
}
|
|
33
|
+
export type UrlCreateParamsFn<TInputParams = any> = (params: UrlCreateParams<TInputParams>, currentQueryData: RawQueryParamsData) => Maybe<UrlCreateParams<TInputParams>>;
|
|
34
|
+
export interface CreatedUrlOutputParams {
|
|
35
|
+
mergeQuery?: boolean;
|
|
36
|
+
omitQuery?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface RouteConfiguration<TPath extends string, TInputParams extends InputPathParams<TPath> = InputPathParams<TPath>, TOutputParams extends AnyObject = ParsedPathParams<TPath>, TParentRoute extends Route<string, any, any, any> | null = null> extends Omit<Partial<RouteGlobalConfig>, 'createUrl'> {
|
|
39
|
+
/**
|
|
40
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#abortsignal)
|
|
41
|
+
*/
|
|
42
|
+
abortSignal?: AbortSignal;
|
|
43
|
+
index?: boolean;
|
|
44
|
+
hash?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#meta)
|
|
47
|
+
*/
|
|
48
|
+
meta?: AnyObject;
|
|
49
|
+
parseOptions?: ParseOptions;
|
|
50
|
+
parent?: TParentRoute;
|
|
51
|
+
children?: AnyRoute[];
|
|
52
|
+
/**
|
|
53
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#params)
|
|
54
|
+
*/
|
|
55
|
+
params?: (params: ParsedPathParams<TPath>, meta: AnyObject | undefined) => TOutputParams | null | false;
|
|
56
|
+
/**
|
|
57
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#checkopened)
|
|
58
|
+
*/
|
|
59
|
+
checkOpened?: (parsedPathData: ParsedPathData<NoInfer<TPath>>) => boolean;
|
|
60
|
+
/**
|
|
61
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#beforeopen)
|
|
62
|
+
*/
|
|
63
|
+
beforeOpen?: (preparedNavigationData: PreparedNavigationData<NoInfer<TInputParams>>) => MaybePromise<BeforeOpenFeedback>;
|
|
64
|
+
/**
|
|
65
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#afterclose)
|
|
66
|
+
*/
|
|
67
|
+
afterClose?: () => void;
|
|
68
|
+
/**
|
|
69
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#afteropen)
|
|
70
|
+
*/
|
|
71
|
+
afterOpen?: (data: ParsedPathData<NoInfer<TPath>>, route: Route<NoInfer<TPath>, NoInfer<TInputParams>, NoInfer<TOutputParams>, NoInfer<TParentRoute>>) => void;
|
|
72
|
+
/**
|
|
73
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#createurl)
|
|
74
|
+
*/
|
|
75
|
+
createUrl?: UrlCreateParamsFn<TInputParams>;
|
|
76
|
+
}
|
|
77
|
+
export type AnyRoute = IRoute;
|
|
78
|
+
export interface IRoute<TPath extends string = string, TInputParams extends InputPathParams<TPath> = InputPathParams<TPath>, TOutputParams extends AnyObject = ParsedPathParams<TPath>> {
|
|
79
|
+
isOpened: boolean;
|
|
80
|
+
path: TPath;
|
|
81
|
+
/**
|
|
82
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#hasopenedchildren-boolean)
|
|
83
|
+
*/
|
|
84
|
+
hasOpenedChildren: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Navigates to this route.
|
|
87
|
+
*
|
|
88
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Route.html#open-args)
|
|
89
|
+
*/
|
|
90
|
+
open(...args: IsPartial<TInputParams> extends true ? [
|
|
91
|
+
params?: TInputParams | null | undefined,
|
|
92
|
+
navigateParams?: RouteNavigateParams
|
|
93
|
+
] : [params: TInputParams, navigateParams?: RouteNavigateParams]): Promise<void>;
|
|
94
|
+
open(...args: IsPartial<TInputParams> extends true ? [
|
|
95
|
+
params?: TInputParams | null | undefined,
|
|
96
|
+
replace?: RouteNavigateParams['replace'],
|
|
97
|
+
query?: RouteNavigateParams['query']
|
|
98
|
+
] : [
|
|
99
|
+
params: TInputParams,
|
|
100
|
+
replace?: RouteNavigateParams['replace'],
|
|
101
|
+
query?: RouteNavigateParams['query']
|
|
102
|
+
]): Promise<void>;
|
|
103
|
+
open(url: string, navigateParams?: RouteNavigateParams): Promise<void>;
|
|
104
|
+
open(url: string, replace?: RouteNavigateParams['replace'], query?: RouteNavigateParams['query']): Promise<void>;
|
|
105
|
+
createUrl(...args: IsPartial<TInputParams> extends true ? [params?: Maybe<TInputParams>, query?: AnyObject, mergeQuery?: boolean] : [params: TInputParams, query?: AnyObject, mergeQuery?: boolean]): string;
|
|
106
|
+
destroy(): void;
|
|
107
|
+
readonly params: TOutputParams | null;
|
|
108
|
+
}
|
|
109
|
+
export type InputPathParam = string | number | boolean | null;
|
|
110
|
+
export type ParsedPathParam = string;
|
|
111
|
+
type Simplify<T> = T extends infer U ? {
|
|
112
|
+
[K in keyof U]: U[K];
|
|
113
|
+
} : never;
|
|
114
|
+
export type RouteParams<TRoute extends AnyAbstractRouteEntity> = TRoute extends {
|
|
115
|
+
path: string;
|
|
116
|
+
} ? ParsedPathParams<TRoute['path']> : TRoute extends {
|
|
117
|
+
params: infer TParams;
|
|
118
|
+
} ? Exclude<TParams, null> : AnyObject;
|
|
119
|
+
export type PathToObject<Path extends string, PropertyValue = string> = Simplify<Path extends `${infer Prefix}{${infer Optional}}${infer Suffix}` ? PathToObject<`${Prefix}${Suffix}`, PropertyValue> & Partial<PathToObject<Optional, PropertyValue>> : Path extends `${infer PartA}/${infer PartB}` ? PathToObject<PartA, PropertyValue> & PathToObject<PartB, PropertyValue> : Path extends `:${infer Param}?` ? {
|
|
120
|
+
[K in Param]?: PropertyValue;
|
|
121
|
+
} : Path extends `:${infer Param}` ? {
|
|
122
|
+
[K in Param]: PropertyValue;
|
|
123
|
+
} : Path extends `*${infer Wildcard}` ? {
|
|
124
|
+
[K in Wildcard]: PropertyValue[];
|
|
125
|
+
} : {}>;
|
|
126
|
+
export type ParsedPathParams<Path extends string> = PathToObject<Path, ParsedPathParam>;
|
|
127
|
+
export type InputPathParams<Path extends string> = PathToObject<Path, InputPathParam>;
|
|
128
|
+
export interface RouteNavigateParams {
|
|
129
|
+
replace?: boolean;
|
|
130
|
+
state?: any;
|
|
131
|
+
query?: AnyObject;
|
|
132
|
+
mergeQuery?: boolean;
|
|
133
|
+
}
|
|
134
|
+
export interface ParsedPathData<TPath extends string> {
|
|
135
|
+
path: string;
|
|
136
|
+
params: ParsedPathParams<TPath>;
|
|
137
|
+
}
|
|
138
|
+
export type InferPath<T extends AnyRoute> = T extends IRoute<infer TPath, any, any> ? TPath : never;
|
|
139
|
+
export type InferInputParams<T extends AnyRoute> = T extends VirtualRoute<infer TParams> ? TParams : T extends IRoute<any, infer TInputParams, any> ? TInputParams : never;
|
|
140
|
+
export type InferParams<T extends AnyRoute> = T extends VirtualRoute<infer TParams> ? TParams : T extends IRoute<any, any, infer TParams> ? TParams : never;
|
|
141
|
+
export {};
|
|
142
|
+
//# sourceMappingURL=route.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,10 @@
|
|
|
1
1
|
import type { RawQueryParamsData } from 'mobx-location-history';
|
|
2
2
|
import type { ParseOptions } from 'path-to-regexp';
|
|
3
3
|
import type { AnyObject, IsPartial, Maybe, MaybePromise } from 'yummies/utils/types';
|
|
4
|
-
import type { RouteGlobalConfig } from
|
|
5
|
-
import type { AnyAbstractRouteEntity } from
|
|
6
|
-
import type { VirtualRoute } from
|
|
7
|
-
import type { Route } from
|
|
4
|
+
import type { RouteGlobalConfig } from "../config/config.types.js";
|
|
5
|
+
import type { AnyAbstractRouteEntity } from "../route-group/route-group.types.js";
|
|
6
|
+
import type { VirtualRoute } from "../virtual-route/virtual-route.js";
|
|
7
|
+
import type { Route } from "./route.js";
|
|
8
8
|
export type PreparedNavigationData<TParams extends AnyObject = AnyObject> = {
|
|
9
9
|
state?: any;
|
|
10
10
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.types.d.ts","sourceRoot":"","sources":["../../../src/core/route/route.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./route-group.cjs"), exports);
|
|
18
|
+
__exportStar(require("./route-group.types.cjs"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/index.ts"],"names":[],"mappings":"AAAA,kCAAiC;AACjC,wCAAuC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,uCAAuC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRouteGroup = exports.RouteGroup = void 0;
|
|
4
|
+
const mobx_1 = require("mobx");
|
|
5
|
+
/**
|
|
6
|
+
* Class for grouping related routes and managing their state.
|
|
7
|
+
*
|
|
8
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html)
|
|
9
|
+
*/
|
|
10
|
+
class RouteGroup {
|
|
11
|
+
_indexRoute;
|
|
12
|
+
routes;
|
|
13
|
+
constructor(routes, _indexRoute) {
|
|
14
|
+
this._indexRoute = _indexRoute;
|
|
15
|
+
this.routes = routes;
|
|
16
|
+
mobx_1.computed.struct(this, 'isOpened');
|
|
17
|
+
mobx_1.computed.struct(this, 'indexRoute');
|
|
18
|
+
mobx_1.observable.shallow(this, 'routes');
|
|
19
|
+
(0, mobx_1.makeObservable)(this);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns true if at least one route in the group is open.
|
|
23
|
+
*
|
|
24
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#isopened-boolean)
|
|
25
|
+
*/
|
|
26
|
+
get isOpened() {
|
|
27
|
+
const routes = Object.values(this.routes);
|
|
28
|
+
return routes.some((route) => route.isOpened ||
|
|
29
|
+
('hasOpenedChildren' in route && route.hasOpenedChildren));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* First found index route.
|
|
33
|
+
*
|
|
34
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#indexroute-route-undefined)
|
|
35
|
+
*/
|
|
36
|
+
get indexRoute() {
|
|
37
|
+
return (this._indexRoute ??
|
|
38
|
+
Object.values(this.routes).find((route) => 'isIndex' in route && route.isIndex));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Main navigation method for the group.
|
|
42
|
+
*
|
|
43
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#open-args-any-void)
|
|
44
|
+
*/
|
|
45
|
+
open(...args) {
|
|
46
|
+
let lastGroupRoute;
|
|
47
|
+
if (this.indexRoute && 'open' in this.indexRoute) {
|
|
48
|
+
this.indexRoute.open(...args);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
for (const routeName in this.routes) {
|
|
52
|
+
const route = this.routes[routeName];
|
|
53
|
+
if (route instanceof RouteGroup) {
|
|
54
|
+
lastGroupRoute = route;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (lastGroupRoute) {
|
|
58
|
+
lastGroupRoute.open(...args);
|
|
59
|
+
}
|
|
60
|
+
else if (process.env.NODE_ENV !== 'production') {
|
|
61
|
+
console.warn("RouteGroup doesn't have index route. open() method doesn't work.");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.RouteGroup = RouteGroup;
|
|
66
|
+
const createRouteGroup = (routes, indexRoute) => new RouteGroup(routes, indexRoute);
|
|
67
|
+
exports.createRouteGroup = createRouteGroup;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { AbstractRouteGroup, AnyRouteEntity, RoutesCollection } from "./route-group.types.cjs";
|
|
2
|
+
/**
|
|
3
|
+
* Class for grouping related routes and managing their state.
|
|
4
|
+
*
|
|
5
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html)
|
|
6
|
+
*/
|
|
7
|
+
export declare class RouteGroup<TRoutesCollection extends RoutesCollection> implements AbstractRouteGroup<TRoutesCollection> {
|
|
8
|
+
private _indexRoute?;
|
|
9
|
+
routes: TRoutesCollection;
|
|
10
|
+
constructor(routes: TRoutesCollection, _indexRoute?: AnyRouteEntity | undefined);
|
|
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
|
+
*/
|
|
16
|
+
get isOpened(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* First found index route.
|
|
19
|
+
*
|
|
20
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#indexroute-route-undefined)
|
|
21
|
+
*/
|
|
22
|
+
get indexRoute(): AnyRouteEntity | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Main navigation method for the group.
|
|
25
|
+
*
|
|
26
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/RouteGroup.html#open-args-any-void)
|
|
27
|
+
*/
|
|
28
|
+
open(...args: any[]): void;
|
|
29
|
+
}
|
|
30
|
+
export declare const createRouteGroup: <TRoutesCollection extends RoutesCollection>(routes: TRoutesCollection, indexRoute?: AnyRouteEntity) => RouteGroup<TRoutesCollection>;
|
|
31
|
+
//# sourceMappingURL=route-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-group.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/route-group.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,gCAA+B;AAIhC;;;;GAIG;AACH,qBAAa,UAAU,CAAC,iBAAiB,SAAS,gBAAgB,CAChE,YAAW,kBAAkB,CAAC,iBAAiB,CAAC;IAM9C,OAAO,CAAC,WAAW,CAAC;IAJtB,MAAM,EAAE,iBAAiB,CAAC;gBAGxB,MAAM,EAAE,iBAAiB,EACjB,WAAW,CAAC,EAAE,cAAc,YAAA;IAUtC;;;;OAIG;IACH,IAAI,QAAQ,IAAI,OAAO,CAOtB;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAK3C;IAED;;;;OAIG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAuBpB;AAED,eAAO,MAAM,gBAAgB,GAAI,iBAAiB,SAAS,gBAAgB,EACzE,QAAQ,iBAAiB,EACzB,aAAa,cAAc,kCAC6B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AbstractRouteGroup, AnyRouteEntity, RoutesCollection } from
|
|
1
|
+
import type { AbstractRouteGroup, AnyRouteEntity, RoutesCollection } from "./route-group.types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Class for grouping related routes and managing their state.
|
|
4
4
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-group.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/route-group.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,+BAA+B;AAIhC;;;;GAIG;AACH,qBAAa,UAAU,CAAC,iBAAiB,SAAS,gBAAgB,CAChE,YAAW,kBAAkB,CAAC,iBAAiB,CAAC;IAM9C,OAAO,CAAC,WAAW,CAAC;IAJtB,MAAM,EAAE,iBAAiB,CAAC;gBAGxB,MAAM,EAAE,iBAAiB,EACjB,WAAW,CAAC,EAAE,cAAc,YAAA;IAUtC;;;;OAIG;IACH,IAAI,QAAQ,IAAI,OAAO,CAOtB;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAK3C;IAED;;;;OAIG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAuBpB;AAED,eAAO,MAAM,gBAAgB,GAAI,iBAAiB,SAAS,gBAAgB,EACzE,QAAQ,iBAAiB,EACzB,aAAa,cAAc,kCAC6B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AnyRoute } from "../route/index.cjs";
|
|
2
|
+
import type { AbstractVirtualRoute, AnyVirtualRoute } from "../virtual-route/index.cjs";
|
|
3
|
+
import type { RouteGroup } from "./route-group.cjs";
|
|
4
|
+
export type AnyRouteGroup = RouteGroup<RoutesCollection>;
|
|
5
|
+
export type AnyRouteEntity = AnyRoute | AnyRouteGroup | AnyVirtualRoute;
|
|
6
|
+
export interface AbstractRouteGroup<TRoutesCollection extends RoutesCollection = RoutesCollection> {
|
|
7
|
+
routes: TRoutesCollection;
|
|
8
|
+
isOpened: boolean;
|
|
9
|
+
}
|
|
10
|
+
export type AnyAbstractRoute = AnyRoute | AbstractVirtualRoute<any>;
|
|
11
|
+
export type AnyAbstractRouteEntity = AnyAbstractRoute | AbstractRouteGroup;
|
|
12
|
+
export type RoutesArrayCollection = AnyAbstractRouteEntity[];
|
|
13
|
+
export type RoutesObjectCollection = Record<string, AnyAbstractRouteEntity>;
|
|
14
|
+
export type RoutesCollection = RoutesArrayCollection | RoutesObjectCollection;
|
|
15
|
+
//# sourceMappingURL=route-group.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-group.types.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/route-group.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,2BAA0B;AAClD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAChB,mCAAkC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,0BAAyB;AAEnD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;AAExE,MAAM,WAAW,kBAAkB,CACjC,iBAAiB,SAAS,gBAAgB,GAAG,gBAAgB;IAE7D,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,EAAE,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,sBAAsB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AnyRoute } from
|
|
2
|
-
import type { AbstractVirtualRoute, AnyVirtualRoute } from
|
|
3
|
-
import type { RouteGroup } from
|
|
1
|
+
import type { AnyRoute } from "../route/index.js";
|
|
2
|
+
import type { AbstractVirtualRoute, AnyVirtualRoute } from "../virtual-route/index.js";
|
|
3
|
+
import type { RouteGroup } from "./route-group.js";
|
|
4
4
|
export type AnyRouteGroup = RouteGroup<RoutesCollection>;
|
|
5
5
|
export type AnyRouteEntity = AnyRoute | AnyRouteGroup | AnyVirtualRoute;
|
|
6
6
|
export interface AbstractRouteGroup<TRoutesCollection extends RoutesCollection = RoutesCollection> {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-group.types.d.ts","sourceRoot":"","sources":["../../../src/core/route-group/route-group.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,0BAA0B;AAClD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAChB,kCAAkC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,yBAAyB;AAEnD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;AAExE,MAAM,WAAW,kBAAkB,CACjC,iBAAiB,SAAS,gBAAgB,GAAG,gBAAgB;IAE7D,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,EAAE,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./router.cjs"), exports);
|
|
18
|
+
__exportStar(require("./router.types.cjs"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/router/index.ts"],"names":[],"mappings":"AAAA,6BAA4B;AAC5B,mCAAkC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/router/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,kCAAkC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRouter = exports.Router = void 0;
|
|
4
|
+
const mobx_1 = require("mobx");
|
|
5
|
+
const mobx_location_history_1 = require("mobx-location-history");
|
|
6
|
+
const config_js_1 = require("../config/config.cjs");
|
|
7
|
+
/**
|
|
8
|
+
* Class for centralized routing management.
|
|
9
|
+
*
|
|
10
|
+
* [**Documentation**](https://js2me.github.io/mobx-route/core/Router.html)
|
|
11
|
+
*/
|
|
12
|
+
class Router {
|
|
13
|
+
routes;
|
|
14
|
+
history;
|
|
15
|
+
query;
|
|
16
|
+
constructor(config) {
|
|
17
|
+
this.routes = config.routes;
|
|
18
|
+
this.history = config.history ?? config_js_1.routeConfig.get().history;
|
|
19
|
+
this.query = config.queryParams ?? config_js_1.routeConfig.get().queryParams;
|
|
20
|
+
mobx_1.computed.struct(this, 'location');
|
|
21
|
+
(0, mobx_1.makeObservable)(this);
|
|
22
|
+
}
|
|
23
|
+
get location() {
|
|
24
|
+
return this.history.location;
|
|
25
|
+
}
|
|
26
|
+
navigate(url, options) {
|
|
27
|
+
const query = (options?.mergeQuery ?? config_js_1.routeConfig.get().mergeQuery)
|
|
28
|
+
? { ...this.query.data, ...options?.query }
|
|
29
|
+
: { ...options?.query };
|
|
30
|
+
const searchString = (0, mobx_location_history_1.buildSearchString)(query);
|
|
31
|
+
const navigationUrl = `${url}${searchString}`;
|
|
32
|
+
if (options?.replace) {
|
|
33
|
+
this.history.replace(navigationUrl, options?.state);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.history.push(navigationUrl, options?.state);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Router = Router;
|
|
41
|
+
const createRouter = (config) => new Router(config);
|
|
42
|
+
exports.createRouter = createRouter;
|