@stemy/ngx-dynamic-form 19.1.13 → 19.2.0
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/fesm2022/stemy-ngx-dynamic-form-ui-nebular.mjs +4 -4
- package/fesm2022/stemy-ngx-dynamic-form-ui-nebular.mjs.map +1 -1
- package/fesm2022/stemy-ngx-dynamic-form.mjs +859 -1662
- package/fesm2022/stemy-ngx-dynamic-form.mjs.map +1 -1
- package/ngx-dynamic-form/common-types.d.ts +109 -26
- package/ngx-dynamic-form/components/dynamic-form/dynamic-form.component.d.ts +21 -0
- package/ngx-dynamic-form/components/dynamic-form-array/dynamic-form-array.component.d.ts +9 -0
- package/ngx-dynamic-form/components/dynamic-form-chips/dynamic-form-chips.component.d.ts +7 -0
- package/ngx-dynamic-form/components/dynamic-form-field/dynamic-form-field.component.d.ts +6 -0
- package/ngx-dynamic-form/components/dynamic-form-fieldset/dynamic-form-fieldset.component.d.ts +7 -0
- package/ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component.d.ts +6 -0
- package/ngx-dynamic-form/components/dynamic-form-upload/dynamic-form-upload.component.d.ts +7 -0
- package/ngx-dynamic-form/directives/async-submit.directive.d.ts +17 -23
- package/ngx-dynamic-form/ngx-dynamic-form.imports.d.ts +5 -9
- package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +13 -11
- package/ngx-dynamic-form/services/dynamic-form-builder.service.d.ts +27 -0
- package/ngx-dynamic-form/services/dynamic-form.service.d.ts +28 -46
- package/ngx-dynamic-form/utils/customizer.d.ts +5 -12
- package/ngx-dynamic-form/utils/decorators.d.ts +10 -0
- package/ngx-dynamic-form/utils/misc.d.ts +2 -4
- package/ngx-dynamic-form/utils/validation.d.ts +13 -0
- package/package.json +21 -16
- package/public_api.d.ts +13 -18
- package/ui-nebular/index.d.ts +1 -5
- package/common-types.d.ts +0 -37
- package/components/base/dynamic-base-form-array.component.d.ts +0 -38
- package/components/base/dynamic-base-form-control-container.component.d.ts +0 -39
- package/components/base/dynamic-base-form-control.component.d.ts +0 -26
- package/components/base/dynamic-base-form-group.component.d.ts +0 -25
- package/components/base/dynamic-base-form.component.d.ts +0 -46
- package/components/base/dynamic-base-select.component.d.ts +0 -15
- package/directives/async-submit.directive.d.ts +0 -31
- package/esm2020/ngx-dynamic-form/common-types.mjs +0 -2
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-array.component.mjs +0 -104
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.mjs +0 -127
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control.component.mjs +0 -57
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-group.component.mjs +0 -75
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form.component.mjs +0 -182
- package/esm2020/ngx-dynamic-form/components/base/dynamic-base-select.component.mjs +0 -66
- package/esm2020/ngx-dynamic-form/directives/async-submit.directive.mjs +0 -116
- package/esm2020/ngx-dynamic-form/ngx-dynamic-form.imports.mjs +0 -26
- package/esm2020/ngx-dynamic-form/ngx-dynamic-form.module.mjs +0 -116
- package/esm2020/ngx-dynamic-form/services/dynamic-form.service.mjs +0 -615
- package/esm2020/ngx-dynamic-form/utils/creators.mjs +0 -67
- package/esm2020/ngx-dynamic-form/utils/customizer.mjs +0 -28
- package/esm2020/ngx-dynamic-form/utils/dynamic-editor.model.mjs +0 -14
- package/esm2020/ngx-dynamic-form/utils/dynamic-form-array.model.mjs +0 -128
- package/esm2020/ngx-dynamic-form/utils/dynamic-form-group.model.mjs +0 -26
- package/esm2020/ngx-dynamic-form/utils/dynamic-select.model.mjs +0 -59
- package/esm2020/ngx-dynamic-form/utils/form-select-subject.mjs +0 -26
- package/esm2020/ngx-dynamic-form/utils/form-subject.mjs +0 -29
- package/esm2020/ngx-dynamic-form/utils/misc.mjs +0 -47
- package/esm2020/ngx-dynamic-form/utils/validation-errors.mjs +0 -22
- package/esm2020/ngx-dynamic-form/utils/validators.mjs +0 -56
- package/esm2020/public_api.mjs +0 -21
- package/esm2020/stemy-ngx-dynamic-form.mjs +0 -5
- package/fesm2015/stemy-ngx-dynamic-form.mjs +0 -1927
- package/fesm2015/stemy-ngx-dynamic-form.mjs.map +0 -1
- package/fesm2020/stemy-ngx-dynamic-form.mjs +0 -1893
- package/fesm2020/stemy-ngx-dynamic-form.mjs.map +0 -1
- package/fesm2022/stemy-ngx-dynamic-form-src-ngx-dynamic-form-nebular.mjs +0 -50
- package/fesm2022/stemy-ngx-dynamic-form-src-ngx-dynamic-form-nebular.mjs.map +0 -1
- package/imports.d.ts +0 -12
- package/ngx-dynamic-form/components/base/dynamic-base-form-array.component.d.ts +0 -38
- package/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.d.ts +0 -39
- package/ngx-dynamic-form/components/base/dynamic-base-form-control.component.d.ts +0 -26
- package/ngx-dynamic-form/components/base/dynamic-base-form-group.component.d.ts +0 -25
- package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +0 -46
- package/ngx-dynamic-form/components/base/dynamic-base-select.component.d.ts +0 -15
- package/ngx-dynamic-form/services/dynamic-form-layout.service.d.ts +0 -7
- package/ngx-dynamic-form/utils/creators.d.ts +0 -18
- package/ngx-dynamic-form/utils/dynamic-editor.model.d.ts +0 -11
- package/ngx-dynamic-form/utils/dynamic-form-array.model.d.ts +0 -69
- package/ngx-dynamic-form/utils/dynamic-form-group.model.d.ts +0 -14
- package/ngx-dynamic-form/utils/dynamic-select.model.d.ts +0 -39
- package/ngx-dynamic-form/utils/form-select-subject.d.ts +0 -6
- package/ngx-dynamic-form/utils/form-subject.d.ts +0 -10
- package/ngx-dynamic-form/utils/validators.d.ts +0 -8
- package/ngx-dynamic-form.imports.d.ts +0 -12
- package/ngx-dynamic-form.module.d.ts +0 -21
- package/services/dynamic-form.service.d.ts +0 -61
- package/src/ngx-dynamic-form/nebular/imports.d.ts +0 -4
- package/src/ngx-dynamic-form/nebular/index.d.ts +0 -5
- package/src/ngx-dynamic-form/nebular/ngx-dynamic-form.nebular.module.d.ts +0 -9
- package/src/ngx-dynamic-form/nebular/public_api.d.ts +0 -1
- package/stemy-ngx-dynamic-form.d.ts +0 -5
- package/ui-nebular/public_api.d.ts +0 -1
- package/utils/creators.d.ts +0 -18
- package/utils/customizer.d.ts +0 -14
- package/utils/dynamic-editor.model.d.ts +0 -11
- package/utils/dynamic-form-array.model.d.ts +0 -69
- package/utils/dynamic-form-group.model.d.ts +0 -14
- package/utils/dynamic-select.model.d.ts +0 -39
- package/utils/form-select-subject.d.ts +0 -6
- package/utils/form-subject.d.ts +0 -10
- package/utils/misc.d.ts +0 -11
- package/utils/validation-errors.d.ts +0 -11
- package/utils/validators.d.ts +0 -8
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
-
import { debounceTime } from "rxjs/operators";
|
|
3
|
-
import { DynamicFormControlComponent } from "@ng-dynamic-forms/core";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@ng-dynamic-forms/core";
|
|
6
|
-
import * as i2 from "./dynamic-base-form.component";
|
|
7
|
-
export class DynamicBaseFormControlComponent extends DynamicFormControlComponent {
|
|
8
|
-
constructor(layoutService, validationService, form, injector, cdr) {
|
|
9
|
-
super(layoutService, validationService);
|
|
10
|
-
this.form = form;
|
|
11
|
-
this.injector = injector;
|
|
12
|
-
this.cdr = cdr;
|
|
13
|
-
this.blur = new EventEmitter();
|
|
14
|
-
this.change = new EventEmitter();
|
|
15
|
-
this.focus = new EventEmitter();
|
|
16
|
-
}
|
|
17
|
-
ngAfterViewInit() {
|
|
18
|
-
this.subscription = this.control.valueChanges.pipe(debounceTime(500)).subscribe(value => {
|
|
19
|
-
this.onValueChanged(value);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
if (!this.subscription)
|
|
24
|
-
return;
|
|
25
|
-
this.subscription.unsubscribe();
|
|
26
|
-
}
|
|
27
|
-
submit() {
|
|
28
|
-
this.form.submit();
|
|
29
|
-
}
|
|
30
|
-
onValueChanged(value) {
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
DynamicBaseFormControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormControlComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }, { token: i2.DynamicBaseFormComponent }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
DynamicBaseFormControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DynamicBaseFormControlComponent, selector: "dynamic-base-form-control", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormControlComponent, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{
|
|
38
|
-
selector: "dynamic-base-form-control",
|
|
39
|
-
template: "",
|
|
40
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
41
|
-
}]
|
|
42
|
-
}], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }, { type: i2.DynamicBaseFormComponent }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { formLayout: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}], group: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}], layout: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}], model: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], blur: [{
|
|
51
|
-
type: Output
|
|
52
|
-
}], change: [{
|
|
53
|
-
type: Output
|
|
54
|
-
}], focus: [{
|
|
55
|
-
type: Output
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2Jhc2UvZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFDSCwyQkFBMkIsRUFNOUIsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVFoQyxNQUFNLE9BQU8sK0JBQW1FLFNBQVEsMkJBQTJCO0lBYS9HLFlBQVksYUFBdUMsRUFBRSxpQkFBK0MsRUFDL0UsSUFBOEIsRUFBVyxRQUFrQixFQUFXLEdBQXNCO1FBQzdHLEtBQUssQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUR2QixTQUFJLEdBQUosSUFBSSxDQUEwQjtRQUFXLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUU3RyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBVTtJQUVuQyxDQUFDOzs0SEF0Q1EsK0JBQStCO2dIQUEvQiwrQkFBK0IsNk9BSDlCLEVBQUU7MkZBR0gsK0JBQStCO2tCQUwzQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDt3UEFHWSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE91dHB1dFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1MYXlvdXQsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Db21wb25lbnR9IGZyb20gXCIuL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJkeW5hbWljLWJhc2UtZm9ybS1jb250cm9sXCIsXHJcbiAgICB0ZW1wbGF0ZTogXCJcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQmFzZUZvcm1Db250cm9sQ29tcG9uZW50PFQgZXh0ZW5kcyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbD4gZXh0ZW5kcyBEeW5hbWljRm9ybUNvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dCgpIGZvcm1MYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IFQ7XHJcblxyXG4gICAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgICBAT3V0cHV0KCkgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihsYXlvdXRTZXJ2aWNlOiBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsIHZhbGlkYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgZm9ybTogRHluYW1pY0Jhc2VGb3JtQ29tcG9uZW50LCByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcihsYXlvdXRTZXJ2aWNlLCB2YWxpZGF0aW9uU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5ibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgICAgICB0aGlzLmZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkKHZhbHVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuc3Vic2NyaXB0aW9uKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJtaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblZhbHVlQ2hhbmdlZCh2YWx1ZTogYW55KTogdm9pZCB7XHJcblxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChildren } from "@angular/core";
|
|
2
|
-
import { DynamicFormControlContainerComponent, DynamicFormGroupComponent, DynamicFormValueControlModel } from "@ng-dynamic-forms/core";
|
|
3
|
-
import { collectPathAble } from "../../utils/misc";
|
|
4
|
-
import { DynamicFormArrayModel } from "../../utils/dynamic-form-array.model";
|
|
5
|
-
import { DynamicFormGroupModel } from "../../utils/dynamic-form-group.model";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@ng-dynamic-forms/core";
|
|
8
|
-
export class DynamicBaseFormGroupComponent extends DynamicFormGroupComponent {
|
|
9
|
-
constructor(layoutService, validationService) {
|
|
10
|
-
super(layoutService, validationService);
|
|
11
|
-
this.layoutService = layoutService;
|
|
12
|
-
this.validationService = validationService;
|
|
13
|
-
this.blur = new EventEmitter();
|
|
14
|
-
this.change = new EventEmitter();
|
|
15
|
-
this.customEvent = new EventEmitter();
|
|
16
|
-
this.focus = new EventEmitter();
|
|
17
|
-
}
|
|
18
|
-
getClass(context, place, model) {
|
|
19
|
-
return [
|
|
20
|
-
context == "element" ? this.getModelClass(model) : null,
|
|
21
|
-
context == "element" ? this.getAdditionalClass(model) : null,
|
|
22
|
-
super.getClass(context, place, model)
|
|
23
|
-
].filter(cls => !!cls).join(" ");
|
|
24
|
-
}
|
|
25
|
-
getModelClass(model) {
|
|
26
|
-
const parts = collectPathAble(model, p => p.id);
|
|
27
|
-
if (parts.length == 0)
|
|
28
|
-
return "";
|
|
29
|
-
if (model instanceof DynamicFormGroupModel) {
|
|
30
|
-
return `form-group-${parts.join("-")}`;
|
|
31
|
-
}
|
|
32
|
-
return `form-control-${parts.join("-")}`;
|
|
33
|
-
}
|
|
34
|
-
getAdditionalClass(model) {
|
|
35
|
-
if (model instanceof DynamicFormArrayModel) {
|
|
36
|
-
return model.additional?.classes;
|
|
37
|
-
}
|
|
38
|
-
if (model instanceof DynamicFormValueControlModel) {
|
|
39
|
-
return model.additional?.classes;
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
DynamicBaseFormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormGroupComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
DynamicBaseFormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DynamicBaseFormGroupComponent, selector: "dynamic-base-form-group", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model", templates: "templates" }, outputs: { blur: "blur", change: "change", customEvent: "customEvent", focus: "focus" }, viewQueries: [{ propertyName: "components", predicate: i0.forwardRef(function () { return DynamicFormControlContainerComponent; }), descendants: true }], usesInheritance: true, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormGroupComponent, decorators: [{
|
|
47
|
-
type: Component,
|
|
48
|
-
args: [{
|
|
49
|
-
selector: "dynamic-base-form-group",
|
|
50
|
-
template: "",
|
|
51
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
52
|
-
}]
|
|
53
|
-
}], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], group: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], layout: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}], model: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], templates: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], blur: [{
|
|
64
|
-
type: Output
|
|
65
|
-
}], change: [{
|
|
66
|
-
type: Output
|
|
67
|
-
}], customEvent: [{
|
|
68
|
-
type: Output
|
|
69
|
-
}], focus: [{
|
|
70
|
-
type: Output
|
|
71
|
-
}], components: [{
|
|
72
|
-
type: ViewChildren,
|
|
73
|
-
args: [forwardRef(() => DynamicFormControlContainerComponent)]
|
|
74
|
-
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxvQ0FBb0MsRUFNcEMseUJBQXlCLEVBSXpCLDRCQUE0QixFQUUvQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBTzNFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx5QkFBeUI7SUFnQnhFLFlBQXNCLGFBQXVDLEVBQ3ZDLGlCQUErQztRQUNqRSxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFGdEIsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFUM0QsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxnQkFBVyxHQUFnRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlFLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVF4RCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXdDLEVBQUUsS0FBb0MsRUFBRSxLQUErQjtRQUNwSCxPQUFPO1lBQ0gsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN2RCxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDNUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztTQUN4QyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUErQjtRQUNuRCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDakMsSUFBSSxLQUFLLFlBQVkscUJBQXFCLEVBQUU7WUFDeEMsT0FBTyxjQUFjLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUMxQztRQUNELE9BQU8sZ0JBQWdCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRVMsa0JBQWtCLENBQUMsS0FBK0I7UUFDeEQsSUFBSSxLQUFLLFlBQVkscUJBQXFCLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQztTQUNwQztRQUNELElBQUksS0FBSyxZQUFZLDRCQUE0QixFQUFFO1lBQy9DLE9BQU8sS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUM7U0FDcEM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzswSEE5Q1EsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsMFVBYVAsb0NBQW9DLDJFQWhCekQsRUFBRTsyRkFHSCw2QkFBNkI7a0JBTHpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzBKQUdZLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUdQLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xDdXN0b21FdmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1Hcm91cENvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxyXG4gICAgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwsXHJcbiAgICBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVcclxufSBmcm9tIFwiQG5nLWR5bmFtaWMtZm9ybXMvY29yZVwiO1xyXG5pbXBvcnQge2NvbGxlY3RQYXRoQWJsZX0gZnJvbSBcIi4uLy4uL3V0aWxzL21pc2NcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybUFycmF5TW9kZWx9IGZyb20gXCIuLi8uLi91dGlscy9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybUdyb3VwTW9kZWx9IGZyb20gXCIuLi8uLi91dGlscy9keW5hbWljLWZvcm0tZ3JvdXAubW9kZWxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZHluYW1pYy1iYXNlLWZvcm0tZ3JvdXBcIixcclxuICAgIHRlbXBsYXRlOiBcIlwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNCYXNlRm9ybUdyb3VwQ29tcG9uZW50IGV4dGVuZHMgRHluYW1pY0Zvcm1Hcm91cENvbXBvbmVudCB7XHJcblxyXG4gICAgQElucHV0KCkgZm9ybUxheW91dDogRHluYW1pY0Zvcm1MYXlvdXQ7XHJcbiAgICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gICAgQElucHV0KCkgbGF5b3V0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQ7XHJcbiAgICBASW5wdXQoKSBtb2RlbDogRHluYW1pY0Zvcm1Hcm91cE1vZGVsO1xyXG4gICAgQElucHV0KCkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVtdIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGN1c3RvbUV2ZW50OiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50KSlcclxuICAgIGNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQ+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsYXlvdXRTZXJ2aWNlOiBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihsYXlvdXRTZXJ2aWNlLCB2YWxpZGF0aW9uU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2xhc3MoY29udGV4dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCwgcGxhY2U6IER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlLCBtb2RlbD86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICBjb250ZXh0ID09IFwiZWxlbWVudFwiID8gdGhpcy5nZXRNb2RlbENsYXNzKG1vZGVsKSA6IG51bGwsXHJcbiAgICAgICAgICAgIGNvbnRleHQgPT0gXCJlbGVtZW50XCIgPyB0aGlzLmdldEFkZGl0aW9uYWxDbGFzcyhtb2RlbCkgOiBudWxsLFxyXG4gICAgICAgICAgICBzdXBlci5nZXRDbGFzcyhjb250ZXh0LCBwbGFjZSwgbW9kZWwpXHJcbiAgICAgICAgXS5maWx0ZXIoY2xzID0+ICEhY2xzKS5qb2luKFwiIFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0TW9kZWxDbGFzcyhtb2RlbD86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IGNvbGxlY3RQYXRoQWJsZShtb2RlbCwgcCA9PiBwLmlkKTtcclxuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09IDApIHJldHVybiBcIlwiO1xyXG4gICAgICAgIGlmIChtb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYGZvcm0tZ3JvdXAtJHtwYXJ0cy5qb2luKFwiLVwiKX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYGZvcm0tY29udHJvbC0ke3BhcnRzLmpvaW4oXCItXCIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEFkZGl0aW9uYWxDbGFzcyhtb2RlbD86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAobW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUFycmF5TW9kZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1vZGVsLmFkZGl0aW9uYWw/LmNsYXNzZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1vZGVsLmFkZGl0aW9uYWw/LmNsYXNzZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Inject, Input, Output, QueryList, ViewChildren } from "@angular/core";
|
|
2
|
-
import { Subscription } from "rxjs";
|
|
3
|
-
import { debounceTime, groupBy, mergeMap } from "rxjs/operators";
|
|
4
|
-
import { first } from "rxjs/operators";
|
|
5
|
-
import { DynamicFormComponent, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
|
|
6
|
-
import { EventsService, ObservableUtils } from "@stemy/ngx-utils";
|
|
7
|
-
import { collectPathAble } from "../../utils/misc";
|
|
8
|
-
import { DynamicFormGroupModel } from "../../utils/dynamic-form-group.model";
|
|
9
|
-
import { DynamicFormService } from "../../services/dynamic-form.service";
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@ng-dynamic-forms/core";
|
|
12
|
-
import * as i2 from "../../services/dynamic-form.service";
|
|
13
|
-
import * as i3 from "@stemy/ngx-utils";
|
|
14
|
-
export class DynamicBaseFormComponent extends DynamicFormComponent {
|
|
15
|
-
constructor(formService, events, changeDetectorRef, componentService) {
|
|
16
|
-
super(changeDetectorRef, componentService);
|
|
17
|
-
this.formService = formService;
|
|
18
|
-
this.events = events;
|
|
19
|
-
this.blur = new EventEmitter();
|
|
20
|
-
this.change = new EventEmitter();
|
|
21
|
-
this.focus = new EventEmitter();
|
|
22
|
-
this.onValueChange = new EventEmitter();
|
|
23
|
-
this.onStatusChange = new EventEmitter();
|
|
24
|
-
this.onSubmit = new EventEmitter();
|
|
25
|
-
this.onDetectChanges = new EventEmitter();
|
|
26
|
-
this.templates = new QueryList();
|
|
27
|
-
this.subscription = new Subscription();
|
|
28
|
-
this.groupSubscription = new Subscription();
|
|
29
|
-
this.labelPrefix = "label";
|
|
30
|
-
this.getComponentType = () => null;
|
|
31
|
-
}
|
|
32
|
-
get status() {
|
|
33
|
-
return !this.group ? null : this.group.status;
|
|
34
|
-
}
|
|
35
|
-
submit() {
|
|
36
|
-
this.onSubmit.emit(this);
|
|
37
|
-
}
|
|
38
|
-
ngOnChanges(changes) {
|
|
39
|
-
this.groupSubscription.unsubscribe();
|
|
40
|
-
if (this.group) {
|
|
41
|
-
this.groupSubscription = ObservableUtils.multiSubscription(this.group.statusChanges.subscribe(() => {
|
|
42
|
-
this.onStatusChange.emit(this);
|
|
43
|
-
}), this.group.valueChanges.pipe(debounceTime(500)).subscribe(() => {
|
|
44
|
-
this.formService.notifyChanges(this.model, this.group);
|
|
45
|
-
}), this.change.pipe(groupBy(ev => ev.model))
|
|
46
|
-
.pipe(mergeMap(t => t.pipe(debounceTime(500))))
|
|
47
|
-
.subscribe(ev => {
|
|
48
|
-
this.onValueChange.emit({ ...ev, form: this });
|
|
49
|
-
}));
|
|
50
|
-
}
|
|
51
|
-
if (changes.groupModel) {
|
|
52
|
-
this.model = this.groupModel?.group;
|
|
53
|
-
}
|
|
54
|
-
if (changes.model) {
|
|
55
|
-
this.groupModel = new DynamicFormGroupModel({ id: "root", group: this.model });
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
ngAfterViewInit() {
|
|
59
|
-
this.subscription = ObservableUtils.multiSubscription(ObservableUtils.subscribe({
|
|
60
|
-
subjects: [this.contentTemplates.changes, this.viewTemplates.changes],
|
|
61
|
-
cb: () => {
|
|
62
|
-
const templates = this.contentTemplates.toArray().concat(this.viewTemplates.toArray());
|
|
63
|
-
this.templates.reset(templates);
|
|
64
|
-
}
|
|
65
|
-
}), this.events.languageChanged.subscribe(() => {
|
|
66
|
-
this.formService.notifyChanges(this.model, this.group);
|
|
67
|
-
this.formService.detectChanges(this);
|
|
68
|
-
}));
|
|
69
|
-
}
|
|
70
|
-
ngOnDestroy() {
|
|
71
|
-
super.ngOnDestroy();
|
|
72
|
-
this.subscription.unsubscribe();
|
|
73
|
-
this.groupSubscription.unsubscribe();
|
|
74
|
-
}
|
|
75
|
-
detectChanges() {
|
|
76
|
-
super.detectChanges();
|
|
77
|
-
this.onDetectChanges.emit(this);
|
|
78
|
-
}
|
|
79
|
-
insertFormArrayGroup(index, formArray, formArrayModel) {
|
|
80
|
-
this.formService.insertFormArrayGroup(index, formArray, formArrayModel);
|
|
81
|
-
this.detectChanges();
|
|
82
|
-
}
|
|
83
|
-
cloneFormArrayGroup(index, formArray, formArrayModel) {
|
|
84
|
-
this.formService.cloneFormArrayGroup(index, formArray, formArrayModel);
|
|
85
|
-
this.detectChanges();
|
|
86
|
-
}
|
|
87
|
-
removeFormArrayGroup(index, formArray, formArrayModel) {
|
|
88
|
-
this.formService.removeFormArrayGroup(index, formArray, formArrayModel);
|
|
89
|
-
this.detectChanges();
|
|
90
|
-
}
|
|
91
|
-
moveFormArrayGroup(index, step, formArray, formArrayModel) {
|
|
92
|
-
this.formService.moveFormArrayGroup(index, step, formArray, formArrayModel);
|
|
93
|
-
this.detectChanges();
|
|
94
|
-
}
|
|
95
|
-
clearFormArray(formArray, formArrayModel) {
|
|
96
|
-
this.formService.clearFormArray(formArray, formArrayModel);
|
|
97
|
-
this.detectChanges();
|
|
98
|
-
}
|
|
99
|
-
getClass(model) {
|
|
100
|
-
const parts = collectPathAble(model, p => p.id);
|
|
101
|
-
if (parts.length == 0)
|
|
102
|
-
return "";
|
|
103
|
-
if (model instanceof DynamicFormGroupModel) {
|
|
104
|
-
return `form-group-${parts.join("-")}`;
|
|
105
|
-
}
|
|
106
|
-
return `form-control-${parts.join("-")}`;
|
|
107
|
-
}
|
|
108
|
-
validate(showErrors = true) {
|
|
109
|
-
if (!this.group)
|
|
110
|
-
return Promise.resolve();
|
|
111
|
-
return new Promise((resolve, reject) => {
|
|
112
|
-
this.group.statusChanges.pipe(first(status => status == "VALID" || status == "INVALID")).subscribe(status => {
|
|
113
|
-
if (showErrors) {
|
|
114
|
-
this.formService.showErrors(this);
|
|
115
|
-
}
|
|
116
|
-
if (status == "VALID") {
|
|
117
|
-
resolve(null);
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
reject(null);
|
|
121
|
-
});
|
|
122
|
-
this.group.updateValueAndValidity();
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
async serialize(validate) {
|
|
126
|
-
if (!this.group)
|
|
127
|
-
return null;
|
|
128
|
-
if (validate) {
|
|
129
|
-
await this.validate();
|
|
130
|
-
}
|
|
131
|
-
return await this.formService.serialize(this.model, this.group);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
DynamicBaseFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormComponent, deps: [{ token: DynamicFormService }, { token: EventsService }, { token: i0.ChangeDetectorRef }, { token: i1.DynamicFormComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
135
|
-
DynamicBaseFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DynamicBaseFormComponent, selector: "dynamic-base-form", inputs: { group: "group", groupModel: "groupModel", model: "model", layout: "layout", labelPrefix: "labelPrefix", getComponentType: "getComponentType" }, outputs: { blur: "blur", change: "change", focus: "focus", onValueChange: "onValueChange", onStatusChange: "onStatusChange", onSubmit: "onSubmit", onDetectChanges: "onDetectChanges" }, queries: [{ propertyName: "contentTemplates", predicate: DynamicTemplateDirective }], viewQueries: [{ propertyName: "viewTemplates", predicate: DynamicTemplateDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormComponent, decorators: [{
|
|
137
|
-
type: Component,
|
|
138
|
-
args: [{
|
|
139
|
-
selector: "dynamic-base-form",
|
|
140
|
-
template: "",
|
|
141
|
-
changeDetection: ChangeDetectionStrategy.Default
|
|
142
|
-
}]
|
|
143
|
-
}], ctorParameters: function () { return [{ type: i2.DynamicFormService, decorators: [{
|
|
144
|
-
type: Inject,
|
|
145
|
-
args: [DynamicFormService]
|
|
146
|
-
}] }, { type: i3.EventsService, decorators: [{
|
|
147
|
-
type: Inject,
|
|
148
|
-
args: [EventsService]
|
|
149
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i1.DynamicFormComponentService }]; }, propDecorators: { group: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], groupModel: [{
|
|
152
|
-
type: Input
|
|
153
|
-
}], model: [{
|
|
154
|
-
type: Input
|
|
155
|
-
}], layout: [{
|
|
156
|
-
type: Input
|
|
157
|
-
}], labelPrefix: [{
|
|
158
|
-
type: Input
|
|
159
|
-
}], getComponentType: [{
|
|
160
|
-
type: Input
|
|
161
|
-
}], blur: [{
|
|
162
|
-
type: Output
|
|
163
|
-
}], change: [{
|
|
164
|
-
type: Output
|
|
165
|
-
}], focus: [{
|
|
166
|
-
type: Output
|
|
167
|
-
}], contentTemplates: [{
|
|
168
|
-
type: ContentChildren,
|
|
169
|
-
args: [DynamicTemplateDirective]
|
|
170
|
-
}], viewTemplates: [{
|
|
171
|
-
type: ViewChildren,
|
|
172
|
-
args: [DynamicTemplateDirective]
|
|
173
|
-
}], onValueChange: [{
|
|
174
|
-
type: Output
|
|
175
|
-
}], onStatusChange: [{
|
|
176
|
-
type: Output
|
|
177
|
-
}], onSubmit: [{
|
|
178
|
-
type: Output
|
|
179
|
-
}], onDetectChanges: [{
|
|
180
|
-
type: Output
|
|
181
|
-
}] } });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUNILG9CQUFvQixFQU1wQix3QkFBd0IsRUFDM0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUUzRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7QUFPdkUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjtJQTRCOUQsWUFBaUQsV0FBK0IsRUFDcEMsTUFBcUIsRUFDckQsaUJBQW9DLEVBQ3BDLGdCQUE2QztRQUNyRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUpFLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FB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QUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDOztxSEFsS1Esd0JBQXdCLGtCQTRCYixrQkFBa0IsYUFDbEIsYUFBYTt5R0E3QnhCLHdCQUF3Qiw2YUFhaEIsd0JBQXdCLCtEQUMzQix3QkFBd0IsNEZBakI1QixFQUFFOzJGQUdILHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDbkQ7OzBCQTZCZ0IsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLGFBQWE7c0hBM0J4QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUVvQyxnQkFBZ0I7c0JBQTFELGVBQWU7dUJBQUMsd0JBQXdCO2dCQUNELGFBQWE7c0JBQXBELFlBQVk7dUJBQUMsd0JBQXdCO2dCQU1uQixhQUFhO3NCQUEvQixNQUFNO2dCQUNZLGNBQWM7c0JBQWhDLE1BQU07Z0JBQ1ksUUFBUTtzQkFBMUIsTUFBTTtnQkFDWSxlQUFlO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtQXJyYXksIEZvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZSwgZ3JvdXBCeSwgbWVyZ2VNYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge2ZpcnN0fSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtcclxuICAgIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxyXG4gICAgRHluYW1pY0Zvcm1Nb2RlbCxcclxuICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxyXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XHJcbmltcG9ydCB7RXZlbnRzU2VydmljZSwgT2JzZXJ2YWJsZVV0aWxzfSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU3RhdGUsIEdldEZvcm1Db250cm9sQ29tcG9uZW50VHlwZSwgSUR5bmFtaWNGb3JtLCBJRHluYW1pY0Zvcm1FdmVudH0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge2NvbGxlY3RQYXRoQWJsZX0gZnJvbSBcIi4uLy4uL3V0aWxzL21pc2NcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybUdyb3VwTW9kZWx9IGZyb20gXCIuLi8uLi91dGlscy9keW5hbWljLWZvcm0tZ3JvdXAubW9kZWxcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybUFycmF5TW9kZWx9IGZyb20gXCIuLi8uLi91dGlscy9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJkeW5hbWljLWJhc2UtZm9ybVwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNCYXNlRm9ybUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBJRHluYW1pY0Zvcm0ge1xyXG5cclxuICAgIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgICBASW5wdXQoKSBncm91cE1vZGVsOiBEeW5hbWljRm9ybUdyb3VwTW9kZWw7XHJcbiAgICBASW5wdXQoKSBtb2RlbDogRHluYW1pY0Zvcm1Nb2RlbDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1MYXlvdXQ7XHJcbiAgICBASW5wdXQoKSBsYWJlbFByZWZpeDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZ2V0Q29tcG9uZW50VHlwZTogR2V0Rm9ybUNvbnRyb2xDb21wb25lbnRUeXBlO1xyXG5cclxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xyXG4gICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcclxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgY29udGVudFRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcbiAgICBAVmlld0NoaWxkcmVuKER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgdmlld1RlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcblxyXG4gICAgZ2V0IHN0YXR1cygpOiBEeW5hbWljRm9ybVN0YXRlIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuZ3JvdXAgPyBudWxsIDogdGhpcy5ncm91cC5zdGF0dXMgYXMgRHluYW1pY0Zvcm1TdGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb25WYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUV2ZW50PjtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybT47XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb25TdWJtaXQ6IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm0+O1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uRGV0ZWN0Q2hhbmdlczogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybT47XHJcblxyXG4gICAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJvdGVjdGVkIGdyb3VwU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChEeW5hbWljRm9ybVNlcnZpY2UpIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBEeW5hbWljRm9ybVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEV2ZW50c1NlcnZpY2UpIHJlYWRvbmx5IGV2ZW50czogRXZlbnRzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSwpIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG9uZW50U2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5ibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuICAgICAgICB0aGlzLmNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcbiAgICAgICAgdGhpcy5mb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm1FdmVudD4oKTtcclxuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm0+KCk7XHJcbiAgICAgICAgdGhpcy5vblN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtPigpO1xyXG4gICAgICAgIHRoaXMub25EZXRlY3RDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm0+KCk7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMgPSBuZXcgUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4oKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgICAgICB0aGlzLmdyb3VwU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgICAgIHRoaXMubGFiZWxQcmVmaXggPSBcImxhYmVsXCI7XHJcbiAgICAgICAgdGhpcy5nZXRDb21wb25lbnRUeXBlID0gKCkgPT4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdWJtaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdyb3VwU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXApIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cFN1YnNjcmlwdGlvbiA9IE9ic2VydmFibGVVdGlscy5tdWx0aVN1YnNjcmlwdGlvbihcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2UuZW1pdCh0aGlzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLm5vdGlmeUNoYW5nZXModGhpcy5tb2RlbCwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlLnBpcGUoZ3JvdXBCeShldiA9PiBldi5tb2RlbCkpXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUobWVyZ2VNYXAodCA9PiB0LnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpKSlcclxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGV2ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQoey4uLmV2LCBmb3JtOiB0aGlzfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuZ3JvdXBNb2RlbCkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gdGhpcy5ncm91cE1vZGVsPy5ncm91cDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNoYW5nZXMubW9kZWwpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cE1vZGVsID0gbmV3IER5bmFtaWNGb3JtR3JvdXBNb2RlbCh7aWQ6IFwicm9vdFwiLCBncm91cDogdGhpcy5tb2RlbH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBPYnNlcnZhYmxlVXRpbHMubXVsdGlTdWJzY3JpcHRpb24oXHJcbiAgICAgICAgICAgIE9ic2VydmFibGVVdGlscy5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdHM6IFt0aGlzLmNvbnRlbnRUZW1wbGF0ZXMuY2hhbmdlcywgdGhpcy52aWV3VGVtcGxhdGVzLmNoYW5nZXNdLFxyXG4gICAgICAgICAgICAgICAgICAgIGNiOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRoaXMuY29udGVudFRlbXBsYXRlcy50b0FycmF5KCkuY29uY2F0KHRoaXMudmlld1RlbXBsYXRlcy50b0FycmF5KCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlcy5yZXNldCh0ZW1wbGF0ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLm5vdGlmeUNoYW5nZXModGhpcy5tb2RlbCwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLmRldGVjdENoYW5nZXModGhpcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5ncm91cFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMub25EZXRlY3RDaGFuZ2VzLmVtaXQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0Rm9ybUFycmF5R3JvdXAoaW5kZXg6IG51bWJlciwgZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLmluc2VydEZvcm1BcnJheUdyb3VwKGluZGV4LCBmb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsKTtcclxuICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9uZUZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5jbG9uZUZvcm1BcnJheUdyb3VwKGluZGV4LCBmb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsKTtcclxuICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVGb3JtQXJyYXlHcm91cChpbmRleDogbnVtYmVyLCBmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UucmVtb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXgsIGZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWwpO1xyXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG1vdmVGb3JtQXJyYXlHcm91cChpbmRleDogbnVtYmVyLCBzdGVwOiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5tb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXgsIHN0ZXAsIGZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWwpO1xyXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyRm9ybUFycmF5KGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5jbGVhckZvcm1BcnJheShmb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsKTtcclxuICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDbGFzcyhtb2RlbD86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IGNvbGxlY3RQYXRoQWJsZShtb2RlbCwgcCA9PiBwLmlkKTtcclxuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09IDApIHJldHVybiBcIlwiO1xyXG4gICAgICAgIGlmIChtb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYGZvcm0tZ3JvdXAtJHtwYXJ0cy5qb2luKFwiLVwiKX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYGZvcm0tY29udHJvbC0ke3BhcnRzLmpvaW4oXCItXCIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgdmFsaWRhdGUoc2hvd0Vycm9yczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5ncm91cCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cC5zdGF0dXNDaGFuZ2VzLnBpcGUoZmlyc3Qoc3RhdHVzID0+IHN0YXR1cyA9PSBcIlZBTElEXCIgfHwgc3RhdHVzID09IFwiSU5WQUxJRFwiKSkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2hvd0Vycm9ycykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uuc2hvd0Vycm9ycyh0aGlzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gXCJWQUxJRFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzZXJpYWxpemUodmFsaWRhdGU/OiBib29sZWFuKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXApIHJldHVybiBudWxsO1xyXG4gICAgICAgIGlmICh2YWxpZGF0ZSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZvcm1TZXJ2aWNlLnNlcmlhbGl6ZSh0aGlzLm1vZGVsLCB0aGlzLmdyb3VwKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from "@angular/core";
|
|
2
|
-
import { BehaviorSubject } from "rxjs";
|
|
3
|
-
import { DynamicBaseFormControlComponent } from "./dynamic-base-form-control.component";
|
|
4
|
-
import { replaceSpecialChars } from "../../utils/misc";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class DynamicBaseSelectComponent extends DynamicBaseFormControlComponent {
|
|
7
|
-
ngOnInit() {
|
|
8
|
-
this.groups$ = new BehaviorSubject([]);
|
|
9
|
-
this.subscription = this.model.options$.subscribe(options => {
|
|
10
|
-
const groupBy = this.model.inline || !this.model.multiple ? this.model.groupBy : null;
|
|
11
|
-
const grouped = options.reduce((res, option) => {
|
|
12
|
-
const key = replaceSpecialChars(groupBy ? option.props[this.model.groupBy] || "default" : "default", "-");
|
|
13
|
-
res[key] = res[key] || [];
|
|
14
|
-
res[key].push(option);
|
|
15
|
-
return res;
|
|
16
|
-
}, {});
|
|
17
|
-
const groups = Object.keys(grouped).map(group => {
|
|
18
|
-
return {
|
|
19
|
-
group,
|
|
20
|
-
options: grouped[group]
|
|
21
|
-
};
|
|
22
|
-
});
|
|
23
|
-
this.hasOptions = groups.length > 0;
|
|
24
|
-
this.groups$.next(groups);
|
|
25
|
-
this.cdr.detectChanges();
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
ngOnDestroy() {
|
|
29
|
-
if (this.subscription)
|
|
30
|
-
this.subscription.unsubscribe();
|
|
31
|
-
}
|
|
32
|
-
isSelected(option) {
|
|
33
|
-
if (this.model.multiple) {
|
|
34
|
-
return this.control.value?.indexOf(option.value) >= 0;
|
|
35
|
-
}
|
|
36
|
-
return this.control.value == option.value;
|
|
37
|
-
}
|
|
38
|
-
selectToggle(option, state) {
|
|
39
|
-
if (this.model.multiple) {
|
|
40
|
-
const value = Array.from(this.control.value || []);
|
|
41
|
-
const index = value.indexOf(option.value);
|
|
42
|
-
if (index >= 0) {
|
|
43
|
-
value.splice(index, 1);
|
|
44
|
-
}
|
|
45
|
-
if (state) {
|
|
46
|
-
value.push(option.value);
|
|
47
|
-
}
|
|
48
|
-
this.control.setValue(value);
|
|
49
|
-
this.onChange(value);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
this.control.setValue(option.value);
|
|
53
|
-
this.onChange(option.value);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
DynamicBaseSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
-
DynamicBaseSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DynamicBaseSelectComponent, selector: "dynamic-base-select", usesInheritance: true, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseSelectComponent, decorators: [{
|
|
59
|
-
type: Component,
|
|
60
|
-
args: [{
|
|
61
|
-
selector: "dynamic-base-select",
|
|
62
|
-
template: "",
|
|
63
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
64
|
-
}]
|
|
65
|
-
}] });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2Jhc2UvZHluYW1pYy1iYXNlLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUV0RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPckQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLCtCQUF3RDtJQU9wRyxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0RixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUMzQyxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDMUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzFCLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO1lBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzVDLE9BQU87b0JBQ0gsS0FBSztvQkFDTCxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDMUIsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUE4QjtRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUE4QixFQUFFLEtBQWM7UUFDdkQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNyQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDWixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMxQjtZQUNELElBQUksS0FBSyxFQUFFO2dCQUNQLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7dUhBekRRLDBCQUEwQjsyR0FBMUIsMEJBQTBCLGtGQUh6QixFQUFFOzJGQUdILDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbnRyb2xDb21wb25lbnR9IGZyb20gXCIuL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RHluYW1pY0Zvcm1PcHRpb24sIER5bmFtaWNGb3JtT3B0aW9uR3JvdXAsIER5bmFtaWNTZWxlY3RNb2RlbH0gZnJvbSBcIi4uLy4uL3V0aWxzL2R5bmFtaWMtc2VsZWN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7cmVwbGFjZVNwZWNpYWxDaGFyc30gZnJvbSBcIi4uLy4uL3V0aWxzL21pc2NcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZHluYW1pYy1iYXNlLXNlbGVjdFwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljQmFzZUZvcm1Db250cm9sQ29tcG9uZW50PER5bmFtaWNTZWxlY3RNb2RlbDxhbnk+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBncm91cHMkOiBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0Zvcm1PcHRpb25Hcm91cDxhbnk+W10+O1xyXG4gICAgaGFzT3B0aW9uczogYm9vbGVhbjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEeW5hbWljRm9ybU9wdGlvbkdyb3VwPGFueT5bXT4oW10pO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5tb2RlbC5vcHRpb25zJC5zdWJzY3JpYmUob3B0aW9ucyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwQnkgPSB0aGlzLm1vZGVsLmlubGluZSB8fCAhdGhpcy5tb2RlbC5tdWx0aXBsZSA/IHRoaXMubW9kZWwuZ3JvdXBCeSA6IG51bGw7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwZWQgPSBvcHRpb25zLnJlZHVjZSgocmVzLCBvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IHJlcGxhY2VTcGVjaWFsQ2hhcnMoZ3JvdXBCeSA/IG9wdGlvbi5wcm9wc1t0aGlzLm1vZGVsLmdyb3VwQnldIHx8IFwiZGVmYXVsdFwiIDogXCJkZWZhdWx0XCIsIFwiLVwiKTtcclxuICAgICAgICAgICAgICAgIHJlc1trZXldID0gcmVzW2tleV0gfHwgW107XHJcbiAgICAgICAgICAgICAgICByZXNba2V5XS5wdXNoKG9wdGlvbik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICB9LCB7fSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IE9iamVjdC5rZXlzKGdyb3VwZWQpLm1hcChncm91cCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGdyb3VwZWRbZ3JvdXBdXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5oYXNPcHRpb25zID0gZ3JvdXBzLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzJC5uZXh0KGdyb3Vwcyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pXHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNTZWxlY3RlZChvcHRpb246IER5bmFtaWNGb3JtT3B0aW9uPGFueT4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbHVlPy5pbmRleE9mKG9wdGlvbi52YWx1ZSkgPj0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC52YWx1ZSA9PSBvcHRpb24udmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0VG9nZ2xlKG9wdGlvbjogRHluYW1pY0Zvcm1PcHRpb248YW55Piwgc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IEFycmF5LmZyb20odGhpcy5jb250cm9sLnZhbHVlIHx8IFtdKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB2YWx1ZS5pbmRleE9mKG9wdGlvbi52YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUucHVzaChvcHRpb24udmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShvcHRpb24udmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2Uob3B0aW9uLnZhbHVlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Output } from "@angular/core";
|
|
2
|
-
import { debounceTime } from "rxjs/operators";
|
|
3
|
-
import { TOASTER_SERVICE } from "@stemy/ngx-utils";
|
|
4
|
-
import { getFormValidationErrors } from "../utils/validation-errors";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class AsyncSubmitDirective {
|
|
7
|
-
constructor(toaster, cdr, elem, renderer) {
|
|
8
|
-
this.toaster = toaster;
|
|
9
|
-
this.cdr = cdr;
|
|
10
|
-
this.elem = elem;
|
|
11
|
-
this.renderer = renderer;
|
|
12
|
-
this.onSuccess = new EventEmitter();
|
|
13
|
-
this.onError = new EventEmitter();
|
|
14
|
-
if (elem.nativeElement.tagName !== "BUTTON")
|
|
15
|
-
return;
|
|
16
|
-
renderer.setAttribute(elem.nativeElement, "type", "button");
|
|
17
|
-
}
|
|
18
|
-
get isDisabled() {
|
|
19
|
-
return this.disabled;
|
|
20
|
-
}
|
|
21
|
-
set isDisabled(value) {
|
|
22
|
-
this.disabled = value;
|
|
23
|
-
if (value) {
|
|
24
|
-
this.renderer.setAttribute(this.elem.nativeElement, "disabled", "disabled");
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
this.renderer.removeAttribute(this.elem.nativeElement, "disabled");
|
|
28
|
-
}
|
|
29
|
-
get isLoading() {
|
|
30
|
-
return this.loading;
|
|
31
|
-
}
|
|
32
|
-
ngOnInit() {
|
|
33
|
-
if (!this.form)
|
|
34
|
-
return;
|
|
35
|
-
this.isDisabled = this.form.status !== "VALID";
|
|
36
|
-
this.cdr.detectChanges();
|
|
37
|
-
this.onStatusChange = this.form.onStatusChange.subscribe(() => {
|
|
38
|
-
this.isDisabled = this.form.status !== "VALID";
|
|
39
|
-
this.cdr.detectChanges();
|
|
40
|
-
if (!this.callback || this.form.status == "PENDING")
|
|
41
|
-
return;
|
|
42
|
-
if (!this.disabled) {
|
|
43
|
-
this.callback();
|
|
44
|
-
}
|
|
45
|
-
this.callback = null;
|
|
46
|
-
});
|
|
47
|
-
this.onSubmit = this.form.onSubmit.pipe(debounceTime(200)).subscribe(() => this.callMethod());
|
|
48
|
-
}
|
|
49
|
-
ngOnDestroy() {
|
|
50
|
-
if (this.onStatusChange)
|
|
51
|
-
this.onStatusChange.unsubscribe();
|
|
52
|
-
if (this.onSubmit)
|
|
53
|
-
this.onSubmit.unsubscribe();
|
|
54
|
-
}
|
|
55
|
-
click() {
|
|
56
|
-
this.callback = () => this.callMethod();
|
|
57
|
-
if (this.form.status === "INVALID") {
|
|
58
|
-
console.log(getFormValidationErrors(this.form.group.controls));
|
|
59
|
-
}
|
|
60
|
-
if (this.form.status !== "VALID" && this.form.status !== "INVALID")
|
|
61
|
-
return;
|
|
62
|
-
this.callback();
|
|
63
|
-
this.callback = null;
|
|
64
|
-
}
|
|
65
|
-
callMethod() {
|
|
66
|
-
if (this.loading)
|
|
67
|
-
return;
|
|
68
|
-
this.loading = true;
|
|
69
|
-
this.method(this.form, this.context).then(result => {
|
|
70
|
-
this.loading = false;
|
|
71
|
-
if (result) {
|
|
72
|
-
this.onSuccess.emit(result);
|
|
73
|
-
this.toaster.success(result.message, result.context);
|
|
74
|
-
}
|
|
75
|
-
}, reason => {
|
|
76
|
-
if (!reason || !reason.message)
|
|
77
|
-
throw new Error("Reason must implement IAsyncMessage interface");
|
|
78
|
-
this.loading = false;
|
|
79
|
-
this.onError.emit(reason);
|
|
80
|
-
this.toaster.error(reason.message, reason.context);
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
AsyncSubmitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AsyncSubmitDirective, deps: [{ token: TOASTER_SERVICE }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
85
|
-
AsyncSubmitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AsyncSubmitDirective, selector: "[async-submit]", inputs: { method: ["async-submit", "method"], form: "form", context: "context" }, outputs: { onSuccess: "onSuccess", onError: "onError" }, host: { listeners: { "click": "click()" }, properties: { "class.disabled": "this.isDisabled", "class.loading": "this.isLoading" } }, exportAs: ["async-submit"], ngImport: i0 });
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AsyncSubmitDirective, decorators: [{
|
|
87
|
-
type: Directive,
|
|
88
|
-
args: [{
|
|
89
|
-
selector: "[async-submit]",
|
|
90
|
-
exportAs: "async-submit"
|
|
91
|
-
}]
|
|
92
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
93
|
-
type: Inject,
|
|
94
|
-
args: [TOASTER_SERVICE]
|
|
95
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { method: [{
|
|
96
|
-
type: Input,
|
|
97
|
-
args: ["async-submit"]
|
|
98
|
-
}], form: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], context: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], onSuccess: [{
|
|
103
|
-
type: Output
|
|
104
|
-
}], onError: [{
|
|
105
|
-
type: Output
|
|
106
|
-
}], isDisabled: [{
|
|
107
|
-
type: HostBinding,
|
|
108
|
-
args: ["class.disabled"]
|
|
109
|
-
}], isLoading: [{
|
|
110
|
-
type: HostBinding,
|
|
111
|
-
args: ["class.loading"]
|
|
112
|
-
}], click: [{
|
|
113
|
-
type: HostListener,
|
|
114
|
-
args: ["click"]
|
|
115
|
-
}] } });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc3VibWl0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtZHluYW1pYy1mb3JtL2RpcmVjdGl2ZXMvYXN5bmMtc3VibWl0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQWlDLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRWpGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDOztBQU1uRSxNQUFNLE9BQU8sb0JBQW9CO0lBa0M3QixZQUE2QyxPQUF3QixFQUNoRCxHQUFzQixFQUN0QixJQUFnQixFQUNoQixRQUFtQjtRQUhLLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ2hELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDakQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxRQUFRO1lBQUUsT0FBTztRQUNwRCxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUEzQkQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFj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ICBEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbmplY3QsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFJlbmRlcmVyMlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7SUFzeW5jTWVzc2FnZSwgSVRvYXN0ZXJTZXJ2aWNlLCBUT0FTVEVSX1NFUlZJQ0V9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcbmltcG9ydCB7QXN5bmNTdWJtaXRNZXRob2QsIElEeW5hbWljRm9ybX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge2dldEZvcm1WYWxpZGF0aW9uRXJyb3JzfSBmcm9tIFwiLi4vdXRpbHMvdmFsaWRhdGlvbi1lcnJvcnNcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2FzeW5jLXN1Ym1pdF1cIixcclxuICAgIGV4cG9ydEFzOiBcImFzeW5jLXN1Ym1pdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3luY1N1Ym1pdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBASW5wdXQoXCJhc3luYy1zdWJtaXRcIikgbWV0aG9kOiBBc3luY1N1Ym1pdE1ldGhvZDtcclxuICAgIEBJbnB1dCgpIGZvcm06IElEeW5hbWljRm9ybTtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25TdWNjZXNzOiBFdmVudEVtaXR0ZXI8SUFzeW5jTWVzc2FnZT47XHJcbiAgICBAT3V0cHV0KCkgb25FcnJvcjogRXZlbnRFbWl0dGVyPElBc3luY01lc3NhZ2U+O1xyXG5cclxuICAgIHByaXZhdGUgbG9hZGluZzogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIGNhbGxiYWNrOiBGdW5jdGlvbjtcclxuICAgIHByaXZhdGUgb25TdGF0dXNDaGFuZ2U6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgb25TdWJtaXQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5kaXNhYmxlZFwiKVxyXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50LCBcImRpc2FibGVkXCIsIFwiZGlzYWJsZWRcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQsIFwiZGlzYWJsZWRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubG9hZGluZ1wiKVxyXG4gICAgZ2V0IGlzTG9hZGluZygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoVE9BU1RFUl9TRVJWSUNFKSBwcml2YXRlIHRvYXN0ZXI6IElUb2FzdGVyU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBlbGVtOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgICAgIHRoaXMub25TdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxJQXN5bmNNZXNzYWdlPigpO1xyXG4gICAgICAgIHRoaXMub25FcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8SUFzeW5jTWVzc2FnZT4oKTtcclxuICAgICAgICBpZiAoZWxlbS5uYXRpdmVFbGVtZW50LnRhZ05hbWUgIT09IFwiQlVUVE9OXCIpIHJldHVybjtcclxuICAgICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbS5uYXRpdmVFbGVtZW50LCBcInR5cGVcIiwgXCJidXR0b25cIik7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0pIHJldHVybjtcclxuICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSB0aGlzLmZvcm0uc3RhdHVzICE9PSBcIlZBTElEXCI7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2UgPSB0aGlzLmZvcm0ub25TdGF0dXNDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gdGhpcy5mb3JtLnN0YXR1cyAhPT0gXCJWQUxJRFwiO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jYWxsYmFjayB8fCB0aGlzLmZvcm0uc3RhdHVzID09IFwiUEVORElOR1wiKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2sgPSBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMub25TdWJtaXQgPSB0aGlzLmZvcm0ub25TdWJtaXQucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2FsbE1ldGhvZCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5vblN0YXR1c0NoYW5nZSkgdGhpcy5vblN0YXR1c0NoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLm9uU3VibWl0KSB0aGlzLm9uU3VibWl0LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXHJcbiAgICBjbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrID0gKCkgPT4gdGhpcy5jYWxsTWV0aG9kKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5zdGF0dXMgPT09IFwiSU5WQUxJRFwiKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGdldEZvcm1WYWxpZGF0aW9uRXJyb3JzKHRoaXMuZm9ybS5ncm91cC5jb250cm9scykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5mb3JtLnN0YXR1cyAhPT0gXCJWQUxJRFwiICYmIHRoaXMuZm9ybS5zdGF0dXMgIT09IFwiSU5WQUxJRFwiKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5jYWxsYmFjaygpO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2sgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGxNZXRob2QoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMubG9hZGluZykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5tZXRob2QodGhpcy5mb3JtLCB0aGlzLmNvbnRleHQpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TdWNjZXNzLmVtaXQocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHJlc3VsdC5tZXNzYWdlLCByZXN1bHQuY29udGV4dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCByZWFzb24gPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXJlYXNvbiB8fCAhcmVhc29uLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWFzb24gbXVzdCBpbXBsZW1lbnQgSUFzeW5jTWVzc2FnZSBpbnRlcmZhY2VcIik7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdChyZWFzb24pO1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IocmVhc29uLm1lc3NhZ2UsIHJlYXNvbi5jb250ZXh0KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { AsyncSubmitDirective } from "./directives/async-submit.directive";
|
|
2
|
-
import { DynamicBaseFormComponent } from "./components/base/dynamic-base-form.component";
|
|
3
|
-
import { DynamicBaseFormArrayComponent } from "./components/base/dynamic-base-form-array.component";
|
|
4
|
-
import { DynamicBaseFormControlComponent } from "./components/base/dynamic-base-form-control.component";
|
|
5
|
-
import { DynamicBaseFormControlContainerComponent } from "./components/base/dynamic-base-form-control-container.component";
|
|
6
|
-
import { DynamicBaseFormGroupComponent } from "./components/base/dynamic-base-form-group.component";
|
|
7
|
-
import { DynamicBaseSelectComponent } from "./components/base/dynamic-base-select.component";
|
|
8
|
-
// --- Components ---
|
|
9
|
-
export const components = [
|
|
10
|
-
DynamicBaseFormComponent,
|
|
11
|
-
DynamicBaseFormArrayComponent,
|
|
12
|
-
DynamicBaseFormControlComponent,
|
|
13
|
-
DynamicBaseFormControlContainerComponent,
|
|
14
|
-
DynamicBaseFormGroupComponent,
|
|
15
|
-
DynamicBaseSelectComponent
|
|
16
|
-
];
|
|
17
|
-
// --- Directives ---
|
|
18
|
-
export const directives = [
|
|
19
|
-
AsyncSubmitDirective,
|
|
20
|
-
];
|
|
21
|
-
// --- Pipes ---
|
|
22
|
-
export const pipes = [];
|
|
23
|
-
export function defaultFormControlProvider() {
|
|
24
|
-
return () => null;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWR5bmFtaWMtZm9ybS5pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vbmd4LWR5bmFtaWMtZm9ybS5pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3RHLE9BQU8sRUFDSCx3Q0FBd0MsRUFDM0MsTUFBTSxpRUFBaUUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNsRyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUUzRixxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLHdCQUF3QjtJQUN4Qiw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLHdDQUF3QztJQUN4Qyw2QkFBNkI7SUFDN0IsMEJBQTBCO0NBQzdCLENBQUM7QUFFRixxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLG9CQUFvQjtDQUN2QixDQUFDO0FBRUYsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFFeEIsTUFBTSxVQUFVLDBCQUEwQjtJQUN0QyxPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEeW5hbWljRm9ybUNvbnRyb2xNYXBGbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7QXN5bmNTdWJtaXREaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYXN5bmMtc3VibWl0LmRpcmVjdGl2ZVwiO1xyXG5cclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Db21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1BcnJheUNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWFycmF5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbnRyb2xDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS1jb250cm9sLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0R5bmFtaWNCYXNlU2VsZWN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2Jhc2UvZHluYW1pYy1iYXNlLXNlbGVjdC5jb21wb25lbnRcIjtcclxuXHJcbi8vIC0tLSBDb21wb25lbnRzIC0tLVxyXG5leHBvcnQgY29uc3QgY29tcG9uZW50cyA9IFtcclxuICAgIER5bmFtaWNCYXNlRm9ybUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNCYXNlRm9ybUFycmF5Q29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIER5bmFtaWNCYXNlRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudCxcclxuICAgIER5bmFtaWNCYXNlU2VsZWN0Q29tcG9uZW50XHJcbl07XHJcblxyXG4vLyAtLS0gRGlyZWN0aXZlcyAtLS1cclxuZXhwb3J0IGNvbnN0IGRpcmVjdGl2ZXMgPSBbXHJcbiAgICBBc3luY1N1Ym1pdERpcmVjdGl2ZSxcclxuXTtcclxuXHJcbi8vIC0tLSBQaXBlcyAtLS1cclxuZXhwb3J0IGNvbnN0IHBpcGVzID0gW107XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEZvcm1Db250cm9sUHJvdmlkZXIoKTogRHluYW1pY0Zvcm1Db250cm9sTWFwRm4ge1xyXG4gICAgcmV0dXJuICgpID0+IG51bGw7XHJcbn1cclxuIl19
|