@stemy/ngx-dynamic-form 10.2.32 → 13.0.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/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 +19 -0
- package/esm2020/ngx-dynamic-form/ngx-dynamic-form.module.mjs +110 -0
- package/esm2020/ngx-dynamic-form/services/dynamic-form.service.mjs +451 -0
- package/esm2020/ngx-dynamic-form/utils/dynamic-form-array.model.mjs +16 -0
- package/esm2020/ngx-dynamic-form/utils/form-select-subject.mjs +23 -0
- package/esm2020/ngx-dynamic-form/utils/form-subject.mjs +29 -0
- package/{esm2015/ngx-dynamic-form/utils/misc.js → esm2020/ngx-dynamic-form/utils/misc.mjs} +1 -1
- package/{esm2015/ngx-dynamic-form/utils/validators.js → esm2020/ngx-dynamic-form/utils/validators.mjs} +0 -0
- package/esm2020/public_api.mjs +13 -0
- package/esm2020/stemy-ngx-dynamic-form.mjs +5 -0
- package/fesm2015/{stemy-ngx-dynamic-form.js → stemy-ngx-dynamic-form.mjs} +395 -217
- package/fesm2015/stemy-ngx-dynamic-form.mjs.map +1 -0
- package/fesm2020/stemy-ngx-dynamic-form.mjs +1303 -0
- package/fesm2020/stemy-ngx-dynamic-form.mjs.map +1 -0
- package/ngx-dynamic-form/common-types.d.ts +9 -8
- package/ngx-dynamic-form/components/base/dynamic-base-form-array.component.d.ts +12 -3
- 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 +4 -0
- package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +7 -4
- package/ngx-dynamic-form/directives/async-submit.directive.d.ts +5 -2
- package/ngx-dynamic-form/ngx-dynamic-form.imports.d.ts +8 -0
- package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +12 -8
- package/ngx-dynamic-form/services/dynamic-form.service.d.ts +8 -3
- package/ngx-dynamic-form/utils/dynamic-form-array.model.d.ts +10 -0
- package/ngx-dynamic-form/utils/form-subject.d.ts +4 -3
- package/ngx-dynamic-form/utils/misc.d.ts +1 -1
- package/package.json +42 -23
- package/public_api.d.ts +2 -1
- package/stemy-ngx-dynamic-form.d.ts +1 -1
- package/bundles/stemy-ngx-dynamic-form.umd.js +0 -1689
- 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 -53
- 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 -53
- package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form.component.js +0 -139
- 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 -428
- package/esm2015/ngx-dynamic-form/utils/dynamic-form-array.model.js +0 -8
- package/esm2015/ngx-dynamic-form/utils/form-select-subject.js +0 -24
- package/esm2015/ngx-dynamic-form/utils/form-subject.js +0 -22
- package/esm2015/public_api.js +0 -12
- 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
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { ObjectUtils, ReflectUtils } from "@stemy/ngx-utils";
|
|
2
|
+
// --- Decorator functions ---
|
|
3
|
+
export function defaultSerializer(id, parent) {
|
|
4
|
+
const control = parent.get(id);
|
|
5
|
+
return !control ? null : control.value;
|
|
6
|
+
}
|
|
7
|
+
export function FormSerializable(serializer) {
|
|
8
|
+
return (target, propertyKey) => {
|
|
9
|
+
ReflectUtils.defineMetadata("dynamicFormSerializer", serializer || defaultSerializer, target, propertyKey);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function FormInput(data) {
|
|
13
|
+
return (target, propertyKey) => {
|
|
14
|
+
const meta = ReflectUtils.getOwnMetadata("design:type", target, propertyKey);
|
|
15
|
+
const type = meta ? meta.name : "";
|
|
16
|
+
let inputType = propertyKey.indexOf("password") < 0 ? "text" : "password";
|
|
17
|
+
switch (type) {
|
|
18
|
+
case "Number":
|
|
19
|
+
inputType = "number";
|
|
20
|
+
break;
|
|
21
|
+
case "Boolean":
|
|
22
|
+
inputType = "checkbox";
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
defineFormControl(target, propertyKey, createFormInput(propertyKey, data, inputType));
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function FormSelect(data) {
|
|
29
|
+
return (target, propertyKey) => {
|
|
30
|
+
defineFormControl(target, propertyKey, createFormSelect(propertyKey, data));
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function FormStatic(data) {
|
|
34
|
+
return (target, propertyKey) => {
|
|
35
|
+
defineFormControl(target, propertyKey, createFormStatic(propertyKey, data));
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export function FormModel(data) {
|
|
39
|
+
return (target, propertyKey) => {
|
|
40
|
+
defineFormControl(target, propertyKey, createFormModel(propertyKey, data));
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function FormFile(data) {
|
|
44
|
+
return (target, propertyKey) => {
|
|
45
|
+
defineFormControl(target, propertyKey, createFormFile(propertyKey, data));
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export function defineFormControl(target, propertyKey, control) {
|
|
49
|
+
ReflectUtils.defineMetadata("dynamicFormControl", control, target, propertyKey);
|
|
50
|
+
}
|
|
51
|
+
export function getFormControl(target, propertyKey) {
|
|
52
|
+
return ReflectUtils.getMetadata("dynamicFormControl", target, propertyKey);
|
|
53
|
+
}
|
|
54
|
+
export function getFormSerializer(target, propertyKey) {
|
|
55
|
+
return ReflectUtils.getMetadata("dynamicFormSerializer", target, propertyKey);
|
|
56
|
+
}
|
|
57
|
+
export function createFormControl(id, type, config) {
|
|
58
|
+
config = config || { id };
|
|
59
|
+
config.id = id;
|
|
60
|
+
config.label = ObjectUtils.isNullOrUndefined(config.label) ? id : config.label;
|
|
61
|
+
config.disabled = config.disabled || false;
|
|
62
|
+
config.hidden = config.hidden || false;
|
|
63
|
+
return { id, type, config };
|
|
64
|
+
}
|
|
65
|
+
export function createFormInput(id, config, type = "text") {
|
|
66
|
+
const control = createFormControl(id, "input", config);
|
|
67
|
+
config = control.config;
|
|
68
|
+
config.inputType = config.inputType || type;
|
|
69
|
+
config.placeholder = config.placeholder || (config.inputType == "mask" ? "_" : "");
|
|
70
|
+
config.step = config.step || 1;
|
|
71
|
+
config.mask = config.mask || null;
|
|
72
|
+
return control;
|
|
73
|
+
}
|
|
74
|
+
export function createFormSelect(id, data) {
|
|
75
|
+
const control = createFormControl(id, "select", data);
|
|
76
|
+
data = control.config;
|
|
77
|
+
data.options = data.options || [];
|
|
78
|
+
return control;
|
|
79
|
+
}
|
|
80
|
+
export function createFormStatic(id, config) {
|
|
81
|
+
return createFormControl(id, "static", config);
|
|
82
|
+
}
|
|
83
|
+
export function createFormModel(id, data) {
|
|
84
|
+
const control = createFormControl(id, "group", data);
|
|
85
|
+
data = control.config;
|
|
86
|
+
data.name = data.name || "";
|
|
87
|
+
return control;
|
|
88
|
+
}
|
|
89
|
+
export function createFormFile(id, data) {
|
|
90
|
+
const control = createFormControl(id, "file", data);
|
|
91
|
+
data = control.config;
|
|
92
|
+
data.accept = data.accept || ["jpg", "jpeg", "png"];
|
|
93
|
+
data.multiple = data.multiple || false;
|
|
94
|
+
data.url = ObjectUtils.isString(data.url) ? data.url : "assets";
|
|
95
|
+
return control;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tbW9uLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFLSCxXQUFXLEVBQ1gsWUFBWSxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUF1RjFCLDhCQUE4QjtBQUM5QixNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBVSxFQUFFLE1BQWlCO0lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBb0Q7SUFDakYsT0FBTyxDQUFDLE1BQVcsRUFBRSxXQUFtQixFQUFRLEVBQUU7UUFDOUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLElBQUksaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9HLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQThCO0lBQ3BELE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBUSxFQUFFO1FBQzlDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FB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TyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDNUIsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsRUFBVSxFQUFFLElBQWtDO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNoRSxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBUZW1wbGF0ZVJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgICBEeW5hbWljRmlsZVVwbG9hZE1vZGVsQ29uZmlnLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sLCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTW9kZWxDb25maWcsXHJcbiAgICBEeW5hbWljRm9ybUdyb3VwTW9kZWxDb25maWcsXHJcbiAgICBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY0lucHV0TW9kZWxDb25maWcsXHJcbiAgICBEeW5hbWljU2VsZWN0TW9kZWxDb25maWdcclxufSBmcm9tIFwiQG5nLWR5bmFtaWMtZm9ybXMvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gICAgSUFzeW5jTWVzc2FnZSxcclxuICAgIElPcGVuQXBpU2NoZW1hLFxyXG4gICAgSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSxcclxuICAgIElSZXNvbHZlRmFjdG9yeSxcclxuICAgIE9iamVjdFV0aWxzLFxyXG4gICAgUmVmbGVjdFV0aWxzXHJcbn0gZnJvbSBcIkBzdGVteS9uZ3gtdXRpbHNcIjtcclxuXHJcbi8vIC0tLSBCYXNpYyBmb3JtIGNvbnRyb2wgaW50ZXJmYWNlcyAtLS1cclxuXHJcbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtU3RhdGUgPSBcIlZBTElEXCIgfCBcIklOVkFMSURcIiB8IFwiUEVORElOR1wiIHwgXCJESVNBQkxFRFwiIHwgXCJMT0FESU5HXCI7XHJcbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtVXBkYXRlT24gPSBcImNoYW5nZVwiIHwgXCJibHVyXCIgfCBcInN1Ym1pdFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY0Zvcm1FdmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50IHtcclxuICAgIGZvcm06IElEeW5hbWljRm9ybTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY0Zvcm0ge1xyXG4gICAgc3RhdHVzOiBEeW5hbWljRm9ybVN0YXRlO1xyXG5cclxuICAgIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm1FdmVudD47XHJcbiAgICBvblN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybT47XHJcbiAgICBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybT47XHJcblxyXG4gICAgdmFsaWRhdGUoKTogUHJvbWlzZTxhbnk+O1xyXG4gICAgc2VyaWFsaXplKHZhbGlkYXRlPzogYm9vbGVhbik6IFByb21pc2U8YW55PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbkNyZWF0ZWRGb3JtQ29udHJvbCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbCB7XHJcbiAgICBvbkNyZWF0ZWQoKTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kZWxUeXBlIGV4dGVuZHMgRnVuY3Rpb24ge1xyXG4gICAgbmV3IChjb25maWc6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsQ29uZmlnKTogRHluYW1pY0Zvcm1Db250cm9sTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvcm1Db250cm9sU2VyaWFsaXplciA9IChtb2RlbDogRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxhbnk+LCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFByb21pc2U8YW55PjtcclxuZXhwb3J0IHR5cGUgRm9ybU1vZGVsQ3VzdG9taXplciA9IChcclxuICAgIHByb3BlcnR5OiBJT3BlbkFwaVNjaGVtYVByb3BlcnR5LCBzY2hlbWE6IElPcGVuQXBpU2NoZW1hLFxyXG4gICAgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBjb25maWc6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsQ29uZmlnLCBpbmplY3RvcjogSW5qZWN0b3JcclxuKSA9PiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB8IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsW107XHJcbmV4cG9ydCB0eXBlIEZvcm1Nb2RlbEN1c3RvbWl6ZXJXcmFwID0gKFxyXG4gICAgcHJvcGVydHk6IElPcGVuQXBpU2NoZW1hUHJvcGVydHksIHNjaGVtYTogSU9wZW5BcGlTY2hlbWEsXHJcbiAgICBtb2RlbFR5cGU6IE1vZGVsVHlwZSwgY29uZmlnOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbENvbmZpZ1xyXG4pID0+IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtQ29udHJvbCB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgY29uZmlnPzogRHluYW1pY0Zvcm1Db250cm9sTW9kZWxDb25maWc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1Db250cm9sT3B0aW9uIHtcclxuICAgIGlkOiBhbnk7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgc2VsZWN0YWJsZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8vIC0tLSBCYXNpYyBmb3JtIGludGVyZmFjZXMgLS0tXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRm9ybVRlbXBsYXRlcyB7XHJcbiAgICBbaWQ6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtQ29uZmlnIHtcclxuICAgIHBhdGg/OiBzdHJpbmcgfCBudW1iZXIgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIGNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgICBmb3JtQ2xhc3Nlcz86IHN0cmluZztcclxuICAgIGlubmVyRm9ybUNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgICBpZDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljU2luZ2xlRm9ybUNvbmZpZyBleHRlbmRzIElEeW5hbWljRm9ybUNvbmZpZywgSUR5bmFtaWNGb3JtSW5mbyB7XHJcbiAgICBkYXRhOiBhbnk7XHJcbiAgICBjb250cm9sRGF0YT86IER5bmFtaWNGb3JtR3JvdXBNb2RlbENvbmZpZztcclxuICAgIG11bHRpPzogZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNNdWx0aUZvcm1Db25maWcgZXh0ZW5kcyBJRHluYW1pY0Zvcm1Db25maWcge1xyXG4gICAgZGF0YTogSUR5bmFtaWNGb3Jtc0NvbmZpZ3M7XHJcbiAgICBtdWx0aTogdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSUR5bmFtaWNGb3Jtc0NvbmZpZ3MgPSBBcnJheTxJRHluYW1pY1NpbmdsZUZvcm1Db25maWcgfCBJRHluYW1pY011bHRpRm9ybUNvbmZpZz47XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEFzeW5jU3VibWl0TWV0aG9kID0gKGZvcm06IElEeW5hbWljRm9ybSwgY29udGV4dD86IGFueSkgPT4gUHJvbWlzZTxJQXN5bmNNZXNzYWdlPjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtSW5mbyB7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgY29udHJvbHM/OiBJRm9ybUNvbnRyb2xbXTtcclxufVxyXG5cclxuLy8gLS0tIERlY29yYXRvciBmdW5jdGlvbnMgLS0tXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0U2VyaWFsaXplcihpZDogc3RyaW5nLCBwYXJlbnQ6IEZvcm1BcnJheSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBjb250cm9sID0gcGFyZW50LmdldChpZCk7XHJcbiAgICByZXR1cm4gIWNvbnRyb2wgPyBudWxsOiBjb250cm9sLnZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRm9ybVNlcmlhbGl6YWJsZShzZXJpYWxpemVyPzogRm9ybUNvbnRyb2xTZXJpYWxpemVyIHwgSVJlc29sdmVGYWN0b3J5KTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gICAgICAgIFJlZmxlY3RVdGlscy5kZWZpbmVNZXRhZGF0YShcImR5bmFtaWNGb3JtU2VyaWFsaXplclwiLCBzZXJpYWxpemVyIHx8IGRlZmF1bHRTZXJpYWxpemVyLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtSW5wdXQoZGF0YT86IER5bmFtaWNJbnB1dE1vZGVsQ29uZmlnKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gICAgICAgIGNvbnN0IG1ldGEgPSBSZWZsZWN0VXRpbHMuZ2V0T3duTWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgICAgICBjb25zdCB0eXBlID0gbWV0YSA/IG1ldGEubmFtZSA6IFwiXCI7XHJcbiAgICAgICAgbGV0IGlucHV0VHlwZSA9IHByb3BlcnR5S2V5LmluZGV4T2YoXCJwYXNzd29yZFwiKSA8IDAgPyBcInRleHRcIiA6IFwicGFzc3dvcmRcIjtcclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBcIk51bWJlclwiOlxyXG4gICAgICAgICAgICAgICAgaW5wdXRUeXBlID0gXCJudW1iZXJcIjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiQm9vbGVhblwiOlxyXG4gICAgICAgICAgICAgICAgaW5wdXRUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlZmluZUZvcm1Db250cm9sKHRhcmdldCwgcHJvcGVydHlLZXksIGNyZWF0ZUZvcm1JbnB1dChwcm9wZXJ0eUtleSwgZGF0YSwgaW5wdXRUeXBlKSk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRm9ybVNlbGVjdChkYXRhPzogRHluYW1pY1NlbGVjdE1vZGVsQ29uZmlnPGFueT4pOiBQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogdm9pZCA9PiB7XHJcbiAgICAgICAgZGVmaW5lRm9ybUNvbnRyb2wodGFyZ2V0LCBwcm9wZXJ0eUtleSwgY3JlYXRlRm9ybVNlbGVjdChwcm9wZXJ0eUtleSwgZGF0YSkpO1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1TdGF0aWMoZGF0YT86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsQ29uZmlnKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gICAgICAgIGRlZmluZUZvcm1Db250cm9sKHRhcmdldCwgcHJvcGVydHlLZXksIGNyZWF0ZUZvcm1TdGF0aWMocHJvcGVydHlLZXksIGRhdGEpKTtcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtTW9kZWwoZGF0YT86IER5bmFtaWNGb3JtR3JvdXBNb2RlbENvbmZpZyk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICBkZWZpbmVGb3JtQ29udHJvbCh0YXJnZXQsIHByb3BlcnR5S2V5LCBjcmVhdGVGb3JtTW9kZWwocHJvcGVydHlLZXksIGRhdGEpKTtcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtRmlsZShkYXRhPzogRHluYW1pY0ZpbGVVcGxvYWRNb2RlbENvbmZpZyk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICBkZWZpbmVGb3JtQ29udHJvbCh0YXJnZXQsIHByb3BlcnR5S2V5LCBjcmVhdGVGb3JtRmlsZShwcm9wZXJ0eUtleSwgZGF0YSkpO1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUZvcm1Db250cm9sKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBjb250cm9sOiBJRm9ybUNvbnRyb2wpOiB2b2lkIHtcclxuICAgIFJlZmxlY3RVdGlscy5kZWZpbmVNZXRhZGF0YShcImR5bmFtaWNGb3JtQ29udHJvbFwiLCBjb250cm9sLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1Db250cm9sKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogSUZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiBSZWZsZWN0VXRpbHMuZ2V0TWV0YWRhdGEoXCJkeW5hbWljRm9ybUNvbnRyb2xcIiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtU2VyaWFsaXplcih0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IEZvcm1Db250cm9sU2VyaWFsaXplciB8IElSZXNvbHZlRmFjdG9yeSB7XHJcbiAgICByZXR1cm4gUmVmbGVjdFV0aWxzLmdldE1ldGFkYXRhKFwiZHluYW1pY0Zvcm1TZXJpYWxpemVyXCIsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUNvbnRyb2woaWQ6IHN0cmluZywgdHlwZTogc3RyaW5nLCBjb25maWc/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbENvbmZpZyk6IElGb3JtQ29udHJvbCB7XHJcbiAgICBjb25maWcgPSBjb25maWcgfHwge2lkfTtcclxuICAgIGNvbmZpZy5pZCA9IGlkO1xyXG4gICAgY29uZmlnLmxhYmVsID0gT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQoY29uZmlnLmxhYmVsKSA/IGlkIDogY29uZmlnLmxhYmVsO1xyXG4gICAgY29uZmlnLmRpc2FibGVkID0gY29uZmlnLmRpc2FibGVkIHx8IGZhbHNlO1xyXG4gICAgY29uZmlnLmhpZGRlbiA9IGNvbmZpZy5oaWRkZW4gfHwgZmFsc2U7XHJcbiAgICByZXR1cm4ge2lkLCB0eXBlLCBjb25maWd9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUlucHV0KGlkOiBzdHJpbmcsIGNvbmZpZzogRHluYW1pY0lucHV0TW9kZWxDb25maWcsIHR5cGU6IHN0cmluZyA9IFwidGV4dFwiKTogSUZvcm1Db250cm9sIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSBjcmVhdGVGb3JtQ29udHJvbChpZCwgXCJpbnB1dFwiLCBjb25maWcpO1xyXG4gICAgY29uZmlnID0gY29udHJvbC5jb25maWc7XHJcbiAgICBjb25maWcuaW5wdXRUeXBlID0gY29uZmlnLmlucHV0VHlwZSB8fCB0eXBlO1xyXG4gICAgY29uZmlnLnBsYWNlaG9sZGVyID0gY29uZmlnLnBsYWNlaG9sZGVyIHx8IChjb25maWcuaW5wdXRUeXBlID09IFwibWFza1wiID8gXCJfXCIgOiBcIlwiKTtcclxuICAgIGNvbmZpZy5zdGVwID0gY29uZmlnLnN0ZXAgfHwgMTtcclxuICAgIGNvbmZpZy5tYXNrID0gY29uZmlnLm1hc2sgfHwgbnVsbDtcclxuICAgIHJldHVybiBjb250cm9sO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybVNlbGVjdChpZDogc3RyaW5nLCBkYXRhOiBEeW5hbWljU2VsZWN0TW9kZWxDb25maWc8YW55Pik6IElGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gY3JlYXRlRm9ybUNvbnRyb2woaWQsIFwic2VsZWN0XCIsIGRhdGEpO1xyXG4gICAgZGF0YSA9IGNvbnRyb2wuY29uZmlnO1xyXG4gICAgZGF0YS5vcHRpb25zID0gZGF0YS5vcHRpb25zIHx8IFtdO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtU3RhdGljKGlkOiBzdHJpbmcsIGNvbmZpZzogRHluYW1pY0Zvcm1Db250cm9sTW9kZWxDb25maWcpOiBJRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIGNyZWF0ZUZvcm1Db250cm9sKGlkLCBcInN0YXRpY1wiLCBjb25maWcpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybU1vZGVsKGlkOiBzdHJpbmcsIGRhdGE6IER5bmFtaWNGb3JtR3JvdXBNb2RlbENvbmZpZyk6IElGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gY3JlYXRlRm9ybUNvbnRyb2woaWQsIFwiZ3JvdXBcIiwgZGF0YSk7XHJcbiAgICBkYXRhID0gY29udHJvbC5jb25maWc7XHJcbiAgICBkYXRhLm5hbWUgPSBkYXRhLm5hbWUgfHwgXCJcIjtcclxuICAgIHJldHVybiBjb250cm9sO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUZpbGUoaWQ6IHN0cmluZywgZGF0YTogRHluYW1pY0ZpbGVVcGxvYWRNb2RlbENvbmZpZyk6IElGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gY3JlYXRlRm9ybUNvbnRyb2woaWQsIFwiZmlsZVwiLCBkYXRhKTtcclxuICAgIGRhdGEgPSBjb250cm9sLmNvbmZpZztcclxuICAgIGRhdGEuYWNjZXB0ID0gZGF0YS5hY2NlcHQgfHwgW1wianBnXCIsIFwianBlZ1wiLCBcInBuZ1wiXTtcclxuICAgIGRhdGEubXVsdGlwbGUgPSBkYXRhLm11bHRpcGxlIHx8IGZhbHNlO1xyXG4gICAgZGF0YS51cmwgPSBPYmplY3RVdGlscy5pc1N0cmluZyhkYXRhLnVybCkgPyBkYXRhLnVybCA6IFwiYXNzZXRzXCI7XHJcbiAgICByZXR1cm4gY29udHJvbDtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChildren } from "@angular/core";
|
|
2
|
+
import { DynamicFormArrayComponent, DynamicFormControlContainerComponent, DynamicFormGroupModel, DynamicFormValueControlModel } from "@ng-dynamic-forms/core";
|
|
3
|
+
import { DynamicFormArrayModel } from "../../utils/dynamic-form-array.model";
|
|
4
|
+
import { collectPathAble } from "../../utils/misc";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ng-dynamic-forms/core";
|
|
7
|
+
export class DynamicBaseFormArrayComponent extends DynamicFormArrayComponent {
|
|
8
|
+
constructor(layoutService, validationService, injector) {
|
|
9
|
+
super(layoutService, validationService);
|
|
10
|
+
this.layoutService = layoutService;
|
|
11
|
+
this.validationService = validationService;
|
|
12
|
+
this.injector = injector;
|
|
13
|
+
this.blur = new EventEmitter();
|
|
14
|
+
this.change = new EventEmitter();
|
|
15
|
+
this.customEvent = new EventEmitter();
|
|
16
|
+
this.focus = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
get useTabs() {
|
|
19
|
+
return this.model?.useTabs;
|
|
20
|
+
}
|
|
21
|
+
saveTab(index) {
|
|
22
|
+
this.model.saveTab(index, this.model, this.injector);
|
|
23
|
+
}
|
|
24
|
+
restoreTab() {
|
|
25
|
+
return this.model.restoreTab(this.model, this.injector);
|
|
26
|
+
}
|
|
27
|
+
getClass(context, place, model) {
|
|
28
|
+
return [
|
|
29
|
+
context == "element" ? this.getModelClass(model) : null,
|
|
30
|
+
context == "element" ? this.getAdditionalClass(model) : null,
|
|
31
|
+
super.getClass(context, place, model),
|
|
32
|
+
model instanceof DynamicFormValueControlModel ? model.additional?.classes : null
|
|
33
|
+
].filter(cls => !!cls).join(" ");
|
|
34
|
+
}
|
|
35
|
+
getModelClass(model) {
|
|
36
|
+
const parts = collectPathAble(model, p => p.id);
|
|
37
|
+
if (parts.length == 0)
|
|
38
|
+
return "";
|
|
39
|
+
if (model instanceof DynamicFormGroupModel) {
|
|
40
|
+
return `form-group-${parts.join("-")}`;
|
|
41
|
+
}
|
|
42
|
+
return `form-control-${parts.join("-")}`;
|
|
43
|
+
}
|
|
44
|
+
getAdditionalClass(model) {
|
|
45
|
+
if (model instanceof DynamicFormArrayModel) {
|
|
46
|
+
return model.additional?.classes;
|
|
47
|
+
}
|
|
48
|
+
if (model instanceof DynamicFormValueControlModel) {
|
|
49
|
+
return model.additional?.classes;
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
DynamicBaseFormArrayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormArrayComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
+
DynamicBaseFormArrayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DynamicBaseFormArrayComponent, selector: "dynamic-base-form-array", 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 });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormArrayComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{
|
|
59
|
+
selector: "dynamic-base-form-array",
|
|
60
|
+
template: "",
|
|
61
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
62
|
+
}]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }, { type: i0.Injector }]; }, propDecorators: { formLayout: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], group: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], layout: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], model: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], templates: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], blur: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}], change: [{
|
|
76
|
+
type: Output
|
|
77
|
+
}], customEvent: [{
|
|
78
|
+
type: Output
|
|
79
|
+
}], focus: [{
|
|
80
|
+
type: Output
|
|
81
|
+
}], components: [{
|
|
82
|
+
type: ViewChildren,
|
|
83
|
+
args: [forwardRef(() => DynamicFormControlContainerComponent)]
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tYXJyYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWFycmF5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUVWLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsb0NBQW9DLEVBTXBDLHFCQUFxQixFQUlyQiw0QkFBNEIsRUFFL0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7OztBQU9qRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEseUJBQXlCO0lBb0J4RSxZQUFzQixhQUF1QyxFQUN2QyxpQkFBK0MsRUFDL0MsUUFBa0I7UUFFcEMsS0FBSyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBSnRCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQThCO1FBQy9DLGFBQVEsR0FBUixRQUFRLENBQVU7UUFkOUIsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxnQkFBVyxHQUFnRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlFLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWN4RCxDQUFDO0lBVEQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBU0QsT0FBTyxDQUFDLEtBQWE7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXdDLEVBQUUsS0FBb0MsRUFBRSxLQUErQjtRQUNwSCxPQUFPO1lBQ0gsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN2RCxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDNUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUNyQyxLQUFLLFlBQVksNEJBQTRCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ25GLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsYUFBYSxDQUFDLEtBQStCO1FBQ25ELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEtBQUssWUFBWSxxQkFBcUIsRUFBRTtZQUN4QyxPQUFPLGNBQWMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxnQkFBZ0IsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxLQUErQjtRQUN4RCxJQUFJLEtBQUssWUFBWSxxQkFBcUIsRUFBRTtZQUN4QyxPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxLQUFLLFlBQVksNEJBQTRCLEVBQUU7WUFDL0MsT0FBTyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQztTQUNwQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzBIQTdEUSw2QkFBNkI7OEdBQTdCLDZCQUE2QiwwVUFhUCxvQ0FBb0MsMkVBaEJ6RCxFQUFFOzJGQUdILDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7aUxBR1ksVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBR1AsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Zvcm1BcnJheUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUdyb3VwTW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybUFycmF5TW9kZWx9IGZyb20gXCIuLi8uLi91dGlscy9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcclxuaW1wb3J0IHtjb2xsZWN0UGF0aEFibGV9IGZyb20gXCIuLi8uLi91dGlscy9taXNjXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtYmFzZS1mb3JtLWFycmF5XCIsXHJcbiAgICB0ZW1wbGF0ZTogXCJcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQmFzZUZvcm1BcnJheUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQXJyYXlDb21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIGZvcm1MYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbDtcclxuICAgIEBJbnB1dCgpIHRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY3VzdG9tRXZlbnQ6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xDdXN0b21FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQpKVxyXG4gICAgY29tcG9uZW50czogUXVlcnlMaXN0PER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudD47XHJcblxyXG4gICAgZ2V0IHVzZVRhYnMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWw/LnVzZVRhYnM7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxheW91dFNlcnZpY2U6IER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuXHJcbiAgICAgICAgc3VwZXIobGF5b3V0U2VydmljZSwgdmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubW9kZWwuc2F2ZVRhYihpbmRleCwgdGhpcy5tb2RlbCwgdGhpcy5pbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzdG9yZVRhYigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLnJlc3RvcmVUYWIodGhpcy5tb2RlbCwgdGhpcy5pbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2xhc3MoY29udGV4dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCwgcGxhY2U6IER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlLCBtb2RlbD86IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICBjb250ZXh0ID09IFwiZWxlbWVudFwiID8gdGhpcy5nZXRNb2RlbENsYXNzKG1vZGVsKSA6IG51bGwsXHJcbiAgICAgICAgICAgIGNvbnRleHQgPT0gXCJlbGVtZW50XCIgPyB0aGlzLmdldEFkZGl0aW9uYWxDbGFzcyhtb2RlbCkgOiBudWxsLFxyXG4gICAgICAgICAgICBzdXBlci5nZXRDbGFzcyhjb250ZXh0LCBwbGFjZSwgbW9kZWwpLFxyXG4gICAgICAgICAgICBtb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwgPyBtb2RlbC5hZGRpdGlvbmFsPy5jbGFzc2VzIDogbnVsbFxyXG4gICAgICAgIF0uZmlsdGVyKGNscyA9PiAhIWNscykuam9pbihcIiBcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldE1vZGVsQ2xhc3MobW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcGFydHMgPSBjb2xsZWN0UGF0aEFibGUobW9kZWwsIHAgPT4gcC5pZCk7XHJcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAwKSByZXR1cm4gXCJcIjtcclxuICAgICAgICBpZiAobW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBmb3JtLWdyb3VwLSR7cGFydHMuam9pbihcIi1cIil9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGBmb3JtLWNvbnRyb2wtJHtwYXJ0cy5qb2luKFwiLVwiKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBZGRpdGlvbmFsQ2xhc3MobW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKG1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheU1vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2RlbC5hZGRpdGlvbmFsPy5jbGFzc2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2RlbC5hZGRpdGlvbmFsPy5jbGFzc2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.mjs
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, HostBinding, Input, Output, ViewChild, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormControlContainerComponent, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
|
|
3
|
+
import { ObjectUtils } from "@stemy/ngx-utils";
|
|
4
|
+
import { collectPathAble } from "../../utils/misc";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./dynamic-base-form.component";
|
|
7
|
+
import * as i2 from "@ng-dynamic-forms/core";
|
|
8
|
+
export class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent {
|
|
9
|
+
constructor(form, changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService) {
|
|
10
|
+
super(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService);
|
|
11
|
+
this.form = form;
|
|
12
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
13
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
14
|
+
this.layoutService = layoutService;
|
|
15
|
+
this.validationService = validationService;
|
|
16
|
+
this.componentService = componentService;
|
|
17
|
+
this.relationService = relationService;
|
|
18
|
+
this.context = null;
|
|
19
|
+
this.blur = new EventEmitter();
|
|
20
|
+
this.change = new EventEmitter();
|
|
21
|
+
this.focus = new EventEmitter();
|
|
22
|
+
}
|
|
23
|
+
get componentType() {
|
|
24
|
+
return this.componentService.getCustomComponentType(this.model) ?? this.getComponentType(this.model);
|
|
25
|
+
}
|
|
26
|
+
get startTemplate() {
|
|
27
|
+
return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
|
|
28
|
+
? this.layoutService.getAlignedTemplate(this.model, this.templates, "ARRAY_START")
|
|
29
|
+
: this.layoutService.getStartTemplate(this.model, this.templates);
|
|
30
|
+
}
|
|
31
|
+
get endTemplate() {
|
|
32
|
+
return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
|
|
33
|
+
? this.layoutService.getAlignedTemplate(this.model, this.templates, "ARRAY_END")
|
|
34
|
+
: this.layoutService.getEndTemplate(this.model, this.templates);
|
|
35
|
+
}
|
|
36
|
+
get formService() {
|
|
37
|
+
return this.form.formService;
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
this.onDetectChanges = this.formService.onDetectChanges.subscribe(form => {
|
|
41
|
+
if (form !== this.form)
|
|
42
|
+
return;
|
|
43
|
+
this.changeDetectorRef.detectChanges();
|
|
44
|
+
this.formService.updateSelectOptions(this.model, this.control, this.form.model);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
ngOnDestroy() {
|
|
48
|
+
super.ngOnDestroy();
|
|
49
|
+
this.onDetectChanges.unsubscribe();
|
|
50
|
+
}
|
|
51
|
+
getLabel() {
|
|
52
|
+
const label = collectPathAble(this.model, p => p.label);
|
|
53
|
+
if (label.length == 0)
|
|
54
|
+
return "";
|
|
55
|
+
if (this.form?.labelPrefix) {
|
|
56
|
+
label.unshift(this.form.labelPrefix);
|
|
57
|
+
}
|
|
58
|
+
return label.join(".");
|
|
59
|
+
}
|
|
60
|
+
createFormControlComponent() {
|
|
61
|
+
super.createFormControlComponent();
|
|
62
|
+
const component = this.componentRef?.instance;
|
|
63
|
+
if (!component || !ObjectUtils.isFunction(component.onCreated))
|
|
64
|
+
return;
|
|
65
|
+
component.onCreated();
|
|
66
|
+
}
|
|
67
|
+
getComponentType(model) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
DynamicBaseFormControlContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormControlContainerComponent, deps: [{ token: i1.DynamicBaseFormComponent }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i2.DynamicFormLayoutService }, { token: i2.DynamicFormValidationService }, { token: i2.DynamicFormComponentService }, { token: i2.DynamicFormRelationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
+
DynamicBaseFormControlContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DynamicBaseFormControlContainerComponent, selector: "dynamic-base-form-control", inputs: { context: "context", group: "group", hostClass: "hostClass", inputTemplateList: ["templates", "inputTemplateList"], layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, host: { properties: { "class": "this.klass" } }, queries: [{ propertyName: "contentTemplateList", predicate: DynamicTemplateDirective }], viewQueries: [{ propertyName: "componentViewContainerRef", first: true, predicate: ["componentViewContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormControlContainerComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{
|
|
76
|
+
selector: "dynamic-base-form-control",
|
|
77
|
+
template: "",
|
|
78
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
79
|
+
}]
|
|
80
|
+
}], ctorParameters: function () { return [{ type: i1.DynamicBaseFormComponent }, { type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i2.DynamicFormLayoutService }, { type: i2.DynamicFormValidationService }, { type: i2.DynamicFormComponentService }, { type: i2.DynamicFormRelationService }]; }, propDecorators: { contentTemplateList: [{
|
|
81
|
+
type: ContentChildren,
|
|
82
|
+
args: [DynamicTemplateDirective]
|
|
83
|
+
}], klass: [{
|
|
84
|
+
type: HostBinding,
|
|
85
|
+
args: ["class"]
|
|
86
|
+
}], context: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], group: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], hostClass: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], inputTemplateList: [{
|
|
93
|
+
type: Input,
|
|
94
|
+
args: ["templates"]
|
|
95
|
+
}], layout: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], model: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], blur: [{
|
|
100
|
+
type: Output
|
|
101
|
+
}], change: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}], focus: [{
|
|
104
|
+
type: Output
|
|
105
|
+
}], componentViewContainerRef: [{
|
|
106
|
+
type: ViewChild,
|
|
107
|
+
args: ["componentViewContainer", { read: ViewContainerRef, static: true }]
|
|
108
|
+
}] } });
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNILCtCQUErQixFQUkvQixvQ0FBb0MsRUFPcEMsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQVNqRCxNQUFNLE9BQU8sd0NBQXlDLFNBQVEsb0NBQW9DO0lBeUM5RixZQUFxQixJQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsd0JBQWtELEVBQ2xELGFBQXVDLEVBQ3ZDLGlCQUErQyxFQUMvQyxnQkFBNkMsRUFDN0MsZUFBMkM7UUFDNUQsS0FBSyxDQUFDLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQVB2RyxTQUFJLEdBQUosSUFBSSxDQUEwQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFDL0MscUJBQWdCLEdBQWhC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SSxDQUFDLFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUFFLE9BQU87UUFDdkUsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxLQUE4QjtRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztxSUFsRlEsd0NBQXdDO3lIQUF4Qyx3Q0FBd0Msb1hBRWhDLHdCQUF3Qiw2SUFlRyxnQkFBZ0Isa0VBcEJsRCxFQUFFOzJGQUdILHdDQUF3QztrQkFMcEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7MlZBRzhDLG1CQUFtQjtzQkFBN0QsZUFBZTt1QkFBQyx3QkFBd0I7Z0JBRW5CLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTztnQkFFWCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ2MsaUJBQWlCO3NCQUFwQyxLQUFLO3VCQUFDLFdBQVc7Z0JBQ1QsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFFc0UseUJBQXlCO3NCQUFyRyxTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBUeXBlLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7XHJcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZLFxyXG4gICAgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2wsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1MYXlvdXQsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVcclxufSBmcm9tIFwiQG5nLWR5bmFtaWMtZm9ybXMvY29yZVwiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtPbkNyZWF0ZWRGb3JtQ29udHJvbH0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge2NvbGxlY3RQYXRoQWJsZX0gZnJvbSBcIi4uLy4uL3V0aWxzL21pc2NcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Db21wb25lbnR9IGZyb20gXCIuL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2xcIixcclxuICAgIHRlbXBsYXRlOiBcIlwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNCYXNlRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlKSBjb250ZW50VGVtcGxhdGVMaXN0OiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPjtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBrbGFzcztcclxuXHJcbiAgICBASW5wdXQoKSBjb250ZXh0OiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCB8IG51bGwgPSBudWxsO1xyXG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGhvc3RDbGFzczogc3RyaW5nW107XHJcbiAgICBASW5wdXQoXCJ0ZW1wbGF0ZXNcIikgaW5wdXRUZW1wbGF0ZUxpc3Q6IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+O1xyXG4gICAgQElucHV0KCkgbGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcclxuICAgIEBJbnB1dCgpIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbDtcclxuXHJcbiAgICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZChcImNvbXBvbmVudFZpZXdDb250YWluZXJcIiwge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pIGNvbXBvbmVudFZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRGV0ZWN0Q2hhbmdlczogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGdldCBjb21wb25lbnRUeXBlKCk6IFR5cGU8RHluYW1pY0Zvcm1Db250cm9sPiB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2V0Q3VzdG9tQ29tcG9uZW50VHlwZSh0aGlzLm1vZGVsKSA/PyB0aGlzLmdldENvbXBvbmVudFR5cGUodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN0YXJ0VGVtcGxhdGUoKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwudHlwZSA9PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZKVxyXG4gICAgICAgICAgICA/IHRoaXMubGF5b3V0U2VydmljZS5nZXRBbGlnbmVkVGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMsIFwiQVJSQVlfU1RBUlRcIiBhcyBhbnkpXHJcbiAgICAgICAgICAgIDogdGhpcy5sYXlvdXRTZXJ2aWNlLmdldFN0YXJ0VGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBlbmRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5tb2RlbC50eXBlID09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVkpXHJcbiAgICAgICAgICAgID8gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEFsaWduZWRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcywgXCJBUlJBWV9FTkRcIiBhcyBhbnkpXHJcbiAgICAgICAgICAgIDogdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEVuZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZm9ybVNlcnZpY2UoKTogRHluYW1pY0Zvcm1TZXJ2aWNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmZvcm1TZXJ2aWNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZvcm06IER5bmFtaWNCYXNlRm9ybUNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgdmFsaWRhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBjb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSByZWxhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoY2hhbmdlRGV0ZWN0b3JSZWYsIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgbGF5b3V0U2VydmljZSwgdmFsaWRhdGlvblNlcnZpY2UsIGNvbXBvbmVudFNlcnZpY2UsIHJlbGF0aW9uU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkRldGVjdENoYW5nZXMgPSB0aGlzLmZvcm1TZXJ2aWNlLm9uRGV0ZWN0Q2hhbmdlcy5zdWJzY3JpYmUoZm9ybSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChmb3JtICE9PSB0aGlzLmZvcm0pIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudXBkYXRlU2VsZWN0T3B0aW9ucyh0aGlzLm1vZGVsLCB0aGlzLmNvbnRyb2wsIHRoaXMuZm9ybS5tb2RlbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLm9uRGV0ZWN0Q2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExhYmVsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgbGFiZWwgPSBjb2xsZWN0UGF0aEFibGUodGhpcy5tb2RlbCwgcCA9PiBwLmxhYmVsKTtcclxuICAgICAgICBpZiAobGFiZWwubGVuZ3RoID09IDApIHJldHVybiBcIlwiO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0/LmxhYmVsUHJlZml4KSB7XHJcbiAgICAgICAgICAgIGxhYmVsLnVuc2hpZnQodGhpcy5mb3JtLmxhYmVsUHJlZml4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxhYmVsLmpvaW4oXCIuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpIHtcclxuICAgICAgICBzdXBlci5jcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpO1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhcyBPbkNyZWF0ZWRGb3JtQ29udHJvbDtcclxuICAgICAgICBpZiAoIWNvbXBvbmVudCB8fCAhT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihjb21wb25lbnQub25DcmVhdGVkKSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbXBvbmVudC5vbkNyZWF0ZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50VHlwZShtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiBUeXBlPER5bmFtaWNGb3JtQ29udHJvbD4gfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChildren } from "@angular/core";
|
|
2
|
+
import { DynamicFormControlContainerComponent, DynamicFormGroupComponent, DynamicFormGroupModel, DynamicFormValueControlModel } from "@ng-dynamic-forms/core";
|
|
3
|
+
import { DynamicFormArrayModel } from "../../utils/dynamic-form-array.model";
|
|
4
|
+
import { collectPathAble } from "../../utils/misc";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ng-dynamic-forms/core";
|
|
7
|
+
export class DynamicBaseFormGroupComponent extends DynamicFormGroupComponent {
|
|
8
|
+
constructor(layoutService, validationService) {
|
|
9
|
+
super(layoutService, validationService);
|
|
10
|
+
this.layoutService = layoutService;
|
|
11
|
+
this.validationService = validationService;
|
|
12
|
+
this.blur = new EventEmitter();
|
|
13
|
+
this.change = new EventEmitter();
|
|
14
|
+
this.customEvent = new EventEmitter();
|
|
15
|
+
this.focus = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
getClass(context, place, model) {
|
|
18
|
+
return [
|
|
19
|
+
context == "element" ? this.getModelClass(model) : null,
|
|
20
|
+
context == "element" ? this.getAdditionalClass(model) : null,
|
|
21
|
+
super.getClass(context, place, model)
|
|
22
|
+
].filter(cls => !!cls).join(" ");
|
|
23
|
+
}
|
|
24
|
+
getModelClass(model) {
|
|
25
|
+
const parts = collectPathAble(model, p => p.id);
|
|
26
|
+
if (parts.length == 0)
|
|
27
|
+
return "";
|
|
28
|
+
if (model instanceof DynamicFormGroupModel) {
|
|
29
|
+
return `form-group-${parts.join("-")}`;
|
|
30
|
+
}
|
|
31
|
+
return `form-control-${parts.join("-")}`;
|
|
32
|
+
}
|
|
33
|
+
getAdditionalClass(model) {
|
|
34
|
+
if (model instanceof DynamicFormArrayModel) {
|
|
35
|
+
return model.additional?.classes;
|
|
36
|
+
}
|
|
37
|
+
if (model instanceof DynamicFormValueControlModel) {
|
|
38
|
+
return model.additional?.classes;
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
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 });
|
|
44
|
+
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 });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormGroupComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{
|
|
48
|
+
selector: "dynamic-base-form-group",
|
|
49
|
+
template: "",
|
|
50
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
51
|
+
}]
|
|
52
|
+
}], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], group: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], layout: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], model: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], templates: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], blur: [{
|
|
63
|
+
type: Output
|
|
64
|
+
}], change: [{
|
|
65
|
+
type: Output
|
|
66
|
+
}], customEvent: [{
|
|
67
|
+
type: Output
|
|
68
|
+
}], focus: [{
|
|
69
|
+
type: Output
|
|
70
|
+
}], components: [{
|
|
71
|
+
type: ViewChildren,
|
|
72
|
+
args: [forwardRef(() => DynamicFormControlContainerComponent)]
|
|
73
|
+
}] } });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxvQ0FBb0MsRUFNcEMseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUlyQiw0QkFBNEIsRUFFL0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7OztBQU9qRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEseUJBQXlCO0lBZ0J4RSxZQUFzQixhQUF1QyxFQUN2QyxpQkFBK0M7UUFDakUsS0FBSyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRnRCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQThCO1FBVDNELFNBQUksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QyxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0MsZ0JBQVcsR0FBZ0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5RSxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFReEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUF3QyxFQUFFLEtBQW9DLEVBQUUsS0FBK0I7UUFDcEgsT0FBTztZQUNILE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDdkQsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzVELEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7U0FDeEMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxhQUFhLENBQUMsS0FBK0I7UUFDbkQsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksS0FBSyxZQUFZLHFCQUFxQixFQUFFO1lBQ3hDLE9BQU8sY0FBYyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDMUM7UUFDRCxPQUFPLGdCQUFnQixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVTLGtCQUFrQixDQUFDLEtBQStCO1FBQ3hELElBQUksS0FBSyxZQUFZLHFCQUFxQixFQUFFO1lBQ3hDLE9BQU8sS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUM7U0FDcEM7UUFDRCxJQUFJLEtBQUssWUFBWSw0QkFBNEIsRUFBRTtZQUMvQyxPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7MEhBOUNRLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLDBVQWFQLG9DQUFvQywyRUFoQnpELEVBQUU7MkZBR0gsNkJBQTZCO2tCQUx6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDswSkFHWSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFHUCxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2UsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtR3JvdXBDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUdyb3VwTW9kZWwsXHJcbiAgICBEeW5hbWljRm9ybUxheW91dCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcclxuICAgIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsLFxyXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtEeW5hbWljRm9ybUFycmF5TW9kZWx9IGZyb20gXCIuLi8uLi91dGlscy9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcclxuaW1wb3J0IHtjb2xsZWN0UGF0aEFibGV9IGZyb20gXCIuLi8uLi91dGlscy9taXNjXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtYmFzZS1mb3JtLWdyb3VwXCIsXHJcbiAgICB0ZW1wbGF0ZTogXCJcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQmFzZUZvcm1Hcm91cENvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtR3JvdXBDb21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIGZvcm1MYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtR3JvdXBNb2RlbDtcclxuICAgIEBJbnB1dCgpIHRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjdXN0b21FdmVudDogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCkpXHJcbiAgICBjb21wb25lbnRzOiBRdWVyeUxpc3Q8RHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50PjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHZhbGlkYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIobGF5b3V0U2VydmljZSwgdmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENsYXNzKGNvbnRleHQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsIHBsYWNlOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSwgbW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgY29udGV4dCA9PSBcImVsZW1lbnRcIiA/IHRoaXMuZ2V0TW9kZWxDbGFzcyhtb2RlbCkgOiBudWxsLFxyXG4gICAgICAgICAgICBjb250ZXh0ID09IFwiZWxlbWVudFwiID8gdGhpcy5nZXRBZGRpdGlvbmFsQ2xhc3MobW9kZWwpIDogbnVsbCxcclxuICAgICAgICAgICAgc3VwZXIuZ2V0Q2xhc3MoY29udGV4dCwgcGxhY2UsIG1vZGVsKVxyXG4gICAgICAgIF0uZmlsdGVyKGNscyA9PiAhIWNscykuam9pbihcIiBcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldE1vZGVsQ2xhc3MobW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcGFydHMgPSBjb2xsZWN0UGF0aEFibGUobW9kZWwsIHAgPT4gcC5pZCk7XHJcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAwKSByZXR1cm4gXCJcIjtcclxuICAgICAgICBpZiAobW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBmb3JtLWdyb3VwLSR7cGFydHMuam9pbihcIi1cIil9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGBmb3JtLWNvbnRyb2wtJHtwYXJ0cy5qb2luKFwiLVwiKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBZGRpdGlvbmFsQ2xhc3MobW9kZWw/OiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKG1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheU1vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2RlbC5hZGRpdGlvbmFsPy5jbGFzc2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2RlbC5hZGRpdGlvbmFsPy5jbGFzc2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
|