@luigi-project/client-support-angular 1.25.2-dev.20230191919 → 1.26.0
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/bundles/luigi-project-client-support-angular.umd.js +848 -0
- package/bundles/luigi-project-client-support-angular.umd.js.map +1 -0
- package/bundles/luigi-project-client-support-angular.umd.min.js +2 -0
- package/bundles/luigi-project-client-support-angular.umd.min.js.map +1 -0
- package/esm2015/lib/component/luigi.preload.component.js +13 -0
- package/esm2015/lib/luigi-mock/luigi-mock.module.js +170 -0
- package/esm2015/lib/luigi.angular.support.module.js +60 -0
- package/{esm2020/lib/route/luigi-activated-route-snapshot-helper.mjs → esm2015/lib/route/luigi-activated-route-snapshot-helper.js} +0 -0
- package/{esm2020/lib/route/luigi-route-strategy.mjs → esm2015/lib/route/luigi-route-strategy.js} +0 -0
- package/esm2015/lib/service/luigi-auto-routing.service.js +128 -0
- package/{esm2020/lib/service/luigi-context-service.mjs → esm2015/lib/service/luigi-context-service.js} +0 -0
- package/esm2015/lib/service/luigi-context.service.impl.js +70 -0
- package/esm2015/luigi-project-client-support-angular.js +6 -0
- package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
- package/fesm2015/{luigi-project-client-support-angular.mjs → luigi-project-client-support-angular.js} +75 -88
- package/fesm2015/luigi-project-client-support-angular.js.map +1 -0
- package/lib/component/luigi.preload.component.d.ts +0 -3
- package/lib/component/luigi.preload.component.d.ts.map +1 -1
- package/lib/luigi-mock/luigi-mock.module.d.ts +0 -4
- package/lib/luigi-mock/luigi-mock.module.d.ts.map +1 -1
- package/lib/luigi.angular.support.module.d.ts +0 -6
- package/lib/luigi.angular.support.module.d.ts.map +1 -1
- package/lib/service/luigi-auto-routing.service.d.ts +0 -3
- package/lib/service/luigi-auto-routing.service.d.ts.map +1 -1
- package/lib/service/luigi-context.service.impl.d.ts +0 -3
- package/lib/service/luigi-context.service.impl.d.ts.map +1 -1
- package/{index.d.ts → luigi-project-client-support-angular.d.ts} +1 -1
- package/luigi-project-client-support-angular.d.ts.map +1 -1
- package/luigi-project-client-support-angular.metadata.json +1 -0
- package/package.json +10 -22
- package/esm2020/lib/component/luigi.preload.component.mjs +0 -13
- package/esm2020/lib/luigi-mock/luigi-mock.module.mjs +0 -178
- package/esm2020/lib/luigi.angular.support.module.mjs +0 -70
- package/esm2020/lib/service/luigi-auto-routing.service.mjs +0 -124
- package/esm2020/lib/service/luigi-context.service.impl.mjs +0 -69
- package/esm2020/luigi-project-client-support-angular.mjs +0 -5
- package/fesm2015/luigi-project-client-support-angular.mjs.map +0 -1
- package/fesm2020/luigi-project-client-support-angular.mjs +0 -469
- package/fesm2020/luigi-project-client-support-angular.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"luigi-auto-routing.service.d.ts","sourceRoot":"","sources":["../../../../projects/client-support-angular/src/lib/service/luigi-auto-routing.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAiC,MAAM,MAAM,CAAC;AACvE,OAAO,EAAqB,aAAa,EAAY,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIlG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC
|
|
1
|
+
{"version":3,"file":"luigi-auto-routing.service.d.ts","sourceRoot":"","sources":["../../../../projects/client-support-angular/src/lib/service/luigi-auto-routing.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAiC,MAAM,MAAM,CAAC;AACvE,OAAO,EAAqB,aAAa,EAAY,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIlG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,qBAGa,uBAAwB,YAAW,SAAS;IAG3C,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,mBAAmB;IAF/D,OAAO,CAAC,YAAY,CAAoC;gBAEpC,MAAM,EAAE,MAAM,EAAU,mBAAmB,EAAE,mBAAmB;IAMpF,QAAQ,IAAI,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;IAWlD;;;;;;;;;;OAUG;IACH,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IA4E1C,WAAW,IAAI,IAAI;CAGpB"}
|
|
@@ -2,7 +2,6 @@ import { NgZone } from '@angular/core';
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { Context } from '@luigi-project/client';
|
|
4
4
|
import { IContextMessage, ILuigiContextTypes, LuigiContextService } from './luigi-context-service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
5
|
export declare class LuigiContextServiceImpl implements LuigiContextService {
|
|
7
6
|
private zone;
|
|
8
7
|
private subject;
|
|
@@ -22,7 +21,5 @@ export declare class LuigiContextServiceImpl implements LuigiContextService {
|
|
|
22
21
|
*/
|
|
23
22
|
protected setContext(obj: IContextMessage): void;
|
|
24
23
|
addListener(contextType: ILuigiContextTypes, context: Context): void;
|
|
25
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LuigiContextServiceImpl, never>;
|
|
26
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<LuigiContextServiceImpl>;
|
|
27
24
|
}
|
|
28
25
|
//# sourceMappingURL=luigi-context.service.impl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"luigi-context.service.impl.d.ts","sourceRoot":"","sources":["../../../../projects/client-support-angular/src/lib/service/luigi-context.service.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAiB,UAAU,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,EAAE,OAAO,EAA6C,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC
|
|
1
|
+
{"version":3,"file":"luigi-context.service.impl.d.ts","sourceRoot":"","sources":["../../../../projects/client-support-angular/src/lib/service/luigi-context.service.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAiB,UAAU,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,EAAE,OAAO,EAA6C,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnG,qBAGa,uBAAwB,YAAW,mBAAmB;IAIrD,OAAO,CAAC,IAAI;IAHxB,OAAO,CAAC,OAAO,CAAyE;IACxF,OAAO,CAAC,cAAc,CAAyD;gBAE3D,IAAI,EAAE,MAAM;IASzB,iBAAiB,IAAI,UAAU,CAAC,eAAe,CAAC;IAIvD;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;OAEG;IACI,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAc1C;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAOhD,WAAW,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAMrE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
|
-
/// <amd-module name="@luigi-project/client-support-angular" />
|
|
5
4
|
export * from './public-api';
|
|
5
|
+
export { LuigiRouteStrategy as ɵa } from './lib/route/luigi-route-strategy';
|
|
6
6
|
//# sourceMappingURL=luigi-project-client-support-angular.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"luigi-project-client-support-angular.d.ts","sourceRoot":"","sources":["../../projects/client-support-angular/src/luigi-project-client-support-angular.ts"],"names":[],"mappings":"AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"luigi-project-client-support-angular.d.ts","sourceRoot":"","sources":["../../projects/client-support-angular/src/luigi-project-client-support-angular.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAC,kBAAkB,IAAI,EAAE,EAAC,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"LuigiPreloadComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"lib-client-support-angular","styles":[],"template":"<p luigipreload=\"luigipreload\"></p>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"staticRoutes":[{"path":"luigi-client-support-preload","component":{"__symbolic":"reference","name":"LuigiPreloadComponent"},"data":{"fromVirtualTreeRoot":true}},{"path":"luigi-client-support-preload","component":{"__symbolic":"reference","name":"LuigiPreloadComponent"},"data":{"luigiRoute":"/home/reload"}},{"path":"luigi-client-support-preload=component","component":{"__symbolic":"reference","name":"LuigiPreloadComponent"},"data":{"reuse":true}},{"path":"luigi-client-support-preload","component":{"__symbolic":"reference","name":"LuigiPreloadComponent"},"data":{"updateModalPathParam":true}}],"LuigiAngularSupportModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":35,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LuigiPreloadComponent"}],"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":37,"character":12},"member":"forChild"},"arguments":[{"__symbolic":"reference","name":"staticRoutes"}]}],"providers":[{"provide":{"__symbolic":"reference","name":"LuigiContextService"},"useClass":{"__symbolic":"reference","name":"LuigiContextServiceImpl"}},{"provide":{"__symbolic":"reference","module":"@angular/router","name":"RouteReuseStrategy","line":44,"character":15},"useClass":{"__symbolic":"reference","name":"ɵa"}}],"exports":[{"__symbolic":"reference","name":"LuigiPreloadComponent"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LuigiAutoRoutingService"},{"__symbolic":"reference","name":"LuigiContextService"}]}]}},"LuigiContextService":{"__symbolic":"class","members":{"contextObservable":[{"__symbolic":"method"}],"getContext":[{"__symbolic":"method"}],"getContextAsync":[{"__symbolic":"method"}]}},"ILuigiContextTypes":{"INIT":0,"UPDATE":1},"IContextMessage":{"__symbolic":"interface"},"LuigiContextServiceImpl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":13,"character":28}]}],"contextObservable":[{"__symbolic":"method"}],"getContext":[{"__symbolic":"method"}],"getContextAsync":[{"__symbolic":"method"}],"setContext":[{"__symbolic":"method"}],"addListener":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"LuigiAutoRoutingService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":15,"character":30},{"__symbolic":"reference","name":"LuigiContextService"}]}],"doFilter":[{"__symbolic":"method"}],"doSubscription":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"LuigiMockModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":7,"character":15},"useFactory":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@luigi-project/testing-utilities","name":"LuigiMockEngine","line":8,"character":18},"member":"initPostMessageHook"},"multi":true}]}]}],"members":{},"statics":{"initPostMessageHook":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Lambda not supported","line":28,"character":11,"module":"./lib/luigi-mock/luigi-mock.module"}}}},"ɵa":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/router","name":"BaseRouteReuseStrategy","line":4,"character":40},"members":{"retrieve":[{"__symbolic":"method"}]}}},"origins":{"LuigiPreloadComponent":"./lib/component/luigi.preload.component","staticRoutes":"./lib/luigi.angular.support.module","LuigiAngularSupportModule":"./lib/luigi.angular.support.module","LuigiContextService":"./lib/service/luigi-context-service","ILuigiContextTypes":"./lib/service/luigi-context-service","IContextMessage":"./lib/service/luigi-context-service","LuigiContextServiceImpl":"./lib/service/luigi-context.service.impl","LuigiAutoRoutingService":"./lib/service/luigi-auto-routing.service","LuigiMockModule":"./lib/luigi-mock/luigi-mock.module","ɵa":"./lib/route/luigi-route-strategy"},"importAs":"@luigi-project/client-support-angular"}
|
package/package.json
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"url": "ssh://github.com/SAP/luigi.git"
|
|
8
8
|
},
|
|
9
9
|
"peerDependencies": {
|
|
10
|
-
"@angular/common": "^
|
|
11
|
-
"@angular/core": "^
|
|
10
|
+
"@angular/common": "^11.0.0 || ^12.0.0 || ^13.0.0",
|
|
11
|
+
"@angular/core": "^11.0.0 || ^12.0.0 || ^13.0.0",
|
|
12
12
|
"@luigi-project/client": "^1.25.0",
|
|
13
13
|
"@luigi-project/testing-utilities": "^1.25.0"
|
|
14
14
|
},
|
|
@@ -18,25 +18,13 @@
|
|
|
18
18
|
"publishConfig": {
|
|
19
19
|
"tag": "client-support-angular"
|
|
20
20
|
},
|
|
21
|
-
"version": "1.
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"fesm2015": "fesm2015/luigi-project-client-support-angular.
|
|
27
|
-
"typings": "
|
|
28
|
-
"
|
|
29
|
-
"./package.json": {
|
|
30
|
-
"default": "./package.json"
|
|
31
|
-
},
|
|
32
|
-
".": {
|
|
33
|
-
"types": "./index.d.ts",
|
|
34
|
-
"esm2020": "./esm2020/luigi-project-client-support-angular.mjs",
|
|
35
|
-
"es2020": "./fesm2020/luigi-project-client-support-angular.mjs",
|
|
36
|
-
"es2015": "./fesm2015/luigi-project-client-support-angular.mjs",
|
|
37
|
-
"node": "./fesm2015/luigi-project-client-support-angular.mjs",
|
|
38
|
-
"default": "./fesm2020/luigi-project-client-support-angular.mjs"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
21
|
+
"version": "1.26.0",
|
|
22
|
+
"main": "bundles/luigi-project-client-support-angular.umd.js",
|
|
23
|
+
"module": "fesm2015/luigi-project-client-support-angular.js",
|
|
24
|
+
"es2015": "fesm2015/luigi-project-client-support-angular.js",
|
|
25
|
+
"esm2015": "esm2015/luigi-project-client-support-angular.js",
|
|
26
|
+
"fesm2015": "fesm2015/luigi-project-client-support-angular.js",
|
|
27
|
+
"typings": "luigi-project-client-support-angular.d.ts",
|
|
28
|
+
"metadata": "luigi-project-client-support-angular.metadata.json",
|
|
41
29
|
"sideEffects": false
|
|
42
30
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class LuigiPreloadComponent {
|
|
4
|
-
constructor() { }
|
|
5
|
-
ngOnInit() { }
|
|
6
|
-
}
|
|
7
|
-
LuigiPreloadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiPreloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
-
LuigiPreloadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: LuigiPreloadComponent, selector: "lib-client-support-angular", ngImport: i0, template: "<p luigipreload=\"luigipreload\"></p>\n" });
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiPreloadComponent, decorators: [{
|
|
10
|
-
type: Component,
|
|
11
|
-
args: [{ selector: 'lib-client-support-angular', template: "<p luigipreload=\"luigipreload\"></p>\n" }]
|
|
12
|
-
}], ctorParameters: function () { return []; } });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2kucHJlbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50L2x1aWdpLnByZWxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXN1cHBvcnQtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudC9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsZ0JBQWUsQ0FBQztJQUNoQixRQUFRLEtBQVUsQ0FBQzs7bUhBRlIscUJBQXFCO3VHQUFyQixxQkFBcUIsa0VDUGxDLHlDQUNBOzRGRE1hLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2xpZW50LXN1cHBvcnQtYW5ndWxhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBMdWlnaVByZWxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG4gIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxwIGx1aWdpcHJlbG9hZD1cImx1aWdpcHJlbG9hZFwiPjwvcD5cbiJdfQ==
|
|
@@ -1,178 +0,0 @@
|
|
|
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
|
-
// Add a hook to the post message api to mock the LuigiCore response to the Client
|
|
19
|
-
static initPostMessageHook() {
|
|
20
|
-
return async () => {
|
|
21
|
-
// Check if Luigi Client is running standalone
|
|
22
|
-
if (window.parent === window) {
|
|
23
|
-
console.debug('Detected standalone mode');
|
|
24
|
-
// Check and skip if Luigi environment is already mocked
|
|
25
|
-
if (window.luigiMockEnvironment) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
// mock target origin
|
|
29
|
-
if (window.LuigiClient) {
|
|
30
|
-
window.LuigiClient.setTargetOrigin('*');
|
|
31
|
-
}
|
|
32
|
-
window.luigiMockEnvironment = {
|
|
33
|
-
msgListener: function (e) {
|
|
34
|
-
if (e.data.msg && (e.data.msg.startsWith('luigi.') || e.data.msg === 'storage')) {
|
|
35
|
-
console.debug('Luigi msg', e.data);
|
|
36
|
-
if (e.data.msg === 'luigi.get-context') {
|
|
37
|
-
window.postMessage({
|
|
38
|
-
msg: 'luigi.init',
|
|
39
|
-
emulated: true,
|
|
40
|
-
internal: {
|
|
41
|
-
viewStackSize: 1
|
|
42
|
-
},
|
|
43
|
-
context: e.data.context
|
|
44
|
-
}, '*');
|
|
45
|
-
}
|
|
46
|
-
// vizualise retrieved event data
|
|
47
|
-
LuigiMockEngine.visualize(JSON.stringify(e.data));
|
|
48
|
-
// Check and run mocked callback if it exists
|
|
49
|
-
const mockListener = window.luigiMockEnvironment.mockListeners[e.data.msg];
|
|
50
|
-
if (mockListener) {
|
|
51
|
-
mockListener(e);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
mockListeners: {
|
|
56
|
-
'luigi.navigation.pathExists': (event) => {
|
|
57
|
-
const mockData = window.sessionStorage.getItem('luigiMockData');
|
|
58
|
-
let mockDataParsed = mockData ? JSON.parse(mockData) : undefined;
|
|
59
|
-
const inputPath = event.data.data.link;
|
|
60
|
-
const pathExists = mockDataParsed && mockDataParsed.pathExists && mockDataParsed.pathExists[inputPath];
|
|
61
|
-
const response = {
|
|
62
|
-
msg: 'luigi.navigation.pathExists.answer',
|
|
63
|
-
data: {
|
|
64
|
-
correlationId: event.data.data.id,
|
|
65
|
-
pathExists: pathExists ? pathExists : false
|
|
66
|
-
},
|
|
67
|
-
emulated: true
|
|
68
|
-
};
|
|
69
|
-
window.postMessage(response, '*');
|
|
70
|
-
},
|
|
71
|
-
//ux
|
|
72
|
-
'luigi.ux.confirmationModal.show': (event) => {
|
|
73
|
-
const response = {
|
|
74
|
-
msg: 'luigi.ux.confirmationModal.hide',
|
|
75
|
-
data: event.data,
|
|
76
|
-
emulated: true
|
|
77
|
-
};
|
|
78
|
-
window.postMessage(response, '*');
|
|
79
|
-
},
|
|
80
|
-
'luigi.ux.alert.show': (event) => {
|
|
81
|
-
const response = {
|
|
82
|
-
msg: 'luigi.ux.alert.hide',
|
|
83
|
-
data: event.data,
|
|
84
|
-
emulated: true
|
|
85
|
-
};
|
|
86
|
-
window.postMessage(response, '*');
|
|
87
|
-
},
|
|
88
|
-
'luigi.ux.set-current-locale': (event) => {
|
|
89
|
-
const response = {
|
|
90
|
-
msg: 'luigi.current-locale-changed',
|
|
91
|
-
currentLocale: event.data.data.currentLocale,
|
|
92
|
-
emulated: true
|
|
93
|
-
};
|
|
94
|
-
window.postMessage(response, '*');
|
|
95
|
-
},
|
|
96
|
-
// linkManager
|
|
97
|
-
'luigi.navigation.open': (event) => {
|
|
98
|
-
const response = {
|
|
99
|
-
msg: 'luigi.navigate.ok',
|
|
100
|
-
data: event.data,
|
|
101
|
-
emulated: true
|
|
102
|
-
};
|
|
103
|
-
window.postMessage(response, '*');
|
|
104
|
-
},
|
|
105
|
-
'luigi.navigation.splitview.close': (event) => {
|
|
106
|
-
const response = {
|
|
107
|
-
msg: 'luigi.navigate.ok',
|
|
108
|
-
data: event.data,
|
|
109
|
-
emulated: true
|
|
110
|
-
};
|
|
111
|
-
window.postMessage(response, '*');
|
|
112
|
-
},
|
|
113
|
-
'luigi.navigation.splitview.collapse': (event) => {
|
|
114
|
-
const response = {
|
|
115
|
-
msg: 'luigi.navigate.ok',
|
|
116
|
-
data: event.data,
|
|
117
|
-
emulated: true
|
|
118
|
-
};
|
|
119
|
-
window.postMessage(response, '*');
|
|
120
|
-
},
|
|
121
|
-
'luigi.navigation.splitview.expand': (event) => {
|
|
122
|
-
const response = {
|
|
123
|
-
msg: 'luigi.navigate.ok',
|
|
124
|
-
data: event.data,
|
|
125
|
-
emulated: true
|
|
126
|
-
};
|
|
127
|
-
window.postMessage(response, '*');
|
|
128
|
-
},
|
|
129
|
-
// storage
|
|
130
|
-
storage: () => { }
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
// Listen to the global 'message' event of the window object
|
|
134
|
-
window.addEventListener('message', window.luigiMockEnvironment.msgListener);
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
/*
|
|
139
|
-
* This method takes a data object of type 'any' and vizualizes a simple container
|
|
140
|
-
* which holds data that is useful for e2e testing.
|
|
141
|
-
*/
|
|
142
|
-
static visualize(data) {
|
|
143
|
-
let luigiVisualizationContainer = document.querySelector('#luigi-debug-vis-cnt');
|
|
144
|
-
// Construct element structure if not already constructed
|
|
145
|
-
if (!luigiVisualizationContainer) {
|
|
146
|
-
luigiVisualizationContainer = document.createElement('div');
|
|
147
|
-
luigiVisualizationContainer.setAttribute('id', 'luigi-debug-vis-cnt');
|
|
148
|
-
// Hide the added DOM element to avoid interferring/overlapping with other elements during testing.
|
|
149
|
-
luigiVisualizationContainer.setAttribute('style', 'display:none');
|
|
150
|
-
document.body.appendChild(luigiVisualizationContainer);
|
|
151
|
-
}
|
|
152
|
-
const line = document.createElement('div');
|
|
153
|
-
line.textContent = data;
|
|
154
|
-
luigiVisualizationContainer.appendChild(line);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
LuigiMockModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
158
|
-
LuigiMockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: LuigiMockModule });
|
|
159
|
-
LuigiMockModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiMockModule, providers: [
|
|
160
|
-
{
|
|
161
|
-
provide: APP_INITIALIZER,
|
|
162
|
-
useFactory: LuigiMockEngine.initPostMessageHook,
|
|
163
|
-
multi: true
|
|
164
|
-
}
|
|
165
|
-
] });
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiMockModule, decorators: [{
|
|
167
|
-
type: NgModule,
|
|
168
|
-
args: [{
|
|
169
|
-
providers: [
|
|
170
|
-
{
|
|
171
|
-
provide: APP_INITIALIZER,
|
|
172
|
-
useFactory: LuigiMockEngine.initPostMessageHook,
|
|
173
|
-
multi: true
|
|
174
|
-
}
|
|
175
|
-
]
|
|
176
|
-
}]
|
|
177
|
-
}] });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktbW9jay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvbHVpZ2ktbW9jay9sdWlnaS1tb2NrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRW5FLFdBQVc7QUFVWDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCLGtGQUFrRjtJQUMzRSxNQUFNLENBQUMsbUJBQW1CO1FBQy9CLE9BQU8sS0FBSyxJQUFtQixFQUFFO1lBQy9CLDhDQUE4QztZQUM5QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO2dCQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBRTFDLHdEQUF3RDtnQkFDeEQsSUFBSyxNQUFjLENBQUMsb0JBQW9CLEVBQUU7b0JBQ3hDLE9BQU87aUJBQ1I7Z0JBRUQscUJBQXFCO2dCQUNyQixJQUFLLE1BQWMsQ0FBQyxXQUFXLEVBQUU7b0JBQzlCLE1BQWMsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNsRDtnQkFFQSxNQUFjLENBQUMsb0JBQW9CLEdBQUc7b0JBQ3JDLFdBQVcsRUFBRSxVQUFTLENBQU07d0JBQzFCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLEVBQUU7NEJBQy9FLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFFbkMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxtQkFBbUIsRUFBRTtnQ0FDdEMsTUFBTSxDQUFDLFdBQVcsQ0FDaEI7b0NBQ0UsR0FBRyxFQUFFLFlBQVk7b0NBQ2pCLFFBQVEsRUFBRSxJQUFJO29DQUNkLFFBQVEsRUFBRTt3Q0FDUixhQUFhLEVBQUUsQ0FBQztxQ0FDakI7b0NBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztpQ0FDeEIsRUFDRCxHQUFHLENBQ0osQ0FBQzs2QkFDSDs0QkFFRCxpQ0FBaUM7NEJBQ2pDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs0QkFFbEQsNkNBQTZDOzRCQUM3QyxNQUFNLFlBQVksR0FBSSxNQUFjLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQ3BGLElBQUksWUFBWSxFQUFFO2dDQUNoQixZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7NkJBQ2pCO3lCQUNGO29CQUNILENBQUM7b0JBQ0QsYUFBYSxFQUFFO3dCQUNiLDZCQUE2QixFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7NEJBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDOzRCQUNoRSxJQUFJLGNBQWMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzs0QkFDakUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzRCQUN2QyxNQUFNLFVBQVUsR0FBRyxjQUFjLElBQUksY0FBYyxDQUFDLFVBQVUsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDOzRCQUV2RyxNQUFNLFFBQVEsR0FBRztnQ0FDZixHQUFHLEVBQUUsb0NBQW9DO2dDQUN6QyxJQUFJLEVBQUU7b0NBQ0osYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7b0NBQ2pDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSztpQ0FDNUM7Z0NBQ0QsUUFBUSxFQUFFLElBQUk7NkJBQ2YsQ0FBQzs0QkFDRixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDcEMsQ0FBQzt3QkFDRCxJQUFJO3dCQUNKLGlDQUFpQyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7NEJBQ2hELE1BQU0sUUFBUSxHQUFHO2dDQUNmLEdBQUcsRUFBRSxpQ0FBaUM7Z0NBQ3RDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQ0FDaEIsUUFBUSxFQUFFLElBQUk7NkJBQ2YsQ0FBQzs0QkFDRixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDcEMsQ0FBQzt3QkFDRCxxQkFBcUIsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFOzRCQUNwQyxNQUFNLFFBQVEsR0FBRztnQ0FDZixHQUFHLEVBQUUscUJBQXFCO2dDQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0NBQ2hCLFFBQVEsRUFBRSxJQUFJOzZCQUNmLENBQUM7NEJBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ3BDLENBQUM7d0JBQ0QsNkJBQTZCLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTs0QkFDNUMsTUFBTSxRQUFRLEdBQUc7Z0NBQ2YsR0FBRyxFQUFFLDhCQUE4QjtnQ0FDbkMsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7Z0NBQzVDLFFBQVEsRUFBRSxJQUFJOzZCQUNmLENBQUM7NEJBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ3BDLENBQUM7d0JBQ0QsY0FBYzt3QkFDZCx1QkFBdUIsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFOzRCQUN0QyxNQUFNLFFBQVEsR0FBRztnQ0FDZixHQUFHLEVBQUUsbUJBQW1CO2dDQUN4QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0NBQ2hCLFFBQVEsRUFBRSxJQUFJOzZCQUNmLENBQUM7NEJBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ3BDLENBQUM7d0JBQ0Qsa0NBQWtDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTs0QkFDakQsTUFBTSxRQUFRLEdBQUc7Z0NBQ2YsR0FBRyxFQUFFLG1CQUFtQjtnQ0FDeEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dDQUNoQixRQUFRLEVBQUUsSUFBSTs2QkFDZixDQUFDOzRCQUNGLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUNwQyxDQUFDO3dCQUNELHFDQUFxQyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7NEJBQ3BELE1BQU0sUUFBUSxHQUFHO2dDQUNmLEdBQUcsRUFBRSxtQkFBbUI7Z0NBQ3hCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQ0FDaEIsUUFBUSxFQUFFLElBQUk7NkJBQ2YsQ0FBQzs0QkFDRixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDcEMsQ0FBQzt3QkFDRCxtQ0FBbUMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFOzRCQUNsRCxNQUFNLFFBQVEsR0FBRztnQ0FDZixHQUFHLEVBQUUsbUJBQW1CO2dDQUN4QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0NBQ2hCLFFBQVEsRUFBRSxJQUFJOzZCQUNmLENBQUM7NEJBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ3BDLENBQUM7d0JBQ0QsVUFBVTt3QkFDVixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztxQkFDbEI7aUJBQ0YsQ0FBQztnQkFFRiw0REFBNEQ7Z0JBQzVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUcsTUFBYyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3RGO1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUNsQyxJQUFJLDJCQUEyQixHQUFtQixRQUFRLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDakcseURBQXlEO1FBQ3pELElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNoQywyQkFBMkIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELDJCQUEyQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQztZQUN0RSxtR0FBbUc7WUFDbkcsMkJBQTJCLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNsRSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsTUFBTSxJQUFJLEdBQW1CLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsMkJBQTJCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7OzZHQXRKVSxlQUFlOzhHQUFmLGVBQWU7OEdBQWYsZUFBZSxhQXBCZjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxtQkFBbUI7WUFDL0MsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzRGQWNVLGVBQWU7a0JBckIzQixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxtQkFBbUI7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTHVpZ2lNb2NrRW5naW5lIH0gZnJvbSAnQGx1aWdpLXByb2plY3QvdGVzdGluZy11dGlsaXRpZXMnO1xuXG4vLyBAZHluYW1pY1xuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogTHVpZ2lNb2NrRW5naW5lLmluaXRQb3N0TWVzc2FnZUhvb2ssXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbi8qXG4gKiBUaGlzIGNsYXNzIG1vY2tzIEx1aWdpIENvcmUgcmVsYXRlZCBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIE1pY3JvIEZyb250ZW5kcyB0aGF0IHVzZSBMdWlnaSBDbGllbnQgd291bGQgdXN1YWxseSBjb21tdW5pY2F0ZSB3aXRoIEx1aWdpIENvcmVcbiAqIGJhY2sgYW5kIGZvcnRoLiBXaGVuIHRlc3RpbmcgTHVpZ2kgQ2xpZW50IGJhc2VkIGNvbXBvbmVudHMsIEx1aWdpIENvcmUgbWlnaHRcbiAqIG5vdCBiZSBwcmVzZW50IHdoaWNoIGxlYWRzIGludG8gbGltaXRhdGlvbnMgb24gaW50ZWdyYXRpb24vZTJlIHRlc3RpbmcgZm9yIHN0YW5kYWxvbmVcbiAqIG1pY3JvZnJvbnRlbmRzLlxuICpcbiAqIFRoaXMgbW9kdWxlIGFkZHMgYSBob29rIHRvIHRoZSB3aW5kb3cgcG9zdE1lc3NhZ2UgQVBJIGJ5IGFkZGluZyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGVcbiAqIGdsb2JhbCBtZXNzYWdlIGV2ZW50IG9mIHRoZSB3aW5kb3cgb2JqZWN0IGFuZCBtb2NraW5nIHRoZSBjYWxsYmFjay5cbiAqIEluIHRoZSBub3JtYWwgd29ya2Zsb3cgdGhpcyBtZXNzYWdlIHdvdWxkIHBpY2tlZCB1cCBieSBMdWlnaSBDb3JlIHdoaWNoIHRoZW4gc2VuZHMgdGhlIHJlc3BvbnNlIGJhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBMdWlnaU1vY2tNb2R1bGUge1xuICAvLyBBZGQgYSBob29rIHRvIHRoZSBwb3N0IG1lc3NhZ2UgYXBpIHRvIG1vY2sgdGhlIEx1aWdpQ29yZSByZXNwb25zZSB0byB0aGUgQ2xpZW50XG4gIHB1YmxpYyBzdGF0aWMgaW5pdFBvc3RNZXNzYWdlSG9vaygpIHtcbiAgICByZXR1cm4gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgTHVpZ2kgQ2xpZW50IGlzIHJ1bm5pbmcgc3RhbmRhbG9uZVxuICAgICAgaWYgKHdpbmRvdy5wYXJlbnQgPT09IHdpbmRvdykge1xuICAgICAgICBjb25zb2xlLmRlYnVnKCdEZXRlY3RlZCBzdGFuZGFsb25lIG1vZGUnKTtcblxuICAgICAgICAvLyBDaGVjayBhbmQgc2tpcCBpZiBMdWlnaSBlbnZpcm9ubWVudCBpcyBhbHJlYWR5IG1vY2tlZFxuICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLmx1aWdpTW9ja0Vudmlyb25tZW50KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbW9jayB0YXJnZXQgb3JpZ2luXG4gICAgICAgIGlmICgod2luZG93IGFzIGFueSkuTHVpZ2lDbGllbnQpIHtcbiAgICAgICAgICAod2luZG93IGFzIGFueSkuTHVpZ2lDbGllbnQuc2V0VGFyZ2V0T3JpZ2luKCcqJyk7XG4gICAgICAgIH1cblxuICAgICAgICAod2luZG93IGFzIGFueSkubHVpZ2lNb2NrRW52aXJvbm1lbnQgPSB7XG4gICAgICAgICAgbXNnTGlzdGVuZXI6IGZ1bmN0aW9uKGU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5tc2cgJiYgKGUuZGF0YS5tc2cuc3RhcnRzV2l0aCgnbHVpZ2kuJykgfHwgZS5kYXRhLm1zZyA9PT0gJ3N0b3JhZ2UnKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdMdWlnaSBtc2cnLCBlLmRhdGEpO1xuXG4gICAgICAgICAgICAgIGlmIChlLmRhdGEubXNnID09PSAnbHVpZ2kuZ2V0LWNvbnRleHQnKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtc2c6ICdsdWlnaS5pbml0JyxcbiAgICAgICAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGludGVybmFsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmlld1N0YWNrU2l6ZTogMVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBlLmRhdGEuY29udGV4dFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICcqJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyB2aXp1YWxpc2UgcmV0cmlldmVkIGV2ZW50IGRhdGFcbiAgICAgICAgICAgICAgTHVpZ2lNb2NrRW5naW5lLnZpc3VhbGl6ZShKU09OLnN0cmluZ2lmeShlLmRhdGEpKTtcblxuICAgICAgICAgICAgICAvLyBDaGVjayBhbmQgcnVuIG1vY2tlZCBjYWxsYmFjayBpZiBpdCBleGlzdHNcbiAgICAgICAgICAgICAgY29uc3QgbW9ja0xpc3RlbmVyID0gKHdpbmRvdyBhcyBhbnkpLmx1aWdpTW9ja0Vudmlyb25tZW50Lm1vY2tMaXN0ZW5lcnNbZS5kYXRhLm1zZ107XG4gICAgICAgICAgICAgIGlmIChtb2NrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICBtb2NrTGlzdGVuZXIoZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIG1vY2tMaXN0ZW5lcnM6IHtcbiAgICAgICAgICAgICdsdWlnaS5uYXZpZ2F0aW9uLnBhdGhFeGlzdHMnOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtb2NrRGF0YSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdsdWlnaU1vY2tEYXRhJyk7XG4gICAgICAgICAgICAgIGxldCBtb2NrRGF0YVBhcnNlZCA9IG1vY2tEYXRhID8gSlNPTi5wYXJzZShtb2NrRGF0YSkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGNvbnN0IGlucHV0UGF0aCA9IGV2ZW50LmRhdGEuZGF0YS5saW5rO1xuICAgICAgICAgICAgICBjb25zdCBwYXRoRXhpc3RzID0gbW9ja0RhdGFQYXJzZWQgJiYgbW9ja0RhdGFQYXJzZWQucGF0aEV4aXN0cyAmJiBtb2NrRGF0YVBhcnNlZC5wYXRoRXhpc3RzW2lucHV0UGF0aF07XG5cbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kubmF2aWdhdGlvbi5wYXRoRXhpc3RzLmFuc3dlcicsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgY29ycmVsYXRpb25JZDogZXZlbnQuZGF0YS5kYXRhLmlkLFxuICAgICAgICAgICAgICAgICAgcGF0aEV4aXN0czogcGF0aEV4aXN0cyA/IHBhdGhFeGlzdHMgOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vdXhcbiAgICAgICAgICAgICdsdWlnaS51eC5jb25maXJtYXRpb25Nb2RhbC5zaG93JzogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kudXguY29uZmlybWF0aW9uTW9kYWwuaGlkZScsXG4gICAgICAgICAgICAgICAgZGF0YTogZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgICBlbXVsYXRlZDogdHJ1ZVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocmVzcG9uc2UsICcqJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ2x1aWdpLnV4LmFsZXJ0LnNob3cnOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgICBtc2c6ICdsdWlnaS51eC5hbGVydC5oaWRlJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnbHVpZ2kudXguc2V0LWN1cnJlbnQtbG9jYWxlJzogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kuY3VycmVudC1sb2NhbGUtY2hhbmdlZCcsXG4gICAgICAgICAgICAgICAgY3VycmVudExvY2FsZTogZXZlbnQuZGF0YS5kYXRhLmN1cnJlbnRMb2NhbGUsXG4gICAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGxpbmtNYW5hZ2VyXG4gICAgICAgICAgICAnbHVpZ2kubmF2aWdhdGlvbi5vcGVuJzogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kubmF2aWdhdGUub2snLFxuICAgICAgICAgICAgICAgIGRhdGE6IGV2ZW50LmRhdGEsXG4gICAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdsdWlnaS5uYXZpZ2F0aW9uLnNwbGl0dmlldy5jbG9zZSc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgIG1zZzogJ2x1aWdpLm5hdmlnYXRlLm9rJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnbHVpZ2kubmF2aWdhdGlvbi5zcGxpdHZpZXcuY29sbGFwc2UnOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgICBtc2c6ICdsdWlnaS5uYXZpZ2F0ZS5vaycsXG4gICAgICAgICAgICAgICAgZGF0YTogZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgICBlbXVsYXRlZDogdHJ1ZVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocmVzcG9uc2UsICcqJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ2x1aWdpLm5hdmlnYXRpb24uc3BsaXR2aWV3LmV4cGFuZCc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgIG1zZzogJ2x1aWdpLm5hdmlnYXRlLm9rJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBzdG9yYWdlXG4gICAgICAgICAgICBzdG9yYWdlOiAoKSA9PiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBMaXN0ZW4gdG8gdGhlIGdsb2JhbCAnbWVzc2FnZScgZXZlbnQgb2YgdGhlIHdpbmRvdyBvYmplY3RcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAod2luZG93IGFzIGFueSkubHVpZ2lNb2NrRW52aXJvbm1lbnQubXNnTGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIG1ldGhvZCB0YWtlcyBhIGRhdGEgb2JqZWN0IG9mIHR5cGUgJ2FueScgYW5kIHZpenVhbGl6ZXMgYSBzaW1wbGUgY29udGFpbmVyXG4gICAqIHdoaWNoIGhvbGRzIGRhdGEgdGhhdCBpcyB1c2VmdWwgZm9yIGUyZSB0ZXN0aW5nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2aXN1YWxpemUoZGF0YTogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lcjogRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbHVpZ2ktZGVidWctdmlzLWNudCcpO1xuICAgIC8vIENvbnN0cnVjdCBlbGVtZW50IHN0cnVjdHVyZSBpZiBub3QgYWxyZWFkeSBjb25zdHJ1Y3RlZFxuICAgIGlmICghbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyKSB7XG4gICAgICBsdWlnaVZpc3VhbGl6YXRpb25Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2x1aWdpLWRlYnVnLXZpcy1jbnQnKTtcbiAgICAgIC8vIEhpZGUgdGhlIGFkZGVkIERPTSBlbGVtZW50IHRvIGF2b2lkIGludGVyZmVycmluZy9vdmVybGFwcGluZyB3aXRoIG90aGVyIGVsZW1lbnRzIGR1cmluZyB0ZXN0aW5nLlxuICAgICAgbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpub25lJyk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lcik7XG4gICAgfVxuICAgIGNvbnN0IGxpbmU6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgbGluZS50ZXh0Q29udGVudCA9IGRhdGE7XG4gICAgbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGxpbmUpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,70 +0,0 @@
|
|
|
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
|
-
}
|
|
40
|
-
LuigiAngularSupportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAngularSupportModule, deps: [{ token: i1.LuigiAutoRoutingService }, { token: i2.LuigiContextService }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
41
|
-
LuigiAngularSupportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: LuigiAngularSupportModule, declarations: [LuigiPreloadComponent], imports: [i3.RouterModule], exports: [LuigiPreloadComponent] });
|
|
42
|
-
LuigiAngularSupportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAngularSupportModule, providers: [
|
|
43
|
-
{
|
|
44
|
-
provide: LuigiContextService,
|
|
45
|
-
useClass: LuigiContextServiceImpl
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
provide: RouteReuseStrategy,
|
|
49
|
-
useClass: LuigiRouteStrategy
|
|
50
|
-
}
|
|
51
|
-
], imports: [RouterModule.forChild(staticRoutes)] });
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", 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: function () { return [{ type: i1.LuigiAutoRoutingService }, { type: i2.LuigiContextService }]; } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2kuYW5ndWxhci5zdXBwb3J0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zdXBwb3J0LWFuZ3VsYXIvc3JjL2xpYi9sdWlnaS5hbmd1bGFyLnN1cHBvcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUVsRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVc7SUFDbEMsa0hBQWtIO0lBQ2xIO1FBQ0UsSUFBSSxFQUFFLDhCQUE4QjtRQUNwQyxTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRTtLQUNwQztJQUNELDBJQUEwSTtJQUMxSTtRQUNFLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFO0tBQ3JDO0lBQ0QsMEtBQTBLO0lBQzFLO1FBQ0UsSUFBSSxFQUFFLHdDQUF3QztRQUM5QyxTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7S0FDdEI7SUFDRCxtRkFBbUY7SUFDbkY7UUFDRSxJQUFJLEVBQUUsOEJBQThCO1FBQ3BDLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsSUFBSSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFO0tBQ3JDO0NBQ0YsQ0FBQztBQWlCRixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQVksVUFBbUMsRUFBRSxPQUE0QixJQUFHLENBQUM7O3VIQUR0RSx5QkFBeUI7d0hBQXpCLHlCQUF5QixpQkFkckIscUJBQXFCLHlDQVkxQixxQkFBcUI7d0hBRXBCLHlCQUF5QixhQVp6QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixRQUFRLEVBQUUsdUJBQXVCO1NBQ2xDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFFBQVEsRUFBRSxrQkFBa0I7U0FDN0I7S0FDRixZQVZTLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDOzRGQWFsQyx5QkFBeUI7a0JBZnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzlDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixRQUFRLEVBQUUsdUJBQXVCO3lCQUNsQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixRQUFRLEVBQUUsa0JBQWtCO3lCQUM3QjtxQkFDRjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVSZXVzZVN0cmF0ZWd5LCBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMdWlnaVByZWxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMdWlnaUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL2x1aWdpLWNvbnRleHQtc2VydmljZSc7XG5pbXBvcnQgeyBMdWlnaUNvbnRleHRTZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZS9sdWlnaS1jb250ZXh0LnNlcnZpY2UuaW1wbCc7XG5pbXBvcnQgeyBMdWlnaUF1dG9Sb3V0aW5nU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9sdWlnaS1hdXRvLXJvdXRpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBMdWlnaVJvdXRlU3RyYXRlZ3kgfSBmcm9tICcuL3JvdXRlL2x1aWdpLXJvdXRlLXN0cmF0ZWd5JztcblxuZXhwb3J0IGNvbnN0IHN0YXRpY1JvdXRlczogUm91dGVzID0gW1xuICAvKiogaGVyZSBhbiBleGFtcGxlIGlmIHlvdSB3YW50IHRvIHNwZWNpZnkgdGhhdCB0aGlzIGNvbXBvbmVudCBpcyBhIHZpcnR1YWxUcmVlIGVsZW1lbnQgaW4gTHVpZ2kgQ29yZSBuYXZpZ2F0aW9uKi9cbiAge1xuICAgIHBhdGg6ICdsdWlnaS1jbGllbnQtc3VwcG9ydC1wcmVsb2FkJyxcbiAgICBjb21wb25lbnQ6IEx1aWdpUHJlbG9hZENvbXBvbmVudCxcbiAgICBkYXRhOiB7IGZyb21WaXJ0dWFsVHJlZVJvb3Q6IHRydWUgfVxuICB9LFxuICAvKiogaGVyZSBhbiBleGFtcGxlIGlmIHlvdSB3YW50IHRvIHNwZWNpZnkgdGhhdCB0aGlzIGNvbXBvbmVudCBpdCBpcyBhIGx1aWdpIGNvbXBvbmVudCBhbmQgdSB3YW50IHRvIGNoYW5nZSB0aGUgbmF2aWdhdGlvbiBpbiBMdWlnaSBjb3JlKi9cbiAge1xuICAgIHBhdGg6ICdsdWlnaS1jbGllbnQtc3VwcG9ydC1wcmVsb2FkJyxcbiAgICBjb21wb25lbnQ6IEx1aWdpUHJlbG9hZENvbXBvbmVudCxcbiAgICBkYXRhOiB7IGx1aWdpUm91dGU6ICcvaG9tZS9yZWxvYWQnIH1cbiAgfSxcbiAgLyoqIGhlcmUgYW4gZXhhbXBsZSBpZiB5b3Ugd2FudCB0byByZXVzZSB0aGUgY29tcG9uZW50IGFuZCBub3QgcmVjcmVhdGluZyBldmVyeSB0aW1lIHlvdSBuYXZpZ2F0ZSB0byBpdCAoYSBzaW5nbGV0b24gQ29tcG9uZW50KSBJdCByZXF1aXJlcyBpbiB5b3VyIG1vZHVsZSB0byByZWRlZmluZSAgKi9cbiAge1xuICAgIHBhdGg6ICdsdWlnaS1jbGllbnQtc3VwcG9ydC1wcmVsb2FkPWNvbXBvbmVudCcsXG4gICAgY29tcG9uZW50OiBMdWlnaVByZWxvYWRDb21wb25lbnQsXG4gICAgZGF0YTogeyByZXVzZTogdHJ1ZSB9XG4gIH0sXG4gIC8qKiBoZXJlIGFuIGV4YW1wbGUgaWYgeW91IHdhbnQgdG8gdXBkYXRlIG1vZGFsUGF0aFBhcmFtIG9uIGludGVybmFsIG5hdmlnYXRpb24gICovXG4gIHtcbiAgICBwYXRoOiAnbHVpZ2ktY2xpZW50LXN1cHBvcnQtcHJlbG9hZCcsXG4gICAgY29tcG9uZW50OiBMdWlnaVByZWxvYWRDb21wb25lbnQsXG4gICAgZGF0YTogeyB1cGRhdGVNb2RhbFBhdGhQYXJhbTogdHJ1ZSB9XG4gIH1cbl07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0x1aWdpUHJlbG9hZENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoc3RhdGljUm91dGVzKV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEx1aWdpQ29udGV4dFNlcnZpY2UsXG4gICAgICB1c2VDbGFzczogTHVpZ2lDb250ZXh0U2VydmljZUltcGxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJvdXRlUmV1c2VTdHJhdGVneSxcbiAgICAgIHVzZUNsYXNzOiBMdWlnaVJvdXRlU3RyYXRlZ3lcbiAgICB9XG4gIF0sXG4gIGV4cG9ydHM6IFtMdWlnaVByZWxvYWRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEx1aWdpQW5ndWxhclN1cHBvcnRNb2R1bGUge1xuICBjb25zdHJ1Y3RvcihuYXZpZ2F0aW9uOiBMdWlnaUF1dG9Sb3V0aW5nU2VydmljZSwgY29udGV4dDogTHVpZ2lDb250ZXh0U2VydmljZSkge31cbn1cbiJdfQ==
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subscription } from 'rxjs';
|
|
3
|
-
import { convertToParamMap, NavigationEnd } from '@angular/router';
|
|
4
|
-
import { linkManager, uxManager } 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.subscription = new Subscription();
|
|
15
|
-
this.subscription.add(this.router.events.pipe(this.doFilter()).subscribe(this.doSubscription.bind(this)));
|
|
16
|
-
}
|
|
17
|
-
doFilter() {
|
|
18
|
-
return filter((event) => {
|
|
19
|
-
return !!(event instanceof NavigationEnd &&
|
|
20
|
-
event.url &&
|
|
21
|
-
event.url.length > 0 &&
|
|
22
|
-
!(history.state && history.state.luigiInduced));
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* This method will be take in consideration angular route that having in data object the paramter
|
|
27
|
-
* fromVirtualTreeRoot: true, here an example:
|
|
28
|
-
* {path: 'demo', component: DemoComponent, data:{fromVirtualTreeRoot: true}}
|
|
29
|
-
* Another option is to specify the LuigiPath: if you add in route data luigiRoute:'/xxxx/xxx';
|
|
30
|
-
* in the case we will update the path in LuigiCore navigation, here an example
|
|
31
|
-
* {path: 'demo', component: DemoComponent, data:{luigiRoute: '/home/demo''}}
|
|
32
|
-
* If updateModalPathParam is specified, than modalPathParam will be updated upon internal navigation:
|
|
33
|
-
* {path: 'demo', component: DemoComponent, data:{updateModalPathParam: true}}
|
|
34
|
-
* @param event the NavigationEnd event
|
|
35
|
-
*/
|
|
36
|
-
doSubscription(event) {
|
|
37
|
-
let current = LuigiActivatedRouteSnapshotHelper.getCurrent();
|
|
38
|
-
if (!current) {
|
|
39
|
-
current = this.router.routerState.root.snapshot;
|
|
40
|
-
while (current?.children?.length > 0) {
|
|
41
|
-
// handle multiple children
|
|
42
|
-
let primary = null;
|
|
43
|
-
current?.children.forEach(childSnapshot => {
|
|
44
|
-
if (childSnapshot.outlet === 'primary') {
|
|
45
|
-
primary = childSnapshot;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
if (primary) {
|
|
49
|
-
current = primary;
|
|
50
|
-
}
|
|
51
|
-
else if (current.firstChild) {
|
|
52
|
-
current = current.firstChild;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (current?.data) {
|
|
60
|
-
const ux = uxManager();
|
|
61
|
-
let lm = linkManager().withoutSync();
|
|
62
|
-
let route;
|
|
63
|
-
if (current.data.luigiRoute) {
|
|
64
|
-
route = current.data.luigiRoute;
|
|
65
|
-
if (current.params) {
|
|
66
|
-
const pmap = convertToParamMap(current.params);
|
|
67
|
-
pmap.keys.forEach(key => {
|
|
68
|
-
const val = pmap.getAll(key).forEach(param => {
|
|
69
|
-
route = route?.replace(':' + key, param);
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
if (current.data.fromContext) {
|
|
74
|
-
if (!this.luigiContextService.getContext()) {
|
|
75
|
-
console.debug('Ignoring auto navigation request, luigi context not set');
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
if (current.data.fromContext === true) {
|
|
79
|
-
lm = lm.fromClosestContext();
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
lm = lm.fromContext(current.data.fromContext);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else if (current.data.fromVirtualTreeRoot) {
|
|
87
|
-
let url = event.url;
|
|
88
|
-
const truncate = current.data.fromVirtualTreeRoot.truncate;
|
|
89
|
-
if (truncate) {
|
|
90
|
-
if (truncate.indexOf('*') === 0) {
|
|
91
|
-
const index = url.indexOf(truncate.substr(1));
|
|
92
|
-
url = url.substr(index + truncate.length - 1);
|
|
93
|
-
}
|
|
94
|
-
else if (url.indexOf(truncate) === 0) {
|
|
95
|
-
url = url.substr(truncate.length);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
route = url;
|
|
99
|
-
console.debug('Calling fromVirtualTreeRoot for url ==> ' + route);
|
|
100
|
-
lm = lm.fromVirtualTreeRoot();
|
|
101
|
-
}
|
|
102
|
-
if (ux.isModal()) {
|
|
103
|
-
if (current.data.updateModalDataPath) {
|
|
104
|
-
lm.updateModalPathInternalNavigation(route, {}, current.data.addHistoryEntry);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
else if (route) {
|
|
108
|
-
lm.navigate(route);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
ngOnDestroy() {
|
|
113
|
-
this.subscription.unsubscribe();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
LuigiAutoRoutingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAutoRoutingService, deps: [{ token: i1.Router }, { token: i2.LuigiContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
117
|
-
LuigiAutoRoutingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAutoRoutingService, providedIn: 'root' });
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LuigiAutoRoutingService, decorators: [{
|
|
119
|
-
type: Injectable,
|
|
120
|
-
args: [{
|
|
121
|
-
providedIn: 'root'
|
|
122
|
-
}]
|
|
123
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LuigiContextService }]; } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktYXV0by1yb3V0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1hdXRvLXJvdXRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBcUMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQWlDLE1BQU0saUJBQWlCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7QUFPbkcsTUFBTSxPQUFPLHVCQUF1QjtJQUdsQyxZQUFvQixNQUFjLEVBQVUsbUJBQXdDO1FBQWhFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBRjVFLGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFlLENBQUMsQ0FDakcsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQXdCLEVBQUU7WUFDNUMsT0FBTyxDQUFDLENBQUMsQ0FDUCxLQUFLLFlBQVksYUFB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QixNQUFNOzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIFBhcnRpYWxPYnNlcnZlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb252ZXJ0VG9QYXJhbU1hcCwgTmF2aWdhdGlvbkVuZCwgUGFyYW1NYXAsIFJvdXRlciwgUm91dGVyRXZlbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgbGlua01hbmFnZXIsIHV4TWFuYWdlciB9IGZyb20gJ0BsdWlnaS1wcm9qZWN0L2NsaWVudCc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMdWlnaUFjdGl2YXRlZFJvdXRlU25hcHNob3RIZWxwZXIgfSBmcm9tICcuLi9yb3V0ZS9sdWlnaS1hY3RpdmF0ZWQtcm91dGUtc25hcHNob3QtaGVscGVyJztcbmltcG9ydCB7IEx1aWdpQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2x1aWdpLWNvbnRleHQtc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTHVpZ2lBdXRvUm91dGluZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbHVpZ2lDb250ZXh0U2VydmljZTogTHVpZ2lDb250ZXh0U2VydmljZSkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRoaXMuZG9GaWx0ZXIoKSkuc3Vic2NyaWJlKHRoaXMuZG9TdWJzY3JpcHRpb24uYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkKVxuICAgICk7XG4gIH1cblxuICBkb0ZpbHRlcigpOiBPcGVyYXRvckZ1bmN0aW9uPHVua25vd24sIFJvdXRlckV2ZW50PiB7XG4gICAgcmV0dXJuIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBSb3V0ZXJFdmVudCA9PiB7XG4gICAgICByZXR1cm4gISEoXG4gICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJlxuICAgICAgICBldmVudC51cmwgJiZcbiAgICAgICAgZXZlbnQudXJsLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgIShoaXN0b3J5LnN0YXRlICYmIGhpc3Rvcnkuc3RhdGUubHVpZ2lJbmR1Y2VkKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIHRha2UgaW4gY29uc2lkZXJhdGlvbiBhbmd1bGFyIHJvdXRlIHRoYXQgaGF2aW5nIGluIGRhdGEgb2JqZWN0IHRoZSBwYXJhbXRlclxuICAgKiBmcm9tVmlydHVhbFRyZWVSb290OiB0cnVlLCBoZXJlIGFuIGV4YW1wbGU6XG4gICAqIHtwYXRoOiAnZGVtbycsIGNvbXBvbmVudDogRGVtb0NvbXBvbmVudCwgZGF0YTp7ZnJvbVZpcnR1YWxUcmVlUm9vdDogdHJ1ZX19XG4gICAqIEFub3RoZXIgb3B0aW9uIGlzIHRvIHNwZWNpZnkgdGhlIEx1aWdpUGF0aDogaWYgeW91IGFkZCBpbiByb3V0ZSBkYXRhIGx1aWdpUm91dGU6Jy94eHh4L3h4eCc7XG4gICAqIGluIHRoZSBjYXNlIHdlIHdpbGwgdXBkYXRlIHRoZSBwYXRoIGluIEx1aWdpQ29yZSBuYXZpZ2F0aW9uLCBoZXJlIGFuIGV4YW1wbGVcbiAgICoge3BhdGg6ICdkZW1vJywgY29tcG9uZW50OiBEZW1vQ29tcG9uZW50LCBkYXRhOntsdWlnaVJvdXRlOiAnL2hvbWUvZGVtbycnfX1cbiAgICogSWYgdXBkYXRlTW9kYWxQYXRoUGFyYW0gaXMgc3BlY2lmaWVkLCB0aGFuIG1vZGFsUGF0aFBhcmFtIHdpbGwgYmUgdXBkYXRlZCB1cG9uIGludGVybmFsIG5hdmlnYXRpb246XG4gICAqIHtwYXRoOiAnZGVtbycsIGNvbXBvbmVudDogRGVtb0NvbXBvbmVudCwgZGF0YTp7dXBkYXRlTW9kYWxQYXRoUGFyYW06IHRydWV9fVxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIE5hdmlnYXRpb25FbmQgZXZlbnRcbiAgICovXG4gIGRvU3Vic2NyaXB0aW9uKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgbGV0IGN1cnJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsID0gTHVpZ2lBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90SGVscGVyLmdldEN1cnJlbnQoKTtcblxuICAgIGlmICghY3VycmVudCkge1xuICAgICAgY3VycmVudCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnJvb3Quc25hcHNob3Q7XG4gICAgICB3aGlsZSAoY3VycmVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gaGFuZGxlIG11bHRpcGxlIGNoaWxkcmVuXG4gICAgICAgIGxldCBwcmltYXJ5OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgY3VycmVudD8uY2hpbGRyZW4uZm9yRWFjaChjaGlsZFNuYXBzaG90ID0+IHtcbiAgICAgICAgICBpZiAoY2hpbGRTbmFwc2hvdC5vdXRsZXQgPT09ICdwcmltYXJ5Jykge1xuICAgICAgICAgICAgcHJpbWFyeSA9IGNoaWxkU25hcHNob3Q7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHByaW1hcnkpIHtcbiAgICAgICAgICBjdXJyZW50ID0gcHJpbWFyeTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5maXJzdENoaWxkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjdXJyZW50Py5kYXRhKSB7XG4gICAgICBjb25zdCB1eCA9IHV4TWFuYWdlcigpO1xuICAgICAgbGV0IGxtID0gbGlua01hbmFnZXIoKS53aXRob3V0U3luYygpO1xuICAgICAgbGV0IHJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChjdXJyZW50LmRhdGEubHVpZ2lSb3V0ZSkge1xuICAgICAgICByb3V0ZSA9IGN1cnJlbnQuZGF0YS5sdWlnaVJvdXRlO1xuXG4gICAgICAgIGlmIChjdXJyZW50LnBhcmFtcykge1xuICAgICAgICAgIGNvbnN0IHBtYXA6IFBhcmFtTWFwID0gY29udmVydFRvUGFyYW1NYXAoY3VycmVudC5wYXJhbXMpO1xuICAgICAgICAgIHBtYXAua2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBwbWFwLmdldEFsbChrZXkpLmZvckVhY2gocGFyYW0gPT4ge1xuICAgICAgICAgICAgICByb3V0ZSA9IHJvdXRlPy5yZXBsYWNlKCc6JyArIGtleSwgcGFyYW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCkge1xuICAgICAgICAgIGlmICghdGhpcy5sdWlnaUNvbnRleHRTZXJ2aWNlLmdldENvbnRleHQoKSkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnSWdub3JpbmcgYXV0byBuYXZpZ2F0aW9uIHJlcXVlc3QsIGx1aWdpIGNvbnRleHQgbm90IHNldCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudC5kYXRhLmZyb21Db250ZXh0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBsbSA9IGxtLmZyb21DbG9zZXN0Q29udGV4dCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsbSA9IGxtLmZyb21Db250ZXh0KGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnQuZGF0YS5mcm9tVmlydHVhbFRyZWVSb290KSB7XG4gICAgICAgIGxldCB1cmwgPSBldmVudC51cmw7XG4gICAgICAgIGNvbnN0IHRydW5jYXRlID0gY3VycmVudC5kYXRhLmZyb21WaXJ0dWFsVHJlZVJvb3QudHJ1bmNhdGU7XG4gICAgICAgIGlmICh0cnVuY2F0ZSkge1xuICAgICAgICAgIGlmICh0cnVuY2F0ZS5pbmRleE9mKCcqJykgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdXJsLmluZGV4T2YodHJ1bmNhdGUuc3Vic3RyKDEpKTtcbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHIoaW5kZXggKyB0cnVuY2F0ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKHRydW5jYXRlKSA9PT0gMCkge1xuICAgICAgICAgICAgdXJsID0gdXJsLnN1YnN0cih0cnVuY2F0ZS5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3V0ZSA9IHVybDtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnQ2FsbGluZyBmcm9tVmlydHVhbFRyZWVSb290IGZvciB1cmwgPT0+ICcgKyByb3V0ZSk7XG4gICAgICAgIGxtID0gbG0uZnJvbVZpcnR1YWxUcmVlUm9vdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodXguaXNNb2RhbCgpKSB7XG4gICAgICAgIGlmIChjdXJyZW50LmRhdGEudXBkYXRlTW9kYWxEYXRhUGF0aCkge1xuICAgICAgICAgIGxtLnVwZGF0ZU1vZGFsUGF0aEludGVybmFsTmF2aWdhdGlvbihyb3V0ZSBhcyBzdHJpbmcsIHt9LCBjdXJyZW50LmRhdGEuYWRkSGlzdG9yeUVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChyb3V0ZSkge1xuICAgICAgICBsbS5uYXZpZ2F0ZShyb3V0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|