monkey-front-components 0.0.625 → 0.0.626
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/README.md +24 -24
- package/esm2020/lib/components/base/base-component.mjs +335 -335
- package/esm2020/lib/components/base/base-dynamic-array.mjs +221 -221
- package/esm2020/lib/components/base/base-dynamic.mjs +102 -102
- package/esm2020/lib/components/base/base-scroll-component.mjs +55 -55
- package/esm2020/lib/components/base/base-validators.mjs +20 -20
- package/esm2020/lib/components/base/index.mjs +6 -6
- package/esm2020/lib/components/dynamic/button/button.component.mjs +52 -52
- package/esm2020/lib/components/dynamic/button/index.mjs +2 -2
- package/esm2020/lib/components/dynamic/dynamic-directive.mjs +95 -95
- package/esm2020/lib/components/dynamic/dynamic.module.mjs +84 -84
- package/esm2020/lib/components/dynamic/file-upload/file-upload.component.mjs +53 -53
- package/esm2020/lib/components/dynamic/file-upload/index.mjs +2 -2
- package/esm2020/lib/components/dynamic/form/dynamic-form-array.component.mjs +72 -72
- package/esm2020/lib/components/dynamic/form/dynamic-form.component.mjs +46 -46
- package/esm2020/lib/components/dynamic/form/index.mjs +3 -3
- package/esm2020/lib/components/dynamic/index.mjs +9 -9
- package/esm2020/lib/components/dynamic/input/index.mjs +2 -2
- package/esm2020/lib/components/dynamic/input/input.component.mjs +65 -65
- package/esm2020/lib/components/dynamic/input-phone/index.mjs +2 -2
- package/esm2020/lib/components/dynamic/input-phone/input-phone.component.mjs +65 -65
- package/esm2020/lib/components/dynamic/radio/index.mjs +2 -2
- package/esm2020/lib/components/dynamic/radio/radio.component.mjs +33 -33
- package/esm2020/lib/components/dynamic/select/index.mjs +2 -2
- package/esm2020/lib/components/dynamic/select/select.component.mjs +85 -85
- package/esm2020/lib/components/dynamic/select-search/index.mjs +2 -2
- package/esm2020/lib/components/dynamic/select-search/select-search.component.mjs +92 -92
- package/esm2020/lib/components/index.mjs +4 -4
- package/esm2020/lib/components/shared/filter/filter.component.mjs +144 -144
- package/esm2020/lib/components/shared/filter/filter.module.mjs +67 -67
- package/esm2020/lib/components/shared/filter/index.mjs +3 -3
- package/esm2020/lib/components/shared/filter/menu/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/menu/menu.component.mjs +120 -120
- package/esm2020/lib/components/shared/filter/menu/menu.module.mjs +70 -70
- package/esm2020/lib/components/shared/filter/options/children/children.component.mjs +50 -50
- package/esm2020/lib/components/shared/filter/options/children/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/options/currency/currency.component.mjs +46 -46
- package/esm2020/lib/components/shared/filter/options/currency/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/options/date-range/date-range.component.mjs +65 -65
- package/esm2020/lib/components/shared/filter/options/date-range/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/options/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/options/input/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/options/input/input.component.mjs +46 -46
- package/esm2020/lib/components/shared/filter/options/options.component.mjs +102 -102
- package/esm2020/lib/components/shared/filter/options/options.module.mjs +103 -103
- package/esm2020/lib/components/shared/filter/options/status/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/options/status/status.component.mjs +66 -66
- package/esm2020/lib/components/shared/filter/options/status-radio/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/options/status-radio/status-radio.component.mjs +37 -37
- package/esm2020/lib/components/shared/filter/selected/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/selected/item/children/children.component.mjs +57 -57
- package/esm2020/lib/components/shared/filter/selected/item/children/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/selected/item/currency/currency.component.mjs +28 -28
- package/esm2020/lib/components/shared/filter/selected/item/currency/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/selected/item/date-range/date-range.component.mjs +42 -42
- package/esm2020/lib/components/shared/filter/selected/item/date-range/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.mjs +32 -32
- package/esm2020/lib/components/shared/filter/selected/item/date-with-action/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/selected/item/index.mjs +9 -9
- package/esm2020/lib/components/shared/filter/selected/item/input/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/selected/item/input/input.component.mjs +27 -27
- package/esm2020/lib/components/shared/filter/selected/item/item.component.mjs +75 -75
- package/esm2020/lib/components/shared/filter/selected/item/status/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/selected/item/status/status.component.mjs +38 -38
- package/esm2020/lib/components/shared/filter/selected/item/status-radio/index.mjs +2 -2
- package/esm2020/lib/components/shared/filter/selected/item/status-radio/status-radio.component.mjs +29 -29
- package/esm2020/lib/components/shared/filter/selected/selected.component.mjs +85 -85
- package/esm2020/lib/components/shared/filter/selected/selected.module.mjs +92 -92
- package/esm2020/lib/components/shared/index.mjs +5 -5
- package/esm2020/lib/components/shared/password-strength/index.mjs +3 -3
- package/esm2020/lib/components/shared/password-strength/password-strength.component.mjs +85 -85
- package/esm2020/lib/components/shared/password-strength/password-strength.mjs +2 -2
- package/esm2020/lib/components/shared/password-strength/password-strength.module.mjs +50 -50
- package/esm2020/lib/components/shared/products/filter/filter.component.mjs +36 -36
- package/esm2020/lib/components/shared/products/index.mjs +3 -3
- package/esm2020/lib/components/shared/products/products.component.mjs +91 -91
- package/esm2020/lib/components/shared/products/products.module.mjs +22 -22
- package/esm2020/lib/components/shared/products/providers/index.mjs +2 -2
- package/esm2020/lib/components/shared/products/providers/products.model.mjs +38 -38
- package/esm2020/lib/components/shared/progress-bar/index.mjs +4 -4
- package/esm2020/lib/components/shared/progress-bar/progress-bar.component.mjs +28 -28
- package/esm2020/lib/components/shared/progress-bar/progress-bar.module.mjs +18 -18
- package/esm2020/lib/components/shared/progress-bar/progress-bar.service.mjs +49 -49
- package/esm2020/lib/interfaces/field-config.mjs +2 -2
- package/esm2020/lib/interfaces/index.mjs +2 -2
- package/esm2020/monkey-front-components.mjs +4 -4
- package/esm2020/public-api.mjs +5 -5
- package/fesm2015/monkey-front-components.mjs +2932 -2932
- package/fesm2015/monkey-front-components.mjs.map +1 -1
- package/fesm2020/monkey-front-components.mjs +2908 -2908
- package/fesm2020/monkey-front-components.mjs.map +1 -1
- package/lib/components/base/base-component.d.ts +54 -54
- package/lib/components/base/base-dynamic-array.d.ts +34 -34
- package/lib/components/base/base-dynamic.d.ts +25 -25
- package/lib/components/base/base-scroll-component.d.ts +16 -16
- package/lib/components/base/base-validators.d.ts +1 -1
- package/lib/components/base/index.d.ts +5 -5
- package/lib/components/dynamic/button/button.component.d.ts +17 -17
- package/lib/components/dynamic/button/index.d.ts +1 -1
- package/lib/components/dynamic/dynamic-directive.d.ts +22 -22
- package/lib/components/dynamic/dynamic.module.d.ts +20 -20
- package/lib/components/dynamic/file-upload/file-upload.component.d.ts +17 -17
- package/lib/components/dynamic/file-upload/index.d.ts +1 -1
- package/lib/components/dynamic/form/dynamic-form-array.component.d.ts +16 -16
- package/lib/components/dynamic/form/dynamic-form.component.d.ts +14 -14
- package/lib/components/dynamic/form/index.d.ts +2 -2
- package/lib/components/dynamic/index.d.ts +8 -8
- package/lib/components/dynamic/input/index.d.ts +1 -1
- package/lib/components/dynamic/input/input.component.d.ts +20 -20
- package/lib/components/dynamic/input-phone/index.d.ts +1 -1
- package/lib/components/dynamic/input-phone/input-phone.component.d.ts +20 -20
- package/lib/components/dynamic/radio/index.d.ts +1 -1
- package/lib/components/dynamic/radio/radio.component.d.ts +11 -11
- package/lib/components/dynamic/select/index.d.ts +1 -1
- package/lib/components/dynamic/select/select.component.d.ts +17 -17
- package/lib/components/dynamic/select-search/index.d.ts +1 -1
- package/lib/components/dynamic/select-search/select-search.component.d.ts +19 -19
- package/lib/components/index.d.ts +3 -3
- package/lib/components/shared/filter/filter.component.d.ts +41 -41
- package/lib/components/shared/filter/filter.module.d.ts +14 -14
- package/lib/components/shared/filter/index.d.ts +2 -2
- package/lib/components/shared/filter/menu/index.d.ts +1 -1
- package/lib/components/shared/filter/menu/menu.component.d.ts +24 -24
- package/lib/components/shared/filter/menu/menu.module.d.ts +14 -14
- package/lib/components/shared/filter/options/children/children.component.d.ts +17 -17
- package/lib/components/shared/filter/options/children/index.d.ts +1 -1
- package/lib/components/shared/filter/options/currency/currency.component.d.ts +17 -17
- package/lib/components/shared/filter/options/currency/index.d.ts +1 -1
- package/lib/components/shared/filter/options/date-range/date-range.component.d.ts +24 -24
- package/lib/components/shared/filter/options/date-range/index.d.ts +1 -1
- package/lib/components/shared/filter/options/index.d.ts +1 -1
- package/lib/components/shared/filter/options/input/index.d.ts +1 -1
- package/lib/components/shared/filter/options/input/input.component.d.ts +17 -17
- package/lib/components/shared/filter/options/options.component.d.ts +28 -28
- package/lib/components/shared/filter/options/options.module.d.ts +19 -19
- package/lib/components/shared/filter/options/status/index.d.ts +1 -1
- package/lib/components/shared/filter/options/status/status.component.d.ts +19 -19
- package/lib/components/shared/filter/options/status-radio/index.d.ts +1 -1
- package/lib/components/shared/filter/options/status-radio/status-radio.component.d.ts +15 -15
- package/lib/components/shared/filter/selected/index.d.ts +1 -1
- package/lib/components/shared/filter/selected/item/children/children.component.d.ts +16 -16
- package/lib/components/shared/filter/selected/item/children/index.d.ts +1 -1
- package/lib/components/shared/filter/selected/item/currency/currency.component.d.ts +11 -11
- package/lib/components/shared/filter/selected/item/currency/index.d.ts +1 -1
- package/lib/components/shared/filter/selected/item/date-range/date-range.component.d.ts +12 -12
- package/lib/components/shared/filter/selected/item/date-range/index.d.ts +1 -1
- package/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.d.ts +11 -11
- package/lib/components/shared/filter/selected/item/date-with-action/index.d.ts +1 -1
- package/lib/components/shared/filter/selected/item/index.d.ts +8 -8
- package/lib/components/shared/filter/selected/item/input/index.d.ts +1 -1
- package/lib/components/shared/filter/selected/item/input/input.component.d.ts +11 -11
- package/lib/components/shared/filter/selected/item/item.component.d.ts +20 -20
- package/lib/components/shared/filter/selected/item/status/index.d.ts +1 -1
- package/lib/components/shared/filter/selected/item/status/status.component.d.ts +13 -13
- package/lib/components/shared/filter/selected/item/status-radio/index.d.ts +1 -1
- package/lib/components/shared/filter/selected/item/status-radio/status-radio.component.d.ts +11 -11
- package/lib/components/shared/filter/selected/selected.component.d.ts +19 -19
- package/lib/components/shared/filter/selected/selected.module.d.ts +22 -22
- package/lib/components/shared/index.d.ts +4 -4
- package/lib/components/shared/password-strength/index.d.ts +2 -2
- package/lib/components/shared/password-strength/password-strength.component.d.ts +23 -23
- package/lib/components/shared/password-strength/password-strength.d.ts +5 -5
- package/lib/components/shared/password-strength/password-strength.module.d.ts +12 -12
- package/lib/components/shared/products/filter/filter.component.d.ts +12 -12
- package/lib/components/shared/products/index.d.ts +2 -2
- package/lib/components/shared/products/products.component.d.ts +20 -20
- package/lib/components/shared/products/products.module.d.ts +11 -11
- package/lib/components/shared/products/providers/index.d.ts +1 -1
- package/lib/components/shared/products/providers/products.model.d.ts +13 -13
- package/lib/components/shared/progress-bar/index.d.ts +3 -3
- package/lib/components/shared/progress-bar/progress-bar.component.d.ts +12 -12
- package/lib/components/shared/progress-bar/progress-bar.module.d.ts +8 -8
- package/lib/components/shared/progress-bar/progress-bar.service.d.ts +14 -14
- package/lib/interfaces/field-config.d.ts +55 -55
- package/lib/interfaces/index.d.ts +1 -1
- package/monkey-front-components-0.0.626.tgz +0 -0
- package/monkey-front-components.d.ts +5 -5
- package/package.json +2 -2
- package/public-api.d.ts +1 -1
- package/monkey-front-components-0.0.625.tgz +0 -0
|
@@ -1,221 +1,221 @@
|
|
|
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
|
-
this._form = null;
|
|
21
|
-
// eslint-disable-next-line object-curly-newline
|
|
22
|
-
this._plusValidations = [];
|
|
23
|
-
this.changesUnsubscribe = new Subject();
|
|
24
|
-
this.formBase = () => {
|
|
25
|
-
// return this.fb.group(this.createControl());
|
|
26
|
-
return this.createControl();
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
handleInternalPlusValidation(mainField, data) {
|
|
30
|
-
const { operator, field, value } = mainField;
|
|
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
|
-
return validators[operator](data?.[field] || data, value);
|
|
37
|
-
}
|
|
38
|
-
makeInternalPlusValidation(data, sourceField, settings, rowIndex) {
|
|
39
|
-
const changeFields = (show) => {
|
|
40
|
-
const saved = [...this.fields];
|
|
41
|
-
saved.map((val) => {
|
|
42
|
-
const valSaved = {
|
|
43
|
-
...val
|
|
44
|
-
};
|
|
45
|
-
if (val.name === sourceField) {
|
|
46
|
-
this._plusValidations[rowIndex] = {
|
|
47
|
-
[sourceField]: {
|
|
48
|
-
...valSaved,
|
|
49
|
-
alwaysShow: show
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
this.createOneControl(val.name, this.formValues?.controls[rowIndex], show);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this._plusValidations[rowIndex] = {
|
|
56
|
-
...valSaved
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return null;
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
const validated = this.handleInternalPlusValidation(settings, data);
|
|
63
|
-
changeFields(validated);
|
|
64
|
-
}
|
|
65
|
-
createOneControl(fieldName, ctrl, create = true) {
|
|
66
|
-
const { fields } = this;
|
|
67
|
-
if (!fields)
|
|
68
|
-
return;
|
|
69
|
-
fields.forEach((field) => {
|
|
70
|
-
const { fieldType, validations, name, disabled } = field;
|
|
71
|
-
if (name !== fieldName)
|
|
72
|
-
return;
|
|
73
|
-
let { value } = field;
|
|
74
|
-
if (fieldType === 'button')
|
|
75
|
-
return;
|
|
76
|
-
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
77
|
-
value = '';
|
|
78
|
-
}
|
|
79
|
-
if (create) {
|
|
80
|
-
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
81
|
-
if (disabled || this.disabled)
|
|
82
|
-
control.disable();
|
|
83
|
-
ctrl.addControl(name, control);
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
ctrl.removeControl(name);
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
createControl(data) {
|
|
91
|
-
const { fields } = this;
|
|
92
|
-
if (!fields)
|
|
93
|
-
return null;
|
|
94
|
-
// eslint-disable-next-line object-curly-newline
|
|
95
|
-
const group = this.fb.group({});
|
|
96
|
-
fields.forEach((field) => {
|
|
97
|
-
const { fieldType, validations, name, disabled, alwaysShow } = field;
|
|
98
|
-
let { value } = field;
|
|
99
|
-
if (field.alwaysShowPlusValidation) {
|
|
100
|
-
if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data))
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
else if (!alwaysShow)
|
|
104
|
-
return;
|
|
105
|
-
if (fieldType === 'button')
|
|
106
|
-
return;
|
|
107
|
-
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
108
|
-
value = '';
|
|
109
|
-
}
|
|
110
|
-
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
111
|
-
if (disabled || this.disabled)
|
|
112
|
-
control.disable();
|
|
113
|
-
group.addControl(name, control);
|
|
114
|
-
});
|
|
115
|
-
return group;
|
|
116
|
-
}
|
|
117
|
-
bindValidations(validations) {
|
|
118
|
-
if (validations.length > 0) {
|
|
119
|
-
const validList = [];
|
|
120
|
-
validations.forEach((valid) => {
|
|
121
|
-
const validated = valid.param
|
|
122
|
-
? validators[valid.name](valid.param)
|
|
123
|
-
: validators[valid.name];
|
|
124
|
-
validList.push(validated);
|
|
125
|
-
});
|
|
126
|
-
return Validators.compose(validList);
|
|
127
|
-
}
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
buildForm() {
|
|
131
|
-
const form = this.fb.group({
|
|
132
|
-
fields: this.fb.array([])
|
|
133
|
-
});
|
|
134
|
-
form?.controls.fields?.valueChanges.subscribe((_) => {
|
|
135
|
-
this.watchForChanges();
|
|
136
|
-
});
|
|
137
|
-
return form;
|
|
138
|
-
}
|
|
139
|
-
watchForChanges() {
|
|
140
|
-
const { fields, changesUnsubscribe } = this;
|
|
141
|
-
changesUnsubscribe.next();
|
|
142
|
-
this.formValues?.controls?.map((control, index) => {
|
|
143
|
-
fields.forEach((fieldConfig) => {
|
|
144
|
-
const { name, alwaysShowPlusValidation } = fieldConfig;
|
|
145
|
-
if (!alwaysShowPlusValidation)
|
|
146
|
-
return;
|
|
147
|
-
const { field } = alwaysShowPlusValidation;
|
|
148
|
-
if (field) {
|
|
149
|
-
control.controls[field]?.valueChanges.pipe(takeUntil(changesUnsubscribe)).subscribe((_) => {
|
|
150
|
-
this.makeInternalPlusValidation(_, name, alwaysShowPlusValidation, index);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
return null;
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
get formValues() {
|
|
158
|
-
return this._form ? this._form.get('fields') : null;
|
|
159
|
-
}
|
|
160
|
-
fillValues() {
|
|
161
|
-
const { data, qtd } = this;
|
|
162
|
-
if ((!this._form) && qtd)
|
|
163
|
-
return;
|
|
164
|
-
if (qtd > 0) {
|
|
165
|
-
Array(qtd)
|
|
166
|
-
.fill(null)
|
|
167
|
-
.map((_, index) => {
|
|
168
|
-
let form = this.createControl();
|
|
169
|
-
if (data && data[index]) {
|
|
170
|
-
form = this.createControl(data[index]);
|
|
171
|
-
const handledData = data[index];
|
|
172
|
-
Object.entries(handledData).forEach(([key, value]) => {
|
|
173
|
-
if (MonkeyUtils.persistNullEmptyUndefined(value) && form?.controls[key]) {
|
|
174
|
-
form?.controls[key].setValue(value);
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
this.formValues?.push(form);
|
|
179
|
-
return null;
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
ngOnInit() {
|
|
184
|
-
this._form = this.buildForm();
|
|
185
|
-
this.fillValues();
|
|
186
|
-
this.onHandleUpdateForm.subscribe(() => {
|
|
187
|
-
this.fillValues();
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
ngOnChanges() {
|
|
191
|
-
if (!this._form) {
|
|
192
|
-
this._form = this.buildForm();
|
|
193
|
-
}
|
|
194
|
-
this.fillValues();
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
BaseDynamicArray.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseDynamicArray, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
|
|
198
|
-
BaseDynamicArray.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", 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 });
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseDynamicArray, decorators: [{
|
|
200
|
-
type: Directive,
|
|
201
|
-
args: [{
|
|
202
|
-
selector: '[baseDynamicArray]'
|
|
203
|
-
}]
|
|
204
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { onHandleSubmit: [{
|
|
205
|
-
type: Input
|
|
206
|
-
}], onHandleUpdateForm: [{
|
|
207
|
-
type: Input
|
|
208
|
-
}], onHandleSubmitFormReady: [{
|
|
209
|
-
type: Output
|
|
210
|
-
}], self: [{
|
|
211
|
-
type: Input
|
|
212
|
-
}], fields: [{
|
|
213
|
-
type: Input
|
|
214
|
-
}], data: [{
|
|
215
|
-
type: Input
|
|
216
|
-
}], qtd: [{
|
|
217
|
-
type: Input
|
|
218
|
-
}], disabled: [{
|
|
219
|
-
type: Input
|
|
220
|
-
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLGdCQUFpQixTQUFRLGFBQWE7SUF3QjFELFlBQW9CLEVBQWU7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBdkIxQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1Qyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUl0RSxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUkvQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBRWhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsVUFBSyxHQUFxQixJQUFJLENBQUM7UUFFL0IsZ0RBQWdEO1FBQ2hELHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUVyQix1QkFBa0IsR0FB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QUFVLEVBQUUsSUFBSSxDQUFDLElBQVcsQ0FBQyxDQUFDO2dCQUVuQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7NkdBM05tQixnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO2tHQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFRSxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnbW9ua2V5LXN0eWxlLWd1aWRlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZywgTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcclxuaW1wb3J0IHsgdmFsaWRhdG9ycyB9IGZyb20gJy4vYmFzZS12YWxpZGF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Jhc2VEeW5hbWljQXJyYXldJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUR5bmFtaWNBcnJheSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgb25IYW5kbGVTdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgb25IYW5kbGVVcGRhdGVGb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkhhbmRsZVN1Ym1pdEZvcm1SZWFkeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgc2VsZjogYW55O1xyXG5cclxuICBASW5wdXQoKSBmaWVsZHM6IE1FQ1hGaWVsZENvbmZpZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuXHJcbiAgQElucHV0KCkgcXRkOiBudW1iZXIgPSAxO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBfZm9ybTogRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxyXG4gIF9wbHVzVmFsaWRhdGlvbnM6IGFueVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlc1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICBtYWluRmllbGQ6IGFueSxcclxuICAgIGRhdGE6IGFueVxyXG4gICkge1xyXG4gICAgY29uc3QgeyBvcGVyYXRvciwgZmllbGQsIHZhbHVlIH0gPSBtYWluRmllbGQ7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBhbnkgPSB7XHJcbiAgICAgIGU6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA9PT0gdmFsMjsgfSxcclxuICAgICAgbHQ6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA8IHZhbDI7IH0sXHJcbiAgICAgIGd0OiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPiB2YWwyOyB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB2YWxpZGF0b3JzW29wZXJhdG9yXShkYXRhPy5bZmllbGRdIHx8IGRhdGEsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICBkYXRhOiBhbnksXHJcbiAgICBzb3VyY2VGaWVsZDogc3RyaW5nLFxyXG4gICAgc2V0dGluZ3M6IGFueSxcclxuICAgIHJvd0luZGV4OiBudW1iZXJcclxuICApIHtcclxuICAgIGNvbnN0IGNoYW5nZUZpZWxkcyA9IChzaG93OiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNhdmVkID0gWy4uLnRoaXMuZmllbGRzXTtcclxuXHJcbiAgICAgIHNhdmVkLm1hcCgodmFsKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsU2F2ZWQgPSB7XHJcbiAgICAgICAgICAuLi52YWxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICh2YWwubmFtZSA9PT0gc291cmNlRmllbGQpIHtcclxuICAgICAgICAgIHRoaXMuX3BsdXNWYWxpZGF0aW9uc1tyb3dJbmRleF0gPSB7XHJcbiAgICAgICAgICAgIFtzb3VyY2VGaWVsZF06IHtcclxuICAgICAgICAgICAgICAuLi52YWxTYXZlZCxcclxuICAgICAgICAgICAgICBhbHdheXNTaG93OiBzaG93XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9uZUNvbnRyb2wodmFsLm5hbWUsIHRoaXMuZm9ybVZhbHVlcz8uY29udHJvbHNbcm93SW5kZXhdLCBzaG93KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fcGx1c1ZhbGlkYXRpb25zW3Jvd0luZGV4XSA9IHtcclxuICAgICAgICAgICAgLi4udmFsU2F2ZWRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdmFsaWRhdGVkID0gdGhpcy5oYW5kbGVJbnRlcm5hbFBsdXNWYWxpZGF0aW9uKHNldHRpbmdzLCBkYXRhKTtcclxuICAgIGNoYW5nZUZpZWxkcyh2YWxpZGF0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVPbmVDb250cm9sKGZpZWxkTmFtZTogc3RyaW5nLCBjdHJsOiBhbnksIGNyZWF0ZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgZmllbGRzIH0gPSB0aGlzO1xyXG4gICAgaWYgKCFmaWVsZHMpIHJldHVybjtcclxuXHJcbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICBjb25zdCB7IGZpZWxkVHlwZSwgdmFsaWRhdGlvbnMsIG5hbWUsIGRpc2FibGVkIH0gPSBmaWVsZDtcclxuICAgICAgaWYgKG5hbWUgIT09IGZpZWxkTmFtZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XHJcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdidXR0b24nKSByZXR1cm47XHJcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdyYWRpb2J1dHRvbicgfHwgZmllbGRUeXBlID09PSAnY2hlY2tib3gnIHx8IGZpZWxkVHlwZSA9PT0gJ3NlbGVjdCcpIHtcclxuICAgICAgICB2YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjcmVhdGUpIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mYi5jb250cm9sKHZhbHVlLCB0aGlzLmJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9ucyB8fCBbXSkpO1xyXG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKSBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICBjdHJsLmFkZENvbnRyb2wobmFtZSwgY29udHJvbCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY3RybC5yZW1vdmVDb250cm9sKG5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbChkYXRhPzogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpZWxkcyB9ID0gdGhpcztcclxuICAgIGlmICghZmllbGRzKSByZXR1cm4gbnVsbDtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZDogTUVDWEZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgZmllbGRUeXBlLCB2YWxpZGF0aW9ucywgbmFtZSwgZGlzYWJsZWQsIGFsd2F5c1Nob3cgfSA9IGZpZWxkO1xyXG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XHJcbiAgICAgIGlmIChmaWVsZC5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24pIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFuZGxlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihmaWVsZC5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sIGRhdGEpKSByZXR1cm47XHJcbiAgICAgIH0gZWxzZSBpZiAoIWFsd2F5c1Nob3cpIHJldHVybjtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ2J1dHRvbicpIHJldHVybjtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xyXG4gICAgICAgIHZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh2YWx1ZSwgdGhpcy5iaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnMgfHwgW10pKTtcclxuICAgICAgaWYgKGRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIGNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICBncm91cC5hZGRDb250cm9sKG5hbWUgYXMgc3RyaW5nLCBjb250cm9sKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmluZFZhbGlkYXRpb25zKHZhbGlkYXRpb25zOiBNRUNYRmllbGRDb25maWdWYWxpZGF0b3JbXSkge1xyXG4gICAgaWYgKHZhbGlkYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgdmFsaWRMaXN0OiBhbnlbXSA9IFtdO1xyXG4gICAgICB2YWxpZGF0aW9ucy5mb3JFYWNoKCh2YWxpZDogTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkID0gdmFsaWQucGFyYW1cclxuICAgICAgICAgID8gdmFsaWRhdG9yc1t2YWxpZC5uYW1lXSh2YWxpZC5wYXJhbSlcclxuICAgICAgICAgIDogdmFsaWRhdG9yc1t2YWxpZC5uYW1lXTtcclxuICAgICAgICB2YWxpZExpc3QucHVzaCh2YWxpZGF0ZWQpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZExpc3QpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBmaWVsZHM6IHRoaXMuZmIuYXJyYXkoW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3JtPy5jb250cm9scy5maWVsZHM/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKF8pID0+IHtcclxuICAgICAgdGhpcy53YXRjaEZvckNoYW5nZXMoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3YXRjaEZvckNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCB7IGZpZWxkcywgY2hhbmdlc1Vuc3Vic2NyaWJlIH0gPSB0aGlzO1xyXG4gICAgY2hhbmdlc1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuXHJcbiAgICB0aGlzLmZvcm1WYWx1ZXM/LmNvbnRyb2xzPy5tYXAoKGNvbnRyb2w6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWc6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgbmFtZSwgYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uIH0gPSBmaWVsZENvbmZpZztcclxuICAgICAgICBpZiAoIWFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHsgZmllbGQgfSA9IGFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbjtcclxuICAgICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICAgIGNvbnRyb2wuY29udHJvbHNbZmllbGRdPy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKGNoYW5nZXNVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoXzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICAgICAgICAgICAgXyxcclxuICAgICAgICAgICAgICBuYW1lIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgICBhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sXHJcbiAgICAgICAgICAgICAgaW5kZXhcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9ybUJhc2UgPSAoKSA9PiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5mYi5ncm91cCh0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb250cm9sKCk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldCBmb3JtVmFsdWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm0gPyAodGhpcy5fZm9ybS5nZXQoJ2ZpZWxkcycpIGFzIEZvcm1BcnJheSkgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbGxWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIHF0ZCB9ID0gdGhpcztcclxuICAgIGlmICgoIXRoaXMuX2Zvcm0pICYmIHF0ZCkgcmV0dXJuO1xyXG4gICAgaWYgKHF0ZCA+IDApIHtcclxuICAgICAgQXJyYXk8YW55PihxdGQpXHJcbiAgICAgICAgLmZpbGwobnVsbClcclxuICAgICAgICAubWFwKChfLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGV0IGZvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woKTtcclxuICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbaW5kZXhdKSB7XHJcbiAgICAgICAgICAgIGZvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woZGF0YVtpbmRleF0pO1xyXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVkRGF0YSA9IGRhdGFbaW5kZXhdO1xyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVkRGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQodmFsdWUpICYmIGZvcm0/LmNvbnRyb2xzW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIGZvcm0/LmNvbnRyb2xzW2tleV0uc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZvcm1WYWx1ZXM/LnB1c2goZm9ybSBhcyBhbnkpO1xyXG5cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9mb3JtID0gdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG5cclxuICAgIHRoaXMub25IYW5kbGVVcGRhdGVGb3JtLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICghdGhpcy5fZm9ybSkge1xyXG4gICAgICB0aGlzLl9mb3JtID0gdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
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
|
+
this._form = null;
|
|
21
|
+
// eslint-disable-next-line object-curly-newline
|
|
22
|
+
this._plusValidations = [];
|
|
23
|
+
this.changesUnsubscribe = new Subject();
|
|
24
|
+
this.formBase = () => {
|
|
25
|
+
// return this.fb.group(this.createControl());
|
|
26
|
+
return this.createControl();
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
handleInternalPlusValidation(mainField, data) {
|
|
30
|
+
const { operator, field, value } = mainField;
|
|
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
|
+
return validators[operator](data?.[field] || data, value);
|
|
37
|
+
}
|
|
38
|
+
makeInternalPlusValidation(data, sourceField, settings, rowIndex) {
|
|
39
|
+
const changeFields = (show) => {
|
|
40
|
+
const saved = [...this.fields];
|
|
41
|
+
saved.map((val) => {
|
|
42
|
+
const valSaved = {
|
|
43
|
+
...val
|
|
44
|
+
};
|
|
45
|
+
if (val.name === sourceField) {
|
|
46
|
+
this._plusValidations[rowIndex] = {
|
|
47
|
+
[sourceField]: {
|
|
48
|
+
...valSaved,
|
|
49
|
+
alwaysShow: show
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
this.createOneControl(val.name, this.formValues?.controls[rowIndex], show);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this._plusValidations[rowIndex] = {
|
|
56
|
+
...valSaved
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
const validated = this.handleInternalPlusValidation(settings, data);
|
|
63
|
+
changeFields(validated);
|
|
64
|
+
}
|
|
65
|
+
createOneControl(fieldName, ctrl, create = true) {
|
|
66
|
+
const { fields } = this;
|
|
67
|
+
if (!fields)
|
|
68
|
+
return;
|
|
69
|
+
fields.forEach((field) => {
|
|
70
|
+
const { fieldType, validations, name, disabled } = field;
|
|
71
|
+
if (name !== fieldName)
|
|
72
|
+
return;
|
|
73
|
+
let { value } = field;
|
|
74
|
+
if (fieldType === 'button')
|
|
75
|
+
return;
|
|
76
|
+
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
77
|
+
value = '';
|
|
78
|
+
}
|
|
79
|
+
if (create) {
|
|
80
|
+
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
81
|
+
if (disabled || this.disabled)
|
|
82
|
+
control.disable();
|
|
83
|
+
ctrl.addControl(name, control);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
ctrl.removeControl(name);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
createControl(data) {
|
|
91
|
+
const { fields } = this;
|
|
92
|
+
if (!fields)
|
|
93
|
+
return null;
|
|
94
|
+
// eslint-disable-next-line object-curly-newline
|
|
95
|
+
const group = this.fb.group({});
|
|
96
|
+
fields.forEach((field) => {
|
|
97
|
+
const { fieldType, validations, name, disabled, alwaysShow } = field;
|
|
98
|
+
let { value } = field;
|
|
99
|
+
if (field.alwaysShowPlusValidation) {
|
|
100
|
+
if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data))
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
else if (!alwaysShow)
|
|
104
|
+
return;
|
|
105
|
+
if (fieldType === 'button')
|
|
106
|
+
return;
|
|
107
|
+
if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {
|
|
108
|
+
value = '';
|
|
109
|
+
}
|
|
110
|
+
const control = this.fb.control(value, this.bindValidations(validations || []));
|
|
111
|
+
if (disabled || this.disabled)
|
|
112
|
+
control.disable();
|
|
113
|
+
group.addControl(name, control);
|
|
114
|
+
});
|
|
115
|
+
return group;
|
|
116
|
+
}
|
|
117
|
+
bindValidations(validations) {
|
|
118
|
+
if (validations.length > 0) {
|
|
119
|
+
const validList = [];
|
|
120
|
+
validations.forEach((valid) => {
|
|
121
|
+
const validated = valid.param
|
|
122
|
+
? validators[valid.name](valid.param)
|
|
123
|
+
: validators[valid.name];
|
|
124
|
+
validList.push(validated);
|
|
125
|
+
});
|
|
126
|
+
return Validators.compose(validList);
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
buildForm() {
|
|
131
|
+
const form = this.fb.group({
|
|
132
|
+
fields: this.fb.array([])
|
|
133
|
+
});
|
|
134
|
+
form?.controls.fields?.valueChanges.subscribe((_) => {
|
|
135
|
+
this.watchForChanges();
|
|
136
|
+
});
|
|
137
|
+
return form;
|
|
138
|
+
}
|
|
139
|
+
watchForChanges() {
|
|
140
|
+
const { fields, changesUnsubscribe } = this;
|
|
141
|
+
changesUnsubscribe.next();
|
|
142
|
+
this.formValues?.controls?.map((control, index) => {
|
|
143
|
+
fields.forEach((fieldConfig) => {
|
|
144
|
+
const { name, alwaysShowPlusValidation } = fieldConfig;
|
|
145
|
+
if (!alwaysShowPlusValidation)
|
|
146
|
+
return;
|
|
147
|
+
const { field } = alwaysShowPlusValidation;
|
|
148
|
+
if (field) {
|
|
149
|
+
control.controls[field]?.valueChanges.pipe(takeUntil(changesUnsubscribe)).subscribe((_) => {
|
|
150
|
+
this.makeInternalPlusValidation(_, name, alwaysShowPlusValidation, index);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
return null;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
get formValues() {
|
|
158
|
+
return this._form ? this._form.get('fields') : null;
|
|
159
|
+
}
|
|
160
|
+
fillValues() {
|
|
161
|
+
const { data, qtd } = this;
|
|
162
|
+
if ((!this._form) && qtd)
|
|
163
|
+
return;
|
|
164
|
+
if (qtd > 0) {
|
|
165
|
+
Array(qtd)
|
|
166
|
+
.fill(null)
|
|
167
|
+
.map((_, index) => {
|
|
168
|
+
let form = this.createControl();
|
|
169
|
+
if (data && data[index]) {
|
|
170
|
+
form = this.createControl(data[index]);
|
|
171
|
+
const handledData = data[index];
|
|
172
|
+
Object.entries(handledData).forEach(([key, value]) => {
|
|
173
|
+
if (MonkeyUtils.persistNullEmptyUndefined(value) && form?.controls[key]) {
|
|
174
|
+
form?.controls[key].setValue(value);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
this.formValues?.push(form);
|
|
179
|
+
return null;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
ngOnInit() {
|
|
184
|
+
this._form = this.buildForm();
|
|
185
|
+
this.fillValues();
|
|
186
|
+
this.onHandleUpdateForm.subscribe(() => {
|
|
187
|
+
this.fillValues();
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
ngOnChanges() {
|
|
191
|
+
if (!this._form) {
|
|
192
|
+
this._form = this.buildForm();
|
|
193
|
+
}
|
|
194
|
+
this.fillValues();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
BaseDynamicArray.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseDynamicArray, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
|
|
198
|
+
BaseDynamicArray.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", 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 });
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseDynamicArray, decorators: [{
|
|
200
|
+
type: Directive,
|
|
201
|
+
args: [{
|
|
202
|
+
selector: '[baseDynamicArray]'
|
|
203
|
+
}]
|
|
204
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { onHandleSubmit: [{
|
|
205
|
+
type: Input
|
|
206
|
+
}], onHandleUpdateForm: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}], onHandleSubmitFormReady: [{
|
|
209
|
+
type: Output
|
|
210
|
+
}], self: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], fields: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], data: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], qtd: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}], disabled: [{
|
|
219
|
+
type: Input
|
|
220
|
+
}] } });
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLGdCQUFpQixTQUFRLGFBQWE7SUF3QjFELFlBQW9CLEVBQWU7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBdkIxQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1Qyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUl0RSxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUkvQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBRWhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsVUFBSyxHQUFxQixJQUFJLENBQUM7UUFFL0IsZ0RBQWdEO1FBQ2hELHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUVyQix1QkFBa0IsR0FB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QUFVLEVBQUUsSUFBSSxDQUFDLElBQVcsQ0FBQyxDQUFDO2dCQUVuQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7NkdBM05tQixnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO2tHQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFRSxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTW9ua2V5VXRpbHMgfSBmcm9tICdtb25rZXktc3R5bGUtZ3VpZGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTUVDWEZpZWxkQ29uZmlnLCBNRUNYRmllbGRDb25maWdWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IHZhbGlkYXRvcnMgfSBmcm9tICcuL2Jhc2UtdmFsaWRhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tiYXNlRHluYW1pY0FycmF5XSdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUR5bmFtaWNBcnJheSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG9uSGFuZGxlU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQElucHV0KCkgb25IYW5kbGVVcGRhdGVGb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpIG9uSGFuZGxlU3VibWl0Rm9ybVJlYWR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBJbnB1dCgpIHNlbGY6IGFueTtcblxuICBASW5wdXQoKSBmaWVsZHM6IE1FQ1hGaWVsZENvbmZpZ1tdID0gW107XG5cbiAgQElucHV0KCkgZGF0YTogYW55O1xuXG4gIEBJbnB1dCgpIHF0ZDogbnVtYmVyID0gMTtcblxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIF9mb3JtOiBGb3JtR3JvdXAgfCBudWxsID0gbnVsbDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JqZWN0LWN1cmx5LW5ld2xpbmVcbiAgX3BsdXNWYWxpZGF0aW9uczogYW55W10gPSBbXTtcblxuICBwcml2YXRlIGNoYW5nZXNVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnRlcm5hbFBsdXNWYWxpZGF0aW9uKFxuICAgIG1haW5GaWVsZDogYW55LFxuICAgIGRhdGE6IGFueVxuICApIHtcbiAgICBjb25zdCB7IG9wZXJhdG9yLCBmaWVsZCwgdmFsdWUgfSA9IG1haW5GaWVsZDtcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBhbnkgPSB7XG4gICAgICBlOiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPT09IHZhbDI7IH0sXG4gICAgICBsdDogKHZhbDE6IGFueSwgdmFsMjogc3RyaW5nKSA9PiB7IHJldHVybiB2YWwxIDwgdmFsMjsgfSxcbiAgICAgIGd0OiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPiB2YWwyOyB9XG4gICAgfTtcblxuICAgIHJldHVybiB2YWxpZGF0b3JzW29wZXJhdG9yXShkYXRhPy5bZmllbGRdIHx8IGRhdGEsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXG4gICAgZGF0YTogYW55LFxuICAgIHNvdXJjZUZpZWxkOiBzdHJpbmcsXG4gICAgc2V0dGluZ3M6IGFueSxcbiAgICByb3dJbmRleDogbnVtYmVyXG4gICkge1xuICAgIGNvbnN0IGNoYW5nZUZpZWxkcyA9IChzaG93OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBzYXZlZCA9IFsuLi50aGlzLmZpZWxkc107XG5cbiAgICAgIHNhdmVkLm1hcCgodmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFNhdmVkID0ge1xuICAgICAgICAgIC4uLnZhbFxuICAgICAgICB9O1xuICAgICAgICBpZiAodmFsLm5hbWUgPT09IHNvdXJjZUZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5fcGx1c1ZhbGlkYXRpb25zW3Jvd0luZGV4XSA9IHtcbiAgICAgICAgICAgIFtzb3VyY2VGaWVsZF06IHtcbiAgICAgICAgICAgICAgLi4udmFsU2F2ZWQsXG4gICAgICAgICAgICAgIGFsd2F5c1Nob3c6IHNob3dcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuY3JlYXRlT25lQ29udHJvbCh2YWwubmFtZSwgdGhpcy5mb3JtVmFsdWVzPy5jb250cm9sc1tyb3dJbmRleF0sIHNob3cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3BsdXNWYWxpZGF0aW9uc1tyb3dJbmRleF0gPSB7XG4gICAgICAgICAgICAuLi52YWxTYXZlZFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsaWRhdGVkID0gdGhpcy5oYW5kbGVJbnRlcm5hbFBsdXNWYWxpZGF0aW9uKHNldHRpbmdzLCBkYXRhKTtcbiAgICBjaGFuZ2VGaWVsZHModmFsaWRhdGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT25lQ29udHJvbChmaWVsZE5hbWU6IHN0cmluZywgY3RybDogYW55LCBjcmVhdGUgPSB0cnVlKSB7XG4gICAgY29uc3QgeyBmaWVsZHMgfSA9IHRoaXM7XG4gICAgaWYgKCFmaWVsZHMpIHJldHVybjtcblxuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZDogTUVDWEZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkVHlwZSwgdmFsaWRhdGlvbnMsIG5hbWUsIGRpc2FibGVkIH0gPSBmaWVsZDtcbiAgICAgIGlmIChuYW1lICE9PSBmaWVsZE5hbWUpIHJldHVybjtcbiAgICAgIGxldCB7IHZhbHVlIH0gPSBmaWVsZDtcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdidXR0b24nKSByZXR1cm47XG4gICAgICBpZiAoZmllbGRUeXBlID09PSAncmFkaW9idXR0b24nIHx8IGZpZWxkVHlwZSA9PT0gJ2NoZWNrYm94JyB8fCBmaWVsZFR5cGUgPT09ICdzZWxlY3QnKSB7XG4gICAgICAgIHZhbHVlID0gJyc7XG4gICAgICB9XG4gICAgICBpZiAoY3JlYXRlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2wodmFsdWUsIHRoaXMuYmluZFZhbGlkYXRpb25zKHZhbGlkYXRpb25zIHx8IFtdKSk7XG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKSBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgY3RybC5hZGRDb250cm9sKG5hbWUsIGNvbnRyb2wpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3RybC5yZW1vdmVDb250cm9sKG5hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb250cm9sKGRhdGE/OiBhbnkpIHtcbiAgICBjb25zdCB7IGZpZWxkcyB9ID0gdGhpcztcbiAgICBpZiAoIWZpZWxkcykgcmV0dXJuIG51bGw7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9iamVjdC1jdXJseS1uZXdsaW5lXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZFR5cGUsIHZhbGlkYXRpb25zLCBuYW1lLCBkaXNhYmxlZCwgYWx3YXlzU2hvdyB9ID0gZmllbGQ7XG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XG4gICAgICBpZiAoZmllbGQuYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uKSB7XG4gICAgICAgIGlmICghdGhpcy5oYW5kbGVJbnRlcm5hbFBsdXNWYWxpZGF0aW9uKGZpZWxkLmFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbiwgZGF0YSkpIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAoIWFsd2F5c1Nob3cpIHJldHVybjtcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdidXR0b24nKSByZXR1cm47XG4gICAgICBpZiAoZmllbGRUeXBlID09PSAncmFkaW9idXR0b24nIHx8IGZpZWxkVHlwZSA9PT0gJ2NoZWNrYm94JyB8fCBmaWVsZFR5cGUgPT09ICdzZWxlY3QnKSB7XG4gICAgICAgIHZhbHVlID0gJyc7XG4gICAgICB9XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mYi5jb250cm9sKHZhbHVlLCB0aGlzLmJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9ucyB8fCBbXSkpO1xuICAgICAgaWYgKGRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgZ3JvdXAuYWRkQ29udHJvbChuYW1lIGFzIHN0cmluZywgY29udHJvbCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9uczogTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yW10pIHtcbiAgICBpZiAodmFsaWRhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdmFsaWRMaXN0OiBhbnlbXSA9IFtdO1xuICAgICAgdmFsaWRhdGlvbnMuZm9yRWFjaCgodmFsaWQ6IE1FQ1hGaWVsZENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSB2YWxpZC5wYXJhbVxuICAgICAgICAgID8gdmFsaWRhdG9yc1t2YWxpZC5uYW1lXSh2YWxpZC5wYXJhbSlcbiAgICAgICAgICA6IHZhbGlkYXRvcnNbdmFsaWQubmFtZV07XG4gICAgICAgIHZhbGlkTGlzdC5wdXNoKHZhbGlkYXRlZCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBWYWxpZGF0b3JzLmNvbXBvc2UodmFsaWRMaXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGZpZWxkczogdGhpcy5mYi5hcnJheShbXSlcbiAgICB9KTtcblxuICAgIGZvcm0/LmNvbnRyb2xzLmZpZWxkcz8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy53YXRjaEZvckNoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaEZvckNoYW5nZXMoKSB7XG4gICAgY29uc3QgeyBmaWVsZHMsIGNoYW5nZXNVbnN1YnNjcmliZSB9ID0gdGhpcztcbiAgICBjaGFuZ2VzVW5zdWJzY3JpYmUubmV4dCgpO1xuXG4gICAgdGhpcy5mb3JtVmFsdWVzPy5jb250cm9scz8ubWFwKChjb250cm9sOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZENvbmZpZzogTUVDWEZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uIH0gPSBmaWVsZENvbmZpZztcbiAgICAgICAgaWYgKCFhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24pIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBmaWVsZCB9ID0gYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICBjb250cm9sLmNvbnRyb2xzW2ZpZWxkXT8udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwoY2hhbmdlc1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChfOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXG4gICAgICAgICAgICAgIF8sXG4gICAgICAgICAgICAgIG5hbWUgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICBhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sXG4gICAgICAgICAgICAgIGluZGV4XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZvcm1CYXNlID0gKCkgPT4ge1xuICAgIC8vIHJldHVybiB0aGlzLmZiLmdyb3VwKHRoaXMuY3JlYXRlQ29udHJvbCgpKTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb250cm9sKCk7XG4gIH07XG5cbiAgcHVibGljIGdldCBmb3JtVmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9mb3JtID8gKHRoaXMuX2Zvcm0uZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBmaWxsVmFsdWVzKCkge1xuICAgIGNvbnN0IHsgZGF0YSwgcXRkIH0gPSB0aGlzO1xuICAgIGlmICgoIXRoaXMuX2Zvcm0pICYmIHF0ZCkgcmV0dXJuO1xuICAgIGlmIChxdGQgPiAwKSB7XG4gICAgICBBcnJheTxhbnk+KHF0ZClcbiAgICAgICAgLmZpbGwobnVsbClcbiAgICAgICAgLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICBsZXQgZm9ybSA9IHRoaXMuY3JlYXRlQ29udHJvbCgpO1xuICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbaW5kZXhdKSB7XG4gICAgICAgICAgICBmb3JtID0gdGhpcy5jcmVhdGVDb250cm9sKGRhdGFbaW5kZXhdKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZWREYXRhID0gZGF0YVtpbmRleF07XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVkRGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChNb25rZXlVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHZhbHVlKSAmJiBmb3JtPy5jb250cm9sc1trZXldKSB7XG4gICAgICAgICAgICAgICAgZm9ybT8uY29udHJvbHNba2V5XS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZvcm1WYWx1ZXM/LnB1c2goZm9ybSBhcyBhbnkpO1xuXG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2Zvcm0gPSB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIHRoaXMuZmlsbFZhbHVlcygpO1xuXG4gICAgdGhpcy5vbkhhbmRsZVVwZGF0ZUZvcm0uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmlsbFZhbHVlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLl9mb3JtKSB7XG4gICAgICB0aGlzLl9mb3JtID0gdGhpcy5idWlsZEZvcm0oKTtcbiAgICB9XG4gICAgdGhpcy5maWxsVmFsdWVzKCk7XG4gIH1cbn1cbiJdfQ==
|