monkey-front-components 0.0.179 → 0.0.183
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/base/base-component.mjs +291 -0
- package/esm2020/lib/components/base/base-dynamic-array.mjs +221 -0
- package/esm2020/lib/components/base/base-dynamic.mjs +99 -0
- package/{esm2015/lib/components/base/base-validators.js → esm2020/lib/components/base/base-validators.mjs} +1 -1
- package/{esm2015/lib/components/base/index.js → esm2020/lib/components/base/index.mjs} +0 -0
- package/esm2020/lib/components/dynamic/button/button.component.mjs +52 -0
- package/{esm2015/lib/components/dynamic/button/index.js → esm2020/lib/components/dynamic/button/index.mjs} +0 -0
- package/esm2020/lib/components/dynamic/dynamic-directive.mjs +95 -0
- package/{esm2015/lib/components/dynamic/dynamic.module.js → esm2020/lib/components/dynamic/dynamic.module.mjs} +5 -5
- package/esm2020/lib/components/dynamic/file-upload/file-upload.component.mjs +52 -0
- package/{esm2015/lib/components/dynamic/file-upload/index.js → esm2020/lib/components/dynamic/file-upload/index.mjs} +0 -0
- package/esm2020/lib/components/dynamic/form/dynamic-form-array.component.mjs +72 -0
- package/esm2020/lib/components/dynamic/form/dynamic-form.component.mjs +46 -0
- package/{esm2015/lib/components/dynamic/form/index.js → esm2020/lib/components/dynamic/form/index.mjs} +0 -0
- package/{esm2015/lib/components/dynamic/index.js → esm2020/lib/components/dynamic/index.mjs} +0 -0
- package/{esm2015/lib/components/dynamic/input/index.js → esm2020/lib/components/dynamic/input/index.mjs} +0 -0
- package/esm2020/lib/components/dynamic/input/input.component.mjs +65 -0
- package/{esm2015/lib/components/dynamic/input-phone/index.js → esm2020/lib/components/dynamic/input-phone/index.mjs} +0 -0
- package/esm2020/lib/components/dynamic/input-phone/input-phone.component.mjs +65 -0
- package/{esm2015/lib/components/dynamic/radio/index.js → esm2020/lib/components/dynamic/radio/index.mjs} +0 -0
- package/esm2020/lib/components/dynamic/radio/radio.component.mjs +33 -0
- package/{esm2015/lib/components/dynamic/select/index.js → esm2020/lib/components/dynamic/select/index.mjs} +0 -0
- package/esm2020/lib/components/dynamic/select/select.component.mjs +80 -0
- package/{esm2015/lib/components/dynamic/select-search/index.js → esm2020/lib/components/dynamic/select-search/index.mjs} +0 -0
- package/esm2020/lib/components/dynamic/select-search/select-search.component.mjs +80 -0
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +2 -1
- package/esm2020/lib/components/shared/index.mjs +3 -0
- package/esm2020/lib/components/shared/password-strength/index.mjs +3 -0
- package/esm2020/lib/components/shared/password-strength/password-strength.component.mjs +83 -0
- package/esm2020/lib/components/shared/password-strength/password-strength.mjs +2 -0
- package/esm2020/lib/components/shared/password-strength/password-strength.module.mjs +50 -0
- package/esm2020/lib/components/shared/progress-bar/index.mjs +4 -0
- package/esm2020/lib/components/shared/progress-bar/progress-bar.component.mjs +28 -0
- package/esm2020/lib/components/shared/progress-bar/progress-bar.module.mjs +18 -0
- package/esm2020/lib/components/shared/progress-bar/progress-bar.service.mjs +49 -0
- package/{esm2015/lib/interfaces/field-config.js → esm2020/lib/interfaces/field-config.mjs} +0 -0
- package/{esm2015/lib/interfaces/index.js → esm2020/lib/interfaces/index.mjs} +0 -0
- package/{esm2015/monkey-front-components.js → esm2020/monkey-front-components.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/monkey-front-components.mjs +1487 -0
- package/fesm2015/monkey-front-components.mjs.map +1 -0
- package/fesm2020/monkey-front-components.mjs +1471 -0
- package/fesm2020/monkey-front-components.mjs.map +1 -0
- package/lib/components/base/base-component.d.ts +1 -1
- package/lib/components/base/base-dynamic-array.d.ts +1 -1
- package/lib/components/base/base-dynamic.d.ts +1 -1
- package/lib/components/base/base-validators.d.ts +1 -14
- package/lib/components/dynamic/button/button.component.d.ts +2 -2
- package/lib/components/dynamic/dynamic-directive.d.ts +2 -2
- package/lib/components/dynamic/input/input.component.d.ts +3 -3
- package/lib/components/dynamic/input-phone/input-phone.component.d.ts +3 -3
- package/lib/components/dynamic/radio/radio.component.d.ts +2 -2
- package/lib/components/dynamic/select/select.component.d.ts +2 -2
- package/lib/components/dynamic/select-search/select-search.component.d.ts +2 -2
- package/lib/components/index.d.ts +1 -0
- package/lib/components/shared/index.d.ts +2 -0
- package/lib/components/shared/password-strength/index.d.ts +2 -0
- package/lib/components/shared/password-strength/password-strength.component.d.ts +22 -0
- package/lib/components/shared/password-strength/password-strength.d.ts +5 -0
- package/lib/components/shared/password-strength/password-strength.module.d.ts +12 -0
- package/lib/components/shared/progress-bar/index.d.ts +3 -0
- package/lib/components/shared/progress-bar/progress-bar.component.d.ts +12 -0
- package/lib/components/shared/progress-bar/progress-bar.module.d.ts +8 -0
- package/lib/components/shared/progress-bar/progress-bar.service.d.ts +14 -0
- package/monkey-front-components-0.0.183.tgz +0 -0
- package/package.json +27 -13
- package/bundles/monkey-front-components.umd.js +0 -1729
- package/bundles/monkey-front-components.umd.js.map +0 -1
- package/esm2015/lib/components/base/base-component.js +0 -288
- package/esm2015/lib/components/base/base-dynamic-array.js +0 -215
- package/esm2015/lib/components/base/base-dynamic.js +0 -98
- package/esm2015/lib/components/dynamic/button/button.component.js +0 -57
- package/esm2015/lib/components/dynamic/dynamic-directive.js +0 -95
- package/esm2015/lib/components/dynamic/file-upload/file-upload.component.js +0 -57
- package/esm2015/lib/components/dynamic/form/dynamic-form-array.component.js +0 -77
- package/esm2015/lib/components/dynamic/form/dynamic-form.component.js +0 -51
- package/esm2015/lib/components/dynamic/input/input.component.js +0 -66
- package/esm2015/lib/components/dynamic/input-phone/input-phone.component.js +0 -66
- package/esm2015/lib/components/dynamic/radio/radio.component.js +0 -36
- package/esm2015/lib/components/dynamic/select/select.component.js +0 -81
- package/esm2015/lib/components/dynamic/select-search/select-search.component.js +0 -81
- package/fesm2015/monkey-front-components.js +0 -1290
- package/fesm2015/monkey-front-components.js.map +0 -1
- package/monkey-front-components-0.0.179.tgz +0 -0
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import { MonkeyUtils } from 'monkey-style-guide';
|
|
4
|
-
import { Subject } from 'rxjs';
|
|
5
|
-
import { takeUntil } from 'rxjs/operators';
|
|
6
|
-
import { BaseComponent } from './base-component';
|
|
7
|
-
import { validators } from './base-validators';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/forms";
|
|
10
|
-
export class BaseDynamicArray extends BaseComponent {
|
|
11
|
-
constructor(fb) {
|
|
12
|
-
super();
|
|
13
|
-
this.fb = fb;
|
|
14
|
-
this.onHandleSubmit = new EventEmitter();
|
|
15
|
-
this.onHandleUpdateForm = new EventEmitter();
|
|
16
|
-
this.onHandleSubmitFormReady = new EventEmitter();
|
|
17
|
-
this.fields = [];
|
|
18
|
-
this.qtd = 1;
|
|
19
|
-
this.disabled = false;
|
|
20
|
-
// eslint-disable-next-line object-curly-newline
|
|
21
|
-
this._plusValidations = [];
|
|
22
|
-
this.changesUnsubscribe = new Subject();
|
|
23
|
-
this.formBase = () => {
|
|
24
|
-
// return this.fb.group(this.createControl());
|
|
25
|
-
return this.createControl();
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
handleInternalPlusValidation(mainField, data) {
|
|
29
|
-
const { operator, field, value } = mainField;
|
|
30
|
-
const validators = {
|
|
31
|
-
e: (val1, val2) => { return val1 === val2; },
|
|
32
|
-
lt: (val1, val2) => { return val1 < val2; },
|
|
33
|
-
gt: (val1, val2) => { return val1 > val2; }
|
|
34
|
-
};
|
|
35
|
-
return validators[operator]((data === null || data === void 0 ? void 0 : data[field]) || data, value);
|
|
36
|
-
}
|
|
37
|
-
makeInternalPlusValidation(data, sourceField, settings, rowIndex) {
|
|
38
|
-
const changeFields = (show) => {
|
|
39
|
-
const saved = [...this.fields];
|
|
40
|
-
saved.map((val) => {
|
|
41
|
-
const valSaved = Object.assign({}, val);
|
|
42
|
-
if (val.name === sourceField) {
|
|
43
|
-
this._plusValidations[rowIndex] = {
|
|
44
|
-
[sourceField]: Object.assign(Object.assign({}, valSaved), { alwaysShow: show })
|
|
45
|
-
};
|
|
46
|
-
this.createOneControl(val.name, this.formValues.controls[rowIndex], show);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
this._plusValidations[rowIndex] = Object.assign({}, valSaved);
|
|
50
|
-
}
|
|
51
|
-
return null;
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
|
-
const validated = this.handleInternalPlusValidation(settings, data);
|
|
55
|
-
changeFields(validated);
|
|
56
|
-
}
|
|
57
|
-
createOneControl(fieldName, ctrl, create = true) {
|
|
58
|
-
const { fields } = this;
|
|
59
|
-
if (!fields)
|
|
60
|
-
return;
|
|
61
|
-
fields.forEach((field) => {
|
|
62
|
-
const { fieldType, validations, name, disabled } = field;
|
|
63
|
-
if (name !== fieldName)
|
|
64
|
-
return;
|
|
65
|
-
let { value } = field;
|
|
66
|
-
if (fieldType === 'button')
|
|
67
|
-
return;
|
|
68
|
-
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
69
|
-
value = '';
|
|
70
|
-
}
|
|
71
|
-
if (create) {
|
|
72
|
-
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
73
|
-
if (disabled || this.disabled)
|
|
74
|
-
control.disable();
|
|
75
|
-
ctrl.addControl(name, control);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
ctrl.removeControl(name);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
createControl(data) {
|
|
83
|
-
const { fields } = this;
|
|
84
|
-
if (!fields)
|
|
85
|
-
return null;
|
|
86
|
-
// eslint-disable-next-line object-curly-newline
|
|
87
|
-
const group = this.fb.group({});
|
|
88
|
-
fields.forEach((field) => {
|
|
89
|
-
const { fieldType, validations, name, disabled, alwaysShow } = field;
|
|
90
|
-
let { value } = field;
|
|
91
|
-
if (field.alwaysShowPlusValidation) {
|
|
92
|
-
if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data))
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
else if (!alwaysShow)
|
|
96
|
-
return;
|
|
97
|
-
if (fieldType === 'button')
|
|
98
|
-
return;
|
|
99
|
-
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
100
|
-
value = '';
|
|
101
|
-
}
|
|
102
|
-
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
103
|
-
if (disabled || this.disabled)
|
|
104
|
-
control.disable();
|
|
105
|
-
group.addControl(name, control);
|
|
106
|
-
});
|
|
107
|
-
return group;
|
|
108
|
-
}
|
|
109
|
-
bindValidations(validations) {
|
|
110
|
-
if (validations.length > 0) {
|
|
111
|
-
const validList = [];
|
|
112
|
-
validations.forEach((valid) => {
|
|
113
|
-
const validated = valid.param
|
|
114
|
-
? validators[valid.name](valid.param)
|
|
115
|
-
: validators[valid.name];
|
|
116
|
-
validList.push(validated);
|
|
117
|
-
});
|
|
118
|
-
return Validators.compose(validList);
|
|
119
|
-
}
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
buildForm() {
|
|
123
|
-
var _a;
|
|
124
|
-
const form = this.fb.group({
|
|
125
|
-
fields: this.fb.array([])
|
|
126
|
-
});
|
|
127
|
-
(_a = form === null || form === void 0 ? void 0 : form.controls.fields) === null || _a === void 0 ? void 0 : _a.valueChanges.subscribe((_) => {
|
|
128
|
-
this.watchForChanges();
|
|
129
|
-
});
|
|
130
|
-
return form;
|
|
131
|
-
}
|
|
132
|
-
watchForChanges() {
|
|
133
|
-
const { fields, changesUnsubscribe } = this;
|
|
134
|
-
changesUnsubscribe.next();
|
|
135
|
-
this.formValues.controls.map((control, index) => {
|
|
136
|
-
fields.forEach((fieldConfig) => {
|
|
137
|
-
var _a;
|
|
138
|
-
const { name, alwaysShowPlusValidation } = fieldConfig;
|
|
139
|
-
if (!alwaysShowPlusValidation)
|
|
140
|
-
return;
|
|
141
|
-
const { field } = alwaysShowPlusValidation;
|
|
142
|
-
if (field) {
|
|
143
|
-
(_a = control.controls[field]) === null || _a === void 0 ? void 0 : _a.valueChanges.pipe(takeUntil(changesUnsubscribe)).subscribe((_) => {
|
|
144
|
-
this.makeInternalPlusValidation(_, name, alwaysShowPlusValidation, index);
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
return null;
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
get formValues() {
|
|
152
|
-
return this._form ? this._form.get('fields') : null;
|
|
153
|
-
}
|
|
154
|
-
fillValues() {
|
|
155
|
-
const { data, qtd } = this;
|
|
156
|
-
if ((!this._form) && qtd)
|
|
157
|
-
return;
|
|
158
|
-
if (qtd > 0) {
|
|
159
|
-
Array(qtd)
|
|
160
|
-
.fill(null)
|
|
161
|
-
.map((_, index) => {
|
|
162
|
-
let form = this.createControl();
|
|
163
|
-
if (data && data[index]) {
|
|
164
|
-
form = this.createControl(data[index]);
|
|
165
|
-
const handledData = data[index];
|
|
166
|
-
Object.entries(handledData).forEach(([key, value]) => {
|
|
167
|
-
if (MonkeyUtils.persistNullEmptyUndefined(value) && form.controls[key]) {
|
|
168
|
-
form.controls[key].setValue(value);
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
this.formValues.push(form);
|
|
173
|
-
return null;
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
ngOnInit() {
|
|
178
|
-
this._form = this.buildForm();
|
|
179
|
-
this.fillValues();
|
|
180
|
-
this.onHandleUpdateForm.subscribe(() => {
|
|
181
|
-
this.fillValues();
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
ngOnChanges() {
|
|
185
|
-
if (!this._form) {
|
|
186
|
-
this._form = this.buildForm();
|
|
187
|
-
}
|
|
188
|
-
this.fillValues();
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
BaseDynamicArray.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: BaseDynamicArray, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
|
|
192
|
-
BaseDynamicArray.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.14", type: BaseDynamicArray, selector: "[baseDynamicArray]", inputs: { onHandleSubmit: "onHandleSubmit", onHandleUpdateForm: "onHandleUpdateForm", self: "self", fields: "fields", data: "data", qtd: "qtd", disabled: "disabled" }, outputs: { onHandleSubmitFormReady: "onHandleSubmitFormReady" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
|
193
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: BaseDynamicArray, decorators: [{
|
|
194
|
-
type: Directive,
|
|
195
|
-
args: [{
|
|
196
|
-
selector: '[baseDynamicArray]'
|
|
197
|
-
}]
|
|
198
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { onHandleSubmit: [{
|
|
199
|
-
type: Input
|
|
200
|
-
}], onHandleUpdateForm: [{
|
|
201
|
-
type: Input
|
|
202
|
-
}], onHandleSubmitFormReady: [{
|
|
203
|
-
type: Output
|
|
204
|
-
}], self: [{
|
|
205
|
-
type: Input
|
|
206
|
-
}], fields: [{
|
|
207
|
-
type: Input
|
|
208
|
-
}], data: [{
|
|
209
|
-
type: Input
|
|
210
|
-
}], qtd: [{
|
|
211
|
-
type: Input
|
|
212
|
-
}], disabled: [{
|
|
213
|
-
type: Input
|
|
214
|
-
}] } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLGdCQUFpQixTQUFRLGFBQWE7SUF3QjFELFlBQW9CLEVBQWU7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBdkIxQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1Qyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUl0RSxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUkvQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBRWhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFJbkMsZ0RBQWdEO1FBQ2hELHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUVkLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFzSnBD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QUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFM0IsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7OzhHQTNObUIsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjtrR0FFVSxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRUUsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnbW9ua2V5LXN0eWxlLWd1aWRlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZywgTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyB2YWxpZGF0b3JzIH0gZnJvbSAnLi9iYXNlLXZhbGlkYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYmFzZUR5bmFtaWNBcnJheV0nXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEeW5hbWljQXJyYXkgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvbkhhbmRsZVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBJbnB1dCgpIG9uSGFuZGxlVXBkYXRlRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKSBvbkhhbmRsZVN1Ym1pdEZvcm1SZWFkeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASW5wdXQoKSBzZWxmOiBhbnk7XG5cbiAgQElucHV0KCkgZmllbGRzOiBNRUNYRmllbGRDb25maWdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcblxuICBASW5wdXQoKSBxdGQ6IG51bWJlciA9IDE7XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBfZm9ybTogRm9ybUdyb3VwO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxuICBfcGx1c1ZhbGlkYXRpb25zID0gW107XG5cbiAgcHJpdmF0ZSBjaGFuZ2VzVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihcbiAgICBtYWluRmllbGQ6IGFueSxcbiAgICBkYXRhOiBhbnlcbiAgKSB7XG4gICAgY29uc3QgeyBvcGVyYXRvciwgZmllbGQsIHZhbHVlIH0gPSBtYWluRmllbGQ7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IHtcbiAgICAgIGU6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA9PT0gdmFsMjsgfSxcbiAgICAgIGx0OiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPCB2YWwyOyB9LFxuICAgICAgZ3Q6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA+IHZhbDI7IH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHZhbGlkYXRvcnNbb3BlcmF0b3JdKGRhdGE/LltmaWVsZF0gfHwgZGF0YSwgdmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihcbiAgICBkYXRhOiBhbnksXG4gICAgc291cmNlRmllbGQ6IHN0cmluZyxcbiAgICBzZXR0aW5nczogYW55LFxuICAgIHJvd0luZGV4OiBudW1iZXJcbiAgKSB7XG4gICAgY29uc3QgY2hhbmdlRmllbGRzID0gKHNob3c6IGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IHNhdmVkID0gWy4uLnRoaXMuZmllbGRzXTtcblxuICAgICAgc2F2ZWQubWFwKCh2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsU2F2ZWQgPSB7XG4gICAgICAgICAgLi4udmFsXG4gICAgICAgIH07XG4gICAgICAgIGlmICh2YWwubmFtZSA9PT0gc291cmNlRmllbGQpIHtcbiAgICAgICAgICB0aGlzLl9wbHVzVmFsaWRhdGlvbnNbcm93SW5kZXhdID0ge1xuICAgICAgICAgICAgW3NvdXJjZUZpZWxkXToge1xuICAgICAgICAgICAgICAuLi52YWxTYXZlZCxcbiAgICAgICAgICAgICAgYWx3YXlzU2hvdzogc2hvd1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5jcmVhdGVPbmVDb250cm9sKHZhbC5uYW1lLCB0aGlzLmZvcm1WYWx1ZXMuY29udHJvbHNbcm93SW5kZXhdLCBzaG93KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9wbHVzVmFsaWRhdGlvbnNbcm93SW5kZXhdID0ge1xuICAgICAgICAgICAgLi4udmFsU2F2ZWRcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHZhbGlkYXRlZCA9IHRoaXMuaGFuZGxlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihzZXR0aW5ncywgZGF0YSk7XG4gICAgY2hhbmdlRmllbGRzKHZhbGlkYXRlZCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9uZUNvbnRyb2woZmllbGROYW1lOiBzdHJpbmcsIGN0cmw6IGFueSwgY3JlYXRlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHsgZmllbGRzIH0gPSB0aGlzO1xuICAgIGlmICghZmllbGRzKSByZXR1cm47XG5cbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZFR5cGUsIHZhbGlkYXRpb25zLCBuYW1lLCBkaXNhYmxlZCB9ID0gZmllbGQ7XG4gICAgICBpZiAobmFtZSAhPT0gZmllbGROYW1lKSByZXR1cm47XG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XG4gICAgICBpZiAoZmllbGRUeXBlID09PSAnYnV0dG9uJykgcmV0dXJuO1xuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgICAgaWYgKGNyZWF0ZSkge1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mYi5jb250cm9sKHZhbHVlLCB0aGlzLmJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9ucyB8fCBbXSkpO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZCkgY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIGN0cmwuYWRkQ29udHJvbChuYW1lLCBjb250cm9sKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN0cmwucmVtb3ZlQ29udHJvbChuYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbChkYXRhPzogYW55KSB7XG4gICAgY29uc3QgeyBmaWVsZHMgfSA9IHRoaXM7XG4gICAgaWYgKCFmaWVsZHMpIHJldHVybiBudWxsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkOiBNRUNYRmllbGRDb25maWcpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGRUeXBlLCB2YWxpZGF0aW9ucywgbmFtZSwgZGlzYWJsZWQsIGFsd2F5c1Nob3cgfSA9IGZpZWxkO1xuICAgICAgbGV0IHsgdmFsdWUgfSA9IGZpZWxkO1xuICAgICAgaWYgKGZpZWxkLmFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMuaGFuZGxlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihmaWVsZC5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sIGRhdGEpKSByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKCFhbHdheXNTaG93KSByZXR1cm47XG4gICAgICBpZiAoZmllbGRUeXBlID09PSAnYnV0dG9uJykgcmV0dXJuO1xuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh2YWx1ZSwgdGhpcy5iaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnMgfHwgW10pKTtcbiAgICAgIGlmIChkaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKSBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIGdyb3VwLmFkZENvbnRyb2wobmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9uczogTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yW10pIHtcbiAgICBpZiAodmFsaWRhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdmFsaWRMaXN0ID0gW107XG4gICAgICB2YWxpZGF0aW9ucy5mb3JFYWNoKCh2YWxpZDogTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZCA9IHZhbGlkLnBhcmFtXG4gICAgICAgICAgPyB2YWxpZGF0b3JzW3ZhbGlkLm5hbWVdKHZhbGlkLnBhcmFtKVxuICAgICAgICAgIDogdmFsaWRhdG9yc1t2YWxpZC5uYW1lXTtcbiAgICAgICAgdmFsaWRMaXN0LnB1c2godmFsaWRhdGVkKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZExpc3QpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRGb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZmllbGRzOiB0aGlzLmZiLmFycmF5KFtdKVxuICAgIH0pO1xuXG4gICAgZm9ybT8uY29udHJvbHMuZmllbGRzPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLndhdGNoRm9yQ2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBwcml2YXRlIHdhdGNoRm9yQ2hhbmdlcygpIHtcbiAgICBjb25zdCB7IGZpZWxkcywgY2hhbmdlc1Vuc3Vic2NyaWJlIH0gPSB0aGlzO1xuICAgIGNoYW5nZXNVbnN1YnNjcmliZS5uZXh0KCk7XG5cbiAgICB0aGlzLmZvcm1WYWx1ZXMuY29udHJvbHMubWFwKChjb250cm9sOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZENvbmZpZzogTUVDWEZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uIH0gPSBmaWVsZENvbmZpZztcbiAgICAgICAgaWYgKCFhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24pIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBmaWVsZCB9ID0gYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICBjb250cm9sLmNvbnRyb2xzW2ZpZWxkXT8udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwoY2hhbmdlc1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1ha2VJbnRlcm5hbFBsdXNWYWxpZGF0aW9uKFxuICAgICAgICAgICAgICBfLFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICBhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sXG4gICAgICAgICAgICAgIGluZGV4XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZvcm1CYXNlID0gKCkgPT4ge1xuICAgIC8vIHJldHVybiB0aGlzLmZiLmdyb3VwKHRoaXMuY3JlYXRlQ29udHJvbCgpKTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb250cm9sKCk7XG4gIH07XG5cbiAgcHVibGljIGdldCBmb3JtVmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9mb3JtID8gKHRoaXMuX2Zvcm0uZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBmaWxsVmFsdWVzKCkge1xuICAgIGNvbnN0IHsgZGF0YSwgcXRkIH0gPSB0aGlzO1xuICAgIGlmICgoIXRoaXMuX2Zvcm0pICYmIHF0ZCkgcmV0dXJuO1xuICAgIGlmIChxdGQgPiAwKSB7XG4gICAgICBBcnJheTxhbnk+KHF0ZClcbiAgICAgICAgLmZpbGwobnVsbClcbiAgICAgICAgLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICBsZXQgZm9ybSA9IHRoaXMuY3JlYXRlQ29udHJvbCgpO1xuICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbaW5kZXhdKSB7XG4gICAgICAgICAgICBmb3JtID0gdGhpcy5jcmVhdGVDb250cm9sKGRhdGFbaW5kZXhdKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZWREYXRhID0gZGF0YVtpbmRleF07XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVkRGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChNb25rZXlVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHZhbHVlKSAmJiBmb3JtLmNvbnRyb2xzW2tleV0pIHtcbiAgICAgICAgICAgICAgICBmb3JtLmNvbnRyb2xzW2tleV0uc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWVzLnB1c2goZm9ybSk7XG5cbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fZm9ybSA9IHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgdGhpcy5maWxsVmFsdWVzKCk7XG5cbiAgICB0aGlzLm9uSGFuZGxlVXBkYXRlRm9ybS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWxsVmFsdWVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMuX2Zvcm0pIHtcbiAgICAgIHRoaXMuX2Zvcm0gPSB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIH1cbiAgICB0aGlzLmZpbGxWYWx1ZXMoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import { MonkeyUtils } from 'monkey-style-guide';
|
|
4
|
-
import { BaseComponent } from './base-component';
|
|
5
|
-
import { validators } from './base-validators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/forms";
|
|
8
|
-
export class BaseDynamic extends BaseComponent {
|
|
9
|
-
constructor(fb) {
|
|
10
|
-
super();
|
|
11
|
-
this.fb = fb;
|
|
12
|
-
this.onHandleSubmit = new EventEmitter();
|
|
13
|
-
this.onHandleUpdateForm = new EventEmitter();
|
|
14
|
-
this.onHandleSubmitFormReady = new EventEmitter();
|
|
15
|
-
this.fields = [];
|
|
16
|
-
this.disabled = false;
|
|
17
|
-
}
|
|
18
|
-
createControl() {
|
|
19
|
-
const { fields } = this;
|
|
20
|
-
if (!fields)
|
|
21
|
-
return null;
|
|
22
|
-
// eslint-disable-next-line object-curly-newline
|
|
23
|
-
const group = this.fb.group({});
|
|
24
|
-
fields.forEach((field) => {
|
|
25
|
-
const { fieldType, validations, name, disabled } = field;
|
|
26
|
-
let { value } = field;
|
|
27
|
-
if (fieldType === 'button')
|
|
28
|
-
return;
|
|
29
|
-
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
30
|
-
value = '';
|
|
31
|
-
}
|
|
32
|
-
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
33
|
-
if (disabled || this.disabled)
|
|
34
|
-
control.disable();
|
|
35
|
-
group.addControl(name, control);
|
|
36
|
-
});
|
|
37
|
-
return group;
|
|
38
|
-
}
|
|
39
|
-
bindValidations(validations) {
|
|
40
|
-
if (validations.length > 0) {
|
|
41
|
-
const validList = [];
|
|
42
|
-
validations.forEach((valid) => {
|
|
43
|
-
const validated = valid.param
|
|
44
|
-
? validators[valid.name](valid.param)
|
|
45
|
-
: validators[valid.name];
|
|
46
|
-
validList.push(validated);
|
|
47
|
-
});
|
|
48
|
-
return Validators.compose(validList);
|
|
49
|
-
}
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
fillValues() {
|
|
53
|
-
const { data } = this;
|
|
54
|
-
if (!data || !this._form)
|
|
55
|
-
return;
|
|
56
|
-
Object.entries(data).forEach(([key, value]) => {
|
|
57
|
-
if (MonkeyUtils.persistNullEmptyUndefined(value) && this._form.controls[key]) {
|
|
58
|
-
this._form.controls[key].setValue(value);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
ngOnInit() {
|
|
63
|
-
this._form = this.createControl();
|
|
64
|
-
this.fillValues();
|
|
65
|
-
this.onHandleUpdateForm.subscribe(() => {
|
|
66
|
-
this.fillValues();
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
ngOnChanges() {
|
|
70
|
-
if (!this._form) {
|
|
71
|
-
this._form = this.createControl();
|
|
72
|
-
}
|
|
73
|
-
this.fillValues();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
BaseDynamic.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: BaseDynamic, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
|
|
77
|
-
BaseDynamic.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.14", type: BaseDynamic, selector: "[baseDynamic]", inputs: { onHandleSubmit: "onHandleSubmit", onHandleUpdateForm: "onHandleUpdateForm", self: "self", fields: "fields", data: "data", disabled: "disabled" }, outputs: { onHandleSubmitFormReady: "onHandleSubmitFormReady" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: BaseDynamic, decorators: [{
|
|
79
|
-
type: Directive,
|
|
80
|
-
args: [{
|
|
81
|
-
selector: '[baseDynamic]'
|
|
82
|
-
}]
|
|
83
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { onHandleSubmit: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], onHandleUpdateForm: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], onHandleSubmitFormReady: [{
|
|
88
|
-
type: Output
|
|
89
|
-
}], self: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], fields: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], data: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], disabled: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLFdBQVksU0FBUSxhQUFhO0lBaUJyRCxZQUFvQixFQUFlO1FBQ2pDLEtBQUssRUFBRSxDQUFDO1FBRFUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQWhCMUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXpDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFNUMsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFJdEUsV0FBTSxHQUFzQixFQUFFLENBQUM7UUFJL0IsYUFBUSxHQUFZLEtBQUssQ0FBQztJQU1uQyxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekIsZ0RBQWdEO1FBQ2hELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMs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Q1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2tHQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFRSxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTW9ua2V5VXRpbHMgfSBmcm9tICdtb25rZXktc3R5bGUtZ3VpZGUnO1xuaW1wb3J0IHsgTUVDWEZpZWxkQ29uZmlnLCBNRUNYRmllbGRDb25maWdWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IHZhbGlkYXRvcnMgfSBmcm9tICcuL2Jhc2UtdmFsaWRhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tiYXNlRHluYW1pY10nXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEeW5hbWljIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgb25IYW5kbGVTdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASW5wdXQoKSBvbkhhbmRsZVVwZGF0ZUZvcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCkgb25IYW5kbGVTdWJtaXRGb3JtUmVhZHk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQElucHV0KCkgc2VsZjogYW55O1xuXG4gIEBJbnB1dCgpIGZpZWxkczogTUVDWEZpZWxkQ29uZmlnW10gPSBbXTtcblxuICBASW5wdXQoKSBkYXRhOiBhbnk7XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBfZm9ybTogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbCgpIHtcbiAgICBjb25zdCB7IGZpZWxkcyB9ID0gdGhpcztcbiAgICBpZiAoIWZpZWxkcykgcmV0dXJuIG51bGw7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9iamVjdC1jdXJseS1uZXdsaW5lXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZFR5cGUsIHZhbGlkYXRpb25zLCBuYW1lLCBkaXNhYmxlZCB9ID0gZmllbGQ7XG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XG4gICAgICBpZiAoZmllbGRUeXBlID09PSAnYnV0dG9uJykgcmV0dXJuO1xuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh2YWx1ZSwgdGhpcy5iaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnMgfHwgW10pKTtcbiAgICAgIGlmIChkaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKSBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIGdyb3VwLmFkZENvbnRyb2wobmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnM6IE1FQ1hGaWVsZENvbmZpZ1ZhbGlkYXRvcltdKSB7XG4gICAgaWYgKHZhbGlkYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHZhbGlkTGlzdCA9IFtdO1xuICAgICAgdmFsaWRhdGlvbnMuZm9yRWFjaCgodmFsaWQ6IE1FQ1hGaWVsZENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSB2YWxpZC5wYXJhbVxuICAgICAgICAgID8gdmFsaWRhdG9yc1t2YWxpZC5uYW1lXSh2YWxpZC5wYXJhbSlcbiAgICAgICAgICA6IHZhbGlkYXRvcnNbdmFsaWQubmFtZV07XG4gICAgICAgIHZhbGlkTGlzdC5wdXNoKHZhbGlkYXRlZCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBWYWxpZGF0b3JzLmNvbXBvc2UodmFsaWRMaXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZmlsbFZhbHVlcygpIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IHRoaXM7XG4gICAgaWYgKCFkYXRhIHx8ICF0aGlzLl9mb3JtKSByZXR1cm47XG4gICAgT2JqZWN0LmVudHJpZXMoZGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAoTW9ua2V5VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh2YWx1ZSkgJiYgdGhpcy5fZm9ybS5jb250cm9sc1trZXldKSB7XG4gICAgICAgIHRoaXMuX2Zvcm0uY29udHJvbHNba2V5XS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9mb3JtID0gdGhpcy5jcmVhdGVDb250cm9sKCk7XG4gICAgdGhpcy5maWxsVmFsdWVzKCk7XG5cbiAgICB0aGlzLm9uSGFuZGxlVXBkYXRlRm9ybS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWxsVmFsdWVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMuX2Zvcm0pIHtcbiAgICAgIHRoaXMuX2Zvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woKTtcbiAgICB9XG4gICAgdGhpcy5maWxsVmFsdWVzKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "monkey-style-guide";
|
|
4
|
-
import * as i2 from "@ngx-translate/core";
|
|
5
|
-
export class MECXDynamicButtonComponent {
|
|
6
|
-
constructor(cdr) {
|
|
7
|
-
this.cdr = cdr;
|
|
8
|
-
// eslint-disable-next-line object-curly-newline
|
|
9
|
-
this._formErrors = {};
|
|
10
|
-
// not to do
|
|
11
|
-
}
|
|
12
|
-
get className() {
|
|
13
|
-
var _a, _b;
|
|
14
|
-
return (_b = (_a = this._field) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.class;
|
|
15
|
-
}
|
|
16
|
-
ngOnChanges() {
|
|
17
|
-
this.cdr.detectChanges();
|
|
18
|
-
}
|
|
19
|
-
onClick() {
|
|
20
|
-
var _a;
|
|
21
|
-
const { _form, _field, self } = this;
|
|
22
|
-
if (_form.disabled)
|
|
23
|
-
return;
|
|
24
|
-
const { name, value } = _field;
|
|
25
|
-
const func = (_a = _field === null || _field === void 0 ? void 0 : _field.functions) === null || _a === void 0 ? void 0 : _a.onClick;
|
|
26
|
-
if (func) {
|
|
27
|
-
self[func]({
|
|
28
|
-
name,
|
|
29
|
-
value,
|
|
30
|
-
form: _form
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
MECXDynamicButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MECXDynamicButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
MECXDynamicButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MECXDynamicButtonComponent, selector: "mecx-dynamic-button", inputs: { _field: "_field", _form: "_form", _formErrors: "_formErrors", self: "self" }, host: { properties: { "class": "this.className" } }, usesOnChanges: true, ngImport: i0, template: "<monkey-button [icon]=\"_field?.icon\" [type]=\"_field?.type\" [color]=\"_field?.color\"\n (click)=\"onClick()\">\n {{ _field?.label | translate }}\n</monkey-button>", styles: ["mecx-dynamic-button monkey-button button{height:40px}\n"], components: [{ type: i1.MonkeyButtonComponent, selector: "monkey-button", inputs: ["label", "icon", "iconPosition", "type", "color", "disabled", "size"] }], pipes: { "translate": i2.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MECXDynamicButtonComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{
|
|
40
|
-
selector: 'mecx-dynamic-button',
|
|
41
|
-
templateUrl: './button.component.html',
|
|
42
|
-
styleUrls: ['./button.component.scss'],
|
|
43
|
-
encapsulation: ViewEncapsulation.None
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _field: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], _form: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], _formErrors: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], self: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], className: [{
|
|
54
|
-
type: HostBinding,
|
|
55
|
-
args: ['class']
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBVS9HLE1BQU0sT0FBTywwQkFBMEI7SUFVckMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFMMUMsZ0RBQWdEO1FBQ3ZDLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztRQUtyQyxZQUFZO0lBQ2QsQ0FBQztJQUVELElBQ0ksU0FBUzs7UUFDWCxPQUFPLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLDBDQUFFLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87O1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksS0FBSyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxHQUFHLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFNBQVMsMENBQUUsT0FBTyxDQUFDO1FBQ3hDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNULElBQUk7Z0JBQ0osS0FBSztnQkFDTCxJQUFJLEVBQUUsS0FBSzthQUNaLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7d0hBbkNVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLDZOQ1Z2Qyx5S0FHZ0I7NEZET0gsMEJBQTBCO2tCQU50QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7d0dBRVUsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFPRixTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUVDWEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21lY3gtZHluYW1pYy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTUVDWER5bmFtaWNCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBfZmllbGQ6IE1FQ1hGaWVsZENvbmZpZztcblxuICBASW5wdXQoKSBfZm9ybTogRm9ybUdyb3VwO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxuICBASW5wdXQoKSBfZm9ybUVycm9yczogYW55IHwgYW55W10gPSB7fTtcblxuICBASW5wdXQoKSBzZWxmOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGQ/LnN0eWxlPy5jbGFzcztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgY29uc3QgeyBfZm9ybSwgX2ZpZWxkLCBzZWxmIH0gPSB0aGlzO1xuICAgIGlmIChfZm9ybS5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUgfSA9IF9maWVsZDtcbiAgICBjb25zdCBmdW5jID0gX2ZpZWxkPy5mdW5jdGlvbnM/Lm9uQ2xpY2s7XG4gICAgaWYgKGZ1bmMpIHtcbiAgICAgIHNlbGZbZnVuY10oe1xuICAgICAgICBuYW1lLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgZm9ybTogX2Zvcm1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG1vbmtleS1idXR0b24gW2ljb25dPVwiX2ZpZWxkPy5pY29uXCIgW3R5cGVdPVwiX2ZpZWxkPy50eXBlXCIgW2NvbG9yXT1cIl9maWVsZD8uY29sb3JcIlxuICAoY2xpY2spPVwib25DbGljaygpXCI+XG4gIHt7IF9maWVsZD8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbjwvbW9ua2V5LWJ1dHRvbj4iXX0=
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import { MECXDynamicButtonComponent } from './button';
|
|
3
|
-
import { MECXDynamicFileUploadComponent } from './file-upload';
|
|
4
|
-
import { MECXDynamicInputComponent } from './input';
|
|
5
|
-
import { MECXDynamicInputPhoneComponent } from './input-phone';
|
|
6
|
-
import { MECXDynamicRadioComponent } from './radio';
|
|
7
|
-
import { MECXDynamicSelectComponent } from './select';
|
|
8
|
-
import { MECXDynamicSelectSearchComponent } from './select-search';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
const componentMapper = {
|
|
11
|
-
input: MECXDynamicInputComponent,
|
|
12
|
-
'input-phone': MECXDynamicInputPhoneComponent,
|
|
13
|
-
radiobutton: MECXDynamicRadioComponent,
|
|
14
|
-
select: MECXDynamicSelectComponent,
|
|
15
|
-
'select-search': MECXDynamicSelectSearchComponent,
|
|
16
|
-
'file-upload': MECXDynamicFileUploadComponent,
|
|
17
|
-
button: MECXDynamicButtonComponent
|
|
18
|
-
};
|
|
19
|
-
export class MECXDynamicDirective {
|
|
20
|
-
constructor(resolver, container, cdr) {
|
|
21
|
-
this.resolver = resolver;
|
|
22
|
-
this.container = container;
|
|
23
|
-
this.cdr = cdr;
|
|
24
|
-
// not to do
|
|
25
|
-
}
|
|
26
|
-
handleInternalPlusValidation() {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
if (!((_a = this.field) === null || _a === void 0 ? void 0 : _a.alwaysShowPlusValidation))
|
|
29
|
-
return false;
|
|
30
|
-
const { operator, value, field } = (_b = this.field) === null || _b === void 0 ? void 0 : _b.alwaysShowPlusValidation;
|
|
31
|
-
const validators = {
|
|
32
|
-
e: (val1, val2) => { return val1 === val2; },
|
|
33
|
-
lt: (val1, val2) => { return val1 < val2; },
|
|
34
|
-
gt: (val1, val2) => { return val1 > val2; }
|
|
35
|
-
};
|
|
36
|
-
const data = this.form.controls[field].value;
|
|
37
|
-
return validators[operator](data, value);
|
|
38
|
-
}
|
|
39
|
-
buildComponent() {
|
|
40
|
-
var _a;
|
|
41
|
-
if ((_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance)
|
|
42
|
-
return;
|
|
43
|
-
const factory = this.resolver.resolveComponentFactory(componentMapper[this.field.fieldType]);
|
|
44
|
-
this.componentRef = this.container.createComponent(factory);
|
|
45
|
-
this.componentRef.instance._field = this.field;
|
|
46
|
-
this.componentRef.instance._form = this.form;
|
|
47
|
-
// eslint-disable-next-line object-curly-newline
|
|
48
|
-
this.componentRef.instance._formErrors = this.formErrors || {};
|
|
49
|
-
this.componentRef.instance.self = this.self;
|
|
50
|
-
}
|
|
51
|
-
ngOnInit() {
|
|
52
|
-
if (!this.field.alwaysShow && !this.handleInternalPlusValidation())
|
|
53
|
-
return;
|
|
54
|
-
this.buildComponent();
|
|
55
|
-
}
|
|
56
|
-
ngOnChanges() {
|
|
57
|
-
var _a, _b, _c, _d;
|
|
58
|
-
if (this.plusValidations && this.plusValidations[this.field.name]) {
|
|
59
|
-
if (!this.field.alwaysShow && this.plusValidations[this.field.name].alwaysShow) {
|
|
60
|
-
setTimeout(() => {
|
|
61
|
-
this.buildComponent();
|
|
62
|
-
this.cdr.detectChanges();
|
|
63
|
-
}, 1);
|
|
64
|
-
}
|
|
65
|
-
if (((_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance) && !this.plusValidations[this.field.name].alwaysShow) {
|
|
66
|
-
this.componentRef.destroy();
|
|
67
|
-
this.componentRef = null;
|
|
68
|
-
(_b = this.form.controls[this.field.name]) === null || _b === void 0 ? void 0 : _b.setValue(null);
|
|
69
|
-
(_c = this.form.controls[this.field.name]) === null || _c === void 0 ? void 0 : _c.clearValidators();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
if (!((_d = this.componentRef) === null || _d === void 0 ? void 0 : _d.instance))
|
|
73
|
-
return;
|
|
74
|
-
this.componentRef.instance._formErrors = this.formErrors || {};
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
MECXDynamicDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MECXDynamicDirective, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
78
|
-
MECXDynamicDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.14", type: MECXDynamicDirective, selector: "[MECXDynamic]", inputs: { field: "field", form: "form", formErrors: "formErrors", self: "self", plusValidations: "plusValidations" }, usesOnChanges: true, ngImport: i0 });
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MECXDynamicDirective, decorators: [{
|
|
80
|
-
type: Directive,
|
|
81
|
-
args: [{
|
|
82
|
-
selector: '[MECXDynamic]'
|
|
83
|
-
}]
|
|
84
|
-
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { field: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], form: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], formErrors: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], self: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], plusValidations: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy9keW5hbWljLWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFbkUsTUFBTSxlQUFlLEdBQUc7SUFDdEIsS0FBSyxFQUFFLHlCQUF5QjtJQUNoQyxhQUFhLEVBQUUsOEJBQThCO0lBQzdDLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsTUFBTSxFQUFFLDBCQUEwQjtJQUNsQyxlQUFlLEVBQUUsZ0NBQWdDO0lBQ2pELGFBQWEsRUFBRSw4QkFBOEI7SUFDN0MsTUFBTSxFQUFFLDBCQUEwQjtDQUNuQyxDQUFDO0FBS0YsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixZQUFvQixRQUFrQyxFQUFVLFNBQTJCLEVBQ25GLEdBQXNCO1FBRFYsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNuRixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUM1QixZQUFZO0lBQ2Qs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QkFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsMENBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwRCxNQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLDBDQUFFLGVBQWUsRUFBRSxDQUFDO2FBQ3hEO1NBQ0Y7UUFDRCxJQUFJLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFFBQVEsQ0FBQTtZQUFFLE9BQU87UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksRUFDM0QsQ0FBQztJQUNKLENBQUM7O2tIQWpFVSxvQkFBb0I7c0dBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs4S0FFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTUVDWER5bmFtaWNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbic7XG5pbXBvcnQgeyBNRUNYRHluYW1pY0ZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtdXBsb2FkJztcbmltcG9ydCB7IE1FQ1hEeW5hbWljSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0JztcbmltcG9ydCB7IE1FQ1hEeW5hbWljSW5wdXRQaG9uZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtcGhvbmUnO1xuaW1wb3J0IHsgTUVDWER5bmFtaWNSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8nO1xuaW1wb3J0IHsgTUVDWER5bmFtaWNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdCc7XG5pbXBvcnQgeyBNRUNYRHluYW1pY1NlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LXNlYXJjaCc7XG5cbmNvbnN0IGNvbXBvbmVudE1hcHBlciA9IHtcbiAgaW5wdXQ6IE1FQ1hEeW5hbWljSW5wdXRDb21wb25lbnQsXG4gICdpbnB1dC1waG9uZSc6IE1FQ1hEeW5hbWljSW5wdXRQaG9uZUNvbXBvbmVudCxcbiAgcmFkaW9idXR0b246IE1FQ1hEeW5hbWljUmFkaW9Db21wb25lbnQsXG4gIHNlbGVjdDogTUVDWER5bmFtaWNTZWxlY3RDb21wb25lbnQsXG4gICdzZWxlY3Qtc2VhcmNoJzogTUVDWER5bmFtaWNTZWxlY3RTZWFyY2hDb21wb25lbnQsXG4gICdmaWxlLXVwbG9hZCc6IE1FQ1hEeW5hbWljRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgYnV0dG9uOiBNRUNYRHluYW1pY0J1dHRvbkNvbXBvbmVudFxufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW01FQ1hEeW5hbWljXSdcbn0pXG5leHBvcnQgY2xhc3MgTUVDWER5bmFtaWNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZpZWxkOiBNRUNYRmllbGRDb25maWc7XG5cbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpIGZvcm1FcnJvcnM6IGFueTtcblxuICBASW5wdXQoKSBzZWxmOiBhbnk7XG5cbiAgQElucHV0KCkgcGx1c1ZhbGlkYXRpb25zOiBhbnk7XG5cbiAgY29tcG9uZW50UmVmOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUludGVybmFsUGx1c1ZhbGlkYXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmZpZWxkPy5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24pIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCB7IG9wZXJhdG9yLCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMuZmllbGQ/LmFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbjtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0ge1xuICAgICAgZTogKHZhbDE6IGFueSwgdmFsMjogc3RyaW5nKSA9PiB7IHJldHVybiB2YWwxID09PSB2YWwyOyB9LFxuICAgICAgbHQ6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA8IHZhbDI7IH0sXG4gICAgICBndDogKHZhbDE6IGFueSwgdmFsMjogc3RyaW5nKSA9PiB7IHJldHVybiB2YWwxID4gdmFsMjsgfVxuICAgIH07XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZF0udmFsdWU7XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yc1tvcGVyYXRvcl0oZGF0YSwgdmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbXBvbmVudCgpIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlKSByZXR1cm47XG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50TWFwcGVyW3RoaXMuZmllbGQuZmllbGRUeXBlXSk7XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuX2ZpZWxkID0gdGhpcy5maWVsZDtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5fZm9ybSA9IHRoaXMuZm9ybTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JqZWN0LWN1cmx5LW5ld2xpbmVcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5fZm9ybUVycm9ycyA9IHRoaXMuZm9ybUVycm9ycyB8fCB7fTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxmID0gdGhpcy5zZWxmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmZpZWxkLmFsd2F5c1Nob3cgJiYgIXRoaXMuaGFuZGxlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbigpKSByZXR1cm47XG4gICAgdGhpcy5idWlsZENvbXBvbmVudCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMucGx1c1ZhbGlkYXRpb25zICYmIHRoaXMucGx1c1ZhbGlkYXRpb25zW3RoaXMuZmllbGQubmFtZV0pIHtcbiAgICAgIGlmICghdGhpcy5maWVsZC5hbHdheXNTaG93ICYmIHRoaXMucGx1c1ZhbGlkYXRpb25zW3RoaXMuZmllbGQubmFtZV0uYWx3YXlzU2hvdykge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50KCk7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9LCAxKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UgJiYgIXRoaXMucGx1c1ZhbGlkYXRpb25zW3RoaXMuZmllbGQubmFtZV0uYWx3YXlzU2hvdykge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuZmllbGQubmFtZV0/LnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5maWVsZC5uYW1lXT8uY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlKSByZXR1cm47XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuX2Zvcm1FcnJvcnMgPSB0aGlzLmZvcm1FcnJvcnMgfHwge1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "monkey-style-guide";
|
|
4
|
-
import * as i2 from "@angular/forms";
|
|
5
|
-
import * as i3 from "@ngx-translate/core";
|
|
6
|
-
export class MECXDynamicFileUploadComponent {
|
|
7
|
-
constructor(cdr) {
|
|
8
|
-
this.cdr = cdr;
|
|
9
|
-
// eslint-disable-next-line object-curly-newline
|
|
10
|
-
this._formErrors = {};
|
|
11
|
-
this._function = (file, callback) => {
|
|
12
|
-
var _a, _b, _c, _d;
|
|
13
|
-
if (this._form.disabled)
|
|
14
|
-
return;
|
|
15
|
-
if (!((_b = (_a = this._field) === null || _a === void 0 ? void 0 : _a.functions) === null || _b === void 0 ? void 0 : _b.onHandleUpload)) {
|
|
16
|
-
console.error('onHandleUpload not declared');
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const { func, type } = (_d = (_c = this._field) === null || _c === void 0 ? void 0 : _c.functions) === null || _d === void 0 ? void 0 : _d.onHandleUpload;
|
|
20
|
-
if (!func || !this.self[func]) {
|
|
21
|
-
console.error('onHandleUpload not declared');
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
this.self[func](file, type, callback);
|
|
25
|
-
};
|
|
26
|
-
// not to do
|
|
27
|
-
}
|
|
28
|
-
get className() {
|
|
29
|
-
var _a, _b;
|
|
30
|
-
return (_b = (_a = this._field) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.class;
|
|
31
|
-
}
|
|
32
|
-
ngOnChanges() {
|
|
33
|
-
this.cdr.detectChanges();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
MECXDynamicFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MECXDynamicFileUploadComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
-
MECXDynamicFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MECXDynamicFileUploadComponent, selector: "mecx-dynamic-file-upload", inputs: { _field: "_field", _form: "_form", _formErrors: "_formErrors", self: "self" }, host: { properties: { "class": "this.className" } }, usesOnChanges: true, ngImport: i0, template: "<monkey-file-upload\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [icon]=\"_field?.icon\" [formControl]=\"_form.controls[_field?.name]\"\n [placeholder]=\"_field?.placeholder | translate\"\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\n [maxSize]=\"_field?.maxSize || 5242880\" [fileUpload]=\"_function\"\n [maxSizeErrorMessage]=\"'FIELD.FILE.MAX-FILE' | translate\"\n [allowedExtensionErrorMessage]=\"'FIELD.FILE.ALLOWED-EXTENSION' | translate\"\n [allowedExtensions]=\"_field?.allowedExtensions || []\">\n</monkey-file-upload>", components: [{ type: i1.MonkeyFileUploadComponent, selector: "monkey-file-upload", inputs: ["name", "label", "helperMessage", "placeholder", "icon", "infoMessage", "uploadOngoingMessage", "errorMessage", "listenFiles", "maxSize", "allowedExtensions", "maxSizeErrorMessage", "allowedExtensionErrorMessage", "fileUpload", "value"], outputs: ["onChange", "onHandleFilesReady"] }], 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
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MECXDynamicFileUploadComponent, decorators: [{
|
|
39
|
-
type: Component,
|
|
40
|
-
args: [{
|
|
41
|
-
selector: 'mecx-dynamic-file-upload',
|
|
42
|
-
templateUrl: './file-upload.component.html',
|
|
43
|
-
encapsulation: ViewEncapsulation.None
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _field: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], _form: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], _formErrors: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], self: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], className: [{
|
|
54
|
-
type: HostBinding,
|
|
55
|
-
args: ['class']
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTcEcsTUFBTSxPQUFPLDhCQUE4QjtJQXdCekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFuQjFDLGdEQUFnRDtRQUN2QyxnQkFBVyxHQUFnQixFQUFFLENBQUM7UUFJdkMsY0FBUyxHQUFhLENBQUMsSUFBUyxFQUFFLFFBQW1CLEVBQUUsRUFBRTs7WUFDdkQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUNoQyxJQUFJLENBQUMsQ0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUywwQ0FBRSxjQUFjLENBQUEsRUFBRTtnQkFDM0MsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUM3QyxPQUFPO2FBQ1I7WUFDRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxTQUFTLDBDQUFFLGNBQWMsQ0FBQztZQUM5RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUM3QyxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDO1FBR0EsWUFBWTtJQUNkLENBQUM7SUFFRCxJQUNJLFNBQVM7O1FBQ1gsT0FBTyxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSywwQ0FBRSxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzRIQW5DVSw4QkFBOEI7Z0hBQTlCLDhCQUE4QixrT0NUM0Msd3BCQVNxQjs0RkRBUiw4QkFBOEI7a0JBTDFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO3dHQUVVLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBcUJGLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUVDWEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21lY3gtZHluYW1pYy1maWxlLXVwbG9hZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTUVDWER5bmFtaWNGaWxlVXBsb2FkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgX2ZpZWxkOiBNRUNYRmllbGRDb25maWc7XG5cbiAgQElucHV0KCkgX2Zvcm06IEZvcm1Hcm91cDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JqZWN0LWN1cmx5LW5ld2xpbmVcbiAgQElucHV0KCkgX2Zvcm1FcnJvcnM6IGFueSB8IGFueVtdID0ge307XG5cbiAgQElucHV0KCkgc2VsZjogYW55O1xuXG4gIF9mdW5jdGlvbjogRnVuY3Rpb24gPSAoZmlsZTogYW55LCBjYWxsYmFjaz86IEZ1bmN0aW9uKSA9PiB7XG4gICAgaWYgKHRoaXMuX2Zvcm0uZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuX2ZpZWxkPy5mdW5jdGlvbnM/Lm9uSGFuZGxlVXBsb2FkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdvbkhhbmRsZVVwbG9hZCBub3QgZGVjbGFyZWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgeyBmdW5jLCB0eXBlIH0gPSB0aGlzLl9maWVsZD8uZnVuY3Rpb25zPy5vbkhhbmRsZVVwbG9hZDtcbiAgICBpZiAoIWZ1bmMgfHwgIXRoaXMuc2VsZltmdW5jXSkge1xuICAgICAgY29uc29sZS5lcnJvcignb25IYW5kbGVVcGxvYWQgbm90IGRlY2xhcmVkJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZltmdW5jXShmaWxlLCB0eXBlLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGQ/LnN0eWxlPy5jbGFzcztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPG1vbmtleS1maWxlLXVwbG9hZFxuICBlcnJvck1lc3NhZ2U9XCJ7eyBfZm9ybUVycm9yc1tfZmllbGQ/Lm5hbWVdPy5maXJzdE1lc3NhZ2UgfCB0cmFuc2xhdGUgfX0ge3sgX2Zvcm1FcnJvcnNbX2ZpZWxkPy5uYW1lXT8ubGFzdE1lc3NhZ2UgfX1cIlxuICBbaWNvbl09XCJfZmllbGQ/Lmljb25cIiBbZm9ybUNvbnRyb2xdPVwiX2Zvcm0uY29udHJvbHNbX2ZpZWxkPy5uYW1lXVwiXG4gIFtwbGFjZWhvbGRlcl09XCJfZmllbGQ/LnBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcbiAgW2hlbHBlck1lc3NhZ2VdPVwiX2ZpZWxkPy5oZWxwZXJNZXNzYWdlIHwgdHJhbnNsYXRlXCIgW2xhYmVsXT1cIl9maWVsZD8ubGFiZWwgfCB0cmFuc2xhdGVcIlxuICBbbWF4U2l6ZV09XCJfZmllbGQ/Lm1heFNpemUgfHwgNTI0Mjg4MFwiIFtmaWxlVXBsb2FkXT1cIl9mdW5jdGlvblwiXG4gIFttYXhTaXplRXJyb3JNZXNzYWdlXT1cIidGSUVMRC5GSUxFLk1BWC1GSUxFJyB8IHRyYW5zbGF0ZVwiXG4gIFthbGxvd2VkRXh0ZW5zaW9uRXJyb3JNZXNzYWdlXT1cIidGSUVMRC5GSUxFLkFMTE9XRUQtRVhURU5TSU9OJyB8IHRyYW5zbGF0ZVwiXG4gIFthbGxvd2VkRXh0ZW5zaW9uc109XCJfZmllbGQ/LmFsbG93ZWRFeHRlbnNpb25zIHx8IFtdXCI+XG48L21vbmtleS1maWxlLXVwbG9hZD4iXX0=
|