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.
@@ -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;IAkBzC,IAAI,EAAE,KAAK;IAClB,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,YAAY,CAAC;IAjBpD,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC;IAClC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,YAAY,CAAC;IAErB,KAAK,EAAE,YAAY,CAAC;IAEpB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAA2B;IAC5C,OAAO,CAAC,SAAS,CAAC,CAA6B;IAE/C,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,QAAQ,EAAE,CAAM;gBAGjB,IAAI,EAAE,KAAK,EACR,MAAM,GAAE,kBAAkB,CAAC,YAAY,CAAM;IAwBzD,SAAS,KAAK,IAAI,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CA0BnD;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,IAAI,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAE3C;IAED,IAAI,QAAQ,YAEX;IAED,MAAM,CAAC,WAAW,SAAS,MAAM,EAC/B,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;IAqBlD,WAAW,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE;IAIjC,cAAc,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE;IAIpC,IAAI,iBAAiB,IAAI,OAAO,CAI/B;IAED,SAAS,CAAC,aAAa,CACrB,MAAM,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,GACnD,SAAS,GAAG,SAAS;IAWxB,SAAS,CACP,GAAG,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,GACjE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,GAC7D,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAiB3D,IAAI,CACF,GAAG,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,GACjE;QACE,MAAM,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS;QACpD,cAAc,CAAC,EAAE,mBAAmB;KACrC,GACD,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,EAAE,mBAAmB,CAAC,GAC3E,IAAI;IAEP,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAc7D,SAAS,KAAK,SAAS,cAKtB;CACF"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/core/route/route.ts"],"names":[],"mappings":"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"}
@@ -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 url = typeof args[0] === 'string'
111
- ? args[0]
112
- : this.createUrl(args[0], args[1]?.query);
113
- if (args[1]?.replace) {
114
- this.history.replaceState(null, '', url);
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(null, '', url);
149
+ this.history.pushState(state, '', url);
118
150
  }
119
151
  }
120
152
  get tokenData() {
@@ -39,6 +39,7 @@ export type ExtractPathParams<Path extends string> = Simplify<Path extends `${in
39
39
  } : {}>;
40
40
  export interface RouteNavigateParams {
41
41
  replace?: boolean;
42
+ state?: any;
42
43
  query?: AnyObject;
43
44
  }
44
45
  export interface RouteMatchesData<TPath extends string> {
@@ -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
- open(params?: any, navigateParams?: RouteNavigateParams): void;
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,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,qBAAa,UAAU,CAAC,iBAAiB,SAAS,gBAAgB;IAC7C,MAAM,EAAE,iBAAiB;gBAAzB,MAAM,EAAE,iBAAiB;IAO5C,IAAI,QAAQ,IAAI,OAAO,CAOtB;IAED,IAAI,UAAU,gEAIb;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,mBAAmB;CAuBxD"}
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, 'isMatches');
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
- open(params, navigateParams) {
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(params, navigateParams);
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(params, navigateParams);
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.35",
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.1",
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"