@wemake4u/form-player-se 1.0.30 → 1.0.32
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/esm2022/lib/common/path.mjs +35 -0
- package/esm2022/lib/components/actionsCellRenderer/actionsCellRenderer.component.mjs +29 -16
- package/esm2022/lib/components/hostCellRenderer/hostCellRenderer.component.mjs +3 -2
- package/esm2022/lib/directives/grid.directive.mjs +82 -24
- package/esm2022/lib/directives/repeat.directive.mjs +1 -5
- package/esm2022/lib/directives/tabitem.directive.mjs +26 -0
- package/esm2022/lib/directives/validationpatch.directive.mjs +44 -2
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +94 -15
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +60 -38
- package/esm2022/lib/locale/locale-de.mjs +3 -2
- package/esm2022/lib/locale/locale-en.mjs +3 -2
- package/esm2022/lib/locale/locale-es.mjs +3 -2
- package/esm2022/lib/locale/locale-fr.mjs +3 -2
- package/esm2022/lib/locale/locale-it.mjs +3 -2
- package/esm2022/lib/locale/locale-pt.mjs +3 -2
- package/esm2022/lib/services/cache.service.mjs +86 -0
- package/esm2022/lib/services/dialog.service.mjs +2 -2
- package/esm2022/lib/services/form.service.mjs +41 -18
- package/esm2022/lib/services/formatter.service.mjs +2 -2
- package/esm2022/lib/services/function.service.mjs +14 -3
- package/esm2022/lib/services/grid.service.mjs +46 -26
- package/esm2022/lib/services/programmability.service.mjs +80 -45
- package/esm2022/lib/services/scope.service.mjs +9 -2
- package/esm2022/lib/services/toast.service.mjs +2 -2
- package/esm2022/lib/services/validation.service.mjs +2 -2
- package/esm2022/lib/services/weak.service.mjs +6 -1
- package/esm2022/lib/utils/bound.mjs +12 -0
- package/esm2022/lib/utils/groupByRow.mjs +2 -1
- package/esm2022/lib/utils/isMeaningful.mjs +13 -0
- package/esm2022/lib/utils/proxy.mjs +55 -0
- package/fesm2022/wemake4u-form-player-se.mjs +702 -207
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/common/path.d.ts +4 -0
- package/lib/components/actionsCellRenderer/actionsCellRenderer.component.d.ts +4 -0
- package/lib/components/deleteRowRenderer/deleteRowRenderer.component.d.ts +1 -0
- package/lib/components/objectURLRenderer/objectURLRenderer.component.d.ts +1 -0
- package/lib/components/setFilter/setFilter.component.d.ts +1 -0
- package/lib/dialog/dialog.component.d.ts +7 -0
- package/lib/directives/grid.directive.d.ts +17 -4
- package/lib/directives/tabitem.directive.d.ts +9 -0
- package/lib/directives/validationpatch.directive.d.ts +9 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +29 -5
- package/lib/dynamic-form/dynamic-form.component.d.ts +16 -6
- package/lib/locale/locale-de.d.ts +1 -0
- package/lib/locale/locale-en.d.ts +1 -0
- package/lib/locale/locale-es.d.ts +1 -0
- package/lib/locale/locale-fr.d.ts +1 -0
- package/lib/locale/locale-it.d.ts +1 -0
- package/lib/locale/locale-pt.d.ts +1 -0
- package/lib/locale/locale.d.ts +7 -0
- package/lib/services/cache.service.d.ts +21 -0
- package/lib/services/form.service.d.ts +7 -2
- package/lib/services/function.service.d.ts +2 -0
- package/lib/services/grid.service.d.ts +11 -5
- package/lib/services/programmability.service.d.ts +5 -4
- package/lib/services/scope.service.d.ts +5 -0
- package/lib/services/weak.service.d.ts +1 -0
- package/lib/utils/{functions.d.ts → bound.d.ts} +0 -1
- package/lib/utils/groupByRow.d.ts +1 -0
- package/lib/utils/isMeaningful.d.ts +1 -0
- package/lib/utils/proxy.d.ts +2 -0
- package/package.json +1 -1
- package/esm2022/lib/utils/functions.mjs +0 -31
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export function normalizePath(path) {
|
|
2
|
+
if (typeof path === 'string') {
|
|
3
|
+
return path.split('.');
|
|
4
|
+
}
|
|
5
|
+
if (Array.isArray(path)) {
|
|
6
|
+
return path.reduce((acc, part) => {
|
|
7
|
+
if (typeof part === 'string') {
|
|
8
|
+
acc.push(...part.split('.'));
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
acc.push(part);
|
|
12
|
+
}
|
|
13
|
+
return acc;
|
|
14
|
+
}, []);
|
|
15
|
+
}
|
|
16
|
+
return [path];
|
|
17
|
+
}
|
|
18
|
+
;
|
|
19
|
+
export function matchPath(pathA, pathB) {
|
|
20
|
+
const a = normalizePath(pathA);
|
|
21
|
+
const b = normalizePath(pathB);
|
|
22
|
+
const minLen = Math.min(a.length, b.length);
|
|
23
|
+
for (let i = 0; i < minLen; i++) {
|
|
24
|
+
if (a[i] !== b[i])
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
export function stringifyPath(path) {
|
|
30
|
+
if (Array.isArray(path)) {
|
|
31
|
+
return path.join(".");
|
|
32
|
+
}
|
|
33
|
+
return String(path);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2NvbW1vbi9wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBVTtJQUV0QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUFBLENBQUM7QUFFRixNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQVcsRUFBRSxLQUFXO0lBRWhELE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVU7SUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUGF0aCA9IHN0cmluZyB8IG51bWJlciB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGF0aChwYXRoOiBQYXRoKTogKHN0cmluZyB8IG51bWJlcilbXVxyXG57XHJcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIHBhdGguc3BsaXQoJy4nKTtcclxuICB9XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkocGF0aCkpIHtcclxuICAgIHJldHVybiBwYXRoLnJlZHVjZTwoc3RyaW5nIHwgbnVtYmVyKVtdPigoYWNjLCBwYXJ0KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YgcGFydCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBhY2MucHVzaCguLi5wYXJ0LnNwbGl0KCcuJykpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGFjYy5wdXNoKHBhcnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCBbXSk7XHJcbiAgfVxyXG4gIHJldHVybiBbcGF0aF07XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hQYXRoKHBhdGhBOiBQYXRoLCBwYXRoQjogUGF0aCk6IGJvb2xlYW4ge1xyXG5cclxuICBjb25zdCBhID0gbm9ybWFsaXplUGF0aChwYXRoQSk7XHJcbiAgY29uc3QgYiA9IG5vcm1hbGl6ZVBhdGgocGF0aEIpO1xyXG5cclxuICBjb25zdCBtaW5MZW4gPSBNYXRoLm1pbihhLmxlbmd0aCwgYi5sZW5ndGgpO1xyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IG1pbkxlbjsgaSsrKSB7XHJcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlQYXRoKHBhdGg6IFBhdGgpOiBzdHJpbmcge1xyXG4gIGlmIChBcnJheS5pc0FycmF5KHBhdGgpKSB7XHJcbiAgICByZXR1cm4gcGF0aC5qb2luKFwiLlwiKTtcclxuICB9XHJcbiAgcmV0dXJuIFN0cmluZyhwYXRoKTtcclxufVxyXG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { SirioButtonComponent } from 'ngx-sirio-lib';
|
|
4
|
+
import { toProxy } from '../../utils/proxy';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "../../services/programmability.service";
|
|
6
7
|
import * as i2 from "@angular/common";
|
|
@@ -12,25 +13,18 @@ export class ActionsCellRendererComponent {
|
|
|
12
13
|
params;
|
|
13
14
|
agInit(params) {
|
|
14
15
|
this.params = params;
|
|
16
|
+
this.cacheContext = this.getCacheContext();
|
|
15
17
|
}
|
|
16
18
|
refresh() {
|
|
17
19
|
return false;
|
|
18
20
|
}
|
|
19
21
|
evaluateBoolean(value) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
extendContext: () => ({
|
|
23
|
-
"event": {
|
|
24
|
-
params: this.params,
|
|
25
|
-
data: this.getData(),
|
|
26
|
-
rowIndex: this.getRowIndex()
|
|
27
|
-
}
|
|
28
|
-
})
|
|
29
|
-
};
|
|
30
|
-
return this.programmability.evaluateBoolean(this.getFormGroup(), value, options);
|
|
22
|
+
return this.cacheContext.evaluateBoolean(this.getCacheControl(), this.getFormGroup(), value, this.getOptions());
|
|
23
|
+
//return this.programmability.evaluateBoolean(this.getFormGroup(), value, this.getOptions());
|
|
31
24
|
}
|
|
32
25
|
evaluateString(value) {
|
|
33
|
-
return this.
|
|
26
|
+
return this.cacheContext.evaluateString(this.getCacheControl(), this.getFormGroup(), value, this.getOptions());
|
|
27
|
+
//return this.programmability.evaluateString(this.getFormGroup(), value, this.getOptions());
|
|
34
28
|
}
|
|
35
29
|
clickButton(action, event) {
|
|
36
30
|
if (action.click) {
|
|
@@ -48,8 +42,24 @@ export class ActionsCellRendererComponent {
|
|
|
48
42
|
return this.programmability.evaluate(this.getFormGroup(), action.click, options);
|
|
49
43
|
}
|
|
50
44
|
}
|
|
45
|
+
cacheContext;
|
|
46
|
+
getCacheControl() {
|
|
47
|
+
return this.params.data ?? this;
|
|
48
|
+
}
|
|
49
|
+
getOptions() {
|
|
50
|
+
return {
|
|
51
|
+
//cacheable: false,
|
|
52
|
+
extendContext: () => ({
|
|
53
|
+
"event": {
|
|
54
|
+
params: this.params,
|
|
55
|
+
data: this.getData(),
|
|
56
|
+
rowIndex: this.getRowIndex()
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
};
|
|
60
|
+
}
|
|
51
61
|
getData() {
|
|
52
|
-
return this.params.data;
|
|
62
|
+
return toProxy(this.params.data);
|
|
53
63
|
}
|
|
54
64
|
getRowIndex() {
|
|
55
65
|
return this.params.node.rowIndex;
|
|
@@ -57,13 +67,16 @@ export class ActionsCellRendererComponent {
|
|
|
57
67
|
getFormGroup() {
|
|
58
68
|
return this.params.formGroup;
|
|
59
69
|
}
|
|
70
|
+
getCacheContext() {
|
|
71
|
+
return this.params.api.getGridOption("context").cacheContext;
|
|
72
|
+
}
|
|
60
73
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionsCellRendererComponent, deps: [{ token: i1.ProgrammabilityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ActionsCellRendererComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n
|
|
74
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ActionsCellRendererComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n *ngIf=\"!evaluateBoolean(action.disabled)\"\r\n [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n (clickEvent)=\"clickButton(action, $event)\"\r\n [icon]=\"evaluateString(action.icon)\">\r\n </ngx-sirio-button>\r\n </ng-container>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SirioButtonComponent, selector: "ngx-sirio-button", inputs: ["ariaExpanded", "ariaControls", "ariaActivedescendant", "ariaHaspopup", "ariaLabel", "ariaRequired", "ariaInvalid", "ariaDescribedby", "icon", "title", "role", "color", "isFloating", "isExtended", "isLight", "isSmall", "disabled", "isDropdown", "type", "dismissType", "isBtnBlock"], outputs: ["clickEvent", "focusEvent", "blurEvent"] }] });
|
|
62
75
|
}
|
|
63
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionsCellRendererComponent, decorators: [{
|
|
64
77
|
type: Component,
|
|
65
78
|
args: [{ standalone: true, imports: [
|
|
66
79
|
CommonModule, SirioButtonComponent
|
|
67
|
-
], template: "<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n
|
|
80
|
+
], template: "<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n *ngIf=\"!evaluateBoolean(action.disabled)\"\r\n [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n (clickEvent)=\"clickButton(action, $event)\"\r\n [icon]=\"evaluateString(action.icon)\">\r\n </ngx-sirio-button>\r\n </ng-container>\r\n</div>\r\n" }]
|
|
68
81
|
}], ctorParameters: () => [{ type: i1.ProgrammabilityService }] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uc0NlbGxSZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbnNDZWxsUmVuZGVyZXIvYWN0aW9uc0NlbGxSZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbnNDZWxsUmVuZGVyZXIvYWN0aW9uc0NlbGxSZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBUzVDLE1BQU0sT0FBTyw0QkFBNEI7SUFFbkI7SUFBcEIsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO0lBQUksQ0FBQztJQUVoRSxNQUFNLENBQU07SUFFWixNQUFNLENBQUMsTUFBVztRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUE4QjtRQUM1QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILDZGQUE2RjtJQUMvRixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQW9CO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDL0csNEZBQTRGO0lBQzlGLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBVyxFQUFFLEtBQVU7UUFDakMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFakIsTUFBTSxPQUFPLEdBQW9CO2dCQUMvQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQ3BCLE9BQU8sRUFBRTt3QkFDUCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ25CLE1BQU0sRUFBRSxNQUFNO3dCQUNkLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO3dCQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtxQkFDN0I7aUJBQ0YsQ0FBQzthQUNILENBQUE7WUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUF1QjtJQUVuQyxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU87WUFDTCxtQkFBbUI7WUFDbkIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ3BCLE9BQU8sRUFBRTtvQkFDUCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtpQkFDN0I7YUFDRixDQUFDO1NBQ0gsQ0FBQTtJQUNILENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sV0FBVztRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRU8sWUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBc0IsQ0FBQztJQUM1QyxDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDL0QsQ0FBQzt3R0E3RVUsNEJBQTRCOzRGQUE1Qiw0QkFBNEIsd0VDaEJ6QyxnbEJBWUEsMkNEQ0ksWUFBWSxnUUFBRSxvQkFBb0I7OzRGQUd6Qiw0QkFBNEI7a0JBUHhDLFNBQVM7aUNBRUksSUFBSSxXQUNQO3dCQUNQLFlBQVksRUFBRSxvQkFBb0I7cUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IFNpcmlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcbmltcG9ydCB7IFByb2dyYW1tYWJpbGl0eVNlcnZpY2UsIEV2YWx1YXRlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2dyYW1tYWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FjaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHRvUHJveHkgfSBmcm9tICcuLi8uLi91dGlscy9wcm94eSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uc0NlbGxSZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsIFNpcmlvQnV0dG9uQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NlbGxSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvZ3JhbW1hYmlsaXR5OiBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcGFyYW1zOiBhbnk7XHJcblxyXG4gIGFnSW5pdChwYXJhbXM6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XHJcbiAgICB0aGlzLmNhY2hlQ29udGV4dCA9IHRoaXMuZ2V0Q2FjaGVDb250ZXh0KCk7ICAgIFxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGV2YWx1YXRlQm9vbGVhbih2YWx1ZTogYm9vbGVhbiB8IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNvbnRleHQuZXZhbHVhdGVCb29sZWFuKHRoaXMuZ2V0Q2FjaGVDb250cm9sKCksIHRoaXMuZ2V0Rm9ybUdyb3VwKCksIHZhbHVlLCB0aGlzLmdldE9wdGlvbnMoKSk7XHJcbiAgICAvL3JldHVybiB0aGlzLnByb2dyYW1tYWJpbGl0eS5ldmFsdWF0ZUJvb2xlYW4odGhpcy5nZXRGb3JtR3JvdXAoKSwgdmFsdWUsIHRoaXMuZ2V0T3B0aW9ucygpKTtcclxuICB9XHJcblxyXG4gIGV2YWx1YXRlU3RyaW5nKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNhY2hlQ29udGV4dC5ldmFsdWF0ZVN0cmluZyh0aGlzLmdldENhY2hlQ29udHJvbCgpLCB0aGlzLmdldEZvcm1Hcm91cCgpLCB2YWx1ZSwgdGhpcy5nZXRPcHRpb25zKCkpO1xyXG4gICAgLy9yZXR1cm4gdGhpcy5wcm9ncmFtbWFiaWxpdHkuZXZhbHVhdGVTdHJpbmcodGhpcy5nZXRGb3JtR3JvdXAoKSwgdmFsdWUsIHRoaXMuZ2V0T3B0aW9ucygpKTtcclxuICB9XHJcblxyXG4gIGNsaWNrQnV0dG9uKGFjdGlvbjogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBpZiAoYWN0aW9uLmNsaWNrKSB7XHJcblxyXG4gICAgICBjb25zdCBvcHRpb25zOiBFdmFsdWF0ZU9wdGlvbnMgPSB7XHJcbiAgICAgICAgY2FjaGVhYmxlOiBmYWxzZSxcclxuICAgICAgICBleHRlbmRDb250ZXh0OiAoKSA9PiAoe1xyXG4gICAgICAgICAgXCJldmVudFwiOiB7XHJcbiAgICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXHJcbiAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uLFxyXG4gICAgICAgICAgICBkYXRhOiB0aGlzLmdldERhdGEoKSxcclxuICAgICAgICAgICAgcm93SW5kZXg6IHRoaXMuZ2V0Um93SW5kZXgoKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLnByb2dyYW1tYWJpbGl0eS5ldmFsdWF0ZSh0aGlzLmdldEZvcm1Hcm91cCgpLCBhY3Rpb24uY2xpY2ssIG9wdGlvbnMpO1xyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FjaGVDb250ZXh0ITogQ2FjaGVDb250ZXh0U2VydmljZTtcclxuXHJcbiAgcHJpdmF0ZSBnZXRDYWNoZUNvbnRyb2woKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5kYXRhID8/IHRoaXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE9wdGlvbnMoKTogRXZhbHVhdGVPcHRpb25zIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vY2FjaGVhYmxlOiBmYWxzZSxcclxuICAgICAgZXh0ZW5kQ29udGV4dDogKCkgPT4gKHtcclxuICAgICAgICBcImV2ZW50XCI6IHtcclxuICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXHJcbiAgICAgICAgICBkYXRhOiB0aGlzLmdldERhdGEoKSxcclxuICAgICAgICAgIHJvd0luZGV4OiB0aGlzLmdldFJvd0luZGV4KClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERhdGEoKTogYW55IHtcclxuICAgIHJldHVybiB0b1Byb3h5KHRoaXMucGFyYW1zLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSb3dJbmRleCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1zLm5vZGUucm93SW5kZXg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1zLmZvcm1Hcm91cCBhcyBGb3JtR3JvdXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENhY2hlQ29udGV4dCgpOiBDYWNoZUNvbnRleHRTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5hcGkuZ2V0R3JpZE9wdGlvbihcImNvbnRleHRcIikuY2FjaGVDb250ZXh0OyAgICBcclxuICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJidG4tc21hbGwtZ3JvdXBcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcGFyYW1zLmNvbXBvbmVudC5hY3Rpb25zXCI+XHJcbiAgICA8bmd4LXNpcmlvLWJ1dHRvbiBjbGFzcz1cImJ0bi1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFldmFsdWF0ZUJvb2xlYW4oYWN0aW9uLmRpc2FibGVkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImV2YWx1YXRlU3RyaW5nKGFjdGlvbi5sYWJlbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImV2YWx1YXRlU3RyaW5nKGFjdGlvbi5sYWJlbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIm51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrRXZlbnQpPVwiY2xpY2tCdXR0b24oYWN0aW9uLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImV2YWx1YXRlU3RyaW5nKGFjdGlvbi5pY29uKVwiPlxyXG4gICAgPC9uZ3gtc2lyaW8tYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Component, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { toProxy } from '../../utils/proxy';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "../../services/programmability.service";
|
|
5
6
|
import * as i2 from "../../services/global.service";
|
|
@@ -78,7 +79,7 @@ export class HostCellRendererComponent {
|
|
|
78
79
|
return this.params.formGroup;
|
|
79
80
|
}
|
|
80
81
|
getData() {
|
|
81
|
-
return this.params.data;
|
|
82
|
+
return toProxy(this.params.data);
|
|
82
83
|
}
|
|
83
84
|
getValue() {
|
|
84
85
|
return this.params.value;
|
|
@@ -98,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
98
99
|
type: ViewChild,
|
|
99
100
|
args: ['container', { read: ViewContainerRef, static: true }]
|
|
100
101
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2hvc3RDZWxsUmVuZGVyZXIvaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2hvc3RDZWxsUmVuZGVyZXIvaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFFdkMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQVM1QyxNQUFNLE9BQU8seUJBQXlCO0lBR2hCO0lBQ1Y7SUFDQTtJQUp3RCxTQUFTLENBQW9CO0lBRS9GLFlBQW9CLFFBQWtCLEVBQzVCLGVBQXVDLEVBQ3ZDLGFBQTRCO1FBRmxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUksQ0FBQztJQUUzQyxNQUFNLENBQU07SUFFWixNQUFNLENBQUMsTUFBVztRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFO2dCQUNoRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDeEIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQseUJBQXlCO0lBRWpCLFlBQVksR0FBNkIsSUFBSSxDQUFDO0lBRTlDLG9CQUFvQixDQUFDLElBQVk7UUFDdkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN4QyxDQUFDO2FBRUQsQ0FBQztZQUNDLE9BQU8sRUFBRyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFDL0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDNUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFhO1FBRTVCLE1BQU0sT0FBTyxHQUFvQjtZQUMvQixTQUFTLEVBQUUsS0FBSztZQUNoQixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDcEIsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtpQkFDN0I7YUFDRixDQUFDO1NBQ0gsQ0FBQTtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztJQUVPLGFBQWE7UUFFbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sWUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sUUFBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbkMsQ0FBQzt3R0FsR1UseUJBQXlCOzRGQUF6Qix5QkFBeUIsMkpBQ0osZ0JBQWdCLDJDQ25CbEQsOENBQ0EsMkNEY0ksWUFBWTs7NEZBR0gseUJBQXlCO2tCQVByQyxTQUFTO2lDQUVJLElBQUksV0FDUDt3QkFDUCxZQUFZO3FCQUNiOzhJQUdpRSxTQUFTO3NCQUExRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50UmVmLCBUeXBlXHJcbiAgLCBJbmplY3RvclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IFByb2dyYW1tYWJpbGl0eVNlcnZpY2UsIEV2YWx1YXRlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2dyYW1tYWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dsb2JhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgdG9Qcm94eSB9IGZyb20gJy4uLy4uL3V0aWxzL3Byb3h5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9ob3N0Q2VsbFJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEhvc3RDZWxsUmVuZGVyZXJDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBwcm9ncmFtbWFiaWxpdHk6IFByb2dyYW1tYWJpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbFNlcnZpY2U6IEdsb2JhbFNlcnZpY2UpIHsgfVxyXG5cclxuICBwYXJhbXM6IGFueTtcclxuXHJcbiAgYWdJbml0KHBhcmFtczogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb21wb25lbnRUeXBlID0gdGhpcy5yZXNvbHZlQ29tcG9uZW50VHlwZSh0aGlzLmdldENvbXBvbmVudFR5cGUoKSk7XHJcbiAgICBpZiAoY29tcG9uZW50VHlwZSkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlLCB7XHJcbiAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gUHJpdmF0ZSBNZW1iZXJzXHJcblxyXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHJlc29sdmVDb21wb25lbnRUeXBlKHR5cGU6IHN0cmluZyk6IFR5cGU8YW55PiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2xvYmFsU2VydmljZS5nZXRDb21wb25lbnQodHlwZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVQcm9wZXJ0aWVzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgaWYgKHByb3BlcnRpZXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGUocHJvcGVydGllcykgPz8ge31cclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgcmV0dXJuIHsgfTtcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFByb3BlcnRpZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5yZXNvbHZlUHJvcGVydGllcygpO1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocHJvcGVydGllcykpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBwcm9wZXJ0aWVzW2tleV07XHJcbiAgICAgIGlmIChrZXkgaW4gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpIHtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5zZXRJbnB1dD8uKGtleSwgdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV2YWx1YXRlKHZhbHVlOiBzdHJpbmcpIHtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zOiBFdmFsdWF0ZU9wdGlvbnMgPSB7XHJcbiAgICAgIGNhY2hlYWJsZTogZmFsc2UsXHJcbiAgICAgIGV4dGVuZENvbnRleHQ6ICgpID0+ICh7XHJcbiAgICAgICAgXCJldmVudFwiOiB7XHJcbiAgICAgICAgICBwYXJhbXM6IHRoaXMucGFyYW1zLFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSxcclxuICAgICAgICAgIGRhdGE6IHRoaXMuZ2V0RGF0YSgpLFxyXG4gICAgICAgICAgcm93SW5kZXg6IHRoaXMuZ2V0Um93SW5kZXgoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcm9ncmFtbWFiaWxpdHkuZXZhbHVhdGUodGhpcy5nZXRGb3JtR3JvdXAoKSwgdmFsdWUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb21wb25lbnRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuY29tcG9uZW50VHlwZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UHJvcGVydGllcygpOiBzdHJpbmcgfCB1bmRlZmluZWRcclxuICB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMucHJvcGVydGllcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Rm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuZm9ybUdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdG9Qcm94eSh0aGlzLnBhcmFtcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Um93SW5kZXgoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5ub2RlLnJvd0luZGV4O1xyXG4gIH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuXHJcbiIsIjxuZy1jb250YWluZXIgI2NvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
@@ -3,53 +3,62 @@ import { of, isObservable } from 'rxjs';
|
|
|
3
3
|
import { catchError, take, tap, finalize } from 'rxjs/operators';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { DestroyRef } from '@angular/core';
|
|
6
|
+
import { CacheContextService } from '../services/cache.service';
|
|
6
7
|
import { Texts } from '../locale/locale';
|
|
7
8
|
import { localize } from '../locale/localize';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "ag-grid-angular";
|
|
10
11
|
import * as i2 from "../services/grid.service";
|
|
11
|
-
import * as i3 from "
|
|
12
|
+
import * as i3 from "../services/cache.service";
|
|
13
|
+
import * as i4 from "@wemake4u/interact";
|
|
12
14
|
export class GridDirective {
|
|
13
15
|
grid;
|
|
14
16
|
gridService;
|
|
17
|
+
cacheContext;
|
|
15
18
|
languageService;
|
|
16
19
|
rowSource;
|
|
17
20
|
columnDefs = null;
|
|
21
|
+
selectable = null;
|
|
22
|
+
multiSelect = null;
|
|
23
|
+
suppressActions = null;
|
|
18
24
|
formGroup;
|
|
19
25
|
component = null;
|
|
20
26
|
destroyRef = inject(DestroyRef);
|
|
21
|
-
constructor(grid, gridService, languageService) {
|
|
27
|
+
constructor(grid, gridService, cacheContext, languageService) {
|
|
22
28
|
this.grid = grid;
|
|
23
29
|
this.gridService = gridService;
|
|
30
|
+
this.cacheContext = cacheContext;
|
|
24
31
|
this.languageService = languageService;
|
|
25
32
|
grid.gridReady.subscribe((params) => {
|
|
26
33
|
this.gridApi = params.api;
|
|
34
|
+
this.prepareContext();
|
|
27
35
|
this.isGridReady = true;
|
|
28
36
|
this.onGridReady();
|
|
29
37
|
});
|
|
30
38
|
}
|
|
31
39
|
//https://www.ag-grid.com/angular-data-grid/column-updating-definitions/
|
|
32
40
|
ngOnChanges(changes) {
|
|
33
|
-
if (changes
|
|
34
|
-
|
|
35
|
-
this.wrapObservable(this.rowSource).pipe(take(1), takeUntilDestroyed(this.destroyRef)).subscribe(value => {
|
|
36
|
-
this.applyResult(value ?? []);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
else if (this.isDataSource(this.rowSource)) {
|
|
40
|
-
this.applyResult(this.wrapRowsSource(this.rowSource));
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.applyResult(this.rowSource);
|
|
44
|
-
}
|
|
41
|
+
if (this.isRowSourceChanged(changes)) {
|
|
42
|
+
this.onRowSourceChanged();
|
|
45
43
|
}
|
|
46
|
-
if (changes
|
|
47
|
-
this.
|
|
44
|
+
if (this.isColumnDefsChanged(changes)) {
|
|
45
|
+
this.onColumnDefsChanged();
|
|
46
|
+
}
|
|
47
|
+
if (this.isSelectionChanged(changes)) {
|
|
48
|
+
this.onSelectionChanged();
|
|
49
|
+
}
|
|
50
|
+
if (this.isSuppressActionChanged(changes)) {
|
|
51
|
+
this.onSuppressAction();
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
gridApi;
|
|
51
55
|
isGridReady = false;
|
|
52
56
|
noData = of([]);
|
|
57
|
+
prepareContext() {
|
|
58
|
+
const context = this.gridApi.getGridOption("context") ?? {};
|
|
59
|
+
context["cacheContext"] = this.cacheContext;
|
|
60
|
+
this.gridApi.setGridOption("context", context);
|
|
61
|
+
}
|
|
53
62
|
applyResult(data) {
|
|
54
63
|
if (this.isArray(data)) {
|
|
55
64
|
this.setRowData(data);
|
|
@@ -86,14 +95,52 @@ export class GridDirective {
|
|
|
86
95
|
return obj && typeof obj.getRows === "function";
|
|
87
96
|
}
|
|
88
97
|
onGridReady() {
|
|
89
|
-
this.
|
|
98
|
+
this.onColumnDefsChanged();
|
|
99
|
+
}
|
|
100
|
+
isRowSourceChanged(changes) {
|
|
101
|
+
return ['rowSource'].some(key => !!changes[key]);
|
|
102
|
+
}
|
|
103
|
+
onRowSourceChanged() {
|
|
104
|
+
this.cacheContext.invalidateAll();
|
|
105
|
+
if (isObservable(this.rowSource)) {
|
|
106
|
+
this.wrapObservable(this.rowSource).pipe(take(1), takeUntilDestroyed(this.destroyRef)).subscribe(value => {
|
|
107
|
+
this.applyResult(value ?? []);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else if (this.isDataSource(this.rowSource)) {
|
|
111
|
+
this.applyResult(this.wrapRowsSource(this.rowSource));
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.applyResult(this.rowSource);
|
|
115
|
+
}
|
|
90
116
|
}
|
|
91
|
-
|
|
117
|
+
isColumnDefsChanged(changes) {
|
|
118
|
+
return ['columnDefs'].some(key => !!changes[key]);
|
|
119
|
+
}
|
|
120
|
+
onColumnDefsChanged() {
|
|
92
121
|
if (this.gridApi) {
|
|
93
122
|
const columnDef = this.gridService.getColumnDefs(this.component, this.columnDefs, this.formGroup);
|
|
94
123
|
this.gridApi.setGridOption("columnDefs", columnDef);
|
|
95
124
|
}
|
|
96
125
|
}
|
|
126
|
+
isSelectionChanged(changes) {
|
|
127
|
+
return ['selectable', 'multiSelect'].some(key => !!changes[key] && !changes[key].isFirstChange());
|
|
128
|
+
}
|
|
129
|
+
onSelectionChanged() {
|
|
130
|
+
if (this.gridApi) {
|
|
131
|
+
const rowSelection = this.gridService.getRowSelection(this.component, this.formGroup);
|
|
132
|
+
this.gridApi.setGridOption("rowSelection", rowSelection);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
isSuppressActionChanged(changes) {
|
|
136
|
+
return ['suppressActions'].some(key => !!changes[key] && !changes[key].isFirstChange());
|
|
137
|
+
}
|
|
138
|
+
onSuppressAction() {
|
|
139
|
+
if (this.gridApi) {
|
|
140
|
+
this.gridApi.setColumnsVisible(["actions"], !(this.suppressActions ?? false));
|
|
141
|
+
this.gridService.resizeGrid(this.component, this.gridApi);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
97
144
|
showLoading(value) {
|
|
98
145
|
if (this.gridApi) {
|
|
99
146
|
this.gridApi.setGridOption('loading', value);
|
|
@@ -157,25 +204,36 @@ export class GridDirective {
|
|
|
157
204
|
}
|
|
158
205
|
};
|
|
159
206
|
}
|
|
160
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridDirective, deps: [{ token: i1.AgGridAngular, host: true }, { token: i2.GridService }, { token: i3.LanguageService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
161
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: GridDirective, isStandalone: true, selector: "[rowSource], [columnDefs]", inputs: { rowSource: "rowSource", columnDefs: "columnDefs", formGroup: "formGroup", component: ["register", "component"] },
|
|
207
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridDirective, deps: [{ token: i1.AgGridAngular, host: true }, { token: i2.GridService }, { token: i3.CacheContextService }, { token: i4.LanguageService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
208
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: GridDirective, isStandalone: true, selector: "[rowSource], [columnDefs], [selectable], [multiSelect], [suppressActions]", inputs: { rowSource: "rowSource", columnDefs: "columnDefs", selectable: "selectable", multiSelect: "multiSelect", suppressActions: "suppressActions", formGroup: "formGroup", component: ["register", "component"] }, providers: [
|
|
209
|
+
CacheContextService
|
|
210
|
+
], usesOnChanges: true, ngImport: i0 });
|
|
162
211
|
}
|
|
163
212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridDirective, decorators: [{
|
|
164
213
|
type: Directive,
|
|
165
214
|
args: [{
|
|
166
|
-
selector: '[rowSource], [columnDefs]',
|
|
167
|
-
standalone: true
|
|
215
|
+
selector: '[rowSource], [columnDefs], [selectable], [multiSelect], [suppressActions]',
|
|
216
|
+
standalone: true,
|
|
217
|
+
providers: [
|
|
218
|
+
CacheContextService
|
|
219
|
+
],
|
|
168
220
|
}]
|
|
169
221
|
}], ctorParameters: () => [{ type: i1.AgGridAngular, decorators: [{
|
|
170
222
|
type: Host
|
|
171
|
-
}] }, { type: i2.GridService }, { type: i3.LanguageService }], propDecorators: { rowSource: [{
|
|
223
|
+
}] }, { type: i2.GridService }, { type: i3.CacheContextService }, { type: i4.LanguageService }], propDecorators: { rowSource: [{
|
|
172
224
|
type: Input
|
|
173
225
|
}], columnDefs: [{
|
|
174
226
|
type: Input
|
|
227
|
+
}], selectable: [{
|
|
228
|
+
type: Input
|
|
229
|
+
}], multiSelect: [{
|
|
230
|
+
type: Input
|
|
231
|
+
}], suppressActions: [{
|
|
232
|
+
type: Input
|
|
175
233
|
}], formGroup: [{
|
|
176
234
|
type: Input
|
|
177
235
|
}], component: [{
|
|
178
236
|
type: Input,
|
|
179
237
|
args: ["register"]
|
|
180
238
|
}] } });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2dyaWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBYyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBTTlDLE1BQU0sT0FBTyxhQUFhO0lBU047SUFDUjtJQUNBO0lBVkQsU0FBUyxDQUFPO0lBQ2hCLFVBQVUsR0FBUSxJQUFJLENBQUM7SUFDdkIsU0FBUyxDQUFhO0lBQ1osU0FBUyxHQUFRLElBQUksQ0FBQztJQUVqQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLFlBQ2tCLElBQW1CLEVBQzNCLFdBQXdCLEVBQ3hCLGVBQWdDO1FBRnhCLFNBQUksR0FBSixJQUFJLENBQWU7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBR3hDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxN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QyxLQUFLLENBQUMsQ0FBQztvQkFDN0IsQ0FBQztnQkFDSCxDQUFDO2dCQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7b0JBQ2pCLElBQUksQ0FBQzt3QkFDSCxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3hCLENBQUM7NEJBQVMsQ0FBQzt3QkFDVCxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQixPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM5QixDQUFDO2dCQUNILENBQUM7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU87WUFDTCxPQUFPLEVBQUUsQ0FBQyxNQUFzQixFQUFFLEVBQUU7Z0JBQ2xDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7d0dBbExVLGFBQWE7NEZBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFKekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQVVJLElBQUk7aUdBUkUsU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ2EsU0FBUztzQkFBM0IsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBIb3N0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRha2UsIHRhcCwgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgRGVzdHJveVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHsgSUdldFJvd3NQYXJhbXMsIEdyaWRBcGkgfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuaW1wb3J0IHsgSVJvd3NTb3VyY2UgfSBmcm9tICcuLi9kYXRhU291cmNlcy9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ncmlkLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQHdlbWFrZTR1L2ludGVyYWN0JztcclxuaW1wb3J0IHsgVGV4dHMgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxlJztcclxuaW1wb3J0IHsgbG9jYWxpemUgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxpemUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcm93U291cmNlXSwgW2NvbHVtbkRlZnNdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcmlkRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSByb3dTb3VyY2UhOiBhbnk7XHJcbiAgQElucHV0KCkgY29sdW1uRGVmczogYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7ICBcclxuICBASW5wdXQoXCJyZWdpc3RlclwiKSBjb21wb25lbnQ6IGFueSA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIHByaXZhdGUgZ3JpZDogQWdHcmlkQW5ndWxhcixcclxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZVxyXG4gICkge1xyXG5cclxuICAgIGdyaWQuZ3JpZFJlYWR5LnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICAgIHRoaXMuaXNHcmlkUmVhZHkgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uR3JpZFJlYWR5KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXVwZGF0aW5nLWRlZmluaXRpb25zL1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncm93U291cmNlJ10pIHtcclxuICAgICAgaWYgKGlzT2JzZXJ2YWJsZSh0aGlzLnJvd1NvdXJjZSkpIHtcclxuICAgICAgICB0aGlzLndyYXBPYnNlcnZhYmxlKHRoaXMucm93U291cmNlKS5waXBlKFxyXG4gICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICAgICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5UmVzdWx0KHZhbHVlID8/IFtdKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmlzRGF0YVNvdXJjZSh0aGlzLnJvd1NvdXJjZSkpIHtcclxuICAgICAgICB0aGlzLmFwcGx5UmVzdWx0KHRoaXMud3JhcFJvd3NTb3VyY2UodGhpcy5yb3dTb3VyY2UpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmFwcGx5UmVzdWx0KHRoaXMucm93U291cmNlKTtcclxuICAgICAgfSAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzW1wiY29sdW1uRGVmc1wiXSkge1xyXG4gICAgICB0aGlzLm9uQ29sdW1uc0NoYW5nZXMoKTtcclxuICAgIH0gIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBncmlkQXBpITogR3JpZEFwaTxhbnk+O1xyXG5cclxuICBwcml2YXRlIGlzR3JpZFJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgbm9EYXRhOiBPYnNlcnZhYmxlPGFueT4gPSBvZihbXSk7XHJcblxyXG4gIHByaXZhdGUgYXBwbHlSZXN1bHQoZGF0YTogYW55KSB7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICB0aGlzLnNldFJvd0RhdGEoZGF0YSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmlzRGF0YVNvdXJjZShkYXRhKSkge1xyXG4gICAgICB0aGlzLnNldERhdGFTb3VyY2UoZGF0YSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRSb3dEYXRhKFtdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Um93RGF0YShyb3dTb3VyY2U6IGFueSkge1xyXG4gICAgdGhpcy5ncmlkLnJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcclxuICAgIGlmICh0aGlzLmlzR3JpZFJlYWR5KSB7XHJcbiAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0R3JpZE9wdGlvbigncm93RGF0YScsIHJvd1NvdXJjZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5ncmlkLnJvd0RhdGEgPSByb3dTb3VyY2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGFTb3VyY2Uocm93U291cmNlOiBhbnkpIHtcclxuICAgIHRoaXMuZ3JpZC5yb3dNb2RlbFR5cGUgPSAnaW5maW5pdGUnO1xyXG4gICAgaWYgKHRoaXMuaXNHcmlkUmVhZHkpIHtcclxuICAgICAgdGhpcy5ncmlkLmFwaS5zZXRHcmlkT3B0aW9uKCdkYXRhc291cmNlJywgcm93U291cmNlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmdyaWQuZGF0YXNvdXJjZSA9IHJvd1NvdXJjZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNBcnJheShyb3dTb3VyY2U6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocm93U291cmNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNEYXRhU291cmNlKG9iajogYW55KTogb2JqIGlzIElSb3dzU291cmNlIHtcclxuICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iai5nZXRSb3dzID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uR3JpZFJlYWR5KCkgeyAgICBcclxuICAgIHRoaXMub25Db2x1bW5zQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNvbHVtbnNDaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICBjb25zdCBjb2x1bW5EZWYgPSB0aGlzLmdyaWRTZXJ2aWNlLmdldENvbHVtbkRlZnModGhpcy5jb21wb25lbnQsIHRoaXMuY29sdW1uRGVmcywgdGhpcy5mb3JtR3JvdXApO1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvbihcImNvbHVtbkRlZnNcIiwgY29sdW1uRGVmKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd0xvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oJ2xvYWRpbmcnLCB2YWx1ZSk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93TG9hZEVycm9yKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmdyaWQuYXBpLnNldEdyaWRPcHRpb24oJ292ZXJsYXlOb1Jvd3NUZW1wbGF0ZScsIHRoaXMubG9jYWxlKFRleHRzLCAnTG9hZGluZ0ZhaWxlZCcpKTtcclxuICAgICAgdGhpcy5ncmlkLmFwaS5zaG93Tm9Sb3dzT3ZlcmxheSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0R3JpZE9wdGlvbignb3ZlcmxheU5vUm93c1RlbXBsYXRlJywgdW5kZWZpbmVkKTsgICBcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmdldExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvY2FsZShjb21wb25lbnQ6IGFueSwga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsaXplKHRoaXMubGFuZ3VhZ2UsIGNvbXBvbmVudCwga2V5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd3JhcE9ic2VydmFibGU8VD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICB0aGlzLnNob3dMb2FkaW5nKHRydWUpO1xyXG4gICAgdGhpcy5zaG93TG9hZEVycm9yKGZhbHNlKTtcclxuXHJcbiAgICByZXR1cm4gc291cmNlLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnNob3dMb2FkRXJyb3IoZmFsc2UpKSxcclxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRFcnJvcih0cnVlKTsgICAgICAgIFxyXG4gICAgICAgIHJldHVybiB0aGlzLm5vRGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuc2hvd0xvYWRpbmcoZmFsc2UpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd3JhcFJvd3NTb3VyY2Uoc291cmNlOiBJUm93c1NvdXJjZSk6IElSb3dzU291cmNlIHtcclxuXHJcbiAgICBjb25zdCB0aGlzUmVmID0gdGhpcztcclxuXHJcbiAgICBmdW5jdGlvbiB3cmFwUGFyYW1zKHBhcmFtczogSUdldFJvd3NQYXJhbXMpOiBJR2V0Um93c1BhcmFtcyB7XHJcbiAgICAgIHRoaXNSZWYuc2hvd0xvYWRpbmcodHJ1ZSk7XHJcbiAgICAgIHRoaXNSZWYuc2hvd0xvYWRFcnJvcihmYWxzZSk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgICBzdWNjZXNzQ2FsbGJhY2s6IChyb3dzLCBsYXN0Um93KSA9PiB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJvd3MsIGxhc3RSb3cpO1xyXG4gICAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgdGhpc1JlZi5zaG93TG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBmYWlsQ2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5mYWlsQ2FsbGJhY2soKTtcclxuICAgICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIHRoaXNSZWYuc2hvd0xvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzUmVmLnNob3dMb2FkRXJyb3IodHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGdldFJvd3M6IChwYXJhbXM6IElHZXRSb3dzUGFyYW1zKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgd3JhcHBlZCA9IHdyYXBQYXJhbXMocGFyYW1zKTtcclxuICAgICAgICBzb3VyY2UuZ2V0Um93cyh3cmFwcGVkKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2dyaWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBYyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQVU5QyxNQUFNLE9BQU8sYUFBYTtJQVlOO0lBQ1I7SUFDQTtJQUNBO0lBZEQsU0FBUyxDQUFPO0lBQ2hCLFVBQVUsR0FBUSxJQUFJLENBQUM7SUFDdkIsVUFBVSxHQUFtQixJQUFJLENBQUM7SUFDbEMsV0FBVyxHQUFtQixJQUFJLENBQUM7SUFDbkMsZUFBZSxHQUFtQixJQUFJLENBQUM7SUFDdkMsU0FBUyxDQUFhO0lBQ1osU0FBUyxHQUFRLElBQUksQ0FBQztJQUVqQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLFlBQ2tCLElBQW1CLEVBQzNCLFdBQXdCLEVBQ3hCLFlBQWlDLEVBQ2pDLGVBQWdDO1FBSHhCLFNBQUksR0FBSixJQUFJ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SG9zdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YWtlLCB0YXAsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IERlc3Ryb3lSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IElHZXRSb3dzUGFyYW1zLCBHcmlkQXBpIH0gZnJvbSBcImFnLWdyaWQtY29tbXVuaXR5XCI7XHJcbmltcG9ydCB7IElSb3dzU291cmNlIH0gZnJvbSAnLi4vZGF0YVNvdXJjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZ3JpZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FjaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NhY2hlLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQHdlbWFrZTR1L2ludGVyYWN0JztcclxuaW1wb3J0IHsgVGV4dHMgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxlJztcclxuaW1wb3J0IHsgbG9jYWxpemUgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxpemUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcm93U291cmNlXSwgW2NvbHVtbkRlZnNdLCBbc2VsZWN0YWJsZV0sIFttdWx0aVNlbGVjdF0sIFtzdXBwcmVzc0FjdGlvbnNdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQ2FjaGVDb250ZXh0U2VydmljZVxyXG4gIF0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgR3JpZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgcm93U291cmNlITogYW55O1xyXG4gIEBJbnB1dCgpIGNvbHVtbkRlZnM6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgc2VsZWN0YWJsZTogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG11bHRpU2VsZWN0OiBib29sZWFuIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgc3VwcHJlc3NBY3Rpb25zOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwOyAgXHJcbiAgQElucHV0KFwicmVnaXN0ZXJcIikgY29tcG9uZW50OiBhbnkgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBwcml2YXRlIGdyaWQ6IEFnR3JpZEFuZ3VsYXIsXHJcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZSxcclxuICAgIHByaXZhdGUgY2FjaGVDb250ZXh0OiBDYWNoZUNvbnRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZVxyXG4gICkge1xyXG5cclxuICAgIGdyaWQuZ3JpZFJlYWR5LnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICAgIHRoaXMucHJlcGFyZUNvbnRleHQoKTtcclxuICAgICAgdGhpcy5pc0dyaWRSZWFkeSA9IHRydWU7XHJcbiAgICAgIHRoaXMub25HcmlkUmVhZHkoKTsgICAgICBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9odHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tdXBkYXRpbmctZGVmaW5pdGlvbnMvXHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5pc1Jvd1NvdXJjZUNoYW5nZWQoY2hhbmdlcykpIHtcclxuICAgICAgdGhpcy5vblJvd1NvdXJjZUNoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0NvbHVtbkRlZnNDaGFuZ2VkKGNoYW5nZXMpKSB7XHJcbiAgICAgIHRoaXMub25Db2x1bW5EZWZzQ2hhbmdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzU2VsZWN0aW9uQ2hhbmdlZChjaGFuZ2VzKSkge1xyXG4gICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzU3VwcHJlc3NBY3Rpb25DaGFuZ2VkKGNoYW5nZXMpKSB7XHJcbiAgICAgIHRoaXMub25TdXBwcmVzc0FjdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBncmlkQXBpITogR3JpZEFwaTxhbnk+O1xyXG5cclxuICBwcml2YXRlIGlzR3JpZFJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgbm9EYXRhOiBPYnNlcnZhYmxlPGFueT4gPSBvZihbXSk7XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZUNvbnRleHQoKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5ncmlkQXBpLmdldEdyaWRPcHRpb24oXCJjb250ZXh0XCIpID8/IHt9O1xyXG4gICAgY29udGV4dFtcImNhY2hlQ29udGV4dFwiXSA9IHRoaXMuY2FjaGVDb250ZXh0O1xyXG4gICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oXCJjb250ZXh0XCIsIGNvbnRleHQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseVJlc3VsdChkYXRhOiBhbnkpIHtcclxuXHJcbiAgICBpZiAodGhpcy5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgIHRoaXMuc2V0Um93RGF0YShkYXRhKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuaXNEYXRhU291cmNlKGRhdGEpKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YVNvdXJjZShkYXRhKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFJvd0RhdGEoW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRSb3dEYXRhKHJvd1NvdXJjZTogYW55KSB7XHJcbiAgICB0aGlzLmdyaWQucm93TW9kZWxUeXBlID0gJ2NsaWVudFNpZGUnO1xyXG4gICAgaWYgKHRoaXMuaXNHcmlkUmVhZHkpIHtcclxuICAgICAgdGhpcy5ncmlkLmFwaS5zZXRHcmlkT3B0aW9uKCdyb3dEYXRhJywgcm93U291cmNlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmdyaWQucm93RGF0YSA9IHJvd1NvdXJjZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGF0YVNvdXJjZShyb3dTb3VyY2U6IGFueSkge1xyXG4gICAgdGhpcy5ncmlkLnJvd01vZGVsVHlwZSA9ICdpbmZpbml0ZSc7XHJcbiAgICBpZiAodGhpcy5pc0dyaWRSZWFkeSkge1xyXG4gICAgICB0aGlzLmdyaWQuYXBpLnNldEdyaWRPcHRpb24oJ2RhdGFzb3VyY2UnLCByb3dTb3VyY2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZC5kYXRhc291cmNlID0gcm93U291cmNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0FycmF5KHJvd1NvdXJjZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyb3dTb3VyY2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0RhdGFTb3VyY2Uob2JqOiBhbnkpOiBvYmogaXMgSVJvd3NTb3VyY2Uge1xyXG4gICAgcmV0dXJuIG9iaiAmJiB0eXBlb2Ygb2JqLmdldFJvd3MgPT09IFwiZnVuY3Rpb25cIjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25HcmlkUmVhZHkoKSB7ICAgIFxyXG4gICAgdGhpcy5vbkNvbHVtbkRlZnNDaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzUm93U291cmNlQ2hhbmdlZChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gWydyb3dTb3VyY2UnXS5zb21lKFxyXG4gICAgICBrZXkgPT4gISFjaGFuZ2VzW2tleV1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUm93U291cmNlQ2hhbmdlZCgpIHtcclxuICAgIHRoaXMuY2FjaGVDb250ZXh0LmludmFsaWRhdGVBbGwoKTtcclxuICAgIGlmIChpc09ic2VydmFibGUodGhpcy5yb3dTb3VyY2UpKSB7XHJcbiAgICAgIHRoaXMud3JhcE9ic2VydmFibGUodGhpcy5yb3dTb3VyY2UpLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcHBseVJlc3VsdCh2YWx1ZSA/PyBbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5pc0RhdGFTb3VyY2UodGhpcy5yb3dTb3VyY2UpKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlSZXN1bHQodGhpcy53cmFwUm93c1NvdXJjZSh0aGlzLnJvd1NvdXJjZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYXBwbHlSZXN1bHQodGhpcy5yb3dTb3VyY2UpO1xyXG4gICAgfSAgICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0NvbHVtbkRlZnNDaGFuZ2VkKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBbJ2NvbHVtbkRlZnMnXS5zb21lKFxyXG4gICAgICBrZXkgPT4gISFjaGFuZ2VzW2tleV1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ29sdW1uRGVmc0NoYW5nZWQoKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkQXBpKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbkRlZiA9IHRoaXMuZ3JpZFNlcnZpY2UuZ2V0Q29sdW1uRGVmcyh0aGlzLmNvbXBvbmVudCwgdGhpcy5jb2x1bW5EZWZzLCB0aGlzLmZvcm1Hcm91cCk7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKFwiY29sdW1uRGVmc1wiLCBjb2x1bW5EZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1NlbGVjdGlvbkNoYW5nZWQoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFsnc2VsZWN0YWJsZScsICdtdWx0aVNlbGVjdCddLnNvbWUoXHJcbiAgICAgIGtleSA9PiAhIWNoYW5nZXNba2V5XSAmJiAhY2hhbmdlc1trZXldLmlzRmlyc3RDaGFuZ2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25TZWxlY3Rpb25DaGFuZ2VkKCkge1xyXG4gICAgaWYgKHRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICBjb25zdCByb3dTZWxlY3Rpb24gPSB0aGlzLmdyaWRTZXJ2aWNlLmdldFJvd1NlbGVjdGlvbih0aGlzLmNvbXBvbmVudCwgdGhpcy5mb3JtR3JvdXApO1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvbihcInJvd1NlbGVjdGlvblwiLCByb3dTZWxlY3Rpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1N1cHByZXNzQWN0aW9uQ2hhbmdlZChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gWydzdXBwcmVzc0FjdGlvbnMnXS5zb21lKFxyXG4gICAgICBrZXkgPT4gISFjaGFuZ2VzW2tleV0gJiYgIWNoYW5nZXNba2V5XS5pc0ZpcnN0Q2hhbmdlKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uU3VwcHJlc3NBY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkQXBpKSB7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zZXRDb2x1bW5zVmlzaWJsZShbXCJhY3Rpb25zXCJdLCAhKHRoaXMuc3VwcHJlc3NBY3Rpb25zID8/IGZhbHNlKSk7XHJcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2UucmVzaXplR3JpZCh0aGlzLmNvbXBvbmVudCwgdGhpcy5ncmlkQXBpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd0xvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oJ2xvYWRpbmcnLCB2YWx1ZSk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93TG9hZEVycm9yKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmdyaWQuYXBpLnNldEdyaWRPcHRpb24oJ292ZXJsYXlOb1Jvd3NUZW1wbGF0ZScsIHRoaXMubG9jYWxlKFRleHRzLCAnTG9hZGluZ0ZhaWxlZCcpKTtcclxuICAgICAgdGhpcy5ncmlkLmFwaS5zaG93Tm9Sb3dzT3ZlcmxheSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0R3JpZE9wdGlvbignb3ZlcmxheU5vUm93c1RlbXBsYXRlJywgdW5kZWZpbmVkKTsgICBcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmdldExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvY2FsZShjb21wb25lbnQ6IGFueSwga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsaXplKHRoaXMubGFuZ3VhZ2UsIGNvbXBvbmVudCwga2V5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd3JhcE9ic2VydmFibGU8VD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICB0aGlzLnNob3dMb2FkaW5nKHRydWUpO1xyXG4gICAgdGhpcy5zaG93TG9hZEVycm9yKGZhbHNlKTtcclxuXHJcbiAgICByZXR1cm4gc291cmNlLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnNob3dMb2FkRXJyb3IoZmFsc2UpKSxcclxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRFcnJvcih0cnVlKTsgICAgICAgIFxyXG4gICAgICAgIHJldHVybiB0aGlzLm5vRGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuc2hvd0xvYWRpbmcoZmFsc2UpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd3JhcFJvd3NTb3VyY2Uoc291cmNlOiBJUm93c1NvdXJjZSk6IElSb3dzU291cmNlIHtcclxuXHJcbiAgICBjb25zdCB0aGlzUmVmID0gdGhpcztcclxuXHJcbiAgICBmdW5jdGlvbiB3cmFwUGFyYW1zKHBhcmFtczogSUdldFJvd3NQYXJhbXMpOiBJR2V0Um93c1BhcmFtcyB7XHJcbiAgICAgIHRoaXNSZWYuc2hvd0xvYWRpbmcodHJ1ZSk7XHJcbiAgICAgIHRoaXNSZWYuc2hvd0xvYWRFcnJvcihmYWxzZSk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgICBzdWNjZXNzQ2FsbGJhY2s6IChyb3dzLCBsYXN0Um93KSA9PiB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJvd3MsIGxhc3RSb3cpO1xyXG4gICAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgdGhpc1JlZi5zaG93TG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBmYWlsQ2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5mYWlsQ2FsbGJhY2soKTtcclxuICAgICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIHRoaXNSZWYuc2hvd0xvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzUmVmLnNob3dMb2FkRXJyb3IodHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGdldFJvd3M6IChwYXJhbXM6IElHZXRSb3dzUGFyYW1zKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgd3JhcHBlZCA9IHdyYXBQYXJhbXMocGFyYW1zKTtcclxuICAgICAgICBzb3VyY2UuZ2V0Um93cyh3cmFwcGVkKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -14,10 +14,6 @@ export class RepeatDirective {
|
|
|
14
14
|
if (Number.isInteger(this.repeat) && this.repeat >= 0) {
|
|
15
15
|
formArray.resize(this.repeat);
|
|
16
16
|
}
|
|
17
|
-
// commentato, perchè se arriva un value gia con un array vuoto senza allowAddRemove lo azzera
|
|
18
|
-
//else if (this.allowAddRemove !== true) {
|
|
19
|
-
// (formArray as any).resize(0);
|
|
20
|
-
//}
|
|
21
17
|
}
|
|
22
18
|
}
|
|
23
19
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RepeatDirective, deps: [{ token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -34,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
34
30
|
}], allowAddRemove: [{
|
|
35
31
|
type: Input
|
|
36
32
|
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvcmVwZWF0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7OztBQU8zRSxNQUFNLE9BQU8sZUFBZTtJQUlOO0lBSFgsTUFBTSxHQUFRLElBQUksQ0FBQztJQUNuQixjQUFjLEdBQW1CLElBQUksQ0FBQztJQUUvQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFJLENBQUM7SUFFM0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQW9CLENBQUM7WUFDN0QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxTQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3dHQWJVLGVBQWU7NEZBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7cUZBRVUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBDb250cm9sQ29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcmVwZWF0XSwgW2FsbG93QWRkUmVtb3ZlXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwZWF0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSByZXBlYXQ6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgYWxsb3dBZGRSZW1vdmU6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJyZXBlYXRcIl0gfHwgY2hhbmdlc1tcImFsbG93QWRkUmVtb3ZlXCJdKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuY29udHJvbENvbnRhaW5lci5jb250cm9sIGFzIEZvcm1BcnJheTtcclxuICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIodGhpcy5yZXBlYXQpICYmIHRoaXMucmVwZWF0ID49IDApIHtcclxuICAgICAgICAoZm9ybUFycmF5IGFzIGFueSkucmVzaXplKHRoaXMucmVwZWF0KTtcclxuICAgICAgfSAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TabItemDirective {
|
|
4
|
+
componentRef;
|
|
5
|
+
disabled;
|
|
6
|
+
ngOnChanges(changes) {
|
|
7
|
+
if (changes["disabled"]) {
|
|
8
|
+
const tabControl = this.componentRef;
|
|
9
|
+
tabControl.cd.markForCheck();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
13
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TabItemDirective, isStandalone: true, selector: "[tabItem]", inputs: { componentRef: "componentRef", disabled: "disabled" }, usesOnChanges: true, ngImport: i0 });
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabItemDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
selector: '[tabItem]',
|
|
19
|
+
standalone: true
|
|
20
|
+
}]
|
|
21
|
+
}], propDecorators: { componentRef: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], disabled: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}] } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL3RhYml0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7QUFPM0UsTUFBTSxPQUFPLGdCQUFnQjtJQUNsQixZQUFZLENBQU07SUFDbEIsUUFBUSxDQUFNO0lBRXZCLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFpQyxDQUFDO1lBQ3pELFVBQWtCLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO3dHQVRVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBRVUsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpcmlvVGFiQ29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0YWJJdGVtXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFiSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgY29tcG9uZW50UmVmOiBhbnk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGFueTtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJkaXNhYmxlZFwiXSkge1xyXG4gICAgICBjb25zdCB0YWJDb250cm9sID0gdGhpcy5jb21wb25lbnRSZWYgYXMgU2lyaW9UYWJDb21wb25lbnQ7XHJcbiAgICAgICh0YWJDb250cm9sIGFzIGFueSkuY2QubWFya0ZvckNoZWNrKCk7ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
2
|
import { SirioValidationDirective } from 'ngx-sirio-lib';
|
|
3
|
-
import { debounceTime, merge } from 'rxjs';
|
|
3
|
+
import { debounceTime, filter, first, interval, map, merge } from 'rxjs';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
const classNames = ['sirio-is-invalid', 'sirio-is-valid', 'sirio-is-warning', 'sirio-is-pending'];
|
|
6
7
|
export class ValidationPatchDirective extends SirioValidationDirective {
|
|
7
8
|
subscribeToNgControlChanges() {
|
|
8
9
|
const thisRef = this;
|
|
@@ -19,8 +20,49 @@ export class ValidationPatchDirective extends SirioValidationDirective {
|
|
|
19
20
|
thisRef.checkValidation();
|
|
20
21
|
}
|
|
21
22
|
});
|
|
23
|
+
if (control.status === 'PENDING') {
|
|
24
|
+
this.waitUntilSettled(control, thisRef.destroyRef).subscribe(() => {
|
|
25
|
+
if (thisRef.canValidate) {
|
|
26
|
+
thisRef.checkValidation();
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
22
30
|
}
|
|
23
31
|
}
|
|
32
|
+
checkValidation() {
|
|
33
|
+
if (this.elementControl?.status === "PENDING") {
|
|
34
|
+
this.setPending();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
return super.checkValidation();
|
|
38
|
+
}
|
|
39
|
+
cleanupValidation() {
|
|
40
|
+
classNames.forEach(c => this.getRenderer().removeClass(this.validationTarget, c));
|
|
41
|
+
}
|
|
42
|
+
setValid() {
|
|
43
|
+
this.applyClass('sirio-is-valid');
|
|
44
|
+
}
|
|
45
|
+
setInvalid() {
|
|
46
|
+
this.applyClass('sirio-is-invalid');
|
|
47
|
+
}
|
|
48
|
+
setWarning() {
|
|
49
|
+
this.applyClass('sirio-is-warning');
|
|
50
|
+
}
|
|
51
|
+
setPending() {
|
|
52
|
+
this.applyClass('sirio-is-pending');
|
|
53
|
+
}
|
|
54
|
+
applyClass(className) {
|
|
55
|
+
this.cleanupValidation();
|
|
56
|
+
this.getRenderer().addClass(this.validationTarget, className);
|
|
57
|
+
this.activeClassName = className;
|
|
58
|
+
}
|
|
59
|
+
waitUntilSettled(control, destroyRef, pollInterval = 100) {
|
|
60
|
+
const source$ = interval(pollInterval).pipe(map(() => control.status), filter(status => status !== 'PENDING'), first());
|
|
61
|
+
return destroyRef ? source$.pipe(takeUntilDestroyed(destroyRef)) : source$;
|
|
62
|
+
}
|
|
63
|
+
getRenderer() {
|
|
64
|
+
return this.renderer;
|
|
65
|
+
}
|
|
24
66
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ValidationPatchDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
25
67
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ValidationPatchDirective, isStandalone: true, selector: "[validation]", usesInheritance: true, ngImport: i0 });
|
|
26
68
|
}
|
|
@@ -31,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31
73
|
standalone: true
|
|
32
74
|
}]
|
|
33
75
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnBhdGNoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvdmFsaWRhdGlvbnBhdGNoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR2hFLE1BQU0sVUFBVSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQU1sRyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0lBRTNELDJCQUEyQjtRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFXLENBQUM7UUFFNUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx3REFBd0QsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVHLENBQUM7YUFDSSxDQUFDO1lBQ0osT0FBTyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7WUFDakMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztpQkFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3hCLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDNUIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUwsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNoRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUM1QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVEsZUFBZTtRQUN0QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFUSxpQkFBaUI7UUFDeEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVRLFFBQVE7UUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVRLFVBQVU7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUSxVQUFVO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sVUFBVSxDQUFDLFNBQWlCO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFTyxnQkFBZ0IsQ0FDcEIsT0FBd0IsRUFDeEIsVUFBZ0IsRUFDaEIsWUFBWSxHQUFHLEdBQUc7UUFFcEIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxFQUN0QyxLQUFLLEVBQUUsQ0FDUixDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzdFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE9BQVEsSUFBWSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO3dHQS9FVSx3QkFBd0I7NEZBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2lyaW9WYWxpZGF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaXJzdCwgaW50ZXJ2YWwsIG1hcCwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5jb25zdCBjbGFzc05hbWVzID0gWydzaXJpby1pcy1pbnZhbGlkJywgJ3NpcmlvLWlzLXZhbGlkJywgJ3NpcmlvLWlzLXdhcm5pbmcnLCAnc2lyaW8taXMtcGVuZGluZyddO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbdmFsaWRhdGlvbl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25QYXRjaERpcmVjdGl2ZSBleHRlbmRzIFNpcmlvVmFsaWRhdGlvbkRpcmVjdGl2ZSAge1xyXG5cclxuICBvdmVycmlkZSBzdWJzY3JpYmVUb05nQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICBjb25zdCB0aGlzUmVmID0gdGhpcyBhcyBhbnk7XHJcblxyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXNSZWYuaG9zdC5jb250cm9sO1xyXG4gICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJjYW4ndCBmaW5kIGEgY29udHJvbC4gUGxlYXNlIHByb3ZpZGUgYSBmb3JtQ29udHJvbCBmb3JcIiwgdGhpc1JlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXNSZWYuZWxlbWVudENvbnRyb2wgPSBjb250cm9sO1xyXG4gICAgICBtZXJnZShjb250cm9sLnZhbHVlQ2hhbmdlcywgY29udHJvbC5zdGF0dXNDaGFuZ2VzKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzUmVmLmRlc3Ryb3lSZWYpLCBkZWJvdW5jZVRpbWUoMCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpc1JlZi5jYW5WYWxpZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzUmVmLmNoZWNrVmFsaWRhdGlvbigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGNvbnRyb2wuc3RhdHVzID09PSAnUEVORElORycpIHtcclxuICAgICAgICB0aGlzLndhaXRVbnRpbFNldHRsZWQoY29udHJvbCwgdGhpc1JlZi5kZXN0cm95UmVmKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXNSZWYuY2FuVmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgdGhpc1JlZi5jaGVja1ZhbGlkYXRpb24oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgY2hlY2tWYWxpZGF0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudENvbnRyb2w/LnN0YXR1cyA9PT0gXCJQRU5ESU5HXCIpIHtcclxuICAgICAgdGhpcy5zZXRQZW5kaW5nKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiBzdXBlci5jaGVja1ZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGNsZWFudXBWYWxpZGF0aW9uKCkge1xyXG4gICAgY2xhc3NOYW1lcy5mb3JFYWNoKGMgPT4gdGhpcy5nZXRSZW5kZXJlcigpLnJlbW92ZUNsYXNzKHRoaXMudmFsaWRhdGlvblRhcmdldCwgYykpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2V0VmFsaWQoKSB7XHJcbiAgICB0aGlzLmFwcGx5Q2xhc3MoJ3NpcmlvLWlzLXZhbGlkJyk7IFxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2V0SW52YWxpZCgpIHtcclxuICAgIHRoaXMuYXBwbHlDbGFzcygnc2lyaW8taXMtaW52YWxpZCcpOyBcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHNldFdhcm5pbmcoKSB7XHJcbiAgICB0aGlzLmFwcGx5Q2xhc3MoJ3NpcmlvLWlzLXdhcm5pbmcnKTsgXHJcbiAgfVxyXG5cclxuICBzZXRQZW5kaW5nKCkge1xyXG4gICAgdGhpcy5hcHBseUNsYXNzKCdzaXJpby1pcy1wZW5kaW5nJyk7ICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNsZWFudXBWYWxpZGF0aW9uKCk7XHJcbiAgICB0aGlzLmdldFJlbmRlcmVyKCkuYWRkQ2xhc3ModGhpcy52YWxpZGF0aW9uVGFyZ2V0LCBjbGFzc05hbWUpO1xyXG4gICAgdGhpcy5hY3RpdmVDbGFzc05hbWUgPSBjbGFzc05hbWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHdhaXRVbnRpbFNldHRsZWQoXHJcbiAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcclxuICAgICAgZGVzdHJveVJlZj86IGFueSxcclxuICAgICAgcG9sbEludGVydmFsID0gMTAwXHJcbiAgICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgY29uc3Qgc291cmNlJCA9IGludGVydmFsKHBvbGxJbnRlcnZhbCkucGlwZShcclxuICAgICAgbWFwKCgpID0+IGNvbnRyb2wuc3RhdHVzKSxcclxuICAgICAgZmlsdGVyKHN0YXR1cyA9PiBzdGF0dXMgIT09ICdQRU5ESU5HJyksXHJcbiAgICAgIGZpcnN0KClcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGRlc3Ryb3lSZWYgPyBzb3VyY2UkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpKSA6IHNvdXJjZSQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJlbmRlcmVyKCk6IFJlbmRlcmVyMiB7XHJcbiAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5yZW5kZXJlcjtcclxuICB9XHJcbn1cclxuIl19
|