@luigi-project/client-support-angular 2.9.1-dev.20240410028 → 2.9.1-dev.202404120844

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.
@@ -3,11 +3,11 @@ import * as i0 from "@angular/core";
3
3
  export class LuigiPreloadComponent {
4
4
  constructor() { }
5
5
  ngOnInit() { }
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiPreloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: LuigiPreloadComponent, selector: "lib-client-support-angular", ngImport: i0, template: "<p luigipreload=\"luigipreload\"></p>\n" });
6
8
  }
7
- LuigiPreloadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiPreloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- LuigiPreloadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: LuigiPreloadComponent, selector: "lib-client-support-angular", ngImport: i0, template: "<p luigipreload=\"luigipreload\"></p>\n" });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiPreloadComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiPreloadComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'lib-client-support-angular', template: "<p luigipreload=\"luigipreload\"></p>\n" }]
12
- }], ctorParameters: function () { return []; } });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2kucHJlbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50L2x1aWdpLnByZWxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXN1cHBvcnQtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudC9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsZ0JBQWUsQ0FBQztJQUNoQixRQUFRLEtBQVUsQ0FBQzs7bUhBRlIscUJBQXFCO3VHQUFyQixxQkFBcUIsa0VDUGxDLHlDQUNBOzRGRE1hLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2xpZW50LXN1cHBvcnQtYW5ndWxhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBMdWlnaVByZWxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG4gIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxwIGx1aWdpcHJlbG9hZD1cImx1aWdpcHJlbG9hZFwiPjwvcD5cbiJdfQ==
12
+ }], ctorParameters: () => [] });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2kucHJlbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50L2x1aWdpLnByZWxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXN1cHBvcnQtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudC9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsZ0JBQWUsQ0FBQztJQUNoQixRQUFRLEtBQVUsQ0FBQzt1R0FGUixxQkFBcUI7MkZBQXJCLHFCQUFxQixrRUNQbEMseUNBQ0E7OzJGRE1hLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2xpZW50LXN1cHBvcnQtYW5ndWxhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBMdWlnaVByZWxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG4gIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxwIGx1aWdpcHJlbG9hZD1cImx1aWdpcHJlbG9hZFwiPjwvcD5cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { APP_INITIALIZER, NgModule } from '@angular/core';
2
+ import { LuigiMockEngine } from '@luigi-project/testing-utilities';
3
+ import * as i0 from "@angular/core";
4
+ // @dynamic
5
+ /*
6
+ * This class mocks Luigi Core related functionality.
7
+ *
8
+ * Micro Frontends that use Luigi Client would usually communicate with Luigi Core
9
+ * back and forth. When testing Luigi Client based components, Luigi Core might
10
+ * not be present which leads into limitations on integration/e2e testing for standalone
11
+ * microfrontends.
12
+ *
13
+ * This module adds a hook to the window postMessage API by adding an event listener to the
14
+ * global message event of the window object and mocking the callback.
15
+ * In the normal workflow this message would picked up by Luigi Core which then sends the response back.
16
+ */
17
+ export class LuigiMockModule {
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: LuigiMockModule });
20
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiMockModule, providers: [
21
+ {
22
+ provide: APP_INITIALIZER,
23
+ useFactory: LuigiMockEngine.initPostMessageHook,
24
+ multi: true
25
+ }
26
+ ] });
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiMockModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ providers: [
32
+ {
33
+ provide: APP_INITIALIZER,
34
+ useFactory: LuigiMockEngine.initPostMessageHook,
35
+ multi: true
36
+ }
37
+ ]
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktbW9jay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvbHVpZ2ktbW9jay9sdWlnaS1tb2NrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRW5FLFdBQVc7QUFVWDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxlQUFlO3VHQUFmLGVBQWU7d0dBQWYsZUFBZTt3R0FBZixlQUFlLGFBcEJmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFVBQVUsRUFBRSxlQUFlLENBQUMsbUJBQW1CO2dCQUMvQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzJGQWNVLGVBQWU7a0JBckIzQixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxtQkFBbUI7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTHVpZ2lNb2NrRW5naW5lIH0gZnJvbSAnQGx1aWdpLXByb2plY3QvdGVzdGluZy11dGlsaXRpZXMnO1xuXG4vLyBAZHluYW1pY1xuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogTHVpZ2lNb2NrRW5naW5lLmluaXRQb3N0TWVzc2FnZUhvb2ssXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbi8qXG4gKiBUaGlzIGNsYXNzIG1vY2tzIEx1aWdpIENvcmUgcmVsYXRlZCBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIE1pY3JvIEZyb250ZW5kcyB0aGF0IHVzZSBMdWlnaSBDbGllbnQgd291bGQgdXN1YWxseSBjb21tdW5pY2F0ZSB3aXRoIEx1aWdpIENvcmVcbiAqIGJhY2sgYW5kIGZvcnRoLiBXaGVuIHRlc3RpbmcgTHVpZ2kgQ2xpZW50IGJhc2VkIGNvbXBvbmVudHMsIEx1aWdpIENvcmUgbWlnaHRcbiAqIG5vdCBiZSBwcmVzZW50IHdoaWNoIGxlYWRzIGludG8gbGltaXRhdGlvbnMgb24gaW50ZWdyYXRpb24vZTJlIHRlc3RpbmcgZm9yIHN0YW5kYWxvbmVcbiAqIG1pY3JvZnJvbnRlbmRzLlxuICpcbiAqIFRoaXMgbW9kdWxlIGFkZHMgYSBob29rIHRvIHRoZSB3aW5kb3cgcG9zdE1lc3NhZ2UgQVBJIGJ5IGFkZGluZyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGVcbiAqIGdsb2JhbCBtZXNzYWdlIGV2ZW50IG9mIHRoZSB3aW5kb3cgb2JqZWN0IGFuZCBtb2NraW5nIHRoZSBjYWxsYmFjay5cbiAqIEluIHRoZSBub3JtYWwgd29ya2Zsb3cgdGhpcyBtZXNzYWdlIHdvdWxkIHBpY2tlZCB1cCBieSBMdWlnaSBDb3JlIHdoaWNoIHRoZW4gc2VuZHMgdGhlIHJlc3BvbnNlIGJhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBMdWlnaU1vY2tNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,70 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouteReuseStrategy, RouterModule } from '@angular/router';
3
+ import { LuigiPreloadComponent } from './component/luigi.preload.component';
4
+ import { LuigiContextService } from './service/luigi-context-service';
5
+ import { LuigiContextServiceImpl } from './service/luigi-context.service.impl';
6
+ import { LuigiRouteStrategy } from './route/luigi-route-strategy';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./service/luigi-auto-routing.service";
9
+ import * as i2 from "./service/luigi-context-service";
10
+ import * as i3 from "@angular/router";
11
+ export const staticRoutes = [
12
+ /** here an example if you want to specify that this component is a virtualTree element in Luigi Core navigation*/
13
+ {
14
+ path: 'luigi-client-support-preload',
15
+ component: LuigiPreloadComponent,
16
+ data: { fromVirtualTreeRoot: true }
17
+ },
18
+ /** here an example if you want to specify that this component it is a luigi component and u want to change the navigation in Luigi core*/
19
+ {
20
+ path: 'luigi-client-support-preload',
21
+ component: LuigiPreloadComponent,
22
+ data: { luigiRoute: '/home/reload' }
23
+ },
24
+ /** here an example if you want to reuse the component and not recreating every time you navigate to it (a singleton Component) It requires in your module to redefine */
25
+ {
26
+ path: 'luigi-client-support-preload=component',
27
+ component: LuigiPreloadComponent,
28
+ data: { reuse: true }
29
+ },
30
+ /** here an example if you want to update modalPathParam on internal navigation */
31
+ {
32
+ path: 'luigi-client-support-preload',
33
+ component: LuigiPreloadComponent,
34
+ data: { updateModalPathParam: true }
35
+ }
36
+ ];
37
+ export class LuigiAngularSupportModule {
38
+ constructor(navigation, context) { }
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAngularSupportModule, deps: [{ token: i1.LuigiAutoRoutingService }, { token: i2.LuigiContextService }], target: i0.ɵɵFactoryTarget.NgModule });
40
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: LuigiAngularSupportModule, declarations: [LuigiPreloadComponent], imports: [i3.RouterModule], exports: [LuigiPreloadComponent] });
41
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAngularSupportModule, providers: [
42
+ {
43
+ provide: LuigiContextService,
44
+ useClass: LuigiContextServiceImpl
45
+ },
46
+ {
47
+ provide: RouteReuseStrategy,
48
+ useClass: LuigiRouteStrategy
49
+ }
50
+ ], imports: [RouterModule.forChild(staticRoutes)] });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAngularSupportModule, decorators: [{
53
+ type: NgModule,
54
+ args: [{
55
+ declarations: [LuigiPreloadComponent],
56
+ imports: [RouterModule.forChild(staticRoutes)],
57
+ providers: [
58
+ {
59
+ provide: LuigiContextService,
60
+ useClass: LuigiContextServiceImpl
61
+ },
62
+ {
63
+ provide: RouteReuseStrategy,
64
+ useClass: LuigiRouteStrategy
65
+ }
66
+ ],
67
+ exports: [LuigiPreloadComponent]
68
+ }]
69
+ }], ctorParameters: () => [{ type: i1.LuigiAutoRoutingService }, { type: i2.LuigiContextService }] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2kuYW5ndWxhci5zdXBwb3J0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zdXBwb3J0LWFuZ3VsYXIvc3JjL2xpYi9sdWlnaS5hbmd1bGFyLnN1cHBvcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUVsRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVc7SUFDbEMsa0hBQWtIO0lBQ2xIO1FBQ0UsSUFBSSxFQUFFLDhCQUE4QjtRQUNwQyxTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRTtLQUNwQztJQUNELDBJQUEwSTtJQUMxSTtRQUNFLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFO0tBQ3JDO0lBQ0QsMEtBQTBLO0lBQzFLO1FBQ0UsSUFBSSxFQUFFLHdDQUF3QztRQUM5QyxTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7S0FDdEI7SUFDRCxtRkFBbUY7SUFDbkY7UUFDRSxJQUFJLEVBQUUsOEJBQThCO1FBQ3BDLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsSUFBSSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFO0tBQ3JDO0NBQ0YsQ0FBQztBQWlCRixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQVksVUFBbUMsRUFBRSxPQUE0QixJQUFHLENBQUM7dUdBRHRFLHlCQUF5Qjt3R0FBekIseUJBQXlCLGlCQWRyQixxQkFBcUIseUNBWTFCLHFCQUFxQjt3R0FFcEIseUJBQXlCLGFBWnpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsUUFBUSxFQUFFLHVCQUF1QjthQUNsQztZQUNEO2dCQUNFLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFFBQVEsRUFBRSxrQkFBa0I7YUFDN0I7U0FDRixZQVZTLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDOzsyRkFhbEMseUJBQXlCO2tCQWZyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUM5QyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsUUFBUSxFQUFFLHVCQUF1Qjt5QkFDbEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsUUFBUSxFQUFFLGtCQUFrQjt5QkFDN0I7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlUmV1c2VTdHJhdGVneSwgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTHVpZ2lQcmVsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvbHVpZ2kucHJlbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHVpZ2lDb250ZXh0U2VydmljZSB9IGZyb20gJy4vc2VydmljZS9sdWlnaS1jb250ZXh0LXNlcnZpY2UnO1xuaW1wb3J0IHsgTHVpZ2lDb250ZXh0U2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2UvbHVpZ2ktY29udGV4dC5zZXJ2aWNlLmltcGwnO1xuaW1wb3J0IHsgTHVpZ2lBdXRvUm91dGluZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvbHVpZ2ktYXV0by1yb3V0aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTHVpZ2lSb3V0ZVN0cmF0ZWd5IH0gZnJvbSAnLi9yb3V0ZS9sdWlnaS1yb3V0ZS1zdHJhdGVneSc7XG5cbmV4cG9ydCBjb25zdCBzdGF0aWNSb3V0ZXM6IFJvdXRlcyA9IFtcbiAgLyoqIGhlcmUgYW4gZXhhbXBsZSBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5IHRoYXQgdGhpcyBjb21wb25lbnQgaXMgYSB2aXJ0dWFsVHJlZSBlbGVtZW50IGluIEx1aWdpIENvcmUgbmF2aWdhdGlvbiovXG4gIHtcbiAgICBwYXRoOiAnbHVpZ2ktY2xpZW50LXN1cHBvcnQtcHJlbG9hZCcsXG4gICAgY29tcG9uZW50OiBMdWlnaVByZWxvYWRDb21wb25lbnQsXG4gICAgZGF0YTogeyBmcm9tVmlydHVhbFRyZWVSb290OiB0cnVlIH1cbiAgfSxcbiAgLyoqIGhlcmUgYW4gZXhhbXBsZSBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5IHRoYXQgdGhpcyBjb21wb25lbnQgaXQgaXMgYSBsdWlnaSBjb21wb25lbnQgYW5kIHUgd2FudCB0byBjaGFuZ2UgdGhlIG5hdmlnYXRpb24gaW4gTHVpZ2kgY29yZSovXG4gIHtcbiAgICBwYXRoOiAnbHVpZ2ktY2xpZW50LXN1cHBvcnQtcHJlbG9hZCcsXG4gICAgY29tcG9uZW50OiBMdWlnaVByZWxvYWRDb21wb25lbnQsXG4gICAgZGF0YTogeyBsdWlnaVJvdXRlOiAnL2hvbWUvcmVsb2FkJyB9XG4gIH0sXG4gIC8qKiBoZXJlIGFuIGV4YW1wbGUgaWYgeW91IHdhbnQgdG8gcmV1c2UgdGhlIGNvbXBvbmVudCBhbmQgbm90IHJlY3JlYXRpbmcgZXZlcnkgdGltZSB5b3UgbmF2aWdhdGUgdG8gaXQgKGEgc2luZ2xldG9uIENvbXBvbmVudCkgSXQgcmVxdWlyZXMgaW4geW91ciBtb2R1bGUgdG8gcmVkZWZpbmUgICovXG4gIHtcbiAgICBwYXRoOiAnbHVpZ2ktY2xpZW50LXN1cHBvcnQtcHJlbG9hZD1jb21wb25lbnQnLFxuICAgIGNvbXBvbmVudDogTHVpZ2lQcmVsb2FkQ29tcG9uZW50LFxuICAgIGRhdGE6IHsgcmV1c2U6IHRydWUgfVxuICB9LFxuICAvKiogaGVyZSBhbiBleGFtcGxlIGlmIHlvdSB3YW50IHRvIHVwZGF0ZSBtb2RhbFBhdGhQYXJhbSBvbiBpbnRlcm5hbCBuYXZpZ2F0aW9uICAqL1xuICB7XG4gICAgcGF0aDogJ2x1aWdpLWNsaWVudC1zdXBwb3J0LXByZWxvYWQnLFxuICAgIGNvbXBvbmVudDogTHVpZ2lQcmVsb2FkQ29tcG9uZW50LFxuICAgIGRhdGE6IHsgdXBkYXRlTW9kYWxQYXRoUGFyYW06IHRydWUgfVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtMdWlnaVByZWxvYWRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHN0YXRpY1JvdXRlcyldLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBMdWlnaUNvbnRleHRTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IEx1aWdpQ29udGV4dFNlcnZpY2VJbXBsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBSb3V0ZVJldXNlU3RyYXRlZ3ksXG4gICAgICB1c2VDbGFzczogTHVpZ2lSb3V0ZVN0cmF0ZWd5XG4gICAgfVxuICBdLFxuICBleHBvcnRzOiBbTHVpZ2lQcmVsb2FkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBMdWlnaUFuZ3VsYXJTdXBwb3J0TW9kdWxlIHtcbiAgY29uc3RydWN0b3IobmF2aWdhdGlvbjogTHVpZ2lBdXRvUm91dGluZ1NlcnZpY2UsIGNvbnRleHQ6IEx1aWdpQ29udGV4dFNlcnZpY2UpIHt9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ export class LuigiActivatedRouteSnapshotHelper {
2
+ // tslint:disable-next-line:variable-name
3
+ static _current = null;
4
+ static getCurrent() {
5
+ return LuigiActivatedRouteSnapshotHelper._current;
6
+ }
7
+ static setCurrent(current) {
8
+ LuigiActivatedRouteSnapshotHelper._current = current;
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktYWN0aXZhdGVkLXJvdXRlLXNuYXBzaG90LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zdXBwb3J0LWFuZ3VsYXIvc3JjL2xpYi9yb3V0ZS9sdWlnaS1hY3RpdmF0ZWQtcm91dGUtc25hcHNob3QtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUMseUNBQXlDO0lBQ2pDLE1BQU0sQ0FBQyxRQUFRLEdBQTRCLElBQTBDLENBQUM7SUFFOUYsTUFBTSxDQUFDLFVBQVU7UUFDZixPQUFPLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUErQjtRQUMvQyxpQ0FBaUMsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuZXhwb3J0IGNsYXNzIEx1aWdpQWN0aXZhdGVkUm91dGVTbmFwc2hvdEhlbHBlciB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgc3RhdGljIF9jdXJyZW50OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90ID0gKG51bGwgYXMgdW5rbm93bikgYXMgQWN0aXZhdGVkUm91dGVTbmFwc2hvdDtcblxuICBzdGF0aWMgZ2V0Q3VycmVudCgpOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHtcbiAgICByZXR1cm4gTHVpZ2lBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90SGVscGVyLl9jdXJyZW50O1xuICB9XG5cbiAgc3RhdGljIHNldEN1cnJlbnQoY3VycmVudDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IHZvaWQge1xuICAgIEx1aWdpQWN0aXZhdGVkUm91dGVTbmFwc2hvdEhlbHBlci5fY3VycmVudCA9IGN1cnJlbnQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,143 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NavigationEnd, convertToParamMap } from '@angular/router';
3
+ import { linkManager, uxManager } from '@luigi-project/client';
4
+ import { Subscription } from 'rxjs';
5
+ import { filter } from 'rxjs/operators';
6
+ import { LuigiActivatedRouteSnapshotHelper } from '../route/luigi-activated-route-snapshot-helper';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/router";
9
+ import * as i2 from "./luigi-context-service";
10
+ export class LuigiAutoRoutingService {
11
+ router;
12
+ luigiContextService;
13
+ subscription = new Subscription();
14
+ constructor(router, luigiContextService) {
15
+ this.router = router;
16
+ this.luigiContextService = luigiContextService;
17
+ this.subscription.add(this.router.events.pipe(this.doFilter()).subscribe(this.doSubscription.bind(this)));
18
+ }
19
+ doFilter() {
20
+ return filter((event) => {
21
+ return !!(event instanceof NavigationEnd &&
22
+ event.url &&
23
+ event.url.length > 0 &&
24
+ !(history.state && history.state.luigiInduced));
25
+ });
26
+ }
27
+ /**
28
+ * This method will be take in consideration angular route that having in data object the paramter
29
+ * fromVirtualTreeRoot: true, here an example:
30
+ * {path: 'demo', component: DemoComponent, data:{fromVirtualTreeRoot: true}}
31
+ * Another option is to specify the LuigiPath: if you add in route data luigiRoute:'/xxxx/xxx';
32
+ * in the case we will update the path in LuigiCore navigation, here an example
33
+ * {path: 'demo', component: DemoComponent, data:{luigiRoute: '/home/demo''}}
34
+ * If updateModalPathParam is specified, than modalPathParam will be updated upon internal navigation:
35
+ * {path: 'demo', component: DemoComponent, data:{updateModalPathParam: true}}
36
+ * @param event the NavigationEnd event
37
+ */
38
+ doSubscription(event) {
39
+ let current = LuigiActivatedRouteSnapshotHelper.getCurrent();
40
+ if (!current) {
41
+ current = this.router.routerState.root.snapshot;
42
+ while (current?.children?.length > 0) {
43
+ // handle multiple children
44
+ let primary = null;
45
+ current?.children.forEach(childSnapshot => {
46
+ if (childSnapshot.outlet === 'primary') {
47
+ primary = childSnapshot;
48
+ }
49
+ });
50
+ if (primary) {
51
+ current = primary;
52
+ }
53
+ else if (current.firstChild) {
54
+ current = current.firstChild;
55
+ }
56
+ else {
57
+ break;
58
+ }
59
+ }
60
+ }
61
+ if (current?.data) {
62
+ const ux = uxManager();
63
+ let lm = linkManager().withoutSync();
64
+ let route;
65
+ if (current.data.luigiRoute) {
66
+ route = this.getResolvedLuigiRoute(current);
67
+ if (current.data.fromContext) {
68
+ if (!this.luigiContextService.getContext()) {
69
+ console.debug('Ignoring auto navigation request, luigi context not set');
70
+ return;
71
+ }
72
+ if (current.data.fromContext === true) {
73
+ lm = lm.fromClosestContext();
74
+ }
75
+ else {
76
+ lm = lm.fromContext(current.data.fromContext);
77
+ }
78
+ }
79
+ }
80
+ else if (current.data.fromVirtualTreeRoot) {
81
+ let url = event.url;
82
+ const truncate = current.data.fromVirtualTreeRoot.truncate;
83
+ if (truncate) {
84
+ if (truncate.indexOf('*') === 0) {
85
+ const index = url.indexOf(truncate.substr(1));
86
+ url = url.substr(index + truncate.length - 1);
87
+ }
88
+ else if (url.indexOf(truncate) === 0) {
89
+ url = url.substr(truncate.length);
90
+ }
91
+ }
92
+ route = url;
93
+ console.debug('Calling fromVirtualTreeRoot for url ==> ' + route);
94
+ lm = lm.fromVirtualTreeRoot();
95
+ }
96
+ if (ux.isModal()) {
97
+ if (current.data.updateModalDataPath) {
98
+ lm.updateModalPathInternalNavigation(route, {}, current.data.addHistoryEntry);
99
+ }
100
+ }
101
+ else if (route) {
102
+ lm.navigate(route);
103
+ }
104
+ }
105
+ }
106
+ getResolvedLuigiRoute(current) {
107
+ let route = current.data.luigiRoute;
108
+ const allParams = this.getAllParamsFromParents(current);
109
+ if (!route || !allParams) {
110
+ return route;
111
+ }
112
+ const pmap = convertToParamMap(allParams);
113
+ pmap.keys.forEach(key => {
114
+ pmap.getAll(key).forEach(param => {
115
+ route = route?.replace(':' + key, param);
116
+ });
117
+ });
118
+ return route;
119
+ }
120
+ getAllParamsFromParents(current) {
121
+ let allParams = {};
122
+ let currentToCheck = current;
123
+ while (currentToCheck) {
124
+ if (currentToCheck.params) {
125
+ allParams = { ...allParams, ...currentToCheck.params };
126
+ }
127
+ currentToCheck = currentToCheck.parent;
128
+ }
129
+ return allParams;
130
+ }
131
+ ngOnDestroy() {
132
+ this.subscription.unsubscribe();
133
+ }
134
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAutoRoutingService, deps: [{ token: i1.Router }, { token: i2.LuigiContextService }], target: i0.ɵɵFactoryTarget.Injectable });
135
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAutoRoutingService, providedIn: 'root' });
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAutoRoutingService, decorators: [{
138
+ type: Injectable,
139
+ args: [{
140
+ providedIn: 'root'
141
+ }]
142
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.LuigiContextService }] });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktYXV0by1yb3V0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1hdXRvLXJvdXRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBMEIsYUFBYSxFQUFpQyxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7O0FBTW5HLE1BQU0sT0FBTyx1QkFBdUI7SUFHZDtJQUF3QjtJQUZwQyxZQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFeEQsWUFBb0IsTUFBYyxFQUFVLG1CQUF3QztRQUFoRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUNsRixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWUsQ0FBQyxDQUNqRyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBd0IsRUFBRTtZQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUNQLEtB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LEtBQUssQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxPQUErQjtRQUNyRCxJQUFJLFNBQVMsR0FBOEIsRUFBRSxDQUFDO1FBQzlDLElBQUksY0FBYyxHQUErQixPQUFPLENBQUM7UUFFekQsT0FBTyxjQUFjLEVBQUU7WUFDckIsSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFO2dCQUN6QixTQUFTLEdBQUcsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN4RDtZQUNELGNBQWMsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7dUdBdklVLHVCQUF1QjsyR0FBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25FbmQsIFBhcmFtTWFwLCBSb3V0ZXIsIFJvdXRlckV2ZW50LCBjb252ZXJ0VG9QYXJhbU1hcCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBsaW5rTWFuYWdlciwgdXhNYW5hZ2VyIH0gZnJvbSAnQGx1aWdpLXByb2plY3QvY2xpZW50JztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTHVpZ2lBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90SGVscGVyIH0gZnJvbSAnLi4vcm91dGUvbHVpZ2ktYWN0aXZhdGVkLXJvdXRlLXNuYXBzaG90LWhlbHBlcic7XG5pbXBvcnQgeyBMdWlnaUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9sdWlnaS1jb250ZXh0LXNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMdWlnaUF1dG9Sb3V0aW5nU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBsdWlnaUNvbnRleHRTZXJ2aWNlOiBMdWlnaUNvbnRleHRTZXJ2aWNlKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGhpcy5kb0ZpbHRlcigpKS5zdWJzY3JpYmUodGhpcy5kb1N1YnNjcmlwdGlvbi5iaW5kKHRoaXMpIGFzICgpID0+IHZvaWQpXG4gICAgKTtcbiAgfVxuXG4gIGRvRmlsdGVyKCk6IE9wZXJhdG9yRnVuY3Rpb248dW5rbm93biwgUm91dGVyRXZlbnQ+IHtcbiAgICByZXR1cm4gZmlsdGVyKChldmVudCk6IGV2ZW50IGlzIFJvdXRlckV2ZW50ID0+IHtcbiAgICAgIHJldHVybiAhIShcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmXG4gICAgICAgIGV2ZW50LnVybCAmJlxuICAgICAgICBldmVudC51cmwubGVuZ3RoID4gMCAmJlxuICAgICAgICAhKGhpc3Rvcnkuc3RhdGUgJiYgaGlzdG9yeS5zdGF0ZS5sdWlnaUluZHVjZWQpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgdGFrZSBpbiBjb25zaWRlcmF0aW9uIGFuZ3VsYXIgcm91dGUgdGhhdCBoYXZpbmcgaW4gZGF0YSBvYmplY3QgdGhlIHBhcmFtdGVyXG4gICAqIGZyb21WaXJ0dWFsVHJlZVJvb3Q6IHRydWUsIGhlcmUgYW4gZXhhbXBsZTpcbiAgICoge3BhdGg6ICdkZW1vJywgY29tcG9uZW50OiBEZW1vQ29tcG9uZW50LCBkYXRhOntmcm9tVmlydHVhbFRyZWVSb290OiB0cnVlfX1cbiAgICogQW5vdGhlciBvcHRpb24gaXMgdG8gc3BlY2lmeSB0aGUgTHVpZ2lQYXRoOiBpZiB5b3UgYWRkIGluIHJvdXRlIGRhdGEgbHVpZ2lSb3V0ZTonL3h4eHgveHh4JztcbiAgICogaW4gdGhlIGNhc2Ugd2Ugd2lsbCB1cGRhdGUgdGhlIHBhdGggaW4gTHVpZ2lDb3JlIG5hdmlnYXRpb24sIGhlcmUgYW4gZXhhbXBsZVxuICAgKiB7cGF0aDogJ2RlbW8nLCBjb21wb25lbnQ6IERlbW9Db21wb25lbnQsIGRhdGE6e2x1aWdpUm91dGU6ICcvaG9tZS9kZW1vJyd9fVxuICAgKiBJZiB1cGRhdGVNb2RhbFBhdGhQYXJhbSBpcyBzcGVjaWZpZWQsIHRoYW4gbW9kYWxQYXRoUGFyYW0gd2lsbCBiZSB1cGRhdGVkIHVwb24gaW50ZXJuYWwgbmF2aWdhdGlvbjpcbiAgICoge3BhdGg6ICdkZW1vJywgY29tcG9uZW50OiBEZW1vQ29tcG9uZW50LCBkYXRhOnt1cGRhdGVNb2RhbFBhdGhQYXJhbTogdHJ1ZX19XG4gICAqIEBwYXJhbSBldmVudCB0aGUgTmF2aWdhdGlvbkVuZCBldmVudFxuICAgKi9cbiAgZG9TdWJzY3JpcHRpb24oZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICBsZXQgY3VycmVudDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IG51bGwgPSBMdWlnaUFjdGl2YXRlZFJvdXRlU25hcHNob3RIZWxwZXIuZ2V0Q3VycmVudCgpO1xuXG4gICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICBjdXJyZW50ID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdC5zbmFwc2hvdDtcbiAgICAgIHdoaWxlIChjdXJyZW50Py5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBoYW5kbGUgbXVsdGlwbGUgY2hpbGRyZW5cbiAgICAgICAgbGV0IHByaW1hcnk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBjdXJyZW50Py5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkU25hcHNob3QgPT4ge1xuICAgICAgICAgIGlmIChjaGlsZFNuYXBzaG90Lm91dGxldCA9PT0gJ3ByaW1hcnknKSB7XG4gICAgICAgICAgICBwcmltYXJ5ID0gY2hpbGRTbmFwc2hvdDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocHJpbWFyeSkge1xuICAgICAgICAgIGN1cnJlbnQgPSBwcmltYXJ5O1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnQuZmlyc3RDaGlsZCkge1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmZpcnN0Q2hpbGQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGN1cnJlbnQ/LmRhdGEpIHtcbiAgICAgIGNvbnN0IHV4ID0gdXhNYW5hZ2VyKCk7XG4gICAgICBsZXQgbG0gPSBsaW5rTWFuYWdlcigpLndpdGhvdXRTeW5jKCk7XG4gICAgICBsZXQgcm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGN1cnJlbnQuZGF0YS5sdWlnaVJvdXRlKSB7XG4gICAgICAgIHJvdXRlID0gdGhpcy5nZXRSZXNvbHZlZEx1aWdpUm91dGUoY3VycmVudCk7XG4gICAgICAgIGlmIChjdXJyZW50LmRhdGEuZnJvbUNvbnRleHQpIHtcbiAgICAgICAgICBpZiAoIXRoaXMubHVpZ2lDb250ZXh0U2VydmljZS5nZXRDb250ZXh0KCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ0lnbm9yaW5nIGF1dG8gbmF2aWdhdGlvbiByZXF1ZXN0LCBsdWlnaSBjb250ZXh0IG5vdCBzZXQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgbG0gPSBsbS5mcm9tQ2xvc2VzdENvbnRleHQoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG0gPSBsbS5mcm9tQ29udGV4dChjdXJyZW50LmRhdGEuZnJvbUNvbnRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjdXJyZW50LmRhdGEuZnJvbVZpcnR1YWxUcmVlUm9vdCkge1xuICAgICAgICBsZXQgdXJsID0gZXZlbnQudXJsO1xuICAgICAgICBjb25zdCB0cnVuY2F0ZSA9IGN1cnJlbnQuZGF0YS5mcm9tVmlydHVhbFRyZWVSb290LnRydW5jYXRlO1xuICAgICAgICBpZiAodHJ1bmNhdGUpIHtcbiAgICAgICAgICBpZiAodHJ1bmNhdGUuaW5kZXhPZignKicpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHVybC5pbmRleE9mKHRydW5jYXRlLnN1YnN0cigxKSk7XG4gICAgICAgICAgICB1cmwgPSB1cmwuc3Vic3RyKGluZGV4ICsgdHJ1bmNhdGUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh1cmwuaW5kZXhPZih0cnVuY2F0ZSkgPT09IDApIHtcbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHIodHJ1bmNhdGUubGVuZ3RoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcm91dGUgPSB1cmw7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoJ0NhbGxpbmcgZnJvbVZpcnR1YWxUcmVlUm9vdCBmb3IgdXJsID09PiAnICsgcm91dGUpO1xuICAgICAgICBsbSA9IGxtLmZyb21WaXJ0dWFsVHJlZVJvb3QoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHV4LmlzTW9kYWwoKSkge1xuICAgICAgICBpZiAoY3VycmVudC5kYXRhLnVwZGF0ZU1vZGFsRGF0YVBhdGgpIHtcbiAgICAgICAgICBsbS51cGRhdGVNb2RhbFBhdGhJbnRlcm5hbE5hdmlnYXRpb24ocm91dGUgYXMgc3RyaW5nLCB7fSwgY3VycmVudC5kYXRhLmFkZEhpc3RvcnlFbnRyeSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocm91dGUpIHtcbiAgICAgICAgbG0ubmF2aWdhdGUocm91dGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFJlc29sdmVkTHVpZ2lSb3V0ZShcbiAgICBjdXJyZW50OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90XG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBjdXJyZW50LmRhdGEubHVpZ2lSb3V0ZTtcbiAgICBjb25zdCBhbGxQYXJhbXMgPSB0aGlzLmdldEFsbFBhcmFtc0Zyb21QYXJlbnRzKGN1cnJlbnQpO1xuXG4gICAgaWYgKCFyb3V0ZSB8fCAhYWxsUGFyYW1zKSB7XG4gICAgICByZXR1cm4gcm91dGU7XG4gICAgfVxuXG4gICAgY29uc3QgcG1hcDogUGFyYW1NYXAgPSBjb252ZXJ0VG9QYXJhbU1hcChhbGxQYXJhbXMpO1xuXG4gICAgcG1hcC5rZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHBtYXAuZ2V0QWxsKGtleSkuZm9yRWFjaChwYXJhbSA9PiB7XG4gICAgICAgIHJvdXRlID0gcm91dGU/LnJlcGxhY2UoJzonICsga2V5LCBwYXJhbSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiByb3V0ZTtcbiAgfVxuXG4gIGdldEFsbFBhcmFtc0Zyb21QYXJlbnRzKGN1cnJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgYWxsUGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgbGV0IGN1cnJlbnRUb0NoZWNrOkFjdGl2YXRlZFJvdXRlU25hcHNob3R8bnVsbCA9IGN1cnJlbnQ7XG5cbiAgICB3aGlsZSAoY3VycmVudFRvQ2hlY2spIHtcbiAgICAgIGlmIChjdXJyZW50VG9DaGVjay5wYXJhbXMpIHtcbiAgICAgICAgYWxsUGFyYW1zID0geyAuLi5hbGxQYXJhbXMsIC4uLmN1cnJlbnRUb0NoZWNrLnBhcmFtcyB9O1xuICAgICAgfVxuICAgICAgY3VycmVudFRvQ2hlY2sgPSBjdXJyZW50VG9DaGVjay5wYXJlbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFsbFBhcmFtcztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { first } from 'rxjs/operators';
4
+ import { addInitListener, addContextUpdateListener } from '@luigi-project/client';
5
+ import { ILuigiContextTypes } from './luigi-context-service';
6
+ import * as i0 from "@angular/core";
7
+ export class LuigiContextServiceImpl {
8
+ zone;
9
+ subject = new ReplaySubject(1);
10
+ currentContext = null;
11
+ constructor(zone) {
12
+ this.zone = zone;
13
+ addInitListener(initContext => {
14
+ this.addListener(ILuigiContextTypes.INIT, initContext);
15
+ });
16
+ addContextUpdateListener(updateContext => {
17
+ this.addListener(ILuigiContextTypes.UPDATE, updateContext);
18
+ });
19
+ }
20
+ contextObservable() {
21
+ return this.subject.asObservable();
22
+ }
23
+ /**
24
+ * Get latest context object retrieved from luigi core application or empty object, if not yet set.
25
+ */
26
+ getContext() {
27
+ return (this.currentContext && this.currentContext.context) || {};
28
+ }
29
+ /**
30
+ * Get a promise that resolves when context is set.
31
+ */
32
+ getContextAsync() {
33
+ return new Promise((resolve, reject) => {
34
+ if (this.isObject(this.getContext()) && Object.keys(this.getContext()).length > 0) {
35
+ resolve(this.getContext());
36
+ }
37
+ else {
38
+ this.contextObservable()
39
+ .pipe(first())
40
+ .subscribe(ctx => {
41
+ resolve(ctx.context);
42
+ });
43
+ }
44
+ });
45
+ }
46
+ /**
47
+ * Checks if input is an object.
48
+ * @param objectToCheck mixed
49
+ * @returns {boolean}
50
+ */
51
+ isObject(objectToCheck) {
52
+ return !!(objectToCheck && typeof objectToCheck === 'object' && !Array.isArray(objectToCheck));
53
+ }
54
+ /**
55
+ * Set current context
56
+ */
57
+ setContext(obj) {
58
+ this.zone.run(() => {
59
+ this.currentContext = obj;
60
+ this.subject.next(obj);
61
+ });
62
+ }
63
+ addListener(contextType, context) {
64
+ this.setContext({
65
+ contextType,
66
+ context
67
+ });
68
+ }
69
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiContextServiceImpl, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
70
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiContextServiceImpl, providedIn: 'root' });
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiContextServiceImpl, decorators: [{
73
+ type: Injectable,
74
+ args: [{
75
+ providedIn: 'root'
76
+ }]
77
+ }], ctorParameters: () => [{ type: i0.NgZone }] });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktY29udGV4dC5zZXJ2aWNlLmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1jb250ZXh0LnNlcnZpY2UuaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBVyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQW1CLGtCQUFrQixFQUF1QixNQUFNLHlCQUF5QixDQUFDOztBQUtuRyxNQUFNLE9BQU8sdUJBQXVCO0lBSWQ7SUFIWixPQUFPLEdBQW1DLElBQUksYUFBYSxDQUFrQixDQUFDLENBQUMsQ0FBQztJQUNoRixjQUFjLEdBQXFCLElBQW1DLENBQUM7SUFFL0UsWUFBb0IsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDOUIsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsd0JBQXdCLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2pGLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsaUJBQWlCLEVBQUU7cUJBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztxQkFDYixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7YUFDTjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxRQUFRLENBQUMsYUFBa0I7UUFDakMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRDs7T0FFRztJQUNPLFVBQVUsQ0FBQyxHQUFvQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLFdBQStCLEVBQUUsT0FBZ0I7UUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLFdBQVc7WUFDWCxPQUFPO1NBQ1csQ0FBQyxDQUFDO0lBQ3hCLENBQUM7dUdBakVVLHVCQUF1QjsyR0FBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udGV4dCwgYWRkSW5pdExpc3RlbmVyLCBhZGRDb250ZXh0VXBkYXRlTGlzdGVuZXIgfSBmcm9tICdAbHVpZ2ktcHJvamVjdC9jbGllbnQnO1xuaW1wb3J0IHsgSUNvbnRleHRNZXNzYWdlLCBJTHVpZ2lDb250ZXh0VHlwZXMsIEx1aWdpQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2x1aWdpLWNvbnRleHQtc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEx1aWdpQ29udGV4dFNlcnZpY2VJbXBsIGltcGxlbWVudHMgTHVpZ2lDb250ZXh0U2VydmljZSB7XG4gIHByaXZhdGUgc3ViamVjdDogUmVwbGF5U3ViamVjdDxJQ29udGV4dE1lc3NhZ2U+ID0gbmV3IFJlcGxheVN1YmplY3Q8SUNvbnRleHRNZXNzYWdlPigxKTtcbiAgcHJpdmF0ZSBjdXJyZW50Q29udGV4dDogSUNvbnRleHRNZXNzYWdlID0gKG51bGwgYXMgdW5rbm93bikgYXMgSUNvbnRleHRNZXNzYWdlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgYWRkSW5pdExpc3RlbmVyKGluaXRDb250ZXh0ID0+IHtcbiAgICAgIHRoaXMuYWRkTGlzdGVuZXIoSUx1aWdpQ29udGV4dFR5cGVzLklOSVQsIGluaXRDb250ZXh0KTtcbiAgICB9KTtcbiAgICBhZGRDb250ZXh0VXBkYXRlTGlzdGVuZXIodXBkYXRlQ29udGV4dCA9PiB7XG4gICAgICB0aGlzLmFkZExpc3RlbmVyKElMdWlnaUNvbnRleHRUeXBlcy5VUERBVEUsIHVwZGF0ZUNvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHRPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8SUNvbnRleHRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGF0ZXN0IGNvbnRleHQgb2JqZWN0IHJldHJpZXZlZCBmcm9tIGx1aWdpIGNvcmUgYXBwbGljYXRpb24gb3IgZW1wdHkgb2JqZWN0LCBpZiBub3QgeWV0IHNldC5cbiAgICovXG4gIHB1YmxpYyBnZXRDb250ZXh0KCk6IENvbnRleHQge1xuICAgIHJldHVybiAodGhpcy5jdXJyZW50Q29udGV4dCAmJiB0aGlzLmN1cnJlbnRDb250ZXh0LmNvbnRleHQpIHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGNvbnRleHQgaXMgc2V0LlxuICAgKi9cbiAgcHVibGljIGdldENvbnRleHRBc3luYygpOiBQcm9taXNlPENvbnRleHQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Q29udGV4dD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPYmplY3QodGhpcy5nZXRDb250ZXh0KCkpICYmIE9iamVjdC5rZXlzKHRoaXMuZ2V0Q29udGV4dCgpKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5nZXRDb250ZXh0KCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb250ZXh0T2JzZXJ2YWJsZSgpXG4gICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKGN0eCA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGN0eC5jb250ZXh0KTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgaW5wdXQgaXMgYW4gb2JqZWN0LlxuICAgKiBAcGFyYW0gb2JqZWN0VG9DaGVjayBtaXhlZFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHByaXZhdGUgaXNPYmplY3Qob2JqZWN0VG9DaGVjazogYW55KSB7XG4gICAgcmV0dXJuICEhKG9iamVjdFRvQ2hlY2sgJiYgdHlwZW9mIG9iamVjdFRvQ2hlY2sgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KG9iamVjdFRvQ2hlY2spKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY3VycmVudCBjb250ZXh0XG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0Q29udGV4dChvYmo6IElDb250ZXh0TWVzc2FnZSk6IHZvaWQge1xuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50Q29udGV4dCA9IG9iajtcbiAgICAgIHRoaXMuc3ViamVjdC5uZXh0KG9iaik7XG4gICAgfSk7XG4gIH1cblxuICBhZGRMaXN0ZW5lcihjb250ZXh0VHlwZTogSUx1aWdpQ29udGV4dFR5cGVzLCBjb250ZXh0OiBDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5zZXRDb250ZXh0KHtcbiAgICAgIGNvbnRleHRUeXBlLFxuICAgICAgY29udGV4dFxuICAgIH0gYXMgSUNvbnRleHRNZXNzYWdlKTtcbiAgfVxufVxuIl19
@@ -10,13 +10,13 @@ import { LuigiMockEngine } from '@luigi-project/testing-utilities';
10
10
  class LuigiPreloadComponent {
11
11
  constructor() { }
12
12
  ngOnInit() { }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiPreloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: LuigiPreloadComponent, selector: "lib-client-support-angular", ngImport: i0, template: "<p luigipreload=\"luigipreload\"></p>\n" });
13
15
  }
14
- LuigiPreloadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiPreloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- LuigiPreloadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: LuigiPreloadComponent, selector: "lib-client-support-angular", ngImport: i0, template: "<p luigipreload=\"luigipreload\"></p>\n" });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiPreloadComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiPreloadComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'lib-client-support-angular', template: "<p luigipreload=\"luigipreload\"></p>\n" }]
19
- }], ctorParameters: function () { return []; } });
19
+ }], ctorParameters: () => [] });
20
20
 
21
21
  class LuigiContextService {
22
22
  }
@@ -27,10 +27,11 @@ var ILuigiContextTypes;
27
27
  })(ILuigiContextTypes || (ILuigiContextTypes = {}));
28
28
 
29
29
  class LuigiContextServiceImpl {
30
+ zone;
31
+ subject = new ReplaySubject(1);
32
+ currentContext = null;
30
33
  constructor(zone) {
31
34
  this.zone = zone;
32
- this.subject = new ReplaySubject(1);
33
- this.currentContext = null;
34
35
  addInitListener(initContext => {
35
36
  this.addListener(ILuigiContextTypes.INIT, initContext);
36
37
  });
@@ -87,17 +88,19 @@ class LuigiContextServiceImpl {
87
88
  context
88
89
  });
89
90
  }
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiContextServiceImpl, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
92
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiContextServiceImpl, providedIn: 'root' });
90
93
  }
91
- LuigiContextServiceImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiContextServiceImpl, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
92
- LuigiContextServiceImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiContextServiceImpl, providedIn: 'root' });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiContextServiceImpl, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiContextServiceImpl, decorators: [{
94
95
  type: Injectable,
95
96
  args: [{
96
97
  providedIn: 'root'
97
98
  }]
98
- }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
99
+ }], ctorParameters: () => [{ type: i0.NgZone }] });
99
100
 
100
101
  class LuigiActivatedRouteSnapshotHelper {
102
+ // tslint:disable-next-line:variable-name
103
+ static _current = null;
101
104
  static getCurrent() {
102
105
  return LuigiActivatedRouteSnapshotHelper._current;
103
106
  }
@@ -105,8 +108,6 @@ class LuigiActivatedRouteSnapshotHelper {
105
108
  LuigiActivatedRouteSnapshotHelper._current = current;
106
109
  }
107
110
  }
108
- // tslint:disable-next-line:variable-name
109
- LuigiActivatedRouteSnapshotHelper._current = null;
110
111
 
111
112
  class LuigiRouteStrategy extends BaseRouteReuseStrategy {
112
113
  retrieve(route) {
@@ -116,10 +117,12 @@ class LuigiRouteStrategy extends BaseRouteReuseStrategy {
116
117
  }
117
118
 
118
119
  class LuigiAutoRoutingService {
120
+ router;
121
+ luigiContextService;
122
+ subscription = new Subscription();
119
123
  constructor(router, luigiContextService) {
120
124
  this.router = router;
121
125
  this.luigiContextService = luigiContextService;
122
- this.subscription = new Subscription();
123
126
  this.subscription.add(this.router.events.pipe(this.doFilter()).subscribe(this.doSubscription.bind(this)));
124
127
  }
125
128
  doFilter() {
@@ -237,15 +240,15 @@ class LuigiAutoRoutingService {
237
240
  ngOnDestroy() {
238
241
  this.subscription.unsubscribe();
239
242
  }
243
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAutoRoutingService, deps: [{ token: i1.Router }, { token: LuigiContextService }], target: i0.ɵɵFactoryTarget.Injectable });
244
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAutoRoutingService, providedIn: 'root' });
240
245
  }
241
- LuigiAutoRoutingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAutoRoutingService, deps: [{ token: i1.Router }, { token: LuigiContextService }], target: i0.ɵɵFactoryTarget.Injectable });
242
- LuigiAutoRoutingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAutoRoutingService, providedIn: 'root' });
243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAutoRoutingService, decorators: [{
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAutoRoutingService, decorators: [{
244
247
  type: Injectable,
245
248
  args: [{
246
249
  providedIn: 'root'
247
250
  }]
248
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: LuigiContextService }]; } });
251
+ }], ctorParameters: () => [{ type: i1.Router }, { type: LuigiContextService }] });
249
252
 
250
253
  const staticRoutes = [
251
254
  /** here an example if you want to specify that this component is a virtualTree element in Luigi Core navigation*/
@@ -275,20 +278,20 @@ const staticRoutes = [
275
278
  ];
276
279
  class LuigiAngularSupportModule {
277
280
  constructor(navigation, context) { }
281
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAngularSupportModule, deps: [{ token: LuigiAutoRoutingService }, { token: LuigiContextService }], target: i0.ɵɵFactoryTarget.NgModule });
282
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: LuigiAngularSupportModule, declarations: [LuigiPreloadComponent], imports: [i1.RouterModule], exports: [LuigiPreloadComponent] });
283
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAngularSupportModule, providers: [
284
+ {
285
+ provide: LuigiContextService,
286
+ useClass: LuigiContextServiceImpl
287
+ },
288
+ {
289
+ provide: RouteReuseStrategy,
290
+ useClass: LuigiRouteStrategy
291
+ }
292
+ ], imports: [RouterModule.forChild(staticRoutes)] });
278
293
  }
279
- LuigiAngularSupportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAngularSupportModule, deps: [{ token: LuigiAutoRoutingService }, { token: LuigiContextService }], target: i0.ɵɵFactoryTarget.NgModule });
280
- LuigiAngularSupportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: LuigiAngularSupportModule, declarations: [LuigiPreloadComponent], imports: [i1.RouterModule], exports: [LuigiPreloadComponent] });
281
- LuigiAngularSupportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAngularSupportModule, providers: [
282
- {
283
- provide: LuigiContextService,
284
- useClass: LuigiContextServiceImpl
285
- },
286
- {
287
- provide: RouteReuseStrategy,
288
- useClass: LuigiRouteStrategy
289
- }
290
- ], imports: [RouterModule.forChild(staticRoutes)] });
291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAngularSupportModule, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiAngularSupportModule, decorators: [{
292
295
  type: NgModule,
293
296
  args: [{
294
297
  declarations: [LuigiPreloadComponent],
@@ -305,7 +308,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
305
308
  ],
306
309
  exports: [LuigiPreloadComponent]
307
310
  }]
308
- }], ctorParameters: function () { return [{ type: LuigiAutoRoutingService }, { type: LuigiContextService }]; } });
311
+ }], ctorParameters: () => [{ type: LuigiAutoRoutingService }, { type: LuigiContextService }] });
309
312
 
310
313
  // @dynamic
311
314
  /*
@@ -321,17 +324,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
321
324
  * In the normal workflow this message would picked up by Luigi Core which then sends the response back.
322
325
  */
323
326
  class LuigiMockModule {
327
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
328
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: LuigiMockModule });
329
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiMockModule, providers: [
330
+ {
331
+ provide: APP_INITIALIZER,
332
+ useFactory: LuigiMockEngine.initPostMessageHook,
333
+ multi: true
334
+ }
335
+ ] });
324
336
  }
325
- LuigiMockModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
326
- LuigiMockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: LuigiMockModule });
327
- LuigiMockModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiMockModule, providers: [
328
- {
329
- provide: APP_INITIALIZER,
330
- useFactory: LuigiMockEngine.initPostMessageHook,
331
- multi: true
332
- }
333
- ] });
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiMockModule, decorators: [{
337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LuigiMockModule, decorators: [{
335
338
  type: NgModule,
336
339
  args: [{
337
340
  providers: [