@ngxs/router-plugin 3.8.2 → 18.0.0-dev.master-56d8014

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/esm2022/internals/index.mjs +2 -0
  2. package/esm2022/internals/ngxs-router-plugin-internals.mjs +5 -0
  3. package/esm2022/internals/symbols.mjs +10 -0
  4. package/esm2022/src/public_api.mjs +5 -0
  5. package/esm2022/src/router.actions.mjs +85 -0
  6. package/esm2022/src/router.module.mjs +45 -0
  7. package/esm2022/src/router.state.mjs +231 -0
  8. package/esm2022/src/serializer.mjs +33 -0
  9. package/fesm2022/ngxs-router-plugin-internals.mjs +17 -0
  10. package/fesm2022/ngxs-router-plugin-internals.mjs.map +1 -0
  11. package/{fesm2015/ngxs-router-plugin.js → fesm2022/ngxs-router-plugin.mjs} +77 -62
  12. package/fesm2022/ngxs-router-plugin.mjs.map +1 -0
  13. package/internals/index.d.ts +1 -0
  14. package/internals/symbols.d.ts +11 -0
  15. package/package.json +26 -14
  16. package/src/public_api.d.ts +3 -3
  17. package/src/router.actions.d.ts +1 -1
  18. package/src/router.module.d.ts +3 -2
  19. package/src/router.state.d.ts +4 -3
  20. package/bundles/ngxs-router-plugin.umd.js +0 -903
  21. package/bundles/ngxs-router-plugin.umd.js.map +0 -1
  22. package/esm2015/src/public_api.js +0 -5
  23. package/esm2015/src/router.actions.js +0 -85
  24. package/esm2015/src/router.module.js +0 -33
  25. package/esm2015/src/router.state.js +0 -222
  26. package/esm2015/src/serializer.js +0 -32
  27. package/esm2015/src/symbols.js +0 -9
  28. package/fesm2015/ngxs-router-plugin.js.map +0 -1
  29. package/ngxs-router-plugin.d.ts +0 -5
  30. package/src/symbols.d.ts +0 -11
  31. /package/{esm2015/index.js → esm2022/index.mjs} +0 -0
  32. /package/{esm2015/ngxs-router-plugin.js → esm2022/ngxs-router-plugin.mjs} +0 -0
@@ -0,0 +1,2 @@
1
+ export * from './symbols';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9yb3V0ZXItcGx1Z2luL2ludGVybmFscy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N5bWJvbHMnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1yb3V0ZXItcGx1Z2luLWludGVybmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci1wbHVnaW4vaW50ZXJuYWxzL3NyYy9uZ3hzLXJvdXRlci1wbHVnaW4taW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
3
+ export const ɵUSER_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'USER_OPTIONS' : '', { providedIn: 'root', factory: () => undefined });
4
+ export const ɵNGXS_ROUTER_PLUGIN_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'NGXS_ROUTER_PLUGIN_OPTIONS' : '', { providedIn: 'root', factory: () => ({}) });
5
+ export function ɵcreateRouterPluginOptions(options) {
6
+ return {
7
+ navigationActionTiming: (options && options.navigationActionTiming) || 1 /* NavigationActionTiming.PreActivation */
8
+ };
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci1wbHVnaW4vaW50ZXJuYWxzL3NyYy9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0MsTUFBTSxXQUFXLEdBQUcsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQztBQVdsRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQzdDLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ2pDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQ2pELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FDM0QsV0FBVyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUMvQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FDNUMsQ0FBQztBQUVGLE1BQU0sVUFBVSwwQkFBMEIsQ0FDeEMsT0FBNEM7SUFFNUMsT0FBTztRQUNMLHNCQUFzQixFQUNwQixDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsc0JBQXNCLENBQUMsZ0RBQXdDO0tBQ3RGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XG5cbmNvbnN0IE5HX0RFVl9NT0RFID0gdHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlO1xuXG5leHBvcnQgY29uc3QgZW51bSBOYXZpZ2F0aW9uQWN0aW9uVGltaW5nIHtcbiAgUHJlQWN0aXZhdGlvbiA9IDEsXG4gIFBvc3RBY3RpdmF0aW9uID0gMlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5neHNSb3V0ZXJQbHVnaW5PcHRpb25zIHtcbiAgbmF2aWdhdGlvbkFjdGlvblRpbWluZz86IE5hdmlnYXRpb25BY3Rpb25UaW1pbmc7XG59XG5cbmV4cG9ydCBjb25zdCDJtVVTRVJfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3hzUm91dGVyUGx1Z2luT3B0aW9ucyB8IHVuZGVmaW5lZD4oXG4gIE5HX0RFVl9NT0RFID8gJ1VTRVJfT1BUSU9OUycgOiAnJyxcbiAgeyBwcm92aWRlZEluOiAncm9vdCcsIGZhY3Rvcnk6ICgpID0+IHVuZGVmaW5lZCB9XG4pO1xuXG5leHBvcnQgY29uc3QgybVOR1hTX1JPVVRFUl9QTFVHSU5fT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3hzUm91dGVyUGx1Z2luT3B0aW9ucz4oXG4gIE5HX0RFVl9NT0RFID8gJ05HWFNfUk9VVEVSX1BMVUdJTl9PUFRJT05TJyA6ICcnLFxuICB7IHByb3ZpZGVkSW46ICdyb290JywgZmFjdG9yeTogKCkgPT4gKHt9KSB9XG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gybVjcmVhdGVSb3V0ZXJQbHVnaW5PcHRpb25zKFxuICBvcHRpb25zOiBOZ3hzUm91dGVyUGx1Z2luT3B0aW9ucyB8IHVuZGVmaW5lZFxuKTogTmd4c1JvdXRlclBsdWdpbk9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIG5hdmlnYXRpb25BY3Rpb25UaW1pbmc6XG4gICAgICAob3B0aW9ucyAmJiBvcHRpb25zLm5hdmlnYXRpb25BY3Rpb25UaW1pbmcpIHx8IE5hdmlnYXRpb25BY3Rpb25UaW1pbmcuUHJlQWN0aXZhdGlvblxuICB9O1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ export { NgxsRouterPluginModule, withNgxsRouterPlugin } from './router.module';
2
+ export { ROUTER_STATE_TOKEN, RouterState } from './router.state';
3
+ export { RouterStateSerializer, DefaultRouterStateSerializer } from './serializer';
4
+ export * from './router.actions';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci1wbHVnaW4vc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUU3QixNQUFNLGNBQWMsQ0FBQztBQUN0QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTmd4c1JvdXRlclBsdWdpbk1vZHVsZSwgd2l0aE5neHNSb3V0ZXJQbHVnaW4gfSBmcm9tICcuL3JvdXRlci5tb2R1bGUnO1xuZXhwb3J0IHsgUk9VVEVSX1NUQVRFX1RPS0VOLCBSb3V0ZXJTdGF0ZSwgUm91dGVyU3RhdGVNb2RlbCB9IGZyb20gJy4vcm91dGVyLnN0YXRlJztcbmV4cG9ydCB7XG4gIFJvdXRlclN0YXRlU2VyaWFsaXplcixcbiAgRGVmYXVsdFJvdXRlclN0YXRlU2VyaWFsaXplcixcbiAgU2VyaWFsaXplZFJvdXRlclN0YXRlU25hcHNob3Rcbn0gZnJvbSAnLi9zZXJpYWxpemVyJztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyLmFjdGlvbnMnO1xuZXhwb3J0IHtcbiAgTmF2aWdhdGlvbkFjdGlvblRpbWluZyxcbiAgTmd4c1JvdXRlclBsdWdpbk9wdGlvbnNcbn0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbi9pbnRlcm5hbHMnO1xuIl19
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Public event api of the router
3
+ */
4
+ export class Navigate {
5
+ static { this.type = '[Router] Navigate'; }
6
+ constructor(path, queryParams, extras) {
7
+ this.path = path;
8
+ this.queryParams = queryParams;
9
+ this.extras = extras;
10
+ }
11
+ }
12
+ /**
13
+ *
14
+ * Angular Routers internal state events
15
+ *
16
+ */
17
+ /**
18
+ * An action dispatched when the router starts the navigation.
19
+ */
20
+ export class RouterRequest {
21
+ static { this.type = '[Router] RouterRequest'; }
22
+ constructor(routerState, event, trigger = 'none') {
23
+ this.routerState = routerState;
24
+ this.event = event;
25
+ this.trigger = trigger;
26
+ }
27
+ }
28
+ /**
29
+ * An action dispatched when the router navigates.
30
+ */
31
+ export class RouterNavigation {
32
+ static { this.type = '[Router] RouterNavigation'; }
33
+ constructor(routerState, event, trigger = 'none') {
34
+ this.routerState = routerState;
35
+ this.event = event;
36
+ this.trigger = trigger;
37
+ }
38
+ }
39
+ /**
40
+ * An action dispatched when the router cancel navigation.
41
+ */
42
+ export class RouterCancel {
43
+ static { this.type = '[Router] RouterCancel'; }
44
+ constructor(routerState, storeState, event, trigger = 'none') {
45
+ this.routerState = routerState;
46
+ this.storeState = storeState;
47
+ this.event = event;
48
+ this.trigger = trigger;
49
+ }
50
+ }
51
+ /**
52
+ * An action dispatched when the router errors.
53
+ */
54
+ export class RouterError {
55
+ static { this.type = '[Router] RouterError'; }
56
+ constructor(routerState, storeState, event, trigger = 'none') {
57
+ this.routerState = routerState;
58
+ this.storeState = storeState;
59
+ this.event = event;
60
+ this.trigger = trigger;
61
+ }
62
+ }
63
+ /**
64
+ * An action dispatched when the `ResolveEnd` event is triggered.
65
+ */
66
+ export class RouterDataResolved {
67
+ static { this.type = '[Router] RouterDataResolved'; }
68
+ constructor(routerState, event, trigger = 'none') {
69
+ this.routerState = routerState;
70
+ this.event = event;
71
+ this.trigger = trigger;
72
+ }
73
+ }
74
+ /**
75
+ * An action dispatched when the router navigation has been finished successfully.
76
+ */
77
+ export class RouterNavigated {
78
+ static { this.type = '[Router] RouterNavigated'; }
79
+ constructor(routerState, event, trigger = 'none') {
80
+ this.routerState = routerState;
81
+ this.event = event;
82
+ this.trigger = trigger;
83
+ }
84
+ }
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9yb3V0ZXItcGx1Z2luL3NyYy9yb3V0ZXIuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQTs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFRO2FBQ0gsU0FBSSxHQUFHLG1CQUFtQixDQUFDO0lBRTNDLFlBQ1MsSUFBVyxFQUNYLFdBQW9CLEVBQ3BCLE1BQXlCO1FBRnpCLFNBQUksR0FBSixJQUFJLENBQU87UUFDWCxnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtJQUMvQixDQUFDOztBQUdOOzs7O0dBSUc7QUFFSDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO2FBQ1IsU0FBSSxHQUFHLHdCQUF3QixDQUFDO0lBRWhELFlBQ1MsV0FBYyxFQUNkLEtBQXNCLEVBQ3RCLFVBQXlCLE1BQU07UUFGL0IsZ0JBQVcsR0FBWCxXQUFXLENBQUc7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUF3QjtJQUNyQyxDQUFDOztBQUdOOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjthQUNYLFNBQUksR0FBRywyQkFBMkIsQ0FBQztJQUVuRCxZQUNTLFdBQWMsRUFDZCxLQUF1QixFQUN2QixVQUF5QixNQUFNO1FBRi9CLGdCQUFXLEdBQVgsV0FBVyxDQUFHO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7SUFDckMsQ0FBQzs7QUFHTjs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO2FBQ1AsU0FBSSxHQUFHLHVCQUF1QixDQUFDO0lBRS9DLFlBQ1MsV0FBYyxFQUNkLFVBQWEsRUFDYixLQUF1QixFQUN2QixVQUF5QixNQUFNO1FBSC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFHO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBRztRQUNiLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQXdCO0lBQ3JDLENBQUM7O0FBR047O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVzthQUNOLFNBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUU5QyxZQUNTLFdBQWMsRUFDZCxVQUFhLEVBQ2IsS0FBc0IsRUFDdEIsVUFBeUIsTUFBTTtRQUgvQixnQkFBVyxHQUFYLFdBQVcsQ0FBRztRQUNkLGVBQVUsR0FBVixVQUFVLENBQUc7UUFDYixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUF3QjtJQUNyQyxDQUFDOztBQUdOOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjthQUNiLFNBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUVyRCxZQUNTLFdBQWMsRUFDZCxLQUFpQixFQUNqQixVQUF5QixNQUFNO1FBRi9CLGdCQUFXLEdBQVgsV0FBVyxDQUFHO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUF3QjtJQUNyQyxDQUFDOztBQUdOOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7YUFDVixTQUFJLEdBQUcsMEJBQTBCLENBQUM7SUFFbEQsWUFDUyxXQUFjLEVBQ2QsS0FBb0IsRUFDcEIsVUFBeUIsTUFBTTtRQUYvQixnQkFBVyxHQUFYLFdBQVcsQ0FBRztRQUNkLFVBQUssR0FBTCxLQUFLLENBQWU7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7SUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5hdmlnYXRpb25DYW5jZWwsXG4gIE5hdmlnYXRpb25FcnJvcixcbiAgTmF2aWdhdGlvbkV4dHJhcyxcbiAgUGFyYW1zLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBSb3V0ZXNSZWNvZ25pemVkLFxuICBSZXNvbHZlRW5kLFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIE5hdmlnYXRpb25FbmRcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgUm91dGVyVHJpZ2dlciB9IGZyb20gJy4vcm91dGVyLnN0YXRlJztcblxuLyoqXG4gKiBQdWJsaWMgZXZlbnQgYXBpIG9mIHRoZSByb3V0ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIE5hdmlnYXRlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1JvdXRlcl0gTmF2aWdhdGUnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwYXRoOiBhbnlbXSxcbiAgICBwdWJsaWMgcXVlcnlQYXJhbXM/OiBQYXJhbXMsXG4gICAgcHVibGljIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXNcbiAgKSB7fVxufVxuXG4vKipcbiAqXG4gKiBBbmd1bGFyIFJvdXRlcnMgaW50ZXJuYWwgc3RhdGUgZXZlbnRzXG4gKlxuICovXG5cbi8qKlxuICogQW4gYWN0aW9uIGRpc3BhdGNoZWQgd2hlbiB0aGUgcm91dGVyIHN0YXJ0cyB0aGUgbmF2aWdhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvdXRlclJlcXVlc3Q8VCA9IFJvdXRlclN0YXRlU25hcHNob3Q+IHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1JvdXRlcl0gUm91dGVyUmVxdWVzdCc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJvdXRlclN0YXRlOiBULFxuICAgIHB1YmxpYyBldmVudDogTmF2aWdhdGlvblN0YXJ0LFxuICAgIHB1YmxpYyB0cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnXG4gICkge31cbn1cblxuLyoqXG4gKiBBbiBhY3Rpb24gZGlzcGF0Y2hlZCB3aGVuIHRoZSByb3V0ZXIgbmF2aWdhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgUm91dGVyTmF2aWdhdGlvbjxUID0gUm91dGVyU3RhdGVTbmFwc2hvdD4ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbUm91dGVyXSBSb3V0ZXJOYXZpZ2F0aW9uJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcm91dGVyU3RhdGU6IFQsXG4gICAgcHVibGljIGV2ZW50OiBSb3V0ZXNSZWNvZ25pemVkLFxuICAgIHB1YmxpYyB0cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnXG4gICkge31cbn1cblxuLyoqXG4gKiBBbiBhY3Rpb24gZGlzcGF0Y2hlZCB3aGVuIHRoZSByb3V0ZXIgY2FuY2VsIG5hdmlnYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBSb3V0ZXJDYW5jZWw8VCwgViA9IFJvdXRlclN0YXRlU25hcHNob3Q+IHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1JvdXRlcl0gUm91dGVyQ2FuY2VsJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcm91dGVyU3RhdGU6IFYsXG4gICAgcHVibGljIHN0b3JlU3RhdGU6IFQsXG4gICAgcHVibGljIGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsLFxuICAgIHB1YmxpYyB0cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnXG4gICkge31cbn1cblxuLyoqXG4gKiBBbiBhY3Rpb24gZGlzcGF0Y2hlZCB3aGVuIHRoZSByb3V0ZXIgZXJyb3JzLlxuICovXG5leHBvcnQgY2xhc3MgUm91dGVyRXJyb3I8VCwgViA9IFJvdXRlclN0YXRlU25hcHNob3Q+IHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1JvdXRlcl0gUm91dGVyRXJyb3InO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByb3V0ZXJTdGF0ZTogVixcbiAgICBwdWJsaWMgc3RvcmVTdGF0ZTogVCxcbiAgICBwdWJsaWMgZXZlbnQ6IE5hdmlnYXRpb25FcnJvcixcbiAgICBwdWJsaWMgdHJpZ2dlcjogUm91dGVyVHJpZ2dlciA9ICdub25lJ1xuICApIHt9XG59XG5cbi8qKlxuICogQW4gYWN0aW9uIGRpc3BhdGNoZWQgd2hlbiB0aGUgYFJlc29sdmVFbmRgIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvdXRlckRhdGFSZXNvbHZlZDxUID0gUm91dGVyU3RhdGVTbmFwc2hvdD4ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbUm91dGVyXSBSb3V0ZXJEYXRhUmVzb2x2ZWQnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByb3V0ZXJTdGF0ZTogVCxcbiAgICBwdWJsaWMgZXZlbnQ6IFJlc29sdmVFbmQsXG4gICAgcHVibGljIHRyaWdnZXI6IFJvdXRlclRyaWdnZXIgPSAnbm9uZSdcbiAgKSB7fVxufVxuXG4vKipcbiAqIEFuIGFjdGlvbiBkaXNwYXRjaGVkIHdoZW4gdGhlIHJvdXRlciBuYXZpZ2F0aW9uIGhhcyBiZWVuIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvdXRlck5hdmlnYXRlZDxUID0gUm91dGVyU3RhdGVTbmFwc2hvdD4ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbUm91dGVyXSBSb3V0ZXJOYXZpZ2F0ZWQnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByb3V0ZXJTdGF0ZTogVCxcbiAgICBwdWJsaWMgZXZlbnQ6IE5hdmlnYXRpb25FbmQsXG4gICAgcHVibGljIHRyaWdnZXI6IFJvdXRlclRyaWdnZXIgPSAnbm9uZSdcbiAgKSB7fVxufVxuXG4vKipcbiAqIEFuIHVuaW9uIHR5cGUgb2Ygcm91dGVyIGFjdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlckFjdGlvbjxULCBWID0gUm91dGVyU3RhdGVTbmFwc2hvdD4gPVxuICB8IFJvdXRlclJlcXVlc3Q8Vj5cbiAgfCBSb3V0ZXJOYXZpZ2F0aW9uPFY+XG4gIHwgUm91dGVyQ2FuY2VsPFQsIFY+XG4gIHwgUm91dGVyRXJyb3I8VCwgVj5cbiAgfCBSb3V0ZXJEYXRhUmVzb2x2ZWQ8Vj5cbiAgfCBSb3V0ZXJOYXZpZ2F0ZWQ8Vj47XG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { NgModule, makeEnvironmentProviders } from '@angular/core';
2
+ import { NgxsModule, provideStates } from '@ngxs/store';
3
+ import { ɵcreateRouterPluginOptions, ɵNGXS_ROUTER_PLUGIN_OPTIONS, ɵUSER_OPTIONS } from '@ngxs/router-plugin/internals';
4
+ import { RouterState } from './router.state';
5
+ import { DefaultRouterStateSerializer, RouterStateSerializer } from './serializer';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngxs/store";
8
+ export class NgxsRouterPluginModule {
9
+ static forRoot(options) {
10
+ return {
11
+ ngModule: NgxsRouterPluginModule,
12
+ providers: [
13
+ { provide: ɵUSER_OPTIONS, useValue: options },
14
+ {
15
+ provide: ɵNGXS_ROUTER_PLUGIN_OPTIONS,
16
+ useFactory: ɵcreateRouterPluginOptions,
17
+ deps: [ɵUSER_OPTIONS]
18
+ },
19
+ { provide: RouterStateSerializer, useClass: DefaultRouterStateSerializer }
20
+ ]
21
+ };
22
+ }
23
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRouterPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: NgxsRouterPluginModule, imports: [i1.ɵNgxsFeatureModule] }); }
25
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRouterPluginModule, imports: [NgxsModule.forFeature([RouterState])] }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRouterPluginModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ imports: [NgxsModule.forFeature([RouterState])]
31
+ }]
32
+ }] });
33
+ export function withNgxsRouterPlugin(options) {
34
+ return makeEnvironmentProviders([
35
+ provideStates([RouterState]),
36
+ { provide: ɵUSER_OPTIONS, useValue: options },
37
+ {
38
+ provide: ɵNGXS_ROUTER_PLUGIN_OPTIONS,
39
+ useFactory: ɵcreateRouterPluginOptions,
40
+ deps: [ɵUSER_OPTIONS]
41
+ },
42
+ { provide: RouterStateSerializer, useClass: DefaultRouterStateSerializer }
43
+ ]);
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci1wbHVnaW4vc3JjL3JvdXRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFFBQVEsRUFDUix3QkFBd0IsRUFDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUVMLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNkLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBS25GLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FDWixPQUFpQztRQUVqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQzdDO29CQUNFLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFVBQVUsRUFBRSwwQkFBMEI7b0JBQ3RDLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDdEI7Z0JBQ0QsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFO2FBQzNFO1NBQ0YsQ0FBQztJQUNKLENBQUM7aUlBaEJVLHNCQUFzQjtrSUFBdEIsc0JBQXNCO2tJQUF0QixzQkFBc0IsWUFGdkIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDOzsyRkFFbkMsc0JBQXNCO2tCQUhsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2lCQUNoRDs7QUFvQkQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQWlDO0lBQ3BFLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7UUFDN0M7WUFDRSxPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFVBQVUsRUFBRSwwQkFBMEI7WUFDdEMsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQ3RCO1FBQ0QsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFO0tBQzNFLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVyc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNNb2R1bGUsIHByb3ZpZGVTdGF0ZXMgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQge1xuICBOZ3hzUm91dGVyUGx1Z2luT3B0aW9ucyxcbiAgybVjcmVhdGVSb3V0ZXJQbHVnaW5PcHRpb25zLFxuICDJtU5HWFNfUk9VVEVSX1BMVUdJTl9PUFRJT05TLFxuICDJtVVTRVJfT1BUSU9OU1xufSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFJvdXRlclN0YXRlIH0gZnJvbSAnLi9yb3V0ZXIuc3RhdGUnO1xuaW1wb3J0IHsgRGVmYXVsdFJvdXRlclN0YXRlU2VyaWFsaXplciwgUm91dGVyU3RhdGVTZXJpYWxpemVyIH0gZnJvbSAnLi9zZXJpYWxpemVyJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW05neHNNb2R1bGUuZm9yRmVhdHVyZShbUm91dGVyU3RhdGVdKV1cbn0pXG5leHBvcnQgY2xhc3MgTmd4c1JvdXRlclBsdWdpbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG9wdGlvbnM/OiBOZ3hzUm91dGVyUGx1Z2luT3B0aW9uc1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neHNSb3V0ZXJQbHVnaW5Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neHNSb3V0ZXJQbHVnaW5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiDJtVVTRVJfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IMm1TkdYU19ST1VURVJfUExVR0lOX09QVElPTlMsXG4gICAgICAgICAgdXNlRmFjdG9yeTogybVjcmVhdGVSb3V0ZXJQbHVnaW5PcHRpb25zLFxuICAgICAgICAgIGRlcHM6IFvJtVVTRVJfT1BUSU9OU11cbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXIsIHVzZUNsYXNzOiBEZWZhdWx0Um91dGVyU3RhdGVTZXJpYWxpemVyIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTmd4c1JvdXRlclBsdWdpbihvcHRpb25zPzogTmd4c1JvdXRlclBsdWdpbk9wdGlvbnMpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHByb3ZpZGVTdGF0ZXMoW1JvdXRlclN0YXRlXSksXG4gICAgeyBwcm92aWRlOiDJtVVTRVJfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiDJtU5HWFNfUk9VVEVSX1BMVUdJTl9PUFRJT05TLFxuICAgICAgdXNlRmFjdG9yeTogybVjcmVhdGVSb3V0ZXJQbHVnaW5PcHRpb25zLFxuICAgICAgZGVwczogW8m1VVNFUl9PUFRJT05TXVxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXIsIHVzZUNsYXNzOiBEZWZhdWx0Um91dGVyU3RhdGVTZXJpYWxpemVyIH1cbiAgXSk7XG59XG4iXX0=
@@ -0,0 +1,231 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { NgZone, Injectable, Injector } from '@angular/core';
3
+ import { NavigationCancel, NavigationError, Router, RoutesRecognized, ResolveEnd, NavigationStart, NavigationEnd } from '@angular/router';
4
+ import { Action, Selector, State, StateToken, Store } from '@ngxs/store';
5
+ import { ɵNGXS_ROUTER_PLUGIN_OPTIONS } from '@ngxs/router-plugin/internals';
6
+ import { ReplaySubject } from 'rxjs';
7
+ import { takeUntil } from 'rxjs/operators';
8
+ import { Navigate, RouterCancel, RouterError, RouterNavigation, RouterDataResolved, RouterRequest, RouterNavigated } from './router.actions';
9
+ import { RouterStateSerializer } from './serializer';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ngxs/store";
12
+ import * as i2 from "@angular/router";
13
+ import * as i3 from "./serializer";
14
+ // NGXS doesn't permit untyped selectors, such as `select(RouterState)`,
15
+ // as the `RouterState` class itself lacks type information. Therefore,
16
+ // the following state token must replace `RouterState`.
17
+ export const ROUTER_STATE_TOKEN = new StateToken('router');
18
+ let RouterState = class RouterState {
19
+ static state(state) {
20
+ // The `state` is optional if the selector is invoked before the router
21
+ // state is registered in NGXS.
22
+ return state?.state;
23
+ }
24
+ static url(state) {
25
+ return state?.state?.url;
26
+ }
27
+ constructor(_store, _router, _serializer, _ngZone, injector) {
28
+ this._store = _store;
29
+ this._router = _router;
30
+ this._serializer = _serializer;
31
+ this._ngZone = _ngZone;
32
+ /**
33
+ * Determines how navigation was performed by the `RouterState` itself
34
+ * or outside via `new Navigate(...)`
35
+ */
36
+ this._trigger = 'none';
37
+ /**
38
+ * That's the serialized state from the `Router` class
39
+ */
40
+ this._routerState = null;
41
+ /**
42
+ * That's the value of the `RouterState` state
43
+ */
44
+ this._storeState = null;
45
+ this._lastEvent = null;
46
+ this._options = null;
47
+ this._destroy$ = new ReplaySubject(1);
48
+ // Note: do not use `@Inject` since it fails on lower versions of Angular with Jest
49
+ // integration, it cannot resolve the token provider.
50
+ this._options = injector.get(ɵNGXS_ROUTER_PLUGIN_OPTIONS, null);
51
+ this._setUpStoreListener();
52
+ this._setUpRouterEventsListener();
53
+ }
54
+ ngOnDestroy() {
55
+ this._destroy$.next();
56
+ }
57
+ navigate(_, action) {
58
+ return this._ngZone.run(() => this._router.navigate(action.path, {
59
+ queryParams: action.queryParams,
60
+ ...action.extras
61
+ }));
62
+ }
63
+ angularRouterAction(ctx, action) {
64
+ ctx.setState({
65
+ trigger: action.trigger,
66
+ state: action.routerState,
67
+ navigationId: action.event.id
68
+ });
69
+ }
70
+ _setUpStoreListener() {
71
+ const routerState$ = this._store
72
+ .select(ROUTER_STATE_TOKEN)
73
+ .pipe(takeUntil(this._destroy$));
74
+ routerState$.subscribe((state) => {
75
+ this._navigateIfNeeded(state);
76
+ });
77
+ }
78
+ _navigateIfNeeded(routerState) {
79
+ if (routerState && routerState.trigger === 'devtools') {
80
+ this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);
81
+ }
82
+ const canSkipNavigation = !this._storeState ||
83
+ !this._storeState.state ||
84
+ !routerState ||
85
+ routerState.trigger === 'router' ||
86
+ this._router.url === this._storeState.state.url ||
87
+ this._lastEvent instanceof NavigationStart;
88
+ if (canSkipNavigation) {
89
+ return;
90
+ }
91
+ this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);
92
+ this._trigger = 'store';
93
+ this._ngZone.run(() => this._router.navigateByUrl(this._storeState.state.url));
94
+ }
95
+ _setUpRouterEventsListener() {
96
+ const dispatchRouterNavigationLate = this._options != null &&
97
+ this._options.navigationActionTiming === 2 /* NavigationActionTiming.PostActivation */;
98
+ let lastRoutesRecognized;
99
+ const events$ = this._router.events.pipe(takeUntil(this._destroy$));
100
+ events$.subscribe(event => {
101
+ this._lastEvent = event;
102
+ if (event instanceof NavigationStart) {
103
+ this._navigationStart(event);
104
+ }
105
+ else if (event instanceof RoutesRecognized) {
106
+ lastRoutesRecognized = event;
107
+ if (!dispatchRouterNavigationLate && this._trigger !== 'store') {
108
+ this._dispatchRouterNavigation(lastRoutesRecognized);
109
+ }
110
+ }
111
+ else if (event instanceof ResolveEnd) {
112
+ this._dispatchRouterDataResolved(event);
113
+ }
114
+ else if (event instanceof NavigationCancel) {
115
+ this._dispatchRouterCancel(event);
116
+ this._reset();
117
+ }
118
+ else if (event instanceof NavigationError) {
119
+ this._dispatchRouterError(event);
120
+ this._reset();
121
+ }
122
+ else if (event instanceof NavigationEnd) {
123
+ if (this._trigger !== 'store') {
124
+ if (dispatchRouterNavigationLate) {
125
+ this._dispatchRouterNavigation(lastRoutesRecognized);
126
+ }
127
+ this._dispatchRouterNavigated(event);
128
+ }
129
+ this._reset();
130
+ }
131
+ });
132
+ }
133
+ /** Reacts to `NavigationStart`. */
134
+ _navigationStart(event) {
135
+ this._routerState = this._serializer.serialize(this._router.routerState.snapshot);
136
+ if (this._trigger !== 'none') {
137
+ this._storeState = this._store.selectSnapshot(ROUTER_STATE_TOKEN);
138
+ this._dispatchRouterAction(new RouterRequest(this._routerState, event, this._trigger));
139
+ }
140
+ }
141
+ /** Reacts to `ResolveEnd`. */
142
+ _dispatchRouterDataResolved(event) {
143
+ const routerState = this._serializer.serialize(event.state);
144
+ this._dispatchRouterAction(new RouterDataResolved(routerState, event, this._trigger));
145
+ }
146
+ /** Reacts to `RoutesRecognized` or `NavigationEnd`, depends on the `navigationActionTiming`. */
147
+ _dispatchRouterNavigation(lastRoutesRecognized) {
148
+ const nextRouterState = this._serializer.serialize(lastRoutesRecognized.state);
149
+ this._dispatchRouterAction(new RouterNavigation(nextRouterState, new RoutesRecognized(lastRoutesRecognized.id, lastRoutesRecognized.url, lastRoutesRecognized.urlAfterRedirects, nextRouterState), this._trigger));
150
+ }
151
+ /** Reacts to `NavigationCancel`. */
152
+ _dispatchRouterCancel(event) {
153
+ this._dispatchRouterAction(new RouterCancel(this._routerState, this._storeState, event, this._trigger));
154
+ }
155
+ /** Reacts to `NavigationEnd`. */
156
+ _dispatchRouterError(event) {
157
+ this._dispatchRouterAction(new RouterError(this._routerState, this._storeState, new NavigationError(event.id, event.url, `${event}`), this._trigger));
158
+ }
159
+ /** Reacts to `NavigationEnd`. */
160
+ _dispatchRouterNavigated(event) {
161
+ const routerState = this._serializer.serialize(this._router.routerState.snapshot);
162
+ this._dispatchRouterAction(new RouterNavigated(routerState, event, this._trigger));
163
+ }
164
+ _dispatchRouterAction(action) {
165
+ this._trigger = 'router';
166
+ try {
167
+ this._store.dispatch(action);
168
+ }
169
+ finally {
170
+ this._trigger = 'none';
171
+ }
172
+ }
173
+ _reset() {
174
+ this._trigger = 'none';
175
+ this._storeState = null;
176
+ this._routerState = null;
177
+ }
178
+ /** @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: i3.RouterStateSerializer }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
179
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RouterState }); }
180
+ };
181
+ __decorate([
182
+ Action(Navigate),
183
+ __metadata("design:type", Function),
184
+ __metadata("design:paramtypes", [Object, Navigate]),
185
+ __metadata("design:returntype", void 0)
186
+ ], RouterState.prototype, "navigate", null);
187
+ __decorate([
188
+ Action([
189
+ (RouterRequest),
190
+ (RouterNavigation),
191
+ (RouterError),
192
+ (RouterCancel),
193
+ (RouterDataResolved),
194
+ (RouterNavigated)
195
+ ]),
196
+ __metadata("design:type", Function),
197
+ __metadata("design:paramtypes", [Object, Object]),
198
+ __metadata("design:returntype", void 0)
199
+ ], RouterState.prototype, "angularRouterAction", null);
200
+ __decorate([
201
+ Selector(),
202
+ __metadata("design:type", Function),
203
+ __metadata("design:paramtypes", [Object]),
204
+ __metadata("design:returntype", void 0)
205
+ ], RouterState, "state", null);
206
+ __decorate([
207
+ Selector(),
208
+ __metadata("design:type", Function),
209
+ __metadata("design:paramtypes", [Object]),
210
+ __metadata("design:returntype", Object)
211
+ ], RouterState, "url", null);
212
+ RouterState = __decorate([
213
+ State({
214
+ name: ROUTER_STATE_TOKEN,
215
+ defaults: {
216
+ state: undefined,
217
+ navigationId: undefined,
218
+ trigger: 'none'
219
+ }
220
+ }),
221
+ __metadata("design:paramtypes", [Store,
222
+ Router,
223
+ RouterStateSerializer,
224
+ NgZone,
225
+ Injector])
226
+ ], RouterState);
227
+ export { RouterState };
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RouterState, decorators: [{
229
+ type: Injectable
230
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i3.RouterStateSerializer }, { type: i0.NgZone }, { type: i0.Injector }], propDecorators: { navigate: [], angularRouterAction: [] } });
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyLXBsdWdpbi9zcmMvcm91dGVyLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsZUFBZSxFQUNmLGFBQWEsRUFFZCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RixPQUFPLEVBR0wsMkJBQTJCLEVBQzVCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUNMLFFBQVEsRUFFUixZQUFZLEVBQ1osV0FBVyxFQUNYLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBZXJELHdFQUF3RTtBQUN4RSx1RUFBdUU7QUFDdkUsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFtQixRQUFRLENBQUMsQ0FBQztBQVd0RSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBd0JmLEFBQVAsTUFBTSxDQUFDLEtBQUssQ0FBMEIsS0FBMEI7UUFDOUQsdUVBQXVFO1FBQ3ZFLCtCQUErQjtRQUMvQixPQUFPLEtBQUss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QUFtRCxDQUFBO1FBQ25ELENBQUEsa0JBQXVDLENBQUE7UUFDdkMsQ0FBQSxlQUFvQyxDQUFBO0tBQ3JDLENBQUM7Ozs7c0RBVUQ7QUF4RE07SUFETixRQUFRLEVBQUU7Ozs7OEJBS1Y7QUFHTTtJQUROLFFBQVEsRUFBRTs7Ozs0QkFHVjtBQWpDVSxXQUFXO0lBVHZCLEtBQUssQ0FBbUI7UUFDdkIsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixRQUFRLEVBQUU7WUFDUixLQUFLLEVBQUUsU0FBUztZQUNoQixZQUFZLEVBQUUsU0FBUztZQUN2QixPQUFPLEVBQUUsTUFBTTtTQUNoQjtLQUNGLENBQUM7cUNBc0NrQixLQUFLO1FBQ0osTUFBTTtRQUNGLHFCQUFxQjtRQUN6QixNQUFNO1FBQ2IsUUFBUTtHQXhDVCxXQUFXLENBaU92Qjs7MkZBak9ZLFdBQVc7a0JBRHZCLFVBQVU7K0tBdURULFFBQVEsTUFpQlIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdab25lLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBOYXZpZ2F0aW9uQ2FuY2VsLFxuICBOYXZpZ2F0aW9uRXJyb3IsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgUm91dGVzUmVjb2duaXplZCxcbiAgUmVzb2x2ZUVuZCxcbiAgTmF2aWdhdGlvblN0YXJ0LFxuICBOYXZpZ2F0aW9uRW5kLFxuICBFdmVudFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9uLCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCwgU3RhdGVUb2tlbiwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQge1xuICBOYXZpZ2F0aW9uQWN0aW9uVGltaW5nLFxuICBOZ3hzUm91dGVyUGx1Z2luT3B0aW9ucyxcbiAgybVOR1hTX1JPVVRFUl9QTFVHSU5fT1BUSU9OU1xufSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luL2ludGVybmFscyc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIE5hdmlnYXRlLFxuICBSb3V0ZXJBY3Rpb24sXG4gIFJvdXRlckNhbmNlbCxcbiAgUm91dGVyRXJyb3IsXG4gIFJvdXRlck5hdmlnYXRpb24sXG4gIFJvdXRlckRhdGFSZXNvbHZlZCxcbiAgUm91dGVyUmVxdWVzdCxcbiAgUm91dGVyTmF2aWdhdGVkXG59IGZyb20gJy4vcm91dGVyLmFjdGlvbnMnO1xuaW1wb3J0IHsgUm91dGVyU3RhdGVTZXJpYWxpemVyIH0gZnJvbSAnLi9zZXJpYWxpemVyJztcblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJTdGF0ZU1vZGVsPFQgPSBSb3V0ZXJTdGF0ZVNuYXBzaG90PiB7XG4gIHN0YXRlPzogVDtcbiAgbmF2aWdhdGlvbklkPzogbnVtYmVyO1xuICB0cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyO1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZXJUcmlnZ2VyID1cbiAgfCAnbm9uZSdcbiAgfCAncm91dGVyJ1xuICB8ICdzdG9yZSdcbiAgLy8gVGhlIGBkZXZ0b29sc2AgdHJpZ2dlciBtZWFucyB0aGF0IHRoZSBzdGF0ZSBjaGFuZ2UgaGFzIGJlZW4gdHJpZ2dlcmVkIGJ5IFJlZHV4IERldlRvb2xzIChlLmcuIHdoZW4gdGhlIHRpbWUtdHJhdmVsaW5nIGlzIHVzZWQpLlxuICB8ICdkZXZ0b29scyc7XG5cbi8vIE5HWFMgZG9lc24ndCBwZXJtaXQgdW50eXBlZCBzZWxlY3RvcnMsIHN1Y2ggYXMgYHNlbGVjdChSb3V0ZXJTdGF0ZSlgLFxuLy8gYXMgdGhlIGBSb3V0ZXJTdGF0ZWAgY2xhc3MgaXRzZWxmIGxhY2tzIHR5cGUgaW5mb3JtYXRpb24uIFRoZXJlZm9yZSxcbi8vIHRoZSBmb2xsb3dpbmcgc3RhdGUgdG9rZW4gbXVzdCByZXBsYWNlIGBSb3V0ZXJTdGF0ZWAuXG5leHBvcnQgY29uc3QgUk9VVEVSX1NUQVRFX1RPS0VOID0gbmV3IFN0YXRlVG9rZW48Um91dGVyU3RhdGVNb2RlbD4oJ3JvdXRlcicpO1xuXG5AU3RhdGU8Um91dGVyU3RhdGVNb2RlbD4oe1xuICBuYW1lOiBST1VURVJfU1RBVEVfVE9LRU4sXG4gIGRlZmF1bHRzOiB7XG4gICAgc3RhdGU6IHVuZGVmaW5lZCxcbiAgICBuYXZpZ2F0aW9uSWQ6IHVuZGVmaW5lZCxcbiAgICB0cmlnZ2VyOiAnbm9uZSdcbiAgfVxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSb3V0ZXJTdGF0ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGhvdyBuYXZpZ2F0aW9uIHdhcyBwZXJmb3JtZWQgYnkgdGhlIGBSb3V0ZXJTdGF0ZWAgaXRzZWxmXG4gICAqIG9yIG91dHNpZGUgdmlhIGBuZXcgTmF2aWdhdGUoLi4uKWBcbiAgICovXG4gIHByaXZhdGUgX3RyaWdnZXI6IFJvdXRlclRyaWdnZXIgPSAnbm9uZSc7XG5cbiAgLyoqXG4gICAqIFRoYXQncyB0aGUgc2VyaWFsaXplZCBzdGF0ZSBmcm9tIHRoZSBgUm91dGVyYCBjbGFzc1xuICAgKi9cbiAgcHJpdmF0ZSBfcm91dGVyU3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhhdCdzIHRoZSB2YWx1ZSBvZiB0aGUgYFJvdXRlclN0YXRlYCBzdGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfc3RvcmVTdGF0ZTogUm91dGVyU3RhdGVNb2RlbCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2xhc3RFdmVudDogRXZlbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9vcHRpb25zOiBOZ3hzUm91dGVyUGx1Z2luT3B0aW9ucyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIHN0YXRlPFQgPSBSb3V0ZXJTdGF0ZVNuYXBzaG90PihzdGF0ZTogUm91dGVyU3RhdGVNb2RlbDxUPikge1xuICAgIC8vIFRoZSBgc3RhdGVgIGlzIG9wdGlvbmFsIGlmIHRoZSBzZWxlY3RvciBpcyBpbnZva2VkIGJlZm9yZSB0aGUgcm91dGVyXG4gICAgLy8gc3RhdGUgaXMgcmVnaXN0ZXJlZCBpbiBOR1hTLlxuICAgIHJldHVybiBzdGF0ZT8uc3RhdGU7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBzdGF0aWMgdXJsKHN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gc3RhdGU/LnN0YXRlPy51cmw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfc2VyaWFsaXplcjogUm91dGVyU3RhdGVTZXJpYWxpemVyPFJvdXRlclN0YXRlU25hcHNob3Q+LFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICAvLyBOb3RlOiBkbyBub3QgdXNlIGBASW5qZWN0YCBzaW5jZSBpdCBmYWlscyBvbiBsb3dlciB2ZXJzaW9ucyBvZiBBbmd1bGFyIHdpdGggSmVzdFxuICAgIC8vIGludGVncmF0aW9uLCBpdCBjYW5ub3QgcmVzb2x2ZSB0aGUgdG9rZW4gcHJvdmlkZXIuXG4gICAgdGhpcy5fb3B0aW9ucyA9IGluamVjdG9yLmdldCjJtU5HWFNfUk9VVEVSX1BMVUdJTl9PUFRJT05TLCBudWxsKTtcbiAgICB0aGlzLl9zZXRVcFN0b3JlTGlzdGVuZXIoKTtcbiAgICB0aGlzLl9zZXRVcFJvdXRlckV2ZW50c0xpc3RlbmVyKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBAQWN0aW9uKE5hdmlnYXRlKVxuICBuYXZpZ2F0ZShfOiBTdGF0ZUNvbnRleHQ8Um91dGVyU3RhdGVNb2RlbD4sIGFjdGlvbjogTmF2aWdhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5fbmdab25lLnJ1bigoKSA9PlxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKGFjdGlvbi5wYXRoLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBhY3Rpb24ucXVlcnlQYXJhbXMsXG4gICAgICAgIC4uLmFjdGlvbi5leHRyYXNcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oW1xuICAgIFJvdXRlclJlcXVlc3Q8Um91dGVyU3RhdGVTbmFwc2hvdD4sXG4gICAgUm91dGVyTmF2aWdhdGlvbjxSb3V0ZXJTdGF0ZVNuYXBzaG90PixcbiAgICBSb3V0ZXJFcnJvcjxSb3V0ZXJTdGF0ZU1vZGVsLCBSb3V0ZXJTdGF0ZVNuYXBzaG90PixcbiAgICBSb3V0ZXJDYW5jZWw8Um91dGVyU3RhdGVNb2RlbCwgUm91dGVyU3RhdGVTbmFwc2hvdD4sXG4gICAgUm91dGVyRGF0YVJlc29sdmVkPFJvdXRlclN0YXRlU25hcHNob3Q+LFxuICAgIFJvdXRlck5hdmlnYXRlZDxSb3V0ZXJTdGF0ZVNuYXBzaG90PlxuICBdKVxuICBhbmd1bGFyUm91dGVyQWN0aW9uKFxuICAgIGN0eDogU3RhdGVDb250ZXh0PFJvdXRlclN0YXRlTW9kZWw+LFxuICAgIGFjdGlvbjogUm91dGVyQWN0aW9uPFJvdXRlclN0YXRlTW9kZWwsIFJvdXRlclN0YXRlU25hcHNob3Q+XG4gICk6IHZvaWQge1xuICAgIGN0eC5zZXRTdGF0ZSh7XG4gICAgICB0cmlnZ2VyOiBhY3Rpb24udHJpZ2dlcixcbiAgICAgIHN0YXRlOiBhY3Rpb24ucm91dGVyU3RhdGUsXG4gICAgICBuYXZpZ2F0aW9uSWQ6IGFjdGlvbi5ldmVudC5pZFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VXBTdG9yZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdXRlclN0YXRlJCA9IHRoaXMuX3N0b3JlXG4gICAgICAuc2VsZWN0KFJPVVRFUl9TVEFURV9UT0tFTilcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuICAgIHJvdXRlclN0YXRlJC5zdWJzY3JpYmUoKHN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICB0aGlzLl9uYXZpZ2F0ZUlmTmVlZGVkKHN0YXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX25hdmlnYXRlSWZOZWVkZWQocm91dGVyU3RhdGU6IFJvdXRlclN0YXRlTW9kZWwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAocm91dGVyU3RhdGUgJiYgcm91dGVyU3RhdGUudHJpZ2dlciA9PT0gJ2RldnRvb2xzJykge1xuICAgICAgdGhpcy5fc3RvcmVTdGF0ZSA9IHRoaXMuX3N0b3JlLnNlbGVjdFNuYXBzaG90KFJPVVRFUl9TVEFURV9UT0tFTik7XG4gICAgfVxuXG4gICAgY29uc3QgY2FuU2tpcE5hdmlnYXRpb24gPVxuICAgICAgIXRoaXMuX3N0b3JlU3RhdGUgfHxcbiAgICAgICF0aGlzLl9zdG9yZVN0YXRlLnN0YXRlIHx8XG4gICAgICAhcm91dGVyU3RhdGUgfHxcbiAgICAgIHJvdXRlclN0YXRlLnRyaWdnZXIgPT09ICdyb3V0ZXInIHx8XG4gICAgICB0aGlzLl9yb3V0ZXIudXJsID09PSB0aGlzLl9zdG9yZVN0YXRlLnN0YXRlLnVybCB8fFxuICAgICAgdGhpcy5fbGFzdEV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0O1xuXG4gICAgaWYgKGNhblNraXBOYXZpZ2F0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RvcmVTdGF0ZSA9IHRoaXMuX3N0b3JlLnNlbGVjdFNuYXBzaG90KFJPVVRFUl9TVEFURV9UT0tFTik7XG4gICAgdGhpcy5fdHJpZ2dlciA9ICdzdG9yZSc7XG4gICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9zdG9yZVN0YXRlIS5zdGF0ZSEudXJsKSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRVcFJvdXRlckV2ZW50c0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGRpc3BhdGNoUm91dGVyTmF2aWdhdGlvbkxhdGUgPVxuICAgICAgdGhpcy5fb3B0aW9ucyAhPSBudWxsICYmXG4gICAgICB0aGlzLl9vcHRpb25zLm5hdmlnYXRpb25BY3Rpb25UaW1pbmcgPT09IE5hdmlnYXRpb25BY3Rpb25UaW1pbmcuUG9zdEFjdGl2YXRpb247XG5cbiAgICBsZXQgbGFzdFJvdXRlc1JlY29nbml6ZWQ6IFJvdXRlc1JlY29nbml6ZWQ7XG5cbiAgICBjb25zdCBldmVudHMkID0gdGhpcy5fcm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuICAgIGV2ZW50cyQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuX2xhc3RFdmVudCA9IGV2ZW50O1xuXG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvblN0YXJ0KGV2ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZXNSZWNvZ25pemVkKSB7XG4gICAgICAgIGxhc3RSb3V0ZXNSZWNvZ25pemVkID0gZXZlbnQ7XG4gICAgICAgIGlmICghZGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uTGF0ZSAmJiB0aGlzLl90cmlnZ2VyICE9PSAnc3RvcmUnKSB7XG4gICAgICAgICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uKGxhc3RSb3V0ZXNSZWNvZ25pemVkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJlc29sdmVFbmQpIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJEYXRhUmVzb2x2ZWQoZXZlbnQpO1xuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwpIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJDYW5jZWwoZXZlbnQpO1xuICAgICAgICB0aGlzLl9yZXNldCgpO1xuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICB0aGlzLl9kaXNwYXRjaFJvdXRlckVycm9yKGV2ZW50KTtcbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGlmICh0aGlzLl90cmlnZ2VyICE9PSAnc3RvcmUnKSB7XG4gICAgICAgICAgaWYgKGRpc3BhdGNoUm91dGVyTmF2aWdhdGlvbkxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyTmF2aWdhdGlvbihsYXN0Um91dGVzUmVjb2duaXplZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyTmF2aWdhdGVkKGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZXNldCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIFJlYWN0cyB0byBgTmF2aWdhdGlvblN0YXJ0YC4gKi9cbiAgcHJpdmF0ZSBfbmF2aWdhdGlvblN0YXJ0KGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpOiB2b2lkIHtcbiAgICB0aGlzLl9yb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKHRoaXMuX3JvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCk7XG5cbiAgICBpZiAodGhpcy5fdHJpZ2dlciAhPT0gJ25vbmUnKSB7XG4gICAgICB0aGlzLl9zdG9yZVN0YXRlID0gdGhpcy5fc3RvcmUuc2VsZWN0U25hcHNob3QoUk9VVEVSX1NUQVRFX1RPS0VOKTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyQWN0aW9uKG5ldyBSb3V0ZXJSZXF1ZXN0KHRoaXMuX3JvdXRlclN0YXRlLCBldmVudCwgdGhpcy5fdHJpZ2dlcikpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZWFjdHMgdG8gYFJlc29sdmVFbmRgLiAqL1xuICBwcml2YXRlIF9kaXNwYXRjaFJvdXRlckRhdGFSZXNvbHZlZChldmVudDogUmVzb2x2ZUVuZCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdXRlclN0YXRlID0gdGhpcy5fc2VyaWFsaXplci5zZXJpYWxpemUoZXZlbnQuc3RhdGUpO1xuICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyQWN0aW9uKG5ldyBSb3V0ZXJEYXRhUmVzb2x2ZWQocm91dGVyU3RhdGUsIGV2ZW50LCB0aGlzLl90cmlnZ2VyKSk7XG4gIH1cblxuICAvKiogUmVhY3RzIHRvIGBSb3V0ZXNSZWNvZ25pemVkYCBvciBgTmF2aWdhdGlvbkVuZGAsIGRlcGVuZHMgb24gdGhlIGBuYXZpZ2F0aW9uQWN0aW9uVGltaW5nYC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uKGxhc3RSb3V0ZXNSZWNvZ25pemVkOiBSb3V0ZXNSZWNvZ25pemVkKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dFJvdXRlclN0YXRlID0gdGhpcy5fc2VyaWFsaXplci5zZXJpYWxpemUobGFzdFJvdXRlc1JlY29nbml6ZWQuc3RhdGUpO1xuXG4gICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJBY3Rpb24oXG4gICAgICBuZXcgUm91dGVyTmF2aWdhdGlvbihcbiAgICAgICAgbmV4dFJvdXRlclN0YXRlLFxuICAgICAgICBuZXcgUm91dGVzUmVjb2duaXplZChcbiAgICAgICAgICBsYXN0Um91dGVzUmVjb2duaXplZC5pZCxcbiAgICAgICAgICBsYXN0Um91dGVzUmVjb2duaXplZC51cmwsXG4gICAgICAgICAgbGFzdFJvdXRlc1JlY29nbml6ZWQudXJsQWZ0ZXJSZWRpcmVjdHMsXG4gICAgICAgICAgbmV4dFJvdXRlclN0YXRlXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuX3RyaWdnZXJcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqIFJlYWN0cyB0byBgTmF2aWdhdGlvbkNhbmNlbGAuICovXG4gIHByaXZhdGUgX2Rpc3BhdGNoUm91dGVyQ2FuY2VsKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJBY3Rpb24oXG4gICAgICBuZXcgUm91dGVyQ2FuY2VsKHRoaXMuX3JvdXRlclN0YXRlISwgdGhpcy5fc3RvcmVTdGF0ZSwgZXZlbnQsIHRoaXMuX3RyaWdnZXIpXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBSZWFjdHMgdG8gYE5hdmlnYXRpb25FbmRgLiAqL1xuICBwcml2YXRlIF9kaXNwYXRjaFJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNwYXRjaFJvdXRlckFjdGlvbihcbiAgICAgIG5ldyBSb3V0ZXJFcnJvcihcbiAgICAgICAgdGhpcy5fcm91dGVyU3RhdGUhLFxuICAgICAgICB0aGlzLl9zdG9yZVN0YXRlLFxuICAgICAgICBuZXcgTmF2aWdhdGlvbkVycm9yKGV2ZW50LmlkLCBldmVudC51cmwsIGAke2V2ZW50fWApLFxuICAgICAgICB0aGlzLl90cmlnZ2VyXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBSZWFjdHMgdG8gYE5hdmlnYXRpb25FbmRgLiAqL1xuICBwcml2YXRlIF9kaXNwYXRjaFJvdXRlck5hdmlnYXRlZChldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdXRlclN0YXRlID0gdGhpcy5fc2VyaWFsaXplci5zZXJpYWxpemUodGhpcy5fcm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90KTtcbiAgICB0aGlzLl9kaXNwYXRjaFJvdXRlckFjdGlvbihuZXcgUm91dGVyTmF2aWdhdGVkKHJvdXRlclN0YXRlLCBldmVudCwgdGhpcy5fdHJpZ2dlcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSb3V0ZXJBY3Rpb248VD4oYWN0aW9uOiBSb3V0ZXJBY3Rpb248VD4pOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyID0gJ3JvdXRlcic7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goYWN0aW9uKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fdHJpZ2dlciA9ICdub25lJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyID0gJ25vbmUnO1xuICAgIHRoaXMuX3N0b3JlU3RhdGUgPSBudWxsO1xuICAgIHRoaXMuX3JvdXRlclN0YXRlID0gbnVsbDtcbiAgfVxufVxuIl19
@@ -0,0 +1,33 @@
1
+ export class RouterStateSerializer {
2
+ }
3
+ export class DefaultRouterStateSerializer {
4
+ serialize(routerState) {
5
+ return {
6
+ root: this.serializeRoute(routerState.root),
7
+ url: routerState.url
8
+ };
9
+ }
10
+ serializeRoute(route) {
11
+ const children = route.children.map(c => this.serializeRoute(c));
12
+ return {
13
+ url: route.url,
14
+ title: route.title,
15
+ params: route.params,
16
+ queryParams: route.queryParams,
17
+ fragment: route.fragment,
18
+ data: route.data,
19
+ outlet: route.outlet,
20
+ component: null,
21
+ routeConfig: null,
22
+ root: null,
23
+ parent: null,
24
+ firstChild: children[0],
25
+ children: children,
26
+ pathFromRoot: null,
27
+ paramMap: route.paramMap,
28
+ queryParamMap: route.queryParamMap,
29
+ toString: route.toString
30
+ };
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci1wbHVnaW4vc3JjL3NlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFnQixxQkFBcUI7Q0FFMUM7QUFPRCxNQUFNLE9BQU8sNEJBQTRCO0lBR3ZDLFNBQVMsQ0FBQyxXQUFnQztRQUN4QyxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUMzQyxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUc7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBNkI7UUFDbEQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsT0FBTztZQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUztZQUN6QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUk7WUFDakIsSUFBSSxFQUFFLElBQVc7WUFDakIsTUFBTSxFQUFFLElBQUk7WUFDWixVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN2QixRQUFRLEVBQUUsUUFBUTtZQUNsQixZQUFZLEVBQUUsSUFBVztZQUN6QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXI8VD4ge1xuICBhYnN0cmFjdCBzZXJpYWxpemUocm91dGVyU3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRSb3V0ZXJTdGF0ZVNuYXBzaG90IHtcbiAgcm9vdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdDtcbiAgdXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0Um91dGVyU3RhdGVTZXJpYWxpemVyXG4gIGltcGxlbWVudHMgUm91dGVyU3RhdGVTZXJpYWxpemVyPFNlcmlhbGl6ZWRSb3V0ZXJTdGF0ZVNuYXBzaG90Plxue1xuICBzZXJpYWxpemUocm91dGVyU3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBTZXJpYWxpemVkUm91dGVyU3RhdGVTbmFwc2hvdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvb3Q6IHRoaXMuc2VyaWFsaXplUm91dGUocm91dGVyU3RhdGUucm9vdCksXG4gICAgICB1cmw6IHJvdXRlclN0YXRlLnVybFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNlcmlhbGl6ZVJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSByb3V0ZS5jaGlsZHJlbi5tYXAoYyA9PiB0aGlzLnNlcmlhbGl6ZVJvdXRlKGMpKTtcbiAgICByZXR1cm4ge1xuICAgICAgdXJsOiByb3V0ZS51cmwsXG4gICAgICB0aXRsZTogcm91dGUudGl0bGUsXG4gICAgICBwYXJhbXM6IHJvdXRlLnBhcmFtcyxcbiAgICAgIHF1ZXJ5UGFyYW1zOiByb3V0ZS5xdWVyeVBhcmFtcyxcbiAgICAgIGZyYWdtZW50OiByb3V0ZS5mcmFnbWVudCEsXG4gICAgICBkYXRhOiByb3V0ZS5kYXRhLFxuICAgICAgb3V0bGV0OiByb3V0ZS5vdXRsZXQsXG4gICAgICBjb21wb25lbnQ6IG51bGwsXG4gICAgICByb3V0ZUNvbmZpZzogbnVsbCxcbiAgICAgIHJvb3Q6IG51bGwgYXMgYW55LFxuICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgZmlyc3RDaGlsZDogY2hpbGRyZW5bMF0sXG4gICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgICBwYXRoRnJvbVJvb3Q6IG51bGwgYXMgYW55LFxuICAgICAgcGFyYW1NYXA6IHJvdXRlLnBhcmFtTWFwLFxuICAgICAgcXVlcnlQYXJhbU1hcDogcm91dGUucXVlcnlQYXJhbU1hcCxcbiAgICAgIHRvU3RyaW5nOiByb3V0ZS50b1N0cmluZ1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { InjectionToken } from '@angular/core';
2
+
3
+ const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
4
+ const ɵUSER_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'USER_OPTIONS' : '', { providedIn: 'root', factory: () => undefined });
5
+ const ɵNGXS_ROUTER_PLUGIN_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'NGXS_ROUTER_PLUGIN_OPTIONS' : '', { providedIn: 'root', factory: () => ({}) });
6
+ function ɵcreateRouterPluginOptions(options) {
7
+ return {
8
+ navigationActionTiming: (options && options.navigationActionTiming) || 1 /* NavigationActionTiming.PreActivation */
9
+ };
10
+ }
11
+
12
+ /**
13
+ * Generated bundle index. Do not edit.
14
+ */
15
+
16
+ export { ɵNGXS_ROUTER_PLUGIN_OPTIONS, ɵUSER_OPTIONS, ɵcreateRouterPluginOptions };
17
+ //# sourceMappingURL=ngxs-router-plugin-internals.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngxs-router-plugin-internals.mjs","sources":["../../../packages/router-plugin/internals/src/symbols.ts","../../../packages/router-plugin/internals/src/ngxs-router-plugin-internals.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\ndeclare const ngDevMode: boolean;\n\nconst NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;\n\nexport const enum NavigationActionTiming {\n PreActivation = 1,\n PostActivation = 2\n}\n\nexport interface NgxsRouterPluginOptions {\n navigationActionTiming?: NavigationActionTiming;\n}\n\nexport const ɵUSER_OPTIONS = new InjectionToken<NgxsRouterPluginOptions | undefined>(\n NG_DEV_MODE ? 'USER_OPTIONS' : '',\n { providedIn: 'root', factory: () => undefined }\n);\n\nexport const ɵNGXS_ROUTER_PLUGIN_OPTIONS = new InjectionToken<NgxsRouterPluginOptions>(\n NG_DEV_MODE ? 'NGXS_ROUTER_PLUGIN_OPTIONS' : '',\n { providedIn: 'root', factory: () => ({}) }\n);\n\nexport function ɵcreateRouterPluginOptions(\n options: NgxsRouterPluginOptions | undefined\n): NgxsRouterPluginOptions {\n return {\n navigationActionTiming:\n (options && options.navigationActionTiming) || NavigationActionTiming.PreActivation\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAIA,MAAM,WAAW,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC;AAW3D,MAAM,aAAa,GAAG,IAAI,cAAc,CAC7C,WAAW,GAAG,cAAc,GAAG,EAAE,EACjC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,EAAE,EAChD;AAEK,MAAM,2BAA2B,GAAG,IAAI,cAAc,CAC3D,WAAW,GAAG,4BAA4B,GAAG,EAAE,EAC/C,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAC3C;AAEI,SAAU,0BAA0B,CACxC,OAA4C,EAAA;IAE5C,OAAO;QACL,sBAAsB,EACpB,CAAC,OAAO,IAAI,OAAO,CAAC,sBAAsB,KAAyC,CAAA;KACtF,CAAC;AACJ;;AChCA;;AAEG;;;;"}