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.
Files changed (84) hide show
  1. package/esm2020/lib/components/base/base-component.mjs +291 -0
  2. package/esm2020/lib/components/base/base-dynamic-array.mjs +221 -0
  3. package/esm2020/lib/components/base/base-dynamic.mjs +99 -0
  4. package/{esm2015/lib/components/base/base-validators.js → esm2020/lib/components/base/base-validators.mjs} +1 -1
  5. package/{esm2015/lib/components/base/index.js → esm2020/lib/components/base/index.mjs} +0 -0
  6. package/esm2020/lib/components/dynamic/button/button.component.mjs +52 -0
  7. package/{esm2015/lib/components/dynamic/button/index.js → esm2020/lib/components/dynamic/button/index.mjs} +0 -0
  8. package/esm2020/lib/components/dynamic/dynamic-directive.mjs +95 -0
  9. package/{esm2015/lib/components/dynamic/dynamic.module.js → esm2020/lib/components/dynamic/dynamic.module.mjs} +5 -5
  10. package/esm2020/lib/components/dynamic/file-upload/file-upload.component.mjs +52 -0
  11. package/{esm2015/lib/components/dynamic/file-upload/index.js → esm2020/lib/components/dynamic/file-upload/index.mjs} +0 -0
  12. package/esm2020/lib/components/dynamic/form/dynamic-form-array.component.mjs +72 -0
  13. package/esm2020/lib/components/dynamic/form/dynamic-form.component.mjs +46 -0
  14. package/{esm2015/lib/components/dynamic/form/index.js → esm2020/lib/components/dynamic/form/index.mjs} +0 -0
  15. package/{esm2015/lib/components/dynamic/index.js → esm2020/lib/components/dynamic/index.mjs} +0 -0
  16. package/{esm2015/lib/components/dynamic/input/index.js → esm2020/lib/components/dynamic/input/index.mjs} +0 -0
  17. package/esm2020/lib/components/dynamic/input/input.component.mjs +65 -0
  18. package/{esm2015/lib/components/dynamic/input-phone/index.js → esm2020/lib/components/dynamic/input-phone/index.mjs} +0 -0
  19. package/esm2020/lib/components/dynamic/input-phone/input-phone.component.mjs +65 -0
  20. package/{esm2015/lib/components/dynamic/radio/index.js → esm2020/lib/components/dynamic/radio/index.mjs} +0 -0
  21. package/esm2020/lib/components/dynamic/radio/radio.component.mjs +33 -0
  22. package/{esm2015/lib/components/dynamic/select/index.js → esm2020/lib/components/dynamic/select/index.mjs} +0 -0
  23. package/esm2020/lib/components/dynamic/select/select.component.mjs +80 -0
  24. package/{esm2015/lib/components/dynamic/select-search/index.js → esm2020/lib/components/dynamic/select-search/index.mjs} +0 -0
  25. package/esm2020/lib/components/dynamic/select-search/select-search.component.mjs +80 -0
  26. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +2 -1
  27. package/esm2020/lib/components/shared/index.mjs +3 -0
  28. package/esm2020/lib/components/shared/password-strength/index.mjs +3 -0
  29. package/esm2020/lib/components/shared/password-strength/password-strength.component.mjs +83 -0
  30. package/esm2020/lib/components/shared/password-strength/password-strength.mjs +2 -0
  31. package/esm2020/lib/components/shared/password-strength/password-strength.module.mjs +50 -0
  32. package/esm2020/lib/components/shared/progress-bar/index.mjs +4 -0
  33. package/esm2020/lib/components/shared/progress-bar/progress-bar.component.mjs +28 -0
  34. package/esm2020/lib/components/shared/progress-bar/progress-bar.module.mjs +18 -0
  35. package/esm2020/lib/components/shared/progress-bar/progress-bar.service.mjs +49 -0
  36. package/{esm2015/lib/interfaces/field-config.js → esm2020/lib/interfaces/field-config.mjs} +0 -0
  37. package/{esm2015/lib/interfaces/index.js → esm2020/lib/interfaces/index.mjs} +0 -0
  38. package/{esm2015/monkey-front-components.js → esm2020/monkey-front-components.mjs} +0 -0
  39. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  40. package/fesm2015/monkey-front-components.mjs +1487 -0
  41. package/fesm2015/monkey-front-components.mjs.map +1 -0
  42. package/fesm2020/monkey-front-components.mjs +1471 -0
  43. package/fesm2020/monkey-front-components.mjs.map +1 -0
  44. package/lib/components/base/base-component.d.ts +1 -1
  45. package/lib/components/base/base-dynamic-array.d.ts +1 -1
  46. package/lib/components/base/base-dynamic.d.ts +1 -1
  47. package/lib/components/base/base-validators.d.ts +1 -14
  48. package/lib/components/dynamic/button/button.component.d.ts +2 -2
  49. package/lib/components/dynamic/dynamic-directive.d.ts +2 -2
  50. package/lib/components/dynamic/input/input.component.d.ts +3 -3
  51. package/lib/components/dynamic/input-phone/input-phone.component.d.ts +3 -3
  52. package/lib/components/dynamic/radio/radio.component.d.ts +2 -2
  53. package/lib/components/dynamic/select/select.component.d.ts +2 -2
  54. package/lib/components/dynamic/select-search/select-search.component.d.ts +2 -2
  55. package/lib/components/index.d.ts +1 -0
  56. package/lib/components/shared/index.d.ts +2 -0
  57. package/lib/components/shared/password-strength/index.d.ts +2 -0
  58. package/lib/components/shared/password-strength/password-strength.component.d.ts +22 -0
  59. package/lib/components/shared/password-strength/password-strength.d.ts +5 -0
  60. package/lib/components/shared/password-strength/password-strength.module.d.ts +12 -0
  61. package/lib/components/shared/progress-bar/index.d.ts +3 -0
  62. package/lib/components/shared/progress-bar/progress-bar.component.d.ts +12 -0
  63. package/lib/components/shared/progress-bar/progress-bar.module.d.ts +8 -0
  64. package/lib/components/shared/progress-bar/progress-bar.service.d.ts +14 -0
  65. package/monkey-front-components-0.0.183.tgz +0 -0
  66. package/package.json +27 -13
  67. package/bundles/monkey-front-components.umd.js +0 -1729
  68. package/bundles/monkey-front-components.umd.js.map +0 -1
  69. package/esm2015/lib/components/base/base-component.js +0 -288
  70. package/esm2015/lib/components/base/base-dynamic-array.js +0 -215
  71. package/esm2015/lib/components/base/base-dynamic.js +0 -98
  72. package/esm2015/lib/components/dynamic/button/button.component.js +0 -57
  73. package/esm2015/lib/components/dynamic/dynamic-directive.js +0 -95
  74. package/esm2015/lib/components/dynamic/file-upload/file-upload.component.js +0 -57
  75. package/esm2015/lib/components/dynamic/form/dynamic-form-array.component.js +0 -77
  76. package/esm2015/lib/components/dynamic/form/dynamic-form.component.js +0 -51
  77. package/esm2015/lib/components/dynamic/input/input.component.js +0 -66
  78. package/esm2015/lib/components/dynamic/input-phone/input-phone.component.js +0 -66
  79. package/esm2015/lib/components/dynamic/radio/radio.component.js +0 -36
  80. package/esm2015/lib/components/dynamic/select/select.component.js +0 -81
  81. package/esm2015/lib/components/dynamic/select-search/select-search.component.js +0 -81
  82. package/fesm2015/monkey-front-components.js +0 -1290
  83. package/fesm2015/monkey-front-components.js.map +0 -1
  84. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLFdBQVksU0FBUSxhQUFhO0lBaUJyRCxZQUFvQixFQUFlO1FBQ2pDLEtBQUssRUFBRSxDQUFDO1FBRFUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQWhCMUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXpDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFNUMsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFJdEUsV0FBTSxHQUFzQixFQUFFLENBQUM7UUFJL0IsYUFBUSxHQUFZLEtBQUssQ0FBQztJQU1uQyxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekIsZ0RBQWdEO1FBQ2hELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFzQixFQUFFLEVBQUU7WUFDeEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN6RCxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksU0FBUyxLQUFLLFFBQVE7Z0JBQUUsT0FBTztZQUNuQyxJQUFJLFNBQVMsS0FBSyxhQUFhLElBQUksU0FBUyxLQUFLLFVBQVUsSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO2dCQUNyRixLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ1o7WUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRixJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxlQUFlLENBQUMsV0FBdUM7UUFDN0QsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMxQixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDckIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQStCLEVBQUUsRUFBRTtnQkFDdEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUs7b0JBQzNCLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7b0JBQ3JDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sVUFBVTtRQUNmLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxXQUFXLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O3lHQTlFbUIsV0FBVzs2RkFBWCxXQUFXOzRGQUFYLFdBQVc7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2tHQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFRSxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTW9ua2V5VXRpbHMgfSBmcm9tICdtb25rZXktc3R5bGUtZ3VpZGUnO1xuaW1wb3J0IHsgTUVDWEZpZWxkQ29uZmlnLCBNRUNYRmllbGRDb25maWdWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IHZhbGlkYXRvcnMgfSBmcm9tICcuL2Jhc2UtdmFsaWRhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tiYXNlRHluYW1pY10nXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEeW5hbWljIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgb25IYW5kbGVTdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASW5wdXQoKSBvbkhhbmRsZVVwZGF0ZUZvcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCkgb25IYW5kbGVTdWJtaXRGb3JtUmVhZHk6IEV2ZW50RW1pdHRlcjxhbnk+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=