@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.
Files changed (32) hide show
  1. package/README.md +27 -27
  2. package/bundles/stemy-ngx-dynamic-form.umd.js +1400 -1390
  3. package/bundles/stemy-ngx-dynamic-form.umd.js.map +1 -1
  4. package/bundles/stemy-ngx-dynamic-form.umd.min.js +1 -1
  5. package/bundles/stemy-ngx-dynamic-form.umd.min.js.map +1 -1
  6. package/esm2015/ngx-dynamic-form/common-types.js +134 -134
  7. package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.js +91 -91
  8. package/esm2015/ngx-dynamic-form/components/base/dynamic-base-form.component.js +129 -129
  9. package/esm2015/ngx-dynamic-form/directives/async-submit.directive.js +100 -100
  10. package/esm2015/ngx-dynamic-form/ngx-dynamic-form.module.js +82 -82
  11. package/esm2015/ngx-dynamic-form/services/dynamic-form-validation.service.js +11 -11
  12. package/esm2015/ngx-dynamic-form/services/dynamic-form.service.js +393 -383
  13. package/esm2015/ngx-dynamic-form/utils/dynamic-form-array.model.js +8 -8
  14. package/esm2015/ngx-dynamic-form/utils/form-subject.js +18 -18
  15. package/esm2015/ngx-dynamic-form/utils/validators.js +28 -28
  16. package/esm2015/public_api.js +9 -9
  17. package/esm2015/stemy-ngx-dynamic-form.js +6 -6
  18. package/fesm2015/stemy-ngx-dynamic-form.js +936 -926
  19. package/fesm2015/stemy-ngx-dynamic-form.js.map +1 -1
  20. package/ngx-dynamic-form/common-types.d.ts +148 -148
  21. package/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.d.ts +37 -37
  22. package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +37 -37
  23. package/ngx-dynamic-form/directives/async-submit.directive.d.ts +27 -27
  24. package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +10 -10
  25. package/ngx-dynamic-form/services/dynamic-form-validation.service.d.ts +5 -5
  26. package/ngx-dynamic-form/services/dynamic-form.service.d.ts +40 -40
  27. package/ngx-dynamic-form/utils/dynamic-form-array.model.d.ts +12 -12
  28. package/ngx-dynamic-form/utils/form-subject.d.ts +8 -8
  29. package/ngx-dynamic-form/utils/validators.d.ts +4 -4
  30. package/package.json +12 -12
  31. package/public_api.d.ts +8 -8
  32. 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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsK0JBQStCLEVBRS9CLDJCQUEyQixFQUUzQixvQ0FBb0MsRUFJcEMsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBUTdDLE1BQU0sT0FBTyx3Q0FBeUMsU0FBUSxvQ0FBb0M7SUF5QzlGLFlBQXFCLElBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyx3QkFBa0QsRUFDbEQsYUFBdUMsRUFDdkMsaUJBQStDLEVBQy9DLGdCQUE2QyxFQUM3QyxlQUEyQztRQUM1RCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBUHZHLFNBQUksR0FBSixJQUFJLENBQTBCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE4QjtRQUMvQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTZCO1FBQzdDLG9CQUFlLEdBQWYsZUFBZSxDQUE0QjtRQXpDdkQsWUFBTyxHQUFzQyxJQUFJLENBQUM7UUFPakQsU0FBSSxHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUMxRixXQUFNLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzVGLFVBQUssR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7SUFrQ3JHLENBQUM7SUE1QkQsSUFBSSxhQUFhOztRQUNiLGFBQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUNBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLCtCQUErQixDQUFDO1lBQ3ZELENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFvQixDQUFDO1lBQ3pGLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksK0JBQStCLENBQUM7WUFDdkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQWtCLENBQUM7WUFDdkYsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFZRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckUsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTztZQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVTLDBCQUEwQjs7UUFDaEMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxRQUFnQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFBRSxPQUFPO1FBQ3ZFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRVMsZ0JBQWdCLENBQUMsS0FBOEI7UUFDckQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7O1lBOUVKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxRQUFRLEVBQUUsRUFBRTtnQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7O1lBVE8sd0JBQXdCO1lBOUI1QixpQkFBaUI7WUFFakIsd0JBQXdCO1lBdUJ4Qix3QkFBd0I7WUFFeEIsNEJBQTRCO1lBUjVCLDJCQUEyQjtZQU8zQiwwQkFBMEI7OztrQ0FnQnpCLGVBQWUsU0FBQyx3QkFBd0I7b0JBRXhDLFdBQVcsU0FBQyxPQUFPO3NCQUVuQixLQUFLO29CQUNMLEtBQUs7d0JBQ0wsS0FBSztnQ0FDTCxLQUFLLFNBQUMsV0FBVztxQkFDakIsS0FBSztvQkFDTCxLQUFLO21CQUVMLE1BQU07cUJBQ04sTUFBTTtvQkFDTixNQUFNO3dDQUVOLFNBQVMsU0FBQyx3QkFBd0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVksXG4gICAgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwsXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxuICAgIER5bmFtaWNGb3JtQ29udHJvbCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsXG4gICAgRHluYW1pY0Zvcm1MYXlvdXQsXG4gICAgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgIER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlLFxuICAgIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZHluYW1pYy1iYXNlLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiQHN0ZW15L25neC11dGlsc1wiO1xuaW1wb3J0IHtPbkNyZWF0ZWRGb3JtQ29udHJvbH0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJkeW5hbWljLWJhc2UtZm9ybS1jb250cm9sXCIsXG4gICAgdGVtcGxhdGU6IFwiXCIsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgY29udGVudFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBrbGFzcztcblxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKSBob3N0Q2xhc3M6IHN0cmluZ1tdO1xuICAgIEBJbnB1dChcInRlbXBsYXRlc1wiKSBpbnB1dFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgQElucHV0KCkgbGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcbiAgICBASW5wdXQoKSBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWw7XG5cbiAgICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+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=