Skip to content

Commit a7771c0

Browse files
author
Alex Malkevich
committed
fix(aot): allow to build with AOT compiler
1 parent 2ac94b2 commit a7771c0

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

projects/dynamic-menu/src/lib/dynamic-menu-extras.ts

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { InjectionToken, Provider } from '@angular/core';
1+
import { Inject, Injectable, InjectionToken, Provider } from '@angular/core';
22

33
/**
44
* Extra configuration for {@link DynamicMenuModule}
@@ -19,19 +19,30 @@ export interface DynamicMenuExtras {
1919
* DI token that hold extra configuration
2020
* @internal
2121
*/
22-
export class DynamicMenuExtrasToken implements DynamicMenuExtras {
23-
constructor(public listenForConfigChanges = false) {}
22+
export const DynamicMenuExtrasToken = new InjectionToken<DynamicMenuExtras>(
23+
'DynamicMenuExtrasToken',
24+
);
25+
26+
/**
27+
* @internal
28+
*/
29+
@Injectable({ providedIn: 'root' })
30+
export class DynamicMenuExtrasService implements DynamicMenuExtras {
31+
listenForConfigChanges = this.extras.listenForConfigChanges;
32+
33+
constructor(
34+
@Inject(DynamicMenuExtrasToken)
35+
private extras: DynamicMenuExtras = { listenForConfigChanges: false },
36+
) {}
2437
}
2538

2639
/**
2740
* Helper function to provide {@link DYNAMIC_MENU_EXTRAS_TOKEN}
2841
* @internal
2942
*/
30-
export function provideDynamicMenuExtras(
31-
extras: DynamicMenuExtras = {},
32-
): Provider {
43+
export function provideDynamicMenuExtras(extras?: DynamicMenuExtras): Provider {
3344
return {
3445
provide: DynamicMenuExtrasToken,
35-
useValue: new DynamicMenuExtrasToken(extras.listenForConfigChanges),
46+
useValue: extras,
3647
};
3748
}

projects/dynamic-menu/src/lib/dynamic-menu.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
takeUntil,
2020
} from 'rxjs/operators';
2121

22-
import { DynamicMenuExtrasToken } from './dynamic-menu-extras';
22+
import { DynamicMenuExtrasService } from './dynamic-menu-extras';
2323
import { DYNAMIC_MENU_ROUTES_TOKEN } from './dynamic-menu-routes';
2424
import { SUB_MENU_MAP_TOKEN, SubMenuMap } from './sub-menu-map-provider';
2525
import {
@@ -58,7 +58,7 @@ export class DynamicMenuService implements OnDestroy {
5858
refCount(),
5959
);
6060

61-
private configChanged$ = this.dynamicMenuExtrasToken.listenForConfigChanges
61+
private configChanged$ = this.dynamicMenuExtrasService.listenForConfigChanges
6262
? this.router.events.pipe(filter(e => e instanceof RouteConfigLoadEnd))
6363
: EMPTY;
6464

@@ -103,7 +103,7 @@ export class DynamicMenuService implements OnDestroy {
103103
constructor(
104104
private injector: Injector,
105105
private router: Router,
106-
private dynamicMenuExtrasToken: DynamicMenuExtrasToken,
106+
private dynamicMenuExtrasService: DynamicMenuExtrasService,
107107
) {
108108
this.dynamicMenu$.pipe(takeUntil(this.destroyed$)).subscribe();
109109
}

0 commit comments

Comments
 (0)