@stemy/ngx-dynamic-form 10.2.25 → 10.2.28

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 (32) hide show
  1. package/bundles/stemy-ngx-dynamic-form.umd.js +213 -64
  2. package/bundles/stemy-ngx-dynamic-form.umd.js.map +1 -1
  3. package/bundles/stemy-ngx-dynamic-form.umd.min.js +1 -1
  4. package/bundles/stemy-ngx-dynamic-form.umd.min.js.map +1 -1
  5. package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-array.component.js +53 -0
  6. package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.js +13 -2
  7. package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-group.component.js +53 -0
  8. package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form.component.js +12 -2
  9. package/esm2015/ngx-dynamic-form/ngx-dynamic-form.module.js +8 -10
  10. package/esm2015/ngx-dynamic-form/services/dynamic-form.service.js +24 -24
  11. package/esm2015/ngx-dynamic-form/utils/form-select-subject.js +22 -0
  12. package/esm2015/ngx-dynamic-form/utils/form-subject.js +13 -9
  13. package/esm2015/ngx-dynamic-form/utils/misc.js +18 -0
  14. package/esm2015/public_api.js +5 -2
  15. package/esm2015/stemy-ngx-dynamic-form.js +2 -4
  16. package/fesm2015/stemy-ngx-dynamic-form.js +194 -45
  17. package/fesm2015/stemy-ngx-dynamic-form.js.map +1 -1
  18. package/ngx-dynamic-form/components/base/dynamic-base-form-array.component.d.ts +20 -0
  19. package/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.d.ts +1 -0
  20. package/ngx-dynamic-form/components/base/dynamic-base-form-group.component.d.ts +20 -0
  21. package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +2 -1
  22. package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +3 -1
  23. package/ngx-dynamic-form/services/dynamic-form.service.d.ts +2 -2
  24. package/ngx-dynamic-form/utils/form-select-subject.d.ts +6 -0
  25. package/ngx-dynamic-form/utils/form-subject.d.ts +3 -2
  26. package/ngx-dynamic-form/utils/misc.d.ts +3 -0
  27. package/package.json +1 -1
  28. package/public_api.d.ts +4 -1
  29. package/stemy-ngx-dynamic-form.d.ts +1 -3
  30. package/stemy-ngx-dynamic-form.metadata.json +1 -1
  31. package/esm2015/ngx-dynamic-form/services/dynamic-form-validation.service.js +0 -11
  32. package/ngx-dynamic-form/services/dynamic-form-validation.service.d.ts +0 -5
@@ -0,0 +1,53 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChildren } from "@angular/core";
2
+ import { DynamicFormArrayComponent, DynamicFormControlContainerComponent, DynamicFormGroupModel, DynamicFormLayoutService, DynamicFormValidationService } from "@ng-dynamic-forms/core";
3
+ import { collectPathAble } from "../../utils/misc";
4
+ export class DynamicBaseFormArrayComponent extends DynamicFormArrayComponent {
5
+ constructor(layoutService, validationService) {
6
+ super(layoutService, validationService);
7
+ this.layoutService = layoutService;
8
+ this.validationService = validationService;
9
+ this.blur = new EventEmitter();
10
+ this.change = new EventEmitter();
11
+ this.customEvent = new EventEmitter();
12
+ this.focus = new EventEmitter();
13
+ }
14
+ getClass(context, place, model) {
15
+ return [
16
+ context == "element" ? this.getModelClass(model) : null,
17
+ super.getClass(context, place, model)
18
+ ].filter(cls => !!cls).join(" ");
19
+ }
20
+ getModelClass(model) {
21
+ const parts = collectPathAble(model, p => p.id);
22
+ if (parts.length == 0)
23
+ return "";
24
+ if (model instanceof DynamicFormGroupModel) {
25
+ return `form-group-${parts.join("-")}`;
26
+ }
27
+ return `form-control-${parts.join("-")}`;
28
+ }
29
+ }
30
+ DynamicBaseFormArrayComponent.decorators = [
31
+ { type: Component, args: [{
32
+ selector: "dynamic-base-form-array",
33
+ template: "",
34
+ changeDetection: ChangeDetectionStrategy.OnPush
35
+ },] }
36
+ ];
37
+ DynamicBaseFormArrayComponent.ctorParameters = () => [
38
+ { type: DynamicFormLayoutService },
39
+ { type: DynamicFormValidationService }
40
+ ];
41
+ DynamicBaseFormArrayComponent.propDecorators = {
42
+ formLayout: [{ type: Input }],
43
+ group: [{ type: Input }],
44
+ layout: [{ type: Input }],
45
+ model: [{ type: Input }],
46
+ templates: [{ type: Input }],
47
+ blur: [{ type: Output }],
48
+ change: [{ type: Output }],
49
+ customEvent: [{ type: Output }],
50
+ focus: [{ type: Output }],
51
+ components: [{ type: ViewChildren, args: [forwardRef(() => DynamicFormControlContainerComponent),] }]
52
+ };
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tYXJyYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWFycmF5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCx5QkFBeUIsRUFFekIsb0NBQW9DLEVBTXBDLHFCQUFxQixFQUVyQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBRS9CLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBT2pELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx5QkFBeUI7SUFnQnhFLFlBQXNCLGFBQXVDLEVBQ3ZDLGlCQUErQztRQUVqRSxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFIdEIsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFUM0QsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxnQkFBVyxHQUFnRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlFLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVN4RCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXdDLEVBQUUsS0FBb0MsRUFBRSxLQUErQjtRQUNwSCxPQUFPO1lBQ0gsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN2RCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1NBQ3hDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsYUFBYSxDQUFDLEtBQStCO1FBQ25ELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEtBQUssWUFBWSxxQkFBcUIsRUFBRTtZQUN4QyxPQUFPLGNBQWMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxnQkFBZ0IsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7OztZQXpDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQVZHLHdCQUF3QjtZQUN4Qiw0QkFBNEI7Ozt5QkFZM0IsS0FBSztvQkFDTCxLQUFLO3FCQUNMLEtBQUs7b0JBQ0wsS0FBSzt3QkFDTCxLQUFLO21CQUVMLE1BQU07cUJBQ04sTUFBTTswQkFDTixNQUFNO29CQUNOLE1BQU07eUJBRU4sWUFBWSxTQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtcclxuICAgIER5bmFtaWNGb3JtQXJyYXlDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUFycmF5TW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xDdXN0b21FdmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1Hcm91cE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1MYXlvdXQsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtjb2xsZWN0UGF0aEFibGV9IGZyb20gXCIuLi8uLi91dGlscy9taXNjXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtYmFzZS1mb3JtLWFycmF5XCIsXHJcbiAgICB0ZW1wbGF0ZTogXCJcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQmFzZUZvcm1BcnJheUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQXJyYXlDb21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIGZvcm1MYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbDtcclxuICAgIEBJbnB1dCgpIHRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY3VzdG9tRXZlbnQ6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xDdXN0b21FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQpKVxyXG4gICAgY29tcG9uZW50czogUXVlcnlMaXN0PER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudD47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxheW91dFNlcnZpY2U6IER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSkge1xyXG5cclxuICAgICAgICBzdXBlcihsYXlvdXRTZXJ2aWNlLCB2YWxpZGF0aW9uU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2xhc3MoY29udGV4dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCwgcGxhY2U6IER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlLCBtb2RlbD86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICBjb250ZXh0ID09IFwiZWxlbWVudFwiID8gdGhpcy5nZXRNb2RlbENsYXNzKG1vZGVsKSA6IG51bGwsXHJcbiAgICAgICAgICAgIHN1cGVyLmdldENsYXNzKGNvbnRleHQsIHBsYWNlLCBtb2RlbClcclxuICAgICAgICBdLmZpbHRlcihjbHMgPT4gISFjbHMpLmpvaW4oXCIgXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRNb2RlbENsYXNzKG1vZGVsPzogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHBhcnRzID0gY29sbGVjdFBhdGhBYmxlKG1vZGVsLCBwID0+IHAuaWQpO1xyXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT0gMCkgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgaWYgKG1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgZm9ybS1ncm91cC0ke3BhcnRzLmpvaW4oXCItXCIpfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBgZm9ybS1jb250cm9sLSR7cGFydHMuam9pbihcIi1cIil9YDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,7 +1,8 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ContentChildren, EventEmitter, HostBinding, Input, Output, ViewChild, ViewContainerRef } from "@angular/core";
2
2
  import { DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormComponentService, DynamicFormControlContainerComponent, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
3
- import { DynamicBaseFormComponent } from "./dynamic-base-form.component";
4
3
  import { ObjectUtils } from "@stemy/ngx-utils";
4
+ import { collectPathAble } from "../../utils/misc";
5
+ import { DynamicBaseFormComponent } from "./dynamic-base-form.component";
5
6
  export class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent {
6
7
  constructor(form, changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService) {
7
8
  super(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService);
@@ -46,6 +47,16 @@ export class DynamicBaseFormControlContainerComponent extends DynamicFormControl
46
47
  super.ngOnDestroy();
47
48
  this.onDetectChanges.unsubscribe();
48
49
  }
50
+ getLabel() {
51
+ var _a;
52
+ const label = collectPathAble(this.model, p => p.label);
53
+ if (label.length == 0)
54
+ return "";
55
+ if ((_a = this.form) === null || _a === void 0 ? void 0 : _a.labelPrefix) {
56
+ label.unshift(this.form.labelPrefix);
57
+ }
58
+ return label.join(".");
59
+ }
49
60
  createFormControlComponent() {
50
61
  var _a;
51
62
  super.createFormControlComponent();
@@ -88,4 +99,4 @@ DynamicBaseFormControlContainerComponent.propDecorators = {
88
99
  focus: [{ type: Output }],
89
100
  componentViewContainerRef: [{ type: ViewChild, args: ["componentViewContainer", { read: ViewContainerRef, static: true },] }]
90
101
  };
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsK0JBQStCLEVBRS9CLDJCQUEyQixFQUUzQixvQ0FBb0MsRUFJcEMsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBUTdDLE1BQU0sT0FBTyx3Q0FBeUMsU0FBUSxvQ0FBb0M7SUF5QzlGLFlBQXFCLElBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyx3QkFBa0QsRUFDbEQsYUFBdUMsRUFDdkMsaUJBQStDLEVBQy9DLGdCQUE2QyxFQUM3QyxlQUEyQztRQUM1RCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBUHZHLFNBQUksR0FBSixJQUFJLENBQTBCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtR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RDs7O1lBVE8sd0JBQXdCO1lBOUI1QixpQkFBaUI7WUFFakIsd0JBQXdCO1lBdUJ4Qix3QkFBd0I7WUFFeEIsNEJBQTRCO1lBUjVCLDJCQUEyQjtZQU8zQiwwQkFBMEI7OztrQ0FnQnpCLGVBQWUsU0FBQyx3QkFBd0I7b0JBRXhDLFdBQVcsU0FBQyxPQUFPO3NCQUVuQixLQUFLO29CQUNMLEtBQUs7d0JBQ0wsS0FBSztnQ0FDTCxLQUFLLFNBQUMsV0FBVztxQkFDakIsS0FBSztvQkFDTCxLQUFLO21CQUVMLE1BQU07cUJBQ04sTUFBTTtvQkFDTixNQUFNO3dDQUVOLFNBQVMsU0FBQyx3QkFBd0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgVHlwZSxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1xyXG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSxcclxuICAgIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxyXG4gICAgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Db21wb25lbnR9IGZyb20gXCIuL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcbmltcG9ydCB7T25DcmVhdGVkRm9ybUNvbnRyb2x9IGZyb20gXCIuLi8uLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbFwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUpIGNvbnRlbnRUZW1wbGF0ZUxpc3Q6IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzXCIpIGtsYXNzO1xyXG5cclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIHwgbnVsbCA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gICAgQElucHV0KCkgaG9zdENsYXNzOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dChcInRlbXBsYXRlc1wiKSBpbnB1dFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcbiAgICBASW5wdXQoKSBsYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsO1xyXG5cclxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PigpO1xyXG4gICAgQE91dHB1dCgpIGZvY3VzOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiY29tcG9uZW50Vmlld0NvbnRhaW5lclwiLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlfSkgY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXRlY3RDaGFuZ2VzOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgZ2V0IGNvbXBvbmVudFR5cGUoKTogVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U2VydmljZS5nZXRDdXN0b21Db21wb25lbnRUeXBlKHRoaXMubW9kZWwpID8/IHRoaXMuZ2V0Q29tcG9uZW50VHlwZSh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3RhcnRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5tb2RlbC50eXBlID09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVkpXHJcbiAgICAgICAgICAgID8gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEFsaWduZWRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcywgXCJBUlJBWV9TVEFSVFwiIGFzIGFueSlcclxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0U3RhcnRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVuZFRlbXBsYXRlKCk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsLnR5cGUgPT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSlcclxuICAgICAgICAgICAgPyB0aGlzLmxheW91dFNlcnZpY2UuZ2V0QWxpZ25lZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzLCBcIkFSUkFZX0VORFwiIGFzIGFueSlcclxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RW5kVGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb3JtU2VydmljZSgpOiBEeW5hbWljRm9ybVNlcnZpY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZm9ybVNlcnZpY2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybTogRHluYW1pY0Jhc2VGb3JtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBsYXlvdXRTZXJ2aWNlOiBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IHJlbGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBsYXlvdXRTZXJ2aWNlLCB2YWxpZGF0aW9uU2VydmljZSwgY29tcG9uZW50U2VydmljZSwgcmVsYXRpb25TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uRGV0ZWN0Q2hhbmdlcyA9IHRoaXMuZm9ybVNlcnZpY2Uub25EZXRlY3RDaGFuZ2VzLnN1YnNjcmliZShmb3JtID0+IHtcclxuICAgICAgICAgICAgaWYgKGZvcm0gIT09IHRoaXMuZm9ybSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS51cGRhdGVTZWxlY3RPcHRpb25zKHRoaXMubW9kZWwsIHRoaXMuY29udHJvbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLm9uRGV0ZWN0Q2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpIHtcclxuICAgICAgICBzdXBlci5jcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpO1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhcyBPbkNyZWF0ZWRGb3JtQ29udHJvbDtcclxuICAgICAgICBpZiAoIWNvbXBvbmVudCB8fCAhT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihjb21wb25lbnQub25DcmVhdGVkKSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbXBvbmVudC5vbkNyZWF0ZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50VHlwZShtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiBUeXBlPER5bmFtaWNGb3JtQ29udHJvbD4gfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsK0JBQStCLEVBRS9CLDJCQUEyQixFQUUzQixvQ0FBb0MsRUFJcEMsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQVF2RSxNQUFNLE9BQU8sd0NBQXlDLFNBQVEsb0NBQW9DO0lBeUM5RixZQUFxQixJQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsd0JBQWtELEVBQ2xELGFBQXVDLEVBQ3ZDLGlCQUErQyxFQUMvQyxnQkFBNkMsRUFDN0MsZUFBMkM7UUFDNUQsS0FBSyxDQUFDLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQVB2RyxTQUFJLEdBQUosSUFBSSxDQUEwQjtRQUM5QixzQkFBaUIsR0FBakIsaUJB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O1FBQ2hDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ25DLE1BQU0sU0FBUyxHQUFHLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsUUFBZ0MsQ0FBQztRQUN0RSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUN2RSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEtBQThCO1FBQ3JELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OztZQXZGSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQVBPLHdCQUF3QjtZQWxDNUIsaUJBQWlCO1lBRWpCLHdCQUF3QjtZQXVCeEIsd0JBQXdCO1lBRXhCLDRCQUE0QjtZQVI1QiwyQkFBMkI7WUFPM0IsMEJBQTBCOzs7a0NBa0J6QixlQUFlLFNBQUMsd0JBQXdCO29CQUV4QyxXQUFXLFNBQUMsT0FBTztzQkFFbkIsS0FBSztvQkFDTCxLQUFLO3dCQUNMLEtBQUs7Z0NBQ0wsS0FBSyxTQUFDLFdBQVc7cUJBQ2pCLEtBQUs7b0JBQ0wsS0FBSzttQkFFTCxNQUFNO3FCQUNOLE1BQU07b0JBQ04sTUFBTTt3Q0FFTixTQUFTLFNBQUMsd0JBQXdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFR5cGUsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtcclxuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVksXHJcbiAgICBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxyXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcblxyXG5pbXBvcnQge09uQ3JlYXRlZEZvcm1Db250cm9sfSBmcm9tIFwiLi4vLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7Y29sbGVjdFBhdGhBYmxlfSBmcm9tIFwiLi4vLi4vdXRpbHMvbWlzY1wiO1xyXG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZHluYW1pYy1iYXNlLWZvcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RHluYW1pY0Zvcm1TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbFwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUpIGNvbnRlbnRUZW1wbGF0ZUxpc3Q6IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzXCIpIGtsYXNzO1xyXG5cclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIHwgbnVsbCA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gICAgQElucHV0KCkgaG9zdENsYXNzOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dChcInRlbXBsYXRlc1wiKSBpbnB1dFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcbiAgICBASW5wdXQoKSBsYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsO1xyXG5cclxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PigpO1xyXG4gICAgQE91dHB1dCgpIGZvY3VzOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiY29tcG9uZW50Vmlld0NvbnRhaW5lclwiLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlfSkgY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXRlY3RDaGFuZ2VzOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgZ2V0IGNvbXBvbmVudFR5cGUoKTogVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U2VydmljZS5nZXRDdXN0b21Db21wb25lbnRUeXBlKHRoaXMubW9kZWwpID8/IHRoaXMuZ2V0Q29tcG9uZW50VHlwZSh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3RhcnRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5tb2RlbC50eXBlID09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVkpXHJcbiAgICAgICAgICAgID8gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEFsaWduZWRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcywgXCJBUlJBWV9TVEFSVFwiIGFzIGFueSlcclxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0U3RhcnRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVuZFRlbXBsYXRlKCk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsLnR5cGUgPT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSlcclxuICAgICAgICAgICAgPyB0aGlzLmxheW91dFNlcnZpY2UuZ2V0QWxpZ25lZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzLCBcIkFSUkFZX0VORFwiIGFzIGFueSlcclxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RW5kVGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb3JtU2VydmljZSgpOiBEeW5hbWljRm9ybVNlcnZpY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZm9ybVNlcnZpY2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybTogRHluYW1pY0Jhc2VGb3JtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBsYXlvdXRTZXJ2aWNlOiBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IHJlbGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBsYXlvdXRTZXJ2aWNlLCB2YWxpZGF0aW9uU2VydmljZSwgY29tcG9uZW50U2VydmljZSwgcmVsYXRpb25TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uRGV0ZWN0Q2hhbmdlcyA9IHRoaXMuZm9ybVNlcnZpY2Uub25EZXRlY3RDaGFuZ2VzLnN1YnNjcmliZShmb3JtID0+IHtcclxuICAgICAgICAgICAgaWYgKGZvcm0gIT09IHRoaXMuZm9ybSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS51cGRhdGVTZWxlY3RPcHRpb25zKHRoaXMubW9kZWwsIHRoaXMuY29udHJvbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLm9uRGV0ZWN0Q2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExhYmVsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgbGFiZWwgPSBjb2xsZWN0UGF0aEFibGUodGhpcy5tb2RlbCwgcCA9PiBwLmxhYmVsKTtcclxuICAgICAgICBpZiAobGFiZWwubGVuZ3RoID09IDApIHJldHVybiBcIlwiO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0/LmxhYmVsUHJlZml4KSB7XHJcbiAgICAgICAgICAgIGxhYmVsLnVuc2hpZnQodGhpcy5mb3JtLmxhYmVsUHJlZml4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxhYmVsLmpvaW4oXCIuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpIHtcclxuICAgICAgICBzdXBlci5jcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpO1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhcyBPbkNyZWF0ZWRGb3JtQ29udHJvbDtcclxuICAgICAgICBpZiAoIWNvbXBvbmVudCB8fCAhT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihjb21wb25lbnQub25DcmVhdGVkKSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbXBvbmVudC5vbkNyZWF0ZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50VHlwZShtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiBUeXBlPER5bmFtaWNGb3JtQ29udHJvbD4gfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,53 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChildren } from "@angular/core";
2
+ import { DynamicFormControlContainerComponent, DynamicFormGroupComponent, DynamicFormGroupModel, DynamicFormLayoutService, DynamicFormValidationService } from "@ng-dynamic-forms/core";
3
+ import { collectPathAble } from "../../utils/misc";
4
+ export class DynamicBaseFormGroupComponent extends DynamicFormGroupComponent {
5
+ constructor(layoutService, validationService) {
6
+ super(layoutService, validationService);
7
+ this.layoutService = layoutService;
8
+ this.validationService = validationService;
9
+ this.blur = new EventEmitter();
10
+ this.change = new EventEmitter();
11
+ this.customEvent = new EventEmitter();
12
+ this.focus = new EventEmitter();
13
+ }
14
+ getClass(context, place, model) {
15
+ return [
16
+ context == "element" ? this.getModelClass(model) : null,
17
+ super.getClass(context, place, model)
18
+ ].filter(cls => !!cls).join(" ");
19
+ }
20
+ getModelClass(model) {
21
+ const parts = collectPathAble(model, p => p.id);
22
+ if (parts.length == 0)
23
+ return "";
24
+ if (model instanceof DynamicFormGroupModel) {
25
+ return `form-group-${parts.join("-")}`;
26
+ }
27
+ return `form-control-${parts.join("-")}`;
28
+ }
29
+ }
30
+ DynamicBaseFormGroupComponent.decorators = [
31
+ { type: Component, args: [{
32
+ selector: "dynamic-base-form-group",
33
+ template: "",
34
+ changeDetection: ChangeDetectionStrategy.OnPush
35
+ },] }
36
+ ];
37
+ DynamicBaseFormGroupComponent.ctorParameters = () => [
38
+ { type: DynamicFormLayoutService },
39
+ { type: DynamicFormValidationService }
40
+ ];
41
+ DynamicBaseFormGroupComponent.propDecorators = {
42
+ formLayout: [{ type: Input }],
43
+ group: [{ type: Input }],
44
+ layout: [{ type: Input }],
45
+ model: [{ type: Input }],
46
+ templates: [{ type: Input }],
47
+ blur: [{ type: Output }],
48
+ change: [{ type: Output }],
49
+ customEvent: [{ type: Output }],
50
+ focus: [{ type: Output }],
51
+ components: [{ type: ViewChildren, args: [forwardRef(() => DynamicFormControlContainerComponent),] }]
52
+ };
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxvQ0FBb0MsRUFNcEMseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUVyQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBRS9CLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBT2pELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx5QkFBeUI7SUFnQnhFLFlBQXNCLGFBQXVDLEVBQ3ZDLGlCQUErQztRQUNqRSxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFGdEIsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFUM0QsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxnQkFBVyxHQUFnRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlFLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVF4RCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXdDLEVBQUUsS0FBb0MsRUFBRSxLQUErQjtRQUNwSCxPQUFPO1lBQ0gsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN2RCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1NBQ3hDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsYUFBYSxDQUFDLEtBQStCO1FBQ25ELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEtBQUssWUFBWSxxQkFBcUIsRUFBRTtZQUN4QyxPQUFPLGNBQWMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxnQkFBZ0IsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7OztZQXhDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQVZHLHdCQUF3QjtZQUN4Qiw0QkFBNEI7Ozt5QkFZM0IsS0FBSztvQkFDTCxLQUFLO3FCQUNMLEtBQUs7b0JBQ0wsS0FBSzt3QkFDTCxLQUFLO21CQUVMLE1BQU07cUJBQ04sTUFBTTswQkFDTixNQUFNO29CQUNOLE1BQU07eUJBRU4sWUFBWSxTQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUdyb3VwQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Hcm91cE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1MYXlvdXQsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtjb2xsZWN0UGF0aEFibGV9IGZyb20gXCIuLi8uLi91dGlscy9taXNjXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtYmFzZS1mb3JtLWdyb3VwXCIsXHJcbiAgICB0ZW1wbGF0ZTogXCJcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtR3JvdXBDb21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIGZvcm1MYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtR3JvdXBNb2RlbDtcclxuICAgIEBJbnB1dCgpIHRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjdXN0b21FdmVudDogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCkpXHJcbiAgICBjb21wb25lbnRzOiBRdWVyeUxpc3Q8RHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50PjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHZhbGlkYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIobGF5b3V0U2VydmljZSwgdmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENsYXNzKGNvbnRleHQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsIHBsYWNlOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSwgbW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgY29udGV4dCA9PSBcImVsZW1lbnRcIiA/IHRoaXMuZ2V0TW9kZWxDbGFzcyhtb2RlbCkgOiBudWxsLFxyXG4gICAgICAgICAgICBzdXBlci5nZXRDbGFzcyhjb250ZXh0LCBwbGFjZSwgbW9kZWwpXHJcbiAgICAgICAgXS5maWx0ZXIoY2xzID0+ICEhY2xzKS5qb2luKFwiIFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0TW9kZWxDbGFzcyhtb2RlbD86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IGNvbGxlY3RQYXRoQWJsZShtb2RlbCwgcCA9PiBwLmlkKTtcclxuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09IDApIHJldHVybiBcIlwiO1xyXG4gICAgICAgIGlmIChtb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYGZvcm0tZ3JvdXAtJHtwYXJ0cy5qb2luKFwiLVwiKX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYGZvcm0tY29udHJvbC0ke3BhcnRzLmpvaW4oXCItXCIpfWA7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -3,9 +3,10 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren,
3
3
  import { NgForm } from "@angular/forms";
4
4
  import { Subscription } from "rxjs";
5
5
  import { first } from "rxjs/operators";
6
- import { DynamicFormComponent, DynamicFormComponentService, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
6
+ import { DynamicFormComponent, DynamicFormComponentService, DynamicFormGroupModel, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
7
7
  import { EventsService, ObservableUtils } from "@stemy/ngx-utils";
8
8
  import { DynamicFormService } from "../../services/dynamic-form.service";
9
+ import { collectPathAble } from "../../utils/misc";
9
10
  export class DynamicBaseFormComponent extends DynamicFormComponent {
10
11
  constructor(formService, events, changeDetectorRef, componentService) {
11
12
  super(changeDetectorRef, componentService);
@@ -70,6 +71,15 @@ export class DynamicBaseFormComponent extends DynamicFormComponent {
70
71
  this.formService.clearFormArray(formArray, formArrayModel);
71
72
  this.changeDetectorRef.detectChanges();
72
73
  }
74
+ getClass(model) {
75
+ const parts = collectPathAble(model, p => p.id);
76
+ if (parts.length == 0)
77
+ return "";
78
+ if (model instanceof DynamicFormGroupModel) {
79
+ return `form-group-${parts.join("-")}`;
80
+ }
81
+ return `form-control-${parts.join("-")}`;
82
+ }
73
83
  validate(showErrors = true) {
74
84
  if (!this.group)
75
85
  return Promise.resolve();
@@ -126,4 +136,4 @@ DynamicBaseFormComponent.propDecorators = {
126
136
  onSubmit: [{ type: Output }],
127
137
  ngForm: [{ type: ViewChild, args: [NgForm,] }]
128
138
  };
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNNLFNBQVMsRUFDeEIsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUVILG9CQUFvQixFQUNwQiwyQkFBMkIsRUFJM0Isd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQU92RSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsb0JBQW9CO0lBMkI5RCxZQUFpRCxXQUErQixFQUNwQyxNQUFxQixFQUNyRCxpQkFBb0MsRUFDcEMsZ0JBQTZDO1FBQ3JELEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBSkUsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFJN0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLElB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QUFZLFNBQUMsd0JBQXdCOzZCQU1yQyxNQUFNOzRCQUNOLE1BQU07dUJBQ04sTUFBTTtxQkFFTixTQUFTLFNBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLFxyXG4gICAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtQXJyYXksIEZvcm1Hcm91cCwgTmdGb3JtfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7Zmlyc3R9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Zvcm1BcnJheU1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxyXG4gICAgRHluYW1pY0Zvcm1Nb2RlbCxcclxuICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxyXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XHJcbmltcG9ydCB7RXZlbnRzU2VydmljZSwgT2JzZXJ2YWJsZVV0aWxzfSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU3RhdGUsIElEeW5hbWljRm9ybSwgSUR5bmFtaWNGb3JtQmFzZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtYmFzZS1mb3JtXCIsXHJcbiAgICB0ZW1wbGF0ZTogXCJcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgRHluYW1pY0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIElEeW5hbWljRm9ybSB7XHJcblxyXG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIG1vZGVsOiBEeW5hbWljRm9ybU1vZGVsO1xyXG4gICAgQElucHV0KCkgbGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcclxuICAgIEBJbnB1dCgpIGxhYmVsUHJlZml4OiBzdHJpbmc7XHJcblxyXG4gICAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD47XHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xyXG4gICAgQE91dHB1dCgpIGZvY3VzOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlKSBjb250ZW50VGVtcGxhdGVzOiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPjtcclxuICAgIEBWaWV3Q2hpbGRyZW4oRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlKSB2aWV3VGVtcGxhdGVzOiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPjtcclxuXHJcbiAgICBnZXQgc3RhdHVzKCk6IER5bmFtaWNGb3JtU3RhdGUge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5ncm91cCA/IG51bGwgOiB0aGlzLmdyb3VwLnN0YXR1cyBhcyBEeW5hbWljRm9ybVN0YXRlO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUJhc2U+O1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm1CYXNlPjtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUJhc2U+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTmdGb3JtKVxyXG4gICAgcHJvdGVjdGVkIG5nRm9ybTogTmdGb3JtO1xyXG4gICAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJvdGVjdGVkIGdyb3VwU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChEeW5hbWljRm9ybVNlcnZpY2UpIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBEeW5hbWljRm9ybVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEV2ZW50c1NlcnZpY2UpIHJlYWRvbmx5IGV2ZW50czogRXZlbnRzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSwpIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG9uZW50U2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5ibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuICAgICAgICB0aGlzLmNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcbiAgICAgICAgdGhpcy5mb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtQmFzZT4oKTtcclxuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUJhc2U+KCk7XHJcbiAgICAgICAgdGhpcy5vblN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtQmFzZT4oKTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IG5ldyBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPigpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5sYWJlbFByZWZpeCA9IFwibGFiZWxcIjtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBTdWJzY3JpcHRpb24gPSBPYnNlcnZhYmxlVXRpbHMubXVsdGlTdWJzY3JpcHRpb24oXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlLmVtaXQodGhpcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQodGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS5ub3RpZnlDaGFuZ2VzKHRoaXMubW9kZWwsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gT2JzZXJ2YWJsZVV0aWxzLm11bHRpU3Vic2NyaXB0aW9uKFxyXG4gICAgICAgICAgICBPYnNlcnZhYmxlVXRpbHMuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3RzOiBbdGhpcy5jb250ZW50VGVtcGxhdGVzLmNoYW5nZXMsIHRoaXMudmlld1RlbXBsYXRlcy5jaGFuZ2VzXSxcclxuICAgICAgICAgICAgICAgICAgICBjYjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSB0aGlzLmNvbnRlbnRUZW1wbGF0ZXMudG9BcnJheSgpLmNvbmNhdCh0aGlzLnZpZXdUZW1wbGF0ZXMudG9BcnJheSgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZXMucmVzZXQodGVtcGxhdGVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzLmxhbmd1YWdlQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS5kZXRlY3RDaGFuZ2VzKHRoaXMpXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB0aGlzLm5nRm9ybS5uZ1N1Ym1pdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnNlcnRGb3JtQXJyYXlHcm91cChpbmRleDogbnVtYmVyLCBmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuaW5zZXJ0Rm9ybUFycmF5R3JvdXAoaW5kZXgsIGZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWwpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5yZW1vdmVGb3JtQXJyYXlHcm91cChpbmRleCwgZm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbW92ZUZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIHN0ZXA6IG51bWJlciwgZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLm1vdmVGb3JtQXJyYXlHcm91cChpbmRleCwgc3RlcCwgZm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJGb3JtQXJyYXkoZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLmNsZWFyRm9ybUFycmF5KGZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWwpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKHNob3dFcnJvcnM6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXApIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXAuc3RhdHVzQ2hhbmdlcy5waXBlKGZpcnN0KHN0YXR1cyA9PiBzdGF0dXMgPT0gXCJWQUxJRFwiIHx8IHN0YXR1cyA9PSBcIklOVkFMSURcIikpLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNob3dFcnJvcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnNob3dFcnJvcnModGhpcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFwiVkFMSURcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2VyaWFsaXplKHZhbGlkYXRlPzogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmdyb3VwKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBpZiAodmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5mb3JtU2VydmljZS5zZXJpYWxpemUodGhpcy5tb2RlbCwgdGhpcy5ncm91cCk7XHJcbiAgICB9XHJcbn1cclxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsRUFDVCxZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBRUgsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUczQixxQkFBcUIsRUFHckIsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFPakQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjtJQTJCOUQsWUFBaUQsV0FBK0IsRUFDcEMsTUFBcUIsRUFDckQsaUJBQW9DLEVBQ3BDLGdCQUE2QztRQUNyRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUpFLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBSTdELElBQUksQ0FBQyxJQUFJ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LENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEUsQ0FBQztLQUFBOzs7WUE5SUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFFBQVEsRUFBRSxFQUFFO2dCQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPO2FBQ25EOzs7WUFQTyxrQkFBa0IsdUJBbUNULE1BQU0sU0FBQyxrQkFBa0I7WUFyQ2xDLGFBQWEsdUJBc0NKLE1BQU0sU0FBQyxhQUFhO1lBakVqQyxpQkFBaUI7WUFtQmpCLDJCQUEyQjs7O29CQW9CMUIsS0FBSztvQkFDTCxLQUFLO3FCQUNMLEtBQUs7MEJBQ0wsS0FBSzttQkFFTCxNQUFNO3FCQUNOLE1BQU07b0JBQ04sTUFBTTsrQkFFTixlQUFlLFNBQUMsd0JBQXdCOzRCQUN4QyxZQUFZLFNBQUMsd0JBQXdCOzZCQU1yQyxNQUFNOzRCQUNOLE1BQU07dUJBQ04sTUFBTTtxQkFFTixTQUFTLFNBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUFycmF5LCBGb3JtR3JvdXAsIE5nRm9ybX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge2ZpcnN0fSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtcclxuICAgIER5bmFtaWNGb3JtQXJyYXlNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtR3JvdXBNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxyXG4gICAgRHluYW1pY0Zvcm1Nb2RlbCxcclxuICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxyXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XHJcbmltcG9ydCB7RXZlbnRzU2VydmljZSwgT2JzZXJ2YWJsZVV0aWxzfSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU3RhdGUsIElEeW5hbWljRm9ybSwgSUR5bmFtaWNGb3JtQmFzZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Y29sbGVjdFBhdGhBYmxlfSBmcm9tIFwiLi4vLi4vdXRpbHMvbWlzY1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJkeW5hbWljLWJhc2UtZm9ybVwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNCYXNlRm9ybUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBJRHluYW1pY0Zvcm0ge1xyXG5cclxuICAgIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgICBASW5wdXQoKSBtb2RlbDogRHluYW1pY0Zvcm1Nb2RlbDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1MYXlvdXQ7XHJcbiAgICBASW5wdXQoKSBsYWJlbFByZWZpeDogc3RyaW5nO1xyXG5cclxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xyXG4gICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcclxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgY29udGVudFRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcbiAgICBAVmlld0NoaWxkcmVuKER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgdmlld1RlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcblxyXG4gICAgZ2V0IHN0YXR1cygpOiBEeW5hbWljRm9ybVN0YXRlIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuZ3JvdXAgPyBudWxsIDogdGhpcy5ncm91cC5zdGF0dXMgYXMgRHluYW1pY0Zvcm1TdGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb25TdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm1CYXNlPjtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtQmFzZT47XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb25TdWJtaXQ6IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm1CYXNlPjtcclxuXHJcbiAgICBAVmlld0NoaWxkKE5nRm9ybSlcclxuICAgIHByb3RlY3RlZCBuZ0Zvcm06IE5nRm9ybTtcclxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHByb3RlY3RlZCBncm91cFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRHluYW1pY0Zvcm1TZXJ2aWNlKSByZWFkb25seSBmb3JtU2VydmljZTogRHluYW1pY0Zvcm1TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChFdmVudHNTZXJ2aWNlKSByZWFkb25seSBldmVudHM6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsKSB7XHJcbiAgICAgICAgc3VwZXIoY2hhbmdlRGV0ZWN0b3JSZWYsIGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PigpO1xyXG4gICAgICAgIHRoaXMuZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PigpO1xyXG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUJhc2U+KCk7XHJcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm1CYXNlPigpO1xyXG4gICAgICAgIHRoaXMub25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUJhc2U+KCk7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMgPSBuZXcgUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4oKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgICAgICB0aGlzLmdyb3VwU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgICAgIHRoaXMubGFiZWxQcmVmaXggPSBcImxhYmVsXCI7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ3JvdXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICBpZiAodGhpcy5ncm91cCkge1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwU3Vic2NyaXB0aW9uID0gT2JzZXJ2YWJsZVV0aWxzLm11bHRpU3Vic2NyaXB0aW9uKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZS5lbWl0KHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uubm90aWZ5Q2hhbmdlcyh0aGlzLm1vZGVsLCB0aGlzLmdyb3VwKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IE9ic2VydmFibGVVdGlscy5tdWx0aVN1YnNjcmlwdGlvbihcclxuICAgICAgICAgICAgT2JzZXJ2YWJsZVV0aWxzLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0czogW3RoaXMuY29udGVudFRlbXBsYXRlcy5jaGFuZ2VzLCB0aGlzLnZpZXdUZW1wbGF0ZXMuY2hhbmdlc10sXHJcbiAgICAgICAgICAgICAgICAgICAgY2I6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGVtcGxhdGVzID0gdGhpcy5jb250ZW50VGVtcGxhdGVzLnRvQXJyYXkoKS5jb25jYXQodGhpcy52aWV3VGVtcGxhdGVzLnRvQXJyYXkoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzLnJlc2V0KHRlbXBsYXRlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50cy5sYW5ndWFnZUNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZGV0ZWN0Q2hhbmdlcyh0aGlzKVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5uZ0Zvcm0ubmdTdWJtaXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TdWJtaXQuZW1pdCh0aGlzKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLmdyb3VwU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0Rm9ybUFycmF5R3JvdXAoaW5kZXg6IG51bWJlciwgZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLmluc2VydEZvcm1BcnJheUdyb3VwKGluZGV4LCBmb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVGb3JtQXJyYXlHcm91cChpbmRleDogbnVtYmVyLCBmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UucmVtb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXgsIGZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWwpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG1vdmVGb3JtQXJyYXlHcm91cChpbmRleDogbnVtYmVyLCBzdGVwOiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5tb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXgsIHN0ZXAsIGZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWwpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyRm9ybUFycmF5KGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5jbGVhckZvcm1BcnJheShmb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDbGFzcyhtb2RlbD86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IGNvbGxlY3RQYXRoQWJsZShtb2RlbCwgcCA9PiBwLmlkKTtcclxuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09IDApIHJldHVybiBcIlwiO1xyXG4gICAgICAgIGlmIChtb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYGZvcm0tZ3JvdXAtJHtwYXJ0cy5qb2luKFwiLVwiKX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYGZvcm0tY29udHJvbC0ke3BhcnRzLmpvaW4oXCItXCIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgdmFsaWRhdGUoc2hvd0Vycm9yczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5ncm91cCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cC5zdGF0dXNDaGFuZ2VzLnBpcGUoZmlyc3Qoc3RhdHVzID0+IHN0YXR1cyA9PSBcIlZBTElEXCIgfHwgc3RhdHVzID09IFwiSU5WQUxJRFwiKSkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2hvd0Vycm9ycykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uuc2hvd0Vycm9ycyh0aGlzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gXCJWQUxJRFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzZXJpYWxpemUodmFsaWRhdGU/OiBib29sZWFuKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXApIHJldHVybiBudWxsO1xyXG4gICAgICAgIGlmICh2YWxpZGF0ZSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZvcm1TZXJ2aWNlLnNlcmlhbGl6ZSh0aGlzLm1vZGVsLCB0aGlzLmdyb3VwKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,18 +1,21 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { FormsModule, NG_VALIDATORS, ReactiveFormsModule } from "@angular/forms";
4
- import { DYNAMIC_VALIDATORS, DynamicFormService as BaseDynamicFormService, DynamicFormValidationService as BaseDynamicFormValidationService } from "@ng-dynamic-forms/core";
4
+ import { DYNAMIC_VALIDATORS, DynamicFormService as BaseDynamicFormService } from "@ng-dynamic-forms/core";
5
5
  import { NgxUtilsModule } from "@stemy/ngx-utils";
6
- import { DynamicFormService } from "./services/dynamic-form.service";
7
6
  import { AsyncSubmitDirective } from "./directives/async-submit.directive";
8
7
  import { validateItemsMaxLength, validateItemsMaxValue, validateItemsMinLength, validateItemsMinValue, validateJSON, validatePhone, validateRequiredTranslation } from "./utils/validators";
9
8
  import { DynamicBaseFormComponent } from "./components/base/dynamic-base-form.component";
9
+ import { DynamicBaseFormArrayComponent } from "./components/base/dynamic-base-form-array.component";
10
10
  import { DynamicBaseFormControlContainerComponent } from "./components/base/dynamic-base-form-control-container.component";
11
- import { DynamicFormValidationService } from "./services/dynamic-form-validation.service";
11
+ import { DynamicBaseFormGroupComponent } from "./components/base/dynamic-base-form-group.component";
12
+ import { DynamicFormService } from "./services/dynamic-form.service";
12
13
  // --- Components ---
13
14
  export const components = [
14
15
  DynamicBaseFormComponent,
15
- DynamicBaseFormControlContainerComponent
16
+ DynamicBaseFormArrayComponent,
17
+ DynamicBaseFormControlContainerComponent,
18
+ DynamicBaseFormGroupComponent
16
19
  ];
17
20
  // --- Directives ---
18
21
  export const directives = [
@@ -35,14 +38,9 @@ export class NgxDynamicFormModule {
35
38
  ngModule: NgxDynamicFormModule,
36
39
  providers: [
37
40
  DynamicFormService,
38
- DynamicFormValidationService,
39
41
  {
40
42
  provide: BaseDynamicFormService,
41
43
  useExisting: DynamicFormService
42
- },
43
- {
44
- provide: BaseDynamicFormValidationService,
45
- useExisting: DynamicFormValidationService
46
44
  }
47
45
  ]
48
46
  };
@@ -86,4 +84,4 @@ NgxDynamicFormModule.decorators = [
86
84
  },] }
87
85
  ];
88
86
  export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6 };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWR5bmFtaWMtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmd4LWR5bmFtaWMtZm9ybS9uZ3gtZHluYW1pYy1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGtCQUFrQixJQUFJLHNCQUFzQixFQUM1Qyw0QkFBNEIsSUFBSSxnQ0FBZ0MsRUFHbkUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFekUsT0FBTyxFQUNILHNCQUFzQixFQUFFLHFCQUFxQixFQUM3QyxzQkFBc0IsRUFBRSxxQkFBcUIsRUFDN0MsWUFBWSxFQUNaLGFBQWEsRUFDYiwyQkFBMkIsRUFDOUIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0NBQXdDLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUN6SCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RixxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLHdCQUF3QjtJQUN4Qix3Q0FBd0M7Q0FDM0MsQ0FBQztBQUVGLHFCQUFxQjtBQUNyQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIsb0JBQW9CO0NBQ3ZCLENBQUM7QUFFRixnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztXQXlCbUIsWUFBWSxPQUNaLDJCQUEyQixPQUMzQixzQkFBc0IsT0FDdEIsc0JBQXNCLE9BQ3RCLHFCQUFxQixPQUNyQixxQkFBcUIsT0FHMUMsSUFBSSxHQUFHLENBQXVDO0lBQ3BELENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztJQUN0QixDQUFDLHFCQUFxQixFQUFFLDJCQUEyQixDQUFDO0lBQ3BELENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQztJQUN4QixDQUFDLGdCQUFnQixFQUFFLHNCQUFzQixDQUFDO0lBQzFDLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUM7SUFDMUMsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUM7SUFDeEMsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUM7Q0FDM0MsQ0FBQztBQUlkLE1BQU0sT0FBTyxvQkFBb0I7SUFFN0IsTUFBTSxDQUFDLE9BQU87UUFDVixPQUFPO1lBQ0gsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixTQUFTLEVBQUU7Z0JBQ1Asa0JBQWtCO2dCQUNsQiw0QkFBNEI7Z0JBQzVCO29CQUNJLE9BQU8sRUFBRSxzQkFBc0I7b0JBQy9CLFdBQVcsRUFBRSxrQkFBa0I7aUJBQ2xDO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7b0JBQ3pDLFdBQVcsRUFBRSw0QkFBNEI7aUJBQzVDO2FBQ0o7U0FDSixDQUFBO0lBQ0wsQ0FBQzs7O1lBN0RKLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1YsR0FBRyxVQUFVO29CQUNiLEdBQUcsVUFBVTtvQkFDYixHQUFHLEtBQUs7aUJBQ1g7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGNBQWM7aUJBQ2pCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxHQUFHLFVBQVU7b0JBQ2IsR0FBRyxVQUFVO29CQUNiLEdBQUcsS0FBSztvQkFDUixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsY0FBYztpQkFDakI7Z0JBQ0QsZUFBZSxFQUFFLFVBQVU7Z0JBQzNCLFNBQVMsRUFBRTtvQkFDUCxHQUFHLEtBQUs7b0JBQ1IsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsSUFBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7b0JBQzdELEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLElBQTZCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztvQkFDNUUsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsSUFBd0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO29CQUN2RSxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxJQUF3QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7b0JBQ3ZFLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLElBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztvQkFDdEUsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsSUFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO29CQUN0RTt3QkFDSSxPQUFPLEVBQUUsa0JBQWtCO3dCQUMzQixRQUFRLElBUU47cUJBQ0w7aUJBQ0o7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gICAgRFlOQU1JQ19WQUxJREFUT1JTLFxyXG4gICAgRHluYW1pY0Zvcm1TZXJ2aWNlIGFzIEJhc2VEeW5hbWljRm9ybVNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIGFzIEJhc2VEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgVmFsaWRhdG9yLFxyXG4gICAgVmFsaWRhdG9yRmFjdG9yeVxyXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XHJcbmltcG9ydCB7Tmd4VXRpbHNNb2R1bGV9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcblxyXG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2VcIjtcclxuXHJcbmltcG9ydCB7QXN5bmNTdWJtaXREaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYXN5bmMtc3VibWl0LmRpcmVjdGl2ZVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIHZhbGlkYXRlSXRlbXNNYXhMZW5ndGgsIHZhbGlkYXRlSXRlbXNNYXhWYWx1ZSxcclxuICAgIHZhbGlkYXRlSXRlbXNNaW5MZW5ndGgsIHZhbGlkYXRlSXRlbXNNaW5WYWx1ZSxcclxuICAgIHZhbGlkYXRlSlNPTixcclxuICAgIHZhbGlkYXRlUGhvbmUsXHJcbiAgICB2YWxpZGF0ZVJlcXVpcmVkVHJhbnNsYXRpb25cclxufSBmcm9tIFwiLi91dGlscy92YWxpZGF0b3JzXCI7XHJcblxyXG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cclxuZXhwb3J0IGNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICBEeW5hbWljQmFzZUZvcm1Db21wb25lbnQsXHJcbiAgICBEeW5hbWljQmFzZUZvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50XHJcbl07XHJcblxyXG4vLyAtLS0gRGlyZWN0aXZlcyAtLS1cclxuZXhwb3J0IGNvbnN0IGRpcmVjdGl2ZXMgPSBbXHJcbiAgICBBc3luY1N1Ym1pdERpcmVjdGl2ZSxcclxuXTtcclxuXHJcbi8vIC0tLSBQaXBlcyAtLS1cclxuZXhwb3J0IGNvbnN0IHBpcGVzID0gW107XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgLi4uY29tcG9uZW50cyxcclxuICAgICAgICAuLi5kaXJlY3RpdmVzLFxyXG4gICAgICAgIC4uLnBpcGVzXHJcbiAgICBdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE5neFV0aWxzTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIC4uLmNvbXBvbmVudHMsXHJcbiAgICAgICAgLi4uZGlyZWN0aXZlcyxcclxuICAgICAgICAuLi5waXBlcyxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE5neFV0aWxzTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZW50cnlDb21wb25lbnRzOiBjb21wb25lbnRzLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgLi4ucGlwZXMsXHJcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZVZhbHVlOiB2YWxpZGF0ZUpTT04sIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlVmFsdWU6IHZhbGlkYXRlUmVxdWlyZWRUcmFuc2xhdGlvbiwgbXVsdGk6IHRydWV9LFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVJdGVtc01pbkxlbmd0aCwgbXVsdGk6IHRydWV9LFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVJdGVtc01heExlbmd0aCwgbXVsdGk6IHRydWV9LFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVJdGVtc01pblZhbHVlLCBtdWx0aTogdHJ1ZX0sXHJcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZVZhbHVlOiB2YWxpZGF0ZUl0ZW1zTWF4VmFsdWUsIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IERZTkFNSUNfVkFMSURBVE9SUyxcclxuICAgICAgICAgICAgdXNlVmFsdWU6IG5ldyBNYXA8c3RyaW5nLCBWYWxpZGF0b3IgfCBWYWxpZGF0b3JGYWN0b3J5PihbXHJcbiAgICAgICAgICAgICAgICBbXCJqc29uXCIsIHZhbGlkYXRlSlNPTl0sXHJcbiAgICAgICAgICAgICAgICBbXCJyZXF1aXJlZFRyYW5zbGF0aW9uXCIsIHZhbGlkYXRlUmVxdWlyZWRUcmFuc2xhdGlvbl0sXHJcbiAgICAgICAgICAgICAgICBbXCJwaG9uZVwiLCB2YWxpZGF0ZVBob25lXSxcclxuICAgICAgICAgICAgICAgIFtcIml0ZW1zTWluTGVuZ3RoXCIsIHZhbGlkYXRlSXRlbXNNaW5MZW5ndGhdLFxyXG4gICAgICAgICAgICAgICAgW1wiaXRlbXNNYXhMZW5ndGhcIiwgdmFsaWRhdGVJdGVtc01heExlbmd0aF0sXHJcbiAgICAgICAgICAgICAgICBbXCJpdGVtc01pblZhbHVlXCIsIHZhbGlkYXRlSXRlbXNNaW5WYWx1ZV0sXHJcbiAgICAgICAgICAgICAgICBbXCJpdGVtc01heFZhbHVlXCIsIHZhbGlkYXRlSXRlbXNNYXhWYWx1ZV0sXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4RHluYW1pY0Zvcm1Nb2R1bGUge1xyXG5cclxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4RHluYW1pY0Zvcm1Nb2R1bGU+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuZ01vZHVsZTogTmd4RHluYW1pY0Zvcm1Nb2R1bGUsXHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCYXNlRHluYW1pY0Zvcm1TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBEeW5hbWljRm9ybVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQmFzZUR5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWR5bmFtaWMtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmd4LWR5bmFtaWMtZm9ybS9uZ3gtZHluYW1pYy1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGtCQUFrQixJQUFJLHNCQUFzQixFQUcvQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixhQUFhLEVBQ2IsMkJBQTJCLEVBQzlCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUNILHdDQUF3QyxFQUMzQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBRWxHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLHFCQUFxQjtBQUNyQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIsd0JBQXdCO0lBQ3hCLDZCQUE2QjtJQUM3Qix3Q0FBd0M7SUFDeEMsNkJBQTZCO0NBQ2hDLENBQUM7QUFFRixxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLG9CQUFvQjtDQUN2QixDQUFDO0FBRUYsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7V0F5Qm1CLFlBQVksT0FDWiwyQkFBMkIsT0FDM0Isc0JBQXNCLE9BQ3RCLHNCQUFzQixPQUN0QixxQkFBcUIsT0FDckIscUJBQXFCLE9BRzFDLElBQUksR0FBRyxDQUF1QztJQUNwRCxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUM7SUFDdEIsQ0FBQyxxQkFBcUIsRUFBRSwyQkFBMkIsQ0FBQztJQUNwRCxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUM7SUFDeEIsQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQztJQUMxQyxDQUFDLGdCQUFnQixFQUFFLHNCQUFzQixDQUFDO0lBQzFDLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO0lBQ3hDLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO0NBQzNDLENBQUM7QUFJZCxNQUFNLE9BQU8sb0JBQW9CO0lBRTdCLE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTztZQUNILFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNQLGtCQUFrQjtnQkFDbEI7b0JBQ0ksT0FBTyxFQUFFLHNCQUFzQjtvQkFDL0IsV0FBVyxFQUFFLGtCQUFrQjtpQkFDbEM7YUFDSjtTQUNKLENBQUE7SUFDTCxDQUFDOzs7WUF4REosUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRTtvQkFDVixHQUFHLFVBQVU7b0JBQ2IsR0FBRyxVQUFVO29CQUNiLEdBQUcsS0FBSztpQkFDWDtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsY0FBYztpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLEdBQUcsVUFBVTtvQkFDYixHQUFHLFVBQVU7b0JBQ2IsR0FBRyxLQUFLO29CQUNSLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixjQUFjO2lCQUNqQjtnQkFDRCxlQUFlLEVBQUUsVUFBVTtnQkFDM0IsU0FBUyxFQUFFO29CQUNQLEdBQUcsS0FBSztvQkFDUixFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxJQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztvQkFDN0QsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsSUFBNkIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO29CQUM1RSxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxJQUF3QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7b0JBQ3ZFLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLElBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztvQkFDdkUsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsSUFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO29CQUN0RSxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxJQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7b0JBQ3RFO3dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7d0JBQzNCLFFBQVEsSUFRTjtxQkFDTDtpQkFDSjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgICBEWU5BTUlDX1ZBTElEQVRPUlMsXHJcbiAgICBEeW5hbWljRm9ybVNlcnZpY2UgYXMgQmFzZUR5bmFtaWNGb3JtU2VydmljZSxcclxuICAgIFZhbGlkYXRvcixcclxuICAgIFZhbGlkYXRvckZhY3RvcnlcclxufSBmcm9tIFwiQG5nLWR5bmFtaWMtZm9ybXMvY29yZVwiO1xyXG5pbXBvcnQge05neFV0aWxzTW9kdWxlfSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtBc3luY1N1Ym1pdERpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9hc3luYy1zdWJtaXQuZGlyZWN0aXZlXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgdmFsaWRhdGVJdGVtc01heExlbmd0aCxcclxuICAgIHZhbGlkYXRlSXRlbXNNYXhWYWx1ZSxcclxuICAgIHZhbGlkYXRlSXRlbXNNaW5MZW5ndGgsXHJcbiAgICB2YWxpZGF0ZUl0ZW1zTWluVmFsdWUsXHJcbiAgICB2YWxpZGF0ZUpTT04sXHJcbiAgICB2YWxpZGF0ZVBob25lLFxyXG4gICAgdmFsaWRhdGVSZXF1aXJlZFRyYW5zbGF0aW9uXHJcbn0gZnJvbSBcIi4vdXRpbHMvdmFsaWRhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Db21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1BcnJheUNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWFycmF5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xyXG5cclxuaW1wb3J0IHtEeW5hbWljRm9ybVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcblxyXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cclxuZXhwb3J0IGNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICBEeW5hbWljQmFzZUZvcm1Db21wb25lbnQsXHJcbiAgICBEeW5hbWljQmFzZUZvcm1BcnJheUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNCYXNlRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudFxyXG5dO1xyXG5cclxuLy8gLS0tIERpcmVjdGl2ZXMgLS0tXHJcbmV4cG9ydCBjb25zdCBkaXJlY3RpdmVzID0gW1xyXG4gICAgQXN5bmNTdWJtaXREaXJlY3RpdmUsXHJcbl07XHJcblxyXG4vLyAtLS0gUGlwZXMgLS0tXHJcbmV4cG9ydCBjb25zdCBwaXBlcyA9IFtdO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIC4uLmNvbXBvbmVudHMsXHJcbiAgICAgICAgLi4uZGlyZWN0aXZlcyxcclxuICAgICAgICAuLi5waXBlc1xyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ3hVdGlsc01vZHVsZVxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICAuLi5jb21wb25lbnRzLFxyXG4gICAgICAgIC4uLmRpcmVjdGl2ZXMsXHJcbiAgICAgICAgLi4ucGlwZXMsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ3hVdGlsc01vZHVsZVxyXG4gICAgXSxcclxuICAgIGVudHJ5Q29tcG9uZW50czogY29tcG9uZW50cyxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIC4uLnBpcGVzLFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVKU09OLCBtdWx0aTogdHJ1ZX0sXHJcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZVZhbHVlOiB2YWxpZGF0ZVJlcXVpcmVkVHJhbnNsYXRpb24sIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlVmFsdWU6IHZhbGlkYXRlSXRlbXNNaW5MZW5ndGgsIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlVmFsdWU6IHZhbGlkYXRlSXRlbXNNYXhMZW5ndGgsIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlVmFsdWU6IHZhbGlkYXRlSXRlbXNNaW5WYWx1ZSwgbXVsdGk6IHRydWV9LFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVJdGVtc01heFZhbHVlLCBtdWx0aTogdHJ1ZX0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBEWU5BTUlDX1ZBTElEQVRPUlMsXHJcbiAgICAgICAgICAgIHVzZVZhbHVlOiBuZXcgTWFwPHN0cmluZywgVmFsaWRhdG9yIHwgVmFsaWRhdG9yRmFjdG9yeT4oW1xyXG4gICAgICAgICAgICAgICAgW1wianNvblwiLCB2YWxpZGF0ZUpTT05dLFxyXG4gICAgICAgICAgICAgICAgW1wicmVxdWlyZWRUcmFuc2xhdGlvblwiLCB2YWxpZGF0ZVJlcXVpcmVkVHJhbnNsYXRpb25dLFxyXG4gICAgICAgICAgICAgICAgW1wicGhvbmVcIiwgdmFsaWRhdGVQaG9uZV0sXHJcbiAgICAgICAgICAgICAgICBbXCJpdGVtc01pbkxlbmd0aFwiLCB2YWxpZGF0ZUl0ZW1zTWluTGVuZ3RoXSxcclxuICAgICAgICAgICAgICAgIFtcIml0ZW1zTWF4TGVuZ3RoXCIsIHZhbGlkYXRlSXRlbXNNYXhMZW5ndGhdLFxyXG4gICAgICAgICAgICAgICAgW1wiaXRlbXNNaW5WYWx1ZVwiLCB2YWxpZGF0ZUl0ZW1zTWluVmFsdWVdLFxyXG4gICAgICAgICAgICAgICAgW1wiaXRlbXNNYXhWYWx1ZVwiLCB2YWxpZGF0ZUl0ZW1zTWF4VmFsdWVdLFxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neER5bmFtaWNGb3JtTW9kdWxlIHtcclxuXHJcbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neER5bmFtaWNGb3JtTW9kdWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmdNb2R1bGU6IE5neER5bmFtaWNGb3JtTW9kdWxlLFxyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCYXNlRHluYW1pY0Zvcm1TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBEeW5hbWljRm9ybVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=