@stemy/ngx-dynamic-form 10.2.33 → 13.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/ngx-dynamic-form/common-types.mjs +97 -0
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-array.component.mjs +85 -0
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.mjs +109 -0
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-group.component.mjs +74 -0
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form.component.mjs +158 -0
- package/esm2020/ngx-dynamic-form/directives/async-submit.directive.mjs +111 -0
- package/esm2020/ngx-dynamic-form/ngx-dynamic-form.imports.mjs +22 -0
- package/esm2020/ngx-dynamic-form/ngx-dynamic-form.module.mjs +115 -0
- package/esm2020/ngx-dynamic-form/services/dynamic-form.service.mjs +451 -0
- package/{esm2015/ngx-dynamic-form/utils/dynamic-form-array.model.js → esm2020/ngx-dynamic-form/utils/dynamic-form-array.model.mjs} +0 -0
- package/esm2020/ngx-dynamic-form/utils/form-select-subject.mjs +23 -0
- package/{esm2015/ngx-dynamic-form/utils/form-subject.js → esm2020/ngx-dynamic-form/utils/form-subject.mjs} +0 -0
- package/{esm2015/ngx-dynamic-form/utils/misc.js → esm2020/ngx-dynamic-form/utils/misc.mjs} +0 -0
- package/{esm2015/ngx-dynamic-form/utils/validators.js → esm2020/ngx-dynamic-form/utils/validators.mjs} +0 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +1 -1
- package/esm2020/stemy-ngx-dynamic-form.mjs +5 -0
- package/fesm2015/{stemy-ngx-dynamic-form.js → stemy-ngx-dynamic-form.mjs} +295 -189
- package/fesm2015/stemy-ngx-dynamic-form.mjs.map +1 -0
- package/fesm2020/stemy-ngx-dynamic-form.mjs +1311 -0
- package/fesm2020/stemy-ngx-dynamic-form.mjs.map +1 -0
- package/ngx-dynamic-form/common-types.d.ts +4 -0
- package/ngx-dynamic-form/components/base/dynamic-base-form-array.component.d.ts +3 -0
- package/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.d.ts +3 -0
- package/ngx-dynamic-form/components/base/dynamic-base-form-group.component.d.ts +3 -0
- package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +3 -0
- package/ngx-dynamic-form/directives/async-submit.directive.d.ts +3 -0
- package/ngx-dynamic-form/ngx-dynamic-form.imports.d.ts +10 -0
- package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +14 -9
- package/ngx-dynamic-form/services/dynamic-form.service.d.ts +3 -0
- package/package.json +42 -23
- package/public_api.d.ts +1 -1
- package/stemy-ngx-dynamic-form.d.ts +1 -1
- package/bundles/stemy-ngx-dynamic-form.umd.js +0 -1774
- package/bundles/stemy-ngx-dynamic-form.umd.js.map +0 -1
- package/bundles/stemy-ngx-dynamic-form.umd.min.js +0 -2
- package/bundles/stemy-ngx-dynamic-form.umd.min.js.map +0 -1
- package/esm2015/ngx-dynamic-form/common-types.js +0 -97
- package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-array.component.js +0 -79
- package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.js +0 -102
- package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-group.component.js +0 -65
- package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form.component.js +0 -140
- package/esm2015/ngx-dynamic-form/directives/async-submit.directive.js +0 -100
- package/esm2015/ngx-dynamic-form/ngx-dynamic-form.module.js +0 -87
- package/esm2015/ngx-dynamic-form/services/dynamic-form.service.js +0 -457
- package/esm2015/ngx-dynamic-form/utils/form-select-subject.js +0 -24
- package/esm2015/stemy-ngx-dynamic-form.js +0 -6
- package/fesm2015/stemy-ngx-dynamic-form.js.map +0 -1
- package/stemy-ngx-dynamic-form.metadata.json +0 -1
package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ContentChildren, EventEmitter, HostBinding, Input, Output, ViewChild, ViewContainerRef } from "@angular/core";
|
|
2
|
-
import { DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormComponentService, DynamicFormControlContainerComponent, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
|
|
3
|
-
import { ObjectUtils } from "@stemy/ngx-utils";
|
|
4
|
-
import { collectPathAble } from "../../utils/misc";
|
|
5
|
-
import { DynamicBaseFormComponent } from "./dynamic-base-form.component";
|
|
6
|
-
export class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent {
|
|
7
|
-
constructor(form, changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService) {
|
|
8
|
-
super(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService);
|
|
9
|
-
this.form = form;
|
|
10
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
11
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
12
|
-
this.layoutService = layoutService;
|
|
13
|
-
this.validationService = validationService;
|
|
14
|
-
this.componentService = componentService;
|
|
15
|
-
this.relationService = relationService;
|
|
16
|
-
this.context = null;
|
|
17
|
-
this.blur = new EventEmitter();
|
|
18
|
-
this.change = new EventEmitter();
|
|
19
|
-
this.focus = new EventEmitter();
|
|
20
|
-
}
|
|
21
|
-
get componentType() {
|
|
22
|
-
var _a;
|
|
23
|
-
return (_a = this.componentService.getCustomComponentType(this.model)) !== null && _a !== void 0 ? _a : this.getComponentType(this.model);
|
|
24
|
-
}
|
|
25
|
-
get startTemplate() {
|
|
26
|
-
return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
|
|
27
|
-
? this.layoutService.getAlignedTemplate(this.model, this.templates, "ARRAY_START")
|
|
28
|
-
: this.layoutService.getStartTemplate(this.model, this.templates);
|
|
29
|
-
}
|
|
30
|
-
get endTemplate() {
|
|
31
|
-
return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
|
|
32
|
-
? this.layoutService.getAlignedTemplate(this.model, this.templates, "ARRAY_END")
|
|
33
|
-
: this.layoutService.getEndTemplate(this.model, this.templates);
|
|
34
|
-
}
|
|
35
|
-
get formService() {
|
|
36
|
-
return this.form.formService;
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
this.onDetectChanges = this.formService.onDetectChanges.subscribe(form => {
|
|
40
|
-
if (form !== this.form)
|
|
41
|
-
return;
|
|
42
|
-
this.changeDetectorRef.detectChanges();
|
|
43
|
-
this.formService.updateSelectOptions(this.model, this.control, this.form.model);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
ngOnDestroy() {
|
|
47
|
-
super.ngOnDestroy();
|
|
48
|
-
this.onDetectChanges.unsubscribe();
|
|
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
|
-
}
|
|
60
|
-
createFormControlComponent() {
|
|
61
|
-
var _a;
|
|
62
|
-
super.createFormControlComponent();
|
|
63
|
-
const component = (_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance;
|
|
64
|
-
if (!component || !ObjectUtils.isFunction(component.onCreated))
|
|
65
|
-
return;
|
|
66
|
-
component.onCreated();
|
|
67
|
-
}
|
|
68
|
-
getComponentType(model) {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
DynamicBaseFormControlContainerComponent.decorators = [
|
|
73
|
-
{ type: Component, args: [{
|
|
74
|
-
selector: "dynamic-base-form-control",
|
|
75
|
-
template: "",
|
|
76
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
77
|
-
},] }
|
|
78
|
-
];
|
|
79
|
-
DynamicBaseFormControlContainerComponent.ctorParameters = () => [
|
|
80
|
-
{ type: DynamicBaseFormComponent },
|
|
81
|
-
{ type: ChangeDetectorRef },
|
|
82
|
-
{ type: ComponentFactoryResolver },
|
|
83
|
-
{ type: DynamicFormLayoutService },
|
|
84
|
-
{ type: DynamicFormValidationService },
|
|
85
|
-
{ type: DynamicFormComponentService },
|
|
86
|
-
{ type: DynamicFormRelationService }
|
|
87
|
-
];
|
|
88
|
-
DynamicBaseFormControlContainerComponent.propDecorators = {
|
|
89
|
-
contentTemplateList: [{ type: ContentChildren, args: [DynamicTemplateDirective,] }],
|
|
90
|
-
klass: [{ type: HostBinding, args: ["class",] }],
|
|
91
|
-
context: [{ type: Input }],
|
|
92
|
-
group: [{ type: Input }],
|
|
93
|
-
hostClass: [{ type: Input }],
|
|
94
|
-
inputTemplateList: [{ type: Input, args: ["templates",] }],
|
|
95
|
-
layout: [{ type: Input }],
|
|
96
|
-
model: [{ type: Input }],
|
|
97
|
-
blur: [{ type: Output }],
|
|
98
|
-
change: [{ type: Output }],
|
|
99
|
-
focus: [{ type: Output }],
|
|
100
|
-
componentViewContainerRef: [{ type: ViewChild, args: ["componentViewContainer", { read: ViewContainerRef, static: true },] }]
|
|
101
|
-
};
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsK0JBQStCLEVBRS9CLDJCQUEyQixFQUUzQixvQ0FBb0MsRUFJcEMsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQVF2RSxNQUFNLE9BQU8sd0NBQXlDLFNBQVEsb0NBQW9DO0lBeUM5RixZQUFxQixJQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsd0JBQWtELEVBQ2xELGFBQXVDLEVBQ3ZDLGlCQUErQyxFQUMvQyxnQkFBNkMsRUFDN0MsZUFBMkM7UUFDNUQsS0FBSyxDQUFDLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQVB2RyxTQUFJLEdBQUosSUFBSSxDQUEwQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFDL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE2QjtRQUM3QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUF6Q3ZELFlBQU8sR0FBc0MsSUFBSSxDQUFDO1FBT2pELFNBQUksR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFDMUYsV0FBTSxHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUM1RixVQUFLLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO0lBa0NyRyxDQUFDO0lBNUJELElBQUksYUFBYTs7UUFDYixhQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1DQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSwrQkFBK0IsQ0FBQztZQUN2RCxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBb0IsQ0FBQztZQUN6RixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLCtCQUErQixDQUFDO1lBQ3ZELENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFrQixDQUFDO1lBQ3ZGLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBWUQsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JFLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU87WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFROztRQUNKLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDakMsVUFBSSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxXQUFXLEVBQUU7WUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFUywwQkFBMEI7O1FBQ2hDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ25DLE1BQU0sU0FBUyxHQUFHLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsUUFBZ0MsQ0FBQztRQUN0RSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUN2RSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEtBQThCO1FBQ3JELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OztZQXZGSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQVBPLHdCQUF3QjtZQWxDNUIsaUJBQWlCO1lBRWpCLHdCQUF3QjtZQXVCeEIsd0JBQXdCO1lBRXhCLDRCQUE0QjtZQVI1QiwyQkFBMkI7WUFPM0IsMEJBQTBCOzs7a0NBa0J6QixlQUFlLFNBQUMsd0JBQXdCO29CQUV4QyxXQUFXLFNBQUMsT0FBTztzQkFFbkIsS0FBSztvQkFDTCxLQUFLO3dCQUNMLEtBQUs7Z0NBQ0wsS0FBSyxTQUFDLFdBQVc7cUJBQ2pCLEtBQUs7b0JBQ0wsS0FBSzttQkFFTCxNQUFNO3FCQUNOLE1BQU07b0JBQ04sTUFBTTt3Q0FFTixTQUFTLFNBQUMsd0JBQXdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFR5cGUsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtcclxuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVksXHJcbiAgICBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxyXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcblxyXG5pbXBvcnQge09uQ3JlYXRlZEZvcm1Db250cm9sfSBmcm9tIFwiLi4vLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7Y29sbGVjdFBhdGhBYmxlfSBmcm9tIFwiLi4vLi4vdXRpbHMvbWlzY1wiO1xyXG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZHluYW1pYy1iYXNlLWZvcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RHluYW1pY0Zvcm1TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbFwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUpIGNvbnRlbnRUZW1wbGF0ZUxpc3Q6IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzXCIpIGtsYXNzO1xyXG5cclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIHwgbnVsbCA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gICAgQElucHV0KCkgaG9zdENsYXNzOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dChcInRlbXBsYXRlc1wiKSBpbnB1dFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcbiAgICBASW5wdXQoKSBsYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsO1xyXG5cclxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PigpO1xyXG4gICAgQE91dHB1dCgpIGZvY3VzOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiY29tcG9uZW50Vmlld0NvbnRhaW5lclwiLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlfSkgY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXRlY3RDaGFuZ2VzOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgZ2V0IGNvbXBvbmVudFR5cGUoKTogVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U2VydmljZS5nZXRDdXN0b21Db21wb25lbnRUeXBlKHRoaXMubW9kZWwpID8/IHRoaXMuZ2V0Q29tcG9uZW50VHlwZSh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3RhcnRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5tb2RlbC50eXBlID09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVkpXHJcbiAgICAgICAgICAgID8gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEFsaWduZWRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcywgXCJBUlJBWV9TVEFSVFwiIGFzIGFueSlcclxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0U3RhcnRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVuZFRlbXBsYXRlKCk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsLnR5cGUgPT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSlcclxuICAgICAgICAgICAgPyB0aGlzLmxheW91dFNlcnZpY2UuZ2V0QWxpZ25lZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzLCBcIkFSUkFZX0VORFwiIGFzIGFueSlcclxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RW5kVGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb3JtU2VydmljZSgpOiBEeW5hbWljRm9ybVNlcnZpY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZm9ybVNlcnZpY2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybTogRHluYW1pY0Jhc2VGb3JtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBsYXlvdXRTZXJ2aWNlOiBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IHJlbGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBsYXlvdXRTZXJ2aWNlLCB2YWxpZGF0aW9uU2VydmljZSwgY29tcG9uZW50U2VydmljZSwgcmVsYXRpb25TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uRGV0ZWN0Q2hhbmdlcyA9IHRoaXMuZm9ybVNlcnZpY2Uub25EZXRlY3RDaGFuZ2VzLnN1YnNjcmliZShmb3JtID0+IHtcclxuICAgICAgICAgICAgaWYgKGZvcm0gIT09IHRoaXMuZm9ybSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS51cGRhdGVTZWxlY3RPcHRpb25zKHRoaXMubW9kZWwsIHRoaXMuY29udHJvbCwgdGhpcy5mb3JtLm1vZGVsKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMub25EZXRlY3RDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBsYWJlbCA9IGNvbGxlY3RQYXRoQWJsZSh0aGlzLm1vZGVsLCBwID0+IHAubGFiZWwpO1xyXG4gICAgICAgIGlmIChsYWJlbC5sZW5ndGggPT0gMCkgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybT8ubGFiZWxQcmVmaXgpIHtcclxuICAgICAgICAgICAgbGFiZWwudW5zaGlmdCh0aGlzLmZvcm0ubGFiZWxQcmVmaXgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbGFiZWwuam9pbihcIi5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUZvcm1Db250cm9sQ29tcG9uZW50KCkge1xyXG4gICAgICAgIHN1cGVyLmNyZWF0ZUZvcm1Db250cm9sQ29tcG9uZW50KCk7XHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlIGFzIE9uQ3JlYXRlZEZvcm1Db250cm9sO1xyXG4gICAgICAgIGlmICghY29tcG9uZW50IHx8ICFPYmplY3RVdGlscy5pc0Z1bmN0aW9uKGNvbXBvbmVudC5vbkNyZWF0ZWQpKSByZXR1cm47XHJcbiAgICAgICAgY29tcG9uZW50Lm9uQ3JlYXRlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRDb21wb25lbnRUeXBlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IFR5cGU8RHluYW1pY0Zvcm1Db250cm9sPiB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChildren } from "@angular/core";
|
|
2
|
-
import { DynamicFormControlContainerComponent, DynamicFormGroupComponent, DynamicFormGroupModel, DynamicFormLayoutService, DynamicFormValidationService, DynamicFormValueControlModel } from "@ng-dynamic-forms/core";
|
|
3
|
-
import { DynamicFormArrayModel } from "../../utils/dynamic-form-array.model";
|
|
4
|
-
import { collectPathAble } from "../../utils/misc";
|
|
5
|
-
export class DynamicBaseFormGroupComponent extends DynamicFormGroupComponent {
|
|
6
|
-
constructor(layoutService, validationService) {
|
|
7
|
-
super(layoutService, validationService);
|
|
8
|
-
this.layoutService = layoutService;
|
|
9
|
-
this.validationService = validationService;
|
|
10
|
-
this.blur = new EventEmitter();
|
|
11
|
-
this.change = new EventEmitter();
|
|
12
|
-
this.customEvent = new EventEmitter();
|
|
13
|
-
this.focus = new EventEmitter();
|
|
14
|
-
}
|
|
15
|
-
getClass(context, place, model) {
|
|
16
|
-
return [
|
|
17
|
-
context == "element" ? this.getModelClass(model) : null,
|
|
18
|
-
context == "element" ? this.getAdditionalClass(model) : null,
|
|
19
|
-
super.getClass(context, place, model)
|
|
20
|
-
].filter(cls => !!cls).join(" ");
|
|
21
|
-
}
|
|
22
|
-
getModelClass(model) {
|
|
23
|
-
const parts = collectPathAble(model, p => p.id);
|
|
24
|
-
if (parts.length == 0)
|
|
25
|
-
return "";
|
|
26
|
-
if (model instanceof DynamicFormGroupModel) {
|
|
27
|
-
return `form-group-${parts.join("-")}`;
|
|
28
|
-
}
|
|
29
|
-
return `form-control-${parts.join("-")}`;
|
|
30
|
-
}
|
|
31
|
-
getAdditionalClass(model) {
|
|
32
|
-
var _a, _b;
|
|
33
|
-
if (model instanceof DynamicFormArrayModel) {
|
|
34
|
-
return (_a = model.additional) === null || _a === void 0 ? void 0 : _a.classes;
|
|
35
|
-
}
|
|
36
|
-
if (model instanceof DynamicFormValueControlModel) {
|
|
37
|
-
return (_b = model.additional) === null || _b === void 0 ? void 0 : _b.classes;
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
DynamicBaseFormGroupComponent.decorators = [
|
|
43
|
-
{ type: Component, args: [{
|
|
44
|
-
selector: "dynamic-base-form-group",
|
|
45
|
-
template: "",
|
|
46
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
47
|
-
},] }
|
|
48
|
-
];
|
|
49
|
-
DynamicBaseFormGroupComponent.ctorParameters = () => [
|
|
50
|
-
{ type: DynamicFormLayoutService },
|
|
51
|
-
{ type: DynamicFormValidationService }
|
|
52
|
-
];
|
|
53
|
-
DynamicBaseFormGroupComponent.propDecorators = {
|
|
54
|
-
formLayout: [{ type: Input }],
|
|
55
|
-
group: [{ type: Input }],
|
|
56
|
-
layout: [{ type: Input }],
|
|
57
|
-
model: [{ type: Input }],
|
|
58
|
-
templates: [{ type: Input }],
|
|
59
|
-
blur: [{ type: Output }],
|
|
60
|
-
change: [{ type: Output }],
|
|
61
|
-
customEvent: [{ type: Output }],
|
|
62
|
-
focus: [{ type: Output }],
|
|
63
|
-
components: [{ type: ViewChildren, args: [forwardRef(() => DynamicFormControlContainerComponent),] }]
|
|
64
|
-
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxvQ0FBb0MsRUFNcEMseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUVyQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUUvQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQU9qRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEseUJBQXlCO0lBZ0J4RSxZQUFzQixhQUF1QyxFQUN2QyxpQkFBK0M7UUFDakUsS0FBSyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRnRCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQThCO1FBVDNELFNBQUksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QyxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0MsZ0JBQVcsR0FBZ0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5RSxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFReEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUF3QyxFQUFFLEtBQW9DLEVBQUUsS0FBK0I7UUFDcEgsT0FBTztZQUNILE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDdkQsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzVELEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7U0FDeEMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxhQUFhLENBQUMsS0FBK0I7UUFDbkQsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksS0FBSyxZQUFZLHFCQUFxQixFQUFFO1lBQ3hDLE9BQU8sY0FBYyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDMUM7UUFDRCxPQUFPLGdCQUFnQixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVTLGtCQUFrQixDQUFDLEtBQStCOztRQUN4RCxJQUFJLEtBQUssWUFBWSxxQkFBcUIsRUFBRTtZQUN4QyxhQUFPLEtBQUssQ0FBQyxVQUFVLDBDQUFFLE9BQU8sQ0FBQztTQUNwQztRQUNELElBQUksS0FBSyxZQUFZLDRCQUE0QixFQUFFO1lBQy9DLGFBQU8sS0FBSyxDQUFDLFVBQVUsMENBQUUsT0FBTyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7O1lBbkRKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxRQUFRLEVBQUUsRUFBRTtnQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7O1lBWkcsd0JBQXdCO1lBQ3hCLDRCQUE0Qjs7O3lCQWMzQixLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSztvQkFDTCxLQUFLO3dCQUNMLEtBQUs7bUJBRUwsTUFBTTtxQkFDTixNQUFNOzBCQUNOLE1BQU07b0JBQ04sTUFBTTt5QkFFTixZQUFZLFNBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2UsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtR3JvdXBDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUdyb3VwTW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybUFycmF5TW9kZWx9IGZyb20gXCIuLi8uLi91dGlscy9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcclxuaW1wb3J0IHtjb2xsZWN0UGF0aEFibGV9IGZyb20gXCIuLi8uLi91dGlscy9taXNjXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtYmFzZS1mb3JtLWdyb3VwXCIsXHJcbiAgICB0ZW1wbGF0ZTogXCJcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtR3JvdXBDb21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIGZvcm1MYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtR3JvdXBNb2RlbDtcclxuICAgIEBJbnB1dCgpIHRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjdXN0b21FdmVudDogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCkpXHJcbiAgICBjb21wb25lbnRzOiBRdWVyeUxpc3Q8RHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50PjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHZhbGlkYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIobGF5b3V0U2VydmljZSwgdmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENsYXNzKGNvbnRleHQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsIHBsYWNlOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSwgbW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgY29udGV4dCA9PSBcImVsZW1lbnRcIiA/IHRoaXMuZ2V0TW9kZWxDbGFzcyhtb2RlbCkgOiBudWxsLFxyXG4gICAgICAgICAgICBjb250ZXh0ID09IFwiZWxlbWVudFwiID8gdGhpcy5nZXRBZGRpdGlvbmFsQ2xhc3MobW9kZWwpIDogbnVsbCxcclxuICAgICAgICAgICAgc3VwZXIuZ2V0Q2xhc3MoY29udGV4dCwgcGxhY2UsIG1vZGVsKVxyXG4gICAgICAgIF0uZmlsdGVyKGNscyA9PiAhIWNscykuam9pbihcIiBcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldE1vZGVsQ2xhc3MobW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcGFydHMgPSBjb2xsZWN0UGF0aEFibGUobW9kZWwsIHAgPT4gcC5pZCk7XHJcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAwKSByZXR1cm4gXCJcIjtcclxuICAgICAgICBpZiAobW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBmb3JtLWdyb3VwLSR7cGFydHMuam9pbihcIi1cIil9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGBmb3JtLWNvbnRyb2wtJHtwYXJ0cy5qb2luKFwiLVwiKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBZGRpdGlvbmFsQ2xhc3MobW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKG1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheU1vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2RlbC5hZGRpdGlvbmFsPy5jbGFzc2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2RlbC5hZGRpdGlvbmFsPy5jbGFzc2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Inject, Input, Output, QueryList, ViewChild, ViewChildren } from "@angular/core";
|
|
3
|
-
import { NgForm } from "@angular/forms";
|
|
4
|
-
import { Subscription } from "rxjs";
|
|
5
|
-
import { first } from "rxjs/operators";
|
|
6
|
-
import { DynamicFormComponent, DynamicFormComponentService, DynamicFormGroupModel, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
|
|
7
|
-
import { EventsService, ObservableUtils } from "@stemy/ngx-utils";
|
|
8
|
-
import { DynamicFormService } from "../../services/dynamic-form.service";
|
|
9
|
-
import { collectPathAble } from "../../utils/misc";
|
|
10
|
-
export class DynamicBaseFormComponent extends DynamicFormComponent {
|
|
11
|
-
constructor(formService, events, changeDetectorRef, componentService) {
|
|
12
|
-
super(changeDetectorRef, componentService);
|
|
13
|
-
this.formService = formService;
|
|
14
|
-
this.events = events;
|
|
15
|
-
this.blur = new EventEmitter();
|
|
16
|
-
this.change = new EventEmitter();
|
|
17
|
-
this.focus = new EventEmitter();
|
|
18
|
-
this.onValueChange = new EventEmitter();
|
|
19
|
-
this.onStatusChange = new EventEmitter();
|
|
20
|
-
this.onSubmit = new EventEmitter();
|
|
21
|
-
this.templates = new QueryList();
|
|
22
|
-
this.subscription = new Subscription();
|
|
23
|
-
this.groupSubscription = new Subscription();
|
|
24
|
-
this.labelPrefix = "label";
|
|
25
|
-
}
|
|
26
|
-
get status() {
|
|
27
|
-
return !this.group ? null : this.group.status;
|
|
28
|
-
}
|
|
29
|
-
ngOnChanges(changes) {
|
|
30
|
-
this.groupSubscription.unsubscribe();
|
|
31
|
-
if (this.group) {
|
|
32
|
-
this.groupSubscription = ObservableUtils.multiSubscription(this.group.statusChanges.subscribe(() => {
|
|
33
|
-
this.onStatusChange.emit(this);
|
|
34
|
-
}), this.group.valueChanges.subscribe(() => {
|
|
35
|
-
this.formService.notifyChanges(this.model, this.group, this.model);
|
|
36
|
-
}), this.change.subscribe(ev => {
|
|
37
|
-
this.onValueChange.emit(Object.assign(Object.assign({}, ev), { form: this }));
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
ngAfterViewInit() {
|
|
42
|
-
this.subscription = ObservableUtils.multiSubscription(ObservableUtils.subscribe({
|
|
43
|
-
subjects: [this.contentTemplates.changes, this.viewTemplates.changes],
|
|
44
|
-
cb: () => {
|
|
45
|
-
const templates = this.contentTemplates.toArray().concat(this.viewTemplates.toArray());
|
|
46
|
-
this.templates.reset(templates);
|
|
47
|
-
}
|
|
48
|
-
}), this.events.languageChanged.subscribe(() => {
|
|
49
|
-
this.formService.detectChanges(this);
|
|
50
|
-
}), this.ngForm.ngSubmit.subscribe(() => {
|
|
51
|
-
this.onSubmit.emit(this);
|
|
52
|
-
}));
|
|
53
|
-
}
|
|
54
|
-
ngOnDestroy() {
|
|
55
|
-
super.ngOnDestroy();
|
|
56
|
-
this.subscription.unsubscribe();
|
|
57
|
-
this.groupSubscription.unsubscribe();
|
|
58
|
-
}
|
|
59
|
-
insertFormArrayGroup(index, formArray, formArrayModel) {
|
|
60
|
-
this.formService.insertFormArrayGroup(index, formArray, formArrayModel);
|
|
61
|
-
this.changeDetectorRef.detectChanges();
|
|
62
|
-
}
|
|
63
|
-
removeFormArrayGroup(index, formArray, formArrayModel) {
|
|
64
|
-
this.formService.removeFormArrayGroup(index, formArray, formArrayModel);
|
|
65
|
-
this.changeDetectorRef.detectChanges();
|
|
66
|
-
}
|
|
67
|
-
moveFormArrayGroup(index, step, formArray, formArrayModel) {
|
|
68
|
-
this.formService.moveFormArrayGroup(index, step, formArray, formArrayModel);
|
|
69
|
-
this.changeDetectorRef.detectChanges();
|
|
70
|
-
}
|
|
71
|
-
clearFormArray(formArray, formArrayModel) {
|
|
72
|
-
this.formService.clearFormArray(formArray, formArrayModel);
|
|
73
|
-
this.changeDetectorRef.detectChanges();
|
|
74
|
-
}
|
|
75
|
-
getClass(model) {
|
|
76
|
-
const parts = collectPathAble(model, p => p.id);
|
|
77
|
-
if (parts.length == 0)
|
|
78
|
-
return "";
|
|
79
|
-
if (model instanceof DynamicFormGroupModel) {
|
|
80
|
-
return `form-group-${parts.join("-")}`;
|
|
81
|
-
}
|
|
82
|
-
return `form-control-${parts.join("-")}`;
|
|
83
|
-
}
|
|
84
|
-
validate(showErrors = true) {
|
|
85
|
-
if (!this.group)
|
|
86
|
-
return Promise.resolve();
|
|
87
|
-
return new Promise((resolve, reject) => {
|
|
88
|
-
this.group.statusChanges.pipe(first(status => status == "VALID" || status == "INVALID")).subscribe(status => {
|
|
89
|
-
if (showErrors) {
|
|
90
|
-
this.formService.showErrors(this);
|
|
91
|
-
}
|
|
92
|
-
if (status == "VALID") {
|
|
93
|
-
resolve(null);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
reject(null);
|
|
97
|
-
});
|
|
98
|
-
this.group.updateValueAndValidity();
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
serialize(validate) {
|
|
102
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
if (!this.group)
|
|
104
|
-
return null;
|
|
105
|
-
if (validate) {
|
|
106
|
-
yield this.validate();
|
|
107
|
-
}
|
|
108
|
-
return yield this.formService.serialize(this.model, this.group);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
DynamicBaseFormComponent.decorators = [
|
|
113
|
-
{ type: Component, args: [{
|
|
114
|
-
selector: "dynamic-base-form",
|
|
115
|
-
template: "",
|
|
116
|
-
changeDetection: ChangeDetectionStrategy.Default
|
|
117
|
-
},] }
|
|
118
|
-
];
|
|
119
|
-
DynamicBaseFormComponent.ctorParameters = () => [
|
|
120
|
-
{ type: DynamicFormService, decorators: [{ type: Inject, args: [DynamicFormService,] }] },
|
|
121
|
-
{ type: EventsService, decorators: [{ type: Inject, args: [EventsService,] }] },
|
|
122
|
-
{ type: ChangeDetectorRef },
|
|
123
|
-
{ type: DynamicFormComponentService }
|
|
124
|
-
];
|
|
125
|
-
DynamicBaseFormComponent.propDecorators = {
|
|
126
|
-
group: [{ type: Input }],
|
|
127
|
-
model: [{ type: Input }],
|
|
128
|
-
layout: [{ type: Input }],
|
|
129
|
-
labelPrefix: [{ type: Input }],
|
|
130
|
-
blur: [{ type: Output }],
|
|
131
|
-
change: [{ type: Output }],
|
|
132
|
-
focus: [{ type: Output }],
|
|
133
|
-
contentTemplates: [{ type: ContentChildren, args: [DynamicTemplateDirective,] }],
|
|
134
|
-
viewTemplates: [{ type: ViewChildren, args: [DynamicTemplateDirective,] }],
|
|
135
|
-
onValueChange: [{ type: Output }],
|
|
136
|
-
onStatusChange: [{ type: Output }],
|
|
137
|
-
onSubmit: [{ type: Output }],
|
|
138
|
-
ngForm: [{ type: ViewChild, args: [NgForm,] }]
|
|
139
|
-
};
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsRUFDVCxZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBRUgsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUczQixxQkFBcUIsRUFHckIsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFPakQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjtJQTJCOUQsWUFBaUQsV0FBK0IsRUFDcEMsTUFBcUIsRUFDckQsaUJBQW9DLEVBQ3BDLGdCQUE2QztRQUNyRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUpFLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBSTdELElBQUksQ0FBQyxJQUFJ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Q0FBQztZQUM3QixJQUFJLFFBQVEsRUFBRTtnQkFDVixNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN6QjtZQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxDQUFDO0tBQUE7OztZQWhKSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87YUFDbkQ7OztZQVBPLGtCQUFrQix1QkFtQ1QsTUFBTSxTQUFDLGtCQUFrQjtZQXJDbEMsYUFBYSx1QkFzQ0osTUFBTSxTQUFDLGFBQWE7WUFqRWpDLGlCQUFpQjtZQW1CakIsMkJBQTJCOzs7b0JBb0IxQixLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzswQkFDTCxLQUFLO21CQUVMLE1BQU07cUJBQ04sTUFBTTtvQkFDTixNQUFNOytCQUVOLGVBQWUsU0FBQyx3QkFBd0I7NEJBQ3hDLFlBQVksU0FBQyx3QkFBd0I7NEJBTXJDLE1BQU07NkJBQ04sTUFBTTt1QkFDTixNQUFNO3FCQUVOLFNBQVMsU0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtQXJyYXksIEZvcm1Hcm91cCwgTmdGb3JtfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7Zmlyc3R9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Zvcm1BcnJheU1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1Hcm91cE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1MYXlvdXQsXHJcbiAgICBEeW5hbWljRm9ybU1vZGVsLFxyXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtFdmVudHNTZXJ2aWNlLCBPYnNlcnZhYmxlVXRpbHN9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcbmltcG9ydCB7RHluYW1pY0Zvcm1TdGF0ZSwgSUR5bmFtaWNGb3JtLCBJRHluYW1pY0Zvcm1FdmVudH0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Y29sbGVjdFBhdGhBYmxlfSBmcm9tIFwiLi4vLi4vdXRpbHMvbWlzY1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJkeW5hbWljLWJhc2UtZm9ybVwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNCYXNlRm9ybUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBJRHluYW1pY0Zvcm0ge1xyXG5cclxuICAgIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgICBASW5wdXQoKSBtb2RlbDogRHluYW1pY0Zvcm1Nb2RlbDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1MYXlvdXQ7XHJcbiAgICBASW5wdXQoKSBsYWJlbFByZWZpeDogc3RyaW5nO1xyXG5cclxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xyXG4gICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcclxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgY29udGVudFRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcbiAgICBAVmlld0NoaWxkcmVuKER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgdmlld1RlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcblxyXG4gICAgZ2V0IHN0YXR1cygpOiBEeW5hbWljRm9ybVN0YXRlIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuZ3JvdXAgPyBudWxsIDogdGhpcy5ncm91cC5zdGF0dXMgYXMgRHluYW1pY0Zvcm1TdGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb25WYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUV2ZW50PjtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybT47XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb25TdWJtaXQ6IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm0+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTmdGb3JtKVxyXG4gICAgcHJvdGVjdGVkIG5nRm9ybTogTmdGb3JtO1xyXG4gICAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJvdGVjdGVkIGdyb3VwU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChEeW5hbWljRm9ybVNlcnZpY2UpIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBEeW5hbWljRm9ybVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEV2ZW50c1NlcnZpY2UpIHJlYWRvbmx5IGV2ZW50czogRXZlbnRzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSwpIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG9uZW50U2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5ibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuICAgICAgICB0aGlzLmNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcbiAgICAgICAgdGhpcy5mb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm1FdmVudD4oKTtcclxuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm0+KCk7XHJcbiAgICAgICAgdGhpcy5vblN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtPigpO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVzID0gbmV3IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+KCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5ncm91cFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgICAgICB0aGlzLmxhYmVsUHJlZml4ID0gXCJsYWJlbFwiO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdyb3VwU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXApIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cFN1YnNjcmlwdGlvbiA9IE9ic2VydmFibGVVdGlscy5tdWx0aVN1YnNjcmlwdGlvbihcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2UuZW1pdCh0aGlzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLm5vdGlmeUNoYW5nZXModGhpcy5tb2RlbCwgdGhpcy5ncm91cCwgdGhpcy5tb2RlbCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlLnN1YnNjcmliZShldiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQoey4uLmV2LCBmb3JtOiB0aGlzfSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBPYnNlcnZhYmxlVXRpbHMubXVsdGlTdWJzY3JpcHRpb24oXHJcbiAgICAgICAgICAgIE9ic2VydmFibGVVdGlscy5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdHM6IFt0aGlzLmNvbnRlbnRUZW1wbGF0ZXMuY2hhbmdlcywgdGhpcy52aWV3VGVtcGxhdGVzLmNoYW5nZXNdLFxyXG4gICAgICAgICAgICAgICAgICAgIGNiOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRoaXMuY29udGVudFRlbXBsYXRlcy50b0FycmF5KCkuY29uY2F0KHRoaXMudmlld1RlbXBsYXRlcy50b0FycmF5KCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlcy5yZXNldCh0ZW1wbGF0ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLmRldGVjdENoYW5nZXModGhpcylcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMubmdGb3JtLm5nU3VibWl0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3VibWl0LmVtaXQodGhpcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5ncm91cFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluc2VydEZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5pbnNlcnRGb3JtQXJyYXlHcm91cChpbmRleCwgZm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXg6IG51bWJlciwgZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnJlbW92ZUZvcm1BcnJheUdyb3VwKGluZGV4LCBmb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBtb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXg6IG51bWJlciwgc3RlcDogbnVtYmVyLCBmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UubW92ZUZvcm1BcnJheUdyb3VwKGluZGV4LCBzdGVwLCBmb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhckZvcm1BcnJheShmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuY2xlYXJGb3JtQXJyYXkoZm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2xhc3MobW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcGFydHMgPSBjb2xsZWN0UGF0aEFibGUobW9kZWwsIHAgPT4gcC5pZCk7XHJcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAwKSByZXR1cm4gXCJcIjtcclxuICAgICAgICBpZiAobW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBmb3JtLWdyb3VwLSR7cGFydHMuam9pbihcIi1cIil9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGBmb3JtLWNvbnRyb2wtJHtwYXJ0cy5qb2luKFwiLVwiKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKHNob3dFcnJvcnM6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXApIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXAuc3RhdHVzQ2hhbmdlcy5waXBlKGZpcnN0KHN0YXR1cyA9PiBzdGF0dXMgPT0gXCJWQUxJRFwiIHx8IHN0YXR1cyA9PSBcIklOVkFMSURcIikpLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNob3dFcnJvcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnNob3dFcnJvcnModGhpcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFwiVkFMSURcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2VyaWFsaXplKHZhbGlkYXRlPzogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmdyb3VwKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBpZiAodmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5mb3JtU2VydmljZS5zZXJpYWxpemUodGhpcy5tb2RlbCwgdGhpcy5ncm91cCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, Output, Renderer2 } from "@angular/core";
|
|
2
|
-
import { TOASTER_SERVICE } from "@stemy/ngx-utils";
|
|
3
|
-
export class AsyncSubmitDirective {
|
|
4
|
-
constructor(toaster, cdr, elem, renderer) {
|
|
5
|
-
this.toaster = toaster;
|
|
6
|
-
this.cdr = cdr;
|
|
7
|
-
this.elem = elem;
|
|
8
|
-
this.renderer = renderer;
|
|
9
|
-
this.onSuccess = new EventEmitter();
|
|
10
|
-
this.onError = new EventEmitter();
|
|
11
|
-
if (elem.nativeElement.tagName !== "BUTTON")
|
|
12
|
-
return;
|
|
13
|
-
renderer.setAttribute(elem.nativeElement, "type", "button");
|
|
14
|
-
}
|
|
15
|
-
get isDisabled() {
|
|
16
|
-
return this.disabled;
|
|
17
|
-
}
|
|
18
|
-
set isDisabled(value) {
|
|
19
|
-
this.disabled = value;
|
|
20
|
-
if (value) {
|
|
21
|
-
this.renderer.setAttribute(this.elem.nativeElement, "disabled", "disabled");
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
this.renderer.removeAttribute(this.elem.nativeElement, "disabled");
|
|
25
|
-
}
|
|
26
|
-
get isLoading() {
|
|
27
|
-
return this.loading;
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
if (!this.form)
|
|
31
|
-
return;
|
|
32
|
-
this.isDisabled = this.form.status !== "VALID";
|
|
33
|
-
this.cdr.detectChanges();
|
|
34
|
-
this.onStatusChange = this.form.onStatusChange.subscribe(() => {
|
|
35
|
-
this.isDisabled = this.form.status !== "VALID";
|
|
36
|
-
this.cdr.detectChanges();
|
|
37
|
-
if (!this.callback || this.form.status == "PENDING")
|
|
38
|
-
return;
|
|
39
|
-
if (!this.disabled) {
|
|
40
|
-
this.callback();
|
|
41
|
-
}
|
|
42
|
-
this.callback = null;
|
|
43
|
-
});
|
|
44
|
-
this.onSubmit = this.form.onSubmit.subscribe(() => this.callMethod());
|
|
45
|
-
}
|
|
46
|
-
ngOnDestroy() {
|
|
47
|
-
if (this.onStatusChange)
|
|
48
|
-
this.onStatusChange.unsubscribe();
|
|
49
|
-
if (this.onSubmit)
|
|
50
|
-
this.onSubmit.unsubscribe();
|
|
51
|
-
}
|
|
52
|
-
click() {
|
|
53
|
-
this.callback = () => this.callMethod();
|
|
54
|
-
if (this.form.status !== "VALID" && this.form.status !== "INVALID")
|
|
55
|
-
return;
|
|
56
|
-
this.callback();
|
|
57
|
-
this.callback = null;
|
|
58
|
-
}
|
|
59
|
-
callMethod() {
|
|
60
|
-
if (this.loading)
|
|
61
|
-
return;
|
|
62
|
-
this.loading = true;
|
|
63
|
-
this.method(this.form, this.context).then(result => {
|
|
64
|
-
this.loading = false;
|
|
65
|
-
if (result) {
|
|
66
|
-
this.onSuccess.emit(result);
|
|
67
|
-
this.toaster.success(result.message, result.context);
|
|
68
|
-
}
|
|
69
|
-
}, reason => {
|
|
70
|
-
if (!reason || !reason.message)
|
|
71
|
-
throw new Error("Reason must implement IAsyncMessage interface");
|
|
72
|
-
this.loading = false;
|
|
73
|
-
this.onError.emit(reason);
|
|
74
|
-
this.toaster.error(reason.message, reason.context);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
AsyncSubmitDirective.decorators = [
|
|
79
|
-
{ type: Directive, args: [{
|
|
80
|
-
selector: "[async-submit]",
|
|
81
|
-
exportAs: "async-submit"
|
|
82
|
-
},] }
|
|
83
|
-
];
|
|
84
|
-
AsyncSubmitDirective.ctorParameters = () => [
|
|
85
|
-
{ type: undefined, decorators: [{ type: Inject, args: [TOASTER_SERVICE,] }] },
|
|
86
|
-
{ type: ChangeDetectorRef },
|
|
87
|
-
{ type: ElementRef },
|
|
88
|
-
{ type: Renderer2 }
|
|
89
|
-
];
|
|
90
|
-
AsyncSubmitDirective.propDecorators = {
|
|
91
|
-
method: [{ type: Input, args: ["async-submit",] }],
|
|
92
|
-
form: [{ type: Input }],
|
|
93
|
-
context: [{ type: Input }],
|
|
94
|
-
onSuccess: [{ type: Output }],
|
|
95
|
-
onError: [{ type: Output }],
|
|
96
|
-
isDisabled: [{ type: HostBinding, args: ["class.disabled",] }],
|
|
97
|
-
isLoading: [{ type: HostBinding, args: ["class.loading",] }],
|
|
98
|
-
click: [{ type: HostListener, args: ["click",] }]
|
|
99
|
-
};
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc3VibWl0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtZHluYW1pYy1mb3JtL2RpcmVjdGl2ZXMvYXN5bmMtc3VibWl0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBaUMsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFPakYsTUFBTSxPQUFPLG9CQUFvQjtJQWtDN0IsWUFBNkMsT0FBd0IsRUFDaEQsR0FBc0IsRUFDdEIsSUFBZ0IsRUFDaEIsUUFBbUI7UUFISyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssUUFBUTtZQUFFLE9BQU87UUFDcEQsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBM0JELElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLEtBQUssRUFB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QUFDLCtDQUErQyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUE3RkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFFBQVEsRUFBRSxjQUFjO2FBQzNCOzs7NENBbUNnQixNQUFNLFNBQUMsZUFBZTtZQXZEbkMsaUJBQWlCO1lBRWpCLFVBQVU7WUFTVixTQUFTOzs7cUJBWVIsS0FBSyxTQUFDLGNBQWM7bUJBQ3BCLEtBQUs7c0JBQ0wsS0FBSzt3QkFFTCxNQUFNO3NCQUNOLE1BQU07eUJBUU4sV0FBVyxTQUFDLGdCQUFnQjt3QkFjNUIsV0FBVyxTQUFDLGVBQWU7b0JBb0MzQixZQUFZLFNBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIEluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUmVuZGVyZXIyXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7SUFzeW5jTWVzc2FnZSwgSVRvYXN0ZXJTZXJ2aWNlLCBUT0FTVEVSX1NFUlZJQ0V9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcbmltcG9ydCB7QXN5bmNTdWJtaXRNZXRob2QsIElEeW5hbWljRm9ybX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbYXN5bmMtc3VibWl0XVwiLFxyXG4gICAgZXhwb3J0QXM6IFwiYXN5bmMtc3VibWl0XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzeW5jU3VibWl0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dChcImFzeW5jLXN1Ym1pdFwiKSBtZXRob2Q6IEFzeW5jU3VibWl0TWV0aG9kO1xyXG4gICAgQElucHV0KCkgZm9ybTogSUR5bmFtaWNGb3JtO1xyXG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xyXG5cclxuICAgIEBPdXRwdXQoKSBvblN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxJQXN5bmNNZXNzYWdlPjtcclxuICAgIEBPdXRwdXQoKSBvbkVycm9yOiBFdmVudEVtaXR0ZXI8SUFzeW5jTWVzc2FnZT47XHJcblxyXG4gICAgcHJpdmF0ZSBsb2FkaW5nOiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBkaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgY2FsbGJhY2s6IEZ1bmN0aW9uO1xyXG4gICAgcHJpdmF0ZSBvblN0YXR1c0NoYW5nZTogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBvblN1Ym1pdDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmRpc2FibGVkXCIpXHJcbiAgICBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgaXNEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQsIFwiZGlzYWJsZWRcIiwgXCJkaXNhYmxlZFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsZW0ubmF0aXZlRWxlbWVudCwgXCJkaXNhYmxlZFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5sb2FkaW5nXCIpXHJcbiAgICBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChUT0FTVEVSX1NFUlZJQ0UpIHByaXZhdGUgdG9hc3RlcjogSVRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGVsZW06IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICAgICAgdGhpcy5vblN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPElBc3luY01lc3NhZ2U+KCk7XHJcbiAgICAgICAgdGhpcy5vbkVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxJQXN5bmNNZXNzYWdlPigpO1xyXG4gICAgICAgIGlmIChlbGVtLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSAhPT0gXCJCVVRUT05cIikgcmV0dXJuO1xyXG4gICAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtLm5hdGl2ZUVsZW1lbnQsIFwidHlwZVwiLCBcImJ1dHRvblwiKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZm9ybSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuZm9ybS5zdGF0dXMgIT09IFwiVkFMSURcIjtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZSA9IHRoaXMuZm9ybS5vblN0YXR1c0NoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSB0aGlzLmZvcm0uc3RhdHVzICE9PSBcIlZBTElEXCI7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNhbGxiYWNrIHx8IHRoaXMuZm9ybS5zdGF0dXMgPT0gXCJQRU5ESU5HXCIpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jYWxsYmFjayA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5vblN1Ym1pdCA9IHRoaXMuZm9ybS5vblN1Ym1pdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jYWxsTWV0aG9kKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm9uU3RhdHVzQ2hhbmdlKSB0aGlzLm9uU3RhdHVzQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgaWYgKHRoaXMub25TdWJtaXQpIHRoaXMub25TdWJtaXQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIilcclxuICAgIGNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2sgPSAoKSA9PiB0aGlzLmNhbGxNZXRob2QoKTtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLnN0YXR1cyAhPT0gXCJWQUxJRFwiICYmIHRoaXMuZm9ybS5zdGF0dXMgIT09IFwiSU5WQUxJRFwiKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5jYWxsYmFjaygpO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2sgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGxNZXRob2QoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMubG9hZGluZykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5tZXRob2QodGhpcy5mb3JtLCB0aGlzLmNvbnRleHQpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TdWNjZXNzLmVtaXQocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHJlc3VsdC5tZXNzYWdlLCByZXN1bHQuY29udGV4dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCByZWFzb24gPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXJlYXNvbiB8fCAhcmVhc29uLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWFzb24gbXVzdCBpbXBsZW1lbnQgSUFzeW5jTWVzc2FnZSBpbnRlcmZhY2VcIik7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdChyZWFzb24pO1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IocmVhc29uLm1lc3NhZ2UsIHJlYXNvbi5jb250ZXh0KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { CommonModule } from "@angular/common";
|
|
3
|
-
import { FormsModule, NG_VALIDATORS, ReactiveFormsModule } from "@angular/forms";
|
|
4
|
-
import { DYNAMIC_VALIDATORS, DynamicFormService as BaseDynamicFormService } from "@ng-dynamic-forms/core";
|
|
5
|
-
import { NgxUtilsModule } from "@stemy/ngx-utils";
|
|
6
|
-
import { AsyncSubmitDirective } from "./directives/async-submit.directive";
|
|
7
|
-
import { validateItemsMaxLength, validateItemsMaxValue, validateItemsMinLength, validateItemsMinValue, validateJSON, validatePhone, validateRequiredTranslation } from "./utils/validators";
|
|
8
|
-
import { DynamicBaseFormComponent } from "./components/base/dynamic-base-form.component";
|
|
9
|
-
import { DynamicBaseFormArrayComponent } from "./components/base/dynamic-base-form-array.component";
|
|
10
|
-
import { DynamicBaseFormControlContainerComponent } from "./components/base/dynamic-base-form-control-container.component";
|
|
11
|
-
import { DynamicBaseFormGroupComponent } from "./components/base/dynamic-base-form-group.component";
|
|
12
|
-
import { DynamicFormService } from "./services/dynamic-form.service";
|
|
13
|
-
// --- Components ---
|
|
14
|
-
export const components = [
|
|
15
|
-
DynamicBaseFormComponent,
|
|
16
|
-
DynamicBaseFormArrayComponent,
|
|
17
|
-
DynamicBaseFormControlContainerComponent,
|
|
18
|
-
DynamicBaseFormGroupComponent
|
|
19
|
-
];
|
|
20
|
-
// --- Directives ---
|
|
21
|
-
export const directives = [
|
|
22
|
-
AsyncSubmitDirective,
|
|
23
|
-
];
|
|
24
|
-
// --- Pipes ---
|
|
25
|
-
export const pipes = [];
|
|
26
|
-
const ɵ0 = validateJSON, ɵ1 = validateRequiredTranslation, ɵ2 = validateItemsMinLength, ɵ3 = validateItemsMaxLength, ɵ4 = validateItemsMinValue, ɵ5 = validateItemsMaxValue, ɵ6 = new Map([
|
|
27
|
-
["json", validateJSON],
|
|
28
|
-
["requiredTranslation", validateRequiredTranslation],
|
|
29
|
-
["phone", validatePhone],
|
|
30
|
-
["itemsMinLength", validateItemsMinLength],
|
|
31
|
-
["itemsMaxLength", validateItemsMaxLength],
|
|
32
|
-
["itemsMinValue", validateItemsMinValue],
|
|
33
|
-
["itemsMaxValue", validateItemsMaxValue],
|
|
34
|
-
]);
|
|
35
|
-
export class NgxDynamicFormModule {
|
|
36
|
-
static forRoot() {
|
|
37
|
-
return {
|
|
38
|
-
ngModule: NgxDynamicFormModule,
|
|
39
|
-
providers: [
|
|
40
|
-
DynamicFormService,
|
|
41
|
-
{
|
|
42
|
-
provide: BaseDynamicFormService,
|
|
43
|
-
useExisting: DynamicFormService
|
|
44
|
-
}
|
|
45
|
-
]
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
NgxDynamicFormModule.decorators = [
|
|
50
|
-
{ type: NgModule, args: [{
|
|
51
|
-
declarations: [
|
|
52
|
-
...components,
|
|
53
|
-
...directives,
|
|
54
|
-
...pipes
|
|
55
|
-
],
|
|
56
|
-
imports: [
|
|
57
|
-
CommonModule,
|
|
58
|
-
FormsModule,
|
|
59
|
-
ReactiveFormsModule,
|
|
60
|
-
NgxUtilsModule
|
|
61
|
-
],
|
|
62
|
-
exports: [
|
|
63
|
-
...components,
|
|
64
|
-
...directives,
|
|
65
|
-
...pipes,
|
|
66
|
-
FormsModule,
|
|
67
|
-
ReactiveFormsModule,
|
|
68
|
-
NgxUtilsModule
|
|
69
|
-
],
|
|
70
|
-
entryComponents: components,
|
|
71
|
-
providers: [
|
|
72
|
-
...pipes,
|
|
73
|
-
{ provide: NG_VALIDATORS, useValue: ɵ0, multi: true },
|
|
74
|
-
{ provide: NG_VALIDATORS, useValue: ɵ1, multi: true },
|
|
75
|
-
{ provide: NG_VALIDATORS, useValue: ɵ2, multi: true },
|
|
76
|
-
{ provide: NG_VALIDATORS, useValue: ɵ3, multi: true },
|
|
77
|
-
{ provide: NG_VALIDATORS, useValue: ɵ4, multi: true },
|
|
78
|
-
{ provide: NG_VALIDATORS, useValue: ɵ5, multi: true },
|
|
79
|
-
{
|
|
80
|
-
provide: DYNAMIC_VALIDATORS,
|
|
81
|
-
useValue: ɵ6
|
|
82
|
-
}
|
|
83
|
-
]
|
|
84
|
-
},] }
|
|
85
|
-
];
|
|
86
|
-
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6 };
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWR5bmFtaWMtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmd4LWR5bmFtaWMtZm9ybS9uZ3gtZHluYW1pYy1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGtCQUFrQixJQUFJLHNCQUFzQixFQUcvQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixhQUFhLEVBQ2IsMkJBQTJCLEVBQzlCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUNILHdDQUF3QyxFQUMzQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBRWxHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLHFCQUFxQjtBQUNyQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIsd0JBQXdCO0lBQ3hCLDZCQUE2QjtJQUM3Qix3Q0FBd0M7SUFDeEMsNkJBQTZCO0NBQ2hDLENBQUM7QUFFRixxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLG9CQUFvQjtDQUN2QixDQUFDO0FBRUYsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7V0F5Qm1CLFlBQVksT0FDWiwyQkFBMkIsT0FDM0Isc0JBQXNCLE9BQ3RCLHNCQUFzQixPQUN0QixxQkFBcUIsT0FDckIscUJBQXFCLE9BRzFDLElBQUksR0FBRyxDQUF1QztJQUNwRCxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUM7SUFDdEIsQ0FBQyxxQkFBcUIsRUFBRSwyQkFBMkIsQ0FBQztJQUNwRCxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUM7SUFDeEIsQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQztJQUMxQyxDQUFDLGdCQUFnQixFQUFFLHNCQUFzQixDQUFDO0lBQzFDLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO0lBQ3hDLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO0NBQzNDLENBQUM7QUFJZCxNQUFNLE9BQU8sb0JBQW9CO0lBRTdCLE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTztZQUNILFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNQLGtCQUFrQjtnQkFDbEI7b0JBQ0ksT0FBTyxFQUFFLHNCQUFzQjtvQkFDL0IsV0FBVyxFQUFFLGtCQUFrQjtpQkFDbEM7YUFDSjtTQUNKLENBQUE7SUFDTCxDQUFDOzs7WUF4REosUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRTtvQkFDVixHQUFHLFVBQVU7b0JBQ2IsR0FBRyxVQUFVO29CQUNiLEdBQUcsS0FBSztpQkFDWDtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsY0FBYztpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLEdBQUcsVUFBVTtvQkFDYixHQUFHLFVBQVU7b0JBQ2IsR0FBRyxLQUFLO29CQUNSLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixjQUFjO2lCQUNqQjtnQkFDRCxlQUFlLEVBQUUsVUFBVTtnQkFDM0IsU0FBUyxFQUFFO29CQUNQLEdBQUcsS0FBSztvQkFDUixFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxJQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztvQkFDN0QsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsSUFBNkIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO29CQUM1RSxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxJQUF3QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7b0JBQ3ZFLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLElBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztvQkFDdkUsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsSUFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO29CQUN0RSxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxJQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7b0JBQ3RFO3dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7d0JBQzNCLFFBQVEsSUFRTjtxQkFDTDtpQkFDSjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgICBEWU5BTUlDX1ZBTElEQVRPUlMsXHJcbiAgICBEeW5hbWljRm9ybVNlcnZpY2UgYXMgQmFzZUR5bmFtaWNGb3JtU2VydmljZSxcclxuICAgIFZhbGlkYXRvcixcclxuICAgIFZhbGlkYXRvckZhY3RvcnlcclxufSBmcm9tIFwiQG5nLWR5bmFtaWMtZm9ybXMvY29yZVwiO1xyXG5pbXBvcnQge05neFV0aWxzTW9kdWxlfSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtBc3luY1N1Ym1pdERpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9hc3luYy1zdWJtaXQuZGlyZWN0aXZlXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgdmFsaWRhdGVJdGVtc01heExlbmd0aCxcclxuICAgIHZhbGlkYXRlSXRlbXNNYXhWYWx1ZSxcclxuICAgIHZhbGlkYXRlSXRlbXNNaW5MZW5ndGgsXHJcbiAgICB2YWxpZGF0ZUl0ZW1zTWluVmFsdWUsXHJcbiAgICB2YWxpZGF0ZUpTT04sXHJcbiAgICB2YWxpZGF0ZVBob25lLFxyXG4gICAgdmFsaWRhdGVSZXF1aXJlZFRyYW5zbGF0aW9uXHJcbn0gZnJvbSBcIi4vdXRpbHMvdmFsaWRhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Db21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1BcnJheUNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWFycmF5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xyXG5cclxuaW1wb3J0IHtEeW5hbWljRm9ybVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcblxyXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cclxuZXhwb3J0IGNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICBEeW5hbWljQmFzZUZvcm1Db21wb25lbnQsXHJcbiAgICBEeW5hbWljQmFzZUZvcm1BcnJheUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNCYXNlRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudFxyXG5dO1xyXG5cclxuLy8gLS0tIERpcmVjdGl2ZXMgLS0tXHJcbmV4cG9ydCBjb25zdCBkaXJlY3RpdmVzID0gW1xyXG4gICAgQXN5bmNTdWJtaXREaXJlY3RpdmUsXHJcbl07XHJcblxyXG4vLyAtLS0gUGlwZXMgLS0tXHJcbmV4cG9ydCBjb25zdCBwaXBlcyA9IFtdO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIC4uLmNvbXBvbmVudHMsXHJcbiAgICAgICAgLi4uZGlyZWN0aXZlcyxcclxuICAgICAgICAuLi5waXBlc1xyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ3hVdGlsc01vZHVsZVxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICAuLi5jb21wb25lbnRzLFxyXG4gICAgICAgIC4uLmRpcmVjdGl2ZXMsXHJcbiAgICAgICAgLi4ucGlwZXMsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ3hVdGlsc01vZHVsZVxyXG4gICAgXSxcclxuICAgIGVudHJ5Q29tcG9uZW50czogY29tcG9uZW50cyxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIC4uLnBpcGVzLFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVKU09OLCBtdWx0aTogdHJ1ZX0sXHJcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZVZhbHVlOiB2YWxpZGF0ZVJlcXVpcmVkVHJhbnNsYXRpb24sIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlVmFsdWU6IHZhbGlkYXRlSXRlbXNNaW5MZW5ndGgsIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlVmFsdWU6IHZhbGlkYXRlSXRlbXNNYXhMZW5ndGgsIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlVmFsdWU6IHZhbGlkYXRlSXRlbXNNaW5WYWx1ZSwgbXVsdGk6IHRydWV9LFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVJdGVtc01heFZhbHVlLCBtdWx0aTogdHJ1ZX0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBEWU5BTUlDX1ZBTElEQVRPUlMsXHJcbiAgICAgICAgICAgIHVzZVZhbHVlOiBuZXcgTWFwPHN0cmluZywgVmFsaWRhdG9yIHwgVmFsaWRhdG9yRmFjdG9yeT4oW1xyXG4gICAgICAgICAgICAgICAgW1wianNvblwiLCB2YWxpZGF0ZUpTT05dLFxyXG4gICAgICAgICAgICAgICAgW1wicmVxdWlyZWRUcmFuc2xhdGlvblwiLCB2YWxpZGF0ZVJlcXVpcmVkVHJhbnNsYXRpb25dLFxyXG4gICAgICAgICAgICAgICAgW1wicGhvbmVcIiwgdmFsaWRhdGVQaG9uZV0sXHJcbiAgICAgICAgICAgICAgICBbXCJpdGVtc01pbkxlbmd0aFwiLCB2YWxpZGF0ZUl0ZW1zTWluTGVuZ3RoXSxcclxuICAgICAgICAgICAgICAgIFtcIml0ZW1zTWF4TGVuZ3RoXCIsIHZhbGlkYXRlSXRlbXNNYXhMZW5ndGhdLFxyXG4gICAgICAgICAgICAgICAgW1wiaXRlbXNNaW5WYWx1ZVwiLCB2YWxpZGF0ZUl0ZW1zTWluVmFsdWVdLFxyXG4gICAgICAgICAgICAgICAgW1wiaXRlbXNNYXhWYWx1ZVwiLCB2YWxpZGF0ZUl0ZW1zTWF4VmFsdWVdLFxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neER5bmFtaWNGb3JtTW9kdWxlIHtcclxuXHJcbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neER5bmFtaWNGb3JtTW9kdWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmdNb2R1bGU6IE5neER5bmFtaWNGb3JtTW9kdWxlLFxyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCYXNlRHluYW1pY0Zvcm1TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBEeW5hbWljRm9ybVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|