@luigi-project/client-support-angular 2.18.1-dev.20241240033 → 2.18.1-dev.20241240825

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/esm2022/lib/component/luigi.preload.component.mjs +11 -0
  2. package/esm2022/lib/luigi-mock/luigi-mock.module.mjs +40 -0
  3. package/esm2022/lib/luigi.angular.support.module.mjs +70 -0
  4. package/esm2022/lib/route/luigi-activated-route-snapshot-helper.mjs +11 -0
  5. package/esm2022/lib/service/luigi-auto-routing.service.mjs +135 -0
  6. package/esm2022/lib/service/luigi-context.model.mjs +6 -0
  7. package/esm2022/lib/service/luigi-context.service.impl.mjs +75 -0
  8. package/esm2022/lib/service/luigi-context.service.mjs +3 -0
  9. package/esm2022/public-api.mjs +11 -0
  10. package/{fesm2020 → fesm2022}/luigi-project-client-support-angular.mjs +162 -168
  11. package/fesm2022/luigi-project-client-support-angular.mjs.map +1 -0
  12. package/lib/component/luigi.preload.component.d.ts +2 -5
  13. package/lib/luigi.angular.support.module.d.ts +0 -3
  14. package/lib/service/luigi-auto-routing.service.d.ts +5 -7
  15. package/lib/service/luigi-context.model.d.ts +9 -0
  16. package/lib/service/{luigi-context-service.d.ts → luigi-context.service.d.ts} +1 -8
  17. package/lib/service/luigi-context.service.impl.d.ts +6 -6
  18. package/package.json +7 -13
  19. package/public-api.d.ts +4 -3
  20. package/esm2020/lib/component/luigi.preload.component.mjs +0 -13
  21. package/esm2020/lib/luigi-mock/luigi-mock.module.mjs +0 -40
  22. package/esm2020/lib/luigi.angular.support.module.mjs +0 -70
  23. package/esm2020/lib/route/luigi-activated-route-snapshot-helper.mjs +0 -11
  24. package/esm2020/lib/service/luigi-auto-routing.service.mjs +0 -141
  25. package/esm2020/lib/service/luigi-context-service.mjs +0 -8
  26. package/esm2020/lib/service/luigi-context.service.impl.mjs +0 -77
  27. package/esm2020/public-api.mjs +0 -10
  28. package/fesm2015/luigi-project-client-support-angular.mjs +0 -357
  29. package/fesm2015/luigi-project-client-support-angular.mjs.map +0 -1
  30. package/fesm2020/luigi-project-client-support-angular.mjs.map +0 -1
  31. /package/{esm2020 → esm2022}/lib/route/luigi-route-strategy.mjs +0 -0
  32. /package/{esm2020 → esm2022}/luigi-project-client-support-angular.mjs +0 -0
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LuigiPreloadComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiPreloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: LuigiPreloadComponent, selector: "lib-client-support-angular", ngImport: i0, template: "<p luigipreload=\"luigipreload\"></p>\n" }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiPreloadComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'lib-client-support-angular', template: "<p luigipreload=\"luigipreload\"></p>\n" }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2kucHJlbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50L2x1aWdpLnByZWxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXN1cHBvcnQtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudC9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxxQkFBcUI7K0dBQXJCLHFCQUFxQjttR0FBckIscUJBQXFCLGtFQ05sQyx5Q0FDQTs7NEZES2EscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2xpZW50LXN1cHBvcnQtYW5ndWxhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTHVpZ2lQcmVsb2FkQ29tcG9uZW50IHt9XG4iLCI8cCBsdWlnaXByZWxvYWQ9XCJsdWlnaXByZWxvYWRcIj48L3A+XG4iXX0=
@@ -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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: LuigiMockModule }); }
20
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", 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: "18.2.10", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktbW9jay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvbHVpZ2ktbW9jay9sdWlnaS1tb2NrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRW5FLFdBQVc7QUFVWDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxlQUFlOytHQUFmLGVBQWU7Z0hBQWYsZUFBZTtnSEFBZixlQUFlLGFBcEJmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFVBQVUsRUFBRSxlQUFlLENBQUMsbUJBQW1CO2dCQUMvQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzRGQWNVLGVBQWU7a0JBckIzQixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxtQkFBbUI7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTHVpZ2lNb2NrRW5naW5lIH0gZnJvbSAnQGx1aWdpLXByb2plY3QvdGVzdGluZy11dGlsaXRpZXMnO1xuXG4vLyBAZHluYW1pY1xuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogTHVpZ2lNb2NrRW5naW5lLmluaXRQb3N0TWVzc2FnZUhvb2ssXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbi8qXG4gKiBUaGlzIGNsYXNzIG1vY2tzIEx1aWdpIENvcmUgcmVsYXRlZCBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIE1pY3JvIEZyb250ZW5kcyB0aGF0IHVzZSBMdWlnaSBDbGllbnQgd291bGQgdXN1YWxseSBjb21tdW5pY2F0ZSB3aXRoIEx1aWdpIENvcmVcbiAqIGJhY2sgYW5kIGZvcnRoLiBXaGVuIHRlc3RpbmcgTHVpZ2kgQ2xpZW50IGJhc2VkIGNvbXBvbmVudHMsIEx1aWdpIENvcmUgbWlnaHRcbiAqIG5vdCBiZSBwcmVzZW50IHdoaWNoIGxlYWRzIGludG8gbGltaXRhdGlvbnMgb24gaW50ZWdyYXRpb24vZTJlIHRlc3RpbmcgZm9yIHN0YW5kYWxvbmVcbiAqIG1pY3JvZnJvbnRlbmRzLlxuICpcbiAqIFRoaXMgbW9kdWxlIGFkZHMgYSBob29rIHRvIHRoZSB3aW5kb3cgcG9zdE1lc3NhZ2UgQVBJIGJ5IGFkZGluZyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGVcbiAqIGdsb2JhbCBtZXNzYWdlIGV2ZW50IG9mIHRoZSB3aW5kb3cgb2JqZWN0IGFuZCBtb2NraW5nIHRoZSBjYWxsYmFjay5cbiAqIEluIHRoZSBub3JtYWwgd29ya2Zsb3cgdGhpcyBtZXNzYWdlIHdvdWxkIHBpY2tlZCB1cCBieSBMdWlnaSBDb3JlIHdoaWNoIHRoZW4gc2VuZHMgdGhlIHJlc3BvbnNlIGJhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBMdWlnaU1vY2tNb2R1bGUge31cbiJdfQ==
@@ -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 { LuigiRouteStrategy } from './route/luigi-route-strategy';
5
+ import { LuigiContextService } from './service/luigi-context.service';
6
+ import { LuigiContextServiceImpl } from './service/luigi-context.service.impl';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/router";
9
+ export const staticRoutes = [
10
+ // here an example if you want to specify that this component is a virtualTree element in Luigi Core navigation
11
+ {
12
+ path: 'luigi-client-support-preload',
13
+ component: LuigiPreloadComponent,
14
+ data: { fromVirtualTreeRoot: true }
15
+ },
16
+ // here an example if you want to specify that this component is a Luigi component and you want to change the navigation in Luigi core
17
+ {
18
+ path: 'luigi-client-support-preload',
19
+ component: LuigiPreloadComponent,
20
+ data: { luigiRoute: '/home/reload' }
21
+ },
22
+ /**
23
+ * here an example if you want to reuse the component and not recreating every time you navigate to it (a singleton Component)
24
+ * it requires in your module to redefine
25
+ */
26
+ {
27
+ path: 'luigi-client-support-preload=component',
28
+ component: LuigiPreloadComponent,
29
+ data: { reuse: true }
30
+ },
31
+ // here an example if you want to update modalPathParam on internal navigation
32
+ {
33
+ path: 'luigi-client-support-preload',
34
+ component: LuigiPreloadComponent,
35
+ data: { updateModalPathParam: true }
36
+ }
37
+ ];
38
+ export class LuigiAngularSupportModule {
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiAngularSupportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
40
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: LuigiAngularSupportModule, declarations: [LuigiPreloadComponent], imports: [i1.RouterModule], exports: [LuigiPreloadComponent] }); }
41
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", 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: "18.2.10", 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
+ }] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2kuYW5ndWxhci5zdXBwb3J0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zdXBwb3J0LWFuZ3VsYXIvc3JjL2xpYi9sdWlnaS5hbmd1bGFyLnN1cHBvcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFXO0lBQ2xDLCtHQUErRztJQUMvRztRQUNFLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxJQUFJLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUU7S0FDcEM7SUFDRCxzSUFBc0k7SUFDdEk7UUFDRSxJQUFJLEVBQUUsOEJBQThCO1FBQ3BDLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRTtLQUNyQztJQUNEOzs7T0FHRztJQUNIO1FBQ0UsSUFBSSxFQUFFLHdDQUF3QztRQUM5QyxTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7S0FDdEI7SUFDRCw4RUFBOEU7SUFDOUU7UUFDRSxJQUFJLEVBQUUsOEJBQThCO1FBQ3BDLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsSUFBSSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFO0tBQ3JDO0NBQ0YsQ0FBQztBQWlCRixNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7Z0hBQXpCLHlCQUF5QixpQkFkckIscUJBQXFCLHlDQVkxQixxQkFBcUI7Z0hBRXBCLHlCQUF5QixhQVp6QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFFBQVEsRUFBRSx1QkFBdUI7YUFDbEM7WUFDRDtnQkFDRSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixRQUFRLEVBQUUsa0JBQWtCO2FBQzdCO1NBQ0YsWUFWUyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQzs7NEZBYWxDLHlCQUF5QjtrQkFmckMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDOUMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSx1QkFBdUI7eUJBQ2xDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFFBQVEsRUFBRSxrQkFBa0I7eUJBQzdCO3FCQUNGO29CQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3ksIFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEx1aWdpUHJlbG9hZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50L2x1aWdpLnByZWxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IEx1aWdpUm91dGVTdHJhdGVneSB9IGZyb20gJy4vcm91dGUvbHVpZ2ktcm91dGUtc3RyYXRlZ3knO1xuaW1wb3J0IHsgTHVpZ2lDb250ZXh0U2VydmljZSB9IGZyb20gJy4vc2VydmljZS9sdWlnaS1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTHVpZ2lDb250ZXh0U2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2UvbHVpZ2ktY29udGV4dC5zZXJ2aWNlLmltcGwnO1xuXG5leHBvcnQgY29uc3Qgc3RhdGljUm91dGVzOiBSb3V0ZXMgPSBbXG4gIC8vIGhlcmUgYW4gZXhhbXBsZSBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5IHRoYXQgdGhpcyBjb21wb25lbnQgaXMgYSB2aXJ0dWFsVHJlZSBlbGVtZW50IGluIEx1aWdpIENvcmUgbmF2aWdhdGlvblxuICB7XG4gICAgcGF0aDogJ2x1aWdpLWNsaWVudC1zdXBwb3J0LXByZWxvYWQnLFxuICAgIGNvbXBvbmVudDogTHVpZ2lQcmVsb2FkQ29tcG9uZW50LFxuICAgIGRhdGE6IHsgZnJvbVZpcnR1YWxUcmVlUm9vdDogdHJ1ZSB9XG4gIH0sXG4gIC8vIGhlcmUgYW4gZXhhbXBsZSBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5IHRoYXQgdGhpcyBjb21wb25lbnQgaXMgYSBMdWlnaSBjb21wb25lbnQgYW5kIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgbmF2aWdhdGlvbiBpbiBMdWlnaSBjb3JlXG4gIHtcbiAgICBwYXRoOiAnbHVpZ2ktY2xpZW50LXN1cHBvcnQtcHJlbG9hZCcsXG4gICAgY29tcG9uZW50OiBMdWlnaVByZWxvYWRDb21wb25lbnQsXG4gICAgZGF0YTogeyBsdWlnaVJvdXRlOiAnL2hvbWUvcmVsb2FkJyB9XG4gIH0sXG4gIC8qKlxuICAgKiBoZXJlIGFuIGV4YW1wbGUgaWYgeW91IHdhbnQgdG8gcmV1c2UgdGhlIGNvbXBvbmVudCBhbmQgbm90IHJlY3JlYXRpbmcgZXZlcnkgdGltZSB5b3UgbmF2aWdhdGUgdG8gaXQgKGEgc2luZ2xldG9uIENvbXBvbmVudClcbiAgICogaXQgcmVxdWlyZXMgaW4geW91ciBtb2R1bGUgdG8gcmVkZWZpbmVcbiAgICovXG4gIHtcbiAgICBwYXRoOiAnbHVpZ2ktY2xpZW50LXN1cHBvcnQtcHJlbG9hZD1jb21wb25lbnQnLFxuICAgIGNvbXBvbmVudDogTHVpZ2lQcmVsb2FkQ29tcG9uZW50LFxuICAgIGRhdGE6IHsgcmV1c2U6IHRydWUgfVxuICB9LFxuICAvLyBoZXJlIGFuIGV4YW1wbGUgaWYgeW91IHdhbnQgdG8gdXBkYXRlIG1vZGFsUGF0aFBhcmFtIG9uIGludGVybmFsIG5hdmlnYXRpb25cbiAge1xuICAgIHBhdGg6ICdsdWlnaS1jbGllbnQtc3VwcG9ydC1wcmVsb2FkJyxcbiAgICBjb21wb25lbnQ6IEx1aWdpUHJlbG9hZENvbXBvbmVudCxcbiAgICBkYXRhOiB7IHVwZGF0ZU1vZGFsUGF0aFBhcmFtOiB0cnVlIH1cbiAgfVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTHVpZ2lQcmVsb2FkQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChzdGF0aWNSb3V0ZXMpXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTHVpZ2lDb250ZXh0U2VydmljZSxcbiAgICAgIHVzZUNsYXNzOiBMdWlnaUNvbnRleHRTZXJ2aWNlSW1wbFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUm91dGVSZXVzZVN0cmF0ZWd5LFxuICAgICAgdXNlQ2xhc3M6IEx1aWdpUm91dGVTdHJhdGVneVxuICAgIH1cbiAgXSxcbiAgZXhwb3J0czogW0x1aWdpUHJlbG9hZENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTHVpZ2lBbmd1bGFyU3VwcG9ydE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,11 @@
1
+ export class LuigiActivatedRouteSnapshotHelper {
2
+ // tslint:disable-next-line:variable-name
3
+ static { this._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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktYWN0aXZhdGVkLXJvdXRlLXNuYXBzaG90LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zdXBwb3J0LWFuZ3VsYXIvc3JjL2xpYi9yb3V0ZS9sdWlnaS1hY3RpdmF0ZWQtcm91dGUtc25hcHNob3QtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUMseUNBQXlDO2FBQzFCLGFBQVEsR0FBNEIsSUFBMEMsQ0FBQztJQUU5RixNQUFNLENBQUMsVUFBVTtRQUNmLE9BQU8saUNBQWlDLENBQUMsUUFBUSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQStCO1FBQy9DLGlDQUFpQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5leHBvcnQgY2xhc3MgTHVpZ2lBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90SGVscGVyIHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBzdGF0aWMgX2N1cnJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgPSAobnVsbCBhcyB1bmtub3duKSBhcyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90O1xuXG4gIHN0YXRpYyBnZXRDdXJyZW50KCk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Qge1xuICAgIHJldHVybiBMdWlnaUFjdGl2YXRlZFJvdXRlU25hcHNob3RIZWxwZXIuX2N1cnJlbnQ7XG4gIH1cblxuICBzdGF0aWMgc2V0Q3VycmVudChjdXJyZW50OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogdm9pZCB7XG4gICAgTHVpZ2lBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90SGVscGVyLl9jdXJyZW50ID0gY3VycmVudDtcbiAgfVxufVxuIl19
@@ -0,0 +1,135 @@
1
+ import { Injectable, DestroyRef, inject } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { NavigationEnd, convertToParamMap } from '@angular/router';
4
+ import { linkManager, uxManager, isLuigiClientInitialized } from '@luigi-project/client';
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
+ constructor(router, luigiContextService) {
12
+ this.router = router;
13
+ this.luigiContextService = luigiContextService;
14
+ this.destroyRef = inject(DestroyRef);
15
+ this.router.events
16
+ .pipe(this.doFilter(), takeUntilDestroyed(this.destroyRef))
17
+ .subscribe((event) => this.doSubscription(event));
18
+ }
19
+ doFilter() {
20
+ return filter((event) => !!(event instanceof NavigationEnd && event?.url?.length && !history?.state?.luigiInduced));
21
+ }
22
+ /**
23
+ * This method will be take in consideration angular route that having in data object the paramter
24
+ * fromVirtualTreeRoot: true, here an example:
25
+ * {path: 'demo', component: DemoComponent, data:{fromVirtualTreeRoot: true}}
26
+ * Another option is to specify the LuigiPath: if you add in route data luigiRoute:'/xxxx/xxx';
27
+ * in the case we will update the path in LuigiCore navigation, here an example
28
+ * {path: 'demo', component: DemoComponent, data:{luigiRoute: '/home/demo''}}
29
+ * If updateModalPathParam is specified, than modalPathParam will be updated upon internal navigation:
30
+ * {path: 'demo', component: DemoComponent, data:{updateModalPathParam: true}}
31
+ * @param event the NavigationEnd event
32
+ */
33
+ doSubscription(event) {
34
+ let current = LuigiActivatedRouteSnapshotHelper.getCurrent();
35
+ if (!current) {
36
+ current = this.router.routerState.root.snapshot;
37
+ while (current?.children?.length) {
38
+ // handle multiple children
39
+ let primary = null;
40
+ current.children.forEach((childSnapshot) => {
41
+ if (childSnapshot?.outlet === 'primary') {
42
+ primary = childSnapshot;
43
+ }
44
+ });
45
+ if (primary) {
46
+ current = primary;
47
+ }
48
+ else if (current.firstChild) {
49
+ current = current.firstChild;
50
+ }
51
+ else {
52
+ break;
53
+ }
54
+ }
55
+ }
56
+ if (current?.data && isLuigiClientInitialized()) {
57
+ const ux = uxManager();
58
+ let lm = linkManager().withoutSync();
59
+ let route;
60
+ if (current.data.luigiRoute) {
61
+ route = this.getResolvedLuigiRoute(current);
62
+ if (current.data.fromContext) {
63
+ if (!this.luigiContextService.getContext()) {
64
+ console.debug('Ignoring auto navigation request, luigi context not set');
65
+ return;
66
+ }
67
+ if (current.data.fromContext === true) {
68
+ lm = lm.fromClosestContext();
69
+ }
70
+ else {
71
+ lm = lm.fromContext(current.data.fromContext);
72
+ }
73
+ }
74
+ }
75
+ else if (current.data.fromVirtualTreeRoot) {
76
+ let url = event.url;
77
+ const truncate = current.data.fromVirtualTreeRoot.truncate;
78
+ if (truncate) {
79
+ if (truncate.indexOf('*') === 0) {
80
+ const index = url.indexOf(truncate.substring(1));
81
+ url = url.substring(index + truncate.length - 1);
82
+ }
83
+ else if (url.indexOf(truncate) === 0) {
84
+ url = url.substring(truncate.length);
85
+ }
86
+ }
87
+ route = url;
88
+ console.debug('Calling fromVirtualTreeRoot for url ==> ' + route);
89
+ lm = lm.fromVirtualTreeRoot();
90
+ }
91
+ if (ux.isModal()) {
92
+ if (current.data.updateModalDataPath) {
93
+ lm.updateModalPathInternalNavigation(route, {}, current.data.addHistoryEntry);
94
+ }
95
+ }
96
+ else if (route) {
97
+ lm.navigate(route);
98
+ }
99
+ }
100
+ }
101
+ getResolvedLuigiRoute(current) {
102
+ let route = current.data.luigiRoute;
103
+ const allParams = this.getAllParamsFromParents(current);
104
+ if (!route || !allParams) {
105
+ return route;
106
+ }
107
+ const pmap = convertToParamMap(allParams);
108
+ pmap.keys.forEach((key) => {
109
+ pmap.getAll(key).forEach((param) => {
110
+ route = route?.replace(':' + key, param);
111
+ });
112
+ });
113
+ return route;
114
+ }
115
+ getAllParamsFromParents(current) {
116
+ let allParams = {};
117
+ let currentToCheck = current;
118
+ while (currentToCheck) {
119
+ if (currentToCheck.params) {
120
+ allParams = { ...allParams, ...currentToCheck.params };
121
+ }
122
+ currentToCheck = currentToCheck.parent;
123
+ }
124
+ return allParams;
125
+ }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiAutoRoutingService, deps: [{ token: i1.Router }, { token: i2.LuigiContextService }], target: i0.ɵɵFactoryTarget.Injectable }); }
127
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiAutoRoutingService, providedIn: 'root' }); }
128
+ }
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiAutoRoutingService, decorators: [{
130
+ type: Injectable,
131
+ args: [{
132
+ providedIn: 'root'
133
+ }]
134
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.LuigiContextService }] });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktYXV0by1yb3V0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1hdXRvLXJvdXRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFpQyxhQUFhLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7QUFNbkcsTUFBTSxPQUFPLHVCQUF1QjtJQUdsQyxZQUNVLE1BQWMsRUFDZCxtQkFBd0M7UUFEeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFKMUMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQU10QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMxRCxTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLE1BQU0sQ0FDWCxDQUFD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QUVwRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQ3pDLEtBQUssR0FBRyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQStCO1FBQ3JELElBQUksU0FBUyxHQUE4QixFQUFFLENBQUM7UUFDOUMsSUFBSSxjQUFjLEdBQWtDLE9BQU8sQ0FBQztRQUU1RCxPQUFPLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMxQixTQUFTLEdBQUcsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6RCxDQUFDO1lBRUQsY0FBYyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDekMsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7K0dBeklVLHVCQUF1QjttSEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIEV2ZW50LCBOYXZpZ2F0aW9uRW5kLCBQYXJhbU1hcCwgUm91dGVyLCBjb252ZXJ0VG9QYXJhbU1hcCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBsaW5rTWFuYWdlciwgdXhNYW5hZ2VyLCBpc0x1aWdpQ2xpZW50SW5pdGlhbGl6ZWQgfSBmcm9tICdAbHVpZ2ktcHJvamVjdC9jbGllbnQnO1xuaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTHVpZ2lBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90SGVscGVyIH0gZnJvbSAnLi4vcm91dGUvbHVpZ2ktYWN0aXZhdGVkLXJvdXRlLXNuYXBzaG90LWhlbHBlcic7XG5pbXBvcnQgeyBMdWlnaUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9sdWlnaS1jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMdWlnaUF1dG9Sb3V0aW5nU2VydmljZSB7XG4gIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbHVpZ2lDb250ZXh0U2VydmljZTogTHVpZ2lDb250ZXh0U2VydmljZVxuICApIHtcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKHRoaXMuZG9GaWx0ZXIoKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4gdGhpcy5kb1N1YnNjcmlwdGlvbihldmVudCkpO1xuICB9XG5cbiAgZG9GaWx0ZXIoKTogT3BlcmF0b3JGdW5jdGlvbjxFdmVudCwgTmF2aWdhdGlvbkVuZD4ge1xuICAgIHJldHVybiBmaWx0ZXIoXG4gICAgICAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgTmF2aWdhdGlvbkVuZCA9PlxuICAgICAgICAhIShldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiYgZXZlbnQ/LnVybD8ubGVuZ3RoICYmICFoaXN0b3J5Py5zdGF0ZT8ubHVpZ2lJbmR1Y2VkKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSB0YWtlIGluIGNvbnNpZGVyYXRpb24gYW5ndWxhciByb3V0ZSB0aGF0IGhhdmluZyBpbiBkYXRhIG9iamVjdCB0aGUgcGFyYW10ZXJcbiAgICogZnJvbVZpcnR1YWxUcmVlUm9vdDogdHJ1ZSwgaGVyZSBhbiBleGFtcGxlOlxuICAgKiB7cGF0aDogJ2RlbW8nLCBjb21wb25lbnQ6IERlbW9Db21wb25lbnQsIGRhdGE6e2Zyb21WaXJ0dWFsVHJlZVJvb3Q6IHRydWV9fVxuICAgKiBBbm90aGVyIG9wdGlvbiBpcyB0byBzcGVjaWZ5IHRoZSBMdWlnaVBhdGg6IGlmIHlvdSBhZGQgaW4gcm91dGUgZGF0YSBsdWlnaVJvdXRlOicveHh4eC94eHgnO1xuICAgKiBpbiB0aGUgY2FzZSB3ZSB3aWxsIHVwZGF0ZSB0aGUgcGF0aCBpbiBMdWlnaUNvcmUgbmF2aWdhdGlvbiwgaGVyZSBhbiBleGFtcGxlXG4gICAqIHtwYXRoOiAnZGVtbycsIGNvbXBvbmVudDogRGVtb0NvbXBvbmVudCwgZGF0YTp7bHVpZ2lSb3V0ZTogJy9ob21lL2RlbW8nJ319XG4gICAqIElmIHVwZGF0ZU1vZGFsUGF0aFBhcmFtIGlzIHNwZWNpZmllZCwgdGhhbiBtb2RhbFBhdGhQYXJhbSB3aWxsIGJlIHVwZGF0ZWQgdXBvbiBpbnRlcm5hbCBuYXZpZ2F0aW9uOlxuICAgKiB7cGF0aDogJ2RlbW8nLCBjb21wb25lbnQ6IERlbW9Db21wb25lbnQsIGRhdGE6e3VwZGF0ZU1vZGFsUGF0aFBhcmFtOiB0cnVlfX1cbiAgICogQHBhcmFtIGV2ZW50IHRoZSBOYXZpZ2F0aW9uRW5kIGV2ZW50XG4gICAqL1xuICBkb1N1YnNjcmlwdGlvbihldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIGxldCBjdXJyZW50OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IEx1aWdpQWN0aXZhdGVkUm91dGVTbmFwc2hvdEhlbHBlci5nZXRDdXJyZW50KCk7XG5cbiAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgIGN1cnJlbnQgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LnNuYXBzaG90O1xuXG4gICAgICB3aGlsZSAoY3VycmVudD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAvLyBoYW5kbGUgbXVsdGlwbGUgY2hpbGRyZW5cbiAgICAgICAgbGV0IHByaW1hcnk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBjdXJyZW50LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkU25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpID0+IHtcbiAgICAgICAgICBpZiAoY2hpbGRTbmFwc2hvdD8ub3V0bGV0ID09PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgIHByaW1hcnkgPSBjaGlsZFNuYXBzaG90O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHByaW1hcnkpIHtcbiAgICAgICAgICBjdXJyZW50ID0gcHJpbWFyeTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5maXJzdENoaWxkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnQ/LmRhdGEgJiYgaXNMdWlnaUNsaWVudEluaXRpYWxpemVkKCkpIHtcbiAgICAgIGNvbnN0IHV4ID0gdXhNYW5hZ2VyKCk7XG4gICAgICBsZXQgbG0gPSBsaW5rTWFuYWdlcigpLndpdGhvdXRTeW5jKCk7XG4gICAgICBsZXQgcm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGN1cnJlbnQuZGF0YS5sdWlnaVJvdXRlKSB7XG4gICAgICAgIHJvdXRlID0gdGhpcy5nZXRSZXNvbHZlZEx1aWdpUm91dGUoY3VycmVudCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCkge1xuICAgICAgICAgIGlmICghdGhpcy5sdWlnaUNvbnRleHRTZXJ2aWNlLmdldENvbnRleHQoKSkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnSWdub3JpbmcgYXV0byBuYXZpZ2F0aW9uIHJlcXVlc3QsIGx1aWdpIGNvbnRleHQgbm90IHNldCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjdXJyZW50LmRhdGEuZnJvbUNvbnRleHQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGxtID0gbG0uZnJvbUNsb3Nlc3RDb250ZXh0KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxtID0gbG0uZnJvbUNvbnRleHQoY3VycmVudC5kYXRhLmZyb21Db250ZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5kYXRhLmZyb21WaXJ0dWFsVHJlZVJvb3QpIHtcbiAgICAgICAgbGV0IHVybCA9IGV2ZW50LnVybDtcbiAgICAgICAgY29uc3QgdHJ1bmNhdGUgPSBjdXJyZW50LmRhdGEuZnJvbVZpcnR1YWxUcmVlUm9vdC50cnVuY2F0ZTtcblxuICAgICAgICBpZiAodHJ1bmNhdGUpIHtcbiAgICAgICAgICBpZiAodHJ1bmNhdGUuaW5kZXhPZignKicpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHVybC5pbmRleE9mKHRydW5jYXRlLnN1YnN0cmluZygxKSk7XG5cbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoaW5kZXggKyB0cnVuY2F0ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKHRydW5jYXRlKSA9PT0gMCkge1xuICAgICAgICAgICAgdXJsID0gdXJsLnN1YnN0cmluZyh0cnVuY2F0ZS5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJvdXRlID0gdXJsO1xuICAgICAgICBjb25zb2xlLmRlYnVnKCdDYWxsaW5nIGZyb21WaXJ0dWFsVHJlZVJvb3QgZm9yIHVybCA9PT4gJyArIHJvdXRlKTtcbiAgICAgICAgbG0gPSBsbS5mcm9tVmlydHVhbFRyZWVSb290KCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh1eC5pc01vZGFsKCkpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQuZGF0YS51cGRhdGVNb2RhbERhdGFQYXRoKSB7XG4gICAgICAgICAgbG0udXBkYXRlTW9kYWxQYXRoSW50ZXJuYWxOYXZpZ2F0aW9uKHJvdXRlIGFzIHN0cmluZywge30sIGN1cnJlbnQuZGF0YS5hZGRIaXN0b3J5RW50cnkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHJvdXRlKSB7XG4gICAgICAgIGxtLm5hdmlnYXRlKHJvdXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSZXNvbHZlZEx1aWdpUm91dGUoY3VycmVudDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBjdXJyZW50LmRhdGEubHVpZ2lSb3V0ZTtcbiAgICBjb25zdCBhbGxQYXJhbXMgPSB0aGlzLmdldEFsbFBhcmFtc0Zyb21QYXJlbnRzKGN1cnJlbnQpO1xuXG4gICAgaWYgKCFyb3V0ZSB8fCAhYWxsUGFyYW1zKSB7XG4gICAgICByZXR1cm4gcm91dGU7XG4gICAgfVxuXG4gICAgY29uc3QgcG1hcDogUGFyYW1NYXAgPSBjb252ZXJ0VG9QYXJhbU1hcChhbGxQYXJhbXMpO1xuXG4gICAgcG1hcC5rZXlzLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBwbWFwLmdldEFsbChrZXkpLmZvckVhY2goKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcm91dGUgPSByb3V0ZT8ucmVwbGFjZSgnOicgKyBrZXksIHBhcmFtKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJvdXRlO1xuICB9XG5cbiAgZ2V0QWxsUGFyYW1zRnJvbVBhcmVudHMoY3VycmVudDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgIGxldCBhbGxQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBsZXQgY3VycmVudFRvQ2hlY2s6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsID0gY3VycmVudDtcblxuICAgIHdoaWxlIChjdXJyZW50VG9DaGVjaykge1xuICAgICAgaWYgKGN1cnJlbnRUb0NoZWNrLnBhcmFtcykge1xuICAgICAgICBhbGxQYXJhbXMgPSB7IC4uLmFsbFBhcmFtcywgLi4uY3VycmVudFRvQ2hlY2sucGFyYW1zIH07XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRUb0NoZWNrID0gY3VycmVudFRvQ2hlY2sucGFyZW50O1xuICAgIH1cblxuICAgIHJldHVybiBhbGxQYXJhbXM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export var ILuigiContextTypes;
2
+ (function (ILuigiContextTypes) {
3
+ ILuigiContextTypes[ILuigiContextTypes["INIT"] = 0] = "INIT";
4
+ ILuigiContextTypes[ILuigiContextTypes["UPDATE"] = 1] = "UPDATE";
5
+ })(ILuigiContextTypes || (ILuigiContextTypes = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktY29udGV4dC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zdXBwb3J0LWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlL2x1aWdpLWNvbnRleHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1QiwyREFBSSxDQUFBO0lBQ0osK0RBQU0sQ0FBQTtBQUNSLENBQUMsRUFIVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBRzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJ0BsdWlnaS1wcm9qZWN0L2NsaWVudCc7XG5cbmV4cG9ydCBlbnVtIElMdWlnaUNvbnRleHRUeXBlcyB7XG4gIElOSVQsXG4gIFVQREFURVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb250ZXh0TWVzc2FnZSB7XG4gIGNvbnRleHQ6IENvbnRleHQ7XG4gIGNvbnRleHRUeXBlOiBJTHVpZ2lDb250ZXh0VHlwZXM7XG59XG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { inject, Injectable, NgZone } from '@angular/core';
2
+ import { addInitListener, addContextUpdateListener } from '@luigi-project/client';
3
+ import { ReplaySubject } from 'rxjs';
4
+ import { first } from 'rxjs/operators';
5
+ import { ILuigiContextTypes } from './luigi-context.model';
6
+ import * as i0 from "@angular/core";
7
+ export class LuigiContextServiceImpl {
8
+ constructor() {
9
+ this.subject = new ReplaySubject(1);
10
+ this.ngZone = inject(NgZone);
11
+ addInitListener((initContext) => {
12
+ this.addListener(ILuigiContextTypes.INIT, initContext);
13
+ });
14
+ addContextUpdateListener((updateContext) => {
15
+ this.addListener(ILuigiContextTypes.UPDATE, updateContext);
16
+ });
17
+ }
18
+ addListener(contextType, context) {
19
+ this.setContext({
20
+ contextType,
21
+ context
22
+ });
23
+ }
24
+ contextObservable() {
25
+ return this.subject.asObservable();
26
+ }
27
+ /**
28
+ * Get latest context object retrieved from luigi core application or empty object, if not yet set.
29
+ */
30
+ getContext() {
31
+ return this.currentContext?.context || {};
32
+ }
33
+ /**
34
+ * Get a promise that resolves when context is set.
35
+ */
36
+ getContextAsync() {
37
+ return new Promise((resolve) => {
38
+ const context = this.getContext();
39
+ if (this.isObject(context) && Object.keys(context)?.length) {
40
+ resolve(this.getContext());
41
+ }
42
+ else {
43
+ this.contextObservable()
44
+ .pipe(first())
45
+ .subscribe((ctx) => resolve(ctx.context));
46
+ }
47
+ });
48
+ }
49
+ /**
50
+ * Checks if input is an object.
51
+ * @param objectToCheck mixed
52
+ * @returns {boolean}
53
+ */
54
+ isObject(objectToCheck) {
55
+ return !!(objectToCheck && typeof objectToCheck === 'object' && !Array.isArray(objectToCheck));
56
+ }
57
+ /**
58
+ * Set current context
59
+ */
60
+ setContext(obj) {
61
+ this.ngZone.run(() => {
62
+ this.currentContext = obj;
63
+ this.subject.next(obj);
64
+ });
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiContextServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiContextServiceImpl, providedIn: 'root' }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: LuigiContextServiceImpl, decorators: [{
70
+ type: Injectable,
71
+ args: [{
72
+ providedIn: 'root'
73
+ }]
74
+ }], ctorParameters: () => [] });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktY29udGV4dC5zZXJ2aWNlLmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1jb250ZXh0LnNlcnZpY2UuaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFXLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNNUUsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQztRQUpRLFlBQU8sR0FBbUMsSUFBSSxhQUFhLENBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRWhGLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFHOUIsZUFBZSxDQUFDLENBQUMsV0FBb0IsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsd0JBQXdCLENBQUMsQ0FBQyxhQUFzQixFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLFdBQStCLEVBQUUsT0FBZ0I7UUFDbEUsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLFdBQVc7WUFDWCxPQUFPO1NBQ1csQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxPQUFPLENBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QyxNQUFNLE9BQU8sR0FBWSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFFM0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQzNELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFO3FCQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7cUJBQ2IsU0FBUyxDQUFDLENBQUMsR0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQy9ELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssUUFBUSxDQUFDLGFBQWtDO1FBQ2pELE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxVQUFVLENBQUMsR0FBb0I7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FsRVUsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7NEZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0LCBhZGRJbml0TGlzdGVuZXIsIGFkZENvbnRleHRVcGRhdGVMaXN0ZW5lciB9IGZyb20gJ0BsdWlnaS1wcm9qZWN0L2NsaWVudCc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElDb250ZXh0TWVzc2FnZSwgSUx1aWdpQ29udGV4dFR5cGVzIH0gZnJvbSAnLi9sdWlnaS1jb250ZXh0Lm1vZGVsJztcbmltcG9ydCB7IEx1aWdpQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2x1aWdpLWNvbnRleHQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEx1aWdpQ29udGV4dFNlcnZpY2VJbXBsIGltcGxlbWVudHMgTHVpZ2lDb250ZXh0U2VydmljZSB7XG4gIHByaXZhdGUgc3ViamVjdDogUmVwbGF5U3ViamVjdDxJQ29udGV4dE1lc3NhZ2U+ID0gbmV3IFJlcGxheVN1YmplY3Q8SUNvbnRleHRNZXNzYWdlPigxKTtcbiAgcHJpdmF0ZSBjdXJyZW50Q29udGV4dCE6IElDb250ZXh0TWVzc2FnZTtcbiAgcHJpdmF0ZSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJbml0TGlzdGVuZXIoKGluaXRDb250ZXh0OiBDb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLmFkZExpc3RlbmVyKElMdWlnaUNvbnRleHRUeXBlcy5JTklULCBpbml0Q29udGV4dCk7XG4gICAgfSk7XG4gICAgYWRkQ29udGV4dFVwZGF0ZUxpc3RlbmVyKCh1cGRhdGVDb250ZXh0OiBDb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLmFkZExpc3RlbmVyKElMdWlnaUNvbnRleHRUeXBlcy5VUERBVEUsIHVwZGF0ZUNvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZExpc3RlbmVyKGNvbnRleHRUeXBlOiBJTHVpZ2lDb250ZXh0VHlwZXMsIGNvbnRleHQ6IENvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLnNldENvbnRleHQoe1xuICAgICAgY29udGV4dFR5cGUsXG4gICAgICBjb250ZXh0XG4gICAgfSBhcyBJQ29udGV4dE1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHRPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8SUNvbnRleHRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGF0ZXN0IGNvbnRleHQgb2JqZWN0IHJldHJpZXZlZCBmcm9tIGx1aWdpIGNvcmUgYXBwbGljYXRpb24gb3IgZW1wdHkgb2JqZWN0LCBpZiBub3QgeWV0IHNldC5cbiAgICovXG4gIHB1YmxpYyBnZXRDb250ZXh0KCk6IENvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRDb250ZXh0Py5jb250ZXh0IHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGNvbnRleHQgaXMgc2V0LlxuICAgKi9cbiAgcHVibGljIGdldENvbnRleHRBc3luYygpOiBQcm9taXNlPENvbnRleHQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Q29udGV4dD4oKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRleHQ6IENvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgICAgaWYgKHRoaXMuaXNPYmplY3QoY29udGV4dCkgJiYgT2JqZWN0LmtleXMoY29udGV4dCk/Lmxlbmd0aCkge1xuICAgICAgICByZXNvbHZlKHRoaXMuZ2V0Q29udGV4dCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29udGV4dE9ic2VydmFibGUoKVxuICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoY3R4OiBJQ29udGV4dE1lc3NhZ2UpID0+IHJlc29sdmUoY3R4LmNvbnRleHQpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgaW5wdXQgaXMgYW4gb2JqZWN0LlxuICAgKiBAcGFyYW0gb2JqZWN0VG9DaGVjayBtaXhlZFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHByaXZhdGUgaXNPYmplY3Qob2JqZWN0VG9DaGVjazogQ29udGV4dCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShvYmplY3RUb0NoZWNrICYmIHR5cGVvZiBvYmplY3RUb0NoZWNrID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShvYmplY3RUb0NoZWNrKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1cnJlbnQgY29udGV4dFxuICAgKi9cbiAgcHJvdGVjdGVkIHNldENvbnRleHQob2JqOiBJQ29udGV4dE1lc3NhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50Q29udGV4dCA9IG9iajtcbiAgICAgIHRoaXMuc3ViamVjdC5uZXh0KG9iaik7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export class LuigiContextService {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXN1cHBvcnQtYW5ndWxhci9zcmMvbGliL3NlcnZpY2UvbHVpZ2ktY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBZ0IsbUJBQW1CO0NBZ0J4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHQgfSBmcm9tICdAbHVpZ2ktcHJvamVjdC9jbGllbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSUNvbnRleHRNZXNzYWdlIH0gZnJvbSAnLi9sdWlnaS1jb250ZXh0Lm1vZGVsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEx1aWdpQ29udGV4dFNlcnZpY2Uge1xuICAvKipcbiAgICogTGlzdGVuIHRvIGNvbnRleHQgY2hhbmdlc1xuICAgKiBSZWNlaXZlcyBjdXJyZW50IHZhbHVlLCBldmVuIGlmIHRoZSBldmVudCB3YXMgYWxyZWFkeSBkaXNwYXRjaGVkIGVhcmxpZXIuXG4gICAqL1xuICBhYnN0cmFjdCBjb250ZXh0T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPElDb250ZXh0TWVzc2FnZT47XG5cbiAgLyoqXG4gICAqIEdldCBsYXRlc3Qgc2V0IGNvbnRleHQgb2JqZWN0XG4gICAqL1xuICBhYnN0cmFjdCBnZXRDb250ZXh0KCk6IENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEdldCBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGNvbnRleHQgaXMgc2V0LlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0Q29udGV4dEFzeW5jKCk6IFByb21pc2U8Q29udGV4dD47XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ /*
2
+ * Public API Surface of client-support-angular
3
+ */
4
+ export * from './lib/component/luigi.preload.component';
5
+ export * from './lib/luigi-mock/luigi-mock.module';
6
+ export * from './lib/luigi.angular.support.module';
7
+ export * from './lib/service/luigi-auto-routing.service';
8
+ export * from './lib/service/luigi-context.model';
9
+ export * from './lib/service/luigi-context.service';
10
+ export * from './lib/service/luigi-context.service.impl';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zdXBwb3J0LWFuZ3VsYXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjbGllbnQtc3VwcG9ydC1hbmd1bGFyXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50L2x1aWdpLnByZWxvYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2x1aWdpLW1vY2svbHVpZ2ktbW9jay5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbHVpZ2kuYW5ndWxhci5zdXBwb3J0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2x1aWdpLWF1dG8tcm91dGluZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvbHVpZ2ktY29udGV4dC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2x1aWdpLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2x1aWdpLWNvbnRleHQuc2VydmljZS5pbXBsJztcbiJdfQ==