@ngxs/router-plugin 3.8.2 → 18.0.0-dev.master-f4c2c19
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/esm2022/internals/index.mjs +2 -0
- package/esm2022/internals/ngxs-router-plugin-internals.mjs +5 -0
- package/esm2022/internals/symbols.mjs +10 -0
- package/esm2022/src/public_api.mjs +5 -0
- package/esm2022/src/router.actions.mjs +85 -0
- package/esm2022/src/router.module.mjs +45 -0
- package/esm2022/src/router.state.mjs +231 -0
- package/esm2022/src/serializer.mjs +33 -0
- package/fesm2022/ngxs-router-plugin-internals.mjs +17 -0
- package/fesm2022/ngxs-router-plugin-internals.mjs.map +1 -0
- package/{fesm2015/ngxs-router-plugin.js → fesm2022/ngxs-router-plugin.mjs} +77 -62
- package/fesm2022/ngxs-router-plugin.mjs.map +1 -0
- package/internals/index.d.ts +1 -0
- package/internals/symbols.d.ts +11 -0
- package/package.json +26 -14
- package/src/public_api.d.ts +3 -3
- package/src/router.actions.d.ts +1 -1
- package/src/router.module.d.ts +3 -2
- package/src/router.state.d.ts +4 -3
- package/bundles/ngxs-router-plugin.umd.js +0 -903
- package/bundles/ngxs-router-plugin.umd.js.map +0 -1
- package/esm2015/src/public_api.js +0 -5
- package/esm2015/src/router.actions.js +0 -85
- package/esm2015/src/router.module.js +0 -33
- package/esm2015/src/router.state.js +0 -222
- package/esm2015/src/serializer.js +0 -32
- package/esm2015/src/symbols.js +0 -9
- package/fesm2015/ngxs-router-plugin.js.map +0 -1
- package/ngxs-router-plugin.d.ts +0 -5
- package/src/symbols.d.ts +0 -11
- /package/{esm2015/index.js → esm2022/index.mjs} +0 -0
- /package/{esm2015/ngxs-router-plugin.js → esm2022/ngxs-router-plugin.mjs} +0 -0
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { NgZone, Injector, Injectable, NgModule, makeEnvironmentProviders } from '@angular/core';
|
|
3
3
|
import * as i1 from '@ngxs/store';
|
|
4
|
-
import { Action, Selector, State, Store, NgxsModule } from '@ngxs/store';
|
|
4
|
+
import { StateToken, Action, Selector, State, Store, NgxsModule, provideStates } from '@ngxs/store';
|
|
5
|
+
import { ɵNGXS_ROUTER_PLUGIN_OPTIONS as _NGXS_ROUTER_PLUGIN_OPTIONS, ɵUSER_OPTIONS as _USER_OPTIONS, ɵcreateRouterPluginOptions as _createRouterPluginOptions } from '@ngxs/router-plugin/internals';
|
|
5
6
|
import { __decorate, __metadata } from 'tslib';
|
|
6
7
|
import * as i2 from '@angular/router';
|
|
7
8
|
import { NavigationStart, RoutesRecognized, ResolveEnd, NavigationCancel, NavigationError, NavigationEnd, Router } from '@angular/router';
|
|
8
|
-
import {
|
|
9
|
+
import { ReplaySubject } from 'rxjs';
|
|
10
|
+
import { takeUntil } from 'rxjs/operators';
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* Public event api of the router
|
|
12
14
|
*/
|
|
13
15
|
class Navigate {
|
|
16
|
+
static { this.type = '[Router] Navigate'; }
|
|
14
17
|
constructor(path, queryParams, extras) {
|
|
15
18
|
this.path = path;
|
|
16
19
|
this.queryParams = queryParams;
|
|
17
20
|
this.extras = extras;
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
|
-
Navigate.type = '[Router] Navigate';
|
|
21
23
|
/**
|
|
22
24
|
*
|
|
23
25
|
* Angular Routers internal state events
|
|
@@ -27,28 +29,29 @@ Navigate.type = '[Router] Navigate';
|
|
|
27
29
|
* An action dispatched when the router starts the navigation.
|
|
28
30
|
*/
|
|
29
31
|
class RouterRequest {
|
|
32
|
+
static { this.type = '[Router] RouterRequest'; }
|
|
30
33
|
constructor(routerState, event, trigger = 'none') {
|
|
31
34
|
this.routerState = routerState;
|
|
32
35
|
this.event = event;
|
|
33
36
|
this.trigger = trigger;
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
|
-
RouterRequest.type = '[Router] RouterRequest';
|
|
37
39
|
/**
|
|
38
40
|
* An action dispatched when the router navigates.
|
|
39
41
|
*/
|
|
40
42
|
class RouterNavigation {
|
|
43
|
+
static { this.type = '[Router] RouterNavigation'; }
|
|
41
44
|
constructor(routerState, event, trigger = 'none') {
|
|
42
45
|
this.routerState = routerState;
|
|
43
46
|
this.event = event;
|
|
44
47
|
this.trigger = trigger;
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
|
-
RouterNavigation.type = '[Router] RouterNavigation';
|
|
48
50
|
/**
|
|
49
51
|
* An action dispatched when the router cancel navigation.
|
|
50
52
|
*/
|
|
51
53
|
class RouterCancel {
|
|
54
|
+
static { this.type = '[Router] RouterCancel'; }
|
|
52
55
|
constructor(routerState, storeState, event, trigger = 'none') {
|
|
53
56
|
this.routerState = routerState;
|
|
54
57
|
this.storeState = storeState;
|
|
@@ -56,11 +59,11 @@ class RouterCancel {
|
|
|
56
59
|
this.trigger = trigger;
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
|
-
RouterCancel.type = '[Router] RouterCancel';
|
|
60
62
|
/**
|
|
61
63
|
* An action dispatched when the router errors.
|
|
62
64
|
*/
|
|
63
65
|
class RouterError {
|
|
66
|
+
static { this.type = '[Router] RouterError'; }
|
|
64
67
|
constructor(routerState, storeState, event, trigger = 'none') {
|
|
65
68
|
this.routerState = routerState;
|
|
66
69
|
this.storeState = storeState;
|
|
@@ -68,29 +71,28 @@ class RouterError {
|
|
|
68
71
|
this.trigger = trigger;
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
|
-
RouterError.type = '[Router] RouterError';
|
|
72
74
|
/**
|
|
73
75
|
* An action dispatched when the `ResolveEnd` event is triggered.
|
|
74
76
|
*/
|
|
75
77
|
class RouterDataResolved {
|
|
78
|
+
static { this.type = '[Router] RouterDataResolved'; }
|
|
76
79
|
constructor(routerState, event, trigger = 'none') {
|
|
77
80
|
this.routerState = routerState;
|
|
78
81
|
this.event = event;
|
|
79
82
|
this.trigger = trigger;
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
|
-
RouterDataResolved.type = '[Router] RouterDataResolved';
|
|
83
85
|
/**
|
|
84
86
|
* An action dispatched when the router navigation has been finished successfully.
|
|
85
87
|
*/
|
|
86
88
|
class RouterNavigated {
|
|
89
|
+
static { this.type = '[Router] RouterNavigated'; }
|
|
87
90
|
constructor(routerState, event, trigger = 'none') {
|
|
88
91
|
this.routerState = routerState;
|
|
89
92
|
this.event = event;
|
|
90
93
|
this.trigger = trigger;
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
|
-
RouterNavigated.type = '[Router] RouterNavigated';
|
|
94
96
|
|
|
95
97
|
class RouterStateSerializer {
|
|
96
98
|
}
|
|
@@ -105,6 +107,7 @@ class DefaultRouterStateSerializer {
|
|
|
105
107
|
const children = route.children.map(c => this.serializeRoute(c));
|
|
106
108
|
return {
|
|
107
109
|
url: route.url,
|
|
110
|
+
title: route.title,
|
|
108
111
|
params: route.params,
|
|
109
112
|
queryParams: route.queryParams,
|
|
110
113
|
fragment: route.fragment,
|
|
@@ -124,16 +127,19 @@ class DefaultRouterStateSerializer {
|
|
|
124
127
|
}
|
|
125
128
|
}
|
|
126
129
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
// NGXS doesn't permit untyped selectors, such as `select(RouterState)`,
|
|
131
|
+
// as the `RouterState` class itself lacks type information. Therefore,
|
|
132
|
+
// the following state token must replace `RouterState`.
|
|
133
|
+
const ROUTER_STATE_TOKEN = new StateToken('router');
|
|
134
|
+
let RouterState = class RouterState {
|
|
135
|
+
static state(state) {
|
|
136
|
+
// The `state` is optional if the selector is invoked before the router
|
|
137
|
+
// state is registered in NGXS.
|
|
138
|
+
return state?.state;
|
|
139
|
+
}
|
|
140
|
+
static url(state) {
|
|
141
|
+
return state?.state?.url;
|
|
142
|
+
}
|
|
137
143
|
constructor(_store, _router, _serializer, _ngZone, injector) {
|
|
138
144
|
this._store = _store;
|
|
139
145
|
this._router = _router;
|
|
@@ -153,25 +159,22 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
153
159
|
*/
|
|
154
160
|
this._storeState = null;
|
|
155
161
|
this._lastEvent = null;
|
|
156
|
-
this._subscription = new Subscription();
|
|
157
162
|
this._options = null;
|
|
163
|
+
this._destroy$ = new ReplaySubject(1);
|
|
158
164
|
// Note: do not use `@Inject` since it fails on lower versions of Angular with Jest
|
|
159
165
|
// integration, it cannot resolve the token provider.
|
|
160
|
-
this._options = injector.get(
|
|
166
|
+
this._options = injector.get(_NGXS_ROUTER_PLUGIN_OPTIONS, null);
|
|
161
167
|
this._setUpStoreListener();
|
|
162
168
|
this._setUpRouterEventsListener();
|
|
163
169
|
}
|
|
164
|
-
static state(state) {
|
|
165
|
-
return state && state.state;
|
|
166
|
-
}
|
|
167
|
-
static url(state) {
|
|
168
|
-
return state && state.state && state.state.url;
|
|
169
|
-
}
|
|
170
170
|
ngOnDestroy() {
|
|
171
|
-
this.
|
|
171
|
+
this._destroy$.next();
|
|
172
172
|
}
|
|
173
173
|
navigate(_, action) {
|
|
174
|
-
return this._ngZone.run(() => this._router.navigate(action.path,
|
|
174
|
+
return this._ngZone.run(() => this._router.navigate(action.path, {
|
|
175
|
+
queryParams: action.queryParams,
|
|
176
|
+
...action.extras
|
|
177
|
+
}));
|
|
175
178
|
}
|
|
176
179
|
angularRouterAction(ctx, action) {
|
|
177
180
|
ctx.setState({
|
|
@@ -181,16 +184,16 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
181
184
|
});
|
|
182
185
|
}
|
|
183
186
|
_setUpStoreListener() {
|
|
184
|
-
const
|
|
185
|
-
.select(
|
|
186
|
-
.
|
|
187
|
+
const routerState$ = this._store
|
|
188
|
+
.select(ROUTER_STATE_TOKEN)
|
|
189
|
+
.pipe(takeUntil(this._destroy$));
|
|
190
|
+
routerState$.subscribe((state) => {
|
|
187
191
|
this._navigateIfNeeded(state);
|
|
188
192
|
});
|
|
189
|
-
this._subscription.add(subscription);
|
|
190
193
|
}
|
|
191
194
|
_navigateIfNeeded(routerState) {
|
|
192
195
|
if (routerState && routerState.trigger === 'devtools') {
|
|
193
|
-
this._storeState = this._store.selectSnapshot(
|
|
196
|
+
this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);
|
|
194
197
|
}
|
|
195
198
|
const canSkipNavigation = !this._storeState ||
|
|
196
199
|
!this._storeState.state ||
|
|
@@ -201,15 +204,16 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
201
204
|
if (canSkipNavigation) {
|
|
202
205
|
return;
|
|
203
206
|
}
|
|
204
|
-
this._storeState = this._store.selectSnapshot(
|
|
207
|
+
this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);
|
|
205
208
|
this._trigger = 'store';
|
|
206
209
|
this._ngZone.run(() => this._router.navigateByUrl(this._storeState.state.url));
|
|
207
210
|
}
|
|
208
211
|
_setUpRouterEventsListener() {
|
|
209
212
|
const dispatchRouterNavigationLate = this._options != null &&
|
|
210
|
-
this._options.navigationActionTiming === 2 /* PostActivation */;
|
|
213
|
+
this._options.navigationActionTiming === 2 /* NavigationActionTiming.PostActivation */;
|
|
211
214
|
let lastRoutesRecognized;
|
|
212
|
-
const
|
|
215
|
+
const events$ = this._router.events.pipe(takeUntil(this._destroy$));
|
|
216
|
+
events$.subscribe(event => {
|
|
213
217
|
this._lastEvent = event;
|
|
214
218
|
if (event instanceof NavigationStart) {
|
|
215
219
|
this._navigationStart(event);
|
|
@@ -241,13 +245,12 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
241
245
|
this._reset();
|
|
242
246
|
}
|
|
243
247
|
});
|
|
244
|
-
this._subscription.add(subscription);
|
|
245
248
|
}
|
|
246
249
|
/** Reacts to `NavigationStart`. */
|
|
247
250
|
_navigationStart(event) {
|
|
248
251
|
this._routerState = this._serializer.serialize(this._router.routerState.snapshot);
|
|
249
252
|
if (this._trigger !== 'none') {
|
|
250
|
-
this._storeState = this._store.selectSnapshot(
|
|
253
|
+
this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);
|
|
251
254
|
this._dispatchRouterAction(new RouterRequest(this._routerState, event, this._trigger));
|
|
252
255
|
}
|
|
253
256
|
}
|
|
@@ -288,9 +291,9 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
288
291
|
this._storeState = null;
|
|
289
292
|
this._routerState = null;
|
|
290
293
|
}
|
|
294
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RouterState, deps: [{ token: i1.Store }, { token: i2.Router }, { token: RouterStateSerializer }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
295
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RouterState }); }
|
|
291
296
|
};
|
|
292
|
-
/** @nocollapse */ RouterState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RouterState, deps: [{ token: i1.Store }, { token: i2.Router }, { token: RouterStateSerializer }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
293
|
-
/** @nocollapse */ RouterState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RouterState });
|
|
294
297
|
__decorate([
|
|
295
298
|
Action(Navigate),
|
|
296
299
|
__metadata("design:type", Function),
|
|
@@ -299,12 +302,12 @@ __decorate([
|
|
|
299
302
|
], RouterState.prototype, "navigate", null);
|
|
300
303
|
__decorate([
|
|
301
304
|
Action([
|
|
302
|
-
RouterRequest,
|
|
303
|
-
RouterNavigation,
|
|
304
|
-
RouterError,
|
|
305
|
-
RouterCancel,
|
|
306
|
-
RouterDataResolved,
|
|
307
|
-
RouterNavigated
|
|
305
|
+
(RouterRequest),
|
|
306
|
+
(RouterNavigation),
|
|
307
|
+
(RouterError),
|
|
308
|
+
(RouterCancel),
|
|
309
|
+
(RouterDataResolved),
|
|
310
|
+
(RouterNavigated)
|
|
308
311
|
]),
|
|
309
312
|
__metadata("design:type", Function),
|
|
310
313
|
__metadata("design:paramtypes", [Object, Object]),
|
|
@@ -322,9 +325,9 @@ __decorate([
|
|
|
322
325
|
__metadata("design:paramtypes", [Object]),
|
|
323
326
|
__metadata("design:returntype", Object)
|
|
324
327
|
], RouterState, "url", null);
|
|
325
|
-
RouterState =
|
|
328
|
+
RouterState = __decorate([
|
|
326
329
|
State({
|
|
327
|
-
name:
|
|
330
|
+
name: ROUTER_STATE_TOKEN,
|
|
328
331
|
defaults: {
|
|
329
332
|
state: undefined,
|
|
330
333
|
navigationId: undefined,
|
|
@@ -337,35 +340,47 @@ RouterState = RouterState_1 = __decorate([
|
|
|
337
340
|
NgZone,
|
|
338
341
|
Injector])
|
|
339
342
|
], RouterState);
|
|
340
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RouterState, decorators: [{
|
|
341
344
|
type: Injectable
|
|
342
|
-
}], ctorParameters:
|
|
345
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: RouterStateSerializer }, { type: i0.NgZone }, { type: i0.Injector }], propDecorators: { navigate: [], angularRouterAction: [] } });
|
|
343
346
|
|
|
344
347
|
class NgxsRouterPluginModule {
|
|
345
348
|
static forRoot(options) {
|
|
346
349
|
return {
|
|
347
350
|
ngModule: NgxsRouterPluginModule,
|
|
348
351
|
providers: [
|
|
349
|
-
{ provide:
|
|
352
|
+
{ provide: _USER_OPTIONS, useValue: options },
|
|
350
353
|
{
|
|
351
|
-
provide:
|
|
352
|
-
useFactory:
|
|
353
|
-
deps: [
|
|
354
|
+
provide: _NGXS_ROUTER_PLUGIN_OPTIONS,
|
|
355
|
+
useFactory: _createRouterPluginOptions,
|
|
356
|
+
deps: [_USER_OPTIONS]
|
|
354
357
|
},
|
|
355
358
|
{ provide: RouterStateSerializer, useClass: DefaultRouterStateSerializer }
|
|
356
359
|
]
|
|
357
360
|
};
|
|
358
361
|
}
|
|
362
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRouterPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
363
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: NgxsRouterPluginModule, imports: [i1.ɵNgxsFeatureModule] }); }
|
|
364
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRouterPluginModule, imports: [NgxsModule.forFeature([RouterState])] }); }
|
|
359
365
|
}
|
|
360
|
-
|
|
361
|
-
/** @nocollapse */ NgxsRouterPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsRouterPluginModule, imports: [i1.ɵNgxsFeatureModule] });
|
|
362
|
-
/** @nocollapse */ NgxsRouterPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsRouterPluginModule, imports: [[NgxsModule.forFeature([RouterState])]] });
|
|
363
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsRouterPluginModule, decorators: [{
|
|
366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRouterPluginModule, decorators: [{
|
|
364
367
|
type: NgModule,
|
|
365
368
|
args: [{
|
|
366
369
|
imports: [NgxsModule.forFeature([RouterState])]
|
|
367
370
|
}]
|
|
368
371
|
}] });
|
|
372
|
+
function withNgxsRouterPlugin(options) {
|
|
373
|
+
return makeEnvironmentProviders([
|
|
374
|
+
provideStates([RouterState]),
|
|
375
|
+
{ provide: _USER_OPTIONS, useValue: options },
|
|
376
|
+
{
|
|
377
|
+
provide: _NGXS_ROUTER_PLUGIN_OPTIONS,
|
|
378
|
+
useFactory: _createRouterPluginOptions,
|
|
379
|
+
deps: [_USER_OPTIONS]
|
|
380
|
+
},
|
|
381
|
+
{ provide: RouterStateSerializer, useClass: DefaultRouterStateSerializer }
|
|
382
|
+
]);
|
|
383
|
+
}
|
|
369
384
|
|
|
370
385
|
/**
|
|
371
386
|
* The public api for consumers of @ngxs/router-plugin
|
|
@@ -375,5 +390,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
375
390
|
* Generated bundle index. Do not edit.
|
|
376
391
|
*/
|
|
377
392
|
|
|
378
|
-
export { DefaultRouterStateSerializer, Navigate, NgxsRouterPluginModule, RouterCancel, RouterDataResolved, RouterError, RouterNavigated, RouterNavigation, RouterRequest, RouterState, RouterStateSerializer };
|
|
379
|
-
//# sourceMappingURL=ngxs-router-plugin.
|
|
393
|
+
export { DefaultRouterStateSerializer, Navigate, NgxsRouterPluginModule, ROUTER_STATE_TOKEN, RouterCancel, RouterDataResolved, RouterError, RouterNavigated, RouterNavigation, RouterRequest, RouterState, RouterStateSerializer, withNgxsRouterPlugin };
|
|
394
|
+
//# sourceMappingURL=ngxs-router-plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngxs-router-plugin.mjs","sources":["../../../packages/router-plugin/src/router.actions.ts","../../../packages/router-plugin/src/serializer.ts","../../../packages/router-plugin/src/router.state.ts","../../../packages/router-plugin/src/router.module.ts","../../../packages/router-plugin/index.ts","../../../packages/router-plugin/ngxs-router-plugin.ts"],"sourcesContent":["import {\n NavigationCancel,\n NavigationError,\n NavigationExtras,\n Params,\n RouterStateSnapshot,\n RoutesRecognized,\n ResolveEnd,\n NavigationStart,\n NavigationEnd\n} from '@angular/router';\n\nimport { RouterTrigger } from './router.state';\n\n/**\n * Public event api of the router\n */\nexport class Navigate {\n static readonly type = '[Router] Navigate';\n\n constructor(\n public path: any[],\n public queryParams?: Params,\n public extras?: NavigationExtras\n ) {}\n}\n\n/**\n *\n * Angular Routers internal state events\n *\n */\n\n/**\n * An action dispatched when the router starts the navigation.\n */\nexport class RouterRequest<T = RouterStateSnapshot> {\n static readonly type = '[Router] RouterRequest';\n\n constructor(\n public routerState: T,\n public event: NavigationStart,\n public trigger: RouterTrigger = 'none'\n ) {}\n}\n\n/**\n * An action dispatched when the router navigates.\n */\nexport class RouterNavigation<T = RouterStateSnapshot> {\n static readonly type = '[Router] RouterNavigation';\n\n constructor(\n public routerState: T,\n public event: RoutesRecognized,\n public trigger: RouterTrigger = 'none'\n ) {}\n}\n\n/**\n * An action dispatched when the router cancel navigation.\n */\nexport class RouterCancel<T, V = RouterStateSnapshot> {\n static readonly type = '[Router] RouterCancel';\n\n constructor(\n public routerState: V,\n public storeState: T,\n public event: NavigationCancel,\n public trigger: RouterTrigger = 'none'\n ) {}\n}\n\n/**\n * An action dispatched when the router errors.\n */\nexport class RouterError<T, V = RouterStateSnapshot> {\n static readonly type = '[Router] RouterError';\n\n constructor(\n public routerState: V,\n public storeState: T,\n public event: NavigationError,\n public trigger: RouterTrigger = 'none'\n ) {}\n}\n\n/**\n * An action dispatched when the `ResolveEnd` event is triggered.\n */\nexport class RouterDataResolved<T = RouterStateSnapshot> {\n static readonly type = '[Router] RouterDataResolved';\n\n constructor(\n public routerState: T,\n public event: ResolveEnd,\n public trigger: RouterTrigger = 'none'\n ) {}\n}\n\n/**\n * An action dispatched when the router navigation has been finished successfully.\n */\nexport class RouterNavigated<T = RouterStateSnapshot> {\n static readonly type = '[Router] RouterNavigated';\n\n constructor(\n public routerState: T,\n public event: NavigationEnd,\n public trigger: RouterTrigger = 'none'\n ) {}\n}\n\n/**\n * An union type of router actions.\n */\nexport type RouterAction<T, V = RouterStateSnapshot> =\n | RouterRequest<V>\n | RouterNavigation<V>\n | RouterCancel<T, V>\n | RouterError<T, V>\n | RouterDataResolved<V>\n | RouterNavigated<V>;\n","import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nexport abstract class RouterStateSerializer<T> {\n abstract serialize(routerState: RouterStateSnapshot): T;\n}\n\nexport interface SerializedRouterStateSnapshot {\n root: ActivatedRouteSnapshot;\n url: string;\n}\n\nexport class DefaultRouterStateSerializer\n implements RouterStateSerializer<SerializedRouterStateSnapshot>\n{\n serialize(routerState: RouterStateSnapshot): SerializedRouterStateSnapshot {\n return {\n root: this.serializeRoute(routerState.root),\n url: routerState.url\n };\n }\n\n private serializeRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n const children = route.children.map(c => this.serializeRoute(c));\n return {\n url: route.url,\n title: route.title,\n params: route.params,\n queryParams: route.queryParams,\n fragment: route.fragment!,\n data: route.data,\n outlet: route.outlet,\n component: null,\n routeConfig: null,\n root: null as any,\n parent: null,\n firstChild: children[0],\n children: children,\n pathFromRoot: null as any,\n paramMap: route.paramMap,\n queryParamMap: route.queryParamMap,\n toString: route.toString\n };\n }\n}\n","import { NgZone, Injectable, OnDestroy, Injector } from '@angular/core';\nimport {\n NavigationCancel,\n NavigationError,\n Router,\n RouterStateSnapshot,\n RoutesRecognized,\n ResolveEnd,\n NavigationStart,\n NavigationEnd,\n Event\n} from '@angular/router';\nimport { Action, Selector, State, StateContext, StateToken, Store } from '@ngxs/store';\nimport {\n NavigationActionTiming,\n NgxsRouterPluginOptions,\n ɵNGXS_ROUTER_PLUGIN_OPTIONS\n} from '@ngxs/router-plugin/internals';\nimport { ReplaySubject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n Navigate,\n RouterAction,\n RouterCancel,\n RouterError,\n RouterNavigation,\n RouterDataResolved,\n RouterRequest,\n RouterNavigated\n} from './router.actions';\nimport { RouterStateSerializer } from './serializer';\n\nexport interface RouterStateModel<T = RouterStateSnapshot> {\n state?: T;\n navigationId?: number;\n trigger: RouterTrigger;\n}\n\nexport type RouterTrigger =\n | 'none'\n | 'router'\n | 'store'\n // The `devtools` trigger means that the state change has been triggered by Redux DevTools (e.g. when the time-traveling is used).\n | 'devtools';\n\n// NGXS doesn't permit untyped selectors, such as `select(RouterState)`,\n// as the `RouterState` class itself lacks type information. Therefore,\n// the following state token must replace `RouterState`.\nexport const ROUTER_STATE_TOKEN = new StateToken<RouterStateModel>('router');\n\n@State<RouterStateModel>({\n name: ROUTER_STATE_TOKEN,\n defaults: {\n state: undefined,\n navigationId: undefined,\n trigger: 'none'\n }\n})\n@Injectable()\nexport class RouterState implements OnDestroy {\n /**\n * Determines how navigation was performed by the `RouterState` itself\n * or outside via `new Navigate(...)`\n */\n private _trigger: RouterTrigger = 'none';\n\n /**\n * That's the serialized state from the `Router` class\n */\n private _routerState: RouterStateSnapshot | null = null;\n\n /**\n * That's the value of the `RouterState` state\n */\n private _storeState: RouterStateModel | null = null;\n\n private _lastEvent: Event | null = null;\n\n private _options: NgxsRouterPluginOptions | null = null;\n\n private _destroy$ = new ReplaySubject<void>(1);\n\n @Selector()\n static state<T = RouterStateSnapshot>(state: RouterStateModel<T>) {\n // The `state` is optional if the selector is invoked before the router\n // state is registered in NGXS.\n return state?.state;\n }\n\n @Selector()\n static url(state: RouterStateModel): string | undefined {\n return state?.state?.url;\n }\n\n constructor(\n private _store: Store,\n private _router: Router,\n private _serializer: RouterStateSerializer<RouterStateSnapshot>,\n private _ngZone: NgZone,\n injector: Injector\n ) {\n // Note: do not use `@Inject` since it fails on lower versions of Angular with Jest\n // integration, it cannot resolve the token provider.\n this._options = injector.get(ɵNGXS_ROUTER_PLUGIN_OPTIONS, null);\n this._setUpStoreListener();\n this._setUpRouterEventsListener();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n @Action(Navigate)\n navigate(_: StateContext<RouterStateModel>, action: Navigate) {\n return this._ngZone.run(() =>\n this._router.navigate(action.path, {\n queryParams: action.queryParams,\n ...action.extras\n })\n );\n }\n\n @Action([\n RouterRequest<RouterStateSnapshot>,\n RouterNavigation<RouterStateSnapshot>,\n RouterError<RouterStateModel, RouterStateSnapshot>,\n RouterCancel<RouterStateModel, RouterStateSnapshot>,\n RouterDataResolved<RouterStateSnapshot>,\n RouterNavigated<RouterStateSnapshot>\n ])\n angularRouterAction(\n ctx: StateContext<RouterStateModel>,\n action: RouterAction<RouterStateModel, RouterStateSnapshot>\n ): void {\n ctx.setState({\n trigger: action.trigger,\n state: action.routerState,\n navigationId: action.event.id\n });\n }\n\n private _setUpStoreListener(): void {\n const routerState$ = this._store\n .select(ROUTER_STATE_TOKEN)\n .pipe(takeUntil(this._destroy$));\n routerState$.subscribe((state: RouterStateModel | undefined) => {\n this._navigateIfNeeded(state);\n });\n }\n\n private _navigateIfNeeded(routerState: RouterStateModel | undefined): void {\n if (routerState && routerState.trigger === 'devtools') {\n this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);\n }\n\n const canSkipNavigation =\n !this._storeState ||\n !this._storeState.state ||\n !routerState ||\n routerState.trigger === 'router' ||\n this._router.url === this._storeState.state.url ||\n this._lastEvent instanceof NavigationStart;\n\n if (canSkipNavigation) {\n return;\n }\n\n this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);\n this._trigger = 'store';\n this._ngZone.run(() => this._router.navigateByUrl(this._storeState!.state!.url));\n }\n\n private _setUpRouterEventsListener(): void {\n const dispatchRouterNavigationLate =\n this._options != null &&\n this._options.navigationActionTiming === NavigationActionTiming.PostActivation;\n\n let lastRoutesRecognized: RoutesRecognized;\n\n const events$ = this._router.events.pipe(takeUntil(this._destroy$));\n events$.subscribe(event => {\n this._lastEvent = event;\n\n if (event instanceof NavigationStart) {\n this._navigationStart(event);\n } else if (event instanceof RoutesRecognized) {\n lastRoutesRecognized = event;\n if (!dispatchRouterNavigationLate && this._trigger !== 'store') {\n this._dispatchRouterNavigation(lastRoutesRecognized);\n }\n } else if (event instanceof ResolveEnd) {\n this._dispatchRouterDataResolved(event);\n } else if (event instanceof NavigationCancel) {\n this._dispatchRouterCancel(event);\n this._reset();\n } else if (event instanceof NavigationError) {\n this._dispatchRouterError(event);\n this._reset();\n } else if (event instanceof NavigationEnd) {\n if (this._trigger !== 'store') {\n if (dispatchRouterNavigationLate) {\n this._dispatchRouterNavigation(lastRoutesRecognized);\n }\n this._dispatchRouterNavigated(event);\n }\n this._reset();\n }\n });\n }\n\n /** Reacts to `NavigationStart`. */\n private _navigationStart(event: NavigationStart): void {\n this._routerState = this._serializer.serialize(this._router.routerState.snapshot);\n\n if (this._trigger !== 'none') {\n this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);\n this._dispatchRouterAction(new RouterRequest(this._routerState, event, this._trigger));\n }\n }\n\n /** Reacts to `ResolveEnd`. */\n private _dispatchRouterDataResolved(event: ResolveEnd): void {\n const routerState = this._serializer.serialize(event.state);\n this._dispatchRouterAction(new RouterDataResolved(routerState, event, this._trigger));\n }\n\n /** Reacts to `RoutesRecognized` or `NavigationEnd`, depends on the `navigationActionTiming`. */\n private _dispatchRouterNavigation(lastRoutesRecognized: RoutesRecognized): void {\n const nextRouterState = this._serializer.serialize(lastRoutesRecognized.state);\n\n this._dispatchRouterAction(\n new RouterNavigation(\n nextRouterState,\n new RoutesRecognized(\n lastRoutesRecognized.id,\n lastRoutesRecognized.url,\n lastRoutesRecognized.urlAfterRedirects,\n nextRouterState\n ),\n this._trigger\n )\n );\n }\n\n /** Reacts to `NavigationCancel`. */\n private _dispatchRouterCancel(event: NavigationCancel): void {\n this._dispatchRouterAction(\n new RouterCancel(this._routerState!, this._storeState, event, this._trigger)\n );\n }\n\n /** Reacts to `NavigationEnd`. */\n private _dispatchRouterError(event: NavigationError): void {\n this._dispatchRouterAction(\n new RouterError(\n this._routerState!,\n this._storeState,\n new NavigationError(event.id, event.url, `${event}`),\n this._trigger\n )\n );\n }\n\n /** Reacts to `NavigationEnd`. */\n private _dispatchRouterNavigated(event: NavigationEnd): void {\n const routerState = this._serializer.serialize(this._router.routerState.snapshot);\n this._dispatchRouterAction(new RouterNavigated(routerState, event, this._trigger));\n }\n\n private _dispatchRouterAction<T>(action: RouterAction<T>): void {\n this._trigger = 'router';\n\n try {\n this._store.dispatch(action);\n } finally {\n this._trigger = 'none';\n }\n }\n\n private _reset(): void {\n this._trigger = 'none';\n this._storeState = null;\n this._routerState = null;\n }\n}\n","import {\n EnvironmentProviders,\n ModuleWithProviders,\n NgModule,\n makeEnvironmentProviders\n} from '@angular/core';\nimport { NgxsModule, provideStates } from '@ngxs/store';\nimport {\n NgxsRouterPluginOptions,\n ɵcreateRouterPluginOptions,\n ɵNGXS_ROUTER_PLUGIN_OPTIONS,\n ɵUSER_OPTIONS\n} from '@ngxs/router-plugin/internals';\n\nimport { RouterState } from './router.state';\nimport { DefaultRouterStateSerializer, RouterStateSerializer } from './serializer';\n\n@NgModule({\n imports: [NgxsModule.forFeature([RouterState])]\n})\nexport class NgxsRouterPluginModule {\n static forRoot(\n options?: NgxsRouterPluginOptions\n ): ModuleWithProviders<NgxsRouterPluginModule> {\n return {\n ngModule: NgxsRouterPluginModule,\n providers: [\n { provide: ɵUSER_OPTIONS, useValue: options },\n {\n provide: ɵNGXS_ROUTER_PLUGIN_OPTIONS,\n useFactory: ɵcreateRouterPluginOptions,\n deps: [ɵUSER_OPTIONS]\n },\n { provide: RouterStateSerializer, useClass: DefaultRouterStateSerializer }\n ]\n };\n }\n}\n\nexport function withNgxsRouterPlugin(options?: NgxsRouterPluginOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideStates([RouterState]),\n { provide: ɵUSER_OPTIONS, useValue: options },\n {\n provide: ɵNGXS_ROUTER_PLUGIN_OPTIONS,\n useFactory: ɵcreateRouterPluginOptions,\n deps: [ɵUSER_OPTIONS]\n },\n { provide: RouterStateSerializer, useClass: DefaultRouterStateSerializer }\n ]);\n}\n","/**\n * The public api for consumers of @ngxs/router-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ɵNGXS_ROUTER_PLUGIN_OPTIONS","i3.RouterStateSerializer","ɵUSER_OPTIONS","ɵcreateRouterPluginOptions"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './symbols';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export declare const enum NavigationActionTiming {
|
|
3
|
+
PreActivation = 1,
|
|
4
|
+
PostActivation = 2
|
|
5
|
+
}
|
|
6
|
+
export interface NgxsRouterPluginOptions {
|
|
7
|
+
navigationActionTiming?: NavigationActionTiming;
|
|
8
|
+
}
|
|
9
|
+
export declare const ɵUSER_OPTIONS: InjectionToken<NgxsRouterPluginOptions | undefined>;
|
|
10
|
+
export declare const ɵNGXS_ROUTER_PLUGIN_OPTIONS: InjectionToken<NgxsRouterPluginOptions>;
|
|
11
|
+
export declare function ɵcreateRouterPluginOptions(options: NgxsRouterPluginOptions | undefined): NgxsRouterPluginOptions;
|
package/package.json
CHANGED
|
@@ -1,23 +1,35 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "../../node_modules/ng-packagr/package.schema.json",
|
|
3
2
|
"name": "@ngxs/router-plugin",
|
|
4
3
|
"description": "router plugin for @ngxs/store",
|
|
5
|
-
"version": "
|
|
6
|
-
"sideEffects":
|
|
4
|
+
"version": "18.0.0-dev.master-f4c2c19",
|
|
5
|
+
"sideEffects": false,
|
|
7
6
|
"peerDependencies": {
|
|
8
|
-
"@
|
|
9
|
-
"@angular/
|
|
10
|
-
"@
|
|
7
|
+
"@angular/core": ">=16.0.0 <19.0.0",
|
|
8
|
+
"@angular/router": ">=16.0.0 <19.0.0",
|
|
9
|
+
"@ngxs/store": "^18.0.0 || ^18.0.0-dev",
|
|
11
10
|
"rxjs": ">=6.5.5"
|
|
12
11
|
},
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
"module": "fesm2022/ngxs-router-plugin.mjs",
|
|
13
|
+
"typings": "index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./index.d.ts",
|
|
20
|
+
"esm2022": "./esm2022/ngxs-router-plugin.mjs",
|
|
21
|
+
"esm": "./esm2022/ngxs-router-plugin.mjs",
|
|
22
|
+
"default": "./fesm2022/ngxs-router-plugin.mjs"
|
|
23
|
+
},
|
|
24
|
+
"./internals": {
|
|
25
|
+
"types": "./internals/index.d.ts",
|
|
26
|
+
"esm2022": "./esm2022/internals/ngxs-router-plugin-internals.mjs",
|
|
27
|
+
"esm": "./esm2022/internals/ngxs-router-plugin-internals.mjs",
|
|
28
|
+
"default": "./fesm2022/ngxs-router-plugin-internals.mjs"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
19
31
|
"dependencies": {
|
|
20
|
-
"tslib": "^2.
|
|
32
|
+
"tslib": "^2.3.0"
|
|
21
33
|
},
|
|
22
34
|
"repository": {
|
|
23
35
|
"type": "git",
|
|
@@ -63,4 +75,4 @@
|
|
|
63
75
|
"type": "opencollective",
|
|
64
76
|
"url": "https://opencollective.com/ngxs"
|
|
65
77
|
}
|
|
66
|
-
}
|
|
78
|
+
}
|
package/src/public_api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { NgxsRouterPluginModule } from './router.module';
|
|
2
|
-
export { RouterState, RouterStateModel } from './router.state';
|
|
1
|
+
export { NgxsRouterPluginModule, withNgxsRouterPlugin } from './router.module';
|
|
2
|
+
export { ROUTER_STATE_TOKEN, RouterState, RouterStateModel } from './router.state';
|
|
3
3
|
export { RouterStateSerializer, DefaultRouterStateSerializer, SerializedRouterStateSnapshot } from './serializer';
|
|
4
|
-
export { NavigationActionTiming, NgxsRouterPluginOptions } from './symbols';
|
|
5
4
|
export * from './router.actions';
|
|
5
|
+
export { NavigationActionTiming, NgxsRouterPluginOptions } from '@ngxs/router-plugin/internals';
|
package/src/router.actions.d.ts
CHANGED
|
@@ -80,4 +80,4 @@ export declare class RouterNavigated<T = RouterStateSnapshot> {
|
|
|
80
80
|
/**
|
|
81
81
|
* An union type of router actions.
|
|
82
82
|
*/
|
|
83
|
-
export
|
|
83
|
+
export type RouterAction<T, V = RouterStateSnapshot> = RouterRequest<V> | RouterNavigation<V> | RouterCancel<T, V> | RouterError<T, V> | RouterDataResolved<V> | RouterNavigated<V>;
|
package/src/router.module.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import { NgxsRouterPluginOptions } from '
|
|
1
|
+
import { EnvironmentProviders, ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import { NgxsRouterPluginOptions } from '@ngxs/router-plugin/internals';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@ngxs/store";
|
|
5
5
|
export declare class NgxsRouterPluginModule {
|
|
@@ -8,3 +8,4 @@ export declare class NgxsRouterPluginModule {
|
|
|
8
8
|
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxsRouterPluginModule, never, [typeof i1.ɵNgxsFeatureModule], never>;
|
|
9
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<NgxsRouterPluginModule>;
|
|
10
10
|
}
|
|
11
|
+
export declare function withNgxsRouterPlugin(options?: NgxsRouterPluginOptions): EnvironmentProviders;
|
package/src/router.state.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgZone, OnDestroy, Injector } from '@angular/core';
|
|
2
2
|
import { Router, RouterStateSnapshot } from '@angular/router';
|
|
3
|
-
import { StateContext, Store } from '@ngxs/store';
|
|
3
|
+
import { StateContext, StateToken, Store } from '@ngxs/store';
|
|
4
4
|
import { Navigate, RouterAction } from './router.actions';
|
|
5
5
|
import { RouterStateSerializer } from './serializer';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -9,7 +9,8 @@ export interface RouterStateModel<T = RouterStateSnapshot> {
|
|
|
9
9
|
navigationId?: number;
|
|
10
10
|
trigger: RouterTrigger;
|
|
11
11
|
}
|
|
12
|
-
export
|
|
12
|
+
export type RouterTrigger = 'none' | 'router' | 'store' | 'devtools';
|
|
13
|
+
export declare const ROUTER_STATE_TOKEN: StateToken<RouterStateModel<RouterStateSnapshot>>;
|
|
13
14
|
export declare class RouterState implements OnDestroy {
|
|
14
15
|
private _store;
|
|
15
16
|
private _router;
|
|
@@ -29,8 +30,8 @@ export declare class RouterState implements OnDestroy {
|
|
|
29
30
|
*/
|
|
30
31
|
private _storeState;
|
|
31
32
|
private _lastEvent;
|
|
32
|
-
private _subscription;
|
|
33
33
|
private _options;
|
|
34
|
+
private _destroy$;
|
|
34
35
|
static state<T = RouterStateSnapshot>(state: RouterStateModel<T>): T | undefined;
|
|
35
36
|
static url(state: RouterStateModel): string | undefined;
|
|
36
37
|
constructor(_store: Store, _router: Router, _serializer: RouterStateSerializer<RouterStateSnapshot>, _ngZone: NgZone, injector: Injector);
|