@stemy/ngx-dynamic-form 10.2.28 → 10.2.29
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/bundles/stemy-ngx-dynamic-form.umd.js +76 -92
- 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 +26 -63
- package/esm2015/ngx-dynamic-form/services/dynamic-form.service.js +32 -22
- package/esm2015/ngx-dynamic-form/utils/form-select-subject.js +3 -1
- package/esm2015/public_api.js +2 -2
- package/fesm2015/stemy-ngx-dynamic-form.js +60 -84
- package/fesm2015/stemy-ngx-dynamic-form.js.map +1 -1
- package/ngx-dynamic-form/common-types.d.ts +25 -95
- package/ngx-dynamic-form/services/dynamic-form.service.d.ts +6 -5
- package/package.json +1 -1
- package/public_api.d.ts +1 -1
- package/stemy-ngx-dynamic-form.metadata.json +1 -1
package/esm2015/public_api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { defaultSerializer, FormSerializable, FormInput, FormSelect, FormStatic, FormModel, FormFile,
|
|
1
|
+
export { defaultSerializer, FormSerializable, FormInput, FormSelect, FormStatic, FormModel, FormFile, defineFormControl, getFormControl, getFormSerializer, createFormInput, createFormSelect, createFormStatic, createFormModel, createFormControl } from "./ngx-dynamic-form/common-types";
|
|
2
2
|
export { validateJSON, validateRequiredTranslation, validatePhone, validateItemsMinLength, validateItemsMaxLength, validateItemsMinValue, validateItemsMaxValue } from "./ngx-dynamic-form/utils/validators";
|
|
3
3
|
export { FormSelectSubject } from "./ngx-dynamic-form/utils/form-select-subject";
|
|
4
4
|
export { FormSubject } from "./ngx-dynamic-form/utils/form-subject";
|
|
@@ -9,4 +9,4 @@ export { DynamicBaseFormArrayComponent } from "./ngx-dynamic-form/components/bas
|
|
|
9
9
|
export { DynamicBaseFormControlContainerComponent } from "./ngx-dynamic-form/components/base/dynamic-base-form-control-container.component";
|
|
10
10
|
export { DynamicBaseFormGroupComponent } from "./ngx-dynamic-form/components/base/dynamic-base-form-group.component";
|
|
11
11
|
export { NgxDynamicFormModule } from "./ngx-dynamic-form/ngx-dynamic-form.module";
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFpQkgsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsUUFBUSxFQUNSLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixpQkFBaUIsRUFDcEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQ0gsWUFBWSxFQUNaLDJCQUEyQixFQUMzQixhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3hCLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRWxFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRXBGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBRTFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ3hHLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQ25ILE9BQU8sRUFDSCx3Q0FBd0MsRUFDM0MsTUFBTSxrRkFBa0YsQ0FBQztBQUMxRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUVuSCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XHJcbiAgICBJRHluYW1pY0Zvcm1CYXNlLFxyXG4gICAgSUR5bmFtaWNGb3JtLFxyXG4gICAgT25DcmVhdGVkRm9ybUNvbnRyb2wsXHJcbiAgICBGb3JtQ29udHJvbFNlcmlhbGl6ZXIsXHJcbiAgICBGb3JtTW9kZWxDdXN0b21pemVyLFxyXG4gICAgRHluYW1pY0Zvcm1TdGF0ZSxcclxuICAgIER5bmFtaWNGb3JtVXBkYXRlT24sXHJcbiAgICBJRm9ybUNvbnRyb2wsXHJcbiAgICBJRm9ybUNvbnRyb2xPcHRpb24sXHJcbiAgICBJRHluYW1pY0Zvcm1UZW1wbGF0ZXMsXHJcbiAgICBJRHluYW1pY0Zvcm1Db25maWcsXHJcbiAgICBJRHluYW1pY1NpbmdsZUZvcm1Db25maWcsXHJcbiAgICBJRHluYW1pY011bHRpRm9ybUNvbmZpZyxcclxuICAgIElEeW5hbWljRm9ybXNDb25maWdzLFxyXG4gICAgQXN5bmNTdWJtaXRNZXRob2QsXHJcbiAgICBJRHluYW1pY0Zvcm1JbmZvLFxyXG4gICAgZGVmYXVsdFNlcmlhbGl6ZXIsXHJcbiAgICBGb3JtU2VyaWFsaXphYmxlLFxyXG4gICAgRm9ybUlucHV0LFxyXG4gICAgRm9ybVNlbGVjdCxcclxuICAgIEZvcm1TdGF0aWMsXHJcbiAgICBGb3JtTW9kZWwsXHJcbiAgICBGb3JtRmlsZSxcclxuICAgIGRlZmluZUZvcm1Db250cm9sLFxyXG4gICAgZ2V0Rm9ybUNvbnRyb2wsXHJcbiAgICBnZXRGb3JtU2VyaWFsaXplcixcclxuICAgIGNyZWF0ZUZvcm1JbnB1dCxcclxuICAgIGNyZWF0ZUZvcm1TZWxlY3QsXHJcbiAgICBjcmVhdGVGb3JtU3RhdGljLFxyXG4gICAgY3JlYXRlRm9ybU1vZGVsLFxyXG4gICAgY3JlYXRlRm9ybUNvbnRyb2xcclxufSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IHtcclxuICAgIHZhbGlkYXRlSlNPTixcclxuICAgIHZhbGlkYXRlUmVxdWlyZWRUcmFuc2xhdGlvbixcclxuICAgIHZhbGlkYXRlUGhvbmUsXHJcbiAgICB2YWxpZGF0ZUl0ZW1zTWluTGVuZ3RoLFxyXG4gICAgdmFsaWRhdGVJdGVtc01heExlbmd0aCxcclxuICAgIHZhbGlkYXRlSXRlbXNNaW5WYWx1ZSxcclxuICAgIHZhbGlkYXRlSXRlbXNNYXhWYWx1ZVxyXG59IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vdXRpbHMvdmFsaWRhdG9yc1wiO1xyXG5cclxuZXhwb3J0IHtGb3JtU2VsZWN0U3ViamVjdH0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS91dGlscy9mb3JtLXNlbGVjdC1zdWJqZWN0XCI7XHJcbmV4cG9ydCB7Rm9ybVN1YmplY3R9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vdXRpbHMvZm9ybS1zdWJqZWN0XCI7XHJcblxyXG5leHBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IHtBc3luY1N1Ym1pdERpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9kaXJlY3RpdmVzL2FzeW5jLXN1Ym1pdC5kaXJlY3RpdmVcIjtcclxuXHJcbmV4cG9ydCB7RHluYW1pY0Jhc2VGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWJhc2UtZm9ybS5jb21wb25lbnRcIjtcclxuZXhwb3J0IHtEeW5hbWljQmFzZUZvcm1BcnJheUNvbXBvbmVudH0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2Jhc2UvZHluYW1pYy1iYXNlLWZvcm0tYXJyYXkuY29tcG9uZW50XCI7XHJcbmV4cG9ydCB7XHJcbiAgICBEeW5hbWljQmFzZUZvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2Jhc2UvZHluYW1pYy1iYXNlLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50XCI7XHJcbmV4cG9ydCB7RHluYW1pY0Jhc2VGb3JtR3JvdXBDb21wb25lbnR9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9iYXNlL2R5bmFtaWMtYmFzZS1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IHtOZ3hEeW5hbWljRm9ybU1vZHVsZX0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9uZ3gtZHluYW1pYy1mb3JtLm1vZHVsZVwiO1xyXG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReflectUtils, ObjectUtils,
|
|
1
|
+
import { ReflectUtils, ObjectUtils, StringUtils, OpenApiService, TOASTER_SERVICE, ObservableUtils, EventsService, NgxUtilsModule } from '@stemy/ngx-utils';
|
|
2
2
|
import { Subject, Subscription } from 'rxjs';
|
|
3
3
|
import { __awaiter } from 'tslib';
|
|
4
4
|
import { EventEmitter, Injectable, Directive, Inject, ChangeDetectorRef, ElementRef, Renderer2, Input, Output, HostBinding, HostListener, QueryList, Component, ChangeDetectionStrategy, ContentChildren, ViewChildren, ViewChild, forwardRef, ComponentFactoryResolver, ViewContainerRef, NgModule } from '@angular/core';
|
|
@@ -8,11 +8,6 @@ import { first } from 'rxjs/operators';
|
|
|
8
8
|
import { CommonModule } from '@angular/common';
|
|
9
9
|
|
|
10
10
|
// --- Decorator functions ---
|
|
11
|
-
const emptyArray = [];
|
|
12
|
-
const emptyTester = () => {
|
|
13
|
-
return Promise.resolve(false);
|
|
14
|
-
};
|
|
15
|
-
const ɵ0 = emptyTester;
|
|
16
11
|
function defaultSerializer(id, parent) {
|
|
17
12
|
const control = parent.get(id);
|
|
18
13
|
return !control ? null : control.value;
|
|
@@ -58,84 +53,53 @@ function FormFile(data) {
|
|
|
58
53
|
defineFormControl(target, propertyKey, createFormFile(propertyKey, data));
|
|
59
54
|
};
|
|
60
55
|
}
|
|
61
|
-
function FormFieldSet(data) {
|
|
62
|
-
return (target) => {
|
|
63
|
-
const sets = getFormFieldSets(target);
|
|
64
|
-
data.classes = data.classes || "";
|
|
65
|
-
sets[data.id] = data;
|
|
66
|
-
ReflectUtils.defineMetadata("dynamicFormFieldSets", sets, target);
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
56
|
function defineFormControl(target, propertyKey, control) {
|
|
70
57
|
ReflectUtils.defineMetadata("dynamicFormControl", control, target, propertyKey);
|
|
71
58
|
}
|
|
72
|
-
function getFormFieldSets(target) {
|
|
73
|
-
return ReflectUtils.getMetadata("dynamicFormFieldSets", target) || {};
|
|
74
|
-
}
|
|
75
59
|
function getFormControl(target, propertyKey) {
|
|
76
60
|
return ReflectUtils.getMetadata("dynamicFormControl", target, propertyKey);
|
|
77
61
|
}
|
|
78
62
|
function getFormSerializer(target, propertyKey) {
|
|
79
63
|
return ReflectUtils.getMetadata("dynamicFormSerializer", target, propertyKey);
|
|
80
64
|
}
|
|
81
|
-
function createFormControl(id, type,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
data.hidden = data.hidden || emptyTester;
|
|
89
|
-
data.validators = data.validators || emptyArray;
|
|
90
|
-
return {
|
|
91
|
-
id: id,
|
|
92
|
-
type: type,
|
|
93
|
-
data: data
|
|
94
|
-
};
|
|
65
|
+
function createFormControl(id, type, config) {
|
|
66
|
+
config = config || { id };
|
|
67
|
+
config.id = id;
|
|
68
|
+
config.label = ObjectUtils.isNullOrUndefined(config.label) ? id : config.label;
|
|
69
|
+
config.disabled = config.disabled || false;
|
|
70
|
+
config.hidden = config.hidden || false;
|
|
71
|
+
return { id, type, config };
|
|
95
72
|
}
|
|
96
|
-
function createFormInput(id,
|
|
97
|
-
const control = createFormControl(id, "input",
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
data.mask = data.mask || [/\w*/gi];
|
|
73
|
+
function createFormInput(id, config, type = "text") {
|
|
74
|
+
const control = createFormControl(id, "input", config);
|
|
75
|
+
config = control.config;
|
|
76
|
+
config.inputType = config.inputType || type;
|
|
77
|
+
config.placeholder = config.placeholder || (config.inputType == "mask" ? "_" : "");
|
|
78
|
+
config.step = config.step || 1;
|
|
79
|
+
config.mask = config.mask || [/\w*/gi];
|
|
104
80
|
return control;
|
|
105
81
|
}
|
|
106
82
|
function createFormSelect(id, data) {
|
|
107
83
|
const control = createFormControl(id, "select", data);
|
|
108
|
-
data = control.
|
|
84
|
+
data = control.config;
|
|
109
85
|
data.options = data.options || [];
|
|
110
|
-
data.type = data.type || "select";
|
|
111
|
-
const classType = data.type == "select" ? "select" : `select-${data.type}`;
|
|
112
|
-
data.classes = !data.classes ? `form-group-${classType}` : `${data.classes} form-group-${classType}`;
|
|
113
86
|
return control;
|
|
114
87
|
}
|
|
115
|
-
function createFormStatic(id,
|
|
116
|
-
|
|
117
|
-
data = control.data;
|
|
118
|
-
data.style = data.style || "table";
|
|
119
|
-
return control;
|
|
88
|
+
function createFormStatic(id, config) {
|
|
89
|
+
return createFormControl(id, "static", config);
|
|
120
90
|
}
|
|
121
91
|
function createFormModel(id, data) {
|
|
122
|
-
const control = createFormControl(id, "
|
|
123
|
-
data = control.
|
|
92
|
+
const control = createFormControl(id, "group", data);
|
|
93
|
+
data = control.config;
|
|
124
94
|
data.name = data.name || "";
|
|
125
95
|
return control;
|
|
126
96
|
}
|
|
127
97
|
function createFormFile(id, data) {
|
|
128
98
|
const control = createFormControl(id, "file", data);
|
|
129
|
-
data = control.
|
|
130
|
-
data.accept = data.accept || "
|
|
131
|
-
data.
|
|
132
|
-
data.
|
|
133
|
-
data.uploadUrl = ObjectUtils.isString(data.uploadUrl) ? data.uploadUrl : "assets";
|
|
134
|
-
data.createUploadData = data.createUploadData || ((file) => {
|
|
135
|
-
const form = new FormData();
|
|
136
|
-
form.append("file", file);
|
|
137
|
-
return form;
|
|
138
|
-
});
|
|
99
|
+
data = control.config;
|
|
100
|
+
data.accept = data.accept || ["jpg", "jpeg", "png"];
|
|
101
|
+
data.multiple = data.multiple || false;
|
|
102
|
+
data.url = ObjectUtils.isString(data.url) ? data.url : "assets";
|
|
139
103
|
return control;
|
|
140
104
|
}
|
|
141
105
|
|
|
@@ -221,6 +185,8 @@ class FormSelectSubject extends FormSubject {
|
|
|
221
185
|
val.then(options => {
|
|
222
186
|
var _a, _b;
|
|
223
187
|
this.next(options);
|
|
188
|
+
if (options.length == 0)
|
|
189
|
+
return;
|
|
224
190
|
const currentVal = control.value;
|
|
225
191
|
if (controlModel.multiple) {
|
|
226
192
|
const correctVal = (currentVal || []).filter(t => options.findIndex(o => o.value == t) >= 0);
|
|
@@ -424,50 +390,60 @@ class DynamicFormService extends DynamicFormService$1 {
|
|
|
424
390
|
}
|
|
425
391
|
});
|
|
426
392
|
}
|
|
427
|
-
getFormModelForSchema(name) {
|
|
393
|
+
getFormModelForSchema(name, customizeModel) {
|
|
428
394
|
return __awaiter(this, void 0, void 0, function* () {
|
|
429
395
|
this.api.cache = {};
|
|
430
396
|
this.schemas = yield this.openApi.getSchemas();
|
|
431
|
-
|
|
397
|
+
const customizeModels = (property, schema, modelType, config) => {
|
|
398
|
+
const model = new modelType(config);
|
|
399
|
+
if (!ObjectUtils.isFunction(customizeModel))
|
|
400
|
+
return [model];
|
|
401
|
+
const res = customizeModel(property, schema, model, config);
|
|
402
|
+
return Array.isArray(res) ? res : [res];
|
|
403
|
+
};
|
|
404
|
+
return this.getFormModelForSchemaDef(this.schemas[name], customizeModels);
|
|
432
405
|
});
|
|
433
406
|
}
|
|
434
|
-
getFormModelForSchemaDef(schema) {
|
|
407
|
+
getFormModelForSchemaDef(schema, customizeModels) {
|
|
435
408
|
if (!schema)
|
|
436
409
|
return [];
|
|
437
|
-
|
|
410
|
+
const keys = Object.keys(schema.properties || {});
|
|
411
|
+
const controls = [];
|
|
412
|
+
for (const p of keys) {
|
|
438
413
|
const property = schema.properties[p];
|
|
439
|
-
|
|
440
|
-
}
|
|
414
|
+
controls.push(...this.getFormControlModels(property, schema, customizeModels));
|
|
415
|
+
}
|
|
416
|
+
return controls.filter(t => null !== t);
|
|
441
417
|
}
|
|
442
|
-
|
|
418
|
+
getFormControlModels(property, schema, customizeModels) {
|
|
443
419
|
var _a, _b;
|
|
444
420
|
const $enum = ((_a = property.items) === null || _a === void 0 ? void 0 : _a.enum) || property.enum;
|
|
445
421
|
if (Array.isArray($enum) || isStringWithVal(property.optionsPath) || isStringWithVal(property.endpoint)) {
|
|
446
|
-
return
|
|
422
|
+
return customizeModels(property, schema, DynamicSelectModel, this.getFormSelectConfig(property, schema));
|
|
447
423
|
}
|
|
448
424
|
switch (property.type) {
|
|
449
425
|
case "string":
|
|
450
426
|
case "number":
|
|
451
427
|
case "integer":
|
|
452
|
-
return
|
|
428
|
+
return customizeModels(property, schema, DynamicInputModel, this.getFormInputConfig(property, schema));
|
|
453
429
|
case "textarea":
|
|
454
|
-
return
|
|
430
|
+
return customizeModels(property, schema, DynamicTextAreaModel, this.getFormTextareaConfig(property, schema));
|
|
455
431
|
case "boolean":
|
|
456
|
-
return
|
|
432
|
+
return customizeModels(property, schema, DynamicCheckboxModel, this.getFormCheckboxConfig(property, schema));
|
|
457
433
|
case "array":
|
|
458
434
|
if (((_b = property.items) === null || _b === void 0 ? void 0 : _b.$ref) || property.$ref) {
|
|
459
|
-
return
|
|
435
|
+
return customizeModels(property, schema, DynamicFormArrayModel, this.getFormArrayConfig(property, schema, customizeModels));
|
|
460
436
|
}
|
|
461
437
|
else {
|
|
462
|
-
return
|
|
438
|
+
return customizeModels(property, schema, DynamicInputModel, this.getFormInputConfig(property, schema));
|
|
463
439
|
}
|
|
464
440
|
case "file":
|
|
465
|
-
return
|
|
441
|
+
return customizeModels(property, schema, DynamicFileUploadModel, this.getFormUploadConfig(property, schema));
|
|
466
442
|
}
|
|
467
443
|
if (property.$ref) {
|
|
468
|
-
return
|
|
444
|
+
return customizeModels(property, schema, DynamicFormGroupModel, this.getFormGroupConfig(property, schema, customizeModels));
|
|
469
445
|
}
|
|
470
|
-
return
|
|
446
|
+
return [];
|
|
471
447
|
}
|
|
472
448
|
getFormControlConfig(property, schema) {
|
|
473
449
|
const validators = this.getValidators(property, schema);
|
|
@@ -485,16 +461,16 @@ class DynamicFormService extends DynamicFormService$1 {
|
|
|
485
461
|
additional: Object.assign({}, property)
|
|
486
462
|
};
|
|
487
463
|
}
|
|
488
|
-
getFormArrayConfig(property, schema) {
|
|
464
|
+
getFormArrayConfig(property, schema, customizeModels) {
|
|
489
465
|
var _a;
|
|
490
466
|
const ref = ((_a = property.items) === null || _a === void 0 ? void 0 : _a.$ref) || property.$ref || "";
|
|
491
467
|
const subSchema = this.schemas[ref.split("/").pop()];
|
|
492
|
-
return Object.assign(this.getFormControlConfig(property, schema), { groupFactory: () => this.getFormModelForSchemaDef(subSchema) });
|
|
468
|
+
return Object.assign(this.getFormControlConfig(property, schema), { groupFactory: () => this.getFormModelForSchemaDef(subSchema, customizeModels) });
|
|
493
469
|
}
|
|
494
|
-
getFormGroupConfig(property, schema) {
|
|
470
|
+
getFormGroupConfig(property, schema, customizeModels) {
|
|
495
471
|
const ref = property.$ref || "";
|
|
496
472
|
const subSchema = this.schemas[ref.split("/").pop()];
|
|
497
|
-
return Object.assign(this.getFormControlConfig(property, schema), { group: this.getFormModelForSchemaDef(subSchema) });
|
|
473
|
+
return Object.assign(this.getFormControlConfig(property, schema), { group: this.getFormModelForSchemaDef(subSchema, customizeModels) });
|
|
498
474
|
}
|
|
499
475
|
getFormInputConfig(property, schema) {
|
|
500
476
|
var _a;
|
|
@@ -561,7 +537,7 @@ class DynamicFormService extends DynamicFormService$1 {
|
|
|
561
537
|
if (Array.isArray($enum)) {
|
|
562
538
|
return new FormSelectSubject(() => {
|
|
563
539
|
const options = $enum.map(value => {
|
|
564
|
-
const label = property.translatable ? `${property.id}.${value}` : value
|
|
540
|
+
const label = property.translatable ? `${property.id}.${value}` : `${value}`;
|
|
565
541
|
return { value, label };
|
|
566
542
|
});
|
|
567
543
|
return this.translateOptions(options);
|
|
@@ -1105,7 +1081,7 @@ const directives = [
|
|
|
1105
1081
|
];
|
|
1106
1082
|
// --- Pipes ---
|
|
1107
1083
|
const pipes = [];
|
|
1108
|
-
const ɵ0
|
|
1084
|
+
const ɵ0 = validateJSON, ɵ1 = validateRequiredTranslation, ɵ2 = validateItemsMinLength, ɵ3 = validateItemsMaxLength, ɵ4 = validateItemsMinValue, ɵ5 = validateItemsMaxValue, ɵ6 = new Map([
|
|
1109
1085
|
["json", validateJSON],
|
|
1110
1086
|
["requiredTranslation", validateRequiredTranslation],
|
|
1111
1087
|
["phone", validatePhone],
|
|
@@ -1152,7 +1128,7 @@ NgxDynamicFormModule.decorators = [
|
|
|
1152
1128
|
entryComponents: components,
|
|
1153
1129
|
providers: [
|
|
1154
1130
|
...pipes,
|
|
1155
|
-
{ provide: NG_VALIDATORS, useValue: ɵ0
|
|
1131
|
+
{ provide: NG_VALIDATORS, useValue: ɵ0, multi: true },
|
|
1156
1132
|
{ provide: NG_VALIDATORS, useValue: ɵ1, multi: true },
|
|
1157
1133
|
{ provide: NG_VALIDATORS, useValue: ɵ2, multi: true },
|
|
1158
1134
|
{ provide: NG_VALIDATORS, useValue: ɵ3, multi: true },
|
|
@@ -1170,5 +1146,5 @@ NgxDynamicFormModule.decorators = [
|
|
|
1170
1146
|
* Generated bundle index. Do not edit.
|
|
1171
1147
|
*/
|
|
1172
1148
|
|
|
1173
|
-
export { AsyncSubmitDirective, DynamicBaseFormArrayComponent, DynamicBaseFormComponent, DynamicBaseFormControlContainerComponent, DynamicBaseFormGroupComponent, DynamicFormService,
|
|
1149
|
+
export { AsyncSubmitDirective, DynamicBaseFormArrayComponent, DynamicBaseFormComponent, DynamicBaseFormControlContainerComponent, DynamicBaseFormGroupComponent, DynamicFormService, FormFile, FormInput, FormModel, FormSelect, FormSelectSubject, FormSerializable, FormStatic, FormSubject, NgxDynamicFormModule, createFormControl, createFormInput, createFormModel, createFormSelect, createFormStatic, defaultSerializer, defineFormControl, getFormControl, getFormSerializer, validateItemsMaxLength, validateItemsMaxValue, validateItemsMinLength, validateItemsMinValue, validateJSON, validatePhone, validateRequiredTranslation, components as ɵa, directives as ɵb, pipes as ɵc };
|
|
1174
1150
|
//# sourceMappingURL=stemy-ngx-dynamic-form.js.map
|