@luigi-project/client-support-angular 2.21.4-dev.20250580035 → 20.0.0-next.9
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/{fesm2020 → fesm2022}/luigi-project-client-support-angular.mjs +40 -42
- package/{fesm2020 → fesm2022}/luigi-project-client-support-angular.mjs.map +1 -1
- package/index.d.ts +110 -5
- package/package.json +6 -14
- package/esm2020/lib/component/luigi.preload.component.mjs +0 -13
- 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/route/luigi-route-strategy.mjs +0 -9
- package/esm2020/lib/service/luigi-auto-routing.service.mjs +0 -141
- package/esm2020/lib/service/luigi-context-service.mjs +0 -8
- package/esm2020/lib/service/luigi-context.service.impl.mjs +0 -77
- package/esm2020/luigi-project-client-support-angular.mjs +0 -5
- package/esm2020/public-api.mjs +0 -10
- package/fesm2015/luigi-project-client-support-angular.mjs +0 -357
- package/fesm2015/luigi-project-client-support-angular.mjs.map +0 -1
- package/lib/component/luigi.preload.component.d.ts +0 -8
- package/lib/luigi-mock/luigi-mock.module.d.ts +0 -6
- package/lib/luigi.angular.support.module.d.ts +0 -13
- package/lib/route/luigi-activated-route-snapshot-helper.d.ts +0 -6
- package/lib/route/luigi-route-strategy.d.ts +0 -5
- package/lib/service/luigi-auto-routing.service.d.ts +0 -31
- package/lib/service/luigi-context-service.d.ts +0 -25
- package/lib/service/luigi-context.service.impl.d.ts +0 -33
- package/public-api.d.ts +0 -6
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { NavigationEnd, convertToParamMap } from '@angular/router';
|
|
3
|
-
import { linkManager, uxManager, isLuigiClientInitialized } 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
|
-
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 && isLuigiClientInitialized()) {
|
|
60
|
-
const ux = uxManager();
|
|
61
|
-
let lm = linkManager().withoutSync();
|
|
62
|
-
let route;
|
|
63
|
-
if (current.data.luigiRoute) {
|
|
64
|
-
route = this.getResolvedLuigiRoute(current);
|
|
65
|
-
if (current.data.fromContext) {
|
|
66
|
-
if (!this.luigiContextService.getContext()) {
|
|
67
|
-
console.debug('Ignoring auto navigation request, luigi context not set');
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (current.data.fromContext === true) {
|
|
71
|
-
lm = lm.fromClosestContext();
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
lm = lm.fromContext(current.data.fromContext);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
else if (current.data.fromVirtualTreeRoot) {
|
|
79
|
-
let url = event.url;
|
|
80
|
-
const truncate = current.data.fromVirtualTreeRoot.truncate;
|
|
81
|
-
if (truncate) {
|
|
82
|
-
if (truncate.indexOf('*') === 0) {
|
|
83
|
-
const index = url.indexOf(truncate.substr(1));
|
|
84
|
-
url = url.substr(index + truncate.length - 1);
|
|
85
|
-
}
|
|
86
|
-
else if (url.indexOf(truncate) === 0) {
|
|
87
|
-
url = url.substr(truncate.length);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
route = url;
|
|
91
|
-
console.debug('Calling fromVirtualTreeRoot for url ==> ' + route);
|
|
92
|
-
lm = lm.fromVirtualTreeRoot();
|
|
93
|
-
}
|
|
94
|
-
if (ux.isModal()) {
|
|
95
|
-
if (current.data.updateModalDataPath) {
|
|
96
|
-
lm.updateModalPathInternalNavigation(route, {}, current.data.addHistoryEntry);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else if (route) {
|
|
100
|
-
lm.navigate(route);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
getResolvedLuigiRoute(current) {
|
|
105
|
-
let route = current.data.luigiRoute;
|
|
106
|
-
const allParams = this.getAllParamsFromParents(current);
|
|
107
|
-
if (!route || !allParams) {
|
|
108
|
-
return route;
|
|
109
|
-
}
|
|
110
|
-
const pmap = convertToParamMap(allParams);
|
|
111
|
-
pmap.keys.forEach(key => {
|
|
112
|
-
pmap.getAll(key).forEach(param => {
|
|
113
|
-
route = route?.replace(':' + key, param);
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
return route;
|
|
117
|
-
}
|
|
118
|
-
getAllParamsFromParents(current) {
|
|
119
|
-
let allParams = {};
|
|
120
|
-
let currentToCheck = current;
|
|
121
|
-
while (currentToCheck) {
|
|
122
|
-
if (currentToCheck.params) {
|
|
123
|
-
allParams = { ...allParams, ...currentToCheck.params };
|
|
124
|
-
}
|
|
125
|
-
currentToCheck = currentToCheck.parent;
|
|
126
|
-
}
|
|
127
|
-
return allParams;
|
|
128
|
-
}
|
|
129
|
-
ngOnDestroy() {
|
|
130
|
-
this.subscription.unsubscribe();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
LuigiAutoRoutingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAutoRoutingService, deps: [{ token: i1.Router }, { token: i2.LuigiContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
134
|
-
LuigiAutoRoutingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAutoRoutingService, providedIn: 'root' });
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAutoRoutingService, decorators: [{
|
|
136
|
-
type: Injectable,
|
|
137
|
-
args: [{
|
|
138
|
-
providedIn: 'root'
|
|
139
|
-
}]
|
|
140
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LuigiContextService }]; } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktYXV0by1yb3V0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1hdXRvLXJvdXRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFFTCxhQUFhLEVBSWIsaUJBQWlCLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RixPQUFPLEVBQW9CLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7QUFNbkcsTUFBTSxPQUFPLHVCQUF1QjtJQUdsQyxZQUFvQixNQUFjLEVBQVUsbUJBQXdDO1FBQWhFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBRjVFLGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFlLENBQUMsQ0FDakcsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQXdCLEVBQUU7WUFDNUMsT0FBTyxDQUFDLENBQUMsQ0FDUCxL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QUcsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQStCO1FBQ3JELElBQUksU0FBUyxHQUE4QixFQUFFLENBQUM7UUFDOUMsSUFBSSxjQUFjLEdBQWtDLE9BQU8sQ0FBQztRQUU1RCxPQUFPLGNBQWMsRUFBRTtZQUNyQixJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pCLFNBQVMsR0FBRyxFQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3hEO1lBQ0QsY0FBYyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7U0FDeEM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7b0hBcklVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgUGFyYW1NYXAsXG4gIFJvdXRlcixcbiAgUm91dGVyRXZlbnQsXG4gIGNvbnZlcnRUb1BhcmFtTWFwXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBsaW5rTWFuYWdlciwgdXhNYW5hZ2VyLCBpc0x1aWdpQ2xpZW50SW5pdGlhbGl6ZWQgfSBmcm9tICdAbHVpZ2ktcHJvamVjdC9jbGllbnQnO1xuaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMdWlnaUFjdGl2YXRlZFJvdXRlU25hcHNob3RIZWxwZXIgfSBmcm9tICcuLi9yb3V0ZS9sdWlnaS1hY3RpdmF0ZWQtcm91dGUtc25hcHNob3QtaGVscGVyJztcbmltcG9ydCB7IEx1aWdpQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2x1aWdpLWNvbnRleHQtc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEx1aWdpQXV0b1JvdXRpbmdTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGx1aWdpQ29udGV4dFNlcnZpY2U6IEx1aWdpQ29udGV4dFNlcnZpY2UpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZSh0aGlzLmRvRmlsdGVyKCkpLnN1YnNjcmliZSh0aGlzLmRvU3Vic2NyaXB0aW9uLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZClcbiAgICApO1xuICB9XG5cbiAgZG9GaWx0ZXIoKTogT3BlcmF0b3JGdW5jdGlvbjx1bmtub3duLCBSb3V0ZXJFdmVudD4ge1xuICAgIHJldHVybiBmaWx0ZXIoKGV2ZW50KTogZXZlbnQgaXMgUm91dGVyRXZlbnQgPT4ge1xuICAgICAgcmV0dXJuICEhKFxuICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiZcbiAgICAgICAgZXZlbnQudXJsICYmXG4gICAgICAgIGV2ZW50LnVybC5sZW5ndGggPiAwICYmXG4gICAgICAgICEoaGlzdG9yeS5zdGF0ZSAmJiBoaXN0b3J5LnN0YXRlLmx1aWdpSW5kdWNlZClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSB0YWtlIGluIGNvbnNpZGVyYXRpb24gYW5ndWxhciByb3V0ZSB0aGF0IGhhdmluZyBpbiBkYXRhIG9iamVjdCB0aGUgcGFyYW10ZXJcbiAgICogZnJvbVZpcnR1YWxUcmVlUm9vdDogdHJ1ZSwgaGVyZSBhbiBleGFtcGxlOlxuICAgKiB7cGF0aDogJ2RlbW8nLCBjb21wb25lbnQ6IERlbW9Db21wb25lbnQsIGRhdGE6e2Zyb21WaXJ0dWFsVHJlZVJvb3Q6IHRydWV9fVxuICAgKiBBbm90aGVyIG9wdGlvbiBpcyB0byBzcGVjaWZ5IHRoZSBMdWlnaVBhdGg6IGlmIHlvdSBhZGQgaW4gcm91dGUgZGF0YSBsdWlnaVJvdXRlOicveHh4eC94eHgnO1xuICAgKiBpbiB0aGUgY2FzZSB3ZSB3aWxsIHVwZGF0ZSB0aGUgcGF0aCBpbiBMdWlnaUNvcmUgbmF2aWdhdGlvbiwgaGVyZSBhbiBleGFtcGxlXG4gICAqIHtwYXRoOiAnZGVtbycsIGNvbXBvbmVudDogRGVtb0NvbXBvbmVudCwgZGF0YTp7bHVpZ2lSb3V0ZTogJy9ob21lL2RlbW8nJ319XG4gICAqIElmIHVwZGF0ZU1vZGFsUGF0aFBhcmFtIGlzIHNwZWNpZmllZCwgdGhhbiBtb2RhbFBhdGhQYXJhbSB3aWxsIGJlIHVwZGF0ZWQgdXBvbiBpbnRlcm5hbCBuYXZpZ2F0aW9uOlxuICAgKiB7cGF0aDogJ2RlbW8nLCBjb21wb25lbnQ6IERlbW9Db21wb25lbnQsIGRhdGE6e3VwZGF0ZU1vZGFsUGF0aFBhcmFtOiB0cnVlfX1cbiAgICogQHBhcmFtIGV2ZW50IHRoZSBOYXZpZ2F0aW9uRW5kIGV2ZW50XG4gICAqL1xuICBkb1N1YnNjcmlwdGlvbihldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIGxldCBjdXJyZW50OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IEx1aWdpQWN0aXZhdGVkUm91dGVTbmFwc2hvdEhlbHBlci5nZXRDdXJyZW50KCk7XG5cbiAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgIGN1cnJlbnQgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LnNuYXBzaG90O1xuICAgICAgd2hpbGUgKGN1cnJlbnQ/LmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIGhhbmRsZSBtdWx0aXBsZSBjaGlsZHJlblxuICAgICAgICBsZXQgcHJpbWFyeTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGN1cnJlbnQ/LmNoaWxkcmVuLmZvckVhY2goY2hpbGRTbmFwc2hvdCA9PiB7XG4gICAgICAgICAgaWYgKGNoaWxkU25hcHNob3Qub3V0bGV0ID09PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgIHByaW1hcnkgPSBjaGlsZFNuYXBzaG90O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwcmltYXJ5KSB7XG4gICAgICAgICAgY3VycmVudCA9IHByaW1hcnk7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5maXJzdENoaWxkKSB7XG4gICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuZmlyc3RDaGlsZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY3VycmVudD8uZGF0YSAmJiBpc0x1aWdpQ2xpZW50SW5pdGlhbGl6ZWQoKSkge1xuICAgICAgY29uc3QgdXggPSB1eE1hbmFnZXIoKTtcbiAgICAgIGxldCBsbSA9IGxpbmtNYW5hZ2VyKCkud2l0aG91dFN5bmMoKTtcbiAgICAgIGxldCByb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoY3VycmVudC5kYXRhLmx1aWdpUm91dGUpIHtcbiAgICAgICAgcm91dGUgPSB0aGlzLmdldFJlc29sdmVkTHVpZ2lSb3V0ZShjdXJyZW50KTtcbiAgICAgICAgaWYgKGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCkge1xuICAgICAgICAgIGlmICghdGhpcy5sdWlnaUNvbnRleHRTZXJ2aWNlLmdldENvbnRleHQoKSkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnSWdub3JpbmcgYXV0byBuYXZpZ2F0aW9uIHJlcXVlc3QsIGx1aWdpIGNvbnRleHQgbm90IHNldCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudC5kYXRhLmZyb21Db250ZXh0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBsbSA9IGxtLmZyb21DbG9zZXN0Q29udGV4dCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsbSA9IGxtLmZyb21Db250ZXh0KGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnQuZGF0YS5mcm9tVmlydHVhbFRyZWVSb290KSB7XG4gICAgICAgIGxldCB1cmwgPSBldmVudC51cmw7XG4gICAgICAgIGNvbnN0IHRydW5jYXRlID0gY3VycmVudC5kYXRhLmZyb21WaXJ0dWFsVHJlZVJvb3QudHJ1bmNhdGU7XG4gICAgICAgIGlmICh0cnVuY2F0ZSkge1xuICAgICAgICAgIGlmICh0cnVuY2F0ZS5pbmRleE9mKCcqJykgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdXJsLmluZGV4T2YodHJ1bmNhdGUuc3Vic3RyKDEpKTtcbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHIoaW5kZXggKyB0cnVuY2F0ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKHRydW5jYXRlKSA9PT0gMCkge1xuICAgICAgICAgICAgdXJsID0gdXJsLnN1YnN0cih0cnVuY2F0ZS5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3V0ZSA9IHVybDtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnQ2FsbGluZyBmcm9tVmlydHVhbFRyZWVSb290IGZvciB1cmwgPT0+ICcgKyByb3V0ZSk7XG4gICAgICAgIGxtID0gbG0uZnJvbVZpcnR1YWxUcmVlUm9vdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodXguaXNNb2RhbCgpKSB7XG4gICAgICAgIGlmIChjdXJyZW50LmRhdGEudXBkYXRlTW9kYWxEYXRhUGF0aCkge1xuICAgICAgICAgIGxtLnVwZGF0ZU1vZGFsUGF0aEludGVybmFsTmF2aWdhdGlvbihyb3V0ZSBhcyBzdHJpbmcsIHt9LCBjdXJyZW50LmRhdGEuYWRkSGlzdG9yeUVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChyb3V0ZSkge1xuICAgICAgICBsbS5uYXZpZ2F0ZShyb3V0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVzb2x2ZWRMdWlnaVJvdXRlKGN1cnJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCByb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gY3VycmVudC5kYXRhLmx1aWdpUm91dGU7XG4gICAgY29uc3QgYWxsUGFyYW1zID0gdGhpcy5nZXRBbGxQYXJhbXNGcm9tUGFyZW50cyhjdXJyZW50KTtcblxuICAgIGlmICghcm91dGUgfHwgIWFsbFBhcmFtcykge1xuICAgICAgcmV0dXJuIHJvdXRlO1xuICAgIH1cblxuICAgIGNvbnN0IHBtYXA6IFBhcmFtTWFwID0gY29udmVydFRvUGFyYW1NYXAoYWxsUGFyYW1zKTtcblxuICAgIHBtYXAua2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBwbWFwLmdldEFsbChrZXkpLmZvckVhY2gocGFyYW0gPT4ge1xuICAgICAgICByb3V0ZSA9IHJvdXRlPy5yZXBsYWNlKCc6JyArIGtleSwgcGFyYW0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcm91dGU7XG4gIH1cblxuICBnZXRBbGxQYXJhbXNGcm9tUGFyZW50cyhjdXJyZW50OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGFsbFBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGxldCBjdXJyZW50VG9DaGVjazogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IG51bGwgPSBjdXJyZW50O1xuXG4gICAgd2hpbGUgKGN1cnJlbnRUb0NoZWNrKSB7XG4gICAgICBpZiAoY3VycmVudFRvQ2hlY2sucGFyYW1zKSB7XG4gICAgICAgIGFsbFBhcmFtcyA9IHsgLi4uYWxsUGFyYW1zLCAuLi5jdXJyZW50VG9DaGVjay5wYXJhbXMgfTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRUb0NoZWNrID0gY3VycmVudFRvQ2hlY2sucGFyZW50O1xuICAgIH1cblxuICAgIHJldHVybiBhbGxQYXJhbXM7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export class LuigiContextService {
|
|
2
|
-
}
|
|
3
|
-
export var ILuigiContextTypes;
|
|
4
|
-
(function (ILuigiContextTypes) {
|
|
5
|
-
ILuigiContextTypes[ILuigiContextTypes["INIT"] = 0] = "INIT";
|
|
6
|
-
ILuigiContextTypes[ILuigiContextTypes["UPDATE"] = 1] = "UPDATE";
|
|
7
|
-
})(ILuigiContextTypes || (ILuigiContextTypes = {}));
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktY29udGV4dC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXN1cHBvcnQtYW5ndWxhci9zcmMvbGliL3NlcnZpY2UvbHVpZ2ktY29udGV4dC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBZ0IsbUJBQW1CO0NBZ0J4QztBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDNUIsMkRBQUksQ0FBQTtJQUNKLCtEQUFNLENBQUE7QUFDUixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHQgfSBmcm9tICdAbHVpZ2ktcHJvamVjdC9jbGllbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTHVpZ2lDb250ZXh0U2VydmljZSB7XG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gY29udGV4dCBjaGFuZ2VzXG4gICAqIFJlY2VpdmVzIGN1cnJlbnQgdmFsdWUsIGV2ZW4gaWYgdGhlIGV2ZW50IHdhcyBhbHJlYWR5IGRpc3BhdGNoZWQgZWFybGllci5cbiAgICovXG4gIGFic3RyYWN0IGNvbnRleHRPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8SUNvbnRleHRNZXNzYWdlPjtcblxuICAvKipcbiAgICogR2V0IGxhdGVzdCBzZXQgY29udGV4dCBvYmplY3RcbiAgICovXG4gIGFic3RyYWN0IGdldENvbnRleHQoKTogQ29udGV4dDtcblxuICAvKipcbiAgICogR2V0IGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gY29udGV4dCBpcyBzZXQuXG4gICAqL1xuICBhYnN0cmFjdCBnZXRDb250ZXh0QXN5bmMoKTogUHJvbWlzZTxDb250ZXh0Pjtcbn1cblxuZXhwb3J0IGVudW0gSUx1aWdpQ29udGV4dFR5cGVzIHtcbiAgSU5JVCxcbiAgVVBEQVRFXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRleHRNZXNzYWdlIHtcbiAgY29udGV4dFR5cGU6IElMdWlnaUNvbnRleHRUeXBlczsgLy8gd2lsbCBiZSBpbml0IG9yIHVwZGF0ZVxuICBjb250ZXh0OiBDb250ZXh0O1xufVxuIl19
|
|
@@ -1,77 +0,0 @@
|
|
|
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
|
-
constructor(zone) {
|
|
9
|
-
this.zone = zone;
|
|
10
|
-
this.subject = new ReplaySubject(1);
|
|
11
|
-
this.currentContext = null;
|
|
12
|
-
addInitListener(initContext => {
|
|
13
|
-
this.addListener(ILuigiContextTypes.INIT, initContext);
|
|
14
|
-
});
|
|
15
|
-
addContextUpdateListener(updateContext => {
|
|
16
|
-
this.addListener(ILuigiContextTypes.UPDATE, updateContext);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
contextObservable() {
|
|
20
|
-
return this.subject.asObservable();
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Get latest context object retrieved from luigi core application or empty object, if not yet set.
|
|
24
|
-
*/
|
|
25
|
-
getContext() {
|
|
26
|
-
return (this.currentContext && this.currentContext.context) || {};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get a promise that resolves when context is set.
|
|
30
|
-
*/
|
|
31
|
-
getContextAsync() {
|
|
32
|
-
return new Promise((resolve, reject) => {
|
|
33
|
-
if (this.isObject(this.getContext()) && Object.keys(this.getContext()).length > 0) {
|
|
34
|
-
resolve(this.getContext());
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.contextObservable()
|
|
38
|
-
.pipe(first())
|
|
39
|
-
.subscribe(ctx => {
|
|
40
|
-
resolve(ctx.context);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Checks if input is an object.
|
|
47
|
-
* @param objectToCheck mixed
|
|
48
|
-
* @returns {boolean}
|
|
49
|
-
*/
|
|
50
|
-
isObject(objectToCheck) {
|
|
51
|
-
return !!(objectToCheck && typeof objectToCheck === 'object' && !Array.isArray(objectToCheck));
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Set current context
|
|
55
|
-
*/
|
|
56
|
-
setContext(obj) {
|
|
57
|
-
this.zone.run(() => {
|
|
58
|
-
this.currentContext = obj;
|
|
59
|
-
this.subject.next(obj);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
addListener(contextType, context) {
|
|
63
|
-
this.setContext({
|
|
64
|
-
contextType,
|
|
65
|
-
context
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
LuigiContextServiceImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiContextServiceImpl, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
70
|
-
LuigiContextServiceImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiContextServiceImpl, providedIn: 'root' });
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiContextServiceImpl, decorators: [{
|
|
72
|
-
type: Injectable,
|
|
73
|
-
args: [{
|
|
74
|
-
providedIn: 'root'
|
|
75
|
-
}]
|
|
76
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktY29udGV4dC5zZXJ2aWNlLmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1jb250ZXh0LnNlcnZpY2UuaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBVyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQW1CLGtCQUFrQixFQUF1QixNQUFNLHlCQUF5QixDQUFDOztBQUtuRyxNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQW9CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBSHhCLFlBQU8sR0FBbUMsSUFBSSxhQUFhLENBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLG1CQUFjLEdBQXFCLElBQW1DLENBQUM7UUFHN0UsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsd0JBQXdCLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2pGLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsaUJBQWlCLEVBQUU7cUJBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztxQkFDYixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7YUFDTjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxRQUFRLENBQUMsYUFBa0I7UUFDakMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRDs7T0FFRztJQUNPLFVBQVUsQ0FBQyxHQUFvQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLFdBQStCLEVBQUUsT0FBZ0I7UUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLFdBQVc7WUFDWCxPQUFPO1NBQ1csQ0FBQyxDQUFDO0lBQ3hCLENBQUM7O29IQWpFVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udGV4dCwgYWRkSW5pdExpc3RlbmVyLCBhZGRDb250ZXh0VXBkYXRlTGlzdGVuZXIgfSBmcm9tICdAbHVpZ2ktcHJvamVjdC9jbGllbnQnO1xuaW1wb3J0IHsgSUNvbnRleHRNZXNzYWdlLCBJTHVpZ2lDb250ZXh0VHlwZXMsIEx1aWdpQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2x1aWdpLWNvbnRleHQtc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEx1aWdpQ29udGV4dFNlcnZpY2VJbXBsIGltcGxlbWVudHMgTHVpZ2lDb250ZXh0U2VydmljZSB7XG4gIHByaXZhdGUgc3ViamVjdDogUmVwbGF5U3ViamVjdDxJQ29udGV4dE1lc3NhZ2U+ID0gbmV3IFJlcGxheVN1YmplY3Q8SUNvbnRleHRNZXNzYWdlPigxKTtcbiAgcHJpdmF0ZSBjdXJyZW50Q29udGV4dDogSUNvbnRleHRNZXNzYWdlID0gKG51bGwgYXMgdW5rbm93bikgYXMgSUNvbnRleHRNZXNzYWdlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgYWRkSW5pdExpc3RlbmVyKGluaXRDb250ZXh0ID0+IHtcbiAgICAgIHRoaXMuYWRkTGlzdGVuZXIoSUx1aWdpQ29udGV4dFR5cGVzLklOSVQsIGluaXRDb250ZXh0KTtcbiAgICB9KTtcbiAgICBhZGRDb250ZXh0VXBkYXRlTGlzdGVuZXIodXBkYXRlQ29udGV4dCA9PiB7XG4gICAgICB0aGlzLmFkZExpc3RlbmVyKElMdWlnaUNvbnRleHRUeXBlcy5VUERBVEUsIHVwZGF0ZUNvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHRPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8SUNvbnRleHRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGF0ZXN0IGNvbnRleHQgb2JqZWN0IHJldHJpZXZlZCBmcm9tIGx1aWdpIGNvcmUgYXBwbGljYXRpb24gb3IgZW1wdHkgb2JqZWN0LCBpZiBub3QgeWV0IHNldC5cbiAgICovXG4gIHB1YmxpYyBnZXRDb250ZXh0KCk6IENvbnRleHQge1xuICAgIHJldHVybiAodGhpcy5jdXJyZW50Q29udGV4dCAmJiB0aGlzLmN1cnJlbnRDb250ZXh0LmNvbnRleHQpIHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGNvbnRleHQgaXMgc2V0LlxuICAgKi9cbiAgcHVibGljIGdldENvbnRleHRBc3luYygpOiBQcm9taXNlPENvbnRleHQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Q29udGV4dD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPYmplY3QodGhpcy5nZXRDb250ZXh0KCkpICYmIE9iamVjdC5rZXlzKHRoaXMuZ2V0Q29udGV4dCgpKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5nZXRDb250ZXh0KCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb250ZXh0T2JzZXJ2YWJsZSgpXG4gICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKGN0eCA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGN0eC5jb250ZXh0KTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgaW5wdXQgaXMgYW4gb2JqZWN0LlxuICAgKiBAcGFyYW0gb2JqZWN0VG9DaGVjayBtaXhlZFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHByaXZhdGUgaXNPYmplY3Qob2JqZWN0VG9DaGVjazogYW55KSB7XG4gICAgcmV0dXJuICEhKG9iamVjdFRvQ2hlY2sgJiYgdHlwZW9mIG9iamVjdFRvQ2hlY2sgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KG9iamVjdFRvQ2hlY2spKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY3VycmVudCBjb250ZXh0XG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0Q29udGV4dChvYmo6IElDb250ZXh0TWVzc2FnZSk6IHZvaWQge1xuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50Q29udGV4dCA9IG9iajtcbiAgICAgIHRoaXMuc3ViamVjdC5uZXh0KG9iaik7XG4gICAgfSk7XG4gIH1cblxuICBhZGRMaXN0ZW5lcihjb250ZXh0VHlwZTogSUx1aWdpQ29udGV4dFR5cGVzLCBjb250ZXh0OiBDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5zZXRDb250ZXh0KHtcbiAgICAgIGNvbnRleHRUeXBlLFxuICAgICAgY29udGV4dFxuICAgIH0gYXMgSUNvbnRleHRNZXNzYWdlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktcHJvamVjdC1jbGllbnQtc3VwcG9ydC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXN1cHBvcnQtYW5ndWxhci9zcmMvbHVpZ2ktcHJvamVjdC1jbGllbnQtc3VwcG9ydC1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
package/esm2020/public-api.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of client-support-angular
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/component/luigi.preload.component';
|
|
5
|
-
export * from './lib/luigi.angular.support.module';
|
|
6
|
-
export * from './lib/service/luigi-context-service';
|
|
7
|
-
export * from './lib/service/luigi-context.service.impl';
|
|
8
|
-
export * from './lib/service/luigi-auto-routing.service';
|
|
9
|
-
export * from './lib/luigi-mock/luigi-mock.module';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zdXBwb3J0LWFuZ3VsYXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY2xpZW50LXN1cHBvcnQtYW5ndWxhclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudC9sdWlnaS5wcmVsb2FkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sdWlnaS5hbmd1bGFyLnN1cHBvcnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvbHVpZ2ktY29udGV4dC1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvbHVpZ2ktY29udGV4dC5zZXJ2aWNlLmltcGwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9sdWlnaS1hdXRvLXJvdXRpbmcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sdWlnaS1tb2NrL2x1aWdpLW1vY2subW9kdWxlJztcbiJdfQ==
|
|
@@ -1,357 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Injectable, NgModule, APP_INITIALIZER } from '@angular/core';
|
|
3
|
-
import * as i1 from '@angular/router';
|
|
4
|
-
import { BaseRouteReuseStrategy, NavigationEnd, convertToParamMap, RouteReuseStrategy, RouterModule } from '@angular/router';
|
|
5
|
-
import { ReplaySubject, Subscription } from 'rxjs';
|
|
6
|
-
import { first, filter } from 'rxjs/operators';
|
|
7
|
-
import { addInitListener, addContextUpdateListener, isLuigiClientInitialized, uxManager, linkManager } from '@luigi-project/client';
|
|
8
|
-
import { LuigiMockEngine } from '@luigi-project/testing-utilities';
|
|
9
|
-
|
|
10
|
-
class LuigiPreloadComponent {
|
|
11
|
-
constructor() { }
|
|
12
|
-
ngOnInit() { }
|
|
13
|
-
}
|
|
14
|
-
LuigiPreloadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiPreloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
-
LuigiPreloadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LuigiPreloadComponent, selector: "lib-client-support-angular", ngImport: i0, template: "<p luigipreload=\"luigipreload\"></p>\n" });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiPreloadComponent, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'lib-client-support-angular', template: "<p luigipreload=\"luigipreload\"></p>\n" }]
|
|
19
|
-
}], ctorParameters: function () { return []; } });
|
|
20
|
-
|
|
21
|
-
class LuigiContextService {
|
|
22
|
-
}
|
|
23
|
-
var ILuigiContextTypes;
|
|
24
|
-
(function (ILuigiContextTypes) {
|
|
25
|
-
ILuigiContextTypes[ILuigiContextTypes["INIT"] = 0] = "INIT";
|
|
26
|
-
ILuigiContextTypes[ILuigiContextTypes["UPDATE"] = 1] = "UPDATE";
|
|
27
|
-
})(ILuigiContextTypes || (ILuigiContextTypes = {}));
|
|
28
|
-
|
|
29
|
-
class LuigiContextServiceImpl {
|
|
30
|
-
constructor(zone) {
|
|
31
|
-
this.zone = zone;
|
|
32
|
-
this.subject = new ReplaySubject(1);
|
|
33
|
-
this.currentContext = null;
|
|
34
|
-
addInitListener(initContext => {
|
|
35
|
-
this.addListener(ILuigiContextTypes.INIT, initContext);
|
|
36
|
-
});
|
|
37
|
-
addContextUpdateListener(updateContext => {
|
|
38
|
-
this.addListener(ILuigiContextTypes.UPDATE, updateContext);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
contextObservable() {
|
|
42
|
-
return this.subject.asObservable();
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Get latest context object retrieved from luigi core application or empty object, if not yet set.
|
|
46
|
-
*/
|
|
47
|
-
getContext() {
|
|
48
|
-
return (this.currentContext && this.currentContext.context) || {};
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Get a promise that resolves when context is set.
|
|
52
|
-
*/
|
|
53
|
-
getContextAsync() {
|
|
54
|
-
return new Promise((resolve, reject) => {
|
|
55
|
-
if (this.isObject(this.getContext()) && Object.keys(this.getContext()).length > 0) {
|
|
56
|
-
resolve(this.getContext());
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.contextObservable()
|
|
60
|
-
.pipe(first())
|
|
61
|
-
.subscribe(ctx => {
|
|
62
|
-
resolve(ctx.context);
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Checks if input is an object.
|
|
69
|
-
* @param objectToCheck mixed
|
|
70
|
-
* @returns {boolean}
|
|
71
|
-
*/
|
|
72
|
-
isObject(objectToCheck) {
|
|
73
|
-
return !!(objectToCheck && typeof objectToCheck === 'object' && !Array.isArray(objectToCheck));
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Set current context
|
|
77
|
-
*/
|
|
78
|
-
setContext(obj) {
|
|
79
|
-
this.zone.run(() => {
|
|
80
|
-
this.currentContext = obj;
|
|
81
|
-
this.subject.next(obj);
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
addListener(contextType, context) {
|
|
85
|
-
this.setContext({
|
|
86
|
-
contextType,
|
|
87
|
-
context
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
LuigiContextServiceImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiContextServiceImpl, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
92
|
-
LuigiContextServiceImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiContextServiceImpl, providedIn: 'root' });
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiContextServiceImpl, decorators: [{
|
|
94
|
-
type: Injectable,
|
|
95
|
-
args: [{
|
|
96
|
-
providedIn: 'root'
|
|
97
|
-
}]
|
|
98
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
99
|
-
|
|
100
|
-
class LuigiActivatedRouteSnapshotHelper {
|
|
101
|
-
static getCurrent() {
|
|
102
|
-
return LuigiActivatedRouteSnapshotHelper._current;
|
|
103
|
-
}
|
|
104
|
-
static setCurrent(current) {
|
|
105
|
-
LuigiActivatedRouteSnapshotHelper._current = current;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
// tslint:disable-next-line:variable-name
|
|
109
|
-
LuigiActivatedRouteSnapshotHelper._current = null;
|
|
110
|
-
|
|
111
|
-
class LuigiRouteStrategy extends BaseRouteReuseStrategy {
|
|
112
|
-
retrieve(route) {
|
|
113
|
-
LuigiActivatedRouteSnapshotHelper.setCurrent(route);
|
|
114
|
-
return super.retrieve(route);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
class LuigiAutoRoutingService {
|
|
119
|
-
constructor(router, luigiContextService) {
|
|
120
|
-
this.router = router;
|
|
121
|
-
this.luigiContextService = luigiContextService;
|
|
122
|
-
this.subscription = new Subscription();
|
|
123
|
-
this.subscription.add(this.router.events.pipe(this.doFilter()).subscribe(this.doSubscription.bind(this)));
|
|
124
|
-
}
|
|
125
|
-
doFilter() {
|
|
126
|
-
return filter((event) => {
|
|
127
|
-
return !!(event instanceof NavigationEnd &&
|
|
128
|
-
event.url &&
|
|
129
|
-
event.url.length > 0 &&
|
|
130
|
-
!(history.state && history.state.luigiInduced));
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* This method will be take in consideration angular route that having in data object the paramter
|
|
135
|
-
* fromVirtualTreeRoot: true, here an example:
|
|
136
|
-
* {path: 'demo', component: DemoComponent, data:{fromVirtualTreeRoot: true}}
|
|
137
|
-
* Another option is to specify the LuigiPath: if you add in route data luigiRoute:'/xxxx/xxx';
|
|
138
|
-
* in the case we will update the path in LuigiCore navigation, here an example
|
|
139
|
-
* {path: 'demo', component: DemoComponent, data:{luigiRoute: '/home/demo''}}
|
|
140
|
-
* If updateModalPathParam is specified, than modalPathParam will be updated upon internal navigation:
|
|
141
|
-
* {path: 'demo', component: DemoComponent, data:{updateModalPathParam: true}}
|
|
142
|
-
* @param event the NavigationEnd event
|
|
143
|
-
*/
|
|
144
|
-
doSubscription(event) {
|
|
145
|
-
var _a;
|
|
146
|
-
let current = LuigiActivatedRouteSnapshotHelper.getCurrent();
|
|
147
|
-
if (!current) {
|
|
148
|
-
current = this.router.routerState.root.snapshot;
|
|
149
|
-
while (((_a = current === null || current === void 0 ? void 0 : current.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
150
|
-
// handle multiple children
|
|
151
|
-
let primary = null;
|
|
152
|
-
current === null || current === void 0 ? void 0 : current.children.forEach(childSnapshot => {
|
|
153
|
-
if (childSnapshot.outlet === 'primary') {
|
|
154
|
-
primary = childSnapshot;
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
if (primary) {
|
|
158
|
-
current = primary;
|
|
159
|
-
}
|
|
160
|
-
else if (current.firstChild) {
|
|
161
|
-
current = current.firstChild;
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
break;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
if ((current === null || current === void 0 ? void 0 : current.data) && isLuigiClientInitialized()) {
|
|
169
|
-
const ux = uxManager();
|
|
170
|
-
let lm = linkManager().withoutSync();
|
|
171
|
-
let route;
|
|
172
|
-
if (current.data.luigiRoute) {
|
|
173
|
-
route = this.getResolvedLuigiRoute(current);
|
|
174
|
-
if (current.data.fromContext) {
|
|
175
|
-
if (!this.luigiContextService.getContext()) {
|
|
176
|
-
console.debug('Ignoring auto navigation request, luigi context not set');
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
if (current.data.fromContext === true) {
|
|
180
|
-
lm = lm.fromClosestContext();
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
lm = lm.fromContext(current.data.fromContext);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
else if (current.data.fromVirtualTreeRoot) {
|
|
188
|
-
let url = event.url;
|
|
189
|
-
const truncate = current.data.fromVirtualTreeRoot.truncate;
|
|
190
|
-
if (truncate) {
|
|
191
|
-
if (truncate.indexOf('*') === 0) {
|
|
192
|
-
const index = url.indexOf(truncate.substr(1));
|
|
193
|
-
url = url.substr(index + truncate.length - 1);
|
|
194
|
-
}
|
|
195
|
-
else if (url.indexOf(truncate) === 0) {
|
|
196
|
-
url = url.substr(truncate.length);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
route = url;
|
|
200
|
-
console.debug('Calling fromVirtualTreeRoot for url ==> ' + route);
|
|
201
|
-
lm = lm.fromVirtualTreeRoot();
|
|
202
|
-
}
|
|
203
|
-
if (ux.isModal()) {
|
|
204
|
-
if (current.data.updateModalDataPath) {
|
|
205
|
-
lm.updateModalPathInternalNavigation(route, {}, current.data.addHistoryEntry);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
else if (route) {
|
|
209
|
-
lm.navigate(route);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
getResolvedLuigiRoute(current) {
|
|
214
|
-
let route = current.data.luigiRoute;
|
|
215
|
-
const allParams = this.getAllParamsFromParents(current);
|
|
216
|
-
if (!route || !allParams) {
|
|
217
|
-
return route;
|
|
218
|
-
}
|
|
219
|
-
const pmap = convertToParamMap(allParams);
|
|
220
|
-
pmap.keys.forEach(key => {
|
|
221
|
-
pmap.getAll(key).forEach(param => {
|
|
222
|
-
route = route === null || route === void 0 ? void 0 : route.replace(':' + key, param);
|
|
223
|
-
});
|
|
224
|
-
});
|
|
225
|
-
return route;
|
|
226
|
-
}
|
|
227
|
-
getAllParamsFromParents(current) {
|
|
228
|
-
let allParams = {};
|
|
229
|
-
let currentToCheck = current;
|
|
230
|
-
while (currentToCheck) {
|
|
231
|
-
if (currentToCheck.params) {
|
|
232
|
-
allParams = Object.assign(Object.assign({}, allParams), currentToCheck.params);
|
|
233
|
-
}
|
|
234
|
-
currentToCheck = currentToCheck.parent;
|
|
235
|
-
}
|
|
236
|
-
return allParams;
|
|
237
|
-
}
|
|
238
|
-
ngOnDestroy() {
|
|
239
|
-
this.subscription.unsubscribe();
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
LuigiAutoRoutingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAutoRoutingService, deps: [{ token: i1.Router }, { token: LuigiContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
243
|
-
LuigiAutoRoutingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAutoRoutingService, providedIn: 'root' });
|
|
244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAutoRoutingService, decorators: [{
|
|
245
|
-
type: Injectable,
|
|
246
|
-
args: [{
|
|
247
|
-
providedIn: 'root'
|
|
248
|
-
}]
|
|
249
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: LuigiContextService }]; } });
|
|
250
|
-
|
|
251
|
-
const staticRoutes = [
|
|
252
|
-
/** here an example if you want to specify that this component is a virtualTree element in Luigi Core navigation*/
|
|
253
|
-
{
|
|
254
|
-
path: 'luigi-client-support-preload',
|
|
255
|
-
component: LuigiPreloadComponent,
|
|
256
|
-
data: { fromVirtualTreeRoot: true }
|
|
257
|
-
},
|
|
258
|
-
/** 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*/
|
|
259
|
-
{
|
|
260
|
-
path: 'luigi-client-support-preload',
|
|
261
|
-
component: LuigiPreloadComponent,
|
|
262
|
-
data: { luigiRoute: '/home/reload' }
|
|
263
|
-
},
|
|
264
|
-
/** 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 */
|
|
265
|
-
{
|
|
266
|
-
path: 'luigi-client-support-preload=component',
|
|
267
|
-
component: LuigiPreloadComponent,
|
|
268
|
-
data: { reuse: true }
|
|
269
|
-
},
|
|
270
|
-
/** here an example if you want to update modalPathParam on internal navigation */
|
|
271
|
-
{
|
|
272
|
-
path: 'luigi-client-support-preload',
|
|
273
|
-
component: LuigiPreloadComponent,
|
|
274
|
-
data: { updateModalPathParam: true }
|
|
275
|
-
}
|
|
276
|
-
];
|
|
277
|
-
class LuigiAngularSupportModule {
|
|
278
|
-
constructor(navigation, context) { }
|
|
279
|
-
}
|
|
280
|
-
LuigiAngularSupportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAngularSupportModule, deps: [{ token: LuigiAutoRoutingService }, { token: LuigiContextService }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
281
|
-
LuigiAngularSupportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: LuigiAngularSupportModule, declarations: [LuigiPreloadComponent], imports: [i1.RouterModule], exports: [LuigiPreloadComponent] });
|
|
282
|
-
LuigiAngularSupportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAngularSupportModule, providers: [
|
|
283
|
-
{
|
|
284
|
-
provide: LuigiContextService,
|
|
285
|
-
useClass: LuigiContextServiceImpl
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
provide: RouteReuseStrategy,
|
|
289
|
-
useClass: LuigiRouteStrategy
|
|
290
|
-
}
|
|
291
|
-
], imports: [RouterModule.forChild(staticRoutes)] });
|
|
292
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiAngularSupportModule, decorators: [{
|
|
293
|
-
type: NgModule,
|
|
294
|
-
args: [{
|
|
295
|
-
declarations: [LuigiPreloadComponent],
|
|
296
|
-
imports: [RouterModule.forChild(staticRoutes)],
|
|
297
|
-
providers: [
|
|
298
|
-
{
|
|
299
|
-
provide: LuigiContextService,
|
|
300
|
-
useClass: LuigiContextServiceImpl
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
provide: RouteReuseStrategy,
|
|
304
|
-
useClass: LuigiRouteStrategy
|
|
305
|
-
}
|
|
306
|
-
],
|
|
307
|
-
exports: [LuigiPreloadComponent]
|
|
308
|
-
}]
|
|
309
|
-
}], ctorParameters: function () { return [{ type: LuigiAutoRoutingService }, { type: LuigiContextService }]; } });
|
|
310
|
-
|
|
311
|
-
// @dynamic
|
|
312
|
-
/*
|
|
313
|
-
* This class mocks Luigi Core related functionality.
|
|
314
|
-
*
|
|
315
|
-
* Micro Frontends that use Luigi Client would usually communicate with Luigi Core
|
|
316
|
-
* back and forth. When testing Luigi Client based components, Luigi Core might
|
|
317
|
-
* not be present which leads into limitations on integration/e2e testing for standalone
|
|
318
|
-
* microfrontends.
|
|
319
|
-
*
|
|
320
|
-
* This module adds a hook to the window postMessage API by adding an event listener to the
|
|
321
|
-
* global message event of the window object and mocking the callback.
|
|
322
|
-
* In the normal workflow this message would picked up by Luigi Core which then sends the response back.
|
|
323
|
-
*/
|
|
324
|
-
class LuigiMockModule {
|
|
325
|
-
}
|
|
326
|
-
LuigiMockModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
327
|
-
LuigiMockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: LuigiMockModule });
|
|
328
|
-
LuigiMockModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiMockModule, providers: [
|
|
329
|
-
{
|
|
330
|
-
provide: APP_INITIALIZER,
|
|
331
|
-
useFactory: LuigiMockEngine.initPostMessageHook,
|
|
332
|
-
multi: true
|
|
333
|
-
}
|
|
334
|
-
] });
|
|
335
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LuigiMockModule, decorators: [{
|
|
336
|
-
type: NgModule,
|
|
337
|
-
args: [{
|
|
338
|
-
providers: [
|
|
339
|
-
{
|
|
340
|
-
provide: APP_INITIALIZER,
|
|
341
|
-
useFactory: LuigiMockEngine.initPostMessageHook,
|
|
342
|
-
multi: true
|
|
343
|
-
}
|
|
344
|
-
]
|
|
345
|
-
}]
|
|
346
|
-
}] });
|
|
347
|
-
|
|
348
|
-
/*
|
|
349
|
-
* Public API Surface of client-support-angular
|
|
350
|
-
*/
|
|
351
|
-
|
|
352
|
-
/**
|
|
353
|
-
* Generated bundle index. Do not edit.
|
|
354
|
-
*/
|
|
355
|
-
|
|
356
|
-
export { ILuigiContextTypes, LuigiAngularSupportModule, LuigiAutoRoutingService, LuigiContextService, LuigiContextServiceImpl, LuigiMockModule, LuigiPreloadComponent, staticRoutes };
|
|
357
|
-
//# sourceMappingURL=luigi-project-client-support-angular.mjs.map
|