@sunbird-cb/resolver 0.0.3 → 1.0.0-ang-9-12

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.
Files changed (49) hide show
  1. package/bundles/sunbird-cb-resolver.umd.js +945 -732
  2. package/bundles/sunbird-cb-resolver.umd.js.map +1 -1
  3. package/esm2015/lib/invalid-permission/invalid-permission.component.js +33 -30
  4. package/esm2015/lib/invalid-registration/invalid-registration.component.js +27 -24
  5. package/esm2015/lib/restricted/restricted.component.js +27 -24
  6. package/esm2015/lib/unresolved/unresolved.component.js +34 -33
  7. package/esm2015/lib/widget-base.component.js +60 -51
  8. package/esm2015/lib/widget-resolver.constant.js +4 -4
  9. package/esm2015/lib/widget-resolver.directive.js +35 -43
  10. package/esm2015/lib/widget-resolver.model.js +2 -57
  11. package/esm2015/lib/widget-resolver.module.js +77 -65
  12. package/esm2015/lib/widget-resolver.permissions.js +74 -74
  13. package/esm2015/lib/widget-resolver.service.js +96 -114
  14. package/esm2015/public-api.js +7 -6
  15. package/esm2015/sunbird-cb-resolver.js +2 -8
  16. package/fesm2015/sunbird-cb-resolver.js +402 -467
  17. package/fesm2015/sunbird-cb-resolver.js.map +1 -1
  18. package/lib/invalid-permission/invalid-permission.component.d.ts +14 -11
  19. package/lib/invalid-registration/invalid-registration.component.d.ts +11 -8
  20. package/lib/restricted/restricted.component.d.ts +11 -8
  21. package/lib/unresolved/unresolved.component.d.ts +13 -10
  22. package/lib/widget-base.component.d.ts +18 -15
  23. package/lib/widget-resolver.constant.d.ts +4 -4
  24. package/lib/widget-resolver.directive.d.ts +15 -12
  25. package/lib/widget-resolver.model.d.ts +48 -48
  26. package/lib/widget-resolver.module.d.ts +20 -6
  27. package/lib/widget-resolver.permissions.d.ts +3 -3
  28. package/lib/widget-resolver.service.d.ts +23 -22
  29. package/package.json +17 -20
  30. package/public-api.d.ts +6 -5
  31. package/sunbird-cb-resolver.d.ts +2 -8
  32. package/bundles/sunbird-cb-resolver.umd.min.js +0 -16
  33. package/bundles/sunbird-cb-resolver.umd.min.js.map +0 -1
  34. package/esm5/lib/invalid-permission/invalid-permission.component.js +0 -35
  35. package/esm5/lib/invalid-registration/invalid-registration.component.js +0 -29
  36. package/esm5/lib/restricted/restricted.component.js +0 -29
  37. package/esm5/lib/unresolved/unresolved.component.js +0 -38
  38. package/esm5/lib/widget-base.component.js +0 -54
  39. package/esm5/lib/widget-resolver.constant.js +0 -4
  40. package/esm5/lib/widget-resolver.directive.js +0 -45
  41. package/esm5/lib/widget-resolver.model.js +0 -57
  42. package/esm5/lib/widget-resolver.module.js +0 -69
  43. package/esm5/lib/widget-resolver.permissions.js +0 -79
  44. package/esm5/lib/widget-resolver.service.js +0 -120
  45. package/esm5/public-api.js +0 -6
  46. package/esm5/sunbird-cb-resolver.js +0 -8
  47. package/fesm5/sunbird-cb-resolver.js +0 -517
  48. package/fesm5/sunbird-cb-resolver.js.map +0 -1
  49. package/sunbird-cb-resolver.metadata.json +0 -1
@@ -1,114 +1,96 @@
1
- import { Injectable, Inject, ComponentFactoryResolver, } from '@angular/core';
2
- import { WIDGET_RESOLVER_GLOBAL_CONFIG, WIDGET_RESOLVER_SCOPED_CONFIG, } from './widget-resolver.constant';
3
- import { LoggerService } from '@sunbird-cb/utils';
4
- import { hasPermissions } from './widget-resolver.permissions';
5
- import { RestrictedComponent } from './restricted/restricted.component';
6
- import { InvalidRegistrationComponent } from './invalid-registration/invalid-registration.component';
7
- import { InvalidPermissionComponent } from './invalid-permission/invalid-permission.component';
8
- import { UnresolvedComponent } from './unresolved/unresolved.component';
9
- import { DomSanitizer } from '@angular/platform-browser';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/platform-browser";
12
- import * as i2 from "@sunbird-cb/utils";
13
- import * as i3 from "./widget-resolver.constant";
14
- export class WidgetResolverService {
15
- constructor(domSanitizer, componentFactoryResolver, loggerSvc, globalConfig, scopedConfig) {
16
- this.domSanitizer = domSanitizer;
17
- this.componentFactoryResolver = componentFactoryResolver;
18
- this.loggerSvc = loggerSvc;
19
- this.globalConfig = globalConfig;
20
- this.scopedConfig = scopedConfig;
21
- this.roles = null;
22
- this.groups = null;
23
- this.restrictedFeatures = null;
24
- this.isInitialized = false;
25
- this.availableRegisteredWidgets = null;
26
- this.restrictedWidgetKeys = null;
27
- }
28
- static getWidgetKey(config) {
29
- return `widget:${config.widgetType}::${config.widgetSubType}`;
30
- }
31
- initialize(restrictedWidgetKeys, roles, groups, restrictedFeatures) {
32
- this.roles = roles;
33
- this.groups = groups;
34
- this.restrictedFeatures = restrictedFeatures;
35
- const restrictedWidgetKeysSet = restrictedWidgetKeys
36
- ? restrictedWidgetKeys
37
- : new Set();
38
- const registrationConfig = new Map();
39
- const allWidgetsConfigurations = [];
40
- if (this.globalConfig && Array.isArray(this.globalConfig)) {
41
- allWidgetsConfigurations.push(...this.globalConfig);
42
- }
43
- if (this.scopedConfig && Array.isArray(this.scopedConfig)) {
44
- allWidgetsConfigurations.push(...this.scopedConfig);
45
- }
46
- allWidgetsConfigurations.forEach((u => {
47
- const key = WidgetResolverService.getWidgetKey(u);
48
- if (!restrictedWidgetKeysSet.has(key)) {
49
- registrationConfig.set(key, u);
50
- }
51
- }));
52
- this.restrictedWidgetKeys = restrictedWidgetKeysSet;
53
- this.availableRegisteredWidgets = registrationConfig;
54
- this.isInitialized = true;
55
- this.loggerSvc.log(`Widget Configurations`, this.globalConfig, this.scopedConfig, this.availableRegisteredWidgets);
56
- }
57
- resolveWidget(receivedConfig, containerRef) {
58
- const key = WidgetResolverService.getWidgetKey(receivedConfig);
59
- if (this.restrictedWidgetKeys && this.restrictedWidgetKeys.has(key)) {
60
- return this.widgetResolved(containerRef, receivedConfig, RestrictedComponent);
61
- }
62
- if (this.availableRegisteredWidgets && this.availableRegisteredWidgets.has(key)) {
63
- if (hasPermissions(receivedConfig.widgetPermission, this.roles, this.groups, this.restrictedFeatures)) {
64
- const config = this.availableRegisteredWidgets.get(key);
65
- if (config && config.component) {
66
- return this.widgetResolved(containerRef, receivedConfig, config.component);
67
- }
68
- return this.widgetResolved(containerRef, receivedConfig, InvalidRegistrationComponent);
69
- }
70
- return this.widgetResolved(containerRef, receivedConfig, InvalidPermissionComponent);
71
- }
72
- return this.widgetResolved(containerRef, receivedConfig, UnresolvedComponent);
73
- }
74
- widgetResolved(containerRef, compData, component) {
75
- const factory = this.componentFactoryResolver.resolveComponentFactory(component);
76
- containerRef.clear();
77
- const compRef = containerRef.createComponent(factory);
78
- compRef.instance.widgetData = compData.widgetData;
79
- if (compRef.instance.updateBaseComponent) {
80
- const widgetSafeStyle = compData.widgetHostStyle
81
- ? this.domSanitizer.bypassSecurityTrustStyle(Object.entries(compData.widgetHostStyle).reduce(((s, [k, v]) => `${s}${k}:${v};`), ''))
82
- : undefined;
83
- compRef.instance.updateBaseComponent(compData.widgetType, compData.widgetSubType, compData.widgetInstanceId, compData.widgetHostClass, widgetSafeStyle);
84
- }
85
- return compRef;
86
- }
87
- }
88
- WidgetResolverService.decorators = [
89
- { type: Injectable, args: [{
90
- providedIn: 'root',
91
- },] }
92
- ];
93
- WidgetResolverService.ctorParameters = () => [
94
- { type: DomSanitizer },
95
- { type: ComponentFactoryResolver },
96
- { type: LoggerService },
97
- { type: undefined, decorators: [{ type: Inject, args: [WIDGET_RESOLVER_GLOBAL_CONFIG,] }] },
98
- { type: undefined, decorators: [{ type: Inject, args: [WIDGET_RESOLVER_SCOPED_CONFIG,] }] }
99
- ];
100
- /** @nocollapse */ WidgetResolverService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function WidgetResolverService_Factory() { return new WidgetResolverService(i0.ɵɵinject(i1.DomSanitizer), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i2.LoggerService), i0.ɵɵinject(i3.WIDGET_RESOLVER_GLOBAL_CONFIG), i0.ɵɵinject(i3.WIDGET_RESOLVER_SCOPED_CONFIG)); }, token: WidgetResolverService, providedIn: "root" });
101
- if (false) {
102
- WidgetResolverService.prototype.roles;
103
- WidgetResolverService.prototype.groups;
104
- WidgetResolverService.prototype.restrictedFeatures;
105
- WidgetResolverService.prototype.isInitialized;
106
- WidgetResolverService.prototype.availableRegisteredWidgets;
107
- WidgetResolverService.prototype.restrictedWidgetKeys;
108
- WidgetResolverService.prototype.domSanitizer;
109
- WidgetResolverService.prototype.componentFactoryResolver;
110
- WidgetResolverService.prototype.loggerSvc;
111
- WidgetResolverService.prototype.globalConfig;
112
- WidgetResolverService.prototype.scopedConfig;
113
- }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VuYmlyZC1jYi9yZXNvbHZlci8iLCJzb3VyY2VzIjpbImxpYi93aWRnZXQtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTix3QkFBd0IsR0FJekIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsR0FDOUIsTUFBTSw0QkFBNEIsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQzlGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7Ozs7QUFLeEQsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxZQUNVLFlBQTBCLEVBQzFCLHdCQUFrRCxFQUNsRCxTQUF3QixFQUV4QixZQUEyRCxFQUUzRCxZQUEyRDtRQU4zRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGNBQVMsR0FBVCxTQUFTLENBQWU7UUFFeEIsaUJBQVksR0FBWixZQUFZLENBQStDO1FBRTNELGlCQUFZLEdBQVosWUFBWSxDQUErQztRQVg3RCxVQUFLLEdBQXVCLElBQUksQ0FBQTtRQUNoQyxXQUFNLEdBQXVCLElBQUksQ0FBQTtRQUNqQyx1QkFBa0IsR0FBdUIsSUFB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QUNuQixRQUFRLENBQUMsYUFBYSxFQUN0QixRQUFRLENBQUMsZ0JBQWdCLEVBQ3pCLFFBQVEsQ0FBQyxlQUFlLEVBQ3hCLGVBQWUsQ0FDaEIsQ0FBQTtTQUNGO1FBQ0QsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQzs7O1lBMUhGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBSlEsWUFBWTtZQWhCbkIsd0JBQXdCO1lBU2pCLGFBQWE7NENBcUJqQixNQUFNLFNBQUMsNkJBQTZCOzRDQUVwQyxNQUFNLFNBQUMsNkJBQTZCOzs7O0lBVnZDLHNDQUF3QztJQUN4Qyx1Q0FBeUM7SUFDekMsbURBQXFEO0lBQ3JELDhDQUFxQjtJQVVyQiwyREFHZTtJQUNmLHFEQUF1RDtJQVpyRCw2Q0FBa0M7SUFDbEMseURBQTBEO0lBQzFELDBDQUFnQztJQUNoQyw2Q0FDbUU7SUFDbkUsNkNBQ21FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBJbmplY3RhYmxlLFxyXG4gIEluamVjdCxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBDb21wb25lbnRSZWYsXHJcbiAgVHlwZSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIFdJREdFVF9SRVNPTFZFUl9HTE9CQUxfQ09ORklHLFxyXG4gIFdJREdFVF9SRVNPTFZFUl9TQ09QRURfQ09ORklHLFxyXG59IGZyb20gJy4vd2lkZ2V0LXJlc29sdmVyLmNvbnN0YW50J1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMnXHJcbmltcG9ydCB7IE5zV2lkZ2V0UmVzb2x2ZXIgfSBmcm9tICcuL3dpZGdldC1yZXNvbHZlci5tb2RlbCdcclxuaW1wb3J0IHsgaGFzUGVybWlzc2lvbnMgfSBmcm9tICcuL3dpZGdldC1yZXNvbHZlci5wZXJtaXNzaW9ucydcclxuaW1wb3J0IHsgUmVzdHJpY3RlZENvbXBvbmVudCB9IGZyb20gJy4vcmVzdHJpY3RlZC9yZXN0cmljdGVkLmNvbXBvbmVudCdcclxuaW1wb3J0IHsgSW52YWxpZFJlZ2lzdHJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vaW52YWxpZC1yZWdpc3RyYXRpb24vaW52YWxpZC1yZWdpc3RyYXRpb24uY29tcG9uZW50J1xyXG5pbXBvcnQgeyBJbnZhbGlkUGVybWlzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4vaW52YWxpZC1wZXJtaXNzaW9uL2ludmFsaWQtcGVybWlzc2lvbi5jb21wb25lbnQnXHJcbmltcG9ydCB7IFVucmVzb2x2ZWRDb21wb25lbnQgfSBmcm9tICcuL3VucmVzb2x2ZWQvdW5yZXNvbHZlZC5jb21wb25lbnQnXHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0UmVzb2x2ZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJvbGVzOiBTZXQ8c3RyaW5nPiB8IG51bGwgPSBudWxsXHJcbiAgcHJpdmF0ZSBncm91cHM6IFNldDxzdHJpbmc+IHwgbnVsbCA9IG51bGxcclxuICBwcml2YXRlIHJlc3RyaWN0ZWRGZWF0dXJlczogU2V0PHN0cmluZz4gfCBudWxsID0gbnVsbFxyXG4gIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIGxvZ2dlclN2YzogTG9nZ2VyU2VydmljZSxcclxuICAgIEBJbmplY3QoV0lER0VUX1JFU09MVkVSX0dMT0JBTF9DT05GSUcpXHJcbiAgICBwcml2YXRlIGdsb2JhbENvbmZpZzogbnVsbCB8IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlZ2lzdHJhdGlvbkNvbmZpZ1tdLFxyXG4gICAgQEluamVjdChXSURHRVRfUkVTT0xWRVJfU0NPUEVEX0NPTkZJRylcclxuICAgIHByaXZhdGUgc2NvcGVkQ29uZmlnOiBudWxsIHwgTnNXaWRnZXRSZXNvbHZlci5JUmVnaXN0cmF0aW9uQ29uZmlnW10sXHJcbiAgKSB7IH1cclxuICBwcml2YXRlIGF2YWlsYWJsZVJlZ2lzdGVyZWRXaWRnZXRzOiBNYXA8XHJcbiAgICBzdHJpbmcsXHJcbiAgICBOc1dpZGdldFJlc29sdmVyLklSZWdpc3RyYXRpb25Db25maWdcclxuICA+IHwgbnVsbCA9IG51bGxcclxuICBwcml2YXRlIHJlc3RyaWN0ZWRXaWRnZXRLZXlzOiBTZXQ8c3RyaW5nPiB8IG51bGwgPSBudWxsXHJcbiAgc3RhdGljIGdldFdpZGdldEtleShjb25maWc6IE5zV2lkZ2V0UmVzb2x2ZXIuSUJhc2VDb25maWcpIHtcclxuICAgIHJldHVybiBgd2lkZ2V0OiR7Y29uZmlnLndpZGdldFR5cGV9Ojoke2NvbmZpZy53aWRnZXRTdWJUeXBlfWBcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemUoXHJcbiAgICByZXN0cmljdGVkV2lkZ2V0S2V5czogU2V0PHN0cmluZz4gfCBudWxsLFxyXG4gICAgcm9sZXM6IFNldDxzdHJpbmc+IHwgbnVsbCxcclxuICAgIGdyb3VwczogU2V0PHN0cmluZz4gfCBudWxsLFxyXG4gICAgcmVzdHJpY3RlZEZlYXR1cmVzOiBTZXQ8c3RyaW5nPiB8IG51bGwsXHJcbiAgKSB7XHJcbiAgICB0aGlzLnJvbGVzID0gcm9sZXNcclxuXHJcbiAgICB0aGlzLmdyb3VwcyA9IGdyb3Vwc1xyXG4gICAgdGhpcy5yZXN0cmljdGVkRmVhdHVyZXMgPSByZXN0cmljdGVkRmVhdHVyZXNcclxuICAgIGNvbnN0IHJlc3RyaWN0ZWRXaWRnZXRLZXlzU2V0OiBTZXQ8c3RyaW5nPiA9IHJlc3RyaWN0ZWRXaWRnZXRLZXlzXHJcbiAgICAgID8gcmVzdHJpY3RlZFdpZGdldEtleXNcclxuICAgICAgOiBuZXcgU2V0PHN0cmluZz4oKVxyXG4gICAgY29uc3QgcmVnaXN0cmF0aW9uQ29uZmlnOiBNYXA8c3RyaW5nLCBOc1dpZGdldFJlc29sdmVyLklSZWdpc3RyYXRpb25Db25maWc+ID0gbmV3IE1hcCgpXHJcbiAgICBjb25zdCBhbGxXaWRnZXRzQ29uZmlndXJhdGlvbnM6IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlZ2lzdHJhdGlvbkNvbmZpZ1tdID0gW11cclxuICAgIGlmICh0aGlzLmdsb2JhbENvbmZpZyAmJiBBcnJheS5pc0FycmF5KHRoaXMuZ2xvYmFsQ29uZmlnKSkge1xyXG4gICAgICBhbGxXaWRnZXRzQ29uZmlndXJhdGlvbnMucHVzaCguLi50aGlzLmdsb2JhbENvbmZpZylcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjb3BlZENvbmZpZyAmJiBBcnJheS5pc0FycmF5KHRoaXMuc2NvcGVkQ29uZmlnKSkge1xyXG4gICAgICBhbGxXaWRnZXRzQ29uZmlndXJhdGlvbnMucHVzaCguLi50aGlzLnNjb3BlZENvbmZpZylcclxuICAgIH1cclxuICAgIGFsbFdpZGdldHNDb25maWd1cmF0aW9ucy5mb3JFYWNoKHUgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSBXaWRnZXRSZXNvbHZlclNlcnZpY2UuZ2V0V2lkZ2V0S2V5KHUpXHJcbiAgICAgIGlmICghcmVzdHJpY3RlZFdpZGdldEtleXNTZXQuaGFzKGtleSkpIHtcclxuICAgICAgICByZWdpc3RyYXRpb25Db25maWcuc2V0KGtleSwgdSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMucmVzdHJpY3RlZFdpZGdldEtleXMgPSByZXN0cmljdGVkV2lkZ2V0S2V5c1NldFxyXG4gICAgdGhpcy5hdmFpbGFibGVSZWdpc3RlcmVkV2lkZ2V0cyA9IHJlZ2lzdHJhdGlvbkNvbmZpZ1xyXG4gICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZVxyXG4gICAgdGhpcy5sb2dnZXJTdmMubG9nKFxyXG4gICAgICBgV2lkZ2V0IENvbmZpZ3VyYXRpb25zYCxcclxuICAgICAgdGhpcy5nbG9iYWxDb25maWcsXHJcbiAgICAgIHRoaXMuc2NvcGVkQ29uZmlnLFxyXG4gICAgICB0aGlzLmF2YWlsYWJsZVJlZ2lzdGVyZWRXaWRnZXRzLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcmVzb2x2ZVdpZGdldChcclxuICAgIHJlY2VpdmVkQ29uZmlnOiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YSxcclxuICAgIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICApOiBDb21wb25lbnRSZWY8YW55PiB8IG51bGwge1xyXG4gICAgY29uc3Qga2V5ID0gV2lkZ2V0UmVzb2x2ZXJTZXJ2aWNlLmdldFdpZGdldEtleShyZWNlaXZlZENvbmZpZylcclxuICAgIGlmICh0aGlzLnJlc3RyaWN0ZWRXaWRnZXRLZXlzICYmIHRoaXMucmVzdHJpY3RlZFdpZGdldEtleXMuaGFzKGtleSkpIHtcclxuICAgICAgLy8gUmVzdHJpY3RlZFxyXG4gICAgICByZXR1cm4gdGhpcy53aWRnZXRSZXNvbHZlZChjb250YWluZXJSZWYsIHJlY2VpdmVkQ29uZmlnLCBSZXN0cmljdGVkQ29tcG9uZW50KVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXZhaWxhYmxlUmVnaXN0ZXJlZFdpZGdldHMgJiYgdGhpcy5hdmFpbGFibGVSZWdpc3RlcmVkV2lkZ2V0cy5oYXMoa2V5KSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaGFzUGVybWlzc2lvbnMoXHJcbiAgICAgICAgICByZWNlaXZlZENvbmZpZy53aWRnZXRQZXJtaXNzaW9uLFxyXG4gICAgICAgICAgdGhpcy5yb2xlcyxcclxuICAgICAgICAgIHRoaXMuZ3JvdXBzLFxyXG4gICAgICAgICAgdGhpcy5yZXN0cmljdGVkRmVhdHVyZXMsXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmF2YWlsYWJsZVJlZ2lzdGVyZWRXaWRnZXRzLmdldChrZXkpXHJcbiAgICAgICAgaWYgKGNvbmZpZyAmJiBjb25maWcuY29tcG9uZW50KSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy53aWRnZXRSZXNvbHZlZChjb250YWluZXJSZWYsIHJlY2VpdmVkQ29uZmlnLCBjb25maWcuY29tcG9uZW50KVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBOb3QgcHJvcGVybHkgcmVnaXN0ZXJlZFxyXG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldFJlc29sdmVkKGNvbnRhaW5lclJlZiwgcmVjZWl2ZWRDb25maWcsIEludmFsaWRSZWdpc3RyYXRpb25Db21wb25lbnQpXHJcbiAgICAgIH1cclxuICAgICAgLy8gTm8gUGVybWlzc2lvblxyXG4gICAgICByZXR1cm4gdGhpcy53aWRnZXRSZXNvbHZlZChjb250YWluZXJSZWYsIHJlY2VpdmVkQ29uZmlnLCBJbnZhbGlkUGVybWlzc2lvbkNvbXBvbmVudClcclxuICAgIH1cclxuICAgIC8vIE5vdCBSZXNvbHZlZFxyXG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0UmVzb2x2ZWQoY29udGFpbmVyUmVmLCByZWNlaXZlZENvbmZpZywgVW5yZXNvbHZlZENvbXBvbmVudClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2lkZ2V0UmVzb2x2ZWQoXHJcbiAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBjb21wRGF0YTogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGEsXHJcbiAgICBjb21wb25lbnQ6IFR5cGU8TnNXaWRnZXRSZXNvbHZlci5JV2lkZ2V0RGF0YTxhbnk+PixcclxuICApOiBDb21wb25lbnRSZWY8TnNXaWRnZXRSZXNvbHZlci5JV2lkZ2V0RGF0YTxhbnk+PiB7XHJcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KVxyXG4gICAgY29udGFpbmVyUmVmLmNsZWFyKClcclxuICAgIGNvbnN0IGNvbXBSZWY6IENvbXBvbmVudFJlZjxOc1dpZGdldFJlc29sdmVyLklXaWRnZXREYXRhPGFueT4+ID0gY29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcclxuICAgICAgZmFjdG9yeSxcclxuICAgIClcclxuICAgIGNvbXBSZWYuaW5zdGFuY2Uud2lkZ2V0RGF0YSA9IGNvbXBEYXRhLndpZGdldERhdGFcclxuICAgIGlmIChjb21wUmVmLmluc3RhbmNlLnVwZGF0ZUJhc2VDb21wb25lbnQpIHtcclxuICAgICAgY29uc3Qgd2lkZ2V0U2FmZVN0eWxlID0gY29tcERhdGEud2lkZ2V0SG9zdFN0eWxlXHJcbiAgICAgICAgPyB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoXHJcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhjb21wRGF0YS53aWRnZXRIb3N0U3R5bGUpLnJlZHVjZSgocywgW2ssIHZdKSA9PiBgJHtzfSR7a306JHt2fTtgLCAnJyksXHJcbiAgICAgICAgKVxyXG4gICAgICAgIDogdW5kZWZpbmVkXHJcbiAgICAgIGNvbXBSZWYuaW5zdGFuY2UudXBkYXRlQmFzZUNvbXBvbmVudChcclxuICAgICAgICBjb21wRGF0YS53aWRnZXRUeXBlLFxyXG4gICAgICAgIGNvbXBEYXRhLndpZGdldFN1YlR5cGUsXHJcbiAgICAgICAgY29tcERhdGEud2lkZ2V0SW5zdGFuY2VJZCxcclxuICAgICAgICBjb21wRGF0YS53aWRnZXRIb3N0Q2xhc3MsXHJcbiAgICAgICAgd2lkZ2V0U2FmZVN0eWxlLFxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29tcFJlZlxyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Injectable, Inject, } from '@angular/core';
2
+ import { WIDGET_RESOLVER_GLOBAL_CONFIG, WIDGET_RESOLVER_SCOPED_CONFIG, } from './widget-resolver.constant';
3
+ import { hasPermissions } from './widget-resolver.permissions';
4
+ import { RestrictedComponent } from './restricted/restricted.component';
5
+ import { InvalidRegistrationComponent } from './invalid-registration/invalid-registration.component';
6
+ import { InvalidPermissionComponent } from './invalid-permission/invalid-permission.component';
7
+ import { UnresolvedComponent } from './unresolved/unresolved.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/platform-browser";
10
+ export class WidgetResolverService {
11
+ constructor(domSanitizer, componentFactoryResolver, globalConfig, scopedConfig) {
12
+ this.domSanitizer = domSanitizer;
13
+ this.componentFactoryResolver = componentFactoryResolver;
14
+ this.globalConfig = globalConfig;
15
+ this.scopedConfig = scopedConfig;
16
+ this.roles = null;
17
+ this.groups = null;
18
+ this.restrictedFeatures = null;
19
+ this.isInitialized = false;
20
+ this.availableRegisteredWidgets = null;
21
+ this.restrictedWidgetKeys = null;
22
+ }
23
+ static getWidgetKey(config) {
24
+ return `widget:${config.widgetType}::${config.widgetSubType}`;
25
+ }
26
+ initialize(restrictedWidgetKeys, roles, groups, restrictedFeatures) {
27
+ this.roles = roles;
28
+ this.groups = groups;
29
+ this.restrictedFeatures = restrictedFeatures;
30
+ const restrictedWidgetKeysSet = restrictedWidgetKeys
31
+ ? restrictedWidgetKeys
32
+ : new Set();
33
+ const registrationConfig = new Map();
34
+ const allWidgetsConfigurations = [];
35
+ if (this.globalConfig && Array.isArray(this.globalConfig)) {
36
+ allWidgetsConfigurations.push(...this.globalConfig);
37
+ }
38
+ if (this.scopedConfig && Array.isArray(this.scopedConfig)) {
39
+ allWidgetsConfigurations.push(...this.scopedConfig);
40
+ }
41
+ allWidgetsConfigurations.forEach(u => {
42
+ const key = WidgetResolverService.getWidgetKey(u);
43
+ if (!restrictedWidgetKeysSet.has(key)) {
44
+ registrationConfig.set(key, u);
45
+ }
46
+ });
47
+ this.restrictedWidgetKeys = restrictedWidgetKeysSet;
48
+ this.availableRegisteredWidgets = registrationConfig;
49
+ this.isInitialized = true;
50
+ }
51
+ resolveWidget(receivedConfig, containerRef) {
52
+ const key = WidgetResolverService.getWidgetKey(receivedConfig);
53
+ if (this.restrictedWidgetKeys && this.restrictedWidgetKeys.has(key)) {
54
+ return this.widgetResolved(containerRef, receivedConfig, RestrictedComponent);
55
+ }
56
+ if (this.availableRegisteredWidgets && this.availableRegisteredWidgets.has(key)) {
57
+ if (hasPermissions(receivedConfig.widgetPermission, this.roles, this.groups, this.restrictedFeatures)) {
58
+ const config = this.availableRegisteredWidgets.get(key);
59
+ if (config && config.component) {
60
+ return this.widgetResolved(containerRef, receivedConfig, config.component);
61
+ }
62
+ return this.widgetResolved(containerRef, receivedConfig, InvalidRegistrationComponent);
63
+ }
64
+ return this.widgetResolved(containerRef, receivedConfig, InvalidPermissionComponent);
65
+ }
66
+ return this.widgetResolved(containerRef, receivedConfig, UnresolvedComponent);
67
+ }
68
+ widgetResolved(containerRef, compData, component) {
69
+ const factory = this.componentFactoryResolver.resolveComponentFactory(component);
70
+ containerRef.clear();
71
+ const compRef = containerRef.createComponent(factory);
72
+ compRef.instance.widgetData = compData.widgetData;
73
+ if (compRef.instance.updateBaseComponent) {
74
+ const widgetSafeStyle = compData.widgetHostStyle
75
+ ? this.domSanitizer.bypassSecurityTrustStyle(Object.entries(compData.widgetHostStyle).reduce((s, [k, v]) => `${s}${k}:${v};`, ''))
76
+ : undefined;
77
+ compRef.instance.updateBaseComponent(compData.widgetType, compData.widgetSubType, compData.widgetInstanceId, compData.widgetHostClass, widgetSafeStyle);
78
+ }
79
+ return compRef;
80
+ }
81
+ }
82
+ WidgetResolverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WidgetResolverService, deps: [{ token: i1.DomSanitizer }, { token: i0.ComponentFactoryResolver }, { token: WIDGET_RESOLVER_GLOBAL_CONFIG }, { token: WIDGET_RESOLVER_SCOPED_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
83
+ WidgetResolverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WidgetResolverService, providedIn: 'root' });
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WidgetResolverService, decorators: [{
85
+ type: Injectable,
86
+ args: [{
87
+ providedIn: 'root',
88
+ }]
89
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.ComponentFactoryResolver }, { type: undefined, decorators: [{
90
+ type: Inject,
91
+ args: [WIDGET_RESOLVER_GLOBAL_CONFIG]
92
+ }] }, { type: undefined, decorators: [{
93
+ type: Inject,
94
+ args: [WIDGET_RESOLVER_SCOPED_CONFIG]
95
+ }] }]; } });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvcmVzb2x2ZXIvc3JjL2xpYi93aWRnZXQtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sR0FLUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDZCQUE2QixHQUM5QixNQUFNLDRCQUE0QixDQUFBO0FBR25DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQTtBQUNwRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTtBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTs7O0FBTXZFLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFDVSxZQUEwQixFQUMxQix3QkFBa0QsRUFHbEQsWUFBMkQsRUFFM0QsWUFBMkQ7UUFOM0QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUdsRCxpQkFBWSxHQUFaLFlBQVksQ0FBK0M7UUFFM0QsaUJBQVksR0FBWixZQUFZLENBQStDO1FBWDdELFVBQUssR0FBdUIsSUFBSSxDQUFBO1FBQ2hDLFdBQU0sR0FBdUIsSUFBSSxDQUFBO1FBQ2pDLHVCQUFrQixHQUF1QixJQUFJLENBQUE7UUFDckQsa0JBQWEsR0FBRyxLQUFLLENBQUE7UUFVYiwrQkFBMEIsR0FHdkIsSUFBSSxDQUFBO1FBQ1AseUJBQW9CLEdBQXVCLElBQUksQ0FBQTtJQUxuRCxDQUFDO0lBTUwsTUFBTSxDQUFDLFlB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QTZCLGFBRTdCLDZCQUE2Qjt1SEFYNUIscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyw2QkFBNkI7OzBCQUVwQyxNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgSW5qZWN0YWJsZSxcclxuICBJbmplY3QsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIFR5cGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBXSURHRVRfUkVTT0xWRVJfR0xPQkFMX0NPTkZJRyxcclxuICBXSURHRVRfUkVTT0xWRVJfU0NPUEVEX0NPTkZJRyxcclxufSBmcm9tICcuL3dpZGdldC1yZXNvbHZlci5jb25zdGFudCdcclxuLy8gaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzJ1xyXG5pbXBvcnQgeyBOc1dpZGdldFJlc29sdmVyIH0gZnJvbSAnLi93aWRnZXQtcmVzb2x2ZXIubW9kZWwnXHJcbmltcG9ydCB7IGhhc1Blcm1pc3Npb25zIH0gZnJvbSAnLi93aWRnZXQtcmVzb2x2ZXIucGVybWlzc2lvbnMnXHJcbmltcG9ydCB7IFJlc3RyaWN0ZWRDb21wb25lbnQgfSBmcm9tICcuL3Jlc3RyaWN0ZWQvcmVzdHJpY3RlZC5jb21wb25lbnQnXHJcbmltcG9ydCB7IEludmFsaWRSZWdpc3RyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2ludmFsaWQtcmVnaXN0cmF0aW9uL2ludmFsaWQtcmVnaXN0cmF0aW9uLmNvbXBvbmVudCdcclxuaW1wb3J0IHsgSW52YWxpZFBlcm1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuL2ludmFsaWQtcGVybWlzc2lvbi9pbnZhbGlkLXBlcm1pc3Npb24uY29tcG9uZW50J1xyXG5pbXBvcnQgeyBVbnJlc29sdmVkQ29tcG9uZW50IH0gZnJvbSAnLi91bnJlc29sdmVkL3VucmVzb2x2ZWQuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldFJlc29sdmVyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByb2xlczogU2V0PHN0cmluZz4gfCBudWxsID0gbnVsbFxyXG4gIHByaXZhdGUgZ3JvdXBzOiBTZXQ8c3RyaW5nPiB8IG51bGwgPSBudWxsXHJcbiAgcHJpdmF0ZSByZXN0cmljdGVkRmVhdHVyZXM6IFNldDxzdHJpbmc+IHwgbnVsbCA9IG51bGxcclxuICBpc0luaXRpYWxpemVkID0gZmFsc2VcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgLy8gcHJpdmF0ZSBsb2dnZXJTdmM6IExvZ2dlclNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFdJREdFVF9SRVNPTFZFUl9HTE9CQUxfQ09ORklHKVxyXG4gICAgcHJpdmF0ZSBnbG9iYWxDb25maWc6IG51bGwgfCBOc1dpZGdldFJlc29sdmVyLklSZWdpc3RyYXRpb25Db25maWdbXSxcclxuICAgIEBJbmplY3QoV0lER0VUX1JFU09MVkVSX1NDT1BFRF9DT05GSUcpXHJcbiAgICBwcml2YXRlIHNjb3BlZENvbmZpZzogbnVsbCB8IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlZ2lzdHJhdGlvbkNvbmZpZ1tdLFxyXG4gICkgeyB9XHJcbiAgcHJpdmF0ZSBhdmFpbGFibGVSZWdpc3RlcmVkV2lkZ2V0czogTWFwPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgTnNXaWRnZXRSZXNvbHZlci5JUmVnaXN0cmF0aW9uQ29uZmlnXHJcbiAgPiB8IG51bGwgPSBudWxsXHJcbiAgcHJpdmF0ZSByZXN0cmljdGVkV2lkZ2V0S2V5czogU2V0PHN0cmluZz4gfCBudWxsID0gbnVsbFxyXG4gIHN0YXRpYyBnZXRXaWRnZXRLZXkoY29uZmlnOiBOc1dpZGdldFJlc29sdmVyLklCYXNlQ29uZmlnKSB7XHJcbiAgICByZXR1cm4gYHdpZGdldDoke2NvbmZpZy53aWRnZXRUeXBlfTo6JHtjb25maWcud2lkZ2V0U3ViVHlwZX1gXHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplKFxyXG4gICAgcmVzdHJpY3RlZFdpZGdldEtleXM6IFNldDxzdHJpbmc+IHwgbnVsbCxcclxuICAgIHJvbGVzOiBTZXQ8c3RyaW5nPiB8IG51bGwsXHJcbiAgICBncm91cHM6IFNldDxzdHJpbmc+IHwgbnVsbCxcclxuICAgIHJlc3RyaWN0ZWRGZWF0dXJlczogU2V0PHN0cmluZz4gfCBudWxsLFxyXG4gICkge1xyXG4gICAgdGhpcy5yb2xlcyA9IHJvbGVzXHJcblxyXG4gICAgdGhpcy5ncm91cHMgPSBncm91cHNcclxuICAgIHRoaXMucmVzdHJpY3RlZEZlYXR1cmVzID0gcmVzdHJpY3RlZEZlYXR1cmVzXHJcbiAgICBjb25zdCByZXN0cmljdGVkV2lkZ2V0S2V5c1NldDogU2V0PHN0cmluZz4gPSByZXN0cmljdGVkV2lkZ2V0S2V5c1xyXG4gICAgICA/IHJlc3RyaWN0ZWRXaWRnZXRLZXlzXHJcbiAgICAgIDogbmV3IFNldDxzdHJpbmc+KClcclxuICAgIGNvbnN0IHJlZ2lzdHJhdGlvbkNvbmZpZzogTWFwPHN0cmluZywgTnNXaWRnZXRSZXNvbHZlci5JUmVnaXN0cmF0aW9uQ29uZmlnPiA9IG5ldyBNYXAoKVxyXG4gICAgY29uc3QgYWxsV2lkZ2V0c0NvbmZpZ3VyYXRpb25zOiBOc1dpZGdldFJlc29sdmVyLklSZWdpc3RyYXRpb25Db25maWdbXSA9IFtdXHJcbiAgICBpZiAodGhpcy5nbG9iYWxDb25maWcgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmdsb2JhbENvbmZpZykpIHtcclxuICAgICAgYWxsV2lkZ2V0c0NvbmZpZ3VyYXRpb25zLnB1c2goLi4udGhpcy5nbG9iYWxDb25maWcpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY29wZWRDb25maWcgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnNjb3BlZENvbmZpZykpIHtcclxuICAgICAgYWxsV2lkZ2V0c0NvbmZpZ3VyYXRpb25zLnB1c2goLi4udGhpcy5zY29wZWRDb25maWcpXHJcbiAgICB9XHJcbiAgICBhbGxXaWRnZXRzQ29uZmlndXJhdGlvbnMuZm9yRWFjaCh1ID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gV2lkZ2V0UmVzb2x2ZXJTZXJ2aWNlLmdldFdpZGdldEtleSh1KVxyXG4gICAgICBpZiAoIXJlc3RyaWN0ZWRXaWRnZXRLZXlzU2V0LmhhcyhrZXkpKSB7XHJcbiAgICAgICAgcmVnaXN0cmF0aW9uQ29uZmlnLnNldChrZXksIHUpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLnJlc3RyaWN0ZWRXaWRnZXRLZXlzID0gcmVzdHJpY3RlZFdpZGdldEtleXNTZXRcclxuICAgIHRoaXMuYXZhaWxhYmxlUmVnaXN0ZXJlZFdpZGdldHMgPSByZWdpc3RyYXRpb25Db25maWdcclxuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWVcclxuICAgIC8vIHRoaXMubG9nZ2VyU3ZjLmxvZyhcclxuICAgIC8vICAgYFdpZGdldCBDb25maWd1cmF0aW9uc2AsXHJcbiAgICAvLyAgIHRoaXMuZ2xvYmFsQ29uZmlnLFxyXG4gICAgLy8gICB0aGlzLnNjb3BlZENvbmZpZyxcclxuICAgIC8vICAgdGhpcy5hdmFpbGFibGVSZWdpc3RlcmVkV2lkZ2V0cyxcclxuICAgIC8vIClcclxuICB9XHJcblxyXG4gIHJlc29sdmVXaWRnZXQoXHJcbiAgICByZWNlaXZlZENvbmZpZzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGEsXHJcbiAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgKTogQ29tcG9uZW50UmVmPGFueT4gfCBudWxsIHtcclxuICAgIGNvbnN0IGtleSA9IFdpZGdldFJlc29sdmVyU2VydmljZS5nZXRXaWRnZXRLZXkocmVjZWl2ZWRDb25maWcpXHJcbiAgICBpZiAodGhpcy5yZXN0cmljdGVkV2lkZ2V0S2V5cyAmJiB0aGlzLnJlc3RyaWN0ZWRXaWRnZXRLZXlzLmhhcyhrZXkpKSB7XHJcbiAgICAgIC8vIFJlc3RyaWN0ZWRcclxuICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0UmVzb2x2ZWQoY29udGFpbmVyUmVmLCByZWNlaXZlZENvbmZpZywgUmVzdHJpY3RlZENvbXBvbmVudClcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmF2YWlsYWJsZVJlZ2lzdGVyZWRXaWRnZXRzICYmIHRoaXMuYXZhaWxhYmxlUmVnaXN0ZXJlZFdpZGdldHMuaGFzKGtleSkpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGhhc1Blcm1pc3Npb25zKFxyXG4gICAgICAgICAgcmVjZWl2ZWRDb25maWcud2lkZ2V0UGVybWlzc2lvbixcclxuICAgICAgICAgIHRoaXMucm9sZXMsXHJcbiAgICAgICAgICB0aGlzLmdyb3VwcyxcclxuICAgICAgICAgIHRoaXMucmVzdHJpY3RlZEZlYXR1cmVzLFxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5hdmFpbGFibGVSZWdpc3RlcmVkV2lkZ2V0cy5nZXQoa2V5KVxyXG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0UmVzb2x2ZWQoY29udGFpbmVyUmVmLCByZWNlaXZlZENvbmZpZywgY29uZmlnLmNvbXBvbmVudClcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTm90IHByb3Blcmx5IHJlZ2lzdGVyZWRcclxuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXRSZXNvbHZlZChjb250YWluZXJSZWYsIHJlY2VpdmVkQ29uZmlnLCBJbnZhbGlkUmVnaXN0cmF0aW9uQ29tcG9uZW50KVxyXG4gICAgICB9XHJcbiAgICAgIC8vIE5vIFBlcm1pc3Npb25cclxuICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0UmVzb2x2ZWQoY29udGFpbmVyUmVmLCByZWNlaXZlZENvbmZpZywgSW52YWxpZFBlcm1pc3Npb25Db21wb25lbnQpXHJcbiAgICB9XHJcbiAgICAvLyBOb3QgUmVzb2x2ZWRcclxuICAgIHJldHVybiB0aGlzLndpZGdldFJlc29sdmVkKGNvbnRhaW5lclJlZiwgcmVjZWl2ZWRDb25maWcsIFVucmVzb2x2ZWRDb21wb25lbnQpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHdpZGdldFJlc29sdmVkKFxyXG4gICAgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgY29tcERhdGE6IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhLFxyXG4gICAgY29tcG9uZW50OiBUeXBlPE5zV2lkZ2V0UmVzb2x2ZXIuSVdpZGdldERhdGE8YW55Pj4sXHJcbiAgKTogQ29tcG9uZW50UmVmPE5zV2lkZ2V0UmVzb2x2ZXIuSVdpZGdldERhdGE8YW55Pj4ge1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudClcclxuICAgIGNvbnRhaW5lclJlZi5jbGVhcigpXHJcbiAgICBjb25zdCBjb21wUmVmOiBDb21wb25lbnRSZWY8TnNXaWRnZXRSZXNvbHZlci5JV2lkZ2V0RGF0YTxhbnk+PiA9IGNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXHJcbiAgICAgIGZhY3RvcnksXHJcbiAgICApXHJcbiAgICBjb21wUmVmLmluc3RhbmNlLndpZGdldERhdGEgPSBjb21wRGF0YS53aWRnZXREYXRhXHJcbiAgICBpZiAoY29tcFJlZi5pbnN0YW5jZS51cGRhdGVCYXNlQ29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnN0IHdpZGdldFNhZmVTdHlsZSA9IGNvbXBEYXRhLndpZGdldEhvc3RTdHlsZVxyXG4gICAgICAgID8gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxyXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoY29tcERhdGEud2lkZ2V0SG9zdFN0eWxlKS5yZWR1Y2UoKHMsIFtrLCB2XSkgPT4gYCR7c30ke2t9OiR7dn07YCwgJycpLFxyXG4gICAgICAgIClcclxuICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICBjb21wUmVmLmluc3RhbmNlLnVwZGF0ZUJhc2VDb21wb25lbnQoXHJcbiAgICAgICAgY29tcERhdGEud2lkZ2V0VHlwZSxcclxuICAgICAgICBjb21wRGF0YS53aWRnZXRTdWJUeXBlLFxyXG4gICAgICAgIGNvbXBEYXRhLndpZGdldEluc3RhbmNlSWQsXHJcbiAgICAgICAgY29tcERhdGEud2lkZ2V0SG9zdENsYXNzLFxyXG4gICAgICAgIHdpZGdldFNhZmVTdHlsZSxcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbXBSZWZcclxuICB9XHJcbn1cclxuIl19
@@ -1,6 +1,7 @@
1
- export { WidgetResolverModule } from './lib/widget-resolver.module';
2
- export { WidgetResolverService } from './lib/widget-resolver.service';
3
- export {} from './lib/widget-resolver.model';
4
- export { hasUnitPermission, hasPermissions } from './lib/widget-resolver.permissions';
5
- export { WidgetBaseComponent } from './lib/widget-base.component';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL3Jlc29sdmVyLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxzQ0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxlQUFjLDZCQUE2QixDQUFBO0FBQzNDLGtEQUFjLG1DQUFtQyxDQUFBO0FBQ2pELG9DQUFjLDZCQUE2QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0LXJlc29sdmVyLm1vZHVsZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0LXJlc29sdmVyLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldC1yZXNvbHZlci5tb2RlbCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0LXJlc29sdmVyLnBlcm1pc3Npb25zJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXQtYmFzZS5jb21wb25lbnQnXHJcbiJdfQ==
1
+ export * from './lib/widget-resolver.module';
2
+ export * from './lib/widget-resolver.service';
3
+ export * from './lib/widget-resolver.model';
4
+ export * from './lib/widget-resolver.permissions';
5
+ export * from './lib/widget-base.component';
6
+ export * from './lib/widget-resolver.directive';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9yZXNvbHZlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldC1yZXNvbHZlci5tb2R1bGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldC1yZXNvbHZlci5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXQtcmVzb2x2ZXIubW9kZWwnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldC1yZXNvbHZlci5wZXJtaXNzaW9ucydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0LWJhc2UuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXQtcmVzb2x2ZXIuZGlyZWN0aXZlJ1xyXG4iXX0=
@@ -1,8 +1,2 @@
1
- export { WidgetResolverModule, WidgetResolverService, hasUnitPermission, hasPermissions, WidgetBaseComponent } from './public-api';
2
- export { InvalidPermissionComponent as ɵg } from './lib/invalid-permission/invalid-permission.component';
3
- export { InvalidRegistrationComponent as ɵf } from './lib/invalid-registration/invalid-registration.component';
4
- export { RestrictedComponent as ɵe } from './lib/restricted/restricted.component';
5
- export { UnresolvedComponent as ɵh } from './lib/unresolved/unresolved.component';
6
- export { WIDGET_RESOLVER_GLOBAL_CONFIG as ɵb, WIDGET_RESOLVER_SCOPED_CONFIG as ɵc } from './lib/widget-resolver.constant';
7
- export { WidgetResolverDirective as ɵa } from './lib/widget-resolver.directive';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VuYmlyZC1jYi1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL3Jlc29sdmVyLyIsInNvdXJjZXMiOlsic3VuYmlyZC1jYi1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxvSEFBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyw0QkFBNEIsSUFBSSxFQUFFLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RyxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsNkJBQTZCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkgsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0ludmFsaWRQZXJtaXNzaW9uQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9saWIvaW52YWxpZC1wZXJtaXNzaW9uL2ludmFsaWQtcGVybWlzc2lvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtJbnZhbGlkUmVnaXN0cmF0aW9uQ29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvaW52YWxpZC1yZWdpc3RyYXRpb24vaW52YWxpZC1yZWdpc3RyYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7UmVzdHJpY3RlZENvbXBvbmVudCBhcyDJtWV9IGZyb20gJy4vbGliL3Jlc3RyaWN0ZWQvcmVzdHJpY3RlZC5jb21wb25lbnQnO1xuZXhwb3J0IHtVbnJlc29sdmVkQ29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9saWIvdW5yZXNvbHZlZC91bnJlc29sdmVkLmNvbXBvbmVudCc7XG5leHBvcnQge1dJREdFVF9SRVNPTFZFUl9HTE9CQUxfQ09ORklHIGFzIMm1YixXSURHRVRfUkVTT0xWRVJfU0NPUEVEX0NPTkZJRyBhcyDJtWN9IGZyb20gJy4vbGliL3dpZGdldC1yZXNvbHZlci5jb25zdGFudCc7XG5leHBvcnQge1dpZGdldFJlc29sdmVyRGlyZWN0aXZlIGFzIMm1YX0gZnJvbSAnLi9saWIvd2lkZ2V0LXJlc29sdmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQge05zV2lkZ2V0UmVzb2x2ZXIgYXMgybVkfSBmcm9tICcuL2xpYi93aWRnZXQtcmVzb2x2ZXIubW9kZWwnOyJdfQ==
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VuYmlyZC1jYi1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9yZXNvbHZlci9zcmMvc3VuYmlyZC1jYi1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==