@yuuvis/client-shell-core 2.8.0 → 2.8.1
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.
|
@@ -2,6 +2,8 @@ import { inject } from '@angular/core';
|
|
|
2
2
|
import { FeatureService } from './feature.service';
|
|
3
3
|
export const canMatchFeature = (route) => {
|
|
4
4
|
const featureService = inject(FeatureService);
|
|
5
|
-
return featureService.
|
|
5
|
+
return (featureService.canMatchRequirements(route) &&
|
|
6
|
+
featureService.canUseApp(route) &&
|
|
7
|
+
featureService.canUseFeatureById(route.id));
|
|
6
8
|
};
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlL3NyYy9saWIvc2VydmljZXMvZmVhdHVyZS9mZWF0dXJlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO0lBQzlDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QyxPQUFPLENBQ0wsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEtBQXVCLENBQUM7UUFDNUQsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFZLENBQUM7UUFDdEMsY0FBYyxDQUFDLGlCQUFpQixDQUFFLEtBQWEsQ0FBQyxFQUFFLENBQUMsQ0FDcEQsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NsaWVudC1zaGVsbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmVhdHVyZVNlcnZpY2UgfSBmcm9tICcuL2ZlYXR1cmUuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBjYW5NYXRjaEZlYXR1cmUgPSAocm91dGU6IFJvdXRlKSA9PiB7XG4gIGNvbnN0IGZlYXR1cmVTZXJ2aWNlID0gaW5qZWN0KEZlYXR1cmVTZXJ2aWNlKTtcbiAgcmV0dXJuIChcbiAgICBmZWF0dXJlU2VydmljZS5jYW5NYXRjaFJlcXVpcmVtZW50cyhyb3V0ZSBhcyB7IGlkOiBzdHJpbmcgfSkgJiZcbiAgICBmZWF0dXJlU2VydmljZS5jYW5Vc2VBcHAocm91dGUgYXMgQXBwKSAmJlxuICAgIGZlYXR1cmVTZXJ2aWNlLmNhblVzZUZlYXR1cmVCeUlkKChyb3V0ZSBhcyBBcHApLmlkKVxuICApO1xufTtcbiJdfQ==
|
|
@@ -34,11 +34,11 @@ export class FeatureService {
|
|
|
34
34
|
* - If no matching requirements are found, the feature is considered valid (returns `true`)
|
|
35
35
|
* - All requirements must have a state of 'enabled' for the feature to pass validation
|
|
36
36
|
*/
|
|
37
|
-
#matchesRequirements(
|
|
37
|
+
#matchesRequirements(feat) {
|
|
38
38
|
const featureRequirements = this.#featureRequirements;
|
|
39
39
|
const featureAvailability = this.#featureManagement;
|
|
40
40
|
// Check if fet.id matches exactly 'key' or 'key.extension'
|
|
41
|
-
const matchingKey = Object.keys(featureRequirements).find((key) => new RegExp(`^${key}(\\.extension)?$`).test(
|
|
41
|
+
const matchingKey = Object.keys(featureRequirements).find((key) => new RegExp(`^${key}(\\.extension)?$`).test(feat.id));
|
|
42
42
|
// If no matching key, return true
|
|
43
43
|
if (!matchingKey) {
|
|
44
44
|
return true;
|
|
@@ -61,7 +61,7 @@ export class FeatureService {
|
|
|
61
61
|
return this.#features;
|
|
62
62
|
}
|
|
63
63
|
getAvailableApps(allApps) {
|
|
64
|
-
return allApps.filter((app) => this.canUseApp(app) && this.canUseFeatureById(app.id));
|
|
64
|
+
return allApps.filter((app) => this.#matchesRequirements(app) && this.canUseApp(app) && this.canUseFeatureById(app.id));
|
|
65
65
|
}
|
|
66
66
|
canUseApp(app) {
|
|
67
67
|
const authorities = this.#userToken?.authorities || [];
|
|
@@ -71,6 +71,9 @@ export class FeatureService {
|
|
|
71
71
|
const isDenied = denied.some((deniedAuthority) => authorities.includes(deniedAuthority));
|
|
72
72
|
return isAllowed && !isDenied;
|
|
73
73
|
}
|
|
74
|
+
canMatchRequirements(app) {
|
|
75
|
+
return this.#matchesRequirements({ id: app.id });
|
|
76
|
+
}
|
|
74
77
|
canUseFeatureById(featureId, authorities) {
|
|
75
78
|
const feature = this.#features.find((f) => f.id === featureId);
|
|
76
79
|
return !feature || (this.#matchesRequirements(feature) && this.canUseFeature(feature, authorities));
|
|
@@ -129,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
129
132
|
providedIn: 'root'
|
|
130
133
|
}]
|
|
131
134
|
}] });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LXNoZWxsLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9mZWF0dXJlL2ZlYXR1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFnQixzQkFBc0IsRUFBb0MsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0SixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFLbEUsTUFBTSxPQUFPLGNBQWM7SUFDekIsa0JBQWtCLEdBQUcsTUFBTSxDQUE0QixzQkFBc0IsQ0FBQyxDQUFDO0lBQy9FLG9CQUFvQixHQUFHLE1BQU0sQ0FBZSx1QkFBdUIsQ0FBQyxDQUFDO0lBRXJFLGNBQWMsR0FBRyxNQUFNLENBQTJCLDJCQUEyQixDQUFDLENBQUM7SUFDL0UsVUFBVSxHQUFHLE1BQU0sQ0FBVSxRQUFRLENBQUMsQ0FBQztJQUN2QyxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlCLFlBQVksR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMxQyxnQkFBZ0IsR0FBSSxJQUFJLENB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aEIscUJBQXFCO29CQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FDbkUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ1gsa0JBQWtCO3dCQUNsQiw0QkFBNEI7d0JBRTVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUN4QixDQUFDLENBQUMsQ0FDSCxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUNIO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2IsQ0FDRjtZQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZixDQUFDOytHQWxKVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFja2VuZFNlcnZpY2UsIFJlcXVpcmVtZW50cywgQVZBSUxBQkxFX0JBQ0tFTkRfQVBQUywgWXV2QXZhaWxhYmxlQmFja2VuZEFwcHMsIFl1dlVzZXIsIENMSUVOVF9BUFBfUkVRVUlSRU1FTlRTIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbmltcG9ydCB7IFlVVl9VU0VSIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGllbnQtc2hlbGwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNIRUxMX0NPTkZJR19GRUFUVVJFUyB9IGZyb20gJy4uL3NoZWxsLWNvbmZpZy9zaGVsbC1jb25maWcuY29uc3QnO1xuaW1wb3J0IHsgU2hlbGxDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2hlbGwtY29uZmlnL3NoZWxsLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFNoZWxsU2VydmljZSB9IGZyb20gJy4uL3NoZWxsL3NoZWxsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xpZW50U2hlbGxGZWF0dXJlLCBDbGllbnRTaGVsbEZlYXR1cmVDb25maWcgfSBmcm9tICcuL2ZlYXR1cmUuaW50ZXJmYWNlJztcbmltcG9ydCB7IENMSUVOVF9TSEVMTF9GRUFUVVJFX0NPTkZJRyB9IGZyb20gJy4vZmVhdHVyZS5wcm92aWRlcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlU2VydmljZSB7XG4gICNmZWF0dXJlTWFuYWdlbWVudCA9IGluamVjdDxZdXZBdmFpbGFibGVCYWNrZW5kQXBwc1tdPihBVkFJTEFCTEVfQkFDS0VORF9BUFBTKTtcbiAgI2ZlYXR1cmVSZXF1aXJlbWVudHMgPSBpbmplY3Q8UmVxdWlyZW1lbnRzPihDTElFTlRfQVBQX1JFUVVJUkVNRU5UUyk7XG5cbiAgI2ZlYXR1cmVDb25maWcgPSBpbmplY3Q8Q2xpZW50U2hlbGxGZWF0dXJlQ29uZmlnPihDTElFTlRfU0hFTExfRkVBVFVSRV9DT05GSUcpO1xuICAjdXNlclRva2VuID0gaW5qZWN0PFl1dlVzZXI+KFlVVl9VU0VSKTtcbiAgI3NoZWxsID0gaW5qZWN0KFNoZWxsU2VydmljZSk7XG4gICNzaGVsbENvbmZpZyA9IGluamVjdChTaGVsbENvbmZpZ1NlcnZpY2UpO1xuICAjZmVhdHVyZU9iamVjdElkPyA9IHRoaXMuI2ZlYXR1cmVDb25maWc/Lm9iamVjdElEO1xuICAjZmVhdHVyZXMgPSB0aGlzLiNmZWF0dXJlQ29uZmlnPy5mZWF0dXJlcyB8fCBbXTtcbiAgI2JhY2tlbmQgPSBpbmplY3QoQmFja2VuZFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBmZWF0dXJlIG1lZXRzIGFsbCBpdHMgcmVxdWlyZW1lbnRzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCB2YWxpZGF0ZXMgd2hldGhlciBhIGZlYXR1cmUgKGlkZW50aWZpZWQgYnkgaXRzIElEKSBjYW4gYmUgZW5hYmxlZCBiYXNlZCBvbjpcbiAgICogMS4gV2hldGhlciBpdCBoYXMgYW55IGRlZmluZWQgcmVxdWlyZW1lbnRzIGluIHRoZSBmZWF0dXJlIHJlcXVpcmVtZW50cyBjb25maWd1cmF0aW9uXG4gICAqIDIuIFdoZXRoZXIgYWxsIGl0cyByZXF1aXJlbWVudHMgYXJlIHByZXNlbnQgYW5kIGVuYWJsZWQgaW4gdGhlIGZlYXR1cmUgYXZhaWxhYmlsaXR5IGxpc3RcbiAgICpcbiAgICogQHBhcmFtIGZldCAtIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmZWF0dXJlIElEIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBmZXQuaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGZlYXR1cmUgKG1heSBpbmNsdWRlICcuZXh0ZW5zaW9uJyBzdWZmaXgpXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgZmVhdHVyZSBoYXMgbm8gcmVxdWlyZW1lbnRzIG9yIGFsbCByZXF1aXJlbWVudHMgYXJlIGVuYWJsZWQ7IGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIC0gVGhlIG1ldGhvZCBtYXRjaGVzIGZlYXR1cmUgSURzIGV4YWN0bHkgb3Igd2l0aCBhbiBvcHRpb25hbCAnLmV4dGVuc2lvbicgc3VmZml4XG4gICAqIC0gUmVxdWlyZW1lbnQgbmFtZXMgZW5kaW5nIHdpdGggJysnIGhhdmUgdGhlIHN1ZmZpeCByZW1vdmVkIGJlZm9yZSB2YWxpZGF0aW9uXG4gICAqIC0gSWYgbm8gbWF0Y2hpbmcgcmVxdWlyZW1lbnRzIGFyZSBmb3VuZCwgdGhlIGZlYXR1cmUgaXMgY29uc2lkZXJlZCB2YWxpZCAocmV0dXJucyBgdHJ1ZWApXG4gICAqIC0gQWxsIHJlcXVpcmVtZW50cyBtdXN0IGhhdmUgYSBzdGF0ZSBvZiAnZW5hYmxlZCcgZm9yIHRoZSBmZWF0dXJlIHRvIHBhc3MgdmFsaWRhdGlvblxuICAgKi9cbiAgI21hdGNoZXNSZXF1aXJlbWVudHMoZmV0OiB7IGlkOiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZlYXR1cmVSZXF1aXJlbWVudHMgPSB0aGlzLiNmZWF0dXJlUmVxdWlyZW1lbnRzO1xuICAgIGNvbnN0IGZlYXR1cmVBdmFpbGFiaWxpdHkgPSB0aGlzLiNmZWF0dXJlTWFuYWdlbWVudDtcbiAgICAvLyBDaGVjayBpZiBmZXQuaWQgbWF0Y2hlcyBleGFjdGx5ICdrZXknIG9yICdrZXkuZXh0ZW5zaW9uJ1xuXG4gICAgY29uc3QgbWF0Y2hpbmdLZXkgPSBPYmplY3Qua2V5cyhmZWF0dXJlUmVxdWlyZW1lbnRzKS5maW5kKChrZXkpID0+IG5ldyBSZWdFeHAoYF4ke2tleX0oXFxcXC5leHRlbnNpb24pPyRgKS50ZXN0KGZldC5pZCkpO1xuXG4gICAgLy8gSWYgbm8gbWF0Y2hpbmcga2V5LCByZXR1cm4gdHJ1ZVxuICAgIGlmICghbWF0Y2hpbmdLZXkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEdldCB0aGUgcmVxdWlyZW1lbnRzIGZvciB0aGUgbWF0Y2hpbmcga2V5XG4gICAgY29uc3QgcmVxdWlyZW1lbnRzID0gZmVhdHVyZVJlcXVpcmVtZW50c1ttYXRjaGluZ0tleV07XG5cbiAgICAvLyBDaGVjayBpZiBhbGwgcmVxdWlyZW1lbnRzIGFyZSBpbiBhdnYgd2l0aCBzdGF0ZSAnZW5hYmxlZCdcbiAgICByZXR1cm4gcmVxdWlyZW1lbnRzLmV2ZXJ5KChyZXFOYW1lKSA9PiB7XG4gICAgICAvLyBSZW1vdmUgdGhlICcrJyBzdWZmaXggaWYgcHJlc2VudFxuICAgICAgY29uc3QgY2xlYW5SZXFOYW1lID0gcmVxTmFtZS5yZXBsYWNlKC9cXCskLywgJycpO1xuICAgICAgLy8gRmluZCB0aGUgcmVxdWlyZW1lbnQgaW4gYXZ2IGFuZCBjaGVjayBpZiBpdCdzIGVuYWJsZWRcbiAgICAgIGNvbnN0IGZvdW5kID0gZmVhdHVyZUF2YWlsYWJpbGl0eS5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IGNsZWFuUmVxTmFtZSk7XG4gICAgICByZXR1cm4gZm91bmQgJiYgZm91bmQuc3RhdGUgPT09ICdlbmFibGVkJztcbiAgICB9KTtcbiAgfVxuXG4gIGhhc0ZlYXR1cmVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy4jZmVhdHVyZU9iamVjdElkO1xuICB9XG5cbiAgZ2V0RmVhdHVyZXMoKTogQ2xpZW50U2hlbGxGZWF0dXJlW10ge1xuICAgIHJldHVybiB0aGlzLiNmZWF0dXJlcztcbiAgfVxuXG4gIGdldEF2YWlsYWJsZUFwcHMoYWxsQXBwczogQXBwW10pOiBBcHBbXSB7XG4gICAgcmV0dXJuIGFsbEFwcHMuZmlsdGVyKChhcHApID0+IHRoaXMuY2FuVXNlQXBwKGFwcCkgJiYgdGhpcy5jYW5Vc2VGZWF0dXJlQnlJZChhcHAuaWQpKTtcbiAgfVxuXG4gIGNhblVzZUFwcChhcHA6IEFwcCkge1xuICAgIGNvbnN0IGF1dGhvcml0aWVzID0gdGhpcy4jdXNlclRva2VuPy5hdXRob3JpdGllcyB8fCBbXTtcbiAgICBjb25zdCBhbGxvd2VkID0gYXBwLnBlcm1pc3Npb25zPy5hbGxvdyB8fCBbXTtcbiAgICBjb25zdCBkZW5pZWQgPSBhcHAucGVybWlzc2lvbnM/LmRlbnkgfHwgW107XG5cbiAgICBjb25zdCBpc0FsbG93ZWQgPSBhbGxvd2VkLmxlbmd0aCA9PT0gMCB8fCBhdXRob3JpdGllcy5zb21lKChhdXRob3JpdHkpID0+IGFsbG93ZWQuaW5jbHVkZXMoYXV0aG9yaXR5KSk7XG4gICAgY29uc3QgaXNEZW5pZWQgPSBkZW5pZWQuc29tZSgoZGVuaWVkQXV0aG9yaXR5KSA9PiBhdXRob3JpdGllcy5pbmNsdWRlcyhkZW5pZWRBdXRob3JpdHkpKTtcblxuICAgIHJldHVybiBpc0FsbG93ZWQgJiYgIWlzRGVuaWVkO1xuICB9XG5cbiAgY2FuVXNlRmVhdHVyZUJ5SWQoZmVhdHVyZUlkOiBzdHJpbmcsIGF1dGhvcml0aWVzPzogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICBjb25zdCBmZWF0dXJlID0gdGhpcy4jZmVhdHVyZXMuZmluZCgoZikgPT4gZi5pZCA9PT0gZmVhdHVyZUlkKTtcblxuICAgIHJldHVybiAhZmVhdHVyZSB8fCAodGhpcy4jbWF0Y2hlc1JlcXVpcmVtZW50cyhmZWF0dXJlKSAmJiB0aGlzLmNhblVzZUZlYXR1cmUoZmVhdHVyZSwgYXV0aG9yaXRpZXMpKTtcbiAgfVxuXG4gIGNhblVzZUZlYXR1cmUoZmVhdHVyZTogQ2xpZW50U2hlbGxGZWF0dXJlLCBhdXRob3JpdGllcz86IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYXV0aG9yaXRpZXNUb0NoZWNrID0gYXV0aG9yaXRpZXMgfHwgdGhpcy4jdXNlclRva2VuPy5hdXRob3JpdGllcyB8fCBbXTtcbiAgICBjb25zdCBhbGxvd2VkID0gZmVhdHVyZS5hbGxvd2VkIHx8IFtdO1xuICAgIGNvbnN0IGRlbmllZCA9IGZlYXR1cmUuZGVuaWVkIHx8IFtdO1xuXG4gICAgY29uc3QgaXNBbGxvd2VkID0gYWxsb3dlZC5sZW5ndGggPT09IDAgfHwgYXV0aG9yaXRpZXNUb0NoZWNrLnNvbWUoKGF1dGhvcml0eSkgPT4gYWxsb3dlZC5pbmNsdWRlcyhhdXRob3JpdHkpKTtcbiAgICBjb25zdCBpc0RlbmllZCA9IGRlbmllZC5zb21lKChkZW5pZWRBdXRob3JpdHkpID0+IGF1dGhvcml0aWVzVG9DaGVjay5pbmNsdWRlcyhkZW5pZWRBdXRob3JpdHkpKTtcblxuICAgIHJldHVybiBpc0FsbG93ZWQgJiYgIWlzRGVuaWVkO1xuICB9XG5cbiAgc2F2ZUZlYXR1cmVTZXR0aW5ncyhmZWF0dXJlczogQ2xpZW50U2hlbGxGZWF0dXJlW10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICghdGhpcy4jZmVhdHVyZU9iamVjdElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGZlYXR1cmUgY29uZmlndXJhdGlvbiBvYmplY3QgSUQgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI3NoZWxsQ29uZmlnLnVwZGF0ZSh0aGlzLiNmZWF0dXJlT2JqZWN0SWQsIGZlYXR1cmVzKS5waXBlKHRhcCgoKSA9PiAodGhpcy4jZmVhdHVyZXMgPSBmZWF0dXJlcykpKTtcbiAgfVxuXG4gIGRlbGV0ZUZlYXR1cmVTZXR0aW5ncygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICghdGhpcy4jZmVhdHVyZU9iamVjdElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGZlYXR1cmUgY29uZmlndXJhdGlvbiBvYmplY3QgSUQgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI3NoZWxsQ29uZmlnLmRlbGV0ZSh0aGlzLiNmZWF0dXJlT2JqZWN0SWQpO1xuICB9XG5cbiAgY3JlYXRlU2V0dGluZ3NPYmplY3QoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jc2hlbGxDb25maWcuY3JlYXRlKFNIRUxMX0NPTkZJR19GRUFUVVJFUywgW10pLnBpcGUoXG4gICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLiNmZWF0dXJlT2JqZWN0SWQgPSByZXMuaWQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBleHBvcnQoKSB7XG4gICAgaWYgKHRoaXMuI2ZlYXR1cmVPYmplY3RJZCkge1xuICAgICAgdGhpcy4jc2hlbGxDb25maWcuZG93bmxvYWQodGhpcy4jZmVhdHVyZU9iamVjdElkLCBgJHtTSEVMTF9DT05GSUdfRkVBVFVSRVN9Lmpzb25gKTtcbiAgICB9XG4gIH1cblxuICBpbXBvcnQoKSB7XG4gICAgLy8gcmVhZCBmaWxlcyBjb250ZW50c1xuXG4gICAgcmV0dXJuIHRoaXMuI2ZlYXR1cmVPYmplY3RJZFxuICAgICAgPyB0aGlzLiNzaGVsbC5waWNrRmlsZSgpLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChmaWxlKSA9PlxuICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICAgICA/IHRoaXMuI3NoZWxsQ29uZmlnLnVwbG9hZCh0aGlzLiNmZWF0dXJlT2JqZWN0SWQhLCBmaWxlKS5waXBlKFxuICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVhZCB1cGxvYWRlZCBmaWxlXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiNiYWNrZW5kLmdldChgL2Rtcy9vYmplY3RzLyR7cmVzLmlkfS9jb250ZW50cy9maWxlYCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICB0YXAoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBmZWF0dXJlc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnZGF0YScsIGRhdGEpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiNmZWF0dXJlcyA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IG9mKG51bGwpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICA6IG9mKG51bGwpO1xuICB9XG59XG4iXX0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LXNoZWxsLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9mZWF0dXJlL2ZlYXR1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFnQixzQkFBc0IsRUFBb0MsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0SixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFLbEUsTUFBTSxPQUFPLGNBQWM7SUFDekIsa0JBQWtCLEdBQUcsTUFBTSxDQUE0QixzQkFBc0IsQ0FBQyxDQUFDO0lBQy9FLG9CQUFvQixHQUFHLE1BQU0sQ0FBZSx1QkFBdUIsQ0FBQyxDQUFDO0lBRXJFLGNBQWMsR0FBRyxNQUFNLENBQTJCLDJCQUEyQixDQUFDLENBQUM7SUFDL0UsVUFBVSxHQUFHLE1BQU0sQ0FBVSxRQUFRLENBQUMsQ0FBQztJQUN2QyxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlCLFlBQVksR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMxQyxnQkFBZ0IsR0FBSSxJQUFJLENB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RUFBRSxFQUFFLENBQ2pCLElBQUk7Z0JBQ0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3pELFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNoQixxQkFBcUI7b0JBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUNuRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDWCxrQkFBa0I7d0JBQ2xCLDRCQUE0Qjt3QkFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxDQUNILENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQ0g7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDYixDQUNGO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNmLENBQUM7K0dBcEpVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYWNrZW5kU2VydmljZSwgUmVxdWlyZW1lbnRzLCBBVkFJTEFCTEVfQkFDS0VORF9BUFBTLCBZdXZBdmFpbGFibGVCYWNrZW5kQXBwcywgWXV2VXNlciwgQ0xJRU5UX0FQUF9SRVFVSVJFTUVOVFMgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcblxuaW1wb3J0IHsgWVVWX1VTRVIgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NsaWVudC1zaGVsbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU0hFTExfQ09ORklHX0ZFQVRVUkVTIH0gZnJvbSAnLi4vc2hlbGwtY29uZmlnL3NoZWxsLWNvbmZpZy5jb25zdCc7XG5pbXBvcnQgeyBTaGVsbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zaGVsbC1jb25maWcvc2hlbGwtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hlbGxTZXJ2aWNlIH0gZnJvbSAnLi4vc2hlbGwvc2hlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRTaGVsbEZlYXR1cmUsIENsaWVudFNoZWxsRmVhdHVyZUNvbmZpZyB9IGZyb20gJy4vZmVhdHVyZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ0xJRU5UX1NIRUxMX0ZFQVRVUkVfQ09ORklHIH0gZnJvbSAnLi9mZWF0dXJlLnByb3ZpZGVycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVTZXJ2aWNlIHtcbiAgI2ZlYXR1cmVNYW5hZ2VtZW50ID0gaW5qZWN0PFl1dkF2YWlsYWJsZUJhY2tlbmRBcHBzW10+KEFWQUlMQUJMRV9CQUNLRU5EX0FQUFMpO1xuICAjZmVhdHVyZVJlcXVpcmVtZW50cyA9IGluamVjdDxSZXF1aXJlbWVudHM+KENMSUVOVF9BUFBfUkVRVUlSRU1FTlRTKTtcblxuICAjZmVhdHVyZUNvbmZpZyA9IGluamVjdDxDbGllbnRTaGVsbEZlYXR1cmVDb25maWc+KENMSUVOVF9TSEVMTF9GRUFUVVJFX0NPTkZJRyk7XG4gICN1c2VyVG9rZW4gPSBpbmplY3Q8WXV2VXNlcj4oWVVWX1VTRVIpO1xuICAjc2hlbGwgPSBpbmplY3QoU2hlbGxTZXJ2aWNlKTtcbiAgI3NoZWxsQ29uZmlnID0gaW5qZWN0KFNoZWxsQ29uZmlnU2VydmljZSk7XG4gICNmZWF0dXJlT2JqZWN0SWQ/ID0gdGhpcy4jZmVhdHVyZUNvbmZpZz8ub2JqZWN0SUQ7XG4gICNmZWF0dXJlcyA9IHRoaXMuI2ZlYXR1cmVDb25maWc/LmZlYXR1cmVzIHx8IFtdO1xuICAjYmFja2VuZCA9IGluamVjdChCYWNrZW5kU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGZlYXR1cmUgbWVldHMgYWxsIGl0cyByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHZhbGlkYXRlcyB3aGV0aGVyIGEgZmVhdHVyZSAoaWRlbnRpZmllZCBieSBpdHMgSUQpIGNhbiBiZSBlbmFibGVkIGJhc2VkIG9uOlxuICAgKiAxLiBXaGV0aGVyIGl0IGhhcyBhbnkgZGVmaW5lZCByZXF1aXJlbWVudHMgaW4gdGhlIGZlYXR1cmUgcmVxdWlyZW1lbnRzIGNvbmZpZ3VyYXRpb25cbiAgICogMi4gV2hldGhlciBhbGwgaXRzIHJlcXVpcmVtZW50cyBhcmUgcHJlc2VudCBhbmQgZW5hYmxlZCBpbiB0aGUgZmVhdHVyZSBhdmFpbGFiaWxpdHkgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gZmV0IC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZlYXR1cmUgSUQgdG8gY2hlY2tcbiAgICogQHBhcmFtIGZldC5pZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZmVhdHVyZSAobWF5IGluY2x1ZGUgJy5leHRlbnNpb24nIHN1ZmZpeClcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBmZWF0dXJlIGhhcyBubyByZXF1aXJlbWVudHMgb3IgYWxsIHJlcXVpcmVtZW50cyBhcmUgZW5hYmxlZDsgYGZhbHNlYCBvdGhlcndpc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogLSBUaGUgbWV0aG9kIG1hdGNoZXMgZmVhdHVyZSBJRHMgZXhhY3RseSBvciB3aXRoIGFuIG9wdGlvbmFsICcuZXh0ZW5zaW9uJyBzdWZmaXhcbiAgICogLSBSZXF1aXJlbWVudCBuYW1lcyBlbmRpbmcgd2l0aCAnKycgaGF2ZSB0aGUgc3VmZml4IHJlbW92ZWQgYmVmb3JlIHZhbGlkYXRpb25cbiAgICogLSBJZiBubyBtYXRjaGluZyByZXF1aXJlbWVudHMgYXJlIGZvdW5kLCB0aGUgZmVhdHVyZSBpcyBjb25zaWRlcmVkIHZhbGlkIChyZXR1cm5zIGB0cnVlYClcbiAgICogLSBBbGwgcmVxdWlyZW1lbnRzIG11c3QgaGF2ZSBhIHN0YXRlIG9mICdlbmFibGVkJyBmb3IgdGhlIGZlYXR1cmUgdG8gcGFzcyB2YWxpZGF0aW9uXG4gICAqL1xuICAjbWF0Y2hlc1JlcXVpcmVtZW50cyhmZWF0OiB7IGlkOiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZlYXR1cmVSZXF1aXJlbWVudHMgPSB0aGlzLiNmZWF0dXJlUmVxdWlyZW1lbnRzO1xuICAgIGNvbnN0IGZlYXR1cmVBdmFpbGFiaWxpdHkgPSB0aGlzLiNmZWF0dXJlTWFuYWdlbWVudDtcbiAgICAvLyBDaGVjayBpZiBmZXQuaWQgbWF0Y2hlcyBleGFjdGx5ICdrZXknIG9yICdrZXkuZXh0ZW5zaW9uJ1xuICAgIGNvbnN0IG1hdGNoaW5nS2V5ID0gT2JqZWN0LmtleXMoZmVhdHVyZVJlcXVpcmVtZW50cykuZmluZCgoa2V5KSA9PiBuZXcgUmVnRXhwKGBeJHtrZXl9KFxcXFwuZXh0ZW5zaW9uKT8kYCkudGVzdChmZWF0LmlkKSk7XG5cbiAgICAvLyBJZiBubyBtYXRjaGluZyBrZXksIHJldHVybiB0cnVlXG4gICAgaWYgKCFtYXRjaGluZ0tleSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gR2V0IHRoZSByZXF1aXJlbWVudHMgZm9yIHRoZSBtYXRjaGluZyBrZXlcbiAgICBjb25zdCByZXF1aXJlbWVudHMgPSBmZWF0dXJlUmVxdWlyZW1lbnRzW21hdGNoaW5nS2V5XTtcblxuICAgIC8vIENoZWNrIGlmIGFsbCByZXF1aXJlbWVudHMgYXJlIGluIGF2diB3aXRoIHN0YXRlICdlbmFibGVkJ1xuICAgIHJldHVybiByZXF1aXJlbWVudHMuZXZlcnkoKHJlcU5hbWUpID0+IHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgJysnIHN1ZmZpeCBpZiBwcmVzZW50XG4gICAgICBjb25zdCBjbGVhblJlcU5hbWUgPSByZXFOYW1lLnJlcGxhY2UoL1xcKyQvLCAnJyk7XG4gICAgICAvLyBGaW5kIHRoZSByZXF1aXJlbWVudCBpbiBhdnYgYW5kIGNoZWNrIGlmIGl0J3MgZW5hYmxlZFxuICAgICAgY29uc3QgZm91bmQgPSBmZWF0dXJlQXZhaWxhYmlsaXR5LmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gY2xlYW5SZXFOYW1lKTtcbiAgICAgIHJldHVybiBmb3VuZCAmJiBmb3VuZC5zdGF0ZSA9PT0gJ2VuYWJsZWQnO1xuICAgIH0pO1xuICB9XG5cbiAgaGFzRmVhdHVyZUNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLiNmZWF0dXJlT2JqZWN0SWQ7XG4gIH1cblxuICBnZXRGZWF0dXJlcygpOiBDbGllbnRTaGVsbEZlYXR1cmVbXSB7XG4gICAgcmV0dXJuIHRoaXMuI2ZlYXR1cmVzO1xuICB9XG5cbiAgZ2V0QXZhaWxhYmxlQXBwcyhhbGxBcHBzOiBBcHBbXSk6IEFwcFtdIHtcbiAgICByZXR1cm4gYWxsQXBwcy5maWx0ZXIoKGFwcCkgPT4gdGhpcy4jbWF0Y2hlc1JlcXVpcmVtZW50cyhhcHApICYmIHRoaXMuY2FuVXNlQXBwKGFwcCkgJiYgdGhpcy5jYW5Vc2VGZWF0dXJlQnlJZChhcHAuaWQpKTtcbiAgfVxuXG4gIGNhblVzZUFwcChhcHA6IEFwcCkge1xuICAgIGNvbnN0IGF1dGhvcml0aWVzID0gdGhpcy4jdXNlclRva2VuPy5hdXRob3JpdGllcyB8fCBbXTtcbiAgICBjb25zdCBhbGxvd2VkID0gYXBwLnBlcm1pc3Npb25zPy5hbGxvdyB8fCBbXTtcbiAgICBjb25zdCBkZW5pZWQgPSBhcHAucGVybWlzc2lvbnM/LmRlbnkgfHwgW107XG5cbiAgICBjb25zdCBpc0FsbG93ZWQgPSBhbGxvd2VkLmxlbmd0aCA9PT0gMCB8fCBhdXRob3JpdGllcy5zb21lKChhdXRob3JpdHkpID0+IGFsbG93ZWQuaW5jbHVkZXMoYXV0aG9yaXR5KSk7XG4gICAgY29uc3QgaXNEZW5pZWQgPSBkZW5pZWQuc29tZSgoZGVuaWVkQXV0aG9yaXR5KSA9PiBhdXRob3JpdGllcy5pbmNsdWRlcyhkZW5pZWRBdXRob3JpdHkpKTtcblxuICAgIHJldHVybiBpc0FsbG93ZWQgJiYgIWlzRGVuaWVkO1xuICB9XG5cbiAgY2FuTWF0Y2hSZXF1aXJlbWVudHMoYXBwOiB7IGlkOiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNtYXRjaGVzUmVxdWlyZW1lbnRzKHsgaWQ6IGFwcC5pZCB9KTtcbiAgfVxuXG4gIGNhblVzZUZlYXR1cmVCeUlkKGZlYXR1cmVJZDogc3RyaW5nLCBhdXRob3JpdGllcz86IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmVhdHVyZSA9IHRoaXMuI2ZlYXR1cmVzLmZpbmQoKGYpID0+IGYuaWQgPT09IGZlYXR1cmVJZCk7XG4gICAgcmV0dXJuICFmZWF0dXJlIHx8ICh0aGlzLiNtYXRjaGVzUmVxdWlyZW1lbnRzKGZlYXR1cmUpICYmIHRoaXMuY2FuVXNlRmVhdHVyZShmZWF0dXJlLCBhdXRob3JpdGllcykpO1xuICB9XG5cbiAgY2FuVXNlRmVhdHVyZShmZWF0dXJlOiBDbGllbnRTaGVsbEZlYXR1cmUsIGF1dGhvcml0aWVzPzogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICBjb25zdCBhdXRob3JpdGllc1RvQ2hlY2sgPSBhdXRob3JpdGllcyB8fCB0aGlzLiN1c2VyVG9rZW4/LmF1dGhvcml0aWVzIHx8IFtdO1xuICAgIGNvbnN0IGFsbG93ZWQgPSBmZWF0dXJlLmFsbG93ZWQgfHwgW107XG4gICAgY29uc3QgZGVuaWVkID0gZmVhdHVyZS5kZW5pZWQgfHwgW107XG5cbiAgICBjb25zdCBpc0FsbG93ZWQgPSBhbGxvd2VkLmxlbmd0aCA9PT0gMCB8fCBhdXRob3JpdGllc1RvQ2hlY2suc29tZSgoYXV0aG9yaXR5KSA9PiBhbGxvd2VkLmluY2x1ZGVzKGF1dGhvcml0eSkpO1xuICAgIGNvbnN0IGlzRGVuaWVkID0gZGVuaWVkLnNvbWUoKGRlbmllZEF1dGhvcml0eSkgPT4gYXV0aG9yaXRpZXNUb0NoZWNrLmluY2x1ZGVzKGRlbmllZEF1dGhvcml0eSkpO1xuXG4gICAgcmV0dXJuIGlzQWxsb3dlZCAmJiAhaXNEZW5pZWQ7XG4gIH1cblxuICBzYXZlRmVhdHVyZVNldHRpbmdzKGZlYXR1cmVzOiBDbGllbnRTaGVsbEZlYXR1cmVbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKCF0aGlzLiNmZWF0dXJlT2JqZWN0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gZmVhdHVyZSBjb25maWd1cmF0aW9uIG9iamVjdCBJRCBwcm92aWRlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy4jc2hlbGxDb25maWcudXBkYXRlKHRoaXMuI2ZlYXR1cmVPYmplY3RJZCwgZmVhdHVyZXMpLnBpcGUodGFwKCgpID0+ICh0aGlzLiNmZWF0dXJlcyA9IGZlYXR1cmVzKSkpO1xuICB9XG5cbiAgZGVsZXRlRmVhdHVyZVNldHRpbmdzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKCF0aGlzLiNmZWF0dXJlT2JqZWN0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gZmVhdHVyZSBjb25maWd1cmF0aW9uIG9iamVjdCBJRCBwcm92aWRlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy4jc2hlbGxDb25maWcuZGVsZXRlKHRoaXMuI2ZlYXR1cmVPYmplY3RJZCk7XG4gIH1cblxuICBjcmVhdGVTZXR0aW5nc09iamVjdCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLiNzaGVsbENvbmZpZy5jcmVhdGUoU0hFTExfQ09ORklHX0ZFQVRVUkVTLCBbXSkucGlwZShcbiAgICAgIHRhcCgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuI2ZlYXR1cmVPYmplY3RJZCA9IHJlcy5pZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGV4cG9ydCgpIHtcbiAgICBpZiAodGhpcy4jZmVhdHVyZU9iamVjdElkKSB7XG4gICAgICB0aGlzLiNzaGVsbENvbmZpZy5kb3dubG9hZCh0aGlzLiNmZWF0dXJlT2JqZWN0SWQsIGAke1NIRUxMX0NPTkZJR19GRUFUVVJFU30uanNvbmApO1xuICAgIH1cbiAgfVxuXG4gIGltcG9ydCgpIHtcbiAgICAvLyByZWFkIGZpbGVzIGNvbnRlbnRzXG5cbiAgICByZXR1cm4gdGhpcy4jZmVhdHVyZU9iamVjdElkXG4gICAgICA/IHRoaXMuI3NoZWxsLnBpY2tGaWxlKCkucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKGZpbGUpID0+XG4gICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICAgID8gdGhpcy4jc2hlbGxDb25maWcudXBsb2FkKHRoaXMuI2ZlYXR1cmVPYmplY3RJZCEsIGZpbGUpLnBpcGUoXG4gICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyByZWFkIHVwbG9hZGVkIGZpbGVcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2JhY2tlbmQuZ2V0KGAvZG1zL29iamVjdHMvJHtyZXMuaWR9L2NvbnRlbnRzL2ZpbGVgKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgIHRhcCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGZlYXR1cmVzXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdkYXRhJywgZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI2ZlYXR1cmVzID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogb2YobnVsbClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIDogb2YobnVsbCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,6 +8,9 @@ export declare class FeatureService {
|
|
|
8
8
|
getFeatures(): ClientShellFeature[];
|
|
9
9
|
getAvailableApps(allApps: App[]): App[];
|
|
10
10
|
canUseApp(app: App): boolean;
|
|
11
|
+
canMatchRequirements(app: {
|
|
12
|
+
id: string;
|
|
13
|
+
}): boolean;
|
|
11
14
|
canUseFeatureById(featureId: string, authorities?: string[]): boolean;
|
|
12
15
|
canUseFeature(feature: ClientShellFeature, authorities?: string[]): boolean;
|
|
13
16
|
saveFeatureSettings(features: ClientShellFeature[]): Observable<any>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuuvis/client-shell-core",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"author": "OPTIMAL SYSTEMS GmbH <npm@optimal-systems.de>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"@angular/material": "^19.2.15",
|
|
10
10
|
"rxjs": "^7.8.2",
|
|
11
11
|
"@angular/platform-browser": "^19.2.1",
|
|
12
|
-
"@yuuvis/client-core": "^2.8.
|
|
12
|
+
"@yuuvis/client-core": "^2.8.1"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"tslib": "^2.3.0"
|