@stemy/ngx-dynamic-form 10.2.18 → 10.2.22
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/README.md +27 -27
- package/bundles/stemy-ngx-dynamic-form.umd.js +1400 -1390
- package/bundles/stemy-ngx-dynamic-form.umd.js.map +1 -1
- package/bundles/stemy-ngx-dynamic-form.umd.min.js +1 -1
- package/bundles/stemy-ngx-dynamic-form.umd.min.js.map +1 -1
- package/esm2015/ngx-dynamic-form/common-types.js +134 -134
- package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.js +91 -91
- package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form.component.js +129 -129
- package/esm2015/ngx-dynamic-form/directives/async-submit.directive.js +100 -100
- package/esm2015/ngx-dynamic-form/ngx-dynamic-form.module.js +82 -82
- package/esm2015/ngx-dynamic-form/services/dynamic-form-validation.service.js +11 -11
- package/esm2015/ngx-dynamic-form/services/dynamic-form.service.js +393 -383
- package/esm2015/ngx-dynamic-form/utils/dynamic-form-array.model.js +8 -8
- package/esm2015/ngx-dynamic-form/utils/form-subject.js +18 -18
- package/esm2015/ngx-dynamic-form/utils/validators.js +28 -28
- package/esm2015/public_api.js +9 -9
- package/esm2015/stemy-ngx-dynamic-form.js +6 -6
- package/fesm2015/stemy-ngx-dynamic-form.js +936 -926
- package/fesm2015/stemy-ngx-dynamic-form.js.map +1 -1
- package/ngx-dynamic-form/common-types.d.ts +148 -148
- package/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.d.ts +37 -37
- package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +37 -37
- package/ngx-dynamic-form/directives/async-submit.directive.d.ts +27 -27
- package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +10 -10
- package/ngx-dynamic-form/services/dynamic-form-validation.service.d.ts +5 -5
- package/ngx-dynamic-form/services/dynamic-form.service.d.ts +40 -40
- package/ngx-dynamic-form/utils/dynamic-form-array.model.d.ts +12 -12
- package/ngx-dynamic-form/utils/form-subject.d.ts +8 -8
- package/ngx-dynamic-form/utils/validators.d.ts +4 -4
- package/package.json +12 -12
- package/public_api.d.ts +8 -8
- package/stemy-ngx-dynamic-form.d.ts +6 -6
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
import { ObjectUtils, ReflectUtils, UniqueUtils } from "@stemy/ngx-utils";
|
|
2
|
-
// --- Decorator functions ---
|
|
3
|
-
const emptyArray = [];
|
|
4
|
-
const emptyTester = () => {
|
|
5
|
-
return Promise.resolve(false);
|
|
6
|
-
};
|
|
7
|
-
const ɵ0 = emptyTester;
|
|
8
|
-
export function defaultSerializer(id, parent) {
|
|
9
|
-
const control = parent.get(id);
|
|
10
|
-
return !control ? null : control.value;
|
|
11
|
-
}
|
|
12
|
-
export function FormSerializable(serializer) {
|
|
13
|
-
return (target, propertyKey) => {
|
|
14
|
-
ReflectUtils.defineMetadata("dynamicFormSerializer", serializer || defaultSerializer, target, propertyKey);
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
export function FormInput(data) {
|
|
18
|
-
return (target, propertyKey) => {
|
|
19
|
-
const meta = ReflectUtils.getOwnMetadata("design:type", target, propertyKey);
|
|
20
|
-
const type = meta ? meta.name : "";
|
|
21
|
-
let inputType = propertyKey.indexOf("password") < 0 ? "text" : "password";
|
|
22
|
-
switch (type) {
|
|
23
|
-
case "Number":
|
|
24
|
-
inputType = "number";
|
|
25
|
-
break;
|
|
26
|
-
case "Boolean":
|
|
27
|
-
inputType = "checkbox";
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
defineFormControl(target, propertyKey, createFormInput(propertyKey, data, inputType));
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export function FormSelect(data) {
|
|
34
|
-
return (target, propertyKey) => {
|
|
35
|
-
defineFormControl(target, propertyKey, createFormSelect(propertyKey, data));
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
export function FormStatic(data) {
|
|
39
|
-
return (target, propertyKey) => {
|
|
40
|
-
defineFormControl(target, propertyKey, createFormStatic(propertyKey, data));
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export function FormModel(data) {
|
|
44
|
-
return (target, propertyKey) => {
|
|
45
|
-
defineFormControl(target, propertyKey, createFormModel(propertyKey, data));
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
export function FormFile(data) {
|
|
49
|
-
return (target, propertyKey) => {
|
|
50
|
-
defineFormControl(target, propertyKey, createFormFile(propertyKey, data));
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
export function FormFieldSet(data) {
|
|
54
|
-
return (target) => {
|
|
55
|
-
const sets = getFormFieldSets(target);
|
|
56
|
-
data.classes = data.classes || "";
|
|
57
|
-
sets[data.id] = data;
|
|
58
|
-
ReflectUtils.defineMetadata("dynamicFormFieldSets", sets, target);
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
export function defineFormControl(target, propertyKey, control) {
|
|
62
|
-
ReflectUtils.defineMetadata("dynamicFormControl", control, target, propertyKey);
|
|
63
|
-
}
|
|
64
|
-
export function getFormFieldSets(target) {
|
|
65
|
-
return ReflectUtils.getMetadata("dynamicFormFieldSets", target) || {};
|
|
66
|
-
}
|
|
67
|
-
export function getFormControl(target, propertyKey) {
|
|
68
|
-
return ReflectUtils.getMetadata("dynamicFormControl", target, propertyKey);
|
|
69
|
-
}
|
|
70
|
-
export function getFormSerializer(target, propertyKey) {
|
|
71
|
-
return ReflectUtils.getMetadata("dynamicFormSerializer", target, propertyKey);
|
|
72
|
-
}
|
|
73
|
-
export function createFormControl(id, type, data) {
|
|
74
|
-
data = data || {};
|
|
75
|
-
data.label = ObjectUtils.isNullOrUndefined(data.label) ? id : data.label;
|
|
76
|
-
data.labelAlign = data.labelAlign || "left";
|
|
77
|
-
data.fieldSet = data.fieldSet || UniqueUtils.uuid();
|
|
78
|
-
data.classes = data.classes || "";
|
|
79
|
-
data.readonly = data.readonly || emptyTester;
|
|
80
|
-
data.hidden = data.hidden || emptyTester;
|
|
81
|
-
data.validators = data.validators || emptyArray;
|
|
82
|
-
return {
|
|
83
|
-
id: id,
|
|
84
|
-
type: type,
|
|
85
|
-
data: data
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
export function createFormInput(id, data, type = "text") {
|
|
89
|
-
const control = createFormControl(id, "input", data);
|
|
90
|
-
data = control.data;
|
|
91
|
-
data.type = data.type || type;
|
|
92
|
-
data.classes = !data.classes ? `form-group-${data.type}` : `${data.classes} form-group-${data.type}`;
|
|
93
|
-
data.placeholder = data.placeholder || (data.type == "mask" ? "_" : "");
|
|
94
|
-
data.step = data.step || 1;
|
|
95
|
-
data.mask = data.mask || [/\w*/gi];
|
|
96
|
-
return control;
|
|
97
|
-
}
|
|
98
|
-
export function createFormSelect(id, data) {
|
|
99
|
-
const control = createFormControl(id, "select", data);
|
|
100
|
-
data = control.data;
|
|
101
|
-
data.options = data.options || [];
|
|
102
|
-
data.type = data.type || "select";
|
|
103
|
-
const classType = data.type == "select" ? "select" : `select-${data.type}`;
|
|
104
|
-
data.classes = !data.classes ? `form-group-${classType}` : `${data.classes} form-group-${classType}`;
|
|
105
|
-
return control;
|
|
106
|
-
}
|
|
107
|
-
export function createFormStatic(id, data) {
|
|
108
|
-
const control = createFormControl(id, "static", data);
|
|
109
|
-
data = control.data;
|
|
110
|
-
data.style = data.style || "table";
|
|
111
|
-
return control;
|
|
112
|
-
}
|
|
113
|
-
export function createFormModel(id, data) {
|
|
114
|
-
const control = createFormControl(id, "model", data);
|
|
115
|
-
data = control.data;
|
|
116
|
-
data.name = data.name || "";
|
|
117
|
-
return control;
|
|
118
|
-
}
|
|
119
|
-
export function createFormFile(id, data) {
|
|
120
|
-
const control = createFormControl(id, "file", data);
|
|
121
|
-
data = control.data;
|
|
122
|
-
data.accept = data.accept || ".jpg,.jpeg,.png";
|
|
123
|
-
data.multi = data.multi || false;
|
|
124
|
-
data.baseUrl = ObjectUtils.isString(data.baseUrl) ? data.baseUrl : "assets/";
|
|
125
|
-
data.uploadUrl = ObjectUtils.isString(data.uploadUrl) ? data.uploadUrl : "assets";
|
|
126
|
-
data.createUploadData = data.createUploadData || ((file) => {
|
|
127
|
-
const form = new FormData();
|
|
128
|
-
form.append("file", file);
|
|
129
|
-
return form;
|
|
130
|
-
});
|
|
131
|
-
return control;
|
|
132
|
-
}
|
|
133
|
-
export { ɵ0 };
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tbW9uLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFJSCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFdBQVcsRUFDZCxNQUFNLGtCQUFrQixDQUFDO0FBa0sxQiw4QkFBOEI7QUFDOUIsTUFBTSxVQUFVLEdBQVEsRUFBRSxDQUFDO0FBQzNCLE1BQU0sV0FBVyxHQUFzQixHQUFHLEVBQUU7SUFDeEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQzs7QUFFRixNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBVSxFQUFFLE1BQWlCO0lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBcUQ7SUFDbEYsT0FBTyxDQUFDLE1BQVcsRUFBRSxXQUFtQixFQUFRLEVBQUU7UUFDOUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLElBQUksaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9HLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQXFCO0lBQzNDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBUSxFQUFFO1FBQzlDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFD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QVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM3RSxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7UUFDN0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5fSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sLFxuICAgIER5bmFtaWNGb3JtT3B0aW9uQ29uZmlnLFxuICAgIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwsXG4gICAgRHluYW1pY1ZhbGlkYXRvckRlc2NyaXB0b3IsXG4gICAgRHluYW1pY1ZhbGlkYXRvcnNDb25maWdcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcbmltcG9ydCB7XG4gICAgSUFzeW5jTWVzc2FnZSxcbiAgICBJUmVxdWVzdE9wdGlvbnMsXG4gICAgSVJlc29sdmVGYWN0b3J5LFxuICAgIE9iamVjdFV0aWxzLFxuICAgIFJlZmxlY3RVdGlscyxcbiAgICBVbmlxdWVVdGlsc1xufSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xuXG4vLyAtLS0gQmFzaWMgZm9ybSBjb250cm9sIGludGVyZmFjZXMgLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtQmFzZSB7XG5cbiAgICBzdGF0dXM6IER5bmFtaWNGb3JtU3RhdGU7XG5cbiAgICBvblN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUJhc2U+O1xuICAgIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRHluYW1pY0Zvcm1CYXNlPjtcbiAgICBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUJhc2U+O1xuXG4gICAgdmFsaWRhdGUoKTogUHJvbWlzZTxhbnk+O1xuICAgIHNlcmlhbGl6ZSh2YWxpZGF0ZT86IGJvb2xlYW4pOiBQcm9taXNlPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtIGV4dGVuZHMgSUR5bmFtaWNGb3JtQmFzZXtcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uQ3JlYXRlZEZvcm1Db250cm9sIGV4dGVuZHMgRHluYW1pY0Zvcm1Db250cm9sIHtcbiAgICBvbkNyZWF0ZWQoKTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBJRm9ybUNvbnRyb2xTZXJpYWxpemVyID0gKG1vZGVsOiBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsPGFueT4sIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gUHJvbWlzZTxhbnk+O1xuZXhwb3J0IHR5cGUgSUZvcm1JbnB1dE1hc2sgPSBzdHJpbmcgfCBSZWdFeHA7XG5leHBvcnQgdHlwZSBJRm9ybUlucHV0TWFza0Z1bmN0aW9uID0gKHJhdzogc3RyaW5nKSA9PiBJRm9ybUlucHV0TWFza1tdO1xuZXhwb3J0IHR5cGUgSUZvcm1JbnB1dFVuTWFza0Z1bmN0aW9uID0gKHZhbHVlOiBzdHJpbmcpID0+IGFueTtcblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNlcmlhbGl6ZXIge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZnVuYzogSUZvcm1Db250cm9sU2VyaWFsaXplcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNlcmlhbGl6ZXJzIHtcbiAgICBbaWQ6IHN0cmluZ106IElGb3JtQ29udHJvbFNlcmlhbGl6ZXIgfCBJUmVzb2x2ZUZhY3RvcnkgfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtU3RhdGUgPSBcIlZBTElEXCIgfCBcIklOVkFMSURcIiB8IFwiUEVORElOR1wiIHwgXCJESVNBQkxFRFwiIHwgXCJMT0FESU5HXCI7XG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybVVwZGF0ZU9uID0gXCJjaGFuZ2VcIiB8IFwiYmx1clwiIHwgXCJzdWJtaXRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUNvbnRyb2wge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIHZpc2libGU/OiBib29sZWFuO1xuICAgIGRhdGE/OiBJRm9ybUNvbnRyb2xEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtQ29udHJvbERhdGEge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGxhYmVsQWxpZ24/OiBzdHJpbmc7XG4gICAgZmllbGRTZXQ/OiBzdHJpbmc7XG4gICAgY2xhc3Nlcz86IHN0cmluZztcbiAgICByZWFkb25seT86IEZvcm1Db250cm9sVGVzdGVyRmFjdG9yeTtcbiAgICBoaWRkZW4/OiBGb3JtQ29udHJvbFRlc3RlckZhY3Rvcnk7XG4gICAgc2hvdWxkU2VyaWFsaXplPzogRm9ybUNvbnRyb2xUZXN0ZXJGYWN0b3J5O1xuICAgIHNob3VsZFZhbGlkYXRlPzogRm9ybUNvbnRyb2xUZXN0ZXJGYWN0b3J5O1xuICAgIHZhbGlkYXRvcj86IER5bmFtaWNWYWxpZGF0b3JEZXNjcmlwdG9yO1xuICAgIHZhbGlkYXRvcnM/OiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZztcbiAgICB1cGRhdGVPbj86IER5bmFtaWNGb3JtVXBkYXRlT247XG4gICAgcmVsb2FkPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1JbnB1dERhdGEgZXh0ZW5kcyBJRm9ybUNvbnRyb2xEYXRhIHtcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIGF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICB1c2VMYW5ndWFnZT86IGJvb2xlYW47XG4gICAgbWFzaz86IElGb3JtSW5wdXRNYXNrRnVuY3Rpb24gfCBJRm9ybUlucHV0TWFza1tdO1xuICAgIHVubWFzaz86IElGb3JtSW5wdXRVbk1hc2tGdW5jdGlvbjtcbiAgICBzdGVwPzogbnVtYmVyO1xuICAgIG1pbj86IG51bWJlcjtcbiAgICBtYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TZWxlY3REYXRhIGV4dGVuZHMgSUZvcm1Db250cm9sRGF0YSB7XG4gICAgb3B0aW9ucz86IER5bmFtaWNGb3JtT3B0aW9uQ29uZmlnPGFueT5bXSB8IE9ic2VydmFibGU8RHluYW1pY0Zvcm1PcHRpb25Db25maWc8YW55PltdPjtcbiAgICBlbXB0eU9wdGlvbj86IGJvb2xlYW47XG4gICAgdHlwZT86IHN0cmluZztcbiAgICBtdWx0aT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TdGF0aWNEYXRhIGV4dGVuZHMgSUZvcm1Db250cm9sRGF0YSB7XG4gICAgcHJvcGVydGllcz86IHN0cmluZ1tdO1xuICAgIHN0eWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtRmlsZURhdGEgZXh0ZW5kcyBJRm9ybUNvbnRyb2xEYXRhIHtcbiAgICBhY2NlcHQ/OiBzdHJpbmc7XG4gICAgbXVsdGk/OiBib29sZWFuO1xuICAgIGJhc2VVcmw/OiBzdHJpbmc7XG4gICAgYXNGaWxlPzogYm9vbGVhbjtcbiAgICBhc0RhdGFVcmw/OiBib29sZWFuO1xuICAgIHVwbG9hZFVybD86IHN0cmluZztcbiAgICB1cGxvYWRPcHRpb25zPzogSVJlcXVlc3RPcHRpb25zO1xuICAgIGNyZWF0ZVVwbG9hZERhdGE/OiAoZmlsZTogRmlsZSkgPT4gYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtTW9kZWxEYXRhIGV4dGVuZHMgSUZvcm1Db250cm9sRGF0YSwgSUR5bmFtaWNGb3JtSW5mbyB7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUZpZWxkU2V0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNsYXNzZXM/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgdGl0bGVDbGFzc2VzPzogc3RyaW5nO1xuICAgIHNldENsYXNzZXM/OiBzdHJpbmc7XG4gICAgY29udHJvbENsYXNzZXM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1Db250cm9sT3B0aW9uIHtcbiAgICBpZDogYW55O1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgc2VsZWN0YWJsZT86IGJvb2xlYW47XG59XG5cbi8vIC0tLSBCYXNpYyBmb3JtIGludGVyZmFjZXMgLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtVGVtcGxhdGVzIHtcbiAgICBbaWQ6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtQ29uZmlnIHtcbiAgICBwYXRoPzogc3RyaW5nIHwgbnVtYmVyIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGNsYXNzZXM/OiBzdHJpbmc7XG4gICAgZm9ybUNsYXNzZXM/OiBzdHJpbmc7XG4gICAgaW5uZXJGb3JtQ2xhc3Nlcz86IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljU2luZ2xlRm9ybUNvbmZpZyBleHRlbmRzIElEeW5hbWljRm9ybUNvbmZpZywgSUR5bmFtaWNGb3JtSW5mbyB7XG4gICAgZGF0YTogYW55O1xuICAgIGNvbnRyb2xEYXRhPzogSUZvcm1Db250cm9sRGF0YTtcbiAgICBtdWx0aT86IGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljTXVsdGlGb3JtQ29uZmlnIGV4dGVuZHMgSUR5bmFtaWNGb3JtQ29uZmlnIHtcbiAgICBkYXRhOiBJRHluYW1pY0Zvcm1zQ29uZmlncztcbiAgICBtdWx0aTogdHJ1ZTtcbn1cblxuZXhwb3J0IHR5cGUgSUR5bmFtaWNGb3Jtc0NvbmZpZ3MgPSBBcnJheTxJRHluYW1pY1NpbmdsZUZvcm1Db25maWcgfCBJRHluYW1pY011bHRpRm9ybUNvbmZpZz47XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXN5bmNTdWJtaXRNZXRob2QgPSAoZm9ybTogSUR5bmFtaWNGb3JtQmFzZSwgY29udGV4dD86IGFueSkgPT4gUHJvbWlzZTxJQXN5bmNNZXNzYWdlPjtcblxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY0Zvcm1JbmZvIHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGNvbnRyb2xzPzogSUZvcm1Db250cm9sW107XG4gICAgc2VyaWFsaXplcnM/OiBJRm9ybVNlcmlhbGl6ZXJzO1xuICAgIGZpZWxkU2V0cz86IElGb3JtRmllbGRTZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY0Zvcm1GaWVsZFNldHMge1xuICAgIFtpZDogc3RyaW5nXTogSUZvcm1GaWVsZFNldFxufVxuXG4vLyAtLS0gQmFzaWMgZm9ybSB0eXBlcyAtLS1cbmV4cG9ydCB0eXBlIEZvcm1Db250cm9sVGVzdGVyID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbmV4cG9ydCB0eXBlIEZvcm1Db250cm9sVGVzdGVyRmFjdG9yeSA9IEZvcm1Db250cm9sVGVzdGVyIHwgSVJlc29sdmVGYWN0b3J5O1xuXG4vLyAtLS0gRGVjb3JhdG9yIGZ1bmN0aW9ucyAtLS1cbmNvbnN0IGVtcHR5QXJyYXk6IGFueSA9IFtdO1xuY29uc3QgZW1wdHlUZXN0ZXI6IEZvcm1Db250cm9sVGVzdGVyID0gKCkgPT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRTZXJpYWxpemVyKGlkOiBzdHJpbmcsIHBhcmVudDogRm9ybUFycmF5KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBjb250cm9sID0gcGFyZW50LmdldChpZCk7XG4gICAgcmV0dXJuICFjb250cm9sID8gbnVsbDogY29udHJvbC52YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1TZXJpYWxpemFibGUoc2VyaWFsaXplcj86IElGb3JtQ29udHJvbFNlcmlhbGl6ZXIgfCBJUmVzb2x2ZUZhY3RvcnkpOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICBSZWZsZWN0VXRpbHMuZGVmaW5lTWV0YWRhdGEoXCJkeW5hbWljRm9ybVNlcmlhbGl6ZXJcIiwgc2VyaWFsaXplciB8fCBkZWZhdWx0U2VyaWFsaXplciwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1JbnB1dChkYXRhPzogSUZvcm1JbnB1dERhdGEpOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBtZXRhID0gUmVmbGVjdFV0aWxzLmdldE93bk1ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBtZXRhID8gbWV0YS5uYW1lIDogXCJcIjtcbiAgICAgICAgbGV0IGlucHV0VHlwZSA9IHByb3BlcnR5S2V5LmluZGV4T2YoXCJwYXNzd29yZFwiKSA8IDAgPyBcInRleHRcIiA6IFwicGFzc3dvcmRcIjtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiTnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgaW5wdXRUeXBlID0gXCJudW1iZXJcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJCb29sZWFuXCI6XG4gICAgICAgICAgICAgICAgaW5wdXRUeXBlID0gXCJjaGVja2JveFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmluZUZvcm1Db250cm9sKHRhcmdldCwgcHJvcGVydHlLZXksIGNyZWF0ZUZvcm1JbnB1dChwcm9wZXJ0eUtleSwgZGF0YSwgaW5wdXRUeXBlKSk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1TZWxlY3QoZGF0YT86IElGb3JtU2VsZWN0RGF0YSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICAgIGRlZmluZUZvcm1Db250cm9sKHRhcmdldCwgcHJvcGVydHlLZXksIGNyZWF0ZUZvcm1TZWxlY3QocHJvcGVydHlLZXksIGRhdGEpKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRm9ybVN0YXRpYyhkYXRhPzogSUZvcm1TdGF0aWNEYXRhKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgZGVmaW5lRm9ybUNvbnRyb2wodGFyZ2V0LCBwcm9wZXJ0eUtleSwgY3JlYXRlRm9ybVN0YXRpYyhwcm9wZXJ0eUtleSwgZGF0YSkpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBGb3JtTW9kZWwoZGF0YT86IElGb3JtTW9kZWxEYXRhKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgZGVmaW5lRm9ybUNvbnRyb2wodGFyZ2V0LCBwcm9wZXJ0eUtleSwgY3JlYXRlRm9ybU1vZGVsKHByb3BlcnR5S2V5LCBkYXRhKSk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWxlKGRhdGE/OiBJRm9ybUZpbGVEYXRhKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgZGVmaW5lRm9ybUNvbnRyb2wodGFyZ2V0LCBwcm9wZXJ0eUtleSwgY3JlYXRlRm9ybUZpbGUocHJvcGVydHlLZXksIGRhdGEpKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRm9ybUZpZWxkU2V0KGRhdGE6IElGb3JtRmllbGRTZXQpOiBDbGFzc0RlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBzZXRzID0gZ2V0Rm9ybUZpZWxkU2V0cyh0YXJnZXQpO1xuICAgICAgICBkYXRhLmNsYXNzZXMgPSBkYXRhLmNsYXNzZXMgfHwgXCJcIjtcbiAgICAgICAgc2V0c1tkYXRhLmlkXSA9IGRhdGE7XG4gICAgICAgIFJlZmxlY3RVdGlscy5kZWZpbmVNZXRhZGF0YShcImR5bmFtaWNGb3JtRmllbGRTZXRzXCIsIHNldHMsIHRhcmdldCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUZvcm1Db250cm9sKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBjb250cm9sOiBJRm9ybUNvbnRyb2wpOiB2b2lkIHtcbiAgICBSZWZsZWN0VXRpbHMuZGVmaW5lTWV0YWRhdGEoXCJkeW5hbWljRm9ybUNvbnRyb2xcIiwgY29udHJvbCwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtRmllbGRTZXRzKHRhcmdldDogYW55KTogSUR5bmFtaWNGb3JtRmllbGRTZXRzIHtcbiAgICByZXR1cm4gUmVmbGVjdFV0aWxzLmdldE1ldGFkYXRhKFwiZHluYW1pY0Zvcm1GaWVsZFNldHNcIiwgdGFyZ2V0KSB8fCB7fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1Db250cm9sKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogSUZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gUmVmbGVjdFV0aWxzLmdldE1ldGFkYXRhKFwiZHluYW1pY0Zvcm1Db250cm9sXCIsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybVNlcmlhbGl6ZXIodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiBJRm9ybUNvbnRyb2xTZXJpYWxpemVyIHwgSVJlc29sdmVGYWN0b3J5IHtcbiAgICByZXR1cm4gUmVmbGVjdFV0aWxzLmdldE1ldGFkYXRhKFwiZHluYW1pY0Zvcm1TZXJpYWxpemVyXCIsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUNvbnRyb2woaWQ6IHN0cmluZywgdHlwZTogc3RyaW5nLCBkYXRhPzogSUZvcm1Db250cm9sRGF0YSk6IElGb3JtQ29udHJvbCB7XG4gICAgZGF0YSA9IGRhdGEgfHwge307XG4gICAgZGF0YS5sYWJlbCA9IE9iamVjdFV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKGRhdGEubGFiZWwpID8gaWQgOiBkYXRhLmxhYmVsO1xuICAgIGRhdGEubGFiZWxBbGlnbiA9IGRhdGEubGFiZWxBbGlnbiB8fCBcImxlZnRcIjtcbiAgICBkYXRhLmZpZWxkU2V0ID0gZGF0YS5maWVsZFNldCB8fCBVbmlxdWVVdGlscy51dWlkKCk7XG4gICAgZGF0YS5jbGFzc2VzID0gZGF0YS5jbGFzc2VzIHx8IFwiXCI7XG4gICAgZGF0YS5yZWFkb25seSA9IGRhdGEucmVhZG9ubHkgfHwgZW1wdHlUZXN0ZXI7XG4gICAgZGF0YS5oaWRkZW4gPSBkYXRhLmhpZGRlbiB8fCBlbXB0eVRlc3RlcjtcbiAgICBkYXRhLnZhbGlkYXRvcnMgPSBkYXRhLnZhbGlkYXRvcnMgfHwgZW1wdHlBcnJheTtcbiAgICByZXR1cm4ge1xuICAgICAgICBpZDogaWQsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGRhdGE6IGRhdGFcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUlucHV0KGlkOiBzdHJpbmcsIGRhdGE6IElGb3JtSW5wdXREYXRhLCB0eXBlOiBzdHJpbmcgPSBcInRleHRcIik6IElGb3JtQ29udHJvbCB7XG4gICAgY29uc3QgY29udHJvbCA9IGNyZWF0ZUZvcm1Db250cm9sKGlkLCBcImlucHV0XCIsIGRhdGEpO1xuICAgIGRhdGEgPSBjb250cm9sLmRhdGE7XG4gICAgZGF0YS50eXBlID0gZGF0YS50eXBlIHx8IHR5cGU7XG4gICAgZGF0YS5jbGFzc2VzID0gIWRhdGEuY2xhc3NlcyA/IGBmb3JtLWdyb3VwLSR7ZGF0YS50eXBlfWAgOiBgJHtkYXRhLmNsYXNzZXN9IGZvcm0tZ3JvdXAtJHtkYXRhLnR5cGV9YDtcbiAgICBkYXRhLnBsYWNlaG9sZGVyID0gZGF0YS5wbGFjZWhvbGRlciB8fCAoZGF0YS50eXBlID09IFwibWFza1wiID8gXCJfXCIgOiBcIlwiKTtcbiAgICBkYXRhLnN0ZXAgPSBkYXRhLnN0ZXAgfHwgMTtcbiAgICBkYXRhLm1hc2sgPSBkYXRhLm1hc2sgfHwgWy9cXHcqL2dpXTtcbiAgICByZXR1cm4gY29udHJvbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1TZWxlY3QoaWQ6IHN0cmluZywgZGF0YTogSUZvcm1TZWxlY3REYXRhKTogSUZvcm1Db250cm9sIHtcbiAgICBjb25zdCBjb250cm9sID0gY3JlYXRlRm9ybUNvbnRyb2woaWQsIFwic2VsZWN0XCIsIGRhdGEpO1xuICAgIGRhdGEgPSBjb250cm9sLmRhdGE7XG4gICAgZGF0YS5vcHRpb25zID0gZGF0YS5vcHRpb25zIHx8IFtdO1xuICAgIGRhdGEudHlwZSA9IGRhdGEudHlwZSB8fCBcInNlbGVjdFwiO1xuICAgIGNvbnN0IGNsYXNzVHlwZSA9IGRhdGEudHlwZSA9PSBcInNlbGVjdFwiID8gXCJzZWxlY3RcIiA6IGBzZWxlY3QtJHtkYXRhLnR5cGV9YDtcbiAgICBkYXRhLmNsYXNzZXMgPSAhZGF0YS5jbGFzc2VzID8gYGZvcm0tZ3JvdXAtJHtjbGFzc1R5cGV9YCA6IGAke2RhdGEuY2xhc3Nlc30gZm9ybS1ncm91cC0ke2NsYXNzVHlwZX1gO1xuICAgIHJldHVybiBjb250cm9sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybVN0YXRpYyhpZDogc3RyaW5nLCBkYXRhOiBJRm9ybVN0YXRpY0RhdGEpOiBJRm9ybUNvbnRyb2wge1xuICAgIGNvbnN0IGNvbnRyb2wgPSBjcmVhdGVGb3JtQ29udHJvbChpZCwgXCJzdGF0aWNcIiwgZGF0YSk7XG4gICAgZGF0YSA9IGNvbnRyb2wuZGF0YTtcbiAgICBkYXRhLnN0eWxlID0gZGF0YS5zdHlsZSB8fCBcInRhYmxlXCI7XG4gICAgcmV0dXJuIGNvbnRyb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtTW9kZWwoaWQ6IHN0cmluZywgZGF0YTogSUZvcm1Nb2RlbERhdGEpOiBJRm9ybUNvbnRyb2wge1xuICAgIGNvbnN0IGNvbnRyb2wgPSBjcmVhdGVGb3JtQ29udHJvbChpZCwgXCJtb2RlbFwiLCBkYXRhKTtcbiAgICBkYXRhID0gY29udHJvbC5kYXRhO1xuICAgIGRhdGEubmFtZSA9IGRhdGEubmFtZSB8fCBcIlwiO1xuICAgIHJldHVybiBjb250cm9sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUZpbGUoaWQ6IHN0cmluZywgZGF0YTogSUZvcm1GaWxlRGF0YSk6IElGb3JtQ29udHJvbCB7XG4gICAgY29uc3QgY29udHJvbCA9IGNyZWF0ZUZvcm1Db250cm9sKGlkLCBcImZpbGVcIiwgZGF0YSk7XG4gICAgZGF0YSA9IGNvbnRyb2wuZGF0YTtcbiAgICBkYXRhLmFjY2VwdCA9IGRhdGEuYWNjZXB0IHx8IFwiLmpwZywuanBlZywucG5nXCI7XG4gICAgZGF0YS5tdWx0aSA9IGRhdGEubXVsdGkgfHwgZmFsc2U7XG4gICAgZGF0YS5iYXNlVXJsID0gT2JqZWN0VXRpbHMuaXNTdHJpbmcoZGF0YS5iYXNlVXJsKSA/IGRhdGEuYmFzZVVybCA6IFwiYXNzZXRzL1wiO1xuICAgIGRhdGEudXBsb2FkVXJsID0gT2JqZWN0VXRpbHMuaXNTdHJpbmcoZGF0YS51cGxvYWRVcmwpID8gZGF0YS51cGxvYWRVcmwgOiBcImFzc2V0c1wiO1xuICAgIGRhdGEuY3JlYXRlVXBsb2FkRGF0YSA9IGRhdGEuY3JlYXRlVXBsb2FkRGF0YSB8fCAoKGZpbGU6IEZpbGUpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtLmFwcGVuZChcImZpbGVcIiwgZmlsZSk7XG4gICAgICAgIHJldHVybiBmb3JtO1xuICAgIH0pO1xuICAgIHJldHVybiBjb250cm9sO1xufVxuIl19
|
|
1
|
+
import { ObjectUtils, ReflectUtils, UniqueUtils } from "@stemy/ngx-utils";
|
|
2
|
+
// --- Decorator functions ---
|
|
3
|
+
const emptyArray = [];
|
|
4
|
+
const emptyTester = () => {
|
|
5
|
+
return Promise.resolve(false);
|
|
6
|
+
};
|
|
7
|
+
const ɵ0 = emptyTester;
|
|
8
|
+
export function defaultSerializer(id, parent) {
|
|
9
|
+
const control = parent.get(id);
|
|
10
|
+
return !control ? null : control.value;
|
|
11
|
+
}
|
|
12
|
+
export function FormSerializable(serializer) {
|
|
13
|
+
return (target, propertyKey) => {
|
|
14
|
+
ReflectUtils.defineMetadata("dynamicFormSerializer", serializer || defaultSerializer, target, propertyKey);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function FormInput(data) {
|
|
18
|
+
return (target, propertyKey) => {
|
|
19
|
+
const meta = ReflectUtils.getOwnMetadata("design:type", target, propertyKey);
|
|
20
|
+
const type = meta ? meta.name : "";
|
|
21
|
+
let inputType = propertyKey.indexOf("password") < 0 ? "text" : "password";
|
|
22
|
+
switch (type) {
|
|
23
|
+
case "Number":
|
|
24
|
+
inputType = "number";
|
|
25
|
+
break;
|
|
26
|
+
case "Boolean":
|
|
27
|
+
inputType = "checkbox";
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
defineFormControl(target, propertyKey, createFormInput(propertyKey, data, inputType));
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function FormSelect(data) {
|
|
34
|
+
return (target, propertyKey) => {
|
|
35
|
+
defineFormControl(target, propertyKey, createFormSelect(propertyKey, data));
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export function FormStatic(data) {
|
|
39
|
+
return (target, propertyKey) => {
|
|
40
|
+
defineFormControl(target, propertyKey, createFormStatic(propertyKey, data));
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function FormModel(data) {
|
|
44
|
+
return (target, propertyKey) => {
|
|
45
|
+
defineFormControl(target, propertyKey, createFormModel(propertyKey, data));
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export function FormFile(data) {
|
|
49
|
+
return (target, propertyKey) => {
|
|
50
|
+
defineFormControl(target, propertyKey, createFormFile(propertyKey, data));
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function FormFieldSet(data) {
|
|
54
|
+
return (target) => {
|
|
55
|
+
const sets = getFormFieldSets(target);
|
|
56
|
+
data.classes = data.classes || "";
|
|
57
|
+
sets[data.id] = data;
|
|
58
|
+
ReflectUtils.defineMetadata("dynamicFormFieldSets", sets, target);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export function defineFormControl(target, propertyKey, control) {
|
|
62
|
+
ReflectUtils.defineMetadata("dynamicFormControl", control, target, propertyKey);
|
|
63
|
+
}
|
|
64
|
+
export function getFormFieldSets(target) {
|
|
65
|
+
return ReflectUtils.getMetadata("dynamicFormFieldSets", target) || {};
|
|
66
|
+
}
|
|
67
|
+
export function getFormControl(target, propertyKey) {
|
|
68
|
+
return ReflectUtils.getMetadata("dynamicFormControl", target, propertyKey);
|
|
69
|
+
}
|
|
70
|
+
export function getFormSerializer(target, propertyKey) {
|
|
71
|
+
return ReflectUtils.getMetadata("dynamicFormSerializer", target, propertyKey);
|
|
72
|
+
}
|
|
73
|
+
export function createFormControl(id, type, data) {
|
|
74
|
+
data = data || {};
|
|
75
|
+
data.label = ObjectUtils.isNullOrUndefined(data.label) ? id : data.label;
|
|
76
|
+
data.labelAlign = data.labelAlign || "left";
|
|
77
|
+
data.fieldSet = data.fieldSet || UniqueUtils.uuid();
|
|
78
|
+
data.classes = data.classes || "";
|
|
79
|
+
data.readonly = data.readonly || emptyTester;
|
|
80
|
+
data.hidden = data.hidden || emptyTester;
|
|
81
|
+
data.validators = data.validators || emptyArray;
|
|
82
|
+
return {
|
|
83
|
+
id: id,
|
|
84
|
+
type: type,
|
|
85
|
+
data: data
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function createFormInput(id, data, type = "text") {
|
|
89
|
+
const control = createFormControl(id, "input", data);
|
|
90
|
+
data = control.data;
|
|
91
|
+
data.type = data.type || type;
|
|
92
|
+
data.classes = !data.classes ? `form-group-${data.type}` : `${data.classes} form-group-${data.type}`;
|
|
93
|
+
data.placeholder = data.placeholder || (data.type == "mask" ? "_" : "");
|
|
94
|
+
data.step = data.step || 1;
|
|
95
|
+
data.mask = data.mask || [/\w*/gi];
|
|
96
|
+
return control;
|
|
97
|
+
}
|
|
98
|
+
export function createFormSelect(id, data) {
|
|
99
|
+
const control = createFormControl(id, "select", data);
|
|
100
|
+
data = control.data;
|
|
101
|
+
data.options = data.options || [];
|
|
102
|
+
data.type = data.type || "select";
|
|
103
|
+
const classType = data.type == "select" ? "select" : `select-${data.type}`;
|
|
104
|
+
data.classes = !data.classes ? `form-group-${classType}` : `${data.classes} form-group-${classType}`;
|
|
105
|
+
return control;
|
|
106
|
+
}
|
|
107
|
+
export function createFormStatic(id, data) {
|
|
108
|
+
const control = createFormControl(id, "static", data);
|
|
109
|
+
data = control.data;
|
|
110
|
+
data.style = data.style || "table";
|
|
111
|
+
return control;
|
|
112
|
+
}
|
|
113
|
+
export function createFormModel(id, data) {
|
|
114
|
+
const control = createFormControl(id, "model", data);
|
|
115
|
+
data = control.data;
|
|
116
|
+
data.name = data.name || "";
|
|
117
|
+
return control;
|
|
118
|
+
}
|
|
119
|
+
export function createFormFile(id, data) {
|
|
120
|
+
const control = createFormControl(id, "file", data);
|
|
121
|
+
data = control.data;
|
|
122
|
+
data.accept = data.accept || ".jpg,.jpeg,.png";
|
|
123
|
+
data.multi = data.multi || false;
|
|
124
|
+
data.baseUrl = ObjectUtils.isString(data.baseUrl) ? data.baseUrl : "assets/";
|
|
125
|
+
data.uploadUrl = ObjectUtils.isString(data.uploadUrl) ? data.uploadUrl : "assets";
|
|
126
|
+
data.createUploadData = data.createUploadData || ((file) => {
|
|
127
|
+
const form = new FormData();
|
|
128
|
+
form.append("file", file);
|
|
129
|
+
return form;
|
|
130
|
+
});
|
|
131
|
+
return control;
|
|
132
|
+
}
|
|
133
|
+
export { ɵ0 };
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tbW9uLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFJSCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFdBQVcsRUFDZCxNQUFNLGtCQUFrQixDQUFDO0FBa0sxQiw4QkFBOEI7QUFDOUIsTUFBTSxVQUFVLEdBQVEsRUFBRSxDQUFDO0FBQzNCLE1BQU0sV0FBVyxHQUFzQixHQUFHLEVBQUU7SUFDeEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQzs7QUFFRixNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBVSxFQUFFLE1BQWlCO0lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBcUQ7SUFDbEYsT0FBTyxDQUFDLE1BQVcsRUFBRSxXQUFtQixFQUFRLEVBQUU7UUFDOUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLElBQUksaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9HLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQXFCO0lBQzNDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBUSxFQUFFO1FBQzlDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFD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QVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM3RSxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7UUFDN0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXl9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7XHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2wsXHJcbiAgICBEeW5hbWljRm9ybU9wdGlvbkNvbmZpZyxcclxuICAgIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwsXHJcbiAgICBEeW5hbWljVmFsaWRhdG9yRGVzY3JpcHRvcixcclxuICAgIER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICAgIElBc3luY01lc3NhZ2UsXHJcbiAgICBJUmVxdWVzdE9wdGlvbnMsXHJcbiAgICBJUmVzb2x2ZUZhY3RvcnksXHJcbiAgICBPYmplY3RVdGlscyxcclxuICAgIFJlZmxlY3RVdGlscyxcclxuICAgIFVuaXF1ZVV0aWxzXHJcbn0gZnJvbSBcIkBzdGVteS9uZ3gtdXRpbHNcIjtcclxuXHJcbi8vIC0tLSBCYXNpYyBmb3JtIGNvbnRyb2wgaW50ZXJmYWNlcyAtLS1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtQmFzZSB7XHJcblxyXG4gICAgc3RhdHVzOiBEeW5hbWljRm9ybVN0YXRlO1xyXG5cclxuICAgIG9uU3RhdHVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtQmFzZT47XHJcbiAgICBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtQmFzZT47XHJcbiAgICBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPElEeW5hbWljRm9ybUJhc2U+O1xyXG5cclxuICAgIHZhbGlkYXRlKCk6IFByb21pc2U8YW55PjtcclxuICAgIHNlcmlhbGl6ZSh2YWxpZGF0ZT86IGJvb2xlYW4pOiBQcm9taXNlPGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtIGV4dGVuZHMgSUR5bmFtaWNGb3JtQmFzZXtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT25DcmVhdGVkRm9ybUNvbnRyb2wgZXh0ZW5kcyBEeW5hbWljRm9ybUNvbnRyb2wge1xyXG4gICAgb25DcmVhdGVkKCk6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSUZvcm1Db250cm9sU2VyaWFsaXplciA9IChtb2RlbDogRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxhbnk+LCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFByb21pc2U8YW55PjtcclxuZXhwb3J0IHR5cGUgSUZvcm1JbnB1dE1hc2sgPSBzdHJpbmcgfCBSZWdFeHA7XHJcbmV4cG9ydCB0eXBlIElGb3JtSW5wdXRNYXNrRnVuY3Rpb24gPSAocmF3OiBzdHJpbmcpID0+IElGb3JtSW5wdXRNYXNrW107XHJcbmV4cG9ydCB0eXBlIElGb3JtSW5wdXRVbk1hc2tGdW5jdGlvbiA9ICh2YWx1ZTogc3RyaW5nKSA9PiBhbnk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2VyaWFsaXplciB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgZnVuYzogSUZvcm1Db250cm9sU2VyaWFsaXplcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNlcmlhbGl6ZXJzIHtcclxuICAgIFtpZDogc3RyaW5nXTogSUZvcm1Db250cm9sU2VyaWFsaXplciB8IElSZXNvbHZlRmFjdG9yeSB8IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1TdGF0ZSA9IFwiVkFMSURcIiB8IFwiSU5WQUxJRFwiIHwgXCJQRU5ESU5HXCIgfCBcIkRJU0FCTEVEXCIgfCBcIkxPQURJTkdcIjtcclxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1VcGRhdGVPbiA9IFwiY2hhbmdlXCIgfCBcImJsdXJcIiB8IFwic3VibWl0XCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtQ29udHJvbCB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICBkYXRhPzogSUZvcm1Db250cm9sRGF0YTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUNvbnRyb2xEYXRhIHtcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgbGFiZWxBbGlnbj86IHN0cmluZztcclxuICAgIGZpZWxkU2V0Pzogc3RyaW5nO1xyXG4gICAgY2xhc3Nlcz86IHN0cmluZztcclxuICAgIHJlYWRvbmx5PzogRm9ybUNvbnRyb2xUZXN0ZXJGYWN0b3J5O1xyXG4gICAgaGlkZGVuPzogRm9ybUNvbnRyb2xUZXN0ZXJGYWN0b3J5O1xyXG4gICAgc2hvdWxkU2VyaWFsaXplPzogRm9ybUNvbnRyb2xUZXN0ZXJGYWN0b3J5O1xyXG4gICAgc2hvdWxkVmFsaWRhdGU/OiBGb3JtQ29udHJvbFRlc3RlckZhY3Rvcnk7XHJcbiAgICB2YWxpZGF0b3I/OiBEeW5hbWljVmFsaWRhdG9yRGVzY3JpcHRvcjtcclxuICAgIHZhbGlkYXRvcnM/OiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZztcclxuICAgIHVwZGF0ZU9uPzogRHluYW1pY0Zvcm1VcGRhdGVPbjtcclxuICAgIHJlbG9hZD86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtSW5wdXREYXRhIGV4dGVuZHMgSUZvcm1Db250cm9sRGF0YSB7XHJcbiAgICB0eXBlPzogc3RyaW5nO1xyXG4gICAgYXV0b2NvbXBsZXRlPzogc3RyaW5nO1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgICB1c2VMYW5ndWFnZT86IGJvb2xlYW47XHJcbiAgICBtYXNrPzogSUZvcm1JbnB1dE1hc2tGdW5jdGlvbiB8IElGb3JtSW5wdXRNYXNrW107XHJcbiAgICB1bm1hc2s/OiBJRm9ybUlucHV0VW5NYXNrRnVuY3Rpb247XHJcbiAgICBzdGVwPzogbnVtYmVyO1xyXG4gICAgbWluPzogbnVtYmVyO1xyXG4gICAgbWF4PzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2VsZWN0RGF0YSBleHRlbmRzIElGb3JtQ29udHJvbERhdGEge1xyXG4gICAgb3B0aW9ucz86IER5bmFtaWNGb3JtT3B0aW9uQ29uZmlnPGFueT5bXSB8IE9ic2VydmFibGU8RHluYW1pY0Zvcm1PcHRpb25Db25maWc8YW55PltdPjtcclxuICAgIGVtcHR5T3B0aW9uPzogYm9vbGVhbjtcclxuICAgIHR5cGU/OiBzdHJpbmc7XHJcbiAgICBtdWx0aT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TdGF0aWNEYXRhIGV4dGVuZHMgSUZvcm1Db250cm9sRGF0YSB7XHJcbiAgICBwcm9wZXJ0aWVzPzogc3RyaW5nW107XHJcbiAgICBzdHlsZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUZpbGVEYXRhIGV4dGVuZHMgSUZvcm1Db250cm9sRGF0YSB7XHJcbiAgICBhY2NlcHQ/OiBzdHJpbmc7XHJcbiAgICBtdWx0aT86IGJvb2xlYW47XHJcbiAgICBiYXNlVXJsPzogc3RyaW5nO1xyXG4gICAgYXNGaWxlPzogYm9vbGVhbjtcclxuICAgIGFzRGF0YVVybD86IGJvb2xlYW47XHJcbiAgICB1cGxvYWRVcmw/OiBzdHJpbmc7XHJcbiAgICB1cGxvYWRPcHRpb25zPzogSVJlcXVlc3RPcHRpb25zO1xyXG4gICAgY3JlYXRlVXBsb2FkRGF0YT86IChmaWxlOiBGaWxlKSA9PiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1Nb2RlbERhdGEgZXh0ZW5kcyBJRm9ybUNvbnRyb2xEYXRhLCBJRHluYW1pY0Zvcm1JbmZvIHtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1GaWVsZFNldCB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgY2xhc3Nlcz86IHN0cmluZztcclxuICAgIHRpdGxlPzogc3RyaW5nO1xyXG4gICAgdGl0bGVDbGFzc2VzPzogc3RyaW5nO1xyXG4gICAgc2V0Q2xhc3Nlcz86IHN0cmluZztcclxuICAgIGNvbnRyb2xDbGFzc2VzPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtQ29udHJvbE9wdGlvbiB7XHJcbiAgICBpZDogYW55O1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHNlbGVjdGFibGU/OiBib29sZWFuO1xyXG59XHJcblxyXG4vLyAtLS0gQmFzaWMgZm9ybSBpbnRlcmZhY2VzIC0tLVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY0Zvcm1UZW1wbGF0ZXMge1xyXG4gICAgW2lkOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRm9ybUNvbmZpZyB7XHJcbiAgICBwYXRoPzogc3RyaW5nIHwgbnVtYmVyIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICBjbGFzc2VzPzogc3RyaW5nO1xyXG4gICAgZm9ybUNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgICBpbm5lckZvcm1DbGFzc2VzPzogc3RyaW5nO1xyXG4gICAgaWQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY1NpbmdsZUZvcm1Db25maWcgZXh0ZW5kcyBJRHluYW1pY0Zvcm1Db25maWcsIElEeW5hbWljRm9ybUluZm8ge1xyXG4gICAgZGF0YTogYW55O1xyXG4gICAgY29udHJvbERhdGE/OiBJRm9ybUNvbnRyb2xEYXRhO1xyXG4gICAgbXVsdGk/OiBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY011bHRpRm9ybUNvbmZpZyBleHRlbmRzIElEeW5hbWljRm9ybUNvbmZpZyB7XHJcbiAgICBkYXRhOiBJRHluYW1pY0Zvcm1zQ29uZmlncztcclxuICAgIG11bHRpOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJRHluYW1pY0Zvcm1zQ29uZmlncyA9IEFycmF5PElEeW5hbWljU2luZ2xlRm9ybUNvbmZpZyB8IElEeW5hbWljTXVsdGlGb3JtQ29uZmlnPjtcclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXN5bmNTdWJtaXRNZXRob2QgPSAoZm9ybTogSUR5bmFtaWNGb3JtQmFzZSwgY29udGV4dD86IGFueSkgPT4gUHJvbWlzZTxJQXN5bmNNZXNzYWdlPjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtSW5mbyB7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgY29udHJvbHM/OiBJRm9ybUNvbnRyb2xbXTtcclxuICAgIHNlcmlhbGl6ZXJzPzogSUZvcm1TZXJpYWxpemVycztcclxuICAgIGZpZWxkU2V0cz86IElGb3JtRmllbGRTZXRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY0Zvcm1GaWVsZFNldHMge1xyXG4gICAgW2lkOiBzdHJpbmddOiBJRm9ybUZpZWxkU2V0XHJcbn1cclxuXHJcbi8vIC0tLSBCYXNpYyBmb3JtIHR5cGVzIC0tLVxyXG5leHBvcnQgdHlwZSBGb3JtQ29udHJvbFRlc3RlciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFByb21pc2U8Ym9vbGVhbj47XHJcbmV4cG9ydCB0eXBlIEZvcm1Db250cm9sVGVzdGVyRmFjdG9yeSA9IEZvcm1Db250cm9sVGVzdGVyIHwgSVJlc29sdmVGYWN0b3J5O1xyXG5cclxuLy8gLS0tIERlY29yYXRvciBmdW5jdGlvbnMgLS0tXHJcbmNvbnN0IGVtcHR5QXJyYXk6IGFueSA9IFtdO1xyXG5jb25zdCBlbXB0eVRlc3RlcjogRm9ybUNvbnRyb2xUZXN0ZXIgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0U2VyaWFsaXplcihpZDogc3RyaW5nLCBwYXJlbnQ6IEZvcm1BcnJheSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBjb250cm9sID0gcGFyZW50LmdldChpZCk7XHJcbiAgICByZXR1cm4gIWNvbnRyb2wgPyBudWxsOiBjb250cm9sLnZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRm9ybVNlcmlhbGl6YWJsZShzZXJpYWxpemVyPzogSUZvcm1Db250cm9sU2VyaWFsaXplciB8IElSZXNvbHZlRmFjdG9yeSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICBSZWZsZWN0VXRpbHMuZGVmaW5lTWV0YWRhdGEoXCJkeW5hbWljRm9ybVNlcmlhbGl6ZXJcIiwgc2VyaWFsaXplciB8fCBkZWZhdWx0U2VyaWFsaXplciwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRm9ybUlucHV0KGRhdGE/OiBJRm9ybUlucHV0RGF0YSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICBjb25zdCBtZXRhID0gUmVmbGVjdFV0aWxzLmdldE93bk1ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IG1ldGEgPyBtZXRhLm5hbWUgOiBcIlwiO1xyXG4gICAgICAgIGxldCBpbnB1dFR5cGUgPSBwcm9wZXJ0eUtleS5pbmRleE9mKFwicGFzc3dvcmRcIikgPCAwID8gXCJ0ZXh0XCIgOiBcInBhc3N3b3JkXCI7XHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJOdW1iZXJcIjpcclxuICAgICAgICAgICAgICAgIGlucHV0VHlwZSA9IFwibnVtYmVyXCI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIkJvb2xlYW5cIjpcclxuICAgICAgICAgICAgICAgIGlucHV0VHlwZSA9IFwiY2hlY2tib3hcIjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkZWZpbmVGb3JtQ29udHJvbCh0YXJnZXQsIHByb3BlcnR5S2V5LCBjcmVhdGVGb3JtSW5wdXQocHJvcGVydHlLZXksIGRhdGEsIGlucHV0VHlwZSkpO1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1TZWxlY3QoZGF0YT86IElGb3JtU2VsZWN0RGF0YSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICBkZWZpbmVGb3JtQ29udHJvbCh0YXJnZXQsIHByb3BlcnR5S2V5LCBjcmVhdGVGb3JtU2VsZWN0KHByb3BlcnR5S2V5LCBkYXRhKSk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRm9ybVN0YXRpYyhkYXRhPzogSUZvcm1TdGF0aWNEYXRhKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gICAgICAgIGRlZmluZUZvcm1Db250cm9sKHRhcmdldCwgcHJvcGVydHlLZXksIGNyZWF0ZUZvcm1TdGF0aWMocHJvcGVydHlLZXksIGRhdGEpKTtcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtTW9kZWwoZGF0YT86IElGb3JtTW9kZWxEYXRhKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gICAgICAgIGRlZmluZUZvcm1Db250cm9sKHRhcmdldCwgcHJvcGVydHlLZXksIGNyZWF0ZUZvcm1Nb2RlbChwcm9wZXJ0eUtleSwgZGF0YSkpO1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWxlKGRhdGE/OiBJRm9ybUZpbGVEYXRhKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gICAgICAgIGRlZmluZUZvcm1Db250cm9sKHRhcmdldCwgcHJvcGVydHlLZXksIGNyZWF0ZUZvcm1GaWxlKHByb3BlcnR5S2V5LCBkYXRhKSk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRm9ybUZpZWxkU2V0KGRhdGE6IElGb3JtRmllbGRTZXQpOiBDbGFzc0RlY29yYXRvciB7XHJcbiAgICByZXR1cm4gKHRhcmdldDogYW55KTogdm9pZCA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2V0cyA9IGdldEZvcm1GaWVsZFNldHModGFyZ2V0KTtcclxuICAgICAgICBkYXRhLmNsYXNzZXMgPSBkYXRhLmNsYXNzZXMgfHwgXCJcIjtcclxuICAgICAgICBzZXRzW2RhdGEuaWRdID0gZGF0YTtcclxuICAgICAgICBSZWZsZWN0VXRpbHMuZGVmaW5lTWV0YWRhdGEoXCJkeW5hbWljRm9ybUZpZWxkU2V0c1wiLCBzZXRzLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUZvcm1Db250cm9sKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBjb250cm9sOiBJRm9ybUNvbnRyb2wpOiB2b2lkIHtcclxuICAgIFJlZmxlY3RVdGlscy5kZWZpbmVNZXRhZGF0YShcImR5bmFtaWNGb3JtQ29udHJvbFwiLCBjb250cm9sLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1GaWVsZFNldHModGFyZ2V0OiBhbnkpOiBJRHluYW1pY0Zvcm1GaWVsZFNldHMge1xyXG4gICAgcmV0dXJuIFJlZmxlY3RVdGlscy5nZXRNZXRhZGF0YShcImR5bmFtaWNGb3JtRmllbGRTZXRzXCIsIHRhcmdldCkgfHwge307XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtQ29udHJvbCh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IElGb3JtQ29udHJvbCB7XHJcbiAgICByZXR1cm4gUmVmbGVjdFV0aWxzLmdldE1ldGFkYXRhKFwiZHluYW1pY0Zvcm1Db250cm9sXCIsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybVNlcmlhbGl6ZXIodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiBJRm9ybUNvbnRyb2xTZXJpYWxpemVyIHwgSVJlc29sdmVGYWN0b3J5IHtcclxuICAgIHJldHVybiBSZWZsZWN0VXRpbHMuZ2V0TWV0YWRhdGEoXCJkeW5hbWljRm9ybVNlcmlhbGl6ZXJcIiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtQ29udHJvbChpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIGRhdGE/OiBJRm9ybUNvbnRyb2xEYXRhKTogSUZvcm1Db250cm9sIHtcclxuICAgIGRhdGEgPSBkYXRhIHx8IHt9O1xyXG4gICAgZGF0YS5sYWJlbCA9IE9iamVjdFV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKGRhdGEubGFiZWwpID8gaWQgOiBkYXRhLmxhYmVsO1xyXG4gICAgZGF0YS5sYWJlbEFsaWduID0gZGF0YS5sYWJlbEFsaWduIHx8IFwibGVmdFwiO1xyXG4gICAgZGF0YS5maWVsZFNldCA9IGRhdGEuZmllbGRTZXQgfHwgVW5pcXVlVXRpbHMudXVpZCgpO1xyXG4gICAgZGF0YS5jbGFzc2VzID0gZGF0YS5jbGFzc2VzIHx8IFwiXCI7XHJcbiAgICBkYXRhLnJlYWRvbmx5ID0gZGF0YS5yZWFkb25seSB8fCBlbXB0eVRlc3RlcjtcclxuICAgIGRhdGEuaGlkZGVuID0gZGF0YS5oaWRkZW4gfHwgZW1wdHlUZXN0ZXI7XHJcbiAgICBkYXRhLnZhbGlkYXRvcnMgPSBkYXRhLnZhbGlkYXRvcnMgfHwgZW1wdHlBcnJheTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaWQ6IGlkLFxyXG4gICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgICAgICAgZGF0YTogZGF0YVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1JbnB1dChpZDogc3RyaW5nLCBkYXRhOiBJRm9ybUlucHV0RGF0YSwgdHlwZTogc3RyaW5nID0gXCJ0ZXh0XCIpOiBJRm9ybUNvbnRyb2wge1xyXG4gICAgY29uc3QgY29udHJvbCA9IGNyZWF0ZUZvcm1Db250cm9sKGlkLCBcImlucHV0XCIsIGRhdGEpO1xyXG4gICAgZGF0YSA9IGNvbnRyb2wuZGF0YTtcclxuICAgIGRhdGEudHlwZSA9IGRhdGEudHlwZSB8fCB0eXBlO1xyXG4gICAgZGF0YS5jbGFzc2VzID0gIWRhdGEuY2xhc3NlcyA/IGBmb3JtLWdyb3VwLSR7ZGF0YS50eXBlfWAgOiBgJHtkYXRhLmNsYXNzZXN9IGZvcm0tZ3JvdXAtJHtkYXRhLnR5cGV9YDtcclxuICAgIGRhdGEucGxhY2Vob2xkZXIgPSBkYXRhLnBsYWNlaG9sZGVyIHx8IChkYXRhLnR5cGUgPT0gXCJtYXNrXCIgPyBcIl9cIiA6IFwiXCIpO1xyXG4gICAgZGF0YS5zdGVwID0gZGF0YS5zdGVwIHx8IDE7XHJcbiAgICBkYXRhLm1hc2sgPSBkYXRhLm1hc2sgfHwgWy9cXHcqL2dpXTtcclxuICAgIHJldHVybiBjb250cm9sO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybVNlbGVjdChpZDogc3RyaW5nLCBkYXRhOiBJRm9ybVNlbGVjdERhdGEpOiBJRm9ybUNvbnRyb2wge1xyXG4gICAgY29uc3QgY29udHJvbCA9IGNyZWF0ZUZvcm1Db250cm9sKGlkLCBcInNlbGVjdFwiLCBkYXRhKTtcclxuICAgIGRhdGEgPSBjb250cm9sLmRhdGE7XHJcbiAgICBkYXRhLm9wdGlvbnMgPSBkYXRhLm9wdGlvbnMgfHwgW107XHJcbiAgICBkYXRhLnR5cGUgPSBkYXRhLnR5cGUgfHwgXCJzZWxlY3RcIjtcclxuICAgIGNvbnN0IGNsYXNzVHlwZSA9IGRhdGEudHlwZSA9PSBcInNlbGVjdFwiID8gXCJzZWxlY3RcIiA6IGBzZWxlY3QtJHtkYXRhLnR5cGV9YDtcclxuICAgIGRhdGEuY2xhc3NlcyA9ICFkYXRhLmNsYXNzZXMgPyBgZm9ybS1ncm91cC0ke2NsYXNzVHlwZX1gIDogYCR7ZGF0YS5jbGFzc2VzfSBmb3JtLWdyb3VwLSR7Y2xhc3NUeXBlfWA7XHJcbiAgICByZXR1cm4gY29udHJvbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1TdGF0aWMoaWQ6IHN0cmluZywgZGF0YTogSUZvcm1TdGF0aWNEYXRhKTogSUZvcm1Db250cm9sIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSBjcmVhdGVGb3JtQ29udHJvbChpZCwgXCJzdGF0aWNcIiwgZGF0YSk7XHJcbiAgICBkYXRhID0gY29udHJvbC5kYXRhO1xyXG4gICAgZGF0YS5zdHlsZSA9IGRhdGEuc3R5bGUgfHwgXCJ0YWJsZVwiO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtTW9kZWwoaWQ6IHN0cmluZywgZGF0YTogSUZvcm1Nb2RlbERhdGEpOiBJRm9ybUNvbnRyb2wge1xyXG4gICAgY29uc3QgY29udHJvbCA9IGNyZWF0ZUZvcm1Db250cm9sKGlkLCBcIm1vZGVsXCIsIGRhdGEpO1xyXG4gICAgZGF0YSA9IGNvbnRyb2wuZGF0YTtcclxuICAgIGRhdGEubmFtZSA9IGRhdGEubmFtZSB8fCBcIlwiO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtRmlsZShpZDogc3RyaW5nLCBkYXRhOiBJRm9ybUZpbGVEYXRhKTogSUZvcm1Db250cm9sIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSBjcmVhdGVGb3JtQ29udHJvbChpZCwgXCJmaWxlXCIsIGRhdGEpO1xyXG4gICAgZGF0YSA9IGNvbnRyb2wuZGF0YTtcclxuICAgIGRhdGEuYWNjZXB0ID0gZGF0YS5hY2NlcHQgfHwgXCIuanBnLC5qcGVnLC5wbmdcIjtcclxuICAgIGRhdGEubXVsdGkgPSBkYXRhLm11bHRpIHx8IGZhbHNlO1xyXG4gICAgZGF0YS5iYXNlVXJsID0gT2JqZWN0VXRpbHMuaXNTdHJpbmcoZGF0YS5iYXNlVXJsKSA/IGRhdGEuYmFzZVVybCA6IFwiYXNzZXRzL1wiO1xyXG4gICAgZGF0YS51cGxvYWRVcmwgPSBPYmplY3RVdGlscy5pc1N0cmluZyhkYXRhLnVwbG9hZFVybCkgPyBkYXRhLnVwbG9hZFVybCA6IFwiYXNzZXRzXCI7XHJcbiAgICBkYXRhLmNyZWF0ZVVwbG9hZERhdGEgPSBkYXRhLmNyZWF0ZVVwbG9hZERhdGEgfHwgKChmaWxlOiBGaWxlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgIGZvcm0uYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcclxuICAgICAgICByZXR1cm4gZm9ybTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbn1cclxuIl19
|
package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.js
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ContentChildren, EventEmitter, HostBinding, Input, Output, ViewChild, ViewContainerRef } from "@angular/core";
|
|
2
|
-
import { DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormComponentService, DynamicFormControlContainerComponent, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
|
|
3
|
-
import { DynamicBaseFormComponent } from "./dynamic-base-form.component";
|
|
4
|
-
import { ObjectUtils } from "@stemy/ngx-utils";
|
|
5
|
-
export class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent {
|
|
6
|
-
constructor(form, changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService) {
|
|
7
|
-
super(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService);
|
|
8
|
-
this.form = form;
|
|
9
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
10
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
11
|
-
this.layoutService = layoutService;
|
|
12
|
-
this.validationService = validationService;
|
|
13
|
-
this.componentService = componentService;
|
|
14
|
-
this.relationService = relationService;
|
|
15
|
-
this.context = null;
|
|
16
|
-
this.blur = new EventEmitter();
|
|
17
|
-
this.change = new EventEmitter();
|
|
18
|
-
this.focus = new EventEmitter();
|
|
19
|
-
}
|
|
20
|
-
get componentType() {
|
|
21
|
-
var _a;
|
|
22
|
-
return (_a = this.componentService.getCustomComponentType(this.model)) !== null && _a !== void 0 ? _a : this.getComponentType(this.model);
|
|
23
|
-
}
|
|
24
|
-
get startTemplate() {
|
|
25
|
-
return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
|
|
26
|
-
? this.layoutService.getAlignedTemplate(this.model, this.templates, "ARRAY_START")
|
|
27
|
-
: this.layoutService.getStartTemplate(this.model, this.templates);
|
|
28
|
-
}
|
|
29
|
-
get endTemplate() {
|
|
30
|
-
return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
|
|
31
|
-
? this.layoutService.getAlignedTemplate(this.model, this.templates, "ARRAY_END")
|
|
32
|
-
: this.layoutService.getEndTemplate(this.model, this.templates);
|
|
33
|
-
}
|
|
34
|
-
get formService() {
|
|
35
|
-
return this.form.formService;
|
|
36
|
-
}
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
this.onDetectChanges = this.formService.onDetectChanges.subscribe(form => {
|
|
39
|
-
if (form !== this.form)
|
|
40
|
-
return;
|
|
41
|
-
this.changeDetectorRef.detectChanges();
|
|
42
|
-
this.formService.updateSelectOptions(this.model, this.control);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
ngOnDestroy() {
|
|
46
|
-
super.ngOnDestroy();
|
|
47
|
-
this.onDetectChanges.unsubscribe();
|
|
48
|
-
}
|
|
49
|
-
createFormControlComponent() {
|
|
50
|
-
var _a;
|
|
51
|
-
super.createFormControlComponent();
|
|
52
|
-
const component = (_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance;
|
|
53
|
-
if (!component || !ObjectUtils.isFunction(component.onCreated))
|
|
54
|
-
return;
|
|
55
|
-
component.onCreated();
|
|
56
|
-
}
|
|
57
|
-
getComponentType(model) {
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
DynamicBaseFormControlContainerComponent.decorators = [
|
|
62
|
-
{ type: Component, args: [{
|
|
63
|
-
selector: "dynamic-base-form-control",
|
|
64
|
-
template: "",
|
|
65
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
66
|
-
},] }
|
|
67
|
-
];
|
|
68
|
-
DynamicBaseFormControlContainerComponent.ctorParameters = () => [
|
|
69
|
-
{ type: DynamicBaseFormComponent },
|
|
70
|
-
{ type: ChangeDetectorRef },
|
|
71
|
-
{ type: ComponentFactoryResolver },
|
|
72
|
-
{ type: DynamicFormLayoutService },
|
|
73
|
-
{ type: DynamicFormValidationService },
|
|
74
|
-
{ type: DynamicFormComponentService },
|
|
75
|
-
{ type: DynamicFormRelationService }
|
|
76
|
-
];
|
|
77
|
-
DynamicBaseFormControlContainerComponent.propDecorators = {
|
|
78
|
-
contentTemplateList: [{ type: ContentChildren, args: [DynamicTemplateDirective,] }],
|
|
79
|
-
klass: [{ type: HostBinding, args: ["class",] }],
|
|
80
|
-
context: [{ type: Input }],
|
|
81
|
-
group: [{ type: Input }],
|
|
82
|
-
hostClass: [{ type: Input }],
|
|
83
|
-
inputTemplateList: [{ type: Input, args: ["templates",] }],
|
|
84
|
-
layout: [{ type: Input }],
|
|
85
|
-
model: [{ type: Input }],
|
|
86
|
-
blur: [{ type: Output }],
|
|
87
|
-
change: [{ type: Output }],
|
|
88
|
-
focus: [{ type: Output }],
|
|
89
|
-
componentViewContainerRef: [{ type: ViewChild, args: ["componentViewContainer", { read: ViewContainerRef, static: true },] }]
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsK0JBQStCLEVBRS9CLDJCQUEyQixFQUUzQixvQ0FBb0MsRUFJcEMsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBUTdDLE1BQU0sT0FBTyx3Q0FBeUMsU0FBUSxvQ0FBb0M7SUF5QzlGLFlBQXFCLElBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyx3QkFBa0QsRUFDbEQsYUFBdUMsRUFDdkMsaUJBQStDLEVBQy9DLGdCQUE2QyxFQUM3QyxlQUEyQztRQUM1RCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBUHZHLFNBQUksR0FBSixJQUFJLENBQTBCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtR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RDs7O1lBVE8sd0JBQXdCO1lBOUI1QixpQkFBaUI7WUFFakIsd0JBQXdCO1lBdUJ4Qix3QkFBd0I7WUFFeEIsNEJBQTRCO1lBUjVCLDJCQUEyQjtZQU8zQiwwQkFBMEI7OztrQ0FnQnpCLGVBQWUsU0FBQyx3QkFBd0I7b0JBRXhDLFdBQVcsU0FBQyxPQUFPO3NCQUVuQixLQUFLO29CQUNMLEtBQUs7d0JBQ0wsS0FBSztnQ0FDTCxLQUFLLFNBQUMsV0FBVztxQkFDakIsS0FBSztvQkFDTCxLQUFLO21CQUVMLE1BQU07cUJBQ04sTUFBTTtvQkFDTixNQUFNO3dDQUVOLFNBQVMsU0FBQyx3QkFBd0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVksXG4gICAgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwsXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxuICAgIER5bmFtaWNGb3JtQ29udHJvbCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsXG4gICAgRHluYW1pY0Zvcm1MYXlvdXQsXG4gICAgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgIER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlLFxuICAgIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZHluYW1pYy1iYXNlLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xuaW1wb3J0IHtPbkNyZWF0ZWRGb3JtQ29udHJvbH0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJkeW5hbWljLWJhc2UtZm9ybS1jb250cm9sXCIsXG4gICAgdGVtcGxhdGU6IFwiXCIsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgY29udGVudFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBrbGFzcztcblxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKSBob3N0Q2xhc3M6IHN0cmluZ1tdO1xuICAgIEBJbnB1dChcInRlbXBsYXRlc1wiKSBpbnB1dFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgQElucHV0KCkgbGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcbiAgICBASW5wdXQoKSBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWw7XG5cbiAgICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGZvY3VzOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcblxuICAgIEBWaWV3Q2hpbGQoXCJjb21wb25lbnRWaWV3Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWV9KSBjb21wb25lbnRWaWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgcHJvdGVjdGVkIG9uRGV0ZWN0Q2hhbmdlczogU3Vic2NyaXB0aW9uO1xuXG4gICAgZ2V0IGNvbXBvbmVudFR5cGUoKTogVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2V0Q3VzdG9tQ29tcG9uZW50VHlwZSh0aGlzLm1vZGVsKSA/PyB0aGlzLmdldENvbXBvbmVudFR5cGUodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXJ0VGVtcGxhdGUoKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsLnR5cGUgPT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSlcbiAgICAgICAgICAgID8gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEFsaWduZWRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcywgXCJBUlJBWV9TVEFSVFwiIGFzIGFueSlcbiAgICAgICAgICAgIDogdGhpcy5sYXlvdXRTZXJ2aWNlLmdldFN0YXJ0VGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpO1xuICAgIH1cblxuICAgIGdldCBlbmRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUge1xuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwudHlwZSA9PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZKVxuICAgICAgICAgICAgPyB0aGlzLmxheW91dFNlcnZpY2UuZ2V0QWxpZ25lZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzLCBcIkFSUkFZX0VORFwiIGFzIGFueSlcbiAgICAgICAgICAgIDogdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEVuZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzKTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybVNlcnZpY2UoKTogRHluYW1pY0Zvcm1TZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5mb3JtU2VydmljZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBmb3JtOiBEeW5hbWljQmFzZUZvcm1Db21wb25lbnQsXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGxheW91dFNlcnZpY2U6IER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgICByZWFkb25seSB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICByZWFkb25seSBjb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgcmVsYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZSkge1xuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBsYXlvdXRTZXJ2aWNlLCB2YWxpZGF0aW9uU2VydmljZSwgY29tcG9uZW50U2VydmljZSwgcmVsYXRpb25TZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRldGVjdENoYW5nZXMgPSB0aGlzLmZvcm1TZXJ2aWNlLm9uRGV0ZWN0Q2hhbmdlcy5zdWJzY3JpYmUoZm9ybSA9PiB7XG4gICAgICAgICAgICBpZiAoZm9ybSAhPT0gdGhpcy5mb3JtKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudXBkYXRlU2VsZWN0T3B0aW9ucyh0aGlzLm1vZGVsLCB0aGlzLmNvbnRyb2wpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5vbkRldGVjdENoYW5nZXMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRm9ybUNvbnRyb2xDb21wb25lbnQoKSB7XG4gICAgICAgIHN1cGVyLmNyZWF0ZUZvcm1Db250cm9sQ29tcG9uZW50KCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhcyBPbkNyZWF0ZWRGb3JtQ29udHJvbDtcbiAgICAgICAgaWYgKCFjb21wb25lbnQgfHwgIU9iamVjdFV0aWxzLmlzRnVuY3Rpb24oY29tcG9uZW50Lm9uQ3JlYXRlZCkpIHJldHVybjtcbiAgICAgICAgY29tcG9uZW50Lm9uQ3JlYXRlZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRDb21wb25lbnRUeXBlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IFR5cGU8RHluYW1pY0Zvcm1Db250cm9sPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ContentChildren, EventEmitter, HostBinding, Input, Output, ViewChild, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormComponentService, DynamicFormControlContainerComponent, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
|
|
3
|
+
import { DynamicBaseFormComponent } from "./dynamic-base-form.component";
|
|
4
|
+
import { ObjectUtils } from "@stemy/ngx-utils";
|
|
5
|
+
export class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent {
|
|
6
|
+
constructor(form, changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService) {
|
|
7
|
+
super(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService);
|
|
8
|
+
this.form = form;
|
|
9
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
10
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
11
|
+
this.layoutService = layoutService;
|
|
12
|
+
this.validationService = validationService;
|
|
13
|
+
this.componentService = componentService;
|
|
14
|
+
this.relationService = relationService;
|
|
15
|
+
this.context = null;
|
|
16
|
+
this.blur = new EventEmitter();
|
|
17
|
+
this.change = new EventEmitter();
|
|
18
|
+
this.focus = new EventEmitter();
|
|
19
|
+
}
|
|
20
|
+
get componentType() {
|
|
21
|
+
var _a;
|
|
22
|
+
return (_a = this.componentService.getCustomComponentType(this.model)) !== null && _a !== void 0 ? _a : this.getComponentType(this.model);
|
|
23
|
+
}
|
|
24
|
+
get startTemplate() {
|
|
25
|
+
return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
|
|
26
|
+
? this.layoutService.getAlignedTemplate(this.model, this.templates, "ARRAY_START")
|
|
27
|
+
: this.layoutService.getStartTemplate(this.model, this.templates);
|
|
28
|
+
}
|
|
29
|
+
get endTemplate() {
|
|
30
|
+
return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
|
|
31
|
+
? this.layoutService.getAlignedTemplate(this.model, this.templates, "ARRAY_END")
|
|
32
|
+
: this.layoutService.getEndTemplate(this.model, this.templates);
|
|
33
|
+
}
|
|
34
|
+
get formService() {
|
|
35
|
+
return this.form.formService;
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
this.onDetectChanges = this.formService.onDetectChanges.subscribe(form => {
|
|
39
|
+
if (form !== this.form)
|
|
40
|
+
return;
|
|
41
|
+
this.changeDetectorRef.detectChanges();
|
|
42
|
+
this.formService.updateSelectOptions(this.model, this.control);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
super.ngOnDestroy();
|
|
47
|
+
this.onDetectChanges.unsubscribe();
|
|
48
|
+
}
|
|
49
|
+
createFormControlComponent() {
|
|
50
|
+
var _a;
|
|
51
|
+
super.createFormControlComponent();
|
|
52
|
+
const component = (_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance;
|
|
53
|
+
if (!component || !ObjectUtils.isFunction(component.onCreated))
|
|
54
|
+
return;
|
|
55
|
+
component.onCreated();
|
|
56
|
+
}
|
|
57
|
+
getComponentType(model) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
DynamicBaseFormControlContainerComponent.decorators = [
|
|
62
|
+
{ type: Component, args: [{
|
|
63
|
+
selector: "dynamic-base-form-control",
|
|
64
|
+
template: "",
|
|
65
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
66
|
+
},] }
|
|
67
|
+
];
|
|
68
|
+
DynamicBaseFormControlContainerComponent.ctorParameters = () => [
|
|
69
|
+
{ type: DynamicBaseFormComponent },
|
|
70
|
+
{ type: ChangeDetectorRef },
|
|
71
|
+
{ type: ComponentFactoryResolver },
|
|
72
|
+
{ type: DynamicFormLayoutService },
|
|
73
|
+
{ type: DynamicFormValidationService },
|
|
74
|
+
{ type: DynamicFormComponentService },
|
|
75
|
+
{ type: DynamicFormRelationService }
|
|
76
|
+
];
|
|
77
|
+
DynamicBaseFormControlContainerComponent.propDecorators = {
|
|
78
|
+
contentTemplateList: [{ type: ContentChildren, args: [DynamicTemplateDirective,] }],
|
|
79
|
+
klass: [{ type: HostBinding, args: ["class",] }],
|
|
80
|
+
context: [{ type: Input }],
|
|
81
|
+
group: [{ type: Input }],
|
|
82
|
+
hostClass: [{ type: Input }],
|
|
83
|
+
inputTemplateList: [{ type: Input, args: ["templates",] }],
|
|
84
|
+
layout: [{ type: Input }],
|
|
85
|
+
model: [{ type: Input }],
|
|
86
|
+
blur: [{ type: Output }],
|
|
87
|
+
change: [{ type: Output }],
|
|
88
|
+
focus: [{ type: Output }],
|
|
89
|
+
componentViewContainerRef: [{ type: ViewChild, args: ["componentViewContainer", { read: ViewContainerRef, static: true },] }]
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsK0JBQStCLEVBRS9CLDJCQUEyQixFQUUzQixvQ0FBb0MsRUFJcEMsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBUTdDLE1BQU0sT0FBTyx3Q0FBeUMsU0FBUSxvQ0FBb0M7SUF5QzlGLFlBQXFCLElBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyx3QkFBa0QsRUFDbEQsYUFBdUMsRUFDdkMsaUJBQStDLEVBQy9DLGdCQUE2QyxFQUM3QyxlQUEyQztRQUM1RCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBUHZHLFNBQUksR0FBSixJQUFJLENBQTBCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtR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RDs7O1lBVE8sd0JBQXdCO1lBOUI1QixpQkFBaUI7WUFFakIsd0JBQXdCO1lBdUJ4Qix3QkFBd0I7WUFFeEIsNEJBQTRCO1lBUjVCLDJCQUEyQjtZQU8zQiwwQkFBMEI7OztrQ0FnQnpCLGVBQWUsU0FBQyx3QkFBd0I7b0JBRXhDLFdBQVcsU0FBQyxPQUFPO3NCQUVuQixLQUFLO29CQUNMLEtBQUs7d0JBQ0wsS0FBSztnQ0FDTCxLQUFLLFNBQUMsV0FBVztxQkFDakIsS0FBSztvQkFDTCxLQUFLO21CQUVMLE1BQU07cUJBQ04sTUFBTTtvQkFDTixNQUFNO3dDQUVOLFNBQVMsU0FBQyx3QkFBd0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgVHlwZSxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1xyXG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSxcclxuICAgIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsLFxyXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sLFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQsXHJcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCxcclxuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxyXG4gICAgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxyXG4gICAgRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2UsXHJcbiAgICBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSBcIkBuZy1keW5hbWljLWZvcm1zL2NvcmVcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Db21wb25lbnR9IGZyb20gXCIuL2R5bmFtaWMtYmFzZS1mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcbmltcG9ydCB7T25DcmVhdGVkRm9ybUNvbnRyb2x9IGZyb20gXCIuLi8uLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbFwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUpIGNvbnRlbnRUZW1wbGF0ZUxpc3Q6IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzXCIpIGtsYXNzO1xyXG5cclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIHwgbnVsbCA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gICAgQElucHV0KCkgaG9zdENsYXNzOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dChcInRlbXBsYXRlc1wiKSBpbnB1dFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XHJcbiAgICBASW5wdXQoKSBsYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xyXG4gICAgQElucHV0KCkgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsO1xyXG5cclxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PigpO1xyXG4gICAgQE91dHB1dCgpIGZvY3VzOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiY29tcG9uZW50Vmlld0NvbnRhaW5lclwiLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlfSkgY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXRlY3RDaGFuZ2VzOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgZ2V0IGNvbXBvbmVudFR5cGUoKTogVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U2VydmljZS5nZXRDdXN0b21Db21wb25lbnRUeXBlKHRoaXMubW9kZWwpID8/IHRoaXMuZ2V0Q29tcG9uZW50VHlwZSh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3RhcnRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5tb2RlbC50eXBlID09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVkpXHJcbiAgICAgICAgICAgID8gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEFsaWduZWRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcywgXCJBUlJBWV9TVEFSVFwiIGFzIGFueSlcclxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0U3RhcnRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVuZFRlbXBsYXRlKCk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsLnR5cGUgPT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSlcclxuICAgICAgICAgICAgPyB0aGlzLmxheW91dFNlcnZpY2UuZ2V0QWxpZ25lZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzLCBcIkFSUkFZX0VORFwiIGFzIGFueSlcclxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RW5kVGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb3JtU2VydmljZSgpOiBEeW5hbWljRm9ybVNlcnZpY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZm9ybVNlcnZpY2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybTogRHluYW1pY0Jhc2VGb3JtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBsYXlvdXRTZXJ2aWNlOiBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IHJlbGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBsYXlvdXRTZXJ2aWNlLCB2YWxpZGF0aW9uU2VydmljZSwgY29tcG9uZW50U2VydmljZSwgcmVsYXRpb25TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uRGV0ZWN0Q2hhbmdlcyA9IHRoaXMuZm9ybVNlcnZpY2Uub25EZXRlY3RDaGFuZ2VzLnN1YnNjcmliZShmb3JtID0+IHtcclxuICAgICAgICAgICAgaWYgKGZvcm0gIT09IHRoaXMuZm9ybSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS51cGRhdGVTZWxlY3RPcHRpb25zKHRoaXMubW9kZWwsIHRoaXMuY29udHJvbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLm9uRGV0ZWN0Q2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpIHtcclxuICAgICAgICBzdXBlci5jcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpO1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhcyBPbkNyZWF0ZWRGb3JtQ29udHJvbDtcclxuICAgICAgICBpZiAoIWNvbXBvbmVudCB8fCAhT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihjb21wb25lbnQub25DcmVhdGVkKSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbXBvbmVudC5vbkNyZWF0ZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50VHlwZShtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiBUeXBlPER5bmFtaWNGb3JtQ29udHJvbD4gfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
|