@wemake4u/form-player-se 1.0.31 → 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.
Files changed (36) hide show
  1. package/esm2022/lib/components/actionsCellRenderer/actionsCellRenderer.component.mjs +29 -16
  2. package/esm2022/lib/components/hostCellRenderer/hostCellRenderer.component.mjs +3 -2
  3. package/esm2022/lib/directives/grid.directive.mjs +82 -24
  4. package/esm2022/lib/directives/validationpatch.directive.mjs +44 -2
  5. package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +24 -11
  6. package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +24 -19
  7. package/esm2022/lib/services/cache.service.mjs +86 -0
  8. package/esm2022/lib/services/dialog.service.mjs +2 -2
  9. package/esm2022/lib/services/formatter.service.mjs +2 -2
  10. package/esm2022/lib/services/function.service.mjs +14 -3
  11. package/esm2022/lib/services/grid.service.mjs +46 -26
  12. package/esm2022/lib/services/programmability.service.mjs +27 -30
  13. package/esm2022/lib/services/scope.service.mjs +3 -2
  14. package/esm2022/lib/services/toast.service.mjs +2 -2
  15. package/esm2022/lib/services/validation.service.mjs +2 -2
  16. package/esm2022/lib/services/weak.service.mjs +6 -1
  17. package/esm2022/lib/utils/bound.mjs +12 -0
  18. package/esm2022/lib/utils/groupByRow.mjs +2 -1
  19. package/esm2022/lib/utils/proxy.mjs +55 -0
  20. package/fesm2022/wemake4u-form-player-se.mjs +420 -142
  21. package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
  22. package/lib/components/actionsCellRenderer/actionsCellRenderer.component.d.ts +4 -0
  23. package/lib/directives/grid.directive.d.ts +17 -4
  24. package/lib/directives/validationpatch.directive.d.ts +9 -0
  25. package/lib/dynamic-fields/dynamic-fields.component.d.ts +5 -4
  26. package/lib/dynamic-form/dynamic-form.component.d.ts +5 -3
  27. package/lib/services/cache.service.d.ts +21 -0
  28. package/lib/services/function.service.d.ts +2 -0
  29. package/lib/services/grid.service.d.ts +11 -5
  30. package/lib/services/programmability.service.d.ts +4 -3
  31. package/lib/services/weak.service.d.ts +1 -0
  32. package/lib/utils/{functions.d.ts → bound.d.ts} +0 -1
  33. package/lib/utils/groupByRow.d.ts +1 -0
  34. package/lib/utils/proxy.d.ts +2 -0
  35. package/package.json +1 -1
  36. package/esm2022/lib/utils/functions.mjs +0 -31
@@ -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
- const options = {
21
- cacheable: false,
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.programmability.evaluateString(this.getFormGroup(), value);
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 [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n [disabled]=\"evaluateBoolean(action.disabled)\"\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: "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"] }] });
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 [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n [disabled]=\"evaluateBoolean(action.disabled)\"\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" }]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uc0NlbGxSZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbnNDZWxsUmVuZGVyZXIvYWN0aW9uc0NlbGxSZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbnNDZWxsUmVuZGVyZXIvYWN0aW9uc0NlbGxSZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFXckQsTUFBTSxPQUFPLDRCQUE0QjtJQUVuQjtJQUFwQixZQUFvQixlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7SUFBSSxDQUFDO0lBRWhFLE1BQU0sQ0FBTTtJQUVaLE1BQU0sQ0FBQyxNQUFXO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQThCO1FBRTVDLE1BQU0sT0FBTyxHQUFvQjtZQUMvQixTQUFTLEVBQUUsS0FBSztZQUNoQixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDcEIsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO2lCQUM3QjthQUNGLENBQUM7U0FDSCxDQUFBO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBb0I7UUFDakMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFXLEVBQUUsS0FBVTtRQUNqQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVqQixNQUFNLE9BQU8sR0FBb0I7Z0JBQy9CLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDcEIsT0FBTyxFQUFFO3dCQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTt3QkFDbkIsTUFBTSxFQUFFLE1BQU07d0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7d0JBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO3FCQUM3QjtpQkFDRixDQUFDO2FBQ0gsQ0FBQTtZQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVztRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRU8sWUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBc0IsQ0FBQztJQUM1QyxDQUFDO3dHQS9EVSw0QkFBNEI7NEZBQTVCLDRCQUE0Qix3RUNkekMsb2xCQVlBLDJDRERJLFlBQVksNEpBQUUsb0JBQW9COzs0RkFHekIsNEJBQTRCO2tCQVB4QyxTQUFTO2lDQUVJLElBQUksV0FDUDt3QkFDUCxZQUFZLEVBQUUsb0JBQW9CO3FCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTaXJpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ25neC1zaXJpby1saWInO1xyXG5pbXBvcnQgeyBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlLCBFdmFsdWF0ZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9ncmFtbWFiaWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25zQ2VsbFJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSwgU2lyaW9CdXR0b25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25zQ2VsbFJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcm9ncmFtbWFiaWxpdHk6IFByb2dyYW1tYWJpbGl0eVNlcnZpY2UpIHsgfVxyXG5cclxuICBwYXJhbXM6IGFueTtcclxuXHJcbiAgYWdJbml0KHBhcmFtczogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBldmFsdWF0ZUJvb2xlYW4odmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB8IG51bGwge1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHtcclxuICAgICAgY2FjaGVhYmxlOiBmYWxzZSxcclxuICAgICAgZXh0ZW5kQ29udGV4dDogKCkgPT4gKHtcclxuICAgICAgICBcImV2ZW50XCI6IHtcclxuICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXHJcbiAgICAgICAgICBkYXRhOiB0aGlzLmdldERhdGEoKSxcclxuICAgICAgICAgIHJvd0luZGV4OiB0aGlzLmdldFJvd0luZGV4KClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmV2YWx1YXRlQm9vbGVhbih0aGlzLmdldEZvcm1Hcm91cCgpLCB2YWx1ZSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBldmFsdWF0ZVN0cmluZyh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9ncmFtbWFiaWxpdHkuZXZhbHVhdGVTdHJpbmcodGhpcy5nZXRGb3JtR3JvdXAoKSwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tCdXR0b24oYWN0aW9uOiBhbnksIGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChhY3Rpb24uY2xpY2spIHtcclxuXHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHtcclxuICAgICAgICBjYWNoZWFibGU6IGZhbHNlLFxyXG4gICAgICAgIGV4dGVuZENvbnRleHQ6ICgpID0+ICh7XHJcbiAgICAgICAgICBcImV2ZW50XCI6IHtcclxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcclxuICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb24sXHJcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuZ2V0RGF0YSgpLFxyXG4gICAgICAgICAgICByb3dJbmRleDogdGhpcy5nZXRSb3dJbmRleCgpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmV2YWx1YXRlKHRoaXMuZ2V0Rm9ybUdyb3VwKCksIGFjdGlvbi5jbGljaywgb3B0aW9ucyk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuZGF0YTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Um93SW5kZXgoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5ub2RlLnJvd0luZGV4O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5mb3JtR3JvdXAgYXMgRm9ybUdyb3VwO1xyXG4gIH1cclxufVxyXG5cclxuIiwiPGRpdiBjbGFzcz1cImJ0bi1zbWFsbC1ncm91cFwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBwYXJhbXMuY29tcG9uZW50LmFjdGlvbnNcIj5cclxuICAgIDxuZ3gtc2lyaW8tYnV0dG9uIGNsYXNzPVwiYnRuLXNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiZXZhbHVhdGVTdHJpbmcoYWN0aW9uLmxhYmVsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZXZhbHVhdGVTdHJpbmcoYWN0aW9uLmxhYmVsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwibnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZXZhbHVhdGVCb29sZWFuKGFjdGlvbi5kaXNhYmxlZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrRXZlbnQpPVwiY2xpY2tCdXR0b24oYWN0aW9uLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImV2YWx1YXRlU3RyaW5nKGFjdGlvbi5pY29uKVwiPlxyXG4gICAgPC9uZ3gtc2lyaW8tYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2hvc3RDZWxsUmVuZGVyZXIvaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2hvc3RDZWxsUmVuZGVyZXIvaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFFdkMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBYS9DLE1BQU0sT0FBTyx5QkFBeUI7SUFHaEI7SUFDVjtJQUNBO0lBSndELFNBQVMsQ0FBb0I7SUFFL0YsWUFBb0IsUUFBa0IsRUFDNUIsZUFBdUMsRUFDdkMsYUFBNEI7UUFGbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBSSxDQUFDO0lBRTNDLE1BQU0sQ0FBTTtJQUVaLE1BQU0sQ0FBQyxNQUFXO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FB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dCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBBZnRlclZpZXdJbml0LCBDb21wb25lbnRSZWYsIFR5cGVcclxuICAsIEluamVjdG9yXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHsgUHJvZ3JhbW1hYmlsaXR5U2VydmljZSwgRXZhbHVhdGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZ3JhbW1hYmlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hvc3RDZWxsUmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9zdENlbGxSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgY29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHByb2dyYW1tYWJpbGl0eTogUHJvZ3JhbW1hYmlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgZ2xvYmFsU2VydmljZTogR2xvYmFsU2VydmljZSkgeyB9XHJcblxyXG4gIHBhcmFtczogYW55O1xyXG5cclxuICBhZ0luaXQocGFyYW1zOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLnJlc29sdmVDb21wb25lbnRUeXBlKHRoaXMuZ2V0Q29tcG9uZW50VHlwZSgpKTtcclxuICAgIGlmIChjb21wb25lbnRUeXBlKSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUsIHtcclxuICAgICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvcixcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnNldFByb3BlcnRpZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBQcml2YXRlIE1lbWJlcnNcclxuXHJcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgcmVzb2x2ZUNvbXBvbmVudFR5cGUodHlwZTogc3RyaW5nKTogVHlwZTxhbnk+IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5nbG9iYWxTZXJ2aWNlLmdldENvbXBvbmVudCh0eXBlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BlcnRpZXMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICBpZiAocHJvcGVydGllcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZShwcm9wZXJ0aWVzKSA/PyB7fVxyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICByZXR1cm4geyB9O1xyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UHJvcGVydGllcygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYpIHJldHVybjtcclxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLnJlc29sdmVQcm9wZXJ0aWVzKCk7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKSkge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IHByb3BlcnRpZXNba2V5XTtcclxuICAgICAgaWYgKGtleSBpbiB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLnNldElucHV0Py4oa2V5LCB2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXZhbHVhdGUodmFsdWU6IHN0cmluZykge1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHtcclxuICAgICAgY2FjaGVhYmxlOiBmYWxzZSxcclxuICAgICAgZXh0ZW5kQ29udGV4dDogKCkgPT4gKHtcclxuICAgICAgICBcImV2ZW50XCI6IHtcclxuICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLFxyXG4gICAgICAgICAgZGF0YTogdGhpcy5nZXREYXRhKCksXHJcbiAgICAgICAgICByb3dJbmRleDogdGhpcy5nZXRSb3dJbmRleCgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnByb2dyYW1tYWJpbGl0eS5ldmFsdWF0ZSh0aGlzLmdldEZvcm1Hcm91cCgpLCB2YWx1ZSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbXBvbmVudFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5jb21wb25lbnRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQcm9wZXJ0aWVzKCk6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5wcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5mb3JtR3JvdXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERhdGEoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcy5kYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1zLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSb3dJbmRleCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1zLm5vZGUucm93SW5kZXg7XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG5cclxuIiwiPG5nLWNvbnRhaW5lciAjY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2hvc3RDZWxsUmVuZGVyZXIvaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL2hvc3RDZWxsUmVuZGVyZXIvaG9zdENlbGxSZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFFdkMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQVM1QyxNQUFNLE9BQU8seUJBQXlCO0lBR2hCO0lBQ1Y7SUFDQTtJQUp3RCxTQUFTLENBQW9CO0lBRS9GLFlBQW9CLFFBQWtCLEVBQzVCLGVBQXVDLEVBQ3ZDLGFBQTRCO1FBRmxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUksQ0FBQztJQUUzQyxNQUFNLENBQU07SUFFWixNQUFNLENBQUMsTUFBVztRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLElBQUks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LElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50UmVmLCBUeXBlXHJcbiAgLCBJbmplY3RvclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IFByb2dyYW1tYWJpbGl0eVNlcnZpY2UsIEV2YWx1YXRlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2dyYW1tYWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dsb2JhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgdG9Qcm94eSB9IGZyb20gJy4uLy4uL3V0aWxzL3Byb3h5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9ob3N0Q2VsbFJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEhvc3RDZWxsUmVuZGVyZXJDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBwcm9ncmFtbWFiaWxpdHk6IFByb2dyYW1tYWJpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbFNlcnZpY2U6IEdsb2JhbFNlcnZpY2UpIHsgfVxyXG5cclxuICBwYXJhbXM6IGFueTtcclxuXHJcbiAgYWdJbml0KHBhcmFtczogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb21wb25lbnRUeXBlID0gdGhpcy5yZXNvbHZlQ29tcG9uZW50VHlwZSh0aGlzLmdldENvbXBvbmVudFR5cGUoKSk7XHJcbiAgICBpZiAoY29tcG9uZW50VHlwZSkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlLCB7XHJcbiAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gUHJpdmF0ZSBNZW1iZXJzXHJcblxyXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHJlc29sdmVDb21wb25lbnRUeXBlKHR5cGU6IHN0cmluZyk6IFR5cGU8YW55PiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2xvYmFsU2VydmljZS5nZXRDb21wb25lbnQodHlwZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVQcm9wZXJ0aWVzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgaWYgKHByb3BlcnRpZXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGUocHJvcGVydGllcykgPz8ge31cclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgcmV0dXJuIHsgfTtcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFByb3BlcnRpZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5yZXNvbHZlUHJvcGVydGllcygpO1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocHJvcGVydGllcykpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBwcm9wZXJ0aWVzW2tleV07XHJcbiAgICAgIGlmIChrZXkgaW4gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpIHtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5zZXRJbnB1dD8uKGtleSwgdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV2YWx1YXRlKHZhbHVlOiBzdHJpbmcpIHtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zOiBFdmFsdWF0ZU9wdGlvbnMgPSB7XHJcbiAgICAgIGNhY2hlYWJsZTogZmFsc2UsXHJcbiAgICAgIGV4dGVuZENvbnRleHQ6ICgpID0+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 "@wemake4u/interact";
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['rowSource']) {
34
- if (isObservable(this.rowSource)) {
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["columnDefs"]) {
47
- this.onColumnsChanges();
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.onColumnsChanges();
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
- onColumnsChanges() {
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"] }, usesOnChanges: true, ngImport: i0 });
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==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnBhdGNoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvdmFsaWRhdGlvbnBhdGNoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNaEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHdCQUF3QjtJQUUzRCwyQkFBMkI7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBVyxDQUFDO1FBRTVCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RyxDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUM7aUJBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3RCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN4QixPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzVCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO3dHQW5CVSx3QkFBd0I7NEZBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpcmlvVmFsaWRhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ25neC1zaXJpby1saWInO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1lcmdlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3ZhbGlkYXRpb25dJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uUGF0Y2hEaXJlY3RpdmUgZXh0ZW5kcyBTaXJpb1ZhbGlkYXRpb25EaXJlY3RpdmUgIHtcclxuXHJcbiAgb3ZlcnJpZGUgc3Vic2NyaWJlVG9OZ0NvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgY29uc3QgdGhpc1JlZiA9IHRoaXMgYXMgYW55O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzUmVmLmhvc3QuY29udHJvbDtcclxuICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiY2FuJ3QgZmluZCBhIGNvbnRyb2wuIFBsZWFzZSBwcm92aWRlIGEgZm9ybUNvbnRyb2wgZm9yXCIsIHRoaXNSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzUmVmLmVsZW1lbnRDb250cm9sID0gY29udHJvbDtcclxuICAgICAgbWVyZ2UoY29udHJvbC52YWx1ZUNoYW5nZXMsIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcylcclxuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpc1JlZi5kZXN0cm95UmVmKSwgZGVib3VuY2VUaW1lKDApKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXNSZWYuY2FuVmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgdGhpc1JlZi5jaGVja1ZhbGlkYXRpb24oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnBhdGNoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvdmFsaWRhdGlvbnBhdGNoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR2hFLE1BQU0sVUFBVSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQU1sRyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0lBRTNELDJCQUEyQjtRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFXLENBQUM7UUFFNUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx3REFBd0QsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVHLENBQUM7YUFDSSxDQUFDO1lBQ0osT0FBTyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7WUFDakMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztpQkFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3hCLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDNUIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUwsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNoRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUM1QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVEsZUFBZTtRQUN0QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFUSxpQkFBaUI7UUFDeEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVRLFFBQVE7UUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVRLFVBQVU7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUSxVQUFVO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sVUFBVSxDQUFDLFNBQWlCO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFTyxnQkFBZ0IsQ0FDcEIsT0FBd0IsRUFDeEIsVUFBZ0IsRUFDaEIsWUFBWSxHQUFHLEdBQUc7UUFFcEIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxFQUN0QyxLQUFLLEVBQUUsQ0FDUixDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzdFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE9BQVEsSUFBWSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO3dHQS9FVSx3QkFBd0I7NEZBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2lyaW9WYWxpZGF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaXJzdCwgaW50ZXJ2YWwsIG1hcCwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5jb25zdCBjbGFzc05hbWVzID0gWydzaXJpby1pcy1pbnZhbGlkJywgJ3NpcmlvLWlzLXZhbGlkJywgJ3NpcmlvLWlzLXdhcm5pbmcnLCAnc2lyaW8taXMtcGVuZGluZyddO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbdmFsaWRhdGlvbl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25QYXRjaERpcmVjdGl2ZSBleHRlbmRzIFNpcmlvVmFsaWRhdGlvbkRpcmVjdGl2ZSAge1xyXG5cclxuICBvdmVycmlkZSBzdWJzY3JpYmVUb05nQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICBjb25zdCB0aGlzUmVmID0gdGhpcyBhcyBhbnk7XHJcblxyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXNSZWYuaG9zdC5jb250cm9sO1xyXG4gICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJjYW4ndCBmaW5kIGEgY29udHJvbC4gUGxlYXNlIHByb3ZpZGUgYSBmb3JtQ29udHJvbCBmb3JcIiwgdGhpc1JlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXNSZWYuZWxlbWVudENvbnRyb2wgPSBjb250cm9sO1xyXG4gICAgICBtZXJnZShjb250cm9sLnZhbHVlQ2hhbmdlcywgY29udHJvbC5zdGF0dXNDaGFuZ2VzKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzUmVmLmRlc3Ryb3lSZWYpLCBkZWJvdW5jZVRpbWUoMCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpc1JlZi5jYW5WYWxpZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzUmVmLmNoZWNrVmFsaWRhdGlvbigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGNvbnRyb2wuc3RhdHVzID09PSAnUEVORElORycpIHtcclxuICAgICAgICB0aGlzLndhaXRVbnRpbFNldHRsZWQoY29udHJvbCwgdGhpc1JlZi5kZXN0cm95UmVmKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXNSZWYuY2FuVmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgdGhpc1JlZi5jaGVja1ZhbGlkYXRpb24oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgY2hlY2tWYWxpZGF0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudENvbnRyb2w/LnN0YXR1cyA9PT0gXCJQRU5ESU5HXCIpIHtcclxuICAgICAgdGhpcy5zZXRQZW5kaW5nKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiBzdXBlci5jaGVja1ZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGNsZWFudXBWYWxpZGF0aW9uKCkge1xyXG4gICAgY2xhc3NOYW1lcy5mb3JFYWNoKGMgPT4gdGhpcy5nZXRSZW5kZXJlcigpLnJlbW92ZUNsYXNzKHRoaXMudmFsaWRhdGlvblRhcmdldCwgYykpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2V0VmFsaWQoKSB7XHJcbiAgICB0aGlzLmFwcGx5Q2xhc3MoJ3NpcmlvLWlzLXZhbGlkJyk7IFxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2V0SW52YWxpZCgpIHtcclxuICAgIHRoaXMuYXBwbHlDbGFzcygnc2lyaW8taXMtaW52YWxpZCcpOyBcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHNldFdhcm5pbmcoKSB7XHJcbiAgICB0aGlzLmFwcGx5Q2xhc3MoJ3NpcmlvLWlzLXdhcm5pbmcnKTsgXHJcbiAgfVxyXG5cclxuICBzZXRQZW5kaW5nKCkge1xyXG4gICAgdGhpcy5hcHBseUNsYXNzKCdzaXJpby1pcy1wZW5kaW5nJyk7ICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNsZWFudXBWYWxpZGF0aW9uKCk7XHJcbiAgICB0aGlzLmdldFJlbmRlcmVyKCkuYWRkQ2xhc3ModGhpcy52YWxpZGF0aW9uVGFyZ2V0LCBjbGFzc05hbWUpO1xyXG4gICAgdGhpcy5hY3RpdmVDbGFzc05hbWUgPSBjbGFzc05hbWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHdhaXRVbnRpbFNldHRsZWQoXHJcbiAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcclxuICAgICAgZGVzdHJveVJlZj86IGFueSxcclxuICAgICAgcG9sbEludGVydmFsID0gMTAwXHJcbiAgICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgY29uc3Qgc291cmNlJCA9IGludGVydmFsKHBvbGxJbnRlcnZhbCkucGlwZShcclxuICAgICAgbWFwKCgpID0+IGNvbnRyb2wuc3RhdHVzKSxcclxuICAgICAgZmlsdGVyKHN0YXR1cyA9PiBzdGF0dXMgIT09ICdQRU5ESU5HJyksXHJcbiAgICAgIGZpcnN0KClcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGRlc3Ryb3lSZWYgPyBzb3VyY2UkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpKSA6IHNvdXJjZSQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJlbmRlcmVyKCk6IFJlbmRlcmVyMiB7XHJcbiAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5yZW5kZXJlcjtcclxuICB9XHJcbn1cclxuIl19