special-forms 18.0.1 → 20.0.0-SNAPSHOT

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 (95) hide show
  1. package/README.md +147 -147
  2. package/fesm2022/special-forms.mjs +143 -147
  3. package/fesm2022/special-forms.mjs.map +1 -1
  4. package/index.d.ts +586 -5
  5. package/lib/styles/final.scss +2 -2
  6. package/lib/styles/styles-config.scss +36 -36
  7. package/lib/styles/tailwind-final.scss +7 -7
  8. package/package.json +7 -9
  9. package/esm2022/lib/components/index.mjs +0 -14
  10. package/esm2022/lib/components/special-autocomplete/special-autocomplete.component.mjs +0 -75
  11. package/esm2022/lib/components/special-autocomplete/special-autocomplete.interface.mjs +0 -2
  12. package/esm2022/lib/components/special-checkbox/special-checkbox.component.mjs +0 -38
  13. package/esm2022/lib/components/special-checkbox/special-checkbox.interface.mjs +0 -3
  14. package/esm2022/lib/components/special-datepicker/special-datepicker.component.mjs +0 -42
  15. package/esm2022/lib/components/special-datepicker/special-datepicker.interface.mjs +0 -3
  16. package/esm2022/lib/components/special-dropdown/special-dropdown.component.mjs +0 -47
  17. package/esm2022/lib/components/special-dropdown/special-dropdown.interface.mjs +0 -3
  18. package/esm2022/lib/components/special-form/special-form.component.mjs +0 -99
  19. package/esm2022/lib/components/special-form/special-form.module.mjs +0 -79
  20. package/esm2022/lib/components/special-input/special-input.component.mjs +0 -55
  21. package/esm2022/lib/components/special-input/special-input.interface.mjs +0 -2
  22. package/esm2022/lib/components/special-label/special-label.component.mjs +0 -27
  23. package/esm2022/lib/components/special-label/special-label.interface.mjs +0 -2
  24. package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +0 -97
  25. package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +0 -2
  26. package/esm2022/lib/components/special-richtext/special-richtext.component.mjs +0 -53
  27. package/esm2022/lib/components/special-richtext/special-richtext.interface.mjs +0 -3
  28. package/esm2022/lib/components/special-text-area/special-text-area.component.mjs +0 -43
  29. package/esm2022/lib/components/special-text-area/special-text-area.interface.mjs +0 -2
  30. package/esm2022/lib/components/special-upload/filename.pipe.mjs +0 -18
  31. package/esm2022/lib/components/special-upload/preview-image-pipe.mjs +0 -104
  32. package/esm2022/lib/components/special-upload/special-upload.component.mjs +0 -146
  33. package/esm2022/lib/components/special-upload/special-upload.interface.mjs +0 -2
  34. package/esm2022/lib/components/special-upload/truncate.pipe.mjs +0 -14
  35. package/esm2022/lib/core/aux-data/control-types.enum.mjs +0 -18
  36. package/esm2022/lib/core/aux-data/input-types.mjs +0 -16
  37. package/esm2022/lib/core/forms/special-forms.mjs +0 -240
  38. package/esm2022/lib/core/interfaces/field-basics.interfaces.mjs +0 -2
  39. package/esm2022/lib/core/interfaces/form.interfaces.mjs +0 -2
  40. package/esm2022/lib/core/interfaces/special-control.interface.mjs +0 -3
  41. package/esm2022/lib/core/masks/currency.mask.mjs +0 -11
  42. package/esm2022/lib/core/masks/index.mjs +0 -3
  43. package/esm2022/lib/core/masks/number.mask.mjs +0 -3
  44. package/esm2022/lib/core/pipes/controls-list-pipe/controls-list.pipe.mjs +0 -18
  45. package/esm2022/lib/core/pipes/error-message-pipe/error.pipe.mjs +0 -23
  46. package/esm2022/lib/core/pipes/index.mjs +0 -4
  47. package/esm2022/lib/core/pipes/text-by-function/text-by-function.pipe.mjs +0 -22
  48. package/esm2022/lib/core/services/error-state-matcher/error-matcher.mjs +0 -13
  49. package/esm2022/lib/core/services/index.mjs +0 -4
  50. package/esm2022/lib/core/services/special-form-builder/special-form-builder.service.mjs +0 -156
  51. package/esm2022/public-api.mjs +0 -13
  52. package/esm2022/special-forms.mjs +0 -5
  53. package/lib/components/index.d.ts +0 -23
  54. package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +0 -19
  55. package/lib/components/special-autocomplete/special-autocomplete.interface.d.ts +0 -19
  56. package/lib/components/special-checkbox/special-checkbox.component.d.ts +0 -12
  57. package/lib/components/special-checkbox/special-checkbox.interface.d.ts +0 -13
  58. package/lib/components/special-datepicker/special-datepicker.component.d.ts +0 -13
  59. package/lib/components/special-datepicker/special-datepicker.interface.d.ts +0 -12
  60. package/lib/components/special-dropdown/special-dropdown.component.d.ts +0 -11
  61. package/lib/components/special-dropdown/special-dropdown.interface.d.ts +0 -17
  62. package/lib/components/special-form/special-form.component.d.ts +0 -31
  63. package/lib/components/special-form/special-form.module.d.ts +0 -20
  64. package/lib/components/special-input/special-input.component.d.ts +0 -15
  65. package/lib/components/special-input/special-input.interface.d.ts +0 -17
  66. package/lib/components/special-label/special-label.component.d.ts +0 -13
  67. package/lib/components/special-label/special-label.interface.d.ts +0 -13
  68. package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +0 -22
  69. package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.d.ts +0 -19
  70. package/lib/components/special-richtext/special-richtext.component.d.ts +0 -15
  71. package/lib/components/special-richtext/special-richtext.interface.d.ts +0 -11
  72. package/lib/components/special-text-area/special-text-area.component.d.ts +0 -13
  73. package/lib/components/special-text-area/special-text-area.interface.d.ts +0 -8
  74. package/lib/components/special-upload/filename.pipe.d.ts +0 -7
  75. package/lib/components/special-upload/preview-image-pipe.d.ts +0 -23
  76. package/lib/components/special-upload/special-upload.component.d.ts +0 -31
  77. package/lib/components/special-upload/special-upload.interface.d.ts +0 -15
  78. package/lib/components/special-upload/truncate.pipe.d.ts +0 -7
  79. package/lib/core/aux-data/control-types.enum.d.ts +0 -16
  80. package/lib/core/aux-data/input-types.d.ts +0 -2
  81. package/lib/core/forms/special-forms.d.ts +0 -108
  82. package/lib/core/interfaces/field-basics.interfaces.d.ts +0 -22
  83. package/lib/core/interfaces/form.interfaces.d.ts +0 -64
  84. package/lib/core/interfaces/special-control.interface.d.ts +0 -4
  85. package/lib/core/masks/currency.mask.d.ts +0 -1
  86. package/lib/core/masks/index.d.ts +0 -2
  87. package/lib/core/masks/number.mask.d.ts +0 -1
  88. package/lib/core/pipes/controls-list-pipe/controls-list.pipe.d.ts +0 -11
  89. package/lib/core/pipes/error-message-pipe/error.pipe.d.ts +0 -12
  90. package/lib/core/pipes/index.d.ts +0 -3
  91. package/lib/core/pipes/text-by-function/text-by-function.pipe.d.ts +0 -7
  92. package/lib/core/services/error-state-matcher/error-matcher.d.ts +0 -8
  93. package/lib/core/services/index.d.ts +0 -3
  94. package/lib/core/services/special-form-builder/special-form-builder.service.d.ts +0 -25
  95. package/public-api.d.ts +0 -9
@@ -1,240 +0,0 @@
1
- import { FormArray, FormControl, FormGroup, } from '@angular/forms';
2
- export class SpecialFormControl extends FormControl {
3
- constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, length, placeholder, readOnly, required, tooltip, errorMessages, disabled, }) {
4
- super(defaultValue, validators, asyncValidators);
5
- this.name = name;
6
- this.placeholder = placeholder;
7
- this.label = label;
8
- this.tooltip = tooltip;
9
- this.icon = icon;
10
- this.elementId = elementId;
11
- this.settings = settings;
12
- this.type = type;
13
- this.styleClasses = styleClasses;
14
- this.hidden = hidden;
15
- this.length = length;
16
- this.readOnly = readOnly;
17
- this.required = required;
18
- this.errorMessages = errorMessages;
19
- disabled ? this.disable() : this.enable();
20
- }
21
- setReadOnly(status = true) {
22
- this.readOnly = status;
23
- }
24
- setDisabled(status = true) {
25
- status ? this.disable() : this.enable();
26
- }
27
- setHidden(status = true) {
28
- this.hidden = status;
29
- }
30
- }
31
- export class SpecialFormGroup extends FormGroup {
32
- constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, length, placeholder, readOnly, required, tooltip, disabled, }, controls) {
33
- super(controls, validators, asyncValidators);
34
- this.name = name;
35
- this.placeholder = placeholder;
36
- this.label = label;
37
- this.tooltip = tooltip;
38
- this.icon = icon;
39
- this.elementId = elementId;
40
- this.settings = settings;
41
- this.type = type;
42
- this.styleClasses = styleClasses;
43
- this.hidden = hidden;
44
- this.length = length;
45
- this.readOnly = readOnly;
46
- this.required = required;
47
- this.defaultValue = defaultValue;
48
- disabled ? this.disable() : this.enable();
49
- }
50
- getDirty() {
51
- this.markAsDirty();
52
- Object.values(this.controls).forEach((control) => {
53
- if (control instanceof SpecialFormControl) {
54
- control.markAsDirty();
55
- }
56
- else if (control instanceof SpecialFormGroup) {
57
- control.getDirty();
58
- }
59
- else if (control instanceof SpecialFormArray) {
60
- control.getDirty();
61
- }
62
- });
63
- }
64
- specialReset(value = {}) {
65
- const aux = {};
66
- Object.entries(this.controls).map(([key, control]) => {
67
- if (control instanceof SpecialFormControl) {
68
- aux[key] = control.defaultValue;
69
- }
70
- else if (control instanceof SpecialFormArray) {
71
- control.clear();
72
- }
73
- });
74
- this.reset({ ...aux, ...value });
75
- }
76
- setReadOnly(status = true) {
77
- Object.values(this.controls).map((value) => {
78
- if (value instanceof SpecialFormControl ||
79
- value instanceof SpecialFormArray ||
80
- value instanceof SpecialFormGroup) {
81
- value.setReadOnly(status);
82
- }
83
- });
84
- }
85
- setReadOnlyByFields(fieldsObject) {
86
- Object.entries(fieldsObject).map(([key, value]) => {
87
- const control = this.controls[key];
88
- if (control instanceof SpecialFormControl) {
89
- control.readOnly = value;
90
- }
91
- });
92
- }
93
- setHiddenByFields(fields) {
94
- Object.entries(fields).map(([key, value]) => {
95
- const control = this.controls[key];
96
- if (control instanceof SpecialFormControl) {
97
- control.hidden = value;
98
- }
99
- });
100
- }
101
- setDisabled(status) {
102
- Object.values(this.controls).map((value) => {
103
- if (value instanceof SpecialFormControl ||
104
- value instanceof SpecialFormArray ||
105
- value instanceof SpecialFormGroup) {
106
- value.setDisabled(status);
107
- }
108
- });
109
- }
110
- setDisabledByFields(fieldsObject) {
111
- Object.entries(fieldsObject).map((entries) => {
112
- if (this.controls[entries[0]] instanceof SpecialFormControl) {
113
- entries[1]
114
- ? this.controls[entries[0]].enable()
115
- : this.controls[entries[0]].disable();
116
- }
117
- });
118
- }
119
- /**
120
- * donde value es el objeto semilla y detailForm es un arreglo de form key para dar un marco al formarray
121
- */
122
- setFormValue(value) {
123
- this.specialReset(value);
124
- Object.entries(this.controls)
125
- .filter(([_key, control]) => control instanceof SpecialFormArray)
126
- .map(([key, control]) => {
127
- control.fillFormArray(value[key]);
128
- });
129
- }
130
- /**
131
- * Método que retorna
132
- */
133
- getIdPkey() {
134
- return Object.values(this.controls).find((control) => control instanceof SpecialFormControl && control.type === 'PRIMARY-KEY');
135
- }
136
- }
137
- export class SpecialFormArray extends FormArray {
138
- constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, placeholder, readOnly, required, tooltip, errorMessages, disabled, }, formCreation, controls) {
139
- super(controls, validators, asyncValidators);
140
- this.formCreation = formCreation;
141
- this.form = this.formCreation();
142
- this.name = name;
143
- this.placeholder = placeholder;
144
- this.label = label;
145
- this.tooltip = tooltip;
146
- this.icon = icon;
147
- this.elementId = elementId;
148
- this.settings = settings;
149
- this.type = type;
150
- this.styleClasses = styleClasses;
151
- this.hidden = hidden;
152
- this.readOnly = readOnly;
153
- this.required = required;
154
- this.defaultValue = defaultValue;
155
- this.errorMessages = errorMessages;
156
- disabled ? this.disable() : this.enable();
157
- }
158
- fillFormArray(data) {
159
- this.form.reset();
160
- this.clear();
161
- data.forEach((item) => {
162
- const form = this.formCreation(item);
163
- this.push(form);
164
- });
165
- }
166
- addItem() {
167
- const form = this.formCreation(this.form.value);
168
- this.form.specialReset();
169
- this.push(form);
170
- this.markAsDirty();
171
- }
172
- specialPush(index) {
173
- const form = this.formCreation(this.form.value);
174
- if (!index)
175
- this.push(form);
176
- else
177
- this.controls[index].reset(this.form.value);
178
- }
179
- specialInsert(index = 0) {
180
- const form = this.formCreation(this.form.value);
181
- this.insert(index, form);
182
- }
183
- specialEdit(index, newValue) {
184
- this.controls[index].reset({ ...this.controls[index].value, ...newValue });
185
- this.markAsDirty();
186
- }
187
- /**
188
- * Vuelve todos los controles del formArray de lectura o de sololectura
189
- * @param status
190
- */
191
- setReadOnly(status) {
192
- this.readOnly = status;
193
- this.controls.forEach((control) => {
194
- if (control instanceof SpecialFormGroup) {
195
- control.setReadOnly(status);
196
- }
197
- });
198
- }
199
- /**
200
- * Vuelve todos los controles del formArray habilitados o deshabilitados
201
- * @param status
202
- */
203
- setDisabled(status) {
204
- status ? this.disable() : this.enable();
205
- this.controls.forEach((control) => {
206
- if (control instanceof SpecialFormGroup) {
207
- control.setDisabled(status);
208
- }
209
- });
210
- }
211
- /**
212
- * Permite editar un control especifico.
213
- * @param index
214
- */
215
- editControl(index) {
216
- this.form.reset(this.controls[index].value);
217
- }
218
- getDirty() {
219
- this.markAsDirty();
220
- this.form.getDirty();
221
- this.controls.forEach((item) => {
222
- item.getDirty();
223
- });
224
- }
225
- recursiveFillForm(form, data) {
226
- Object.entries(form.controls).map(([key, control]) => {
227
- if (control instanceof FormControl) {
228
- control.setValue(data[key]);
229
- }
230
- else if (control instanceof FormArray) {
231
- data[key].forEach(() => { });
232
- }
233
- else if (control instanceof FormGroup) {
234
- control.reset(data[key]);
235
- }
236
- });
237
- return form;
238
- }
239
- }
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFZeEIsTUFBTSxPQUFPLGtCQUF5QyxTQUFRLFdBQVc7SUFnQnZFLFlBQVksRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLElBQUksRUFDSixVQUFVLEVBQ1YsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLEVBQ1AsYUFBYSxFQUNiLFFBQVEsR0FDTztRQUNmLEtBQUssQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxTQUFrQixJQUFJO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBa0IsSUFBSTtRQUNoQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUk7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBQ0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFpQjdDLFlBQ0UsRUFDRSxJQUFJLEVBQ0osUUFBUSxFQUNSLElBQUksRUFDSixVQUFVLEVBQ1YsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLEVBQ1AsUUFBUSxHQUNLLEVBQ2YsUUFFQztRQUVELEtBQUssQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxPQUFPLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLENBQUM7aUJBQU0sSUFBSSxPQUFPLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sSUFBSSxPQUFPLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDckIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxPQUFPLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztnQkFDMUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDbEMsQ0FBQztpQkFBTSxJQUFJLE9BQU8sWUFBWSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMvQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQWtCLElBQUk7UUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekMsSUFDRSxLQUFLLFlBQVksa0JBQWtCO2dCQUNuQyxLQUFLLFlBQVksZ0JBQWdCO2dCQUNqQyxLQUFLLFlBQVksZ0JBQWdCLEVBQ2pDLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsWUFBd0M7UUFDMUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ2hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsSUFBSSxPQUFPLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQWtDO1FBQ2xELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLElBQUksT0FBTyxZQUFZLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBZTtRQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6QyxJQUNFLEtBQUssWUFBWSxrQkFBa0I7Z0JBQ25DLEtBQUssWUFBWSxnQkFBZ0I7Z0JBQ2pDLEtBQUssWUFBWSxnQkFBZ0IsRUFDakMsQ0FBQztnQkFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxZQUFpQjtRQUNuQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxrQkFBa0IsRUFBRSxDQUFDO2dCQUM1RCxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtvQkFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBRUgsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDMUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sWUFBWSxnQkFBZ0IsQ0FBQzthQUNoRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ3JCLE9BQTRCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBRUgsU0FBUztRQUNQLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUN0QyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1YsT0FBTyxZQUFZLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUNuQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUFTO0lBa0I3QyxZQUNFLEVBQ0UsSUFBSSxFQUNKLFFBQVEsRUFDUixJQUFJLEVBQ0osVUFBVSxFQUNWLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sSUFBSSxFQUNKLEtBQUssRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLEVBQ1AsYUFBYSxFQUNiLFFBQVEsR0FDTSxFQUNoQixZQUFvQyxFQUNwQyxRQUEyQjtRQUUzQixLQUFLLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBVztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYztRQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBSyxHQUFHLENBQUM7UUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYSxFQUFFLFFBQWdCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFFSCxXQUFXLENBQUMsTUFBZTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2hDLElBQUksT0FBTyxZQUFZLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUVILFdBQVcsQ0FBQyxNQUFlO1FBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoQyxJQUFJLE9BQU8sWUFBWSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFFSCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNWLElBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFlLEVBQUUsSUFBUztRQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ25ELElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIEZvcm1BcnJheSxcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgSUZpZWxkQmFzaWNEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgSUFycmF5U2V0dGluZ3MsXHJcbiAgSUZvcm1TZXR0aW5ncyxcclxuICBUU3BlY2lhbEZpZWxkcyxcclxuICBUU3BlY2lhbEZvcm0sXHJcbiAgVFNwZWNpYWxBcnJheSxcclxuICBUUmF3RmllbGRzLFxyXG59IGZyb20gJy4uL2ludGVyZmFjZXMvZm9ybS5pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5leHBvcnQgY2xhc3MgU3BlY2lhbEZvcm1Db250cm9sPFQgZXh0ZW5kcyBUUmF3RmllbGRzPiBleHRlbmRzIEZvcm1Db250cm9sIHtcclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBwbGFjZWhvbGRlcjogVFsncGxhY2Vob2xkZXInXTtcclxuICBwdWJsaWMgbGFiZWw6IFRbJ2xhYmVsJ107XHJcbiAgcHVibGljIHRvb2x0aXA6IFRbJ3Rvb2x0aXAnXTtcclxuICBwdWJsaWMgaWNvbjogVFsnaWNvbiddO1xyXG4gIHB1YmxpYyBlbGVtZW50SWQ6IFRbJ2VsZW1lbnRJZCddO1xyXG4gIHB1YmxpYyBzdHlsZUNsYXNzZXM6IFRbJ3N0eWxlQ2xhc3NlcyddO1xyXG4gIHB1YmxpYyBsZW5ndGg6IFRbJ2xlbmd0aCddO1xyXG4gIHB1YmxpYyByZXF1aXJlZDogVFsncmVxdWlyZWQnXTtcclxuICBwdWJsaWMgaGlkZGVuOiBUWydoaWRkZW4nXTtcclxuICBwdWJsaWMgcmVhZE9ubHk6IFRbJ3JlYWRPbmx5J107XHJcbiAgcHVibGljIHNldHRpbmdzOiBUWydzZXR0aW5ncyddO1xyXG4gIHB1YmxpYyB0eXBlOiBUWyd0eXBlJ107XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IFRbJ2Vycm9yTWVzc2FnZXMnXTtcclxuXHJcbiAgY29uc3RydWN0b3Ioe1xyXG4gICAgbmFtZSxcclxuICAgIHNldHRpbmdzLFxyXG4gICAgdHlwZSxcclxuICAgIHZhbGlkYXRvcnMsXHJcbiAgICBhc3luY1ZhbGlkYXRvcnMsXHJcbiAgICBlbGVtZW50SWQsXHJcbiAgICBzdHlsZUNsYXNzZXMsXHJcbiAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICBoaWRkZW4sXHJcbiAgICBpY29uLFxyXG4gICAgbGFiZWwsXHJcbiAgICBsZW5ndGgsXHJcbiAgICBwbGFjZWhvbGRlcixcclxuICAgIHJlYWRPbmx5LFxyXG4gICAgcmVxdWlyZWQsXHJcbiAgICB0b29sdGlwLFxyXG4gICAgZXJyb3JNZXNzYWdlcyxcclxuICAgIGRpc2FibGVkLFxyXG4gIH06IFRTcGVjaWFsRmllbGRzKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0VmFsdWUsIHZhbGlkYXRvcnMsIGFzeW5jVmFsaWRhdG9ycyk7XHJcblxyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcclxuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcclxuICAgIHRoaXMudG9vbHRpcCA9IHRvb2x0aXA7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5lbGVtZW50SWQgPSBlbGVtZW50SWQ7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5zdHlsZUNsYXNzZXMgPSBzdHlsZUNsYXNzZXM7XHJcbiAgICB0aGlzLmhpZGRlbiA9IGhpZGRlbjtcclxuICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoO1xyXG4gICAgdGhpcy5yZWFkT25seSA9IHJlYWRPbmx5O1xyXG4gICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gZXJyb3JNZXNzYWdlcztcclxuICAgIGRpc2FibGVkID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVhZE9ubHkoc3RhdHVzOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5yZWFkT25seSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkKHN0YXR1czogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIHN0YXR1cyA/IHRoaXMuZGlzYWJsZSgpIDogdGhpcy5lbmFibGUoKTtcclxuICB9XHJcblxyXG4gIHNldEhpZGRlbihzdGF0dXMgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmhpZGRlbiA9IHN0YXR1cztcclxuICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxGb3JtR3JvdXAgZXh0ZW5kcyBGb3JtR3JvdXB7XHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGVsZW1lbnRJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcbiAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyBzZXR0aW5nczogSUZvcm1TZXR0aW5ncztcclxuICBwdWJsaWMgdHlwZTogRUNvbnRyb2xUeXBlcy5mb3JtO1xyXG4gIHB1YmxpYyBkZWZhdWx0VmFsdWU6IGFueTtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHNldHRpbmdzLFxyXG4gICAgICB0eXBlLFxyXG4gICAgICB2YWxpZGF0b3JzLFxyXG4gICAgICBhc3luY1ZhbGlkYXRvcnMsXHJcbiAgICAgIGVsZW1lbnRJZCxcclxuICAgICAgc3R5bGVDbGFzc2VzLFxyXG4gICAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICAgIGhpZGRlbixcclxuICAgICAgaWNvbixcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIGxlbmd0aCxcclxuICAgICAgcGxhY2Vob2xkZXIsXHJcbiAgICAgIHJlYWRPbmx5LFxyXG4gICAgICByZXF1aXJlZCxcclxuICAgICAgdG9vbHRpcCxcclxuICAgICAgZGlzYWJsZWQsXHJcbiAgICB9OiBUU3BlY2lhbEZvcm0sXHJcbiAgICBjb250cm9sczoge1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBTcGVjaWFsRm9ybUNvbnRyb2w8YW55PjtcclxuICAgIH1cclxuICApIHtcclxuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3JzLCBhc3luY1ZhbGlkYXRvcnMpO1xyXG5cclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XHJcbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XHJcbiAgICB0aGlzLnRvb2x0aXAgPSB0b29sdGlwO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuZWxlbWVudElkID0gZWxlbWVudElkO1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMuc3R5bGVDbGFzc2VzID0gc3R5bGVDbGFzc2VzO1xyXG4gICAgdGhpcy5oaWRkZW4gPSBoaWRkZW47XHJcbiAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDtcclxuICAgIHRoaXMucmVhZE9ubHkgPSByZWFkT25seTtcclxuICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgZGlzYWJsZWQgPyB0aGlzLmRpc2FibGUoKSA6IHRoaXMuZW5hYmxlKCk7XHJcbiAgfVxyXG5cclxuICBnZXREaXJ0eSgpIHtcclxuICAgIHRoaXMubWFya0FzRGlydHkoKTtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9scykuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xyXG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQ29udHJvbCkge1xyXG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGNvbnRyb2wuZ2V0RGlydHkoKTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1BcnJheSkge1xyXG4gICAgICAgIGNvbnRyb2wuZ2V0RGlydHkoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzcGVjaWFsUmVzZXQodmFsdWUgPSB7fSkge1xyXG4gICAgY29uc3QgYXV4OiBhbnkgPSB7fTtcclxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuY29udHJvbHMpLm1hcCgoW2tleSwgY29udHJvbF0pID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBhdXhba2V5XSA9IGNvbnRyb2wuZGVmYXVsdFZhbHVlO1xyXG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUFycmF5KSB7XHJcbiAgICAgICAgY29udHJvbC5jbGVhcigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlc2V0KHsgLi4uYXV4LCAuLi52YWx1ZSB9KTtcclxuICB9XHJcblxyXG4gIHNldFJlYWRPbmx5KHN0YXR1czogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9scykubWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wgfHxcclxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQXJyYXkgfHxcclxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtR3JvdXBcclxuICAgICAgKSB7XHJcbiAgICAgICAgdmFsdWUuc2V0UmVhZE9ubHkoc3RhdHVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRSZWFkT25seUJ5RmllbGRzKGZpZWxkc09iamVjdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkc09iamVjdCkubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbHNba2V5XTtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBjb250cm9sLnJlYWRPbmx5ID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SGlkZGVuQnlGaWVsZHMoZmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSkge1xyXG4gICAgT2JqZWN0LmVudHJpZXMoZmllbGRzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sc1trZXldO1xyXG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQ29udHJvbCkge1xyXG4gICAgICAgIGNvbnRyb2wuaGlkZGVuID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWQoc3RhdHVzOiBib29sZWFuKSB7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuY29udHJvbHMpLm1hcCgodmFsdWUpID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHZhbHVlIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Db250cm9sIHx8XHJcbiAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUFycmF5IHx8XHJcbiAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUdyb3VwXHJcbiAgICAgICkge1xyXG4gICAgICAgIHZhbHVlLnNldERpc2FibGVkKHN0YXR1cyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRCeUZpZWxkcyhmaWVsZHNPYmplY3Q6IGFueSkge1xyXG4gICAgT2JqZWN0LmVudHJpZXMoZmllbGRzT2JqZWN0KS5tYXAoKGVudHJpZXMpID0+IHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHNbZW50cmllc1swXV0gaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBlbnRyaWVzWzFdXHJcbiAgICAgICAgICA/IHRoaXMuY29udHJvbHNbZW50cmllc1swXV0uZW5hYmxlKClcclxuICAgICAgICAgIDogdGhpcy5jb250cm9sc1tlbnRyaWVzWzBdXS5kaXNhYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZG9uZGUgdmFsdWUgZXMgZWwgb2JqZXRvIHNlbWlsbGEgeSBkZXRhaWxGb3JtIGVzIHVuIGFycmVnbG8gZGUgZm9ybSBrZXkgcGFyYSBkYXIgdW4gbWFyY28gYWwgZm9ybWFycmF5XHJcbiAgICovXHJcblxyXG4gIHNldEZvcm1WYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNwZWNpYWxSZXNldCh2YWx1ZSk7XHJcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmNvbnRyb2xzKVxyXG4gICAgICAuZmlsdGVyKChbX2tleSwgY29udHJvbF0pID0+IGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUFycmF5KVxyXG4gICAgICAubWFwKChba2V5LCBjb250cm9sXSkgPT4ge1xyXG4gICAgICAgIChjb250cm9sIGFzIFNwZWNpYWxGb3JtQXJyYXkpLmZpbGxGb3JtQXJyYXkodmFsdWVba2V5XSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgcmV0b3JuYVxyXG4gICAqL1xyXG5cclxuICBnZXRJZFBrZXkoKTogU3BlY2lhbEZvcm1Db250cm9sPGFueT4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9scykuZmluZChcclxuICAgICAgKGNvbnRyb2wpID0+XHJcbiAgICAgICAgY29udHJvbCBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQ29udHJvbCAmJiBjb250cm9sLnR5cGUgPT09ICdQUklNQVJZLUtFWSdcclxuICAgICkgYXMgU3BlY2lhbEZvcm1Db250cm9sPGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3BlY2lhbEZvcm1BcnJheSBleHRlbmRzIEZvcm1BcnJheSBpbXBsZW1lbnRzIElGaWVsZEJhc2ljRGF0YSB7XHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGVsZW1lbnRJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcclxuICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgcHVibGljIHNldHRpbmdzOiBJQXJyYXlTZXR0aW5ncztcclxuICBwdWJsaWMgdHlwZTogRUNvbnRyb2xUeXBlcztcclxuICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnk7XHJcbiAgcHVibGljIGZvcm06IFNwZWNpYWxGb3JtR3JvdXA7XHJcbiAgcHJpdmF0ZSBmb3JtQ3JlYXRpb246ICh2YWx1ZT86IGFueSkgPT4gU3BlY2lhbEZvcm1Hcm91cDtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHNldHRpbmdzLFxyXG4gICAgICB0eXBlLFxyXG4gICAgICB2YWxpZGF0b3JzLFxyXG4gICAgICBhc3luY1ZhbGlkYXRvcnMsXHJcbiAgICAgIGVsZW1lbnRJZCxcclxuICAgICAgc3R5bGVDbGFzc2VzLFxyXG4gICAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICAgIGhpZGRlbixcclxuICAgICAgaWNvbixcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyLFxyXG4gICAgICByZWFkT25seSxcclxuICAgICAgcmVxdWlyZWQsXHJcbiAgICAgIHRvb2x0aXAsXHJcbiAgICAgIGVycm9yTWVzc2FnZXMsXHJcbiAgICAgIGRpc2FibGVkLFxyXG4gICAgfTogVFNwZWNpYWxBcnJheSxcclxuICAgIGZvcm1DcmVhdGlvbjogKCkgPT4gU3BlY2lhbEZvcm1Hcm91cCxcclxuICAgIGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29udHJvbHMsIHZhbGlkYXRvcnMsIGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1DcmVhdGlvbiA9IGZvcm1DcmVhdGlvbjtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUNyZWF0aW9uKCk7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xyXG4gICAgdGhpcy50b29sdGlwID0gdG9vbHRpcDtcclxuICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgICB0aGlzLmVsZW1lbnRJZCA9IGVsZW1lbnRJZDtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLnN0eWxlQ2xhc3NlcyA9IHN0eWxlQ2xhc3NlcztcclxuICAgIHRoaXMuaGlkZGVuID0gaGlkZGVuO1xyXG4gICAgdGhpcy5yZWFkT25seSA9IHJlYWRPbmx5O1xyXG4gICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkO1xyXG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBlcnJvck1lc3NhZ2VzO1xyXG4gICAgZGlzYWJsZWQgPyB0aGlzLmRpc2FibGUoKSA6IHRoaXMuZW5hYmxlKCk7XHJcbiAgfVxyXG5cclxuICBmaWxsRm9ybUFycmF5KGRhdGE6IGFueVtdKSB7XHJcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIGRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtQ3JlYXRpb24oaXRlbSk7XHJcbiAgICAgIHRoaXMucHVzaChmb3JtKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkSXRlbSgpIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1DcmVhdGlvbih0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtLnNwZWNpYWxSZXNldCgpO1xyXG4gICAgdGhpcy5wdXNoKGZvcm0pO1xyXG4gICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xyXG4gIH1cclxuXHJcbiAgc3BlY2lhbFB1c2goaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1DcmVhdGlvbih0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgaWYgKCFpbmRleCkgdGhpcy5wdXNoKGZvcm0pO1xyXG4gICAgZWxzZSB0aGlzLmNvbnRyb2xzW2luZGV4XS5yZXNldCh0aGlzLmZvcm0udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc3BlY2lhbEluc2VydChpbmRleCA9IDApIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1DcmVhdGlvbih0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5pbnNlcnQoaW5kZXgsIGZvcm0pO1xyXG4gIH1cclxuXHJcbiAgc3BlY2lhbEVkaXQoaW5kZXg6IG51bWJlciwgbmV3VmFsdWU6IE9iamVjdCkge1xyXG4gICAgdGhpcy5jb250cm9sc1tpbmRleF0ucmVzZXQoeyAuLi50aGlzLmNvbnRyb2xzW2luZGV4XS52YWx1ZSwgLi4ubmV3VmFsdWUgfSk7XHJcbiAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWdWVsdmUgdG9kb3MgbG9zIGNvbnRyb2xlcyBkZWwgZm9ybUFycmF5IGRlIGxlY3R1cmEgbyBkZSBzb2xvbGVjdHVyYVxyXG4gICAqIEBwYXJhbSBzdGF0dXNcclxuICAgKi9cclxuXHJcbiAgc2V0UmVhZE9ubHkoc3RhdHVzOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnJlYWRPbmx5ID0gc3RhdHVzO1xyXG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0UmVhZE9ubHkoc3RhdHVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWdWVsdmUgdG9kb3MgbG9zIGNvbnRyb2xlcyBkZWwgZm9ybUFycmF5IGhhYmlsaXRhZG9zIG8gZGVzaGFiaWxpdGFkb3NcclxuICAgKiBAcGFyYW0gc3RhdHVzXHJcbiAgICovXHJcblxyXG4gIHNldERpc2FibGVkKHN0YXR1czogYm9vbGVhbikge1xyXG4gICAgc3RhdHVzID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0RGlzYWJsZWQoc3RhdHVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJtaXRlIGVkaXRhciB1biBjb250cm9sIGVzcGVjaWZpY28uXHJcbiAgICogQHBhcmFtIGluZGV4XHJcbiAgICovXHJcblxyXG4gIGVkaXRDb250cm9sKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZm9ybS5yZXNldCh0aGlzLmNvbnRyb2xzW2luZGV4XS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXREaXJ0eSgpIHtcclxuICAgIHRoaXMubWFya0FzRGlydHkoKTtcclxuICAgIHRoaXMuZm9ybS5nZXREaXJ0eSgpO1xyXG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICg8U3BlY2lhbEZvcm1Hcm91cD5pdGVtKS5nZXREaXJ0eSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWN1cnNpdmVGaWxsRm9ybShmb3JtOiBGb3JtR3JvdXAsIGRhdGE6IGFueSk6IEZvcm1Hcm91cCB7XHJcbiAgICBPYmplY3QuZW50cmllcyhmb3JtLmNvbnRyb2xzKS5tYXAoKFtrZXksIGNvbnRyb2xdKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBjb250cm9sLnNldFZhbHVlKGRhdGFba2V5XSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgIGRhdGFba2V5XS5mb3JFYWNoKCgpID0+IHt9KTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY29udHJvbC5yZXNldChkYXRhW2tleV0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzaWNzLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1ZhbGlkYXRvckZuLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkQmFzaWNEYXRhIHtcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxuICBlbGVtZW50SWQ6IHN0cmluZztcclxuICBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBsZW5ndGg6IG51bWJlcjtcclxuICByZXF1aXJlZDogYm9vbGVhbjtcclxuICBoaWRkZW46IGJvb2xlYW47XHJcbiAgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ6Ym9vbGVhbjtcclxuICBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZERhdGEgZXh0ZW5kcyBJRmllbGRCYXNpY0RhdGEge1xyXG4gIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IG51bGw7XHJcbiAgYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdIHwgbnVsbDtcclxuICBkZWZhdWx0VmFsdWU6IGFueTtcclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvcmUvaW50ZXJmYWNlcy9mb3JtLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBdXRvY29tcGxldGVGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSURhdGVQaWNrZXJGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1kYXRlcGlja2VyL3NwZWNpYWwtZGF0ZXBpY2tlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJRHJvcGRvd25GaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1kcm9wZG93bi9zcGVjaWFsLWRyb3Bkb3duLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElJbnB1dEZpZWxkIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zcGVjaWFsLWlucHV0L3NwZWNpYWwtaW5wdXQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSUNoZWNrYm94RmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NwZWNpYWwtY2hlY2tib3gvc3BlY2lhbC1jaGVja2JveC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJTXVsdGlwbGVBdXRvY29tcGxldGVGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uL2F1eC1kYXRhL2NvbnRyb2wtdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7IElGaWVsZERhdGEgfSBmcm9tICcuL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgSVRleHRBcmVhRmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NwZWNpYWwtdGV4dC1hcmVhL3NwZWNpYWwtdGV4dC1hcmVhLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElVcGxvYWRGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSUxhYmVsRmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NwZWNpYWwtbGFiZWwvc3BlY2lhbC1sYWJlbC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJUmljaFRleHRGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1yaWNodGV4dC9zcGVjaWFsLXJpY2h0ZXh0LmludGVyZmFjZSc7XHJcblxyXG5pbnRlcmZhY2UgSWNvbnRyb2xOYW1lIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElGb3JtU2V0dGluZ3MgPSB7XHJcbiAgZm9ybUZpZWxkczogSUZvcm1TdHJ1Y3R1cmU7XHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtRmllbGQ8VCA9IGFueT4gZXh0ZW5kcyBJRmllbGREYXRhIHtcclxuICBzZXR0aW5nczogSUZvcm1TZXR0aW5ncztcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmZvcm07XHJcbiAgZGVmYXVsdFZhbHVlOiBUO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJQXJyYXlTZXR0aW5ncyA9IHtcclxuICBhZGRBY3Rpb25MYWJlbD86IHN0cmluZztcclxuICByZW1vdmVBY3Rpb25MYWJlbD86IHN0cmluZztcclxuICBmb3JtRmllbGRzOiBJRm9ybVN0cnVjdHVyZTtcclxuICB3aXRoRm9ybUhlYWRlcj86IGJvb2xlYW47XHJcbiAgd2l0aEFjdGlvbkJ1dHRvbnM/OiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQXJyYXlGaWVsZDxUID0gYW55PiBleHRlbmRzIElGaWVsZERhdGEge1xyXG4gIHNldHRpbmdzOiBJQXJyYXlTZXR0aW5ncztcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmFycmF5O1xyXG4gIGRlZmF1bHRWYWx1ZTogVFtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQa2V5RmllbGQ8VCA9IGFueT4gZXh0ZW5kcyBJRmllbGREYXRhIHtcclxuICBzZXR0aW5nczogYW55O1xyXG4gIHR5cGU6IEVDb250cm9sVHlwZXMucGtleTtcclxuICBkZWZhdWx0VmFsdWU6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRGVmYXVsdEZpZWxkIGV4dGVuZHMgSUZpZWxkRGF0YSB7XHJcbiAgc2V0dGluZ3M6IGFueTtcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmRlZmF1bHQ7XHJcbiAgZGVmYXVsdFZhbHVlOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRSYXdGaWVsZHMgPVxyXG4gIHwgSURlZmF1bHRGaWVsZFxyXG4gIHwgSUlucHV0RmllbGRcclxuICB8IElSaWNoVGV4dEZpZWxkXHJcbiAgfCBJRHJvcGRvd25GaWVsZFxyXG4gIHwgSUFycmF5RmllbGRcclxuICB8IElGb3JtRmllbGRcclxuICB8IElBdXRvY29tcGxldGVGaWVsZFxyXG4gIHwgSU11bHRpcGxlQXV0b2NvbXBsZXRlRmllbGRcclxuICB8IElEYXRlUGlja2VyRmllbGRcclxuICB8IElUZXh0QXJlYUZpZWxkXHJcbiAgfCBJVXBsb2FkRmllbGRcclxuICB8IElMYWJlbEZpZWxkXHJcbiAgfCBJUGtleUZpZWxkXHJcbiAgfCBJQ2hlY2tib3hGaWVsZDtcclxuXHJcbmV4cG9ydCB0eXBlIFRTcGVjaWFsSW5wdXQgPSBJSW5wdXRGaWVsZCAmIEljb250cm9sTmFtZTtcclxuZXhwb3J0IHR5cGUgVFNwZWNpYWxEZWZhdWx0ID0gSURlZmF1bHRGaWVsZCAmIEljb250cm9sTmFtZTtcclxuZXhwb3J0IHR5cGUgVFNwZWNpYWxEcm9wZG93biA9IElEcm9wZG93bkZpZWxkICYgSWNvbnRyb2xOYW1lO1xyXG5leHBvcnQgdHlwZSBUU3BlY2lhbEFycmF5ID0gSUFycmF5RmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIFRTcGVjaWFsRm9ybSA9IElGb3JtRmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIFRTcGVjaWFsUmljaFRleHQgPSBJUmljaFRleHRGaWVsZCAmIEljb250cm9sTmFtZTtcclxuZXhwb3J0IHR5cGUgVFNwZWNpYWxBdXRvY29tcGxldGUgPSBJQXV0b2NvbXBsZXRlRmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIFRTcGVjaWFsRGF0ZXBpY2tlciA9IElEYXRlUGlja2VyRmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIElTcGVjaWFsQ2hlY2tib3ggPSBJQ2hlY2tib3hGaWVsZCAmIEljb250cm9sTmFtZTtcclxuZXhwb3J0IHR5cGUgSVNwZWNpYWxUZXh0QXJlYSA9IElUZXh0QXJlYUZpZWxkICYgSWNvbnRyb2xOYW1lO1xyXG5leHBvcnQgdHlwZSBJU3BlY2lhbExhYmVsID0gSUxhYmVsRmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIElTcGVjaWFsVXBsb2FkID0gSVVwbG9hZEZpZWxkICYgSWNvbnRyb2xOYW1lO1xyXG5leHBvcnQgdHlwZSBJU3BlY2lhbFBrZXkgPSBJUGtleUZpZWxkICYgSWNvbnRyb2xOYW1lO1xyXG5cclxuZXhwb3J0IHR5cGUgVFNwZWNpYWxGaWVsZHMgPVxyXG4gIHwgVFNwZWNpYWxEZWZhdWx0XHJcbiAgfCBUU3BlY2lhbElucHV0XHJcbiAgfCBUU3BlY2lhbERyb3Bkb3duXHJcbiAgfCBUU3BlY2lhbEFycmF5XHJcbiAgfCBUU3BlY2lhbEZvcm1cclxuICB8IFRTcGVjaWFsUmljaFRleHRcclxuICB8IFRTcGVjaWFsQXV0b2NvbXBsZXRlXHJcbiAgfCBJU3BlY2lhbENoZWNrYm94XHJcbiAgfCBJU3BlY2lhbFRleHRBcmVhXHJcbiAgfCBJU3BlY2lhbFVwbG9hZFxyXG4gIHwgSVNwZWNpYWxMYWJlbFxyXG4gIHwgSVNwZWNpYWxQa2V5XHJcbiAgfCBUU3BlY2lhbERhdGVwaWNrZXI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU3RydWN0dXJlIHtcclxuICBbbmFtZTogc3RyaW5nXTogUGFydGlhbDxUUmF3RmllbGRzPjtcclxufVxyXG4iXX0=
@@ -1,3 +0,0 @@
1
- export class ISpecialControl {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1jb250cm9sLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL2ludGVyZmFjZXMvc3BlY2lhbC1jb250cm9sLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQWdCLGVBQWU7Q0FFcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFNwZWNpYWxGb3JtQ29udHJvbCxcclxuICBTcGVjaWFsRm9ybUFycmF5LFxyXG4gIFNwZWNpYWxGb3JtR3JvdXAsXHJcbn0gZnJvbSAnLi4vZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSVNwZWNpYWxDb250cm9sIHtcclxuICBjb250cm9sOiBTcGVjaWFsRm9ybUNvbnRyb2w8YW55PiB8IFNwZWNpYWxGb3JtQXJyYXkgfCBTcGVjaWFsRm9ybUdyb3VwO1xyXG59XHJcbiJdfQ==
@@ -1,11 +0,0 @@
1
- import { createMask } from '@ngneat/input-mask';
2
- export const currencyInputMask = createMask({
3
- alias: 'numeric',
4
- groupSeparator: ',',
5
- autoUnmask: true,
6
- digits: 2,
7
- digitsOptional: false,
8
- prefix: '$ ',
9
- placeholder: '0',
10
- });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kubWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL21hc2tzL2N1cnJlbmN5Lm1hc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUMxQyxLQUFLLEVBQUUsU0FBUztJQUNoQixjQUFjLEVBQUUsR0FBRztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsQ0FBQztJQUNULGNBQWMsRUFBRSxLQUFLO0lBQ3JCLE1BQU0sRUFBRSxJQUFJO0lBQ1osV0FBVyxFQUFFLEdBQUc7Q0FDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTWFzayB9IGZyb20gJ0BuZ25lYXQvaW5wdXQtbWFzayc7XHJcblxyXG5leHBvcnQgY29uc3QgY3VycmVuY3lJbnB1dE1hc2sgPSBjcmVhdGVNYXNrKHtcclxuICBhbGlhczogJ251bWVyaWMnLFxyXG4gIGdyb3VwU2VwYXJhdG9yOiAnLCcsXHJcbiAgYXV0b1VubWFzazogdHJ1ZSxcclxuICBkaWdpdHM6IDIsXHJcbiAgZGlnaXRzT3B0aW9uYWw6IGZhbHNlLFxyXG4gIHByZWZpeDogJyQgJyxcclxuICBwbGFjZWhvbGRlcjogJzAnLFxyXG59KTtcclxuIl19
@@ -1,3 +0,0 @@
1
- export { currencyInputMask } from './currency.mask';
2
- export { numberMask } from './number.mask';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9tYXNrcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY3VycmVuY3lJbnB1dE1hc2sgfSBmcm9tICcuL2N1cnJlbmN5Lm1hc2snO1xyXG5leHBvcnQgeyBudW1iZXJNYXNrIH0gZnJvbSAnLi9udW1iZXIubWFzayc7XHJcbiJdfQ==
@@ -1,3 +0,0 @@
1
- import { createMask } from '@ngneat/input-mask';
2
- export const numberMask = (max = 1000) => createMask({ alias: 'numeric', min: 0, max });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLm1hc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9tYXNrcy9udW1iZXIubWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLENBQ3ZDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTWFzayB9IGZyb20gJ0BuZ25lYXQvaW5wdXQtbWFzayc7XHJcblxyXG5leHBvcnQgY29uc3QgbnVtYmVyTWFzayA9IChtYXggPSAxMDAwKSA9PlxyXG4gIGNyZWF0ZU1hc2soeyBhbGlhczogJ251bWVyaWMnLCBtaW46IDAsIG1heCB9KTtcclxuIl19
@@ -1,18 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class FormControlsListPipe {
4
- transform(controls) {
5
- if (!controls)
6
- return [];
7
- return Object.values(controls)
8
- .filter((control) => !control.hidden)
9
- .map((control) => control);
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormControlsListPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: FormControlsListPipe, isStandalone: true, name: "controlsList" }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormControlsListPipe, decorators: [{
15
- type: Pipe,
16
- args: [{ name: 'controlsList', standalone: true }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMtbGlzdC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvcmUvcGlwZXMvY29udHJvbHMtbGlzdC1waXBlL2NvbnRyb2xzLWxpc3QucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixTQUFTLENBQUMsUUFFVDtRQUNDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxPQUFnQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7YUFDN0QsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFrQyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs4R0FSVSxvQkFBb0I7NEdBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTcGVjaWFsRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9mb3Jtcy9zcGVjaWFsLWZvcm1zJztcclxuXHJcbkBQaXBlKHsgbmFtZTogJ2NvbnRyb2xzTGlzdCcsIHN0YW5kYWxvbmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sc0xpc3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGNvbnRyb2xzOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgfSk6IFNwZWNpYWxGb3JtQ29udHJvbDxhbnk+W10ge1xyXG4gICAgaWYgKCFjb250cm9scykgcmV0dXJuIFtdO1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29udHJvbHMpXHJcbiAgICAgIC5maWx0ZXIoKGNvbnRyb2w6IFNwZWNpYWxGb3JtQ29udHJvbDxhbnk+KSA9PiAhY29udHJvbC5oaWRkZW4pXHJcbiAgICAgIC5tYXAoKGNvbnRyb2wpID0+IGNvbnRyb2wgYXMgU3BlY2lhbEZvcm1Db250cm9sPGFueT4pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,23 +0,0 @@
1
- import { Pipe } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class ErrorMessagePipe {
4
- transform(errorsObj, errorMessages, control) {
5
- const errors = errorsObj ? Object.keys(errorsObj) : [];
6
- const error = errors[0];
7
- const message = errorMessages[error] || error;
8
- if (control) {
9
- control.setErrors(errorsObj);
10
- }
11
- return message;
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorMessagePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
14
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ErrorMessagePipe, isStandalone: true, name: "errorMessage" }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorMessagePipe, decorators: [{
17
- type: Pipe,
18
- args: [{
19
- name: "errorMessage",
20
- standalone: true
21
- }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL3BpcGVzL2Vycm9yLW1lc3NhZ2UtcGlwZS9lcnJvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFNBQVMsQ0FDUCxTQUFpQyxFQUNqQyxhQUFxQyxFQUNyQyxPQUFxQjtRQUVyQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUM5QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0FiVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFDLElBQUk7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogXCJlcnJvck1lc3NhZ2VcIixcclxuICBzdGFuZGFsb25lOnRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEVycm9yTWVzc2FnZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oXHJcbiAgICBlcnJvcnNPYmo6IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxyXG4gICAgY29udHJvbD86IEZvcm1Db250cm9sXHJcbiAgKTogYW55IHtcclxuICAgIGNvbnN0IGVycm9ycyA9IGVycm9yc09iaiA/IE9iamVjdC5rZXlzKGVycm9yc09iaikgOiBbXTtcclxuICAgIGNvbnN0IGVycm9yID0gZXJyb3JzWzBdO1xyXG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yTWVzc2FnZXNbZXJyb3JdIHx8IGVycm9yO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzT2JqKTtcclxuICAgIH1cclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,4 +0,0 @@
1
- export { ErrorMessagePipe } from './error-message-pipe/error.pipe';
2
- export { TextByFunctionPipe } from './text-by-function/text-by-function.pipe';
3
- export { FormControlsListPipe } from './controls-list-pipe/controls-list.pipe';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9waXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEVycm9yTWVzc2FnZVBpcGUgfSBmcm9tICcuL2Vycm9yLW1lc3NhZ2UtcGlwZS9lcnJvci5waXBlJztcclxuZXhwb3J0IHsgVGV4dEJ5RnVuY3Rpb25QaXBlIH0gZnJvbSAnLi90ZXh0LWJ5LWZ1bmN0aW9uL3RleHQtYnktZnVuY3Rpb24ucGlwZSc7XHJcbmV4cG9ydCB7IEZvcm1Db250cm9sc0xpc3RQaXBlIH0gZnJvbSAnLi9jb250cm9scy1saXN0LXBpcGUvY29udHJvbHMtbGlzdC5waXBlJztcclxuIl19
@@ -1,22 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class TextByFunctionPipe {
4
- transform(value, field) {
5
- if (field instanceof Function) {
6
- return field(value);
7
- }
8
- else if (value instanceof Object) {
9
- return value[field];
10
- }
11
- else {
12
- return value;
13
- }
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TextByFunctionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
16
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: TextByFunctionPipe, isStandalone: true, name: "textByFunction" }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TextByFunctionPipe, decorators: [{
19
- type: Pipe,
20
- args: [{ name: 'textByFunction', standalone: true }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1ieS1mdW5jdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvcmUvcGlwZXMvdGV4dC1ieS1mdW5jdGlvbi90ZXh0LWJ5LWZ1bmN0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsU0FBUyxDQUFDLEtBQVUsRUFBRSxLQUF3QztRQUM1RCxJQUFJLEtBQUssWUFBWSxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDbkMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDOzhHQVRVLGtCQUFrQjs0R0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICd0ZXh0QnlGdW5jdGlvbicsIHN0YW5kYWxvbmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIFRleHRCeUZ1bmN0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBmaWVsZDogc3RyaW5nIHwgKCh2YWx1ZTogYW55KSA9PiBzdHJpbmcpKTogYW55IHtcclxuICAgIGlmIChmaWVsZCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZCh2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZVtmaWVsZF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,13 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ErrorStateMatcherService {
4
- isErrorState(control) {
5
- return control && control.invalid && control.dirty;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorStateMatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorStateMatcherService }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorStateMatcherService, decorators: [{
11
- type: Injectable
12
- }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2Vycm9yLXN0YXRlLW1hdGNoZXIvZXJyb3ItbWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQVksQ0FBQyxPQUFvQjtRQUMvQixPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDckQsQ0FBQzs4R0FIVSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXJyb3JTdGF0ZU1hdGNoZXJTZXJ2aWNlIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIGNvbnRyb2wuZGlydHk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +0,0 @@
1
- import { SpecialFormBuilderService } from './special-form-builder/special-form-builder.service';
2
- import { ErrorStateMatcherService } from './error-state-matcher/error-matcher';
3
- export { SpecialFormBuilderService, ErrorStateMatcherService };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwZWNpYWxGb3JtQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL3NwZWNpYWwtZm9ybS1idWlsZGVyL3NwZWNpYWwtZm9ybS1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlclNlcnZpY2UgfSBmcm9tICcuL2Vycm9yLXN0YXRlLW1hdGNoZXIvZXJyb3ItbWF0Y2hlcic7XHJcblxyXG5leHBvcnQgeyBTcGVjaWFsRm9ybUJ1aWxkZXJTZXJ2aWNlLCBFcnJvclN0YXRlTWF0Y2hlclNlcnZpY2UgfTtcclxuIl19
@@ -1,156 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Validators } from '@angular/forms';
3
- import { EControlTypes } from '../../aux-data/control-types.enum';
4
- import { SpecialFormArray, SpecialFormControl, SpecialFormGroup, } from '../../forms/special-forms';
5
- import * as i0 from "@angular/core";
6
- export class SpecialFormBuilderService {
7
- constructor() {
8
- this.defectField = {
9
- asyncValidators: null,
10
- validators: null,
11
- defaultValue: null,
12
- elementId: '',
13
- hidden: false,
14
- icon: '',
15
- label: '',
16
- disabled: false,
17
- length: 0,
18
- placeholder: '',
19
- readOnly: false,
20
- required: false,
21
- styleClasses: '',
22
- errorMessages: {},
23
- tooltip: '',
24
- };
25
- this.inputDefectField = {
26
- ...this.defectField,
27
- settings: {},
28
- type: EControlTypes.input,
29
- name: '',
30
- };
31
- this.formDefectField = {
32
- ...this.defectField,
33
- settings: {
34
- formFields: {},
35
- },
36
- type: EControlTypes.form,
37
- name: '',
38
- };
39
- this.arrayDefectField = {
40
- ...this.defectField,
41
- settings: {
42
- formFields: {},
43
- },
44
- type: EControlTypes.array,
45
- name: '',
46
- };
47
- }
48
- control(field) {
49
- const formField = {
50
- ...this.inputDefectField,
51
- ...field,
52
- };
53
- const { control } = this.setFormControl(formField);
54
- return control;
55
- }
56
- group(fields, parentField = {}) {
57
- return this.formGenerator(this.fieldDataToArray(fields), parentField);
58
- }
59
- array() { }
60
- fieldDataToArray(fields) {
61
- return Object.entries(fields).map(([name, field]) => this.setDefectFieldOptions(name, field));
62
- }
63
- setDefectFieldOptions(name, field) {
64
- return {
65
- ...this.inputDefectField,
66
- ...field,
67
- name,
68
- };
69
- }
70
- formGenerator(fields, parentField = {}) {
71
- const formField = {
72
- ...this.formDefectField,
73
- ...parentField,
74
- };
75
- const structure = fields
76
- .map((field) => this.getControlAndNameByType(field))
77
- .reduce((prev, { name, control }) => ({
78
- ...prev,
79
- [name]: control,
80
- }), {});
81
- return new SpecialFormGroup(formField, structure);
82
- }
83
- getControlAndNameByType(field) {
84
- switch (field.type) {
85
- case EControlTypes.array:
86
- return this.setFormArray(field);
87
- case EControlTypes.form:
88
- return this.setFormGroup(field);
89
- default:
90
- return this.setFormControl(field);
91
- }
92
- }
93
- setFormGroup(field) {
94
- const control = this.formGenerator(this.fieldDataToArray(field.settings.formFields), field);
95
- return { control, name: field.name };
96
- }
97
- setFormArray(field) {
98
- const auxForm = (value = {}) => {
99
- const auxForm = this.formGenerator(this.fieldDataToArray(field.settings.formFields), {});
100
- auxForm.reset(value);
101
- return auxForm;
102
- };
103
- if (field.required) {
104
- field.validators = this.setValidatorsArray(field.validators, [
105
- this.arrayLengthRequired,
106
- ]);
107
- }
108
- return {
109
- name: field.name,
110
- control: new SpecialFormArray(field, auxForm, []),
111
- };
112
- }
113
- setFormControl(field) {
114
- const validators = [];
115
- if (field.required)
116
- validators.push(this.setRequiredValidator(field));
117
- if (field.length)
118
- validators.push(Validators.maxLength(field.length));
119
- field.validators = this.setValidatorsArray(field.validators, validators);
120
- return {
121
- name: field.name,
122
- control: new SpecialFormControl(field),
123
- };
124
- }
125
- setRequiredValidator(field) {
126
- if (field.type !== EControlTypes.autocomplete) {
127
- return Validators.required;
128
- }
129
- return (control) => !!control.value && control.value instanceof Object
130
- ? null
131
- : { required: true };
132
- }
133
- setValidatorsArray(validators, newValidators) {
134
- if (!validators) {
135
- return newValidators;
136
- }
137
- return validators instanceof Array
138
- ? [...validators, ...newValidators]
139
- : [validators, ...newValidators];
140
- }
141
- arrayLengthRequired(control) {
142
- if (control.value.length) {
143
- return {};
144
- }
145
- return { noItems: 'NO_SELECTED_ITEM' };
146
- }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialFormBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
148
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialFormBuilderService, providedIn: 'root' }); }
149
- }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialFormBuilderService, decorators: [{
151
- type: Injectable,
152
- args: [{
153
- providedIn: 'root',
154
- }]
155
- }], ctorParameters: () => [] });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3JtLWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3NwZWNpYWwtZm9ybS1idWlsZGVyL3NwZWNpYWwtZm9ybS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSwyQkFBMkIsQ0FBQzs7QUFrQm5DLE1BQU0sT0FBTyx5QkFBeUI7SUE0Q3BDO1FBM0NpQixnQkFBVyxHQUFlO1lBQ3pDLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEtBQUs7WUFDZixNQUFNLEVBQUUsQ0FBQztZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsS0FBSztZQUNmLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUVlLHFCQUFnQixHQUFrQjtZQUNqRCxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQ25CLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLO1lBQ3pCLElBQUksRUFB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O2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSUF1dG9jb21wbGV0ZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9zcGVjaWFsLWF1dG9jb21wbGV0ZS9zcGVjaWFsLWF1dG9jb21wbGV0ZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vLi4vYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHtcclxuICBTcGVjaWFsRm9ybUFycmF5LFxyXG4gIFNwZWNpYWxGb3JtQ29udHJvbCxcclxuICBTcGVjaWFsRm9ybUdyb3VwLFxyXG59IGZyb20gJy4uLy4uL2Zvcm1zL3NwZWNpYWwtZm9ybXMnO1xyXG5pbXBvcnQgeyBJRmllbGREYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgSUZvcm1TdHJ1Y3R1cmUsXHJcbiAgVFJhd0ZpZWxkcyxcclxuICBUU3BlY2lhbEFycmF5LFxyXG4gIFRTcGVjaWFsRmllbGRzLFxyXG4gIFRTcGVjaWFsRm9ybSxcclxuICBUU3BlY2lhbElucHV0LFxyXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS5pbnRlcmZhY2VzJztcclxuXHJcbmludGVyZmFjZSBJQ29udHJvbFBhcmFtcyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNvbnRyb2w6IFNwZWNpYWxGb3JtQXJyYXkgfCBTcGVjaWFsRm9ybUdyb3VwIHwgU3BlY2lhbEZvcm1Db250cm9sPGFueT47XHJcbn1cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxGb3JtQnVpbGRlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmZWN0RmllbGQ6IElGaWVsZERhdGEgPSB7XHJcbiAgICBhc3luY1ZhbGlkYXRvcnM6IG51bGwsXHJcbiAgICB2YWxpZGF0b3JzOiBudWxsLFxyXG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxyXG4gICAgZWxlbWVudElkOiAnJyxcclxuICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICBpY29uOiAnJyxcclxuICAgIGxhYmVsOiAnJyxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGxlbmd0aDogMCxcclxuICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgIHJlYWRPbmx5OiBmYWxzZSxcclxuICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgIHN0eWxlQ2xhc3NlczogJycsXHJcbiAgICBlcnJvck1lc3NhZ2VzOiB7fSxcclxuICAgIHRvb2x0aXA6ICcnLFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5wdXREZWZlY3RGaWVsZDogVFNwZWNpYWxJbnB1dCA9IHtcclxuICAgIC4uLnRoaXMuZGVmZWN0RmllbGQsXHJcbiAgICBzZXR0aW5nczoge30sXHJcbiAgICB0eXBlOiBFQ29udHJvbFR5cGVzLmlucHV0LFxyXG4gICAgbmFtZTogJycsXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtRGVmZWN0RmllbGQ6IFRTcGVjaWFsRm9ybSA9IHtcclxuICAgIC4uLnRoaXMuZGVmZWN0RmllbGQsXHJcbiAgICBzZXR0aW5nczoge1xyXG4gICAgICBmb3JtRmllbGRzOiB7fSxcclxuICAgIH0sXHJcbiAgICB0eXBlOiBFQ29udHJvbFR5cGVzLmZvcm0sXHJcbiAgICBuYW1lOiAnJyxcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGFycmF5RGVmZWN0RmllbGQ6IFRTcGVjaWFsQXJyYXkgPSB7XHJcbiAgICAuLi50aGlzLmRlZmVjdEZpZWxkLFxyXG4gICAgc2V0dGluZ3M6IHtcclxuICAgICAgZm9ybUZpZWxkczoge30sXHJcbiAgICB9LFxyXG4gICAgdHlwZTogRUNvbnRyb2xUeXBlcy5hcnJheSxcclxuICAgIG5hbWU6ICcnLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgcHVibGljIGNvbnRyb2woZmllbGQ6IFBhcnRpYWw8VFNwZWNpYWxGaWVsZHM+KTogU3BlY2lhbEZvcm1Db250cm9sPGFueT4ge1xyXG4gICAgY29uc3QgZm9ybUZpZWxkOiBUU3BlY2lhbEZpZWxkcyA9IHtcclxuICAgICAgLi4udGhpcy5pbnB1dERlZmVjdEZpZWxkLFxyXG4gICAgICAuLi5maWVsZCxcclxuICAgIH0gYXMgVFNwZWNpYWxGaWVsZHM7XHJcbiAgICBjb25zdCB7IGNvbnRyb2wgfSA9IHRoaXMuc2V0Rm9ybUNvbnRyb2woZm9ybUZpZWxkKTtcclxuICAgIHJldHVybiBjb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdyb3VwKFxyXG4gICAgZmllbGRzOiBJRm9ybVN0cnVjdHVyZSxcclxuICAgIHBhcmVudEZpZWxkOiBQYXJ0aWFsPFRTcGVjaWFsRm9ybT4gPSB7fVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUdlbmVyYXRvcih0aGlzLmZpZWxkRGF0YVRvQXJyYXkoZmllbGRzKSwgcGFyZW50RmllbGQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFycmF5KCkge31cclxuXHJcbiAgcHVibGljIGZpZWxkRGF0YVRvQXJyYXkoZmllbGRzOiBJRm9ybVN0cnVjdHVyZSk6IFRTcGVjaWFsRmllbGRzW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGZpZWxkcykubWFwKChbbmFtZSwgZmllbGRdKSA9PlxyXG4gICAgICB0aGlzLnNldERlZmVjdEZpZWxkT3B0aW9ucyhuYW1lLCBmaWVsZClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERlZmVjdEZpZWxkT3B0aW9ucyhcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGZpZWxkOiBQYXJ0aWFsPFRSYXdGaWVsZHM+XHJcbiAgKTogVFNwZWNpYWxGaWVsZHMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4udGhpcy5pbnB1dERlZmVjdEZpZWxkLFxyXG4gICAgICAuLi5maWVsZCxcclxuICAgICAgbmFtZSxcclxuICAgIH0gYXMgVFNwZWNpYWxGaWVsZHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1HZW5lcmF0b3IoXHJcbiAgICBmaWVsZHM6IFRTcGVjaWFsRmllbGRzW10sXHJcbiAgICBwYXJlbnRGaWVsZDogUGFydGlhbDxUU3BlY2lhbEZvcm0+ID0ge31cclxuICApOiBTcGVjaWFsRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGZvcm1GaWVsZDogVFNwZWNpYWxGb3JtID0ge1xyXG4gICAgICAuLi50aGlzLmZvcm1EZWZlY3RGaWVsZCxcclxuICAgICAgLi4ucGFyZW50RmllbGQsXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc3RydWN0dXJlID0gZmllbGRzXHJcbiAgICAgIC5tYXAoKGZpZWxkKSA9PiB0aGlzLmdldENvbnRyb2xBbmROYW1lQnlUeXBlKGZpZWxkKSlcclxuICAgICAgLnJlZHVjZShcclxuICAgICAgICAocHJldiwgeyBuYW1lLCBjb250cm9sIH06IElDb250cm9sUGFyYW1zKSA9PiAoe1xyXG4gICAgICAgICAgLi4ucHJldixcclxuICAgICAgICAgIFtuYW1lXTogY29udHJvbCxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7fVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIG5ldyBTcGVjaWFsRm9ybUdyb3VwKGZvcm1GaWVsZCwgc3RydWN0dXJlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29udHJvbEFuZE5hbWVCeVR5cGUoZmllbGQ6IFRTcGVjaWFsRmllbGRzKSB7XHJcbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuICAgICAgY2FzZSBFQ29udHJvbFR5cGVzLmFycmF5OlxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldEZvcm1BcnJheShmaWVsZCk7XHJcbiAgICAgIGNhc2UgRUNvbnRyb2xUeXBlcy5mb3JtOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldEZvcm1Hcm91cChmaWVsZCk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Rm9ybUNvbnRyb2woZmllbGQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGb3JtR3JvdXAoZmllbGQ6IFRTcGVjaWFsRm9ybSk6IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGNvbnRyb2w6IFNwZWNpYWxGb3JtR3JvdXA7XHJcbiAgfSB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtR2VuZXJhdG9yKFxyXG4gICAgICB0aGlzLmZpZWxkRGF0YVRvQXJyYXkoZmllbGQuc2V0dGluZ3MuZm9ybUZpZWxkcyksXHJcbiAgICAgIGZpZWxkXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHsgY29udHJvbCwgbmFtZTogZmllbGQubmFtZSB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGb3JtQXJyYXkoZmllbGQ6IFRTcGVjaWFsQXJyYXkpOiB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBjb250cm9sOiBTcGVjaWFsRm9ybUFycmF5O1xyXG4gIH0ge1xyXG4gICAgY29uc3QgYXV4Rm9ybSA9ICh2YWx1ZSA9IHt9KSA9PiB7XHJcbiAgICAgIGNvbnN0IGF1eEZvcm0gPSB0aGlzLmZvcm1HZW5lcmF0b3IoXHJcbiAgICAgICAgdGhpcy5maWVsZERhdGFUb0FycmF5KGZpZWxkLnNldHRpbmdzLmZvcm1GaWVsZHMpLFxyXG4gICAgICAgIHt9XHJcbiAgICAgICk7XHJcbiAgICAgIGF1eEZvcm0ucmVzZXQodmFsdWUpO1xyXG4gICAgICByZXR1cm4gYXV4Rm9ybTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XHJcbiAgICAgIGZpZWxkLnZhbGlkYXRvcnMgPSB0aGlzLnNldFZhbGlkYXRvcnNBcnJheShmaWVsZC52YWxpZGF0b3JzLCBbXHJcbiAgICAgICAgdGhpcy5hcnJheUxlbmd0aFJlcXVpcmVkLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuYW1lOiBmaWVsZC5uYW1lLFxyXG4gICAgICBjb250cm9sOiBuZXcgU3BlY2lhbEZvcm1BcnJheShmaWVsZCwgYXV4Rm9ybSwgW10pLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Rm9ybUNvbnRyb2woZmllbGQ6IFRTcGVjaWFsRmllbGRzKToge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPGFueT47XHJcbiAgfSB7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcblxyXG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB2YWxpZGF0b3JzLnB1c2godGhpcy5zZXRSZXF1aXJlZFZhbGlkYXRvcihmaWVsZCkpO1xyXG4gICAgaWYgKGZpZWxkLmxlbmd0aCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGZpZWxkLmxlbmd0aCkpO1xyXG5cclxuICAgIGZpZWxkLnZhbGlkYXRvcnMgPSB0aGlzLnNldFZhbGlkYXRvcnNBcnJheShmaWVsZC52YWxpZGF0b3JzLCB2YWxpZGF0b3JzKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuYW1lOiBmaWVsZC5uYW1lLFxyXG4gICAgICBjb250cm9sOiBuZXcgU3BlY2lhbEZvcm1Db250cm9sKGZpZWxkKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFJlcXVpcmVkVmFsaWRhdG9yKGZpZWxkOiBUU3BlY2lhbEZpZWxkcyk6IFZhbGlkYXRvckZuIHtcclxuICAgIGlmIChmaWVsZC50eXBlICE9PSBFQ29udHJvbFR5cGVzLmF1dG9jb21wbGV0ZSkge1xyXG4gICAgICByZXR1cm4gVmFsaWRhdG9ycy5yZXF1aXJlZDtcclxuICAgIH1cclxuICAgIHJldHVybiAoY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPElBdXRvY29tcGxldGVGaWVsZD4pID0+XHJcbiAgICAgICEhY29udHJvbC52YWx1ZSAmJiBjb250cm9sLnZhbHVlIGluc3RhbmNlb2YgT2JqZWN0XHJcbiAgICAgICAgPyBudWxsXHJcbiAgICAgICAgOiB7IHJlcXVpcmVkOiB0cnVlIH07XHJcbiAgfVxyXG4gIHByaXZhdGUgc2V0VmFsaWRhdG9yc0FycmF5KFxyXG4gICAgdmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgbnVsbCxcclxuICAgIG5ld1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW11cclxuICApOiBWYWxpZGF0b3JGbltdIHtcclxuICAgIGlmICghdmFsaWRhdG9ycykge1xyXG4gICAgICByZXR1cm4gbmV3VmFsaWRhdG9ycztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZGF0b3JzIGluc3RhbmNlb2YgQXJyYXlcclxuICAgICAgPyBbLi4udmFsaWRhdG9ycywgLi4ubmV3VmFsaWRhdG9yc11cclxuICAgICAgOiBbdmFsaWRhdG9ycywgLi4ubmV3VmFsaWRhdG9yc107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFycmF5TGVuZ3RoUmVxdWlyZWQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICBpZiAoY29udHJvbC52YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsgbm9JdGVtczogJ05PX1NFTEVDVEVEX0lURU0nIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==