@abp/ng.core 8.1.0-rc.3 → 8.1.0-rc.4

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.
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
29
29
  providedIn: 'root',
30
30
  }]
31
31
  }], ctorParameters: () => [] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuZXQtY29ubmVjdGlvbi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2ludGVybmV0LWNvbm5lY3Rpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2QyxNQUFNLE9BQU8seUJBQXlCO0lBV3BDO1FBVlMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMzQixXQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRW5DLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTdELFdBQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUczQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN4QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNwQyxDQUFDOzhHQXZCVSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJuZXRDb25uZWN0aW9uU2VydmljZXtcclxuICByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVClcclxuICByZWFkb25seSB3aW5kb3cgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3O1xyXG4gIHJlYWRvbmx5IG5hdmlnYXRvciA9IHRoaXMud2luZG93Lm5hdmlnYXRvcjtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0dXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLm5hdmlnYXRvci5vbkxpbmUpXHJcblxyXG4gIHByaXZhdGUgc3RhdHVzID0gc2lnbmFsKHRoaXMubmF2aWdhdG9yLm9uTGluZSk7XHJcblxyXG4gIG5ldHdvcmtTdGF0dXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXR1cygpKVxyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgKCkgPT4gdGhpcy5zZXRTdGF0dXMoZmFsc2UpKTtcclxuICAgIHRoaXMud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsICgpID0+IHRoaXMuc2V0U3RhdHVzKHRydWUpKTtcclxuICB9XHJcblxyXG4gIHNldFN0YXR1cyh2YWw6Ym9vbGVhbil7XHJcbiAgICB0aGlzLnN0YXR1cy5zZXQodmFsKVxyXG4gICAgdGhpcy5zdGF0dXMkLm5leHQodmFsKVxyXG4gIH1cclxuXHJcbiAgZ2V0IG5ldHdvcmtTdGF0dXMkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMkLmFzT2JzZXJ2YWJsZSgpXHJcbiAgfVxyXG59XHJcbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuZXQtY29ubmVjdGlvbi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2ludGVybmV0LWNvbm5lY3Rpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2QyxNQUFNLE9BQU8seUJBQXlCO0lBV3BDO1FBVlMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRW5DLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlELFdBQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUc1QyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBWTtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzhHQXZCVSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJuZXRDb25uZWN0aW9uU2VydmljZSB7XHJcbiAgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHJlYWRvbmx5IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgcmVhZG9ubHkgbmF2aWdhdG9yID0gdGhpcy53aW5kb3cubmF2aWdhdG9yO1xyXG5cclxuICBwcml2YXRlIHN0YXR1cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMubmF2aWdhdG9yLm9uTGluZSk7XHJcblxyXG4gIHByaXZhdGUgc3RhdHVzID0gc2lnbmFsKHRoaXMubmF2aWdhdG9yLm9uTGluZSk7XHJcblxyXG4gIG5ldHdvcmtTdGF0dXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXR1cygpKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgKCkgPT4gdGhpcy5zZXRTdGF0dXMoZmFsc2UpKTtcclxuICAgIHRoaXMud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsICgpID0+IHRoaXMuc2V0U3RhdHVzKHRydWUpKTtcclxuICB9XHJcblxyXG4gIHNldFN0YXR1cyh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3RhdHVzLnNldCh2YWwpO1xyXG4gICAgdGhpcy5zdGF0dXMkLm5leHQodmFsKTtcclxuICB9XHJcblxyXG4gIGdldCBuZXR3b3JrU3RhdHVzJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,8 +1,7 @@
1
- import { Injectable } from '@angular/core';
2
- import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
1
+ import { Injectable, inject, signal } from '@angular/core';
2
+ import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, } from '@angular/router';
3
3
  import { filter } from 'rxjs/operators';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/router";
6
5
  export const NavigationEvent = {
7
6
  Cancel: NavigationCancel,
8
7
  End: NavigationEnd,
@@ -10,8 +9,23 @@ export const NavigationEvent = {
10
9
  Start: NavigationStart,
11
10
  };
12
11
  export class RouterEvents {
13
- constructor(router) {
14
- this.router = router;
12
+ #previousNavigation;
13
+ #currentNavigation;
14
+ constructor() {
15
+ this.router = inject(Router);
16
+ this.#previousNavigation = signal(undefined);
17
+ this.previousNavigation = this.#previousNavigation.asReadonly();
18
+ this.#currentNavigation = signal(undefined);
19
+ this.currentNavigation = this.#currentNavigation.asReadonly();
20
+ this.listenToNavigation();
21
+ }
22
+ listenToNavigation() {
23
+ this.router.events.pipe(filter(e => e instanceof NavigationEvent.End && !e.url.includes('error'))).subscribe(event => {
24
+ // It must be "NavigationTransition" but it is not exported in Angular
25
+ //https://github.com/angular/angular/blob/9c486c96827a9282cbdbff176761bc95554a260b/packages/router/src/navigation_transition.ts#L282
26
+ this.#previousNavigation.set(this.#currentNavigation());
27
+ this.#currentNavigation.set(event.url);
28
+ });
15
29
  }
16
30
  getEvents(...eventTypes) {
17
31
  const filterRouterEvents = (event) => eventTypes.some(type => event instanceof type);
@@ -28,11 +42,11 @@ export class RouterEvents {
28
42
  const keys = Object.keys(NavigationEvent);
29
43
  return this.getNavigationEvents(...keys);
30
44
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RouterEvents, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RouterEvents, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
46
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RouterEvents, providedIn: 'root' }); }
33
47
  }
34
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RouterEvents, decorators: [{
35
49
  type: Injectable,
36
50
  args: [{ providedIn: 'root' }]
37
- }], ctorParameters: () => [{ type: i1.Router }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci1ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixlQUFlLEVBQ2YsTUFBTSxFQUdQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFeEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEIsR0FBRyxFQUFFLGFBQWE7SUFDbEIsS0FBSyxFQUFFLGVBQWU7SUFDdEIsS0FBSyxFQUFFLGVBQWU7Q0FDdkIsQ0FBQztBQUdGLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUV0QyxTQUFTLENBQW9DLEdBQUcsVUFBYTtRQUUzRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FDMUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQztRQUVqRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxtQkFBbUIsQ0FBZ0MsR0FBRyxtQkFBc0I7UUFPMUUsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQVksRUFBb0MsRUFBRSxDQUNoRixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFekUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBd0IsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBL0JVLFlBQVk7a0hBQVosWUFBWSxjQURDLE1BQU07OzJGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOYXZpZ2F0aW9uQ2FuY2VsLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgTmF2aWdhdGlvbkVycm9yLFxyXG4gIE5hdmlnYXRpb25TdGFydCxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyRXZlbnQsXHJcbiAgRXZlbnRcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgY29uc3QgTmF2aWdhdGlvbkV2ZW50ID0ge1xyXG4gIENhbmNlbDogTmF2aWdhdGlvbkNhbmNlbCxcclxuICBFbmQ6IE5hdmlnYXRpb25FbmQsXHJcbiAgRXJyb3I6IE5hdmlnYXRpb25FcnJvcixcclxuICBTdGFydDogTmF2aWdhdGlvblN0YXJ0LFxyXG59O1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFJvdXRlckV2ZW50cyB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cclxuXHJcbiAgZ2V0RXZlbnRzPFQgZXh0ZW5kcyBSb3V0ZXJFdmVudENvbnN0cnVjdG9ycz4oLi4uZXZlbnRUeXBlczogVCkge1xyXG5cclxuICAgIGNvbnN0IGZpbHRlclJvdXRlckV2ZW50cyA9IChldmVudDogRXZlbnQpID0+XHJcbiAgICAgIGV2ZW50VHlwZXMuc29tZSh0eXBlID0+IGV2ZW50IGluc3RhbmNlb2YgdHlwZSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihmaWx0ZXJSb3V0ZXJFdmVudHMpKTtcclxuICB9XHJcblxyXG4gIGdldE5hdmlnYXRpb25FdmVudHM8VCBleHRlbmRzIE5hdmlnYXRpb25FdmVudEtleXM+KC4uLm5hdmlnYXRpb25FdmVudEtleXM6IFQpIHtcclxuICAgIHR5cGUgRmlsdGVyZWROYXZpZ2F0aW9uRXZlbnQgPSBUIGV4dGVuZHMgKGluZmVyIEtleSlbXVxyXG4gICAgICA/IEtleSBleHRlbmRzIE5hdmlnYXRpb25FdmVudEtleVxyXG4gICAgICAgID8gSW5zdGFuY2VUeXBlPE5hdmlnYXRpb25FdmVudFR5cGVbS2V5XT5cclxuICAgICAgICA6IG5ldmVyXHJcbiAgICAgIDogbmV2ZXI7XHJcblxyXG4gICAgY29uc3QgZmlsdGVyTmF2aWdhdGlvbkV2ZW50cyA9IChldmVudDogRXZlbnQpOiBldmVudCBpcyBGaWx0ZXJlZE5hdmlnYXRpb25FdmVudCA9PlxyXG4gICAgICBuYXZpZ2F0aW9uRXZlbnRLZXlzLnNvbWUoa2V5ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkV2ZW50W2tleV0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZmlsdGVyTmF2aWdhdGlvbkV2ZW50cykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsRXZlbnRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cztcclxuICB9XHJcblxyXG4gIGdldEFsbE5hdmlnYXRpb25FdmVudHMoKSB7XHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoTmF2aWdhdGlvbkV2ZW50KSBhcyBOYXZpZ2F0aW9uRXZlbnRLZXlzO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0TmF2aWdhdGlvbkV2ZW50cyguLi5rZXlzKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgUm91dGVyRXZlbnRDb25zdHJ1Y3RvcnMgPSBbVHlwZTxSb3V0ZXJFdmVudD4sIC4uLlR5cGU8Um91dGVyRXZlbnQ+W11dO1xyXG5cclxudHlwZSBOYXZpZ2F0aW9uRXZlbnRLZXlzID0gW05hdmlnYXRpb25FdmVudEtleSwgLi4uTmF2aWdhdGlvbkV2ZW50S2V5W11dO1xyXG5cclxudHlwZSBOYXZpZ2F0aW9uRXZlbnRUeXBlID0gdHlwZW9mIE5hdmlnYXRpb25FdmVudDtcclxuXHJcbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25FdmVudEtleSA9IGtleW9mIE5hdmlnYXRpb25FdmVudFR5cGU7XHJcbiJdfQ==
51
+ }], ctorParameters: () => [] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci1ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixNQUFNLEdBSVAsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLEdBQUcsRUFBRSxhQUFhO0lBQ2xCLEtBQUssRUFBRSxlQUFlO0lBQ3RCLEtBQUssRUFBRSxlQUFlO0NBQ3ZCLENBQUM7QUFHRixNQUFNLE9BQU8sWUFBWTtJQUdkLG1CQUFtQixDQUF5QztJQUc1RCxrQkFBa0IsQ0FBeUM7SUFHcEU7UUFSbUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsQyx3QkFBbUIsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLHVCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsRCx1QkFBa0IsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUd2RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVMsa0JBQWtCO1FBRXhCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDckIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUU1RSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsQixzRUFBc0U7WUFDdEUsb0lBQW9JO1lBRXBJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQW9DLEdBQUcsVUFBYTtRQUMzRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDO1FBRTVGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELG1CQUFtQixDQUFnQyxHQUFHLG1CQUFzQjtRQU8xRSxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBWSxFQUFvQyxFQUFFLENBQ2hGLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUF3QixDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs4R0FyRFUsWUFBWTtrSEFBWixZQUFZLGNBREMsTUFBTTs7MkZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOYXZpZ2F0aW9uQ2FuY2VsLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgTmF2aWdhdGlvbkVycm9yLFxyXG4gIE5hdmlnYXRpb25TdGFydCxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyRXZlbnQsXHJcbiAgRXZlbnQsXHJcbiAgUm91dGVyU3RhdGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgY29uc3QgTmF2aWdhdGlvbkV2ZW50ID0ge1xyXG4gIENhbmNlbDogTmF2aWdhdGlvbkNhbmNlbCxcclxuICBFbmQ6IE5hdmlnYXRpb25FbmQsXHJcbiAgRXJyb3I6IE5hdmlnYXRpb25FcnJvcixcclxuICBTdGFydDogTmF2aWdhdGlvblN0YXJ0LFxyXG59O1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFJvdXRlckV2ZW50cyB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cclxuICByZWFkb25seSAjcHJldmlvdXNOYXZpZ2F0aW9uID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICBwcmV2aW91c05hdmlnYXRpb24gPSB0aGlzLiNwcmV2aW91c05hdmlnYXRpb24uYXNSZWFkb25seSgpO1xyXG5cclxuICByZWFkb25seSAjY3VycmVudE5hdmlnYXRpb24gPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIGN1cnJlbnROYXZpZ2F0aW9uID0gdGhpcy4jY3VycmVudE5hdmlnYXRpb24uYXNSZWFkb25seSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMubGlzdGVuVG9OYXZpZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbGlzdGVuVG9OYXZpZ2F0aW9uKCk6IHZvaWQge1xyXG4gICAgKFxyXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcclxuICAgICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkV2ZW50LkVuZCAmJiAhZS51cmwuaW5jbHVkZXMoJ2Vycm9yJykpLFxyXG4gICAgICApIGFzIE9ic2VydmFibGU8TmF2aWdhdGlvbkVuZD5cclxuICAgICkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgLy8gSXQgbXVzdCBiZSBcIk5hdmlnYXRpb25UcmFuc2l0aW9uXCIgYnV0IGl0IGlzIG5vdCBleHBvcnRlZCBpbiBBbmd1bGFyXHJcbiAgICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzljNDg2Yzk2ODI3YTkyODJjYmRiZmYxNzY3NjFiYzk1NTU0YTI2MGIvcGFja2FnZXMvcm91dGVyL3NyYy9uYXZpZ2F0aW9uX3RyYW5zaXRpb24udHMjTDI4MlxyXG5cclxuICAgICAgdGhpcy4jcHJldmlvdXNOYXZpZ2F0aW9uLnNldCh0aGlzLiNjdXJyZW50TmF2aWdhdGlvbigpKTtcclxuICAgICAgdGhpcy4jY3VycmVudE5hdmlnYXRpb24uc2V0KGV2ZW50LnVybCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEV2ZW50czxUIGV4dGVuZHMgUm91dGVyRXZlbnRDb25zdHJ1Y3RvcnM+KC4uLmV2ZW50VHlwZXM6IFQpIHtcclxuICAgIGNvbnN0IGZpbHRlclJvdXRlckV2ZW50cyA9IChldmVudDogRXZlbnQpID0+IGV2ZW50VHlwZXMuc29tZSh0eXBlID0+IGV2ZW50IGluc3RhbmNlb2YgdHlwZSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihmaWx0ZXJSb3V0ZXJFdmVudHMpKTtcclxuICB9XHJcblxyXG4gIGdldE5hdmlnYXRpb25FdmVudHM8VCBleHRlbmRzIE5hdmlnYXRpb25FdmVudEtleXM+KC4uLm5hdmlnYXRpb25FdmVudEtleXM6IFQpIHtcclxuICAgIHR5cGUgRmlsdGVyZWROYXZpZ2F0aW9uRXZlbnQgPSBUIGV4dGVuZHMgKGluZmVyIEtleSlbXVxyXG4gICAgICA/IEtleSBleHRlbmRzIE5hdmlnYXRpb25FdmVudEtleVxyXG4gICAgICAgID8gSW5zdGFuY2VUeXBlPE5hdmlnYXRpb25FdmVudFR5cGVbS2V5XT5cclxuICAgICAgICA6IG5ldmVyXHJcbiAgICAgIDogbmV2ZXI7XHJcblxyXG4gICAgY29uc3QgZmlsdGVyTmF2aWdhdGlvbkV2ZW50cyA9IChldmVudDogRXZlbnQpOiBldmVudCBpcyBGaWx0ZXJlZE5hdmlnYXRpb25FdmVudCA9PlxyXG4gICAgICBuYXZpZ2F0aW9uRXZlbnRLZXlzLnNvbWUoa2V5ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkV2ZW50W2tleV0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZmlsdGVyTmF2aWdhdGlvbkV2ZW50cykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsRXZlbnRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cztcclxuICB9XHJcblxyXG4gIGdldEFsbE5hdmlnYXRpb25FdmVudHMoKSB7XHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoTmF2aWdhdGlvbkV2ZW50KSBhcyBOYXZpZ2F0aW9uRXZlbnRLZXlzO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0TmF2aWdhdGlvbkV2ZW50cyguLi5rZXlzKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgUm91dGVyRXZlbnRDb25zdHJ1Y3RvcnMgPSBbVHlwZTxSb3V0ZXJFdmVudD4sIC4uLlR5cGU8Um91dGVyRXZlbnQ+W11dO1xyXG5cclxudHlwZSBOYXZpZ2F0aW9uRXZlbnRLZXlzID0gW05hdmlnYXRpb25FdmVudEtleSwgLi4uTmF2aWdhdGlvbkV2ZW50S2V5W11dO1xyXG5cclxudHlwZSBOYXZpZ2F0aW9uRXZlbnRUeXBlID0gdHlwZW9mIE5hdmlnYXRpb25FdmVudDtcclxuXHJcbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25FdmVudEtleSA9IGtleW9mIE5hdmlnYXRpb25FdmVudFR5cGU7XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, Component, Input, Injectable, InjectionToken, Inject, Optional, isDevMode, SkipSelf, NgModuleFactory, Injector, Compiler, signal, computed, Directive, EventEmitter, Output, Self, Pipe, NgModule, APP_INITIALIZER, LOCALE_ID, SecurityContext, effect, ElementRef, HostListener, ComponentFactoryResolver, ApplicationRef } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, Component, Input, Injectable, InjectionToken, Inject, Optional, isDevMode, SkipSelf, signal, NgModuleFactory, Injector, Compiler, computed, Directive, EventEmitter, Output, Self, Pipe, NgModule, APP_INITIALIZER, LOCALE_ID, SecurityContext, effect, ElementRef, HostListener, ComponentFactoryResolver, ApplicationRef } from '@angular/core';
3
3
  import { of, BehaviorSubject, Subject, throwError, combineLatest, from, firstValueFrom, lastValueFrom, Observable, timer, pipe, concat, ReplaySubject, Subscription, map as map$1, fromEvent } from 'rxjs';
4
4
  import * as i1$1 from '@angular/router';
5
5
  import { PRIMARY_OUTLET, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, ActivatedRoute, TitleStrategy, RouterModule } from '@angular/router';
@@ -1131,8 +1131,23 @@ const NavigationEvent = {
1131
1131
  Start: NavigationStart,
1132
1132
  };
1133
1133
  class RouterEvents {
1134
- constructor(router) {
1135
- this.router = router;
1134
+ #previousNavigation;
1135
+ #currentNavigation;
1136
+ constructor() {
1137
+ this.router = inject(Router);
1138
+ this.#previousNavigation = signal(undefined);
1139
+ this.previousNavigation = this.#previousNavigation.asReadonly();
1140
+ this.#currentNavigation = signal(undefined);
1141
+ this.currentNavigation = this.#currentNavigation.asReadonly();
1142
+ this.listenToNavigation();
1143
+ }
1144
+ listenToNavigation() {
1145
+ this.router.events.pipe(filter(e => e instanceof NavigationEvent.End && !e.url.includes('error'))).subscribe(event => {
1146
+ // It must be "NavigationTransition" but it is not exported in Angular
1147
+ //https://github.com/angular/angular/blob/9c486c96827a9282cbdbff176761bc95554a260b/packages/router/src/navigation_transition.ts#L282
1148
+ this.#previousNavigation.set(this.#currentNavigation());
1149
+ this.#currentNavigation.set(event.url);
1150
+ });
1136
1151
  }
1137
1152
  getEvents(...eventTypes) {
1138
1153
  const filterRouterEvents = (event) => eventTypes.some(type => event instanceof type);
@@ -1149,13 +1164,13 @@ class RouterEvents {
1149
1164
  const keys = Object.keys(NavigationEvent);
1150
1165
  return this.getNavigationEvents(...keys);
1151
1166
  }
1152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RouterEvents, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
1167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RouterEvents, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1153
1168
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RouterEvents, providedIn: 'root' }); }
1154
1169
  }
1155
1170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RouterEvents, decorators: [{
1156
1171
  type: Injectable,
1157
1172
  args: [{ providedIn: 'root' }]
1158
- }], ctorParameters: () => [{ type: i1$1.Router }] });
1173
+ }], ctorParameters: () => [] });
1159
1174
 
1160
1175
  const APP_INIT_ERROR_HANDLERS = new InjectionToken('APP_INIT_ERROR_HANDLERS');
1161
1176