@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.
@@ -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=
@@ -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