@colijnit/corecomponents_v12 12.2.4 → 12.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-corecomponents_v12.umd.js +501 -134
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.d.ts +0 -2
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/colijnit-corecomponents_v12.js +1 -3
- package/esm2015/lib/components/base/base-input.component.js +52 -43
- package/esm2015/lib/components/button/button.component.js +27 -20
- package/esm2015/lib/components/filter-item/filter-item.component.js +10 -5
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +3 -1
- package/esm2015/lib/components/list-of-values/list-of-values.component.js +14 -6
- package/esm2015/lib/directives/screen-configuration/screen-configuration.directive.js +123 -33
- package/esm2015/lib/directives/screen-configuration/screen-configuration.module.js +4 -6
- package/esm2015/lib/service/base-module-screen-config.service.js +205 -0
- package/esm2015/lib/service/base-module.service.js +42 -0
- package/esm2015/public-api.js +4 -1
- package/fesm2015/colijnit-corecomponents_v12.js +453 -125
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/base/base-input.component.d.ts +5 -3
- package/lib/components/button/button.component.d.ts +11 -3
- package/lib/directives/screen-configuration/screen-configuration.directive.d.ts +25 -9
- package/lib/service/base-module-screen-config.service.d.ts +47 -0
- package/lib/service/base-module.service.d.ts +22 -0
- package/package.json +5 -4
- package/public-api.d.ts +3 -0
- package/esm2015/lib/directives/screen-configuration/screen-config-component-wrapper.component.js +0 -30
- package/lib/directives/screen-configuration/screen-config-component-wrapper.component.d.ts +0 -11
|
@@ -1,68 +1,158 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import {
|
|
3
|
-
import { InputBoolean } from
|
|
4
|
-
import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from
|
|
5
|
-
import {
|
|
2
|
+
import { Directive, ElementRef, Inject, Input, Renderer2 } from '@angular/core';
|
|
3
|
+
import { InputBoolean } from '../../core/decorator/input-boolean.decorator';
|
|
4
|
+
import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from '../../interfaces/screen-config-adapter-component-interface-name';
|
|
5
|
+
import { BaseModuleScreenConfigService } from '../../service/base-module-screen-config.service';
|
|
6
|
+
import { BaseModuleService } from '../../service/base-module.service';
|
|
6
7
|
// Directive to represents the marker of "screen config name ID's" of components within a module.
|
|
7
8
|
// Manipulates visibility, readonly and other dynamic states of an input element according to its db-fetched screen configuration object.
|
|
8
9
|
export class ScreenConfigurationDirective {
|
|
9
|
-
constructor(hostComponent,
|
|
10
|
+
constructor(hostComponent, _element,
|
|
11
|
+
// we must always have a config service to fetch config objects with
|
|
12
|
+
_configService, _renderer,
|
|
13
|
+
// to make host readonly when MODULE switches to readonly:
|
|
14
|
+
_moduleService) {
|
|
10
15
|
this.hostComponent = hostComponent;
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
16
|
+
this._element = _element;
|
|
17
|
+
this._configService = _configService;
|
|
18
|
+
this._renderer = _renderer;
|
|
19
|
+
this._moduleService = _moduleService;
|
|
20
|
+
this.screenConfigNativeElement = false;
|
|
13
21
|
this.noModuleService = false;
|
|
22
|
+
// feature toggle for devs so you can see the whole screen with all inputs etc by temporarily turning off the hiding effects of this directive on its host
|
|
23
|
+
this._isTurnedOff = false;
|
|
24
|
+
this._subs = [];
|
|
25
|
+
this._subs.push(this._configService.configSet.subscribe((configObjects) => {
|
|
26
|
+
if (configObjects && configObjects.length > 0) {
|
|
27
|
+
this._updateHost();
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
if (this._moduleService && !this.noModuleService) {
|
|
31
|
+
this._subs.push(this._moduleService.readonlyChange.subscribe((moduleInReadonlyState) => {
|
|
32
|
+
if (this.hostComponent) {
|
|
33
|
+
this.hostComponent.readonly = this.hostComponent.forceReadonly || moduleInReadonlyState;
|
|
34
|
+
}
|
|
35
|
+
}), this._moduleService.errorValidationReceived.subscribe((validationResult) => {
|
|
36
|
+
this._setErrorRedBackgroundAfterScrCfgValidate(validationResult);
|
|
37
|
+
}), this._moduleService.successfulUpdate.subscribe(() => {
|
|
38
|
+
if (this.hostComponent) {
|
|
39
|
+
this.hostComponent.redErrorBackground = false;
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
14
43
|
}
|
|
15
|
-
set screenConfigurationObject(
|
|
16
|
-
if (
|
|
17
|
-
this._screenConfigurationObject =
|
|
18
|
-
this._initWrapperComponent();
|
|
44
|
+
set screenConfigurationObject(value) {
|
|
45
|
+
if (value) {
|
|
46
|
+
this._screenConfigurationObject = value;
|
|
19
47
|
this._updateHost();
|
|
20
48
|
}
|
|
21
49
|
}
|
|
22
50
|
get screenConfigurationObject() {
|
|
23
51
|
return this._screenConfigurationObject;
|
|
24
52
|
}
|
|
53
|
+
ngOnInit() {
|
|
54
|
+
this._updateHost();
|
|
55
|
+
// this._updateHeaderStateOnHostComponent(true);
|
|
56
|
+
// show initial error message if any
|
|
57
|
+
if (!this.noModuleService) {
|
|
58
|
+
// this._setErrorRedBackgroundAfterScrCfgValidate(this._moduleService.lastError);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
25
61
|
ngOnDestroy() {
|
|
62
|
+
this._subs.forEach(sub => sub.unsubscribe());
|
|
63
|
+
if (this._isHeader) {
|
|
64
|
+
// this._doubleClickHeaders.handleCollapseableDestroy(this.screenConfigurationObject);
|
|
65
|
+
}
|
|
66
|
+
this._element = undefined;
|
|
26
67
|
this.hostComponent = undefined;
|
|
27
|
-
this._wrapperComponentInstance = undefined;
|
|
28
68
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.
|
|
69
|
+
// Sets host component visibility, required, readonly etc. if specified in backend screen config OR module readonly status.
|
|
70
|
+
_updateHost() {
|
|
71
|
+
if (this._mayUpdateHost() || this.screenConfigNativeElement) {
|
|
72
|
+
if (!this.screenConfigNativeElement) {
|
|
73
|
+
this.hostComponent.objectConfigName = this.screenConfigurationObject;
|
|
74
|
+
}
|
|
75
|
+
const myCfgObj = this._configService.getObjectConfigurationFor(this.screenConfigurationObject);
|
|
76
|
+
if (myCfgObj) {
|
|
77
|
+
this._setHostVisible(myCfgObj.immediatelyVisible());
|
|
78
|
+
// if (this.hostComponent instanceof GridColumnComponent) {
|
|
79
|
+
// this.hostComponent.rights = myCfgObj.rights;
|
|
80
|
+
// }
|
|
81
|
+
if (!this.screenConfigNativeElement) {
|
|
82
|
+
this.hostComponent.required = myCfgObj.isRequired();
|
|
83
|
+
this.hostComponent.readonly = this.hostComponent.forceReadonly || this._moduleInReadonlyMode() || myCfgObj.isReadonly();
|
|
84
|
+
this.hostComponent.decimals = myCfgObj.scale;
|
|
85
|
+
this.hostComponent.maxLength = myCfgObj.maxLength;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this._setHostVisible(false);
|
|
90
|
+
if (!this.screenConfigNativeElement) {
|
|
91
|
+
this.hostComponent.readonly = this._moduleInReadonlyMode();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Spawn error message tooltip onto our host comp, if any error was meant for the host (found by screenConfigurationObject);
|
|
98
|
+
* @param errorValidation A top-level full validation result, either from the backend or from some client-side validation error.
|
|
99
|
+
*/
|
|
100
|
+
_setErrorRedBackgroundAfterScrCfgValidate(errorValidation) {
|
|
101
|
+
if (this.hostComponent && errorValidation) {
|
|
102
|
+
const errorMessages = errorValidation.getAllErrorMessagesOfMyValidationFields();
|
|
103
|
+
for (let i = 0, len = errorMessages.length; i < len; i++) {
|
|
104
|
+
const errorMsg = errorMessages[i];
|
|
105
|
+
const configName = this.dataName ? this.dataName : this.screenConfigurationObject;
|
|
106
|
+
if (errorMsg.fieldId === configName && this._element /*&& this._properHost(errorMsg.boId)*/) {
|
|
107
|
+
this.hostComponent.redErrorBackground = true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
36
110
|
}
|
|
37
111
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
112
|
+
_moduleInReadonlyMode() {
|
|
113
|
+
return !this.noModuleService ? (this._moduleService ? this._moduleService.readonly : false) : false;
|
|
114
|
+
}
|
|
115
|
+
_mayUpdateHost() {
|
|
116
|
+
return !!this.hostComponent && !this._isTurnedOff && !!this.screenConfigurationObject;
|
|
117
|
+
}
|
|
118
|
+
_setHostVisible(visible) {
|
|
119
|
+
if (!this.screenConfigNativeElement) {
|
|
120
|
+
this.hostComponent.hidden = !visible;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
if (this._element && this._element.nativeElement) {
|
|
124
|
+
if (!visible) {
|
|
125
|
+
this._renderer.addClass(this._element.nativeElement, 'hidden');
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
this._renderer.removeClass(this._element.nativeElement, 'hidden');
|
|
129
|
+
}
|
|
47
130
|
}
|
|
48
131
|
}
|
|
49
132
|
}
|
|
50
133
|
}
|
|
51
134
|
ScreenConfigurationDirective.decorators = [
|
|
52
135
|
{ type: Directive, args: [{
|
|
53
|
-
selector:
|
|
136
|
+
selector: '[screenConfigurationObject]'
|
|
54
137
|
},] }
|
|
55
138
|
];
|
|
56
139
|
ScreenConfigurationDirective.ctorParameters = () => [
|
|
57
140
|
{ type: undefined, decorators: [{ type: Inject, args: [SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,] }] },
|
|
58
|
-
{ type:
|
|
59
|
-
{ type:
|
|
141
|
+
{ type: ElementRef },
|
|
142
|
+
{ type: BaseModuleScreenConfigService },
|
|
143
|
+
{ type: Renderer2 },
|
|
144
|
+
{ type: BaseModuleService }
|
|
60
145
|
];
|
|
61
146
|
ScreenConfigurationDirective.propDecorators = {
|
|
62
|
-
screenConfigurationObject: [{ type: Input }],
|
|
147
|
+
screenConfigurationObject: [{ type: Input, args: ['screenConfigurationObject',] }],
|
|
148
|
+
dataName: [{ type: Input }],
|
|
149
|
+
screenConfigNativeElement: [{ type: Input }],
|
|
63
150
|
noModuleService: [{ type: Input }]
|
|
64
151
|
};
|
|
152
|
+
__decorate([
|
|
153
|
+
InputBoolean()
|
|
154
|
+
], ScreenConfigurationDirective.prototype, "screenConfigNativeElement", void 0);
|
|
65
155
|
__decorate([
|
|
66
156
|
InputBoolean()
|
|
67
157
|
], ScreenConfigurationDirective.prototype, "noModuleService", void 0);
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLWNvbmZpZ3VyYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3NjcmVlbi1jb25maWd1cmF0aW9uL3NjcmVlbi1jb25maWd1cmF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBRTFFLE9BQU8sRUFBRSw4Q0FBOEMsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQ2pJLE9BQU8sRUFDTCw0QkFBNEIsRUFDN0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUVyRCxpR0FBaUc7QUFDakcseUlBQXlJO0FBSXpJLE1BQU0sT0FBTyw0QkFBNEI7SUFzQnZDLFlBRVMsYUFBMkMsRUFDMUMsaUJBQW1DLEVBQ25DLHlCQUFtRDtRQUZwRCxrQkFBYSxHQUFiLGFBQWEsQ0FBOEI7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBVHRELG9CQUFlLEdBQVksS0FBSyxDQUFDO0lBVXBDLENBQUM7SUF6QkwsSUFDVyx5QkFBeUIsQ0FBQyx5QkFBOEI7UUFDakUsSUFBSSx5QkFBeUIsRUFBRTtZQUM3QixJQUFJLENBQUMsMEJBQTBCLEdBQUcseUJBQXlCLENBQUM7WUFDNUQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELElBQVcseUJBQXlCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDO0lBQ3pDLENBQUM7SUFnQk0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDO0lBQzdDLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUNuQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx1QkFBdUIsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQzlHLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5RSxNQUFNLGlCQUFpQixHQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDbEksSUFBSSxDQUFDLHlCQUF5QixHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDdkQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7U0FDbkg7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDO1lBQ2hGLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzFFLHdIQUF3SDtnQkFDeEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDakssSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQztnQkFDbkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQzthQUN6RTtTQUNGO0lBQ0gsQ0FBQzs7O1lBMURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNkJBQTZCO2FBQ3hDOzs7NENBd0JJLE1BQU0sU0FBQyw4Q0FBOEM7WUFyQ3hELGdCQUFnQjtZQUpoQix3QkFBd0I7Ozt3Q0FvQnZCLEtBQUs7OEJBYUwsS0FBSzs7QUFFTjtJQURDLFlBQVksRUFBRTtxRUFDeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBEaXJlY3RpdmUsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LCBPbkRlc3Ryb3ksXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXIuY29tcG9uZW50LmludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLWNvbXBvbmVudC1pbnRlcmZhY2UtbmFtZVwiO1xyXG5pbXBvcnQge1xyXG4gIFNjcmVlbkNvbmZpZ0NvbXBvbmVudFdyYXBwZXJcclxufSBmcm9tIFwiLi9zY3JlZW4tY29uZmlnLWNvbXBvbmVudC13cmFwcGVyLmNvbXBvbmVudFwiO1xyXG5cclxuLy8gRGlyZWN0aXZlIHRvIHJlcHJlc2VudHMgdGhlIG1hcmtlciBvZiBcInNjcmVlbiBjb25maWcgbmFtZSBJRCdzXCIgb2YgY29tcG9uZW50cyB3aXRoaW4gYSBtb2R1bGUuXHJcbi8vIE1hbmlwdWxhdGVzIHZpc2liaWxpdHksIHJlYWRvbmx5IGFuZCBvdGhlciBkeW5hbWljIHN0YXRlcyBvZiBhbiBpbnB1dCBlbGVtZW50IGFjY29yZGluZyB0byBpdHMgZGItZmV0Y2hlZCBzY3JlZW4gY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcIltzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY3JlZW5Db25maWd1cmF0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Qoc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdDogYW55KSB7XHJcbiAgICBpZiAoc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCkge1xyXG4gICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0ID0gc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdDtcclxuICAgICAgdGhpcy5faW5pdFdyYXBwZXJDb21wb25lbnQoKTtcclxuICAgICAgdGhpcy5fdXBkYXRlSG9zdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0KCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgQElucHV0Qm9vbGVhbigpXHJcbiAgcHVibGljIG5vTW9kdWxlU2VydmljZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0OiBhbnk7XHJcbiAgcHJpdmF0ZSBfd3JhcHBlckNvbXBvbmVudEluc3RhbmNlOiBTY3JlZW5Db25maWdDb21wb25lbnRXcmFwcGVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSlcclxuICAgIHB1YmxpYyBob3N0Q29tcG9uZW50OiBTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ob3N0Q29tcG9uZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fd3JhcHBlckNvbXBvbmVudEluc3RhbmNlID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdFdyYXBwZXJDb21wb25lbnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3dyYXBwZXJDb21wb25lbnRJbnN0YW5jZSkge1xyXG4gICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFNjcmVlbkNvbmZpZ0NvbXBvbmVudFdyYXBwZXIpO1xyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcclxuICAgICAgY29uc3QgdmlzaWJsZU9uVmlld0luaXQ6IGJvb2xlYW4gPSAhIXRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCA/IHRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdC5pbW1lZGlhdGVseVZpc2libGUoKSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLl93cmFwcGVyQ29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIHRoaXMuX3dyYXBwZXJDb21wb25lbnRJbnN0YW5jZS5zZXRXcmFwcGVyQ29udGVudCh0aGlzLl92aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdmlzaWJsZU9uVmlld0luaXQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlSG9zdCgpOiB2b2lkIHtcclxuICAgIGlmICghIXRoaXMuaG9zdENvbXBvbmVudCAmJiAhIXRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QpIHtcclxuICAgICAgdGhpcy5ob3N0Q29tcG9uZW50Lm9iamVjdENvbmZpZ05hbWUgPSB0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QuY29uZmlnTmFtZTtcclxuICAgICAgaWYgKHRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCkge1xyXG4gICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5yZXF1aXJlZCA9IHRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdC5pc1JlcXVpcmVkKCk7XHJcbiAgICAgICAgLy8gcmVhZG9ubHkgYmFzZWQgb24gZm9yY2VkIGJvb2xlYW4sIGJhc2VkIG9uIHJpZ2h0cyB2YWx1ZSBvciBiYXNlZCBvbiB2YXJpYWJsZSB2YWx1ZSBhZmZlY3RlZCBieSBtb2R1bGUgcmVhZCBvbmx5IHN0YXRlXHJcbiAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LnJlYWRvbmx5ID0gdGhpcy5ob3N0Q29tcG9uZW50LmZvcmNlUmVhZG9ubHkgfHwgdGhpcy5zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0LmlzUmVhZG9ubHkoKSB8fCB0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QudmFyaWFibGVSZWFkT25seTtcclxuICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQuZGVjaW1hbHMgPSB0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Quc2NhbGU7XHJcbiAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50Lm1heExlbmd0aCA9IHRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdC5tYXhMZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLWNvbmZpZ3VyYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3NjcmVlbi1jb25maWd1cmF0aW9uL3NjcmVlbi1jb25maWd1cmF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBRS9ILE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBS3BFLGlHQUFpRztBQUNqRyx5SUFBeUk7QUFJekksTUFBTSxPQUFPLDRCQUE0QjtJQWlDckMsWUFFVyxhQUEyQyxFQUMxQyxRQUFvQjtJQUM1QixvRUFBb0U7SUFDNUQsY0FBNkMsRUFDN0MsU0FBb0I7SUFDNUIsMERBQTBEO0lBQ2xELGNBQWtDO1FBTm5DLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUMxQyxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLG1CQUFjLEdBQWQsY0FBYyxDQUErQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRXBCLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQXZCdkMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBSTNDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBTXhDLDBKQUEwSjtRQUNsSixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU5QixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQVkvQixJQUFJLENBQUMs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O1lBTTFELGlCQUFpQjs7O3dDQVdwQixLQUFLLFNBQUMsMkJBQTJCO3VCQVlqQyxLQUFLO3dDQUdMLEtBQUs7OEJBSUwsS0FBSzs7QUFGTjtJQURDLFlBQVksRUFBRTsrRUFDbUM7QUFJbEQ7SUFEQyxZQUFZLEVBQUU7cUVBQ3lCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yJztcclxuaW1wb3J0IHtTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjcmVlbi1jb25maWctYWRhcHRlci5jb21wb25lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjcmVlbi1jb25maWctYWRhcHRlci1jb21wb25lbnQtaW50ZXJmYWNlLW5hbWUnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvYmFzZS1tb2R1bGUtc2NyZWVuLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtCYXNlTW9kdWxlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9iYXNlLW1vZHVsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uUmVzdWx0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdCc7XHJcbmltcG9ydCB7VmFsaWRhdGlvbk1lc3NhZ2V9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7T2JqZWN0Q29uZmlndXJhdGlvbn0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvb2JqZWN0LWNvbmZpZ3VyYXRpb24nO1xyXG5cclxuLy8gRGlyZWN0aXZlIHRvIHJlcHJlc2VudHMgdGhlIG1hcmtlciBvZiBcInNjcmVlbiBjb25maWcgbmFtZSBJRCdzXCIgb2YgY29tcG9uZW50cyB3aXRoaW4gYSBtb2R1bGUuXHJcbi8vIE1hbmlwdWxhdGVzIHZpc2liaWxpdHksIHJlYWRvbmx5IGFuZCBvdGhlciBkeW5hbWljIHN0YXRlcyBvZiBhbiBpbnB1dCBlbGVtZW50IGFjY29yZGluZyB0byBpdHMgZGItZmV0Y2hlZCBzY3JlZW4gY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY3JlZW5Db25maWd1cmF0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgnc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCcpXHJcbiAgICBwdWJsaWMgc2V0IHNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUhvc3QoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkYXRhTmFtZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIG5vTW9kdWxlU2VydmljZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX2lzSGVhZGVyOiBib29sZWFuO1xyXG5cclxuICAgIHByaXZhdGUgX3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Q6IHN0cmluZztcclxuXHJcbiAgICAvLyBmZWF0dXJlIHRvZ2dsZSBmb3IgZGV2cyBzbyB5b3UgY2FuIHNlZSB0aGUgd2hvbGUgc2NyZWVuIHdpdGggYWxsIGlucHV0cyBldGMgYnkgdGVtcG9yYXJpbHkgdHVybmluZyBvZmYgdGhlIGhpZGluZyBlZmZlY3RzIG9mIHRoaXMgZGlyZWN0aXZlIG9uIGl0cyBob3N0XHJcbiAgICBwcml2YXRlIF9pc1R1cm5lZE9mZjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FKVxyXG4gICAgICAgIHB1YmxpYyBob3N0Q29tcG9uZW50OiBTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgLy8gd2UgbXVzdCBhbHdheXMgaGF2ZSBhIGNvbmZpZyBzZXJ2aWNlIHRvIGZldGNoIGNvbmZpZyBvYmplY3RzIHdpdGhcclxuICAgICAgICBwcml2YXRlIF9jb25maWdTZXJ2aWNlOiBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIC8vIHRvIG1ha2UgaG9zdCByZWFkb25seSB3aGVuIE1PRFVMRSBzd2l0Y2hlcyB0byByZWFkb25seTpcclxuICAgICAgICBwcml2YXRlIF9tb2R1bGVTZXJ2aWNlPzogQmFzZU1vZHVsZVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX3N1YnMucHVzaCh0aGlzLl9jb25maWdTZXJ2aWNlLmNvbmZpZ1NldC5zdWJzY3JpYmUoKGNvbmZpZ09iamVjdHM6IHN0cmluZ1tdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb25maWdPYmplY3RzICYmIGNvbmZpZ09iamVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlSG9zdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fbW9kdWxlU2VydmljZSAmJiAhdGhpcy5ub01vZHVsZVNlcnZpY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kdWxlU2VydmljZS5yZWFkb25seUNoYW5nZS5zdWJzY3JpYmUoKG1vZHVsZUluUmVhZG9ubHlTdGF0ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhvc3RDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LnJlYWRvbmx5ID0gdGhpcy5ob3N0Q29tcG9uZW50LmZvcmNlUmVhZG9ubHkgfHwgbW9kdWxlSW5SZWFkb25seVN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kdWxlU2VydmljZS5lcnJvclZhbGlkYXRpb25SZWNlaXZlZC5zdWJzY3JpYmUoKHZhbGlkYXRpb25SZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEVycm9yUmVkQmFja2dyb3VuZEFmdGVyU2NyQ2ZnVmFsaWRhdGUodmFsaWRhdGlvblJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHRoaXMuX21vZHVsZVNlcnZpY2Uuc3VjY2Vzc2Z1bFVwZGF0ZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhvc3RDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LnJlZEVycm9yQmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUhvc3QoKTtcclxuXHJcbiAgICAgICAgLy8gdGhpcy5fdXBkYXRlSGVhZGVyU3RhdGVPbkhvc3RDb21wb25lbnQodHJ1ZSk7XHJcblxyXG4gICAgICAgIC8vIHNob3cgaW5pdGlhbCBlcnJvciBtZXNzYWdlIGlmIGFueVxyXG4gICAgICAgIGlmICghdGhpcy5ub01vZHVsZVNlcnZpY2UpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5fc2V0RXJyb3JSZWRCYWNrZ3JvdW5kQWZ0ZXJTY3JDZmdWYWxpZGF0ZSh0aGlzLl9tb2R1bGVTZXJ2aWNlLmxhc3RFcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgIGlmICh0aGlzLl9pc0hlYWRlcikge1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9kb3VibGVDbGlja0hlYWRlcnMuaGFuZGxlQ29sbGFwc2VhYmxlRGVzdHJveSh0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9lbGVtZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuaG9zdENvbXBvbmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXRzIGhvc3QgY29tcG9uZW50IHZpc2liaWxpdHksIHJlcXVpcmVkLCByZWFkb25seSBldGMuIGlmIHNwZWNpZmllZCBpbiBiYWNrZW5kIHNjcmVlbiBjb25maWcgT1IgbW9kdWxlIHJlYWRvbmx5IHN0YXR1cy5cclxuICAgIHByaXZhdGUgX3VwZGF0ZUhvc3QoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX21heVVwZGF0ZUhvc3QoKSB8fCB0aGlzLnNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5vYmplY3RDb25maWdOYW1lID0gdGhpcy5zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IG15Q2ZnT2JqOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fY29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCk7XHJcbiAgICAgICAgICAgIGlmIChteUNmZ09iaikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0SG9zdFZpc2libGUobXlDZmdPYmouaW1tZWRpYXRlbHlWaXNpYmxlKCkpO1xyXG4gICAgICAgICAgICAgICAgLy8gaWYgKHRoaXMuaG9zdENvbXBvbmVudCBpbnN0YW5jZW9mIEdyaWRDb2x1bW5Db21wb25lbnQpIHtcclxuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5ob3N0Q29tcG9uZW50LnJpZ2h0cyA9IG15Q2ZnT2JqLnJpZ2h0cztcclxuICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zY3JlZW5Db25maWdOYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LnJlcXVpcmVkID0gbXlDZmdPYmouaXNSZXF1aXJlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5yZWFkb25seSA9IHRoaXMuaG9zdENvbXBvbmVudC5mb3JjZVJlYWRvbmx5IHx8IHRoaXMuX21vZHVsZUluUmVhZG9ubHlNb2RlKCkgfHwgbXlDZmdPYmouaXNSZWFkb25seSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5kZWNpbWFscyA9IG15Q2ZnT2JqLnNjYWxlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5tYXhMZW5ndGggPSBteUNmZ09iai5tYXhMZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRIb3N0VmlzaWJsZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5yZWFkb25seSA9IHRoaXMuX21vZHVsZUluUmVhZG9ubHlNb2RlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGF3biBlcnJvciBtZXNzYWdlIHRvb2x0aXAgb250byBvdXIgaG9zdCBjb21wLCBpZiBhbnkgZXJyb3Igd2FzIG1lYW50IGZvciB0aGUgaG9zdCAoZm91bmQgYnkgc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCk7XHJcbiAgICAgKiBAcGFyYW0gZXJyb3JWYWxpZGF0aW9uIEEgdG9wLWxldmVsIGZ1bGwgdmFsaWRhdGlvbiByZXN1bHQsIGVpdGhlciBmcm9tIHRoZSBiYWNrZW5kIG9yIGZyb20gc29tZSBjbGllbnQtc2lkZSB2YWxpZGF0aW9uIGVycm9yLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zZXRFcnJvclJlZEJhY2tncm91bmRBZnRlclNjckNmZ1ZhbGlkYXRlKGVycm9yVmFsaWRhdGlvbjogVmFsaWRhdGlvblJlc3VsdCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhvc3RDb21wb25lbnQgJiYgZXJyb3JWYWxpZGF0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXM6IFZhbGlkYXRpb25NZXNzYWdlW10gPSBlcnJvclZhbGlkYXRpb24uZ2V0QWxsRXJyb3JNZXNzYWdlc09mTXlWYWxpZGF0aW9uRmllbGRzKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gZXJyb3JNZXNzYWdlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNc2c6IFZhbGlkYXRpb25NZXNzYWdlID0gZXJyb3JNZXNzYWdlc1tpXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZ05hbWU6IHN0cmluZyA9IHRoaXMuZGF0YU5hbWUgPyB0aGlzLmRhdGFOYW1lIDogdGhpcy5zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0O1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yTXNnLmZpZWxkSWQgPT09IGNvbmZpZ05hbWUgJiYgdGhpcy5fZWxlbWVudCAvKiYmIHRoaXMuX3Byb3Blckhvc3QoZXJyb3JNc2cuYm9JZCkqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5yZWRFcnJvckJhY2tncm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX21vZHVsZUluUmVhZG9ubHlNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5ub01vZHVsZVNlcnZpY2UgPyAodGhpcy5fbW9kdWxlU2VydmljZSA/IHRoaXMuX21vZHVsZVNlcnZpY2UucmVhZG9ubHkgOiBmYWxzZSkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9tYXlVcGRhdGVIb3N0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuaG9zdENvbXBvbmVudCAmJiAhdGhpcy5faXNUdXJuZWRPZmYgJiYgISF0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0SG9zdFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5zY3JlZW5Db25maWdOYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5oaWRkZW4gPSAhdmlzaWJsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZWxlbWVudCAmJiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdmlzaWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hpZGRlbicpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { ScreenConfigurationDirective } from
|
|
3
|
-
import { CommonModule } from
|
|
4
|
-
import { ScreenConfigComponentWrapper } from "./screen-config-component-wrapper.component";
|
|
2
|
+
import { ScreenConfigurationDirective } from './screen-configuration.directive';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
5
4
|
export class ScreenConfigurationModule {
|
|
6
5
|
}
|
|
7
6
|
ScreenConfigurationModule.decorators = [
|
|
@@ -10,12 +9,11 @@ ScreenConfigurationModule.decorators = [
|
|
|
10
9
|
CommonModule
|
|
11
10
|
],
|
|
12
11
|
declarations: [
|
|
13
|
-
ScreenConfigurationDirective
|
|
14
|
-
ScreenConfigComponentWrapper
|
|
12
|
+
ScreenConfigurationDirective
|
|
15
13
|
],
|
|
16
14
|
exports: [
|
|
17
15
|
ScreenConfigurationDirective,
|
|
18
16
|
]
|
|
19
17
|
},] }
|
|
20
18
|
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLWNvbmZpZ3VyYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3NjcmVlbi1jb25maWd1cmF0aW9uL3NjcmVlbi1jb25maWd1cmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQWE3QyxNQUFNLE9BQU8seUJBQXlCOzs7WUFYckMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWiw0QkFBNEI7aUJBQzdCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCw0QkFBNEI7aUJBQzdCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2NyZWVuQ29uZmlndXJhdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9zY3JlZW4tY29uZmlndXJhdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2NyZWVuQ29uZmlndXJhdGlvbkRpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2NyZWVuQ29uZmlndXJhdGlvbkRpcmVjdGl2ZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTY3JlZW5Db25maWd1cmF0aW9uTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
// Base screen configuration service for one "screen module", e.g. 'Crm'. Db-loads, stores and and interprets ObjectConfiguration config objects.
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
|
+
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { ArrayUtils } from '@colijnit/ioneconnector/build/utils/array-utils';
|
|
6
|
+
import { DEFAULT_GET_OBJECT_CONFIGURATION_PARAMS } from '@colijnit/ioneconnector/build/model/default-get-object-configurations-params';
|
|
7
|
+
import { ObjectConfiguration } from '@colijnit/ioneconnector/build/model/object-configuration';
|
|
8
|
+
export class BaseModuleScreenConfigService {
|
|
9
|
+
constructor() {
|
|
10
|
+
// emits the params of the loaded config, each time when a new config was loaded
|
|
11
|
+
this.configSet = new BehaviorSubject([]);
|
|
12
|
+
this._configObjects = [];
|
|
13
|
+
// key: configName, value: the ObjectConfiguration with that configName. For faster ObjectConfiguration lookups, given a configName string (vs. array).
|
|
14
|
+
this._objectConfigsMap = new Map();
|
|
15
|
+
}
|
|
16
|
+
get configObjects() {
|
|
17
|
+
return this._configObjects;
|
|
18
|
+
}
|
|
19
|
+
// POST: this.configObjects are loaded. Returns the loaded config objects.
|
|
20
|
+
loadConfig(params = DEFAULT_GET_OBJECT_CONFIGURATION_PARAMS, insertRights) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const configObjects = yield this.loadConfigForModule(params, insertRights);
|
|
23
|
+
this._configObjects = configObjects;
|
|
24
|
+
if (configObjects && Array.isArray(configObjects)) {
|
|
25
|
+
this._buildScreenConfigMap();
|
|
26
|
+
this.configSet.next(params);
|
|
27
|
+
}
|
|
28
|
+
return this._configObjects;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
lazyLoadConfig() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
if (!this.configObjects.length) {
|
|
34
|
+
yield this.loadConfig();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
isActiveFieldValidationObject(configObject) {
|
|
39
|
+
if (configObject) {
|
|
40
|
+
return configObject.isActiveFieldValidationObject() && !this.isDataNameHiddenByAnyOfItsParentRubrics(configObject.dataName);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
isBoValid(bo) {
|
|
44
|
+
if (this.controlValidityByBoMap && !ArrayUtils.IsEmptyArray(this.controlValidityByBoMap)) {
|
|
45
|
+
const mapEntry = this.controlValidityByBoMap.find(value => value.bo === bo && value.valid === false);
|
|
46
|
+
if (mapEntry) {
|
|
47
|
+
return mapEntry.valid;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
getObjectConfigurationFor(configName) {
|
|
53
|
+
const configuration = this._objectConfigsMap.get(configName);
|
|
54
|
+
// If configuration not found by configname, try by data name
|
|
55
|
+
if (!!this._objectConfigsMap.size && !configuration && configName) {
|
|
56
|
+
const configNameByDataName = this._getConfigNameByDataName(configName);
|
|
57
|
+
if (this._objectConfigsMap.get(configNameByDataName)) {
|
|
58
|
+
return this._objectConfigsMap.get(configNameByDataName);
|
|
59
|
+
} /*else if (!environment.production) {
|
|
60
|
+
console.warn("No configuration object was found by the name of: ", configName, " or dataname ", configNameByDataName);
|
|
61
|
+
}*/
|
|
62
|
+
}
|
|
63
|
+
return configuration;
|
|
64
|
+
}
|
|
65
|
+
setObjectConfigurationFor(configName, configObject) {
|
|
66
|
+
this._objectConfigsMap.set(configName, configObject);
|
|
67
|
+
}
|
|
68
|
+
// Whether the user may read the component that's associated with given config object (visibility).
|
|
69
|
+
mayRead(configName) {
|
|
70
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
71
|
+
return objectConfig ? objectConfig.mayRead() : false;
|
|
72
|
+
}
|
|
73
|
+
isReadonly(configName) {
|
|
74
|
+
return !this.mayWrite(configName);
|
|
75
|
+
}
|
|
76
|
+
// Whether the user may write onto the component that's associated with given config object.
|
|
77
|
+
mayWrite(configName) {
|
|
78
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
79
|
+
return objectConfig ? objectConfig.mayWrite() : false;
|
|
80
|
+
}
|
|
81
|
+
// Whether the component associated with given config object should, from the start, be visible to the user.
|
|
82
|
+
immediatelyVisible(configName) {
|
|
83
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
84
|
+
return objectConfig ? objectConfig.immediatelyVisible() : false;
|
|
85
|
+
}
|
|
86
|
+
// Whether the component associated with given config object should, from the start, be visible to the user.
|
|
87
|
+
immediatelyHidden(configName) {
|
|
88
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
89
|
+
return objectConfig ? objectConfig.immediatelyHidden() : false;
|
|
90
|
+
}
|
|
91
|
+
noRights(configName) {
|
|
92
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
93
|
+
return objectConfig ? objectConfig.noRights() : false;
|
|
94
|
+
}
|
|
95
|
+
isHidden(configName) {
|
|
96
|
+
return !this.immediatelyVisible(configName);
|
|
97
|
+
}
|
|
98
|
+
isRequired(configName) {
|
|
99
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
100
|
+
return objectConfig ? !objectConfig.nullable : false;
|
|
101
|
+
}
|
|
102
|
+
getDefaultValue(configName) {
|
|
103
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
104
|
+
return objectConfig ? objectConfig.getDefaultValue() : undefined;
|
|
105
|
+
}
|
|
106
|
+
getDefaultStringValue(configName) {
|
|
107
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
108
|
+
return objectConfig ? objectConfig.getDefaultStringValue() : undefined;
|
|
109
|
+
}
|
|
110
|
+
getDefaultNumberValue(configName) {
|
|
111
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
112
|
+
return objectConfig ? objectConfig.getDefaultNumberValue() : undefined;
|
|
113
|
+
}
|
|
114
|
+
getMaxLength(configName) {
|
|
115
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
116
|
+
return objectConfig ? objectConfig.maxLength : undefined;
|
|
117
|
+
}
|
|
118
|
+
getDecimals(configName) {
|
|
119
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
120
|
+
return objectConfig ? objectConfig.scale : undefined;
|
|
121
|
+
}
|
|
122
|
+
hasConfigObjects() {
|
|
123
|
+
return this._configObjects && this._configObjects.length > 0 && this._objectConfigsMap.size > 0;
|
|
124
|
+
}
|
|
125
|
+
isKind(configName, kind) {
|
|
126
|
+
const objectConfig = this._objectConfigsMap.get(configName);
|
|
127
|
+
return objectConfig ? objectConfig.isKind(kind) : false;
|
|
128
|
+
}
|
|
129
|
+
isDataNameHiddenByItselfOrAnyOfItsParentRubrics(dataName) {
|
|
130
|
+
const isHiddenItself = ArrayUtils.ContainsAnElementFoundBy(this._configObjects, ((item) => {
|
|
131
|
+
return item.dataName === dataName && item.isHidden();
|
|
132
|
+
}));
|
|
133
|
+
if (isHiddenItself) {
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
return this.isDataNameHiddenByAnyOfItsParentRubrics(dataName);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
isDataNameHiddenByAnyOfItsParentRubrics(dataName) {
|
|
141
|
+
// if (this._hardCodedConfigStructure) {
|
|
142
|
+
// const parentConfigNames: string[] = this._hardCodedConfigStructure.getParentConfigNamesOfFieldConfigName(this._getConfigNameByDataName(dataName));
|
|
143
|
+
// if (parentConfigNames) {
|
|
144
|
+
// for (let i: number = 0, len: number = parentConfigNames.length; i < len; i++) {
|
|
145
|
+
// const parentConfigObj: ObjectConfiguration = this.getObjectConfigurationFor(parentConfigNames[i]);
|
|
146
|
+
// if (parentConfigObj && parentConfigObj.isHidden()) {
|
|
147
|
+
// return true;
|
|
148
|
+
// }
|
|
149
|
+
// }
|
|
150
|
+
// }
|
|
151
|
+
// return false;
|
|
152
|
+
// }
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
// return the first found config name for given data name
|
|
156
|
+
_getConfigNameByDataName(dataName) {
|
|
157
|
+
const itsConfigObject = this._getConfigObjectByDataName(dataName);
|
|
158
|
+
if (itsConfigObject) {
|
|
159
|
+
return itsConfigObject.configName;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// return the first found config object with given data name
|
|
163
|
+
_getConfigObjectByDataName(dataName) {
|
|
164
|
+
return ArrayUtils.Find(this._configObjects, (cfgObj) => {
|
|
165
|
+
return cfgObj.dataName === dataName;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
// PRE: this.configObjects is loaded. POST: this._objectConfigsMap contains the latest map of configName -> to -> ObjectConfiguration for a live screen module.
|
|
169
|
+
_buildScreenConfigMap() {
|
|
170
|
+
this._objectConfigsMap.clear();
|
|
171
|
+
this.configObjects.forEach(item => this._objectConfigsMap.set(item.configName, item));
|
|
172
|
+
}
|
|
173
|
+
setScreenConfigurationObjectsReadOnly(value) {
|
|
174
|
+
this.configObjects.forEach((object) => {
|
|
175
|
+
const copy = Object.assign(new ObjectConfiguration(), object);
|
|
176
|
+
copy.variableReadOnly = value;
|
|
177
|
+
this.setObjectConfigurationFor(object.configName, copy);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
setScreenConfigurationObjectsRedErrorBackground(errorValidation, setAllFalse = false) {
|
|
181
|
+
if (setAllFalse) {
|
|
182
|
+
this.configObjects.forEach((object) => {
|
|
183
|
+
const copy = Object.assign(new ObjectConfiguration(), object);
|
|
184
|
+
copy.redErrorBackground = false;
|
|
185
|
+
this.setObjectConfigurationFor(object.configName, copy);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
else if (errorValidation) {
|
|
189
|
+
const errorMessages = errorValidation.getAllErrorMessagesOfMyValidationFields();
|
|
190
|
+
for (let i = 0, len = errorMessages.length; i < len; i++) {
|
|
191
|
+
const errorMsg = errorMessages[i];
|
|
192
|
+
const configObject = this.configObjects.find(object => object.configName === errorMsg.fieldId);
|
|
193
|
+
if (configObject) {
|
|
194
|
+
const copy = Object.assign(new ObjectConfiguration(), configObject);
|
|
195
|
+
copy.redErrorBackground = false;
|
|
196
|
+
this.setObjectConfigurationFor(configObject.configName, copy);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
BaseModuleScreenConfigService.decorators = [
|
|
203
|
+
{ type: Injectable }
|
|
204
|
+
];
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2R1bGUtc2NyZWVuLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlL2Jhc2UtbW9kdWxlLXNjcmVlbi1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUpBQWlKO0FBQ2pKLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFNM0UsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDckksT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFHN0YsTUFBTSxPQUFnQiw2QkFBNkI7SUFEbkQ7UUFLSSxnRkFBZ0Y7UUFDaEUsY0FBUyxHQUE4QixJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQVFqRixtQkFBYyxHQUEwQixFQUFFLENBQUM7UUFFbkQsdUpBQXVKO1FBQy9JLHNCQUFpQixHQUFxQyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztJQW1OekcsQ0FBQztJQTVORyxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFTRCwwRUFBMEU7SUFDN0QsVUFBVSxDQUFDLFNBQW1CLHVDQUF1QyxFQUFFLFlBQXNCOztZQUN0RyxNQUFNLGFBQWEsR0FBMEIsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2xHLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLElBQUksYUFBYSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQy9DLElB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QVUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU0sSUFBSSxlQUFlLEVBQUU7WUFDeEIsTUFBTSxhQUFhLEdBQXdCLGVBQWUsQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDO1lBQ3JHLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RFLE1BQU0sUUFBUSxHQUFzQixhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sWUFBWSxHQUF3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNwSCxJQUFJLFlBQVksRUFBRTtvQkFDZCxNQUFNLElBQUksR0FBd0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLG1CQUFtQixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQ3pGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7b0JBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNqRTthQUNKO1NBQ0o7SUFDTCxDQUFDOzs7WUFuT0osVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEJhc2Ugc2NyZWVuIGNvbmZpZ3VyYXRpb24gc2VydmljZSBmb3Igb25lIFwic2NyZWVuIG1vZHVsZVwiLCBlLmcuICdDcm0nLiBEYi1sb2Fkcywgc3RvcmVzIGFuZCBhbmQgaW50ZXJwcmV0cyBPYmplY3RDb25maWd1cmF0aW9uIGNvbmZpZyBvYmplY3RzLlxyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdXRpbHMvYXJyYXktdXRpbHMnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3QnO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9uRGVmYXVsdFZhbHVlVHlwZX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdHlwZS9vYmplY3QtY29uZmlndXJhdGlvbi1kZWZhdWx0LXZhbHVlLXR5cGUnO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ0tpbmR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL2VudW0vb2JqZWN0LWNvbmZpZy1raW5kJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uTWVzc2FnZX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1tZXNzYWdlJztcclxuaW1wb3J0IHtERUZBVUxUX0dFVF9PQkpFQ1RfQ09ORklHVVJBVElPTl9QQVJBTVN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL2RlZmF1bHQtZ2V0LW9iamVjdC1jb25maWd1cmF0aW9ucy1wYXJhbXMnO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ3VyYXRpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlIHtcclxuICAgIC8vIG1hbnVhbGx5IGdpdmVuIG1vZHVsZSBuYW1lXHJcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2NyZWVuTW9kdWxlTmFtZTogc3RyaW5nO1xyXG5cclxuICAgIC8vIGVtaXRzIHRoZSBwYXJhbXMgb2YgdGhlIGxvYWRlZCBjb25maWcsIGVhY2ggdGltZSB3aGVuIGEgbmV3IGNvbmZpZyB3YXMgbG9hZGVkXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnU2V0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgY29uZmlnT2JqZWN0cygpOiBPYmplY3RDb25maWd1cmF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdPYmplY3RzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb250cm9sVmFsaWRpdHlCeUJvTWFwOiB7Ym86IEJ1c2luZXNzT2JqZWN0LCBjb250cm9sS2V5OiBzdHJpbmcsIHZhbGlkOiBib29sZWFufVtdO1xyXG5cclxuICAgIHByaXZhdGUgX2NvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSA9IFtdO1xyXG5cclxuICAgIC8vIGtleTogY29uZmlnTmFtZSwgdmFsdWU6IHRoZSBPYmplY3RDb25maWd1cmF0aW9uIHdpdGggdGhhdCBjb25maWdOYW1lLiBGb3IgZmFzdGVyIE9iamVjdENvbmZpZ3VyYXRpb24gbG9va3VwcywgZ2l2ZW4gYSBjb25maWdOYW1lIHN0cmluZyAodnMuIGFycmF5KS5cclxuICAgIHByaXZhdGUgX29iamVjdENvbmZpZ3NNYXA6IE1hcDxzdHJpbmcsIE9iamVjdENvbmZpZ3VyYXRpb24+ID0gbmV3IE1hcDxzdHJpbmcsIE9iamVjdENvbmZpZ3VyYXRpb24+KCk7XHJcblxyXG4gICAgLy8gUE9TVDogdGhpcy5jb25maWdPYmplY3RzIGFyZSBsb2FkZWQuIFJldHVybnMgdGhlIGxvYWRlZCBjb25maWcgb2JqZWN0cy5cclxuICAgIHB1YmxpYyBhc3luYyBsb2FkQ29uZmlnKHBhcmFtczogc3RyaW5nW10gPSBERUZBVUxUX0dFVF9PQkpFQ1RfQ09ORklHVVJBVElPTl9QQVJBTVMsIGluc2VydFJpZ2h0cz86IGJvb2xlYW4pOiBQcm9taXNlPE9iamVjdENvbmZpZ3VyYXRpb25bXT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSA9IGF3YWl0IHRoaXMubG9hZENvbmZpZ0Zvck1vZHVsZShwYXJhbXMsIGluc2VydFJpZ2h0cyk7XHJcbiAgICAgICAgdGhpcy5fY29uZmlnT2JqZWN0cyA9IGNvbmZpZ09iamVjdHM7XHJcbiAgICAgICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgQXJyYXkuaXNBcnJheShjb25maWdPYmplY3RzKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9idWlsZFNjcmVlbkNvbmZpZ01hcCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1NldC5uZXh0KHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdPYmplY3RzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBsYXp5TG9hZENvbmZpZygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnT2JqZWN0cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkQ29uZmlnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0FjdGl2ZUZpZWxkVmFsaWRhdGlvbk9iamVjdChjb25maWdPYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoY29uZmlnT2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb25maWdPYmplY3QuaXNBY3RpdmVGaWVsZFZhbGlkYXRpb25PYmplY3QoKSAmJiAhdGhpcy5pc0RhdGFOYW1lSGlkZGVuQnlBbnlPZkl0c1BhcmVudFJ1YnJpY3MoY29uZmlnT2JqZWN0LmRhdGFOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQm9WYWxpZChibzogQnVzaW5lc3NPYmplY3QpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sVmFsaWRpdHlCeUJvTWFwICYmICFBcnJheVV0aWxzLklzRW1wdHlBcnJheSh0aGlzLmNvbnRyb2xWYWxpZGl0eUJ5Qm9NYXApKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcEVudHJ5OiB7Ym86IEJ1c2luZXNzT2JqZWN0LCBjb250cm9sS2V5OiBzdHJpbmcsIHZhbGlkOiBib29sZWFufSA9IHRoaXMuY29udHJvbFZhbGlkaXR5QnlCb01hcC5maW5kKHZhbHVlID0+IHZhbHVlLmJvID09PSBibyAmJiB2YWx1ZS52YWxpZCA9PT0gZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAobWFwRW50cnkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBtYXBFbnRyeS52YWxpZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihjb25maWdOYW1lOiBzdHJpbmcpOiBPYmplY3RDb25maWd1cmF0aW9uIHtcclxuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcblxyXG4gICAgICAgIC8vIElmIGNvbmZpZ3VyYXRpb24gbm90IGZvdW5kIGJ5IGNvbmZpZ25hbWUsIHRyeSBieSBkYXRhIG5hbWVcclxuICAgICAgICBpZiAoISF0aGlzLl9vYmplY3RDb25maWdzTWFwLnNpemUgJiYgIWNvbmZpZ3VyYXRpb24gJiYgY29uZmlnTmFtZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjb25maWdOYW1lQnlEYXRhTmFtZTogc3RyaW5nID0gdGhpcy5fZ2V0Q29uZmlnTmFtZUJ5RGF0YU5hbWUoY29uZmlnTmFtZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZUJ5RGF0YU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZUJ5RGF0YU5hbWUpO1xyXG4gICAgICAgICAgICB9IC8qZWxzZSBpZiAoIWVudmlyb25tZW50LnByb2R1Y3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk5vIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHdhcyBmb3VuZCBieSB0aGUgbmFtZSBvZjogXCIsIGNvbmZpZ05hbWUsIFwiIG9yIGRhdGFuYW1lIFwiLCBjb25maWdOYW1lQnlEYXRhTmFtZSk7XHJcbiAgICAgICAgICAgIH0qL1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IoY29uZmlnTmFtZTogc3RyaW5nLCBjb25maWdPYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vYmplY3RDb25maWdzTWFwLnNldChjb25maWdOYW1lLCBjb25maWdPYmplY3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgbWF5IHJlYWQgdGhlIGNvbXBvbmVudCB0aGF0J3MgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIGNvbmZpZyBvYmplY3QgKHZpc2liaWxpdHkpLlxyXG4gICAgcHVibGljIG1heVJlYWQoY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5tYXlSZWFkKCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNSZWFkb25seShjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMubWF5V3JpdGUoY29uZmlnTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gV2hldGhlciB0aGUgdXNlciBtYXkgd3JpdGUgb250byB0aGUgY29tcG9uZW50IHRoYXQncyBhc3NvY2lhdGVkIHdpdGggZ2l2ZW4gY29uZmlnIG9iamVjdC5cclxuICAgIHB1YmxpYyBtYXlXcml0ZShjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gb2JqZWN0Q29uZmlnLm1heVdyaXRlKCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBXaGV0aGVyIHRoZSBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIGNvbmZpZyBvYmplY3Qgc2hvdWxkLCBmcm9tIHRoZSBzdGFydCwgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cclxuICAgIHB1YmxpYyBpbW1lZGlhdGVseVZpc2libGUoY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5pbW1lZGlhdGVseVZpc2libGUoKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBhc3NvY2lhdGVkIHdpdGggZ2l2ZW4gY29uZmlnIG9iamVjdCBzaG91bGQsIGZyb20gdGhlIHN0YXJ0LCBiZSB2aXNpYmxlIHRvIHRoZSB1c2VyLlxyXG4gICAgcHVibGljIGltbWVkaWF0ZWx5SGlkZGVuKGNvbmZpZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuaW1tZWRpYXRlbHlIaWRkZW4oKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBub1JpZ2h0cyhjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gb2JqZWN0Q29uZmlnLm5vUmlnaHRzKCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNIaWRkZW4oY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmltbWVkaWF0ZWx5VmlzaWJsZShjb25maWdOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNSZXF1aXJlZChjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gIW9iamVjdENvbmZpZy5udWxsYWJsZSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXREZWZhdWx0VmFsdWUoY29uZmlnTmFtZTogc3RyaW5nKTogT2JqZWN0Q29uZmlndXJhdGlvbkRlZmF1bHRWYWx1ZVR5cGUge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuZ2V0RGVmYXVsdFZhbHVlKCkgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldERlZmF1bHRTdHJpbmdWYWx1ZShjb25maWdOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuZ2V0RGVmYXVsdFN0cmluZ1ZhbHVlKCkgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldERlZmF1bHROdW1iZXJWYWx1ZShjb25maWdOYW1lOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuZ2V0RGVmYXVsdE51bWJlclZhbHVlKCkgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldE1heExlbmd0aChjb25maWdOYW1lOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcubWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXREZWNpbWFscyhjb25maWdOYW1lOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuc2NhbGUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhc0NvbmZpZ09iamVjdHMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZ09iamVjdHMgJiYgdGhpcy5fY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwICYmIHRoaXMuX29iamVjdENvbmZpZ3NNYXAuc2l6ZSA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzS2luZChjb25maWdOYW1lOiBzdHJpbmcsIGtpbmQ6IE9iamVjdENvbmZpZ0tpbmQpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gb2JqZWN0Q29uZmlnLmlzS2luZChraW5kKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0RhdGFOYW1lSGlkZGVuQnlJdHNlbGZPckFueU9mSXRzUGFyZW50UnVicmljcyhkYXRhTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgaXNIaWRkZW5JdHNlbGY6IGJvb2xlYW4gPSBBcnJheVV0aWxzLkNvbnRhaW5zQW5FbGVtZW50Rm91bmRCeSh0aGlzLl9jb25maWdPYmplY3RzLCAoKGl0ZW06IE9iamVjdENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZGF0YU5hbWUgPT09IGRhdGFOYW1lICYmIGl0ZW0uaXNIaWRkZW4oKTtcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgaWYgKGlzSGlkZGVuSXRzZWxmKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRGF0YU5hbWVIaWRkZW5CeUFueU9mSXRzUGFyZW50UnVicmljcyhkYXRhTmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkIGJ5IGRlc2NlbmRhbnRzXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZENvbmZpZ0Zvck1vZHVsZShwYXJhbXM6IHN0cmluZ1tdLCBpbnNlcnRSaWdodHM/OiBib29sZWFuKTogUHJvbWlzZTxPYmplY3RDb25maWd1cmF0aW9uW10+O1xyXG5cclxuICAgIHByaXZhdGUgaXNEYXRhTmFtZUhpZGRlbkJ5QW55T2ZJdHNQYXJlbnRSdWJyaWNzKGRhdGFOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBpZiAodGhpcy5faGFyZENvZGVkQ29uZmlnU3RydWN0dXJlKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnN0IHBhcmVudENvbmZpZ05hbWVzOiBzdHJpbmdbXSA9IHRoaXMuX2hhcmRDb2RlZENvbmZpZ1N0cnVjdHVyZS5nZXRQYXJlbnRDb25maWdOYW1lc09mRmllbGRDb25maWdOYW1lKHRoaXMuX2dldENvbmZpZ05hbWVCeURhdGFOYW1lKGRhdGFOYW1lKSk7XHJcbiAgICAgICAgLy8gICAgIGlmIChwYXJlbnRDb25maWdOYW1lcykge1xyXG4gICAgICAgIC8vICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMCwgbGVuOiBudW1iZXIgPSBwYXJlbnRDb25maWdOYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnN0IHBhcmVudENvbmZpZ09iajogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihwYXJlbnRDb25maWdOYW1lc1tpXSk7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgaWYgKHBhcmVudENvbmZpZ09iaiAmJiBwYXJlbnRDb25maWdPYmouaXNIaWRkZW4oKSkge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmV0dXJuIHRoZSBmaXJzdCBmb3VuZCBjb25maWcgbmFtZSBmb3IgZ2l2ZW4gZGF0YSBuYW1lXHJcbiAgICBwcml2YXRlIF9nZXRDb25maWdOYW1lQnlEYXRhTmFtZShkYXRhTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBpdHNDb25maWdPYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9nZXRDb25maWdPYmplY3RCeURhdGFOYW1lKGRhdGFOYW1lKTtcclxuICAgICAgICBpZiAoaXRzQ29uZmlnT2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdHNDb25maWdPYmplY3QuY29uZmlnTmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmV0dXJuIHRoZSBmaXJzdCBmb3VuZCBjb25maWcgb2JqZWN0IHdpdGggZ2l2ZW4gZGF0YSBuYW1lXHJcbiAgICBwcml2YXRlIF9nZXRDb25maWdPYmplY3RCeURhdGFOYW1lKGRhdGFOYW1lOiBzdHJpbmcpOiBPYmplY3RDb25maWd1cmF0aW9uIHtcclxuICAgICAgICByZXR1cm4gQXJyYXlVdGlscy5GaW5kKHRoaXMuX2NvbmZpZ09iamVjdHMsIChjZmdPYmo6IE9iamVjdENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGNmZ09iai5kYXRhTmFtZSA9PT0gZGF0YU5hbWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUFJFOiB0aGlzLmNvbmZpZ09iamVjdHMgaXMgbG9hZGVkLiBQT1NUOiB0aGlzLl9vYmplY3RDb25maWdzTWFwIGNvbnRhaW5zIHRoZSBsYXRlc3QgbWFwIG9mIGNvbmZpZ05hbWUgLT4gdG8gLT4gT2JqZWN0Q29uZmlndXJhdGlvbiBmb3IgYSBsaXZlIHNjcmVlbiBtb2R1bGUuXHJcbiAgICBwcml2YXRlIF9idWlsZFNjcmVlbkNvbmZpZ01hcCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vYmplY3RDb25maWdzTWFwLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb25maWdPYmplY3RzLmZvckVhY2goaXRlbSA9PiB0aGlzLl9vYmplY3RDb25maWdzTWFwLnNldChpdGVtLmNvbmZpZ05hbWUsIGl0ZW0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdHNSZWFkT25seSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29uZmlnT2JqZWN0cy5mb3JFYWNoKChvYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29weTogT2JqZWN0Q29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24obmV3IE9iamVjdENvbmZpZ3VyYXRpb24oKSwgb2JqZWN0KTtcclxuICAgICAgICAgICAgY29weS52YXJpYWJsZVJlYWRPbmx5ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihvYmplY3QuY29uZmlnTmFtZSwgY29weSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RzUmVkRXJyb3JCYWNrZ3JvdW5kKGVycm9yVmFsaWRhdGlvbjogVmFsaWRhdGlvblJlc3VsdCwgc2V0QWxsRmFsc2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChzZXRBbGxGYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ09iamVjdHMuZm9yRWFjaCgob2JqZWN0OiBPYmplY3RDb25maWd1cmF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb3B5OiBPYmplY3RDb25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihuZXcgT2JqZWN0Q29uZmlndXJhdGlvbigpLCBvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgY29weS5yZWRFcnJvckJhY2tncm91bmQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihvYmplY3QuY29uZmlnTmFtZSwgY29weSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JWYWxpZGF0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXM6IFZhbGlkYXRpb25NZXNzYWdlW10gPSBlcnJvclZhbGlkYXRpb24uZ2V0QWxsRXJyb3JNZXNzYWdlc09mTXlWYWxpZGF0aW9uRmllbGRzKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gZXJyb3JNZXNzYWdlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNc2c6IFZhbGlkYXRpb25NZXNzYWdlID0gZXJyb3JNZXNzYWdlc1tpXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZ09iamVjdDogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuY29uZmlnT2JqZWN0cy5maW5kKG9iamVjdCA9PiBvYmplY3QuY29uZmlnTmFtZSA9PT0gZXJyb3JNc2cuZmllbGRJZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29uZmlnT2JqZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29weTogT2JqZWN0Q29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24obmV3IE9iamVjdENvbmZpZ3VyYXRpb24oKSwgY29uZmlnT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICBjb3B5LnJlZEVycm9yQmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihjb25maWdPYmplY3QuY29uZmlnTmFtZSwgY29weSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { BaseModuleScreenConfigService } from './base-module-screen-config.service';
|
|
4
|
+
/**
|
|
5
|
+
* Base class for top-level services of CRUD-style iOne modules (the Relation, Article and Transaction modules).
|
|
6
|
+
* What sets these modules apart, is the concept of a relatively bulky, 'single businessobject' being manipulated throughout all the tabs.
|
|
7
|
+
*
|
|
8
|
+
* Many other (smaller?) iOne modules work with multiple LISTS of different business object types instead.
|
|
9
|
+
*/
|
|
10
|
+
export class BaseModuleService {
|
|
11
|
+
constructor(screenConfigService) {
|
|
12
|
+
this.screenConfigService = screenConfigService;
|
|
13
|
+
this.readonlyChange = new Subject();
|
|
14
|
+
// Emits this each time a new error validation was received. (there will be zero error tooltips on the screen after this fires)
|
|
15
|
+
this.errorValidationReceived = new Subject();
|
|
16
|
+
// Emits once after succesful BO update (i.e. there were no errors)
|
|
17
|
+
this.successfulUpdate = new Subject();
|
|
18
|
+
this._readonly = true;
|
|
19
|
+
this._subscriptions = [];
|
|
20
|
+
this._subscriptions.push(this.errorValidationReceived.subscribe((errorValidation) => this.screenConfigService.setScreenConfigurationObjectsRedErrorBackground(errorValidation)), this.successfulUpdate.subscribe(() => this.screenConfigService.setScreenConfigurationObjectsRedErrorBackground(null, true)), this.readonlyChange.subscribe((readOnly) => this.screenConfigService.setScreenConfigurationObjectsReadOnly(readOnly)));
|
|
21
|
+
}
|
|
22
|
+
// Whether the module is in readonly modus or not. Input fields etc. will be readonly throughout the module.
|
|
23
|
+
get readonly() {
|
|
24
|
+
return this._readonly;
|
|
25
|
+
}
|
|
26
|
+
set readonly(readonly) {
|
|
27
|
+
if (this._readonly !== readonly) {
|
|
28
|
+
this._readonly = readonly;
|
|
29
|
+
this.readonlyChange.next(this._readonly);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
ngOnDestroy() {
|
|
33
|
+
this._subscriptions.forEach((subscription) => subscription.unsubscribe());
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
BaseModuleService.decorators = [
|
|
37
|
+
{ type: Injectable }
|
|
38
|
+
];
|
|
39
|
+
BaseModuleService.ctorParameters = () => [
|
|
40
|
+
{ type: BaseModuleScreenConfigService }
|
|
41
|
+
];
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2R1bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvc2VydmljZS9iYXNlLW1vZHVsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUVsRjs7Ozs7R0FLRztBQUVILE1BQU0sT0FBZ0IsaUJBQWlCO0lBdUJuQyxZQUNjLG1CQUFrRDtRQUFsRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQStCO1FBdkJoRCxtQkFBYyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzFFLCtIQUErSDtRQUMvRyw0QkFBdUIsR0FBOEIsSUFBSSxPQUFPLEVBQW9CLENBQUM7UUFDckcsbUVBQW1FO1FBQ25ELHFCQUFnQixHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBYzVELGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFNUIsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBS3hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwQixJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBaUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLCtDQUErQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQ3hLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLCtDQUErQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUMzSCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxxQ0FBcUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUNqSSxDQUFBO0lBQ0wsQ0FBQztJQXhCRCw0R0FBNEc7SUFDNUcsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFFBQVEsQ0FBQyxRQUFpQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1QztJQUNMLENBQUM7SUFnQkQsV0FBVztRQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQzs7O1lBcENKLFVBQVU7OztZQVJILDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcclxuaW1wb3J0IHtCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZX0gZnJvbSAnLi9iYXNlLW1vZHVsZS1zY3JlZW4tY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY2xhc3MgZm9yIHRvcC1sZXZlbCBzZXJ2aWNlcyBvZiBDUlVELXN0eWxlIGlPbmUgbW9kdWxlcyAodGhlIFJlbGF0aW9uLCBBcnRpY2xlIGFuZCBUcmFuc2FjdGlvbiBtb2R1bGVzKS5cclxuICogV2hhdCBzZXRzIHRoZXNlIG1vZHVsZXMgYXBhcnQsIGlzIHRoZSBjb25jZXB0IG9mIGEgcmVsYXRpdmVseSBidWxreSwgJ3NpbmdsZSBidXNpbmVzc29iamVjdCcgYmVpbmcgbWFuaXB1bGF0ZWQgdGhyb3VnaG91dCBhbGwgdGhlIHRhYnMuXHJcbiAqXHJcbiAqIE1hbnkgb3RoZXIgKHNtYWxsZXI/KSBpT25lIG1vZHVsZXMgd29yayB3aXRoIG11bHRpcGxlIExJU1RTIG9mIGRpZmZlcmVudCBidXNpbmVzcyBvYmplY3QgdHlwZXMgaW5zdGVhZC5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VNb2R1bGVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyByZWFkb25seSByZWFkb25seUNoYW5nZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgICAvLyBFbWl0cyB0aGlzIGVhY2ggdGltZSBhIG5ldyBlcnJvciB2YWxpZGF0aW9uIHdhcyByZWNlaXZlZC4gKHRoZXJlIHdpbGwgYmUgemVybyBlcnJvciB0b29sdGlwcyBvbiB0aGUgc2NyZWVuIGFmdGVyIHRoaXMgZmlyZXMpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXJyb3JWYWxpZGF0aW9uUmVjZWl2ZWQ6IFN1YmplY3Q8VmFsaWRhdGlvblJlc3VsdD4gPSBuZXcgU3ViamVjdDxWYWxpZGF0aW9uUmVzdWx0PigpO1xyXG4gICAgLy8gRW1pdHMgb25jZSBhZnRlciBzdWNjZXNmdWwgQk8gdXBkYXRlIChpLmUuIHRoZXJlIHdlcmUgbm8gZXJyb3JzKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHN1Y2Nlc3NmdWxVcGRhdGU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8vIFdoZXRoZXIgdGhlIG1vZHVsZSBpcyBpbiByZWFkb25seSBtb2R1cyBvciBub3QuIElucHV0IGZpZWxkcyBldGMuIHdpbGwgYmUgcmVhZG9ubHkgdGhyb3VnaG91dCB0aGUgbW9kdWxlLlxyXG4gICAgcHVibGljIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCByZWFkb25seShyZWFkb25seTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICh0aGlzLl9yZWFkb25seSAhPT0gcmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSByZWFkb25seTtcclxuICAgICAgICAgICAgdGhpcy5yZWFkb25seUNoYW5nZS5uZXh0KHRoaXMuX3JlYWRvbmx5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9yZWFkb25seTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgc2NyZWVuQ29uZmlnU2VydmljZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5lcnJvclZhbGlkYXRpb25SZWNlaXZlZC5zdWJzY3JpYmUoKGVycm9yVmFsaWRhdGlvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4gdGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLnNldFNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RzUmVkRXJyb3JCYWNrZ3JvdW5kKGVycm9yVmFsaWRhdGlvbikpLFxyXG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3NmdWxVcGRhdGUuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5zZXRTY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0c1JlZEVycm9yQmFja2dyb3VuZChudWxsLCB0cnVlKSksXHJcbiAgICAgICAgICAgIHRoaXMucmVhZG9ubHlDaGFuZ2Uuc3Vic2NyaWJlKChyZWFkT25seTogYm9vbGVhbikgPT4gdGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLnNldFNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RzUmVhZE9ubHkocmVhZE9ubHkpKVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|