@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.
- package/{esm2020 → esm2022}/lib/component/luigi.preload.component.mjs +5 -5
- package/esm2022/lib/luigi-mock/luigi-mock.module.mjs +40 -0
- package/esm2022/lib/luigi.angular.support.module.mjs +70 -0
- package/esm2022/lib/route/luigi-activated-route-snapshot-helper.mjs +11 -0
- package/esm2022/lib/service/luigi-auto-routing.service.mjs +143 -0
- package/esm2022/lib/service/luigi-context.service.impl.mjs +78 -0
- package/{fesm2020 → fesm2022}/luigi-project-client-support-angular.mjs +44 -41
- package/{fesm2020 → fesm2022}/luigi-project-client-support-angular.mjs.map +1 -1
- package/lib/component/luigi.preload.component.d.ts +1 -1
- package/package.json +5 -11
- package/esm2020/lib/luigi-mock/luigi-mock.module.mjs +0 -40
- package/esm2020/lib/luigi.angular.support.module.mjs +0 -70
- package/esm2020/lib/route/luigi-activated-route-snapshot-helper.mjs +0 -11
- package/esm2020/lib/service/luigi-auto-routing.service.mjs +0 -141
- package/esm2020/lib/service/luigi-context.service.impl.mjs +0 -77
- package/fesm2015/luigi-project-client-support-angular.mjs +0 -357
- package/fesm2015/luigi-project-client-support-angular.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/route/luigi-route-strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/service/luigi-context-service.mjs +0 -0
- /package/{esm2020 → esm2022}/luigi-project-client-support-angular.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -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
|
-
|
|
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:
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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: [
|