monkey-front-components 0.0.113 → 0.0.117
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/monkey-front-components.umd.js +45 -14
- package/bundles/monkey-front-components.umd.js.map +1 -1
- package/esm2015/lib/components/base/base-dynamic-array.js +29 -3
- package/esm2015/lib/components/dynamic/dynamic-directive.js +15 -12
- package/esm2015/lib/components/dynamic/input/input.component.js +1 -1
- package/fesm2015/monkey-front-components.js +43 -14
- package/fesm2015/monkey-front-components.js.map +1 -1
- package/lib/components/base/base-dynamic-array.d.ts +1 -0
- package/lib/components/dynamic/dynamic-directive.d.ts +1 -0
- package/monkey-front-components-0.0.117.tgz +0 -0
- package/package.json +3 -3
- package/monkey-front-components-0.0.113.tgz +0 -0
|
@@ -40,6 +40,7 @@ export class BaseDynamicArray extends BaseComponent {
|
|
|
40
40
|
this._plusValidations[rowIndex] = {
|
|
41
41
|
[sourceField]: Object.assign(Object.assign({}, valSaved), { alwaysShow: show })
|
|
42
42
|
};
|
|
43
|
+
this.createOneControl(val.name, this.formValues.controls[rowIndex], show);
|
|
43
44
|
}
|
|
44
45
|
else {
|
|
45
46
|
this._plusValidations[rowIndex] = Object.assign({}, valSaved);
|
|
@@ -50,6 +51,31 @@ export class BaseDynamicArray extends BaseComponent {
|
|
|
50
51
|
const validated = validators[operator](data, value);
|
|
51
52
|
changeFields(validated);
|
|
52
53
|
}
|
|
54
|
+
createOneControl(fieldName, ctrl, create = true) {
|
|
55
|
+
const { fields } = this;
|
|
56
|
+
if (!fields)
|
|
57
|
+
return;
|
|
58
|
+
fields.forEach((field) => {
|
|
59
|
+
const { fieldType, validations, name, disabled } = field;
|
|
60
|
+
if (name !== fieldName)
|
|
61
|
+
return;
|
|
62
|
+
let { value } = field;
|
|
63
|
+
if (fieldType === 'button')
|
|
64
|
+
return;
|
|
65
|
+
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
66
|
+
value = '';
|
|
67
|
+
}
|
|
68
|
+
if (create && !ctrl.controls[name]) {
|
|
69
|
+
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
70
|
+
if (disabled || this.disabled)
|
|
71
|
+
control.disable();
|
|
72
|
+
ctrl.addControl(name, control);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
ctrl.removeControl(name);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
53
79
|
createControl() {
|
|
54
80
|
const { fields } = this;
|
|
55
81
|
if (!fields)
|
|
@@ -57,9 +83,9 @@ export class BaseDynamicArray extends BaseComponent {
|
|
|
57
83
|
// eslint-disable-next-line object-curly-newline
|
|
58
84
|
const group = this.fb.group({});
|
|
59
85
|
fields.forEach((field) => {
|
|
60
|
-
const { fieldType, validations, name, disabled } = field;
|
|
86
|
+
const { fieldType, validations, name, disabled, alwaysShow } = field;
|
|
61
87
|
let { value } = field;
|
|
62
|
-
if (fieldType === 'button')
|
|
88
|
+
if (fieldType === 'button' || !alwaysShow)
|
|
63
89
|
return;
|
|
64
90
|
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
65
91
|
value = '';
|
|
@@ -176,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
176
202
|
}], disabled: [{
|
|
177
203
|
type: Input
|
|
178
204
|
}] } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLGdCQUFpQixTQUFRLGFBQWE7SUF3QjFELFlBQW9CLEVBQWU7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBdkIxQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1Qyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUl0RSxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUkvQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBRWhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFJbkMsZ0RBQWdEO1FBQ2hELHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUVkLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFzSHBD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SUFDcEIsQ0FBQzs7NkdBMUxtQixnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO2tHQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFRSxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTW9ua2V5VXRpbHMgfSBmcm9tICdtb25rZXktc3R5bGUtZ3VpZGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTUVDWEZpZWxkQ29uZmlnLCBNRUNYRmllbGRDb25maWdWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IHZhbGlkYXRvcnMgfSBmcm9tICcuL2Jhc2UtdmFsaWRhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tiYXNlRHluYW1pY0FycmF5XSdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUR5bmFtaWNBcnJheSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG9uSGFuZGxlU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQElucHV0KCkgb25IYW5kbGVVcGRhdGVGb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpIG9uSGFuZGxlU3VibWl0Rm9ybVJlYWR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBJbnB1dCgpIHNlbGY6IGFueTtcblxuICBASW5wdXQoKSBmaWVsZHM6IE1FQ1hGaWVsZENvbmZpZ1tdID0gW107XG5cbiAgQElucHV0KCkgZGF0YTogYW55O1xuXG4gIEBJbnB1dCgpIHF0ZDogbnVtYmVyID0gMTtcblxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIF9mb3JtOiBGb3JtR3JvdXA7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9iamVjdC1jdXJseS1uZXdsaW5lXG4gIF9wbHVzVmFsaWRhdGlvbnMgPSBbXTtcblxuICBwcml2YXRlIGNoYW5nZXNVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihcbiAgICBkYXRhOiBhbnksXG4gICAgc291cmNlRmllbGQ6IHN0cmluZyxcbiAgICBzZXR0aW5nczogYW55LFxuICAgIHJvd0luZGV4OiBudW1iZXJcbiAgKSB7XG4gICAgY29uc3QgeyBvcGVyYXRvciwgdmFsdWUgfSA9IHNldHRpbmdzO1xuXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IHtcbiAgICAgIGU6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA9PT0gdmFsMjsgfSxcbiAgICAgIGx0OiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPCB2YWwyOyB9LFxuICAgICAgZ3Q6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA+IHZhbDI7IH1cbiAgICB9O1xuXG4gICAgY29uc3QgY2hhbmdlRmllbGRzID0gKHNob3c6IGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IHNhdmVkID0gWy4uLnRoaXMuZmllbGRzXTtcblxuICAgICAgc2F2ZWQubWFwKCh2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsU2F2ZWQgPSB7XG4gICAgICAgICAgLi4udmFsXG4gICAgICAgIH07XG4gICAgICAgIGlmICh2YWwubmFtZSA9PT0gc291cmNlRmllbGQpIHtcbiAgICAgICAgICB0aGlzLl9wbHVzVmFsaWRhdGlvbnNbcm93SW5kZXhdID0ge1xuICAgICAgICAgICAgW3NvdXJjZUZpZWxkXToge1xuICAgICAgICAgICAgICAuLi52YWxTYXZlZCxcbiAgICAgICAgICAgICAgYWx3YXlzU2hvdzogc2hvd1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcGx1c1ZhbGlkYXRpb25zW3Jvd0luZGV4XSA9IHtcbiAgICAgICAgICAgIC4uLnZhbFNhdmVkXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCB2YWxpZGF0ZWQgPSB2YWxpZGF0b3JzW29wZXJhdG9yXShkYXRhLCB2YWx1ZSk7XG4gICAgY2hhbmdlRmllbGRzKHZhbGlkYXRlZCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbnRyb2woKSB7XG4gICAgY29uc3QgeyBmaWVsZHMgfSA9IHRoaXM7XG4gICAgaWYgKCFmaWVsZHMpIHJldHVybiBudWxsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkOiBNRUNYRmllbGRDb25maWcpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGRUeXBlLCB2YWxpZGF0aW9ucywgbmFtZSwgZGlzYWJsZWQgfSA9IGZpZWxkO1xuICAgICAgbGV0IHsgdmFsdWUgfSA9IGZpZWxkO1xuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ2J1dHRvbicpIHJldHVybjtcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdyYWRpb2J1dHRvbicgfHwgZmllbGRUeXBlID09PSAnY2hlY2tib3gnIHx8IGZpZWxkVHlwZSA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2wodmFsdWUsIHRoaXMuYmluZFZhbGlkYXRpb25zKHZhbGlkYXRpb25zIHx8IFtdKSk7XG4gICAgICBpZiAoZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZCkgY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICBncm91cC5hZGRDb250cm9sKG5hbWUsIGNvbnRyb2wpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnM6IE1FQ1hGaWVsZENvbmZpZ1ZhbGlkYXRvcltdKSB7XG4gICAgaWYgKHZhbGlkYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHZhbGlkTGlzdCA9IFtdO1xuICAgICAgdmFsaWRhdGlvbnMuZm9yRWFjaCgodmFsaWQ6IE1FQ1hGaWVsZENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSB2YWxpZC5wYXJhbVxuICAgICAgICAgID8gdmFsaWRhdG9yc1t2YWxpZC5uYW1lXSh2YWxpZC5wYXJhbSlcbiAgICAgICAgICA6IHZhbGlkYXRvcnNbdmFsaWQubmFtZV07XG4gICAgICAgIHZhbGlkTGlzdC5wdXNoKHZhbGlkYXRlZCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBWYWxpZGF0b3JzLmNvbXBvc2UodmFsaWRMaXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGZpZWxkczogdGhpcy5mYi5hcnJheShbXSlcbiAgICB9KTtcblxuICAgIGZvcm0/LmNvbnRyb2xzLmZpZWxkcz8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy53YXRjaEZvckNoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaEZvckNoYW5nZXMoKSB7XG4gICAgY29uc3QgeyBmaWVsZHMsIGNoYW5nZXNVbnN1YnNjcmliZSB9ID0gdGhpcztcbiAgICBjaGFuZ2VzVW5zdWJzY3JpYmUubmV4dCgpO1xuXG4gICAgdGhpcy5mb3JtVmFsdWVzLmNvbnRyb2xzLm1hcCgoY29udHJvbDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWc6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICBjb25zdCB7IG5hbWUsIGFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbiB9ID0gZmllbGRDb25maWc7XG4gICAgICAgIGlmICghYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZmllbGQgfSA9IGFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbjtcbiAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgY29udHJvbC5jb250cm9sc1tmaWVsZF0/LnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKGNoYW5nZXNVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgdGhpcy5tYWtlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihcbiAgICAgICAgICAgICAgXyxcbiAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uLFxuICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtQmFzZSA9ICgpID0+IHtcbiAgICAvLyByZXR1cm4gdGhpcy5mYi5ncm91cCh0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29udHJvbCgpO1xuICB9O1xuXG4gIHB1YmxpYyBnZXQgZm9ybVZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybSA/ICh0aGlzLl9mb3JtLmdldCgnZmllbGRzJykgYXMgRm9ybUFycmF5KSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZmlsbFZhbHVlcygpIHtcbiAgICBjb25zdCB7IGRhdGEsIHF0ZCB9ID0gdGhpcztcbiAgICBpZiAoKCF0aGlzLl9mb3JtKSAmJiBxdGQpIHJldHVybjtcbiAgICBpZiAocXRkID4gMCkge1xuICAgICAgQXJyYXk8YW55PihxdGQpXG4gICAgICAgIC5maWxsKG51bGwpXG4gICAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuY3JlYXRlQ29udHJvbCgpO1xuICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbaW5kZXhdKSB7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVkRGF0YSA9IGRhdGFbaW5kZXhdO1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoaGFuZGxlZERhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoTW9ua2V5VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh2YWx1ZSkgJiYgZm9ybS5jb250cm9sc1trZXldKSB7XG4gICAgICAgICAgICAgICAgZm9ybS5jb250cm9sc1trZXldLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlcy5wdXNoKGZvcm0pO1xuXG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2Zvcm0gPSB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIHRoaXMuZmlsbFZhbHVlcygpO1xuXG4gICAgdGhpcy5vbkhhbmRsZVVwZGF0ZUZvcm0uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmlsbFZhbHVlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLl9mb3JtKSB7XG4gICAgICB0aGlzLl9mb3JtID0gdGhpcy5idWlsZEZvcm0oKTtcbiAgICB9XG4gICAgdGhpcy5maWxsVmFsdWVzKCk7XG4gIH1cbn1cbiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLGdCQUFpQixTQUFRLGFBQWE7SUF3QjFELFlBQW9CLEVBQWU7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBdkIxQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1Qyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUl0RSxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUkvQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBRWhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFJbkMsZ0RBQWdEO1FBQ2hELHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUVkLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUE2SXBD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Q0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7OzZHQWpObUIsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjtrR0FFVSxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRUUsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnbW9ua2V5LXN0eWxlLWd1aWRlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZywgTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyB2YWxpZGF0b3JzIH0gZnJvbSAnLi9iYXNlLXZhbGlkYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYmFzZUR5bmFtaWNBcnJheV0nXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEeW5hbWljQXJyYXkgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvbkhhbmRsZVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBJbnB1dCgpIG9uSGFuZGxlVXBkYXRlRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKSBvbkhhbmRsZVN1Ym1pdEZvcm1SZWFkeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASW5wdXQoKSBzZWxmOiBhbnk7XG5cbiAgQElucHV0KCkgZmllbGRzOiBNRUNYRmllbGRDb25maWdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcblxuICBASW5wdXQoKSBxdGQ6IG51bWJlciA9IDE7XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBfZm9ybTogRm9ybUdyb3VwO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxuICBfcGx1c1ZhbGlkYXRpb25zID0gW107XG5cbiAgcHJpdmF0ZSBjaGFuZ2VzVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXG4gICAgZGF0YTogYW55LFxuICAgIHNvdXJjZUZpZWxkOiBzdHJpbmcsXG4gICAgc2V0dGluZ3M6IGFueSxcbiAgICByb3dJbmRleDogbnVtYmVyXG4gICkge1xuICAgIGNvbnN0IHsgb3BlcmF0b3IsIHZhbHVlIH0gPSBzZXR0aW5ncztcblxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB7XG4gICAgICBlOiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPT09IHZhbDI7IH0sXG4gICAgICBsdDogKHZhbDE6IGFueSwgdmFsMjogc3RyaW5nKSA9PiB7IHJldHVybiB2YWwxIDwgdmFsMjsgfSxcbiAgICAgIGd0OiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPiB2YWwyOyB9XG4gICAgfTtcblxuICAgIGNvbnN0IGNoYW5nZUZpZWxkcyA9IChzaG93OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBzYXZlZCA9IFsuLi50aGlzLmZpZWxkc107XG5cbiAgICAgIHNhdmVkLm1hcCgodmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFNhdmVkID0ge1xuICAgICAgICAgIC4uLnZhbFxuICAgICAgICB9O1xuICAgICAgICBpZiAodmFsLm5hbWUgPT09IHNvdXJjZUZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5fcGx1c1ZhbGlkYXRpb25zW3Jvd0luZGV4XSA9IHtcbiAgICAgICAgICAgIFtzb3VyY2VGaWVsZF06IHtcbiAgICAgICAgICAgICAgLi4udmFsU2F2ZWQsXG4gICAgICAgICAgICAgIGFsd2F5c1Nob3c6IHNob3dcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuY3JlYXRlT25lQ29udHJvbCh2YWwubmFtZSwgdGhpcy5mb3JtVmFsdWVzLmNvbnRyb2xzW3Jvd0luZGV4XSwgc2hvdyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcGx1c1ZhbGlkYXRpb25zW3Jvd0luZGV4XSA9IHtcbiAgICAgICAgICAgIC4uLnZhbFNhdmVkXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCB2YWxpZGF0ZWQgPSB2YWxpZGF0b3JzW29wZXJhdG9yXShkYXRhLCB2YWx1ZSk7XG4gICAgY2hhbmdlRmllbGRzKHZhbGlkYXRlZCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9uZUNvbnRyb2woZmllbGROYW1lOiBzdHJpbmcsIGN0cmw6IGFueSwgY3JlYXRlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHsgZmllbGRzIH0gPSB0aGlzO1xuICAgIGlmICghZmllbGRzKSByZXR1cm47XG5cbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZFR5cGUsIHZhbGlkYXRpb25zLCBuYW1lLCBkaXNhYmxlZCB9ID0gZmllbGQ7XG4gICAgICBpZiAobmFtZSAhPT0gZmllbGROYW1lKSByZXR1cm47XG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XG4gICAgICBpZiAoZmllbGRUeXBlID09PSAnYnV0dG9uJykgcmV0dXJuO1xuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgICAgaWYgKGNyZWF0ZSAmJiAhY3RybC5jb250cm9sc1tuYW1lXSkge1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mYi5jb250cm9sKHZhbHVlLCB0aGlzLmJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9ucyB8fCBbXSkpO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZCkgY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIGN0cmwuYWRkQ29udHJvbChuYW1lLCBjb250cm9sKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN0cmwucmVtb3ZlQ29udHJvbChuYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbCgpIHtcbiAgICBjb25zdCB7IGZpZWxkcyB9ID0gdGhpcztcbiAgICBpZiAoIWZpZWxkcykgcmV0dXJuIG51bGw7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9iamVjdC1jdXJseS1uZXdsaW5lXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZFR5cGUsIHZhbGlkYXRpb25zLCBuYW1lLCBkaXNhYmxlZCwgYWx3YXlzU2hvdyB9ID0gZmllbGQ7XG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XG4gICAgICBpZiAoZmllbGRUeXBlID09PSAnYnV0dG9uJyB8fCAhYWx3YXlzU2hvdykgcmV0dXJuO1xuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh2YWx1ZSwgdGhpcy5iaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnMgfHwgW10pKTtcbiAgICAgIGlmIChkaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKSBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIGdyb3VwLmFkZENvbnRyb2wobmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9uczogTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yW10pIHtcbiAgICBpZiAodmFsaWRhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdmFsaWRMaXN0ID0gW107XG4gICAgICB2YWxpZGF0aW9ucy5mb3JFYWNoKCh2YWxpZDogTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZCA9IHZhbGlkLnBhcmFtXG4gICAgICAgICAgPyB2YWxpZGF0b3JzW3ZhbGlkLm5hbWVdKHZhbGlkLnBhcmFtKVxuICAgICAgICAgIDogdmFsaWRhdG9yc1t2YWxpZC5uYW1lXTtcbiAgICAgICAgdmFsaWRMaXN0LnB1c2godmFsaWRhdGVkKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZExpc3QpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRGb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZmllbGRzOiB0aGlzLmZiLmFycmF5KFtdKVxuICAgIH0pO1xuXG4gICAgZm9ybT8uY29udHJvbHMuZmllbGRzPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLndhdGNoRm9yQ2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBwcml2YXRlIHdhdGNoRm9yQ2hhbmdlcygpIHtcbiAgICBjb25zdCB7IGZpZWxkcywgY2hhbmdlc1Vuc3Vic2NyaWJlIH0gPSB0aGlzO1xuICAgIGNoYW5nZXNVbnN1YnNjcmliZS5uZXh0KCk7XG5cbiAgICB0aGlzLmZvcm1WYWx1ZXMuY29udHJvbHMubWFwKChjb250cm9sOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZENvbmZpZzogTUVDWEZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uIH0gPSBmaWVsZENvbmZpZztcbiAgICAgICAgaWYgKCFhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24pIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBmaWVsZCB9ID0gYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICBjb250cm9sLmNvbnRyb2xzW2ZpZWxkXT8udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwoY2hhbmdlc1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1ha2VJbnRlcm5hbFBsdXNWYWxpZGF0aW9uKFxuICAgICAgICAgICAgICBfLFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICBhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sXG4gICAgICAgICAgICAgIGluZGV4XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZvcm1CYXNlID0gKCkgPT4ge1xuICAgIC8vIHJldHVybiB0aGlzLmZiLmdyb3VwKHRoaXMuY3JlYXRlQ29udHJvbCgpKTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb250cm9sKCk7XG4gIH07XG5cbiAgcHVibGljIGdldCBmb3JtVmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9mb3JtID8gKHRoaXMuX2Zvcm0uZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBmaWxsVmFsdWVzKCkge1xuICAgIGNvbnN0IHsgZGF0YSwgcXRkIH0gPSB0aGlzO1xuICAgIGlmICgoIXRoaXMuX2Zvcm0pICYmIHF0ZCkgcmV0dXJuO1xuICAgIGlmIChxdGQgPiAwKSB7XG4gICAgICBBcnJheTxhbnk+KHF0ZClcbiAgICAgICAgLmZpbGwobnVsbClcbiAgICAgICAgLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5jcmVhdGVDb250cm9sKCk7XG4gICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVtpbmRleF0pIHtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZWREYXRhID0gZGF0YVtpbmRleF07XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVkRGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChNb25rZXlVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHZhbHVlKSAmJiBmb3JtLmNvbnRyb2xzW2tleV0pIHtcbiAgICAgICAgICAgICAgICBmb3JtLmNvbnRyb2xzW2tleV0uc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWVzLnB1c2goZm9ybSk7XG5cbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fZm9ybSA9IHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgdGhpcy5maWxsVmFsdWVzKCk7XG5cbiAgICB0aGlzLm9uSGFuZGxlVXBkYXRlRm9ybS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWxsVmFsdWVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMuX2Zvcm0pIHtcbiAgICAgIHRoaXMuX2Zvcm0gPSB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIH1cbiAgICB0aGlzLmZpbGxWYWx1ZXMoKTtcbiAgfVxufVxuIl19
|
|
@@ -20,6 +20,19 @@ export class MECXDynamicDirective {
|
|
|
20
20
|
this.container = container;
|
|
21
21
|
// not to do
|
|
22
22
|
}
|
|
23
|
+
handleInternalPlusValidation() {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
if (!((_a = this.field) === null || _a === void 0 ? void 0 : _a.alwaysShowPlusValidation))
|
|
26
|
+
return false;
|
|
27
|
+
const { operator, value, field } = (_b = this.field) === null || _b === void 0 ? void 0 : _b.alwaysShowPlusValidation;
|
|
28
|
+
const validators = {
|
|
29
|
+
e: (val1, val2) => { return val1 === val2; },
|
|
30
|
+
lt: (val1, val2) => { return val1 < val2; },
|
|
31
|
+
gt: (val1, val2) => { return val1 > val2; }
|
|
32
|
+
};
|
|
33
|
+
const data = this.form.controls[field].value;
|
|
34
|
+
return validators[operator](data, value);
|
|
35
|
+
}
|
|
23
36
|
buildComponent() {
|
|
24
37
|
var _a;
|
|
25
38
|
if ((_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance)
|
|
@@ -33,17 +46,7 @@ export class MECXDynamicDirective {
|
|
|
33
46
|
this.componentRef.instance.self = this.self;
|
|
34
47
|
}
|
|
35
48
|
ngOnInit() {
|
|
36
|
-
|
|
37
|
-
console.log('======!!');
|
|
38
|
-
console.log(this.field.alwaysShow);
|
|
39
|
-
console.log((_a = this.field) === null || _a === void 0 ? void 0 : _a.name);
|
|
40
|
-
console.log(this.form.controls[(_b = this.field) === null || _b === void 0 ? void 0 : _b.name].value);
|
|
41
|
-
console.log(!!this.form.controls[(_c = this.field) === null || _c === void 0 ? void 0 : _c.name].value);
|
|
42
|
-
console.log(!this.form.controls[(_d = this.field) === null || _d === void 0 ? void 0 : _d.name].value);
|
|
43
|
-
console.log('======!!22');
|
|
44
|
-
console.log(this.plusValidations[this.field.name].alwaysShow);
|
|
45
|
-
console.log('======!!');
|
|
46
|
-
if (!this.field.alwaysShow && !this.form.controls[(_e = this.field) === null || _e === void 0 ? void 0 : _e.name].value)
|
|
49
|
+
if (!this.field.alwaysShow && !this.handleInternalPlusValidation())
|
|
47
50
|
return;
|
|
48
51
|
this.buildComponent();
|
|
49
52
|
}
|
|
@@ -85,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
85
88
|
}], plusValidations: [{
|
|
86
89
|
type: Input
|
|
87
90
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy9keW5hbWljLWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVuRSxNQUFNLGVBQWUsR0FBRztJQUN0QixLQUFLLEVBQUUseUJBQXlCO0lBQ2hDLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsTUFBTSxFQUFFLDBCQUEwQjtJQUNsQyxlQUFlLEVBQUUsZ0NBQWdDO0lBQ2pELGFBQWEsRUFBRSw4QkFBOEI7SUFDN0MsTUFBTSxFQUFFLDBCQUEwQjtDQUNuQyxDQUFDO0FBS0YsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixZQUFvQixRQUFrQyxFQUFVLFNBQTJCO1FBQXZFLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDekYsWUFBWTtJQUNkLENBQUM7SUFFTyw0QkFBNEI7O1FBQ2xDLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsd0JBQXdCLENBQUE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4RCxN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SUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN2RDtTQUNGO1FBQ0QsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxRQUFRLENBQUE7WUFBRSxPQUFPO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQzNELENBQUM7SUFDSixDQUFDOztpSEE5RFUsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7OElBRVUsS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTUVDWER5bmFtaWNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbic7XG5pbXBvcnQgeyBNRUNYRHluYW1pY0ZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtdXBsb2FkJztcbmltcG9ydCB7IE1FQ1hEeW5hbWljSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0JztcbmltcG9ydCB7IE1FQ1hEeW5hbWljUmFkaW9Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvJztcbmltcG9ydCB7IE1FQ1hEeW5hbWljU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QnO1xuaW1wb3J0IHsgTUVDWER5bmFtaWNTZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1zZWFyY2gnO1xuXG5jb25zdCBjb21wb25lbnRNYXBwZXIgPSB7XG4gIGlucHV0OiBNRUNYRHluYW1pY0lucHV0Q29tcG9uZW50LFxuICByYWRpb2J1dHRvbjogTUVDWER5bmFtaWNSYWRpb0NvbXBvbmVudCxcbiAgc2VsZWN0OiBNRUNYRHluYW1pY1NlbGVjdENvbXBvbmVudCxcbiAgJ3NlbGVjdC1zZWFyY2gnOiBNRUNYRHluYW1pY1NlbGVjdFNlYXJjaENvbXBvbmVudCxcbiAgJ2ZpbGUtdXBsb2FkJzogTUVDWER5bmFtaWNGaWxlVXBsb2FkQ29tcG9uZW50LFxuICBidXR0b246IE1FQ1hEeW5hbWljQnV0dG9uQ29tcG9uZW50XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbTUVDWER5bmFtaWNdJ1xufSlcbmV4cG9ydCBjbGFzcyBNRUNYRHluYW1pY0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZmllbGQ6IE1FQ1hGaWVsZENvbmZpZztcblxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KCkgZm9ybUVycm9yczogYW55O1xuXG4gIEBJbnB1dCgpIHNlbGY6IGFueTtcblxuICBASW5wdXQoKSBwbHVzVmFsaWRhdGlvbnM6IGFueTtcblxuICBjb21wb25lbnRSZWY6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHByaXZhdGUgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUludGVybmFsUGx1c1ZhbGlkYXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmZpZWxkPy5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24pIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCB7IG9wZXJhdG9yLCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMuZmllbGQ/LmFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbjtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0ge1xuICAgICAgZTogKHZhbDE6IGFueSwgdmFsMjogc3RyaW5nKSA9PiB7IHJldHVybiB2YWwxID09PSB2YWwyOyB9LFxuICAgICAgbHQ6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA8IHZhbDI7IH0sXG4gICAgICBndDogKHZhbDE6IGFueSwgdmFsMjogc3RyaW5nKSA9PiB7IHJldHVybiB2YWwxID4gdmFsMjsgfVxuICAgIH07XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZF0udmFsdWU7XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yc1tvcGVyYXRvcl0oZGF0YSwgdmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbXBvbmVudCgpIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlKSByZXR1cm47XG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50TWFwcGVyW3RoaXMuZmllbGQuZmllbGRUeXBlXSk7XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuX2ZpZWxkID0gdGhpcy5maWVsZDtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5fZm9ybSA9IHRoaXMuZm9ybTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JqZWN0LWN1cmx5LW5ld2xpbmVcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5fZm9ybUVycm9ycyA9IHRoaXMuZm9ybUVycm9ycyB8fCB7fTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxmID0gdGhpcy5zZWxmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmZpZWxkLmFsd2F5c1Nob3cgJiYgIXRoaXMuaGFuZGxlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbigpKSByZXR1cm47XG4gICAgdGhpcy5idWlsZENvbXBvbmVudCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMucGx1c1ZhbGlkYXRpb25zICYmIHRoaXMucGx1c1ZhbGlkYXRpb25zW3RoaXMuZmllbGQubmFtZV0pIHtcbiAgICAgIGlmICghdGhpcy5maWVsZC5hbHdheXNTaG93ICYmIHRoaXMucGx1c1ZhbGlkYXRpb25zW3RoaXMuZmllbGQubmFtZV0uYWx3YXlzU2hvdykge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50KCk7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmZpZWxkLm5hbWVdLnNldFZhbHVlKG51bGwpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGlmICh0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmZpZWxkLm5hbWVdLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5maWVsZC5uYW1lXS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UpIHJldHVybjtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5fZm9ybUVycm9ycyA9IHRoaXMuZm9ybUVycm9ycyB8fCB7XG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -35,7 +35,7 @@ export class MECXDynamicInputComponent {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
MECXDynamicInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MECXDynamicInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
-
MECXDynamicInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: MECXDynamicInputComponent, selector: "mecx-dynamic-input", inputs: { _field: "_field", _form: "_form", _formErrors: "_formErrors", self: "self" }, host: { properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<monkey-input\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\n [maxDateToday]=\"_field?.maxDateToday\">\n</monkey-input>", components: [{ type: i1.MonkeyInputComponent, selector: "monkey-input", inputs: ["name", "helperMessage", "placeholder", "maxLength", "maxDateToday", "value", "type", "label", "icon", "infoMessage", "errorMessage", "mask", "prefix", "onlyNumber", "onlyAlphaNumeric", "upperCase", "lowerCase", "capitalize", "currency"], outputs: ["onChange"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "translate": i3.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
38
|
+
MECXDynamicInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: MECXDynamicInputComponent, selector: "mecx-dynamic-input", inputs: { _field: "_field", _form: "_form", _formErrors: "_formErrors", self: "self" }, host: { properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<monkey-input\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\n [maxDateToday]=\"_field?.maxDateToday\">\n</monkey-input>", components: [{ type: i1.MonkeyInputComponent, selector: "monkey-input", inputs: ["name", "helperMessage", "placeholder", "maxLength", "maxDateToday", "value", "type", "label", "icon", "infoMessage", "errorMessage", "mask", "prefix", "onlyNumber", "onlyAlphaNumeric", "upperCase", "lowerCase", "capitalize", "currency", "percent"], outputs: ["onChange"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "translate": i3.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MECXDynamicInputComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
41
|
args: [{
|
|
@@ -391,6 +391,7 @@ class BaseDynamicArray extends BaseComponent {
|
|
|
391
391
|
this._plusValidations[rowIndex] = {
|
|
392
392
|
[sourceField]: Object.assign(Object.assign({}, valSaved), { alwaysShow: show })
|
|
393
393
|
};
|
|
394
|
+
this.createOneControl(val.name, this.formValues.controls[rowIndex], show);
|
|
394
395
|
}
|
|
395
396
|
else {
|
|
396
397
|
this._plusValidations[rowIndex] = Object.assign({}, valSaved);
|
|
@@ -401,6 +402,31 @@ class BaseDynamicArray extends BaseComponent {
|
|
|
401
402
|
const validated = validators[operator](data, value);
|
|
402
403
|
changeFields(validated);
|
|
403
404
|
}
|
|
405
|
+
createOneControl(fieldName, ctrl, create = true) {
|
|
406
|
+
const { fields } = this;
|
|
407
|
+
if (!fields)
|
|
408
|
+
return;
|
|
409
|
+
fields.forEach((field) => {
|
|
410
|
+
const { fieldType, validations, name, disabled } = field;
|
|
411
|
+
if (name !== fieldName)
|
|
412
|
+
return;
|
|
413
|
+
let { value } = field;
|
|
414
|
+
if (fieldType === 'button')
|
|
415
|
+
return;
|
|
416
|
+
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
417
|
+
value = '';
|
|
418
|
+
}
|
|
419
|
+
if (create && !ctrl.controls[name]) {
|
|
420
|
+
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
421
|
+
if (disabled || this.disabled)
|
|
422
|
+
control.disable();
|
|
423
|
+
ctrl.addControl(name, control);
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
ctrl.removeControl(name);
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
}
|
|
404
430
|
createControl() {
|
|
405
431
|
const { fields } = this;
|
|
406
432
|
if (!fields)
|
|
@@ -408,9 +434,9 @@ class BaseDynamicArray extends BaseComponent {
|
|
|
408
434
|
// eslint-disable-next-line object-curly-newline
|
|
409
435
|
const group = this.fb.group({});
|
|
410
436
|
fields.forEach((field) => {
|
|
411
|
-
const { fieldType, validations, name, disabled } = field;
|
|
437
|
+
const { fieldType, validations, name, disabled, alwaysShow } = field;
|
|
412
438
|
let { value } = field;
|
|
413
|
-
if (fieldType === 'button')
|
|
439
|
+
if (fieldType === 'button' || !alwaysShow)
|
|
414
440
|
return;
|
|
415
441
|
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
416
442
|
value = '';
|
|
@@ -661,7 +687,7 @@ class MECXDynamicInputComponent {
|
|
|
661
687
|
}
|
|
662
688
|
}
|
|
663
689
|
MECXDynamicInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MECXDynamicInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
664
|
-
MECXDynamicInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: MECXDynamicInputComponent, selector: "mecx-dynamic-input", inputs: { _field: "_field", _form: "_form", _formErrors: "_formErrors", self: "self" }, host: { properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<monkey-input\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\n [maxDateToday]=\"_field?.maxDateToday\">\n</monkey-input>", components: [{ type: i1$1.MonkeyInputComponent, selector: "monkey-input", inputs: ["name", "helperMessage", "placeholder", "maxLength", "maxDateToday", "value", "type", "label", "icon", "infoMessage", "errorMessage", "mask", "prefix", "onlyNumber", "onlyAlphaNumeric", "upperCase", "lowerCase", "capitalize", "currency"], outputs: ["onChange"] }], directives: [{ type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
690
|
+
MECXDynamicInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: MECXDynamicInputComponent, selector: "mecx-dynamic-input", inputs: { _field: "_field", _form: "_form", _formErrors: "_formErrors", self: "self" }, host: { properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<monkey-input\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\n [maxDateToday]=\"_field?.maxDateToday\">\n</monkey-input>", components: [{ type: i1$1.MonkeyInputComponent, selector: "monkey-input", inputs: ["name", "helperMessage", "placeholder", "maxLength", "maxDateToday", "value", "type", "label", "icon", "infoMessage", "errorMessage", "mask", "prefix", "onlyNumber", "onlyAlphaNumeric", "upperCase", "lowerCase", "capitalize", "currency", "percent"], outputs: ["onChange"] }], directives: [{ type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
665
691
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MECXDynamicInputComponent, decorators: [{
|
|
666
692
|
type: Component,
|
|
667
693
|
args: [{
|
|
@@ -860,6 +886,19 @@ class MECXDynamicDirective {
|
|
|
860
886
|
this.container = container;
|
|
861
887
|
// not to do
|
|
862
888
|
}
|
|
889
|
+
handleInternalPlusValidation() {
|
|
890
|
+
var _a, _b;
|
|
891
|
+
if (!((_a = this.field) === null || _a === void 0 ? void 0 : _a.alwaysShowPlusValidation))
|
|
892
|
+
return false;
|
|
893
|
+
const { operator, value, field } = (_b = this.field) === null || _b === void 0 ? void 0 : _b.alwaysShowPlusValidation;
|
|
894
|
+
const validators = {
|
|
895
|
+
e: (val1, val2) => { return val1 === val2; },
|
|
896
|
+
lt: (val1, val2) => { return val1 < val2; },
|
|
897
|
+
gt: (val1, val2) => { return val1 > val2; }
|
|
898
|
+
};
|
|
899
|
+
const data = this.form.controls[field].value;
|
|
900
|
+
return validators[operator](data, value);
|
|
901
|
+
}
|
|
863
902
|
buildComponent() {
|
|
864
903
|
var _a;
|
|
865
904
|
if ((_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance)
|
|
@@ -873,17 +912,7 @@ class MECXDynamicDirective {
|
|
|
873
912
|
this.componentRef.instance.self = this.self;
|
|
874
913
|
}
|
|
875
914
|
ngOnInit() {
|
|
876
|
-
|
|
877
|
-
console.log('======!!');
|
|
878
|
-
console.log(this.field.alwaysShow);
|
|
879
|
-
console.log((_a = this.field) === null || _a === void 0 ? void 0 : _a.name);
|
|
880
|
-
console.log(this.form.controls[(_b = this.field) === null || _b === void 0 ? void 0 : _b.name].value);
|
|
881
|
-
console.log(!!this.form.controls[(_c = this.field) === null || _c === void 0 ? void 0 : _c.name].value);
|
|
882
|
-
console.log(!this.form.controls[(_d = this.field) === null || _d === void 0 ? void 0 : _d.name].value);
|
|
883
|
-
console.log('======!!22');
|
|
884
|
-
console.log(this.plusValidations[this.field.name].alwaysShow);
|
|
885
|
-
console.log('======!!');
|
|
886
|
-
if (!this.field.alwaysShow && !this.form.controls[(_e = this.field) === null || _e === void 0 ? void 0 : _e.name].value)
|
|
915
|
+
if (!this.field.alwaysShow && !this.handleInternalPlusValidation())
|
|
887
916
|
return;
|
|
888
917
|
this.buildComponent();
|
|
889
918
|
}
|