@ngxs/router-plugin 18.1.5-dev.master-aa4dd85 → 18.1.5-dev.master-c73c22f

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.
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { NgZone, Injectable, Injector } from '@angular/core';
2
+ import { NgZone, Injectable, inject } from '@angular/core';
3
3
  import { NavigationCancel, NavigationError, Router, RoutesRecognized, ResolveEnd, NavigationStart, NavigationEnd } from '@angular/router';
4
4
  import { Action, createSelector, State, StateToken, Store } from '@ngxs/store';
5
5
  import { ɵNGXS_ROUTER_PLUGIN_OPTIONS } from '@ngxs/router-plugin/internals';
@@ -8,9 +8,6 @@ import { takeUntil } from 'rxjs/operators';
8
8
  import { Navigate, RouterCancel, RouterError, RouterNavigation, RouterDataResolved, RouterRequest, RouterNavigated } from './router.actions';
9
9
  import { RouterStateSerializer } from './serializer';
10
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
11
  // NGXS doesn't permit untyped selectors, such as `select(RouterState)`,
15
12
  // as the `RouterState` class itself lacks type information. Therefore,
16
13
  // the following state token must replace `RouterState`.
@@ -22,11 +19,11 @@ let RouterState = class RouterState {
22
19
  return state?.state;
23
20
  }); }
24
21
  static { this.url = createSelector([ROUTER_STATE_TOKEN], state => state?.state?.url); }
25
- constructor(_store, _router, _serializer, _ngZone, injector) {
26
- this._store = _store;
27
- this._router = _router;
28
- this._serializer = _serializer;
29
- this._ngZone = _ngZone;
22
+ constructor() {
23
+ this._store = inject(Store);
24
+ this._router = inject(Router);
25
+ this._serializer = inject(RouterStateSerializer);
26
+ this._ngZone = inject(NgZone);
30
27
  /**
31
28
  * Determines how navigation was performed by the `RouterState` itself
32
29
  * or outside via `new Navigate(...)`
@@ -41,11 +38,8 @@ let RouterState = class RouterState {
41
38
  */
42
39
  this._storeState = null;
43
40
  this._lastEvent = null;
44
- this._options = null;
41
+ this._options = inject(ɵNGXS_ROUTER_PLUGIN_OPTIONS);
45
42
  this._destroy$ = new ReplaySubject(1);
46
- // Note: do not use `@Inject` since it fails on lower versions of Angular with Jest
47
- // integration, it cannot resolve the token provider.
48
- this._options = injector.get(ɵNGXS_ROUTER_PLUGIN_OPTIONS, null);
49
43
  this._setUpStoreListener();
50
44
  this._setUpRouterEventsListener();
51
45
  }
@@ -173,7 +167,7 @@ let RouterState = class RouterState {
173
167
  this._storeState = null;
174
168
  this._routerState = null;
175
169
  }
176
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterState, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i3.RouterStateSerializer }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
170
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
177
171
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterState }); }
178
172
  };
179
173
  __decorate([
@@ -204,14 +198,10 @@ RouterState = __decorate([
204
198
  trigger: 'none'
205
199
  }
206
200
  }),
207
- __metadata("design:paramtypes", [Store,
208
- Router,
209
- RouterStateSerializer,
210
- NgZone,
211
- Injector])
201
+ __metadata("design:paramtypes", [])
212
202
  ], RouterState);
213
203
  export { RouterState };
214
204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterState, decorators: [{
215
205
  type: Injectable
216
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i3.RouterStateSerializer }, { type: i0.NgZone }, { type: i0.Injector }], propDecorators: { navigate: [], angularRouterAction: [] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyLXBsdWdpbi9zcmMvcm91dGVyLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsZUFBZSxFQUNmLGFBQWEsRUFFZCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBZ0IsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RixPQUFPLEVBR0wsMkJBQTJCLEVBQzVCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUNMLFFBQVEsRUFFUixZQUFZLEVBQ1osV0FBVyxFQUNYLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBZXJELHdFQUF3RTtBQUN4RSx1RUFBdUU7QUFDdkUsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFtQixRQUFRLENBQUMsQ0FBQztBQVd0RSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO2FBdUJmLFVBQUssR0FBbUIsY0FBYyxDQUMzQyxDQUFDLGtCQUFrQixDQUFDLEVBQ3BCLENBQUMsS0FBNEMsRUFBRSxFQUFFO1FBQy9DLHVF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QUFBLGFBQWtDLENBQUE7UUFDbEMsQ0FBQSxnQkFBcUMsQ0FBQTtRQUNyQyxDQUFBLFdBQWtELENBQUE7UUFDbEQsQ0FBQSxZQUFtRCxDQUFBO1FBQ25ELENBQUEsa0JBQXVDLENBQUE7UUFDdkMsQ0FBQSxlQUFvQyxDQUFBO0tBQ3JDLENBQUM7Ozs7c0RBVUQ7QUFsRlUsV0FBVztJQVR2QixLQUFLLENBQW1CO1FBQ3ZCLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsUUFBUSxFQUFFO1lBQ1IsS0FBSyxFQUFFLFNBQVM7WUFDaEIsWUFBWSxFQUFFLFNBQVM7WUFDdkIsT0FBTyxFQUFFLE1BQU07U0FDaEI7S0FDRixDQUFDO3FDQXdDa0IsS0FBSztRQUNKLE1BQU07UUFDRixxQkFBcUI7UUFDekIsTUFBTTtRQUNiLFFBQVE7R0ExQ1QsV0FBVyxDQW1PdkI7OzJGQW5PWSxXQUFXO2tCQUR2QixVQUFVOytLQXlEVCxRQUFRLE1BaUJSLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nWm9uZSwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTmF2aWdhdGlvbkNhbmNlbCxcbiAgTmF2aWdhdGlvbkVycm9yLFxuICBSb3V0ZXIsXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG4gIFJvdXRlc1JlY29nbml6ZWQsXG4gIFJlc29sdmVFbmQsXG4gIE5hdmlnYXRpb25TdGFydCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgRXZlbnRcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFjdGlvbiwgY3JlYXRlU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQsIFN0YXRlVG9rZW4sIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHtcbiAgTmF2aWdhdGlvbkFjdGlvblRpbWluZyxcbiAgTmd4c1JvdXRlclBsdWdpbk9wdGlvbnMsXG4gIMm1TkdYU19ST1VURVJfUExVR0lOX09QVElPTlNcbn0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbi9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBOYXZpZ2F0ZSxcbiAgUm91dGVyQWN0aW9uLFxuICBSb3V0ZXJDYW5jZWwsXG4gIFJvdXRlckVycm9yLFxuICBSb3V0ZXJOYXZpZ2F0aW9uLFxuICBSb3V0ZXJEYXRhUmVzb2x2ZWQsXG4gIFJvdXRlclJlcXVlc3QsXG4gIFJvdXRlck5hdmlnYXRlZFxufSBmcm9tICcuL3JvdXRlci5hY3Rpb25zJztcbmltcG9ydCB7IFJvdXRlclN0YXRlU2VyaWFsaXplciB9IGZyb20gJy4vc2VyaWFsaXplcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyU3RhdGVNb2RlbDxUID0gUm91dGVyU3RhdGVTbmFwc2hvdD4ge1xuICBzdGF0ZT86IFQ7XG4gIG5hdmlnYXRpb25JZD86IG51bWJlcjtcbiAgdHJpZ2dlcjogUm91dGVyVHJpZ2dlcjtcbn1cblxuZXhwb3J0IHR5cGUgUm91dGVyVHJpZ2dlciA9XG4gIHwgJ25vbmUnXG4gIHwgJ3JvdXRlcidcbiAgfCAnc3RvcmUnXG4gIC8vIFRoZSBgZGV2dG9vbHNgIHRyaWdnZXIgbWVhbnMgdGhhdCB0aGUgc3RhdGUgY2hhbmdlIGhhcyBiZWVuIHRyaWdnZXJlZCBieSBSZWR1eCBEZXZUb29scyAoZS5nLiB3aGVuIHRoZSB0aW1lLXRyYXZlbGluZyBpcyB1c2VkKS5cbiAgfCAnZGV2dG9vbHMnO1xuXG4vLyBOR1hTIGRvZXNuJ3QgcGVybWl0IHVudHlwZWQgc2VsZWN0b3JzLCBzdWNoIGFzIGBzZWxlY3QoUm91dGVyU3RhdGUpYCxcbi8vIGFzIHRoZSBgUm91dGVyU3RhdGVgIGNsYXNzIGl0c2VsZiBsYWNrcyB0eXBlIGluZm9ybWF0aW9uLiBUaGVyZWZvcmUsXG4vLyB0aGUgZm9sbG93aW5nIHN0YXRlIHRva2VuIG11c3QgcmVwbGFjZSBgUm91dGVyU3RhdGVgLlxuZXhwb3J0IGNvbnN0IFJPVVRFUl9TVEFURV9UT0tFTiA9IG5ldyBTdGF0ZVRva2VuPFJvdXRlclN0YXRlTW9kZWw+KCdyb3V0ZXInKTtcblxuQFN0YXRlPFJvdXRlclN0YXRlTW9kZWw+KHtcbiAgbmFtZTogUk9VVEVSX1NUQVRFX1RPS0VOLFxuICBkZWZhdWx0czoge1xuICAgIHN0YXRlOiB1bmRlZmluZWQsXG4gICAgbmF2aWdhdGlvbklkOiB1bmRlZmluZWQsXG4gICAgdHJpZ2dlcjogJ25vbmUnXG4gIH1cbn0pXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUm91dGVyU3RhdGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyBob3cgbmF2aWdhdGlvbiB3YXMgcGVyZm9ybWVkIGJ5IHRoZSBgUm91dGVyU3RhdGVgIGl0c2VsZlxuICAgKiBvciBvdXRzaWRlIHZpYSBgbmV3IE5hdmlnYXRlKC4uLilgXG4gICAqL1xuICBwcml2YXRlIF90cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnO1xuXG4gIC8qKlxuICAgKiBUaGF0J3MgdGhlIHNlcmlhbGl6ZWQgc3RhdGUgZnJvbSB0aGUgYFJvdXRlcmAgY2xhc3NcbiAgICovXG4gIHByaXZhdGUgX3JvdXRlclN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoYXQncyB0aGUgdmFsdWUgb2YgdGhlIGBSb3V0ZXJTdGF0ZWAgc3RhdGVcbiAgICovXG4gIHByaXZhdGUgX3N0b3JlU3RhdGU6IFJvdXRlclN0YXRlTW9kZWwgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9sYXN0RXZlbnQ6IEV2ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uczogTmd4c1JvdXRlclBsdWdpbk9wdGlvbnMgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuXG4gIHN0YXRpYyBzdGF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVTZWxlY3RvcihcbiAgICBbUk9VVEVSX1NUQVRFX1RPS0VOXSxcbiAgICAoc3RhdGU6IFJvdXRlclN0YXRlTW9kZWw8Um91dGVyU3RhdGVTbmFwc2hvdD4pID0+IHtcbiAgICAgIC8vIFRoZSBgc3RhdGVgIGlzIG9wdGlvbmFsIGlmIHRoZSBzZWxlY3RvciBpcyBpbnZva2VkIGJlZm9yZSB0aGUgcm91dGVyXG4gICAgICAvLyBzdGF0ZSBpcyByZWdpc3RlcmVkIGluIE5HWFMuXG4gICAgICByZXR1cm4gc3RhdGU/LnN0YXRlO1xuICAgIH1cbiAgKTtcblxuICBzdGF0aWMgdXJsID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVNlbGVjdG9yKFxuICAgIFtST1VURVJfU1RBVEVfVE9LRU5dLFxuICAgIHN0YXRlID0+IHN0YXRlPy5zdGF0ZT8udXJsXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX3NlcmlhbGl6ZXI6IFJvdXRlclN0YXRlU2VyaWFsaXplcjxSb3V0ZXJTdGF0ZVNuYXBzaG90PixcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgLy8gTm90ZTogZG8gbm90IHVzZSBgQEluamVjdGAgc2luY2UgaXQgZmFpbHMgb24gbG93ZXIgdmVyc2lvbnMgb2YgQW5ndWxhciB3aXRoIEplc3RcbiAgICAvLyBpbnRlZ3JhdGlvbiwgaXQgY2Fubm90IHJlc29sdmUgdGhlIHRva2VuIHByb3ZpZGVyLlxuICAgIHRoaXMuX29wdGlvbnMgPSBpbmplY3Rvci5nZXQoybVOR1hTX1JPVVRFUl9QTFVHSU5fT1BUSU9OUywgbnVsbCk7XG4gICAgdGhpcy5fc2V0VXBTdG9yZUxpc3RlbmVyKCk7XG4gICAgdGhpcy5fc2V0VXBSb3V0ZXJFdmVudHNMaXN0ZW5lcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgQEFjdGlvbihOYXZpZ2F0ZSlcbiAgbmF2aWdhdGUoXzogU3RhdGVDb250ZXh0PFJvdXRlclN0YXRlTW9kZWw+LCBhY3Rpb246IE5hdmlnYXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuX25nWm9uZS5ydW4oKCkgPT5cbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShhY3Rpb24ucGF0aCwge1xuICAgICAgICBxdWVyeVBhcmFtczogYWN0aW9uLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAuLi5hY3Rpb24uZXh0cmFzXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFtcbiAgICBSb3V0ZXJSZXF1ZXN0PFJvdXRlclN0YXRlU25hcHNob3Q+LFxuICAgIFJvdXRlck5hdmlnYXRpb248Um91dGVyU3RhdGVTbmFwc2hvdD4sXG4gICAgUm91dGVyRXJyb3I8Um91dGVyU3RhdGVNb2RlbCwgUm91dGVyU3RhdGVTbmFwc2hvdD4sXG4gICAgUm91dGVyQ2FuY2VsPFJvdXRlclN0YXRlTW9kZWwsIFJvdXRlclN0YXRlU25hcHNob3Q+LFxuICAgIFJvdXRlckRhdGFSZXNvbHZlZDxSb3V0ZXJTdGF0ZVNuYXBzaG90PixcbiAgICBSb3V0ZXJOYXZpZ2F0ZWQ8Um91dGVyU3RhdGVTbmFwc2hvdD5cbiAgXSlcbiAgYW5ndWxhclJvdXRlckFjdGlvbihcbiAgICBjdHg6IFN0YXRlQ29udGV4dDxSb3V0ZXJTdGF0ZU1vZGVsPixcbiAgICBhY3Rpb246IFJvdXRlckFjdGlvbjxSb3V0ZXJTdGF0ZU1vZGVsLCBSb3V0ZXJTdGF0ZVNuYXBzaG90PlxuICApOiB2b2lkIHtcbiAgICBjdHguc2V0U3RhdGUoe1xuICAgICAgdHJpZ2dlcjogYWN0aW9uLnRyaWdnZXIsXG4gICAgICBzdGF0ZTogYWN0aW9uLnJvdXRlclN0YXRlLFxuICAgICAgbmF2aWdhdGlvbklkOiBhY3Rpb24uZXZlbnQuaWRcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFVwU3RvcmVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZXJTdGF0ZSQgPSB0aGlzLl9zdG9yZVxuICAgICAgLnNlbGVjdChST1VURVJfU1RBVEVfVE9LRU4pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKTtcbiAgICByb3V0ZXJTdGF0ZSQuc3Vic2NyaWJlKChzdGF0ZTogUm91dGVyU3RhdGVNb2RlbCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgdGhpcy5fbmF2aWdhdGVJZk5lZWRlZChzdGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0ZUlmTmVlZGVkKHJvdXRlclN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKHJvdXRlclN0YXRlICYmIHJvdXRlclN0YXRlLnRyaWdnZXIgPT09ICdkZXZ0b29scycpIHtcbiAgICAgIHRoaXMuX3N0b3JlU3RhdGUgPSB0aGlzLl9zdG9yZS5zZWxlY3RTbmFwc2hvdChST1VURVJfU1RBVEVfVE9LRU4pO1xuICAgIH1cblxuICAgIGNvbnN0IGNhblNraXBOYXZpZ2F0aW9uID1cbiAgICAgICF0aGlzLl9zdG9yZVN0YXRlIHx8XG4gICAgICAhdGhpcy5fc3RvcmVTdGF0ZS5zdGF0ZSB8fFxuICAgICAgIXJvdXRlclN0YXRlIHx8XG4gICAgICByb3V0ZXJTdGF0ZS50cmlnZ2VyID09PSAncm91dGVyJyB8fFxuICAgICAgdGhpcy5fcm91dGVyLnVybCA9PT0gdGhpcy5fc3RvcmVTdGF0ZS5zdGF0ZS51cmwgfHxcbiAgICAgIHRoaXMuX2xhc3RFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydDtcblxuICAgIGlmIChjYW5Ta2lwTmF2aWdhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0b3JlU3RhdGUgPSB0aGlzLl9zdG9yZS5zZWxlY3RTbmFwc2hvdChST1VURVJfU1RBVEVfVE9LRU4pO1xuICAgIHRoaXMuX3RyaWdnZXIgPSAnc3RvcmUnO1xuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5fc3RvcmVTdGF0ZSEuc3RhdGUhLnVybCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VXBSb3V0ZXJFdmVudHNMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBkaXNwYXRjaFJvdXRlck5hdmlnYXRpb25MYXRlID1cbiAgICAgIHRoaXMuX29wdGlvbnMgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5fb3B0aW9ucy5uYXZpZ2F0aW9uQWN0aW9uVGltaW5nID09PSBOYXZpZ2F0aW9uQWN0aW9uVGltaW5nLlBvc3RBY3RpdmF0aW9uO1xuXG4gICAgbGV0IGxhc3RSb3V0ZXNSZWNvZ25pemVkOiBSb3V0ZXNSZWNvZ25pemVkO1xuXG4gICAgY29uc3QgZXZlbnRzJCA9IHRoaXMuX3JvdXRlci5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKTtcbiAgICBldmVudHMkLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICB0aGlzLl9sYXN0RXZlbnQgPSBldmVudDtcblxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25TdGFydChldmVudCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgUm91dGVzUmVjb2duaXplZCkge1xuICAgICAgICBsYXN0Um91dGVzUmVjb2duaXplZCA9IGV2ZW50O1xuICAgICAgICBpZiAoIWRpc3BhdGNoUm91dGVyTmF2aWdhdGlvbkxhdGUgJiYgdGhpcy5fdHJpZ2dlciAhPT0gJ3N0b3JlJykge1xuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyTmF2aWdhdGlvbihsYXN0Um91dGVzUmVjb2duaXplZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlRW5kKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyRGF0YVJlc29sdmVkKGV2ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyQ2FuY2VsKGV2ZW50KTtcbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJFcnJvcihldmVudCk7XG4gICAgICAgIHRoaXMuX3Jlc2V0KCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICBpZiAodGhpcy5fdHJpZ2dlciAhPT0gJ3N0b3JlJykge1xuICAgICAgICAgIGlmIChkaXNwYXRjaFJvdXRlck5hdmlnYXRpb25MYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwYXRjaFJvdXRlck5hdmlnYXRpb24obGFzdFJvdXRlc1JlY29nbml6ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9kaXNwYXRjaFJvdXRlck5hdmlnYXRlZChldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBSZWFjdHMgdG8gYE5hdmlnYXRpb25TdGFydGAuICovXG4gIHByaXZhdGUgX25hdmlnYXRpb25TdGFydChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgdGhpcy5fcm91dGVyU3RhdGUgPSB0aGlzLl9zZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLl9yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QpO1xuXG4gICAgaWYgKHRoaXMuX3RyaWdnZXIgIT09ICdub25lJykge1xuICAgICAgdGhpcy5fc3RvcmVTdGF0ZSA9IHRoaXMuX3N0b3JlLnNlbGVjdFNuYXBzaG90KFJPVVRFUl9TVEFURV9UT0tFTik7XG4gICAgICB0aGlzLl9kaXNwYXRjaFJvdXRlckFjdGlvbihuZXcgUm91dGVyUmVxdWVzdCh0aGlzLl9yb3V0ZXJTdGF0ZSwgZXZlbnQsIHRoaXMuX3RyaWdnZXIpKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVhY3RzIHRvIGBSZXNvbHZlRW5kYC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSb3V0ZXJEYXRhUmVzb2x2ZWQoZXZlbnQ6IFJlc29sdmVFbmQpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKGV2ZW50LnN0YXRlKTtcbiAgICB0aGlzLl9kaXNwYXRjaFJvdXRlckFjdGlvbihuZXcgUm91dGVyRGF0YVJlc29sdmVkKHJvdXRlclN0YXRlLCBldmVudCwgdGhpcy5fdHJpZ2dlcikpO1xuICB9XG5cbiAgLyoqIFJlYWN0cyB0byBgUm91dGVzUmVjb2duaXplZGAgb3IgYE5hdmlnYXRpb25FbmRgLCBkZXBlbmRzIG9uIHRoZSBgbmF2aWdhdGlvbkFjdGlvblRpbWluZ2AuICovXG4gIHByaXZhdGUgX2Rpc3BhdGNoUm91dGVyTmF2aWdhdGlvbihsYXN0Um91dGVzUmVjb2duaXplZDogUm91dGVzUmVjb2duaXplZCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHRSb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKGxhc3RSb3V0ZXNSZWNvZ25pemVkLnN0YXRlKTtcblxuICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyQWN0aW9uKFxuICAgICAgbmV3IFJvdXRlck5hdmlnYXRpb24oXG4gICAgICAgIG5leHRSb3V0ZXJTdGF0ZSxcbiAgICAgICAgbmV3IFJvdXRlc1JlY29nbml6ZWQoXG4gICAgICAgICAgbGFzdFJvdXRlc1JlY29nbml6ZWQuaWQsXG4gICAgICAgICAgbGFzdFJvdXRlc1JlY29nbml6ZWQudXJsLFxuICAgICAgICAgIGxhc3RSb3V0ZXNSZWNvZ25pemVkLnVybEFmdGVyUmVkaXJlY3RzLFxuICAgICAgICAgIG5leHRSb3V0ZXJTdGF0ZVxuICAgICAgICApLFxuICAgICAgICB0aGlzLl90cmlnZ2VyXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBSZWFjdHMgdG8gYE5hdmlnYXRpb25DYW5jZWxgLiAqL1xuICBwcml2YXRlIF9kaXNwYXRjaFJvdXRlckNhbmNlbChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IHZvaWQge1xuICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyQWN0aW9uKFxuICAgICAgbmV3IFJvdXRlckNhbmNlbCh0aGlzLl9yb3V0ZXJTdGF0ZSEsIHRoaXMuX3N0b3JlU3RhdGUsIGV2ZW50LCB0aGlzLl90cmlnZ2VyKVxuICAgICk7XG4gIH1cblxuICAvKiogUmVhY3RzIHRvIGBOYXZpZ2F0aW9uRW5kYC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJBY3Rpb24oXG4gICAgICBuZXcgUm91dGVyRXJyb3IoXG4gICAgICAgIHRoaXMuX3JvdXRlclN0YXRlISxcbiAgICAgICAgdGhpcy5fc3RvcmVTdGF0ZSxcbiAgICAgICAgbmV3IE5hdmlnYXRpb25FcnJvcihldmVudC5pZCwgZXZlbnQudXJsLCBgJHtldmVudH1gKSxcbiAgICAgICAgdGhpcy5fdHJpZ2dlclxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKiogUmVhY3RzIHRvIGBOYXZpZ2F0aW9uRW5kYC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0ZWQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKHRoaXMuX3JvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCk7XG4gICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJBY3Rpb24obmV3IFJvdXRlck5hdmlnYXRlZChyb3V0ZXJTdGF0ZSwgZXZlbnQsIHRoaXMuX3RyaWdnZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoUm91dGVyQWN0aW9uPFQ+KGFjdGlvbjogUm91dGVyQWN0aW9uPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5fdHJpZ2dlciA9ICdyb3V0ZXInO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKGFjdGlvbik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3RyaWdnZXIgPSAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdHJpZ2dlciA9ICdub25lJztcbiAgICB0aGlzLl9zdG9yZVN0YXRlID0gbnVsbDtcbiAgICB0aGlzLl9yb3V0ZXJTdGF0ZSA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
206
+ }], ctorParameters: () => [], propDecorators: { navigate: [], angularRouterAction: [] } });
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyLXBsdWdpbi9zcmMvcm91dGVyLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsZUFBZSxFQUNmLGFBQWEsRUFFZCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBZ0IsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RixPQUFPLEVBRUwsMkJBQTJCLEVBQzVCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUNMLFFBQVEsRUFFUixZQUFZLEVBQ1osV0FBVyxFQUNYLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBZXJELHdFQUF3RTtBQUN4RSx1RUFBdUU7QUFDdkUsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFtQixRQUFRLENBQUMsQ0FBQztBQVd0RSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO2FBNkJmLFVBQUssR0FBbUIsY0FBYyxDQUMzQyxDQUFDLGtCQUFrQixDQUFDLEVBQ3BCLENBQUMsS0FBNEMsRUFBRSxFQUFFO1FBQy9DLHVFQUF1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LENBQUE7UUFDbkQsQ0FBQSxrQkFBdUMsQ0FBQTtRQUN2QyxDQUFBLGVBQW9DLENBQUE7S0FDckMsQ0FBQzs7OztzREFVRDtBQS9FVSxXQUFXO0lBVHZCLEtBQUssQ0FBbUI7UUFDdkIsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixRQUFRLEVBQUU7WUFDUixLQUFLLEVBQUUsU0FBUztZQUNoQixZQUFZLEVBQUUsU0FBUztZQUN2QixPQUFPLEVBQUUsTUFBTTtTQUNoQjtLQUNGLENBQUM7O0dBRVcsV0FBVyxDQWdPdkI7OzJGQWhPWSxXQUFXO2tCQUR2QixVQUFVO3dEQXNEVCxRQUFRLE1BaUJSLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nWm9uZSwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE5hdmlnYXRpb25DYW5jZWwsXG4gIE5hdmlnYXRpb25FcnJvcixcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBSb3V0ZXNSZWNvZ25pemVkLFxuICBSZXNvbHZlRW5kLFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIE5hdmlnYXRpb25FbmQsXG4gIEV2ZW50XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpb24sIGNyZWF0ZVNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdGF0ZVRva2VuLCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7XG4gIE5hdmlnYXRpb25BY3Rpb25UaW1pbmcsXG4gIMm1TkdYU19ST1VURVJfUExVR0lOX09QVElPTlNcbn0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbi9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBOYXZpZ2F0ZSxcbiAgUm91dGVyQWN0aW9uLFxuICBSb3V0ZXJDYW5jZWwsXG4gIFJvdXRlckVycm9yLFxuICBSb3V0ZXJOYXZpZ2F0aW9uLFxuICBSb3V0ZXJEYXRhUmVzb2x2ZWQsXG4gIFJvdXRlclJlcXVlc3QsXG4gIFJvdXRlck5hdmlnYXRlZFxufSBmcm9tICcuL3JvdXRlci5hY3Rpb25zJztcbmltcG9ydCB7IFJvdXRlclN0YXRlU2VyaWFsaXplciB9IGZyb20gJy4vc2VyaWFsaXplcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyU3RhdGVNb2RlbDxUID0gUm91dGVyU3RhdGVTbmFwc2hvdD4ge1xuICBzdGF0ZT86IFQ7XG4gIG5hdmlnYXRpb25JZD86IG51bWJlcjtcbiAgdHJpZ2dlcjogUm91dGVyVHJpZ2dlcjtcbn1cblxuZXhwb3J0IHR5cGUgUm91dGVyVHJpZ2dlciA9XG4gIHwgJ25vbmUnXG4gIHwgJ3JvdXRlcidcbiAgfCAnc3RvcmUnXG4gIC8vIFRoZSBgZGV2dG9vbHNgIHRyaWdnZXIgbWVhbnMgdGhhdCB0aGUgc3RhdGUgY2hhbmdlIGhhcyBiZWVuIHRyaWdnZXJlZCBieSBSZWR1eCBEZXZUb29scyAoZS5nLiB3aGVuIHRoZSB0aW1lLXRyYXZlbGluZyBpcyB1c2VkKS5cbiAgfCAnZGV2dG9vbHMnO1xuXG4vLyBOR1hTIGRvZXNuJ3QgcGVybWl0IHVudHlwZWQgc2VsZWN0b3JzLCBzdWNoIGFzIGBzZWxlY3QoUm91dGVyU3RhdGUpYCxcbi8vIGFzIHRoZSBgUm91dGVyU3RhdGVgIGNsYXNzIGl0c2VsZiBsYWNrcyB0eXBlIGluZm9ybWF0aW9uLiBUaGVyZWZvcmUsXG4vLyB0aGUgZm9sbG93aW5nIHN0YXRlIHRva2VuIG11c3QgcmVwbGFjZSBgUm91dGVyU3RhdGVgLlxuZXhwb3J0IGNvbnN0IFJPVVRFUl9TVEFURV9UT0tFTiA9IG5ldyBTdGF0ZVRva2VuPFJvdXRlclN0YXRlTW9kZWw+KCdyb3V0ZXInKTtcblxuQFN0YXRlPFJvdXRlclN0YXRlTW9kZWw+KHtcbiAgbmFtZTogUk9VVEVSX1NUQVRFX1RPS0VOLFxuICBkZWZhdWx0czoge1xuICAgIHN0YXRlOiB1bmRlZmluZWQsXG4gICAgbmF2aWdhdGlvbklkOiB1bmRlZmluZWQsXG4gICAgdHJpZ2dlcjogJ25vbmUnXG4gIH1cbn0pXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUm91dGVyU3RhdGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zdG9yZSA9IGluamVjdChTdG9yZSk7XG4gIHByaXZhdGUgX3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIF9zZXJpYWxpemVyOiBSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXI8Um91dGVyU3RhdGVTbmFwc2hvdD4gPVxuICAgIGluamVjdChSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXIpO1xuICBwcml2YXRlIF9uZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBob3cgbmF2aWdhdGlvbiB3YXMgcGVyZm9ybWVkIGJ5IHRoZSBgUm91dGVyU3RhdGVgIGl0c2VsZlxuICAgKiBvciBvdXRzaWRlIHZpYSBgbmV3IE5hdmlnYXRlKC4uLilgXG4gICAqL1xuICBwcml2YXRlIF90cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnO1xuXG4gIC8qKlxuICAgKiBUaGF0J3MgdGhlIHNlcmlhbGl6ZWQgc3RhdGUgZnJvbSB0aGUgYFJvdXRlcmAgY2xhc3NcbiAgICovXG4gIHByaXZhdGUgX3JvdXRlclN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoYXQncyB0aGUgdmFsdWUgb2YgdGhlIGBSb3V0ZXJTdGF0ZWAgc3RhdGVcbiAgICovXG4gIHByaXZhdGUgX3N0b3JlU3RhdGU6IFJvdXRlclN0YXRlTW9kZWwgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9sYXN0RXZlbnQ6IEV2ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfb3B0aW9ucyA9IGluamVjdCjJtU5HWFNfUk9VVEVSX1BMVUdJTl9PUFRJT05TKTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuXG4gIHN0YXRpYyBzdGF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVTZWxlY3RvcihcbiAgICBbUk9VVEVSX1NUQVRFX1RPS0VOXSxcbiAgICAoc3RhdGU6IFJvdXRlclN0YXRlTW9kZWw8Um91dGVyU3RhdGVTbmFwc2hvdD4pID0+IHtcbiAgICAgIC8vIFRoZSBgc3RhdGVgIGlzIG9wdGlvbmFsIGlmIHRoZSBzZWxlY3RvciBpcyBpbnZva2VkIGJlZm9yZSB0aGUgcm91dGVyXG4gICAgICAvLyBzdGF0ZSBpcyByZWdpc3RlcmVkIGluIE5HWFMuXG4gICAgICByZXR1cm4gc3RhdGU/LnN0YXRlO1xuICAgIH1cbiAgKTtcblxuICBzdGF0aWMgdXJsID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVNlbGVjdG9yKFxuICAgIFtST1VURVJfU1RBVEVfVE9LRU5dLFxuICAgIHN0YXRlID0+IHN0YXRlPy5zdGF0ZT8udXJsXG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc2V0VXBTdG9yZUxpc3RlbmVyKCk7XG4gICAgdGhpcy5fc2V0VXBSb3V0ZXJFdmVudHNMaXN0ZW5lcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgQEFjdGlvbihOYXZpZ2F0ZSlcbiAgbmF2aWdhdGUoXzogU3RhdGVDb250ZXh0PFJvdXRlclN0YXRlTW9kZWw+LCBhY3Rpb246IE5hdmlnYXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuX25nWm9uZS5ydW4oKCkgPT5cbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShhY3Rpb24ucGF0aCwge1xuICAgICAgICBxdWVyeVBhcmFtczogYWN0aW9uLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAuLi5hY3Rpb24uZXh0cmFzXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFtcbiAgICBSb3V0ZXJSZXF1ZXN0PFJvdXRlclN0YXRlU25hcHNob3Q+LFxuICAgIFJvdXRlck5hdmlnYXRpb248Um91dGVyU3RhdGVTbmFwc2hvdD4sXG4gICAgUm91dGVyRXJyb3I8Um91dGVyU3RhdGVNb2RlbCwgUm91dGVyU3RhdGVTbmFwc2hvdD4sXG4gICAgUm91dGVyQ2FuY2VsPFJvdXRlclN0YXRlTW9kZWwsIFJvdXRlclN0YXRlU25hcHNob3Q+LFxuICAgIFJvdXRlckRhdGFSZXNvbHZlZDxSb3V0ZXJTdGF0ZVNuYXBzaG90PixcbiAgICBSb3V0ZXJOYXZpZ2F0ZWQ8Um91dGVyU3RhdGVTbmFwc2hvdD5cbiAgXSlcbiAgYW5ndWxhclJvdXRlckFjdGlvbihcbiAgICBjdHg6IFN0YXRlQ29udGV4dDxSb3V0ZXJTdGF0ZU1vZGVsPixcbiAgICBhY3Rpb246IFJvdXRlckFjdGlvbjxSb3V0ZXJTdGF0ZU1vZGVsLCBSb3V0ZXJTdGF0ZVNuYXBzaG90PlxuICApOiB2b2lkIHtcbiAgICBjdHguc2V0U3RhdGUoe1xuICAgICAgdHJpZ2dlcjogYWN0aW9uLnRyaWdnZXIsXG4gICAgICBzdGF0ZTogYWN0aW9uLnJvdXRlclN0YXRlLFxuICAgICAgbmF2aWdhdGlvbklkOiBhY3Rpb24uZXZlbnQuaWRcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFVwU3RvcmVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZXJTdGF0ZSQgPSB0aGlzLl9zdG9yZVxuICAgICAgLnNlbGVjdChST1VURVJfU1RBVEVfVE9LRU4pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKTtcbiAgICByb3V0ZXJTdGF0ZSQuc3Vic2NyaWJlKChzdGF0ZTogUm91dGVyU3RhdGVNb2RlbCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgdGhpcy5fbmF2aWdhdGVJZk5lZWRlZChzdGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0ZUlmTmVlZGVkKHJvdXRlclN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKHJvdXRlclN0YXRlICYmIHJvdXRlclN0YXRlLnRyaWdnZXIgPT09ICdkZXZ0b29scycpIHtcbiAgICAgIHRoaXMuX3N0b3JlU3RhdGUgPSB0aGlzLl9zdG9yZS5zZWxlY3RTbmFwc2hvdChST1VURVJfU1RBVEVfVE9LRU4pO1xuICAgIH1cblxuICAgIGNvbnN0IGNhblNraXBOYXZpZ2F0aW9uID1cbiAgICAgICF0aGlzLl9zdG9yZVN0YXRlIHx8XG4gICAgICAhdGhpcy5fc3RvcmVTdGF0ZS5zdGF0ZSB8fFxuICAgICAgIXJvdXRlclN0YXRlIHx8XG4gICAgICByb3V0ZXJTdGF0ZS50cmlnZ2VyID09PSAncm91dGVyJyB8fFxuICAgICAgdGhpcy5fcm91dGVyLnVybCA9PT0gdGhpcy5fc3RvcmVTdGF0ZS5zdGF0ZS51cmwgfHxcbiAgICAgIHRoaXMuX2xhc3RFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydDtcblxuICAgIGlmIChjYW5Ta2lwTmF2aWdhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0b3JlU3RhdGUgPSB0aGlzLl9zdG9yZS5zZWxlY3RTbmFwc2hvdChST1VURVJfU1RBVEVfVE9LRU4pO1xuICAgIHRoaXMuX3RyaWdnZXIgPSAnc3RvcmUnO1xuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5fc3RvcmVTdGF0ZSEuc3RhdGUhLnVybCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VXBSb3V0ZXJFdmVudHNMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBkaXNwYXRjaFJvdXRlck5hdmlnYXRpb25MYXRlID1cbiAgICAgIHRoaXMuX29wdGlvbnMgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5fb3B0aW9ucy5uYXZpZ2F0aW9uQWN0aW9uVGltaW5nID09PSBOYXZpZ2F0aW9uQWN0aW9uVGltaW5nLlBvc3RBY3RpdmF0aW9uO1xuXG4gICAgbGV0IGxhc3RSb3V0ZXNSZWNvZ25pemVkOiBSb3V0ZXNSZWNvZ25pemVkO1xuXG4gICAgY29uc3QgZXZlbnRzJCA9IHRoaXMuX3JvdXRlci5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKTtcbiAgICBldmVudHMkLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICB0aGlzLl9sYXN0RXZlbnQgPSBldmVudDtcblxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25TdGFydChldmVudCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgUm91dGVzUmVjb2duaXplZCkge1xuICAgICAgICBsYXN0Um91dGVzUmVjb2duaXplZCA9IGV2ZW50O1xuICAgICAgICBpZiAoIWRpc3BhdGNoUm91dGVyTmF2aWdhdGlvbkxhdGUgJiYgdGhpcy5fdHJpZ2dlciAhPT0gJ3N0b3JlJykge1xuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyTmF2aWdhdGlvbihsYXN0Um91dGVzUmVjb2duaXplZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlRW5kKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyRGF0YVJlc29sdmVkKGV2ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyQ2FuY2VsKGV2ZW50KTtcbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJFcnJvcihldmVudCk7XG4gICAgICAgIHRoaXMuX3Jlc2V0KCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICBpZiAodGhpcy5fdHJpZ2dlciAhPT0gJ3N0b3JlJykge1xuICAgICAgICAgIGlmIChkaXNwYXRjaFJvdXRlck5hdmlnYXRpb25MYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwYXRjaFJvdXRlck5hdmlnYXRpb24obGFzdFJvdXRlc1JlY29nbml6ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9kaXNwYXRjaFJvdXRlck5hdmlnYXRlZChldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBSZWFjdHMgdG8gYE5hdmlnYXRpb25TdGFydGAuICovXG4gIHByaXZhdGUgX25hdmlnYXRpb25TdGFydChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgdGhpcy5fcm91dGVyU3RhdGUgPSB0aGlzLl9zZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLl9yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QpO1xuXG4gICAgaWYgKHRoaXMuX3RyaWdnZXIgIT09ICdub25lJykge1xuICAgICAgdGhpcy5fc3RvcmVTdGF0ZSA9IHRoaXMuX3N0b3JlLnNlbGVjdFNuYXBzaG90KFJPVVRFUl9TVEFURV9UT0tFTik7XG4gICAgICB0aGlzLl9kaXNwYXRjaFJvdXRlckFjdGlvbihuZXcgUm91dGVyUmVxdWVzdCh0aGlzLl9yb3V0ZXJTdGF0ZSwgZXZlbnQsIHRoaXMuX3RyaWdnZXIpKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVhY3RzIHRvIGBSZXNvbHZlRW5kYC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSb3V0ZXJEYXRhUmVzb2x2ZWQoZXZlbnQ6IFJlc29sdmVFbmQpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKGV2ZW50LnN0YXRlKTtcbiAgICB0aGlzLl9kaXNwYXRjaFJvdXRlckFjdGlvbihuZXcgUm91dGVyRGF0YVJlc29sdmVkKHJvdXRlclN0YXRlLCBldmVudCwgdGhpcy5fdHJpZ2dlcikpO1xuICB9XG5cbiAgLyoqIFJlYWN0cyB0byBgUm91dGVzUmVjb2duaXplZGAgb3IgYE5hdmlnYXRpb25FbmRgLCBkZXBlbmRzIG9uIHRoZSBgbmF2aWdhdGlvbkFjdGlvblRpbWluZ2AuICovXG4gIHByaXZhdGUgX2Rpc3BhdGNoUm91dGVyTmF2aWdhdGlvbihsYXN0Um91dGVzUmVjb2duaXplZDogUm91dGVzUmVjb2duaXplZCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHRSb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKGxhc3RSb3V0ZXNSZWNvZ25pemVkLnN0YXRlKTtcblxuICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyQWN0aW9uKFxuICAgICAgbmV3IFJvdXRlck5hdmlnYXRpb24oXG4gICAgICAgIG5leHRSb3V0ZXJTdGF0ZSxcbiAgICAgICAgbmV3IFJvdXRlc1JlY29nbml6ZWQoXG4gICAgICAgICAgbGFzdFJvdXRlc1JlY29nbml6ZWQuaWQsXG4gICAgICAgICAgbGFzdFJvdXRlc1JlY29nbml6ZWQudXJsLFxuICAgICAgICAgIGxhc3RSb3V0ZXNSZWNvZ25pemVkLnVybEFmdGVyUmVkaXJlY3RzLFxuICAgICAgICAgIG5leHRSb3V0ZXJTdGF0ZVxuICAgICAgICApLFxuICAgICAgICB0aGlzLl90cmlnZ2VyXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBSZWFjdHMgdG8gYE5hdmlnYXRpb25DYW5jZWxgLiAqL1xuICBwcml2YXRlIF9kaXNwYXRjaFJvdXRlckNhbmNlbChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IHZvaWQge1xuICAgIHRoaXMuX2Rpc3BhdGNoUm91dGVyQWN0aW9uKFxuICAgICAgbmV3IFJvdXRlckNhbmNlbCh0aGlzLl9yb3V0ZXJTdGF0ZSEsIHRoaXMuX3N0b3JlU3RhdGUsIGV2ZW50LCB0aGlzLl90cmlnZ2VyKVxuICAgICk7XG4gIH1cblxuICAvKiogUmVhY3RzIHRvIGBOYXZpZ2F0aW9uRW5kYC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJBY3Rpb24oXG4gICAgICBuZXcgUm91dGVyRXJyb3IoXG4gICAgICAgIHRoaXMuX3JvdXRlclN0YXRlISxcbiAgICAgICAgdGhpcy5fc3RvcmVTdGF0ZSxcbiAgICAgICAgbmV3IE5hdmlnYXRpb25FcnJvcihldmVudC5pZCwgZXZlbnQudXJsLCBgJHtldmVudH1gKSxcbiAgICAgICAgdGhpcy5fdHJpZ2dlclxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKiogUmVhY3RzIHRvIGBOYXZpZ2F0aW9uRW5kYC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0ZWQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKHRoaXMuX3JvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCk7XG4gICAgdGhpcy5fZGlzcGF0Y2hSb3V0ZXJBY3Rpb24obmV3IFJvdXRlck5hdmlnYXRlZChyb3V0ZXJTdGF0ZSwgZXZlbnQsIHRoaXMuX3RyaWdnZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoUm91dGVyQWN0aW9uPFQ+KGFjdGlvbjogUm91dGVyQWN0aW9uPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5fdHJpZ2dlciA9ICdyb3V0ZXInO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKGFjdGlvbik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3RyaWdnZXIgPSAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdHJpZ2dlciA9ICdub25lJztcbiAgICB0aGlzLl9zdG9yZVN0YXRlID0gbnVsbDtcbiAgICB0aGlzLl9yb3V0ZXJTdGF0ZSA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgZone, Injector, Injectable, NgModule, makeEnvironmentProviders } from '@angular/core';
2
+ import { inject, NgZone, Injectable, NgModule, makeEnvironmentProviders } from '@angular/core';
3
3
  import * as i1 from '@ngxs/store';
4
- import { StateToken, createSelector, Action, State, Store, NgxsModule, provideStates } from '@ngxs/store';
4
+ import { StateToken, createSelector, Store, Action, State, NgxsModule, provideStates } from '@ngxs/store';
5
5
  import { ɵNGXS_ROUTER_PLUGIN_OPTIONS as _NGXS_ROUTER_PLUGIN_OPTIONS, ɵUSER_OPTIONS as _USER_OPTIONS, ɵcreateRouterPluginOptions as _createRouterPluginOptions } from '@ngxs/router-plugin/internals';
6
6
  import { __decorate, __metadata } from 'tslib';
7
- import * as i2 from '@angular/router';
8
- import { NavigationStart, RoutesRecognized, ResolveEnd, NavigationCancel, NavigationError, NavigationEnd, Router } from '@angular/router';
7
+ import { Router, NavigationStart, RoutesRecognized, ResolveEnd, NavigationCancel, NavigationError, NavigationEnd } from '@angular/router';
9
8
  import { ReplaySubject } from 'rxjs';
10
9
  import { takeUntil } from 'rxjs/operators';
11
10
 
@@ -138,11 +137,11 @@ let RouterState = class RouterState {
138
137
  return state?.state;
139
138
  }); }
140
139
  static { this.url = createSelector([ROUTER_STATE_TOKEN], state => state?.state?.url); }
141
- constructor(_store, _router, _serializer, _ngZone, injector) {
142
- this._store = _store;
143
- this._router = _router;
144
- this._serializer = _serializer;
145
- this._ngZone = _ngZone;
140
+ constructor() {
141
+ this._store = inject(Store);
142
+ this._router = inject(Router);
143
+ this._serializer = inject(RouterStateSerializer);
144
+ this._ngZone = inject(NgZone);
146
145
  /**
147
146
  * Determines how navigation was performed by the `RouterState` itself
148
147
  * or outside via `new Navigate(...)`
@@ -157,11 +156,8 @@ let RouterState = class RouterState {
157
156
  */
158
157
  this._storeState = null;
159
158
  this._lastEvent = null;
160
- this._options = null;
159
+ this._options = inject(_NGXS_ROUTER_PLUGIN_OPTIONS);
161
160
  this._destroy$ = new ReplaySubject(1);
162
- // Note: do not use `@Inject` since it fails on lower versions of Angular with Jest
163
- // integration, it cannot resolve the token provider.
164
- this._options = injector.get(_NGXS_ROUTER_PLUGIN_OPTIONS, null);
165
161
  this._setUpStoreListener();
166
162
  this._setUpRouterEventsListener();
167
163
  }
@@ -289,7 +285,7 @@ let RouterState = class RouterState {
289
285
  this._storeState = null;
290
286
  this._routerState = null;
291
287
  }
292
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterState, deps: [{ token: i1.Store }, { token: i2.Router }, { token: RouterStateSerializer }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
288
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
293
289
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterState }); }
294
290
  };
295
291
  __decorate([
@@ -320,15 +316,11 @@ RouterState = __decorate([
320
316
  trigger: 'none'
321
317
  }
322
318
  }),
323
- __metadata("design:paramtypes", [Store,
324
- Router,
325
- RouterStateSerializer,
326
- NgZone,
327
- Injector])
319
+ __metadata("design:paramtypes", [])
328
320
  ], RouterState);
329
321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterState, decorators: [{
330
322
  type: Injectable
331
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: RouterStateSerializer }, { type: i0.NgZone }, { type: i0.Injector }], propDecorators: { navigate: [], angularRouterAction: [] } });
323
+ }], ctorParameters: () => [], propDecorators: { navigate: [], angularRouterAction: [] } });
332
324
 
333
325
  class NgxsRouterPluginModule {
334
326
  static forRoot(options) {
@@ -1 +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, createSelector, 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 static state = /* @__PURE__ */ createSelector(\n [ROUTER_STATE_TOKEN],\n (state: RouterStateModel<RouterStateSnapshot>) => {\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\n static url = /* @__PURE__ */ createSelector(\n [ROUTER_STATE_TOKEN],\n state => 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":";;;;;;;;;;;AAcA;;AAEG;MACU,QAAQ,CAAA;aACH,IAAI,CAAA,IAAA,GAAG,mBAAmB,CAAC,EAAA;AAE3C,IAAA,WAAA,CACS,IAAW,EACX,WAAoB,EACpB,MAAyB,EAAA;QAFzB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;QACX,IAAW,CAAA,WAAA,GAAX,WAAW,CAAS;QACpB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;KAC9B;;AAGN;;;;AAIG;AAEH;;AAEG;MACU,aAAa,CAAA;aACR,IAAI,CAAA,IAAA,GAAG,wBAAwB,CAAC,EAAA;AAEhD,IAAA,WAAA,CACS,WAAc,EACd,KAAsB,EACtB,UAAyB,MAAM,EAAA;QAF/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAG;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAiB;QACtB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAwB;KACpC;;AAGN;;AAEG;MACU,gBAAgB,CAAA;aACX,IAAI,CAAA,IAAA,GAAG,2BAA2B,CAAC,EAAA;AAEnD,IAAA,WAAA,CACS,WAAc,EACd,KAAuB,EACvB,UAAyB,MAAM,EAAA;QAF/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAG;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAkB;QACvB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAwB;KACpC;;AAGN;;AAEG;MACU,YAAY,CAAA;aACP,IAAI,CAAA,IAAA,GAAG,uBAAuB,CAAC,EAAA;AAE/C,IAAA,WAAA,CACS,WAAc,EACd,UAAa,EACb,KAAuB,EACvB,UAAyB,MAAM,EAAA;QAH/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAG;QACd,IAAU,CAAA,UAAA,GAAV,UAAU,CAAG;QACb,IAAK,CAAA,KAAA,GAAL,KAAK,CAAkB;QACvB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAwB;KACpC;;AAGN;;AAEG;MACU,WAAW,CAAA;aACN,IAAI,CAAA,IAAA,GAAG,sBAAsB,CAAC,EAAA;AAE9C,IAAA,WAAA,CACS,WAAc,EACd,UAAa,EACb,KAAsB,EACtB,UAAyB,MAAM,EAAA;QAH/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAG;QACd,IAAU,CAAA,UAAA,GAAV,UAAU,CAAG;QACb,IAAK,CAAA,KAAA,GAAL,KAAK,CAAiB;QACtB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAwB;KACpC;;AAGN;;AAEG;MACU,kBAAkB,CAAA;aACb,IAAI,CAAA,IAAA,GAAG,6BAA6B,CAAC,EAAA;AAErD,IAAA,WAAA,CACS,WAAc,EACd,KAAiB,EACjB,UAAyB,MAAM,EAAA;QAF/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAG;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAwB;KACpC;;AAGN;;AAEG;MACU,eAAe,CAAA;aACV,IAAI,CAAA,IAAA,GAAG,0BAA0B,CAAC,EAAA;AAElD,IAAA,WAAA,CACS,WAAc,EACd,KAAoB,EACpB,UAAyB,MAAM,EAAA;QAF/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAG;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAe;QACpB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAwB;KACpC;;;MC5GgB,qBAAqB,CAAA;AAE1C,CAAA;MAOY,4BAA4B,CAAA;AAGvC,IAAA,SAAS,CAAC,WAAgC,EAAA;QACxC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;YAC3C,GAAG,EAAE,WAAW,CAAC,GAAG;SACrB,CAAC;KACH;AAEO,IAAA,cAAc,CAAC,KAA6B,EAAA;AAClD,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAS;YACzB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,IAAI,EAAE,IAAW;AACjB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,IAAW;YACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC;KACH;AACF;;ACGD;AACA;AACA;MACa,kBAAkB,GAAG,IAAI,UAAU,CAAmB,QAAQ,EAAE;AAWhE,IAAA,WAAW,GAAjB,MAAM,WAAW,CAAA;aAuBf,IAAK,CAAA,KAAA,GAAmB,cAAc,CAC3C,CAAC,kBAAkB,CAAC,EACpB,CAAC,KAA4C,KAAI;;;QAG/C,OAAO,KAAK,EAAE,KAAK,CAAC;KACrB,CACF,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,GAAG,GAAmB,cAAc,CACzC,CAAC,kBAAkB,CAAC,EACpB,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,GAAG,CAC3B,CAAC,EAAA;IAEF,WACU,CAAA,MAAa,EACb,OAAe,EACf,WAAuD,EACvD,OAAe,EACvB,QAAkB,EAAA;QAJV,IAAM,CAAA,MAAA,GAAN,MAAM,CAAO;QACb,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAW,CAAA,WAAA,GAAX,WAAW,CAA4C;QACvD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAxCzB;;;AAGG;QACK,IAAQ,CAAA,QAAA,GAAkB,MAAM,CAAC;AAEzC;;AAEG;QACK,IAAY,CAAA,YAAA,GAA+B,IAAI,CAAC;AAExD;;AAEG;QACK,IAAW,CAAA,WAAA,GAA4B,IAAI,CAAC;QAE5C,IAAU,CAAA,UAAA,GAAiB,IAAI,CAAC;QAEhC,IAAQ,CAAA,QAAA,GAAmC,IAAI,CAAC;AAEhD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;;;QAyB7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAACA,2BAA2B,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAGD,QAAQ,CAAC,CAAiC,EAAE,MAAgB,EAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,MAAM,CAAC,MAAM;AACjB,SAAA,CAAC,CACH,CAAC;KACH;IAUD,mBAAmB,CACjB,GAAmC,EACnC,MAA2D,EAAA;QAE3D,GAAG,CAAC,QAAQ,CAAC;YACX,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,WAAW;AACzB,YAAA,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;AAC9B,SAAA,CAAC,CAAC;KACJ;IAEO,mBAAmB,GAAA;AACzB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC7B,MAAM,CAAC,kBAAkB,CAAC;aAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACnC,QAAA,YAAY,CAAC,SAAS,CAAC,CAAC,KAAmC,KAAI;AAC7D,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,iBAAiB,CAAC,WAAyC,EAAA;QACjE,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,KAAK,UAAU,EAAE;YACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;SACnE;AAED,QAAA,MAAM,iBAAiB,GACrB,CAAC,IAAI,CAAC,WAAW;AACjB,YAAA,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK;AACvB,YAAA,CAAC,WAAW;YACZ,WAAW,CAAC,OAAO,KAAK,QAAQ;YAChC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG;AAC/C,YAAA,IAAI,CAAC,UAAU,YAAY,eAAe,CAAC;QAE7C,IAAI,iBAAiB,EAAE;YACrB,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,WAAY,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAClF;IAEO,0BAA0B,GAAA;AAChC,QAAA,MAAM,4BAA4B,GAChC,IAAI,CAAC,QAAQ,IAAI,IAAI;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,sBAAsB,mDAA2C;AAEjF,QAAA,IAAI,oBAAsC,CAAC;AAE3C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACpE,QAAA,OAAO,CAAC,SAAS,CAAC,KAAK,IAAG;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,YAAA,IAAI,KAAK,YAAY,eAAe,EAAE;AACpC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9B;AAAM,iBAAA,IAAI,KAAK,YAAY,gBAAgB,EAAE;gBAC5C,oBAAoB,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC9D,oBAAA,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;iBACtD;aACF;AAAM,iBAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AACtC,gBAAA,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;aACzC;AAAM,iBAAA,IAAI,KAAK,YAAY,gBAAgB,EAAE;AAC5C,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;AAAM,iBAAA,IAAI,KAAK,YAAY,eAAe,EAAE;AAC3C,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;AAAM,iBAAA,IAAI,KAAK,YAAY,aAAa,EAAE;AACzC,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;oBAC7B,IAAI,4BAA4B,EAAE;AAChC,wBAAA,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;qBACtD;AACD,oBAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;iBACtC;gBACD,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;AACH,SAAC,CAAC,CAAC;KACJ;;AAGO,IAAA,gBAAgB,CAAC,KAAsB,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAElF,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SACxF;KACF;;AAGO,IAAA,2BAA2B,CAAC,KAAiB,EAAA;AACnD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KACvF;;AAGO,IAAA,yBAAyB,CAAC,oBAAsC,EAAA;AACtE,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAE/E,QAAA,IAAI,CAAC,qBAAqB,CACxB,IAAI,gBAAgB,CAClB,eAAe,EACf,IAAI,gBAAgB,CAClB,oBAAoB,CAAC,EAAE,EACvB,oBAAoB,CAAC,GAAG,EACxB,oBAAoB,CAAC,iBAAiB,EACtC,eAAe,CAChB,EACD,IAAI,CAAC,QAAQ,CACd,CACF,CAAC;KACH;;AAGO,IAAA,qBAAqB,CAAC,KAAuB,EAAA;QACnD,IAAI,CAAC,qBAAqB,CACxB,IAAI,YAAY,CAAC,IAAI,CAAC,YAAa,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC7E,CAAC;KACH;;AAGO,IAAA,oBAAoB,CAAC,KAAsB,EAAA;AACjD,QAAA,IAAI,CAAC,qBAAqB,CACxB,IAAI,WAAW,CACb,IAAI,CAAC,YAAa,EAClB,IAAI,CAAC,WAAW,EAChB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAG,EAAA,KAAK,CAAE,CAAA,CAAC,EACpD,IAAI,CAAC,QAAQ,CACd,CACF,CAAC;KACH;;AAGO,IAAA,wBAAwB,CAAC,KAAoB,EAAA;AACnD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KACpF;AAEO,IAAA,qBAAqB,CAAI,MAAuB,EAAA;AACtD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAEzB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC9B;gBAAS;AACR,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;SACxB;KACF;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;iIAlOU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;qIAAX,WAAW,EAAA,CAAA,CAAA,EAAA;;AAwDtB,UAAA,CAAA;IADC,MAAM,CAAC,QAAQ,CAAC;;6CACmC,QAAQ,CAAA,CAAA;;AAO3D,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAUD,UAAA,CAAA;AARC,IAAA,MAAM,CAAC;AACN,SAAA,aAAkC;AAClC,SAAA,gBAAqC;AACrC,SAAA,WAAkD;AAClD,SAAA,YAAmD;AACnD,SAAA,kBAAuC;AACvC,SAAA,eAAoC;KACrC,CAAC;;;;AAUD,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,IAAA,CAAA,CAAA;AAlFU,WAAW,GAAA,UAAA,CAAA;AATvB,IAAA,KAAK,CAAmB;AACvB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;KACF,CAAC;qCAwCkB,KAAK;QACJ,MAAM;QACF,qBAAqB;QACzB,MAAM;QACb,QAAQ,CAAA,CAAA;AA1CT,CAAA,EAAA,WAAW,CAmOvB,CAAA;2FAnOY,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;AAyDT,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,QAAQ,MAiBR,mBAAmB,EAAA,EAAA,EAAA,EAAA,CAAA;;MCjHR,sBAAsB,CAAA;IACjC,OAAO,OAAO,CACZ,OAAiC,EAAA;QAEjC,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAEC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC7C,gBAAA;AACE,oBAAA,OAAO,EAAEF,2BAA2B;AACpC,oBAAA,UAAU,EAAEG,0BAA0B;oBACtC,IAAI,EAAE,CAACD,aAAa,CAAC;AACtB,iBAAA;AACD,gBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,EAAE;AAC3E,aAAA;SACF,CAAC;KACH;iIAhBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;kIAAtB,sBAAsB,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;kIAAtB,sBAAsB,EAAA,OAAA,EAAA,CAFvB,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEnC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,iBAAA,CAAA;;AAoBK,SAAU,oBAAoB,CAAC,OAAiC,EAAA;AACpE,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC;AAC5B,QAAA,EAAE,OAAO,EAAEA,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC7C,QAAA;AACE,YAAA,OAAO,EAAEF,2BAA2B;AACpC,YAAA,UAAU,EAAEG,0BAA0B;YACtC,IAAI,EAAE,CAACD,aAAa,CAAC;AACtB,SAAA;AACD,QAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,EAAE;AAC3E,KAAA,CAAC,CAAC;AACL;;AClDA;;AAEG;;ACFH;;AAEG;;;;"}
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, inject } 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, createSelector, State, StateContext, StateToken, Store } from '@ngxs/store';\nimport {\n NavigationActionTiming,\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 private _store = inject(Store);\n private _router = inject(Router);\n private _serializer: RouterStateSerializer<RouterStateSnapshot> =\n inject(RouterStateSerializer);\n private _ngZone = inject(NgZone);\n\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 = inject(ɵNGXS_ROUTER_PLUGIN_OPTIONS);\n\n private _destroy$ = new ReplaySubject<void>(1);\n\n static state = /* @__PURE__ */ createSelector(\n [ROUTER_STATE_TOKEN],\n (state: RouterStateModel<RouterStateSnapshot>) => {\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\n static url = /* @__PURE__ */ createSelector(\n [ROUTER_STATE_TOKEN],\n state => state?.state?.url\n );\n\n constructor() {\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","ɵUSER_OPTIONS","ɵcreateRouterPluginOptions"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ModuleWithProviders, EnvironmentProviders, OnDestroy, NgZone, Injector } from '@angular/core';
2
+ import { ModuleWithProviders, EnvironmentProviders, OnDestroy } from '@angular/core';
3
3
  import { NgxsRouterPluginOptions } from '@ngxs/router-plugin/internals';
4
4
  export { NavigationActionTiming, NgxsRouterPluginOptions } from '@ngxs/router-plugin/internals';
5
5
  import * as i1 from '@ngxs/store';
6
- import { StateToken, Store, StateContext } from '@ngxs/store';
7
- import { Params, NavigationExtras, RouterStateSnapshot, NavigationStart, RoutesRecognized, NavigationCancel, NavigationError, ResolveEnd, NavigationEnd, ActivatedRouteSnapshot, Router } from '@angular/router';
6
+ import { StateToken, StateContext } from '@ngxs/store';
7
+ import { Params, NavigationExtras, RouterStateSnapshot, NavigationStart, RoutesRecognized, NavigationCancel, NavigationError, ResolveEnd, NavigationEnd, ActivatedRouteSnapshot } from '@angular/router';
8
8
 
9
9
  declare class NgxsRouterPluginModule {
10
10
  static forRoot(options?: NgxsRouterPluginOptions): ModuleWithProviders<NgxsRouterPluginModule>;
@@ -96,18 +96,6 @@ declare class RouterNavigated<T = RouterStateSnapshot> {
96
96
  */
97
97
  type RouterAction<T, V = RouterStateSnapshot> = RouterRequest<V> | RouterNavigation<V> | RouterCancel<T, V> | RouterError<T, V> | RouterDataResolved<V> | RouterNavigated<V>;
98
98
 
99
- declare abstract class RouterStateSerializer<T> {
100
- abstract serialize(routerState: RouterStateSnapshot): T;
101
- }
102
- interface SerializedRouterStateSnapshot {
103
- root: ActivatedRouteSnapshot;
104
- url: string;
105
- }
106
- declare class DefaultRouterStateSerializer implements RouterStateSerializer<SerializedRouterStateSnapshot> {
107
- serialize(routerState: RouterStateSnapshot): SerializedRouterStateSnapshot;
108
- private serializeRoute;
109
- }
110
-
111
99
  interface RouterStateModel<T = RouterStateSnapshot> {
112
100
  state?: T;
113
101
  navigationId?: number;
@@ -138,7 +126,7 @@ declare class RouterState implements OnDestroy {
138
126
  private _destroy$;
139
127
  static state: (state: RouterStateModel<RouterStateSnapshot>) => RouterStateSnapshot | undefined;
140
128
  static url: (state: RouterStateModel<RouterStateSnapshot>) => string | undefined;
141
- constructor(_store: Store, _router: Router, _serializer: RouterStateSerializer<RouterStateSnapshot>, _ngZone: NgZone, injector: Injector);
129
+ constructor();
142
130
  ngOnDestroy(): void;
143
131
  navigate(_: StateContext<RouterStateModel>, action: Navigate): Promise<boolean>;
144
132
  angularRouterAction(ctx: StateContext<RouterStateModel>, action: RouterAction<RouterStateModel, RouterStateSnapshot>): void;
@@ -163,4 +151,16 @@ declare class RouterState implements OnDestroy {
163
151
  static ɵprov: i0.ɵɵInjectableDeclaration<RouterState>;
164
152
  }
165
153
 
154
+ declare abstract class RouterStateSerializer<T> {
155
+ abstract serialize(routerState: RouterStateSnapshot): T;
156
+ }
157
+ interface SerializedRouterStateSnapshot {
158
+ root: ActivatedRouteSnapshot;
159
+ url: string;
160
+ }
161
+ declare class DefaultRouterStateSerializer implements RouterStateSerializer<SerializedRouterStateSnapshot> {
162
+ serialize(routerState: RouterStateSnapshot): SerializedRouterStateSnapshot;
163
+ private serializeRoute;
164
+ }
165
+
166
166
  export { DefaultRouterStateSerializer, Navigate, NgxsRouterPluginModule, ROUTER_STATE_TOKEN, type RouterAction, RouterCancel, RouterDataResolved, RouterError, RouterNavigated, RouterNavigation, RouterRequest, RouterState, type RouterStateModel, RouterStateSerializer, type SerializedRouterStateSnapshot, withNgxsRouterPlugin };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ngxs/router-plugin",
3
3
  "description": "router plugin for @ngxs/store",
4
- "version": "18.1.5-dev.master-aa4dd85",
4
+ "version": "18.1.5-dev.master-c73c22f",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
7
7
  "@angular/core": ">=16.0.0 <19.0.0",