@jooler/inputs 0.0.57 → 0.0.59
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/esm2022/lib/formcontrol-validation-msg.directive.mjs +171 -41
- package/esm2022/lib/general-input-renderer/general-input-renderer.component.mjs +1 -1
- package/esm2022/lib/inputs.module.mjs +5 -3
- package/fesm2022/inputs.mjs +173 -42
- package/fesm2022/inputs.mjs.map +1 -1
- package/lib/formcontrol-validation-msg.directive.d.ts +5 -4
- package/lib/inputs.module.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Directive,
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
2
|
import { NgModel } from '@angular/forms';
|
|
3
|
+
import { PrimaryColors } from './primary-colors';
|
|
3
4
|
import { ValidationError } from './services/validation-message.service';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/forms";
|
|
@@ -8,10 +9,11 @@ export class FormControlValidationMsgDirectiveForInput {
|
|
|
8
9
|
control;
|
|
9
10
|
errorMessage;
|
|
10
11
|
errorNgSelectMessage;
|
|
11
|
-
|
|
12
|
+
showDot;
|
|
12
13
|
errorDivId;
|
|
14
|
+
showBoxError = true;
|
|
13
15
|
beforeBegin = false;
|
|
14
|
-
afterEnd =
|
|
16
|
+
afterEnd = true;
|
|
15
17
|
validationError = ValidationError;
|
|
16
18
|
statusChangeSubscription;
|
|
17
19
|
constructor(elRef, control) {
|
|
@@ -19,26 +21,27 @@ export class FormControlValidationMsgDirectiveForInput {
|
|
|
19
21
|
this.control = control;
|
|
20
22
|
}
|
|
21
23
|
ngOnInit() {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
if (!this.errorDivId) {
|
|
25
|
+
this.errorDivId = this.control.name;
|
|
26
|
+
}
|
|
27
|
+
this.statusChangeSubscription = this.control.statusChanges.subscribe(status => {
|
|
28
|
+
// We don't want to show errors on status changed when the user never touched the input to begin with. So we add this.control.touched.
|
|
29
|
+
if (status == 'INVALID' && this.control.touched) {
|
|
24
30
|
this.showError();
|
|
25
31
|
}
|
|
26
32
|
else {
|
|
27
33
|
this.removeError();
|
|
28
34
|
}
|
|
29
35
|
});
|
|
30
|
-
this.control.valueChanges.subscribe({
|
|
31
|
-
next: (response) => {
|
|
32
|
-
if (this.control.errors) {
|
|
33
|
-
this.showError();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
36
|
}
|
|
38
37
|
ngOnDestroy() {
|
|
39
38
|
this.statusChangeSubscription.unsubscribe();
|
|
40
39
|
}
|
|
41
|
-
handleBlurEvent(
|
|
40
|
+
handleBlurEvent() {
|
|
41
|
+
if (this.control.value === '' ||
|
|
42
|
+
(this.control.value && !String(this.control.value).trim().length)) {
|
|
43
|
+
this.control.control.setValue(null, { emitEvent: false });
|
|
44
|
+
}
|
|
42
45
|
if (this.control.errors) {
|
|
43
46
|
this.showError();
|
|
44
47
|
}
|
|
@@ -49,81 +52,211 @@ export class FormControlValidationMsgDirectiveForInput {
|
|
|
49
52
|
showError() {
|
|
50
53
|
this.removeError();
|
|
51
54
|
const valErrors = this.control.errors;
|
|
55
|
+
if (this.control.errors.length > 1 || Object.entries(this.control.errors).length > 1) {
|
|
56
|
+
this.showDot = true;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.showDot = false;
|
|
60
|
+
}
|
|
52
61
|
const keys = Object.keys(valErrors);
|
|
53
62
|
for (let i = 0; i < keys.length; i++) {
|
|
54
63
|
switch (keys[i]) {
|
|
55
|
-
case 'minlength': {
|
|
56
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors.minlength.requiredLength);
|
|
57
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
64
|
case 'required': {
|
|
61
65
|
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
62
|
-
this.errorMessage += ` ${this.errorMessage ?
|
|
63
|
-
this.control.control.setErrors({
|
|
66
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
67
|
+
this.control.control.setErrors({ required: true, message: message }, { emitEvent: false });
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
case 'minlength': {
|
|
71
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors.minlength.requiredLength);
|
|
72
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
64
73
|
break;
|
|
65
74
|
}
|
|
66
75
|
case 'maxlength': {
|
|
67
76
|
let message = this.validationError.getRelevantError(keys[i], valErrors.maxlength.requiredLength);
|
|
68
|
-
this.errorMessage += ` ${this.errorMessage ?
|
|
69
|
-
this.control.control.setErrors({
|
|
77
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
78
|
+
this.control.control.setErrors({ maxlength: { requiredLength: valErrors.maxlength.requiredLength }, message: message }, { emitEvent: false });
|
|
70
79
|
break;
|
|
71
80
|
}
|
|
72
81
|
case 'max': {
|
|
73
82
|
let message = this.validationError.getRelevantError(keys[i], valErrors.max.max);
|
|
74
|
-
this.errorMessage += ` ${this.errorMessage ?
|
|
75
|
-
this.control.control.setErrors({
|
|
83
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
84
|
+
this.control.control.setErrors({ message: message, max: { max: valErrors.max.max } }, { emitEvent: false });
|
|
76
85
|
break;
|
|
77
86
|
}
|
|
78
87
|
case 'min': {
|
|
79
88
|
let message = this.validationError.getRelevantError(keys[i], valErrors.min.min);
|
|
80
|
-
this.errorMessage += ` ${this.errorMessage ?
|
|
89
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
90
|
+
this.control.control.setErrors({ message: message, min: { min: valErrors.min.min } }, { emitEvent: false });
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case 'invalidMaxBudgetRange': {
|
|
94
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors.lowScoreReq);
|
|
95
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${'\u25CF ' + message}`;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
case 'invalidMinBudgetRange': {
|
|
99
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors.highScoreReq);
|
|
100
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${'\u25CF ' + message}`;
|
|
81
101
|
break;
|
|
82
102
|
}
|
|
83
103
|
case 'pattern': {
|
|
84
104
|
let message = this.validationError.getRelevantError(keys[i], valErrors.pattern.requiredPattern);
|
|
85
|
-
this.errorMessage += ` ${this.errorMessage ?
|
|
105
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
86
106
|
break;
|
|
87
107
|
}
|
|
88
108
|
case 'email': {
|
|
89
109
|
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
90
|
-
this.errorMessage += ` ${this.errorMessage ?
|
|
110
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
91
111
|
break;
|
|
92
112
|
}
|
|
93
113
|
case 'invalidIntegerNumber': {
|
|
94
114
|
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
95
|
-
this.errorMessage += ` ${this.errorMessage ?
|
|
115
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
116
|
+
this.control.control.setErrors({ invalidIntegerNumber: true, message: message }, { emitEvent: false });
|
|
96
117
|
break;
|
|
97
118
|
}
|
|
98
119
|
case 'invalidPositiveInteger': {
|
|
99
120
|
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
100
|
-
this.errorMessage += ` ${this.errorMessage ?
|
|
101
|
-
this.control.control.setErrors({
|
|
121
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
122
|
+
this.control.control.setErrors({ invalidPositiveInteger: true, message: message }, { emitEvent: false });
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
case 'invalidPositiveDecimal': {
|
|
126
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
127
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
128
|
+
this.control.control.setErrors({ invalidPositiveDecimal: true, message: message }, { emitEvent: false });
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
case 'nonPositiveNumber': {
|
|
132
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
133
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
134
|
+
this.control.control.setErrors({ nonPositiveNumber: true, message: message }, { emitEvent: false });
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case 'nonStrictlyPositiveNumber': {
|
|
138
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
139
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
140
|
+
this.control.control.setErrors({ nonStrictlyPositiveNumber: true, message: message }, { emitEvent: false });
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
case 'notUnique': {
|
|
144
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
145
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
case 'hexColorInvalid': {
|
|
149
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
150
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
case 'greaterThanAndLessThanOrEqualValue': {
|
|
154
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
155
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
156
|
+
this.control.control.setErrors({
|
|
157
|
+
greaterThanAndLessThanOrEqualValue: {
|
|
158
|
+
min: valErrors.greaterThanAndLessThanOrEqualValue.min,
|
|
159
|
+
max: valErrors.greaterThanAndLessThanOrEqualValue.max,
|
|
160
|
+
},
|
|
161
|
+
message: message,
|
|
162
|
+
}, { emitEvent: false });
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
case 'greaterThanOrEqualAndLessThanValue': {
|
|
166
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
167
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
168
|
+
this.control.control.setErrors({
|
|
169
|
+
greaterThanOrEqualAndLessThanValue: {
|
|
170
|
+
min: valErrors.greaterThanOrEqualAndLessThanValue.min,
|
|
171
|
+
max: valErrors.greaterThanOrEqualAndLessThanValue.max,
|
|
172
|
+
},
|
|
173
|
+
message: message,
|
|
174
|
+
}, { emitEvent: false });
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
case 'greaterThanOrEqualAndLessThanOrEqualValue': {
|
|
178
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
179
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
180
|
+
this.control.control.setErrors({
|
|
181
|
+
greaterThanOrEqualAndLessThanOrEqualValue: {
|
|
182
|
+
min: valErrors.greaterThanOrEqualAndLessThanOrEqualValue.min,
|
|
183
|
+
max: valErrors.greaterThanOrEqualAndLessThanOrEqualValue.max,
|
|
184
|
+
},
|
|
185
|
+
message: message,
|
|
186
|
+
}, { emitEvent: false });
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
case 'invalidUrl': {
|
|
190
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
191
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
case 'checkboxChecked': {
|
|
195
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
196
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
case 'customMessage': {
|
|
200
|
+
let message = valErrors.message;
|
|
201
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
case 'checkboxChecked': {
|
|
205
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
206
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
case 'maxDecimalPlaces': {
|
|
210
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
211
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
212
|
+
this.control.control.setErrors({ maxDecimalPlaces: valErrors.maxDecimalPlaces, message: message }, { emitEvent: false });
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
case 'maxDigits': {
|
|
216
|
+
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
217
|
+
this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\u25CF ' + message : message}`;
|
|
218
|
+
this.control.control.setErrors({ maxDigits: valErrors.maxDigits, message: message }, { emitEvent: false });
|
|
102
219
|
break;
|
|
103
220
|
}
|
|
104
221
|
}
|
|
105
222
|
}
|
|
106
|
-
if (this.showBoxError) {
|
|
107
|
-
const errDiv =
|
|
223
|
+
if (this.showBoxError && this.errorMessage) {
|
|
224
|
+
const errDiv = `<div style="color:${PrimaryColors.$primaryRedColor};
|
|
225
|
+
box-sizing: border-box;
|
|
226
|
+
width: ${this.elRef.nativeElement.offsetWidth}px;
|
|
227
|
+
background-color: ${PrimaryColors.$primaryLightRedColor};
|
|
228
|
+
padding: .5rem;
|
|
229
|
+
border-radius: .5rem;
|
|
230
|
+
border: .1rem solid ${PrimaryColors.$primaryRedColor};
|
|
231
|
+
border-left: .75rem solid ${PrimaryColors.$primaryRedColor};
|
|
232
|
+
margin-top:.5rem;
|
|
233
|
+
font-size: 1.2rem;
|
|
234
|
+
display: block;" id="${this.errorDivId}">` +
|
|
235
|
+
`<h3 style="font-size: 1.3rem; margin:0 0 .25rem 0; color: ${PrimaryColors.$primaryRedColor}; font-weight: 700; line-height: 1.6rem;">` +
|
|
236
|
+
'Field contains errors:' +
|
|
237
|
+
'</h3>' +
|
|
238
|
+
this.errorMessage +
|
|
239
|
+
'</div>';
|
|
108
240
|
if (!this.beforeBegin && !this.afterEnd)
|
|
109
241
|
this.elRef.nativeElement.parentElement.parentElement.parentElement.parentElement.insertAdjacentHTML('afterend', errDiv);
|
|
110
242
|
else if (this.beforeBegin)
|
|
111
243
|
this.elRef.nativeElement.insertAdjacentHTML('beforebegin', errDiv);
|
|
112
|
-
else if (this.afterEnd)
|
|
244
|
+
else if (this.afterEnd) {
|
|
113
245
|
this.elRef.nativeElement.insertAdjacentHTML('afterend', errDiv);
|
|
246
|
+
}
|
|
114
247
|
else
|
|
115
|
-
throw Error(
|
|
248
|
+
throw Error('Adjustment not specified ');
|
|
116
249
|
}
|
|
117
250
|
}
|
|
118
251
|
removeError() {
|
|
119
|
-
this.errorMessage =
|
|
252
|
+
this.errorMessage = '';
|
|
120
253
|
const errorElement = document.getElementById(this.errorDivId);
|
|
121
254
|
if (errorElement) {
|
|
122
255
|
errorElement.remove();
|
|
123
256
|
}
|
|
124
257
|
}
|
|
125
258
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormControlValidationMsgDirectiveForInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
|
|
126
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FormControlValidationMsgDirectiveForInput, selector: "[appFormControlValidationMsgForInputs]", inputs: { showBoxError: "showBoxError",
|
|
259
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FormControlValidationMsgDirectiveForInput, selector: "[appFormControlValidationMsgForInputs]", inputs: { showBoxError: "showBoxError", beforeBegin: "beforeBegin", afterEnd: "afterEnd" }, host: { listeners: { "blur": "handleBlurEvent()" } }, providers: [NgModel], ngImport: i0 });
|
|
127
260
|
}
|
|
128
261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormControlValidationMsgDirectiveForInput, decorators: [{
|
|
129
262
|
type: Directive,
|
|
@@ -134,9 +267,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
134
267
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl }]; }, propDecorators: { showBoxError: [{
|
|
135
268
|
type: Input,
|
|
136
269
|
args: ['showBoxError']
|
|
137
|
-
}], errorDivId: [{
|
|
138
|
-
type: Input,
|
|
139
|
-
args: ['errorDivId']
|
|
140
270
|
}], beforeBegin: [{
|
|
141
271
|
type: Input,
|
|
142
272
|
args: ['beforeBegin']
|
|
@@ -145,6 +275,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
145
275
|
args: ['afterEnd']
|
|
146
276
|
}], handleBlurEvent: [{
|
|
147
277
|
type: HostListener,
|
|
148
|
-
args: ['blur'
|
|
278
|
+
args: ['blur']
|
|
149
279
|
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBdUQsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFhLE9BQU8sRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQU14RSxNQUFNLE9BQU8seUNBQXlDO0lBVzFDO0lBQ0E7SUFYVCxZQUFZLENBQU07SUFDbkIsb0JBQW9CLENBQU07SUFDSCxZQUFZLEdBQVUsSUFBSSxDQUFDO0lBQzdCLFVBQVUsQ0FBTTtJQUNmLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDaEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUM3QyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ2xDLHdCQUF3QixDQUFlO0lBRXZDLFlBQ1UsS0FBaUIsRUFDakIsT0FBa0I7UUFEbEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFXO0lBQ3hCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FDbEUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNULElBQUksTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBRWxCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FDRixDQUFBO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMs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QztvQkFDVCxRQUFRLEVBQUUsd0NBQXdDO29CQUNsRCxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ3JCO3lIQUl3QixZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ0EsVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNHLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDRCxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBa0NqQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBPbkluaXQsIE9uRGVzdHJveSwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBOZ01vZGVsLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi9zZXJ2aWNlcy92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBGb3JtQ29udHJvbFZhbGlkYXRpb25Nc2dGb3JJbnB1dHNdJyxcclxuICBwcm92aWRlcnM6IFtOZ01vZGVsXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sVmFsaWRhdGlvbk1zZ0RpcmVjdGl2ZUZvcklucHV0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICBlcnJvck1lc3NhZ2U6IGFueTtcclxuICBlcnJvck5nU2VsZWN0TWVzc2FnZTogYW55O1xyXG4gIEBJbnB1dCgnc2hvd0JveEVycm9yJykgc2hvd0JveEVycm9yOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCdlcnJvckRpdklkJykgZXJyb3JEaXZJZDogYW55O1xyXG4gIEBJbnB1dCgnYmVmb3JlQmVnaW4nKSBiZWZvcmVCZWdpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnYWZ0ZXJFbmQnKSBhZnRlckVuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHZhbGlkYXRpb25FcnJvciA9IFZhbGlkYXRpb25FcnJvcjtcclxuICBzdGF0dXNDaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgKHN0YXR1cykgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT0gJ0lOVkFMSUQnKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcigpO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmVycm9ycykge1xyXG4gICAgICAgICAgdGhpcy5zaG93RXJyb3IoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFtcIiRldmVudFwiXSlcclxuICBoYW5kbGVCbHVyRXZlbnQoZXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Vycm9yKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5yZW1vdmVFcnJvcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgc2hvd0Vycm9yKCkge1xyXG4gICAgdGhpcy5yZW1vdmVFcnJvcigpO1xyXG4gICAgY29uc3QgdmFsRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gdGhpcy5jb250cm9sLmVycm9ycztcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWxFcnJvcnMpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHN3aXRjaCAoa2V5c1tpXSkge1xyXG4gICAgICAgIGNhc2UgJ21pbmxlbmd0aCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RoKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/IFwiPGJyPlwiIDogXCJcIn0ke1wiXFx1MjVDRiBcIiArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ3JlcXVpcmVkJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoeyAncmVxdWlyZWQnOiB0cnVlLCAnbWVzc2FnZSc6IG1lc3NhZ2UgfSx7IGVtaXRFdmVudDpmYWxzZX0pXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnbWF4bGVuZ3RoJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGgpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gXCI8YnI+XCIgOiBcIlwifSR7XCJcXHUyNUNGIFwiICsgbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHsgJ21heGxlbmd0aCc6IHsgJ3JlcXVpcmVkTGVuZ3RoJzogdmFsRXJyb3JzLm1heGxlbmd0aC5yZXF1aXJlZExlbmd0aCB9LCAnbWVzc2FnZSc6IG1lc3NhZ2V9LCB7IGVtaXRFdmVudDogZmFsc2UgfSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdtYXgnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzLm1heC5tYXhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoeyAnbWVzc2FnZSc6IG1lc3NhZ2UsICdtYXgnOiB7ICdtYXgnOiB2YWxFcnJvcnMubWF4Lm1heCB9IH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ21pbic6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMubWluLm1pblxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/IFwiPGJyPlwiIDogXCJcIn0ke1wiXFx1MjVDRiBcIiArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSAncGF0dGVybic6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMucGF0dGVybi5yZXF1aXJlZFBhdHRlcm4pO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gXCI8YnI+XCIgOiBcIlwifSR7XCJcXHUyNUNGIFwiICsgbWVzc2FnZX1gO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ2VtYWlsJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnaW52YWxpZEludGVnZXJOdW1iZXInOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/IFwiPGJyPlwiIDogXCJcIn0ke1wiXFx1MjVDRiBcIiArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdpbnZhbGlkUG9zaXRpdmVJbnRlZ2VyJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoeyAnaW52YWxpZFBvc2l0aXZlSW50ZWdlcic6IHRydWUsICdtZXNzYWdlJzogbWVzc2FnZSB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNob3dCb3hFcnJvcil7XHJcbiAgICBjb25zdCBlcnJEaXYgPSAnPGRpdiBzdHlsZT1cImNvbG9yOiNDMzQyNDM7IHdpZHRoPTEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNGRkRCREI7IHBhZGRpbmc6IDFyZW07IGJvcmRlci1yYWRpdXM6IC41cmVtOyBib3JkZXI6IC4xcmVtIHNvbGlkICNBODAwMDIgO2JvcmRlci1sZWZ0OiAuNzVyZW0gc29saWQgI0E4MDAwMjsgIG1hcmdpbi10b3A6LjVyZW07ICBmb250LXNpemU6IDEuMnJlbTsgXCIgaWQ9XCInICsgdGhpcy5lcnJvckRpdklkICsgJ1wiPicgKyAnPGgzICAgc3R5bGU9IFwiIGZvbnQtc2l6ZTogMS4zcmVtOyAgbWFyZ2luLWJvdHRvbTouNXJlbTsgbWFyZ2luOjA7ICBjb2xvcjogI0E4MDAwMjsgZm9udC13ZWlnaHQ6IDcwMDsgbGluZS1oZWlnaHQ6IDEuNnJlbTtcIj4nICsgJ1BsZWFzZSBDb21wbGV0ZSBhbGwgZGV0YWlscycgKyAnPC9oMz4nICsgdGhpcy5lcnJvck1lc3NhZ2UgKyAnPC9kaXY+JztcclxuICAgIGlmICghdGhpcy5iZWZvcmVCZWdpbiAmJiAhdGhpcy5hZnRlckVuZClcclxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsIGVyckRpdik7XHJcbiAgICBlbHNlIGlmICh0aGlzLmJlZm9yZUJlZ2luKVxyXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmViZWdpbicsIGVyckRpdik7XHJcbiAgICBlbHNlIGlmICh0aGlzLmFmdGVyRW5kKVxyXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsIGVyckRpdik7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRocm93IEVycm9yKFwiQWRqdXN0bWVudCBub3Qgc3BlY2lmaWVkIFwiKTtcclxuICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVtb3ZlRXJyb3IoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IFwiXCI7XHJcbiAgICBjb25zdCBlcnJvckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmVycm9yRGl2SWQpO1xyXG4gICAgaWYgKGVycm9yRWxlbWVudCkge1xyXG4gICAgICBlcnJvckVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFhLE9BQU8sRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFPeEUsTUFBTSxPQUFPLHlDQUF5QztJQVkxQztJQUNBO0lBWlYsWUFBWSxDQUFNO0lBQ2xCLG9CQUFvQixDQUFNO0lBQzFCLE9BQU8sQ0FBVTtJQUNqQixVQUFVLENBQWtCO0lBQ0wsWUFBWSxHQUFZLElBQUksQ0FBQztJQUM5QixXQUFXLEdBQVksS0FBSyxDQUFDO0lBQ2hDLFFBQVEsR0FBWSxJQUFJLENBQUM7SUFDNUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUNsQyx3QkFBd0IsQ0FBZTtJQUV2QyxZQUNVLEtBQWlCLEVBQ2pCLE9BQWtCO1FBRGxCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBVztJQUN4QixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVFLHNJQUFzSTtZ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UUFBUSxFQUFFO2dCQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDakU7O2dCQUFNLE1BQU0sS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLENBQUM7UUFDeEUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzt3R0FwVFUseUNBQXlDOzRGQUF6Qyx5Q0FBeUMsbU5BRnpDLENBQUMsT0FBTyxDQUFDOzs0RkFFVCx5Q0FBeUM7a0JBTHJELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdDQUF3QztvQkFFbEQsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNyQjt5SEFNd0IsWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNDLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDRCxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBNEJqQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBOZ01vZGVsLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUHJpbWFyeUNvbG9ycyB9IGZyb20gJy4vcHJpbWFyeS1jb2xvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL3NlcnZpY2VzL3ZhbGlkYXRpb24tbWVzc2FnZS5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcEZvcm1Db250cm9sVmFsaWRhdGlvbk1zZ0ZvcklucHV0c10nLFxyXG5cclxuICBwcm92aWRlcnM6IFtOZ01vZGVsXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sVmFsaWRhdGlvbk1zZ0RpcmVjdGl2ZUZvcklucHV0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGVycm9yTWVzc2FnZTogYW55O1xyXG4gIGVycm9yTmdTZWxlY3RNZXNzYWdlOiBhbnk7XHJcbiAgc2hvd0RvdDogYm9vbGVhbjtcclxuICBlcnJvckRpdklkOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KCdzaG93Qm94RXJyb3InKSBzaG93Qm94RXJyb3I6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgnYmVmb3JlQmVnaW4nKSBiZWZvcmVCZWdpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnYWZ0ZXJFbmQnKSBhZnRlckVuZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsaWRhdGlvbkVycm9yID0gVmFsaWRhdGlvbkVycm9yO1xyXG4gIHN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmVycm9yRGl2SWQpIHtcclxuICAgICAgdGhpcy5lcnJvckRpdklkID0gdGhpcy5jb250cm9sLm5hbWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHNob3cgZXJyb3JzIG9uIHN0YXR1cyBjaGFuZ2VkIHdoZW4gdGhlIHVzZXIgbmV2ZXIgdG91Y2hlZCB0aGUgaW5wdXQgdG8gYmVnaW4gd2l0aC4gU28gd2UgYWRkIHRoaXMuY29udHJvbC50b3VjaGVkLlxyXG4gICAgICBpZiAoc3RhdHVzID09ICdJTlZBTElEJyAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0Vycm9yKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVFcnJvcigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXNDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxyXG4gIGhhbmRsZUJsdXJFdmVudCgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlID09PSAnJyB8fFxyXG4gICAgICAodGhpcy5jb250cm9sLnZhbHVlICYmICFTdHJpbmcodGhpcy5jb250cm9sLnZhbHVlKS50cmltKCkubGVuZ3RoKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Vycm9yKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbW92ZUVycm9yKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dFcnJvcigpIHtcclxuICAgIHRoaXMucmVtb3ZlRXJyb3IoKTtcclxuICAgIGNvbnN0IHZhbEVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMuY29udHJvbC5lcnJvcnM7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLmVycm9ycy5sZW5ndGggPiAxIHx8IE9iamVjdC5lbnRyaWVzKHRoaXMuY29udHJvbC5lcnJvcnMpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgdGhpcy5zaG93RG90ID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0RvdCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbEVycm9ycyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgc3dpdGNoIChrZXlzW2ldKSB7XHJcbiAgICAgICAgY2FzZSAncmVxdWlyZWQnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/ICc8YnI+JyA6ICcnfSR7dGhpcy5zaG93RG90ID8gJ1xcdTI1Q0YgJyArIG1lc3NhZ2UgOiBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoXHJcbiAgICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6IG1lc3NhZ2UgfSxcclxuICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnbWlubGVuZ3RoJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKFxyXG4gICAgICAgICAgICBrZXlzW2ldLFxyXG4gICAgICAgICAgICB2YWxFcnJvcnMubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdtYXhsZW5ndGgnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3IoXHJcbiAgICAgICAgICAgIGtleXNbaV0sXHJcbiAgICAgICAgICAgIHZhbEVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30ke3RoaXMuc2hvd0RvdCA/ICdcXHUyNUNGICcgKyBtZXNzYWdlIDogbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKFxyXG4gICAgICAgICAgICB7IG1heGxlbmd0aDogeyByZXF1aXJlZExlbmd0aDogdmFsRXJyb3JzLm1heGxlbmd0aC5yZXF1aXJlZExlbmd0aCB9LCBtZXNzYWdlOiBtZXNzYWdlIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ21heCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMubWF4Lm1heCk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30ke3RoaXMuc2hvd0RvdCA/ICdcXHUyNUNGICcgKyBtZXNzYWdlIDogbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKFxyXG4gICAgICAgICAgICB7IG1lc3NhZ2U6IG1lc3NhZ2UsIG1heDogeyBtYXg6IHZhbEVycm9ycy5tYXgubWF4IH0gfSxcclxuICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnbWluJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycy5taW4ubWluKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/ICc8YnI+JyA6ICcnfSR7dGhpcy5zaG93RG90ID8gJ1xcdTI1Q0YgJyArIG1lc3NhZ2UgOiBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoXHJcbiAgICAgICAgICAgIHsgbWVzc2FnZTogbWVzc2FnZSwgbWluOiB7IG1pbjogdmFsRXJyb3JzLm1pbi5taW4gfSB9LFxyXG4gICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdpbnZhbGlkTWF4QnVkZ2V0UmFuZ2UnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzLmxvd1Njb3JlUmVxKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/ICc8YnI+JyA6ICcnfSR7J1xcdTI1Q0YgJyArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdpbnZhbGlkTWluQnVkZ2V0UmFuZ2UnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzLmhpZ2hTY29yZVJlcSk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30keydcXHUyNUNGICcgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAncGF0dGVybic6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihcclxuICAgICAgICAgICAga2V5c1tpXSxcclxuICAgICAgICAgICAgdmFsRXJyb3JzLnBhdHRlcm4ucmVxdWlyZWRQYXR0ZXJuXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdlbWFpbCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdpbnZhbGlkSW50ZWdlck51bWJlcic6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldEVycm9ycyhcclxuICAgICAgICAgICAgeyBpbnZhbGlkSW50ZWdlck51bWJlcjogdHJ1ZSwgbWVzc2FnZTogbWVzc2FnZSB9LFxyXG4gICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdpbnZhbGlkUG9zaXRpdmVJbnRlZ2VyJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30ke3RoaXMuc2hvd0RvdCA/ICdcXHUyNUNGICcgKyBtZXNzYWdlIDogbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKFxyXG4gICAgICAgICAgICB7IGludmFsaWRQb3NpdGl2ZUludGVnZXI6IHRydWUsIG1lc3NhZ2U6IG1lc3NhZ2UgfSxcclxuICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnaW52YWxpZFBvc2l0aXZlRGVjaW1hbCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldEVycm9ycyhcclxuICAgICAgICAgICAgeyBpbnZhbGlkUG9zaXRpdmVEZWNpbWFsOiB0cnVlLCBtZXNzYWdlOiBtZXNzYWdlIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjYXNlICdub25Qb3NpdGl2ZU51bWJlcic6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldEVycm9ycyhcclxuICAgICAgICAgICAgeyBub25Qb3NpdGl2ZU51bWJlcjogdHJ1ZSwgbWVzc2FnZTogbWVzc2FnZSB9LFxyXG4gICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdub25TdHJpY3RseVBvc2l0aXZlTnVtYmVyJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30ke3RoaXMuc2hvd0RvdCA/ICdcXHUyNUNGICcgKyBtZXNzYWdlIDogbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKFxyXG4gICAgICAgICAgICB7IG5vblN0cmljdGx5UG9zaXRpdmVOdW1iZXI6IHRydWUsIG1lc3NhZ2U6IG1lc3NhZ2UgfSxcclxuICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnbm90VW5pcXVlJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30ke3RoaXMuc2hvd0RvdCA/ICdcXHUyNUNGICcgKyBtZXNzYWdlIDogbWVzc2FnZX1gO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ2hleENvbG9ySW52YWxpZCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdncmVhdGVyVGhhbkFuZExlc3NUaGFuT3JFcXVhbFZhbHVlJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30ke3RoaXMuc2hvd0RvdCA/ICdcXHUyNUNGICcgKyBtZXNzYWdlIDogbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZ3JlYXRlclRoYW5BbmRMZXNzVGhhbk9yRXF1YWxWYWx1ZToge1xyXG4gICAgICAgICAgICAgICAgbWluOiB2YWxFcnJvcnMuZ3JlYXRlclRoYW5BbmRMZXNzVGhhbk9yRXF1YWxWYWx1ZS5taW4sXHJcbiAgICAgICAgICAgICAgICBtYXg6IHZhbEVycm9ycy5ncmVhdGVyVGhhbkFuZExlc3NUaGFuT3JFcXVhbFZhbHVlLm1heCxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuT3JFcXVhbEFuZExlc3NUaGFuVmFsdWUnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/ICc8YnI+JyA6ICcnfSR7dGhpcy5zaG93RG90ID8gJ1xcdTI1Q0YgJyArIG1lc3NhZ2UgOiBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBncmVhdGVyVGhhbk9yRXF1YWxBbmRMZXNzVGhhblZhbHVlOiB7XHJcbiAgICAgICAgICAgICAgICBtaW46IHZhbEVycm9ycy5ncmVhdGVyVGhhbk9yRXF1YWxBbmRMZXNzVGhhblZhbHVlLm1pbixcclxuICAgICAgICAgICAgICAgIG1heDogdmFsRXJyb3JzLmdyZWF0ZXJUaGFuT3JFcXVhbEFuZExlc3NUaGFuVmFsdWUubWF4LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsQW5kTGVzc1RoYW5PckVxdWFsVmFsdWUnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/ICc8YnI+JyA6ICcnfSR7dGhpcy5zaG93RG90ID8gJ1xcdTI1Q0YgJyArIG1lc3NhZ2UgOiBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBncmVhdGVyVGhhbk9yRXF1YWxBbmRMZXNzVGhhbk9yRXF1YWxWYWx1ZToge1xyXG4gICAgICAgICAgICAgICAgbWluOiB2YWxFcnJvcnMuZ3JlYXRlclRoYW5PckVxdWFsQW5kTGVzc1RoYW5PckVxdWFsVmFsdWUubWluLFxyXG4gICAgICAgICAgICAgICAgbWF4OiB2YWxFcnJvcnMuZ3JlYXRlclRoYW5PckVxdWFsQW5kTGVzc1RoYW5PckVxdWFsVmFsdWUubWF4LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnaW52YWxpZFVybCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdjaGVja2JveENoZWNrZWQnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/ICc8YnI+JyA6ICcnfSR7dGhpcy5zaG93RG90ID8gJ1xcdTI1Q0YgJyArIG1lc3NhZ2UgOiBtZXNzYWdlfWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnY3VzdG9tTWVzc2FnZSc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdmFsRXJyb3JzLm1lc3NhZ2U7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30ke3RoaXMuc2hvd0RvdCA/ICdcXHUyNUNGICcgKyBtZXNzYWdlIDogbWVzc2FnZX1gO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ2NoZWNrYm94Q2hlY2tlZCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdtYXhEZWNpbWFsUGxhY2VzJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyAnPGJyPicgOiAnJ30ke3RoaXMuc2hvd0RvdCA/ICdcXHUyNUNGICcgKyBtZXNzYWdlIDogbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKFxyXG4gICAgICAgICAgICB7IG1heERlY2ltYWxQbGFjZXM6IHZhbEVycm9ycy5tYXhEZWNpbWFsUGxhY2VzLCBtZXNzYWdlOiBtZXNzYWdlIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ21heERpZ2l0cyc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gJzxicj4nIDogJyd9JHt0aGlzLnNob3dEb3QgPyAnXFx1MjVDRiAnICsgbWVzc2FnZSA6IG1lc3NhZ2V9YDtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldEVycm9ycyhcclxuICAgICAgICAgICAgeyBtYXhEaWdpdHM6IHZhbEVycm9ycy5tYXhEaWdpdHMsIG1lc3NhZ2U6IG1lc3NhZ2UgfSxcclxuICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNob3dCb3hFcnJvciAmJiB0aGlzLmVycm9yTWVzc2FnZSkge1xyXG4gICAgICBjb25zdCBlcnJEaXYgPVxyXG4gICAgICAgIGA8ZGl2IHN0eWxlPVwiY29sb3I6JHtQcmltYXJ5Q29sb3JzLiRwcmltYXJ5UmVkQ29sb3J9OyBcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyBcclxuICB3aWR0aDogJHt0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGh9cHg7IFxyXG4gIGJhY2tncm91bmQtY29sb3I6ICR7UHJpbWFyeUNvbG9ycy4kcHJpbWFyeUxpZ2h0UmVkQ29sb3J9OyBcclxuICBwYWRkaW5nOiAuNXJlbTsgXHJcbiAgYm9yZGVyLXJhZGl1czogLjVyZW07IFxyXG4gIGJvcmRlcjogLjFyZW0gc29saWQgJHtQcmltYXJ5Q29sb3JzLiRwcmltYXJ5UmVkQ29sb3J9OyBcclxuICBib3JkZXItbGVmdDogLjc1cmVtIHNvbGlkICR7UHJpbWFyeUNvbG9ycy4kcHJpbWFyeVJlZENvbG9yfTsgXHJcbiAgbWFyZ2luLXRvcDouNXJlbTsgXHJcbiAgZm9udC1zaXplOiAxLjJyZW07IFxyXG4gIGRpc3BsYXk6IGJsb2NrO1wiIGlkPVwiJHt0aGlzLmVycm9yRGl2SWR9XCI+YCArXHJcbiAgICAgICAgYDxoMyBzdHlsZT1cImZvbnQtc2l6ZTogMS4zcmVtOyBtYXJnaW46MCAwIC4yNXJlbSAwOyBjb2xvcjogJHtQcmltYXJ5Q29sb3JzLiRwcmltYXJ5UmVkQ29sb3J9OyBmb250LXdlaWdodDogNzAwOyBsaW5lLWhlaWdodDogMS42cmVtO1wiPmAgK1xyXG4gICAgICAgICdGaWVsZCBjb250YWlucyBlcnJvcnM6JyArXHJcbiAgICAgICAgJzwvaDM+JyArXHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgK1xyXG4gICAgICAgICc8L2Rpdj4nO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmJlZm9yZUJlZ2luICYmICF0aGlzLmFmdGVyRW5kKVxyXG4gICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Lmluc2VydEFkamFjZW50SFRNTChcclxuICAgICAgICAgICdhZnRlcmVuZCcsXHJcbiAgICAgICAgICBlcnJEaXZcclxuICAgICAgICApO1xyXG4gICAgICBlbHNlIGlmICh0aGlzLmJlZm9yZUJlZ2luKSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmViZWdpbicsIGVyckRpdik7XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuYWZ0ZXJFbmQpIHtcclxuICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsIGVyckRpdik7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBFcnJvcignQWRqdXN0bWVudCBub3Qgc3BlY2lmaWVkICcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVFcnJvcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICBjb25zdCBlcnJvckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmVycm9yRGl2SWQgYXMgc3RyaW5nKTtcclxuICAgIGlmIChlcnJvckVsZW1lbnQpIHtcclxuICAgICAgZXJyb3JFbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -54,7 +54,7 @@ export class GeneralInputRendererComponent {
|
|
|
54
54
|
return true;
|
|
55
55
|
}
|
|
56
56
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneralInputRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GeneralInputRendererComponent, selector: "general-input-renderer-test", ngImport: i0, template: "<ng-container *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\r\n <div [ngClass]=\"{ 'ag-description': params.isTypeTextArea }\" *ngIf=\"!isEdit\">\r\n <span>{{ formGroup.get(key).value }}</span>\r\n </div>\r\n\r\n <ng-container *ngIf=\"params.isTypeTextArea\">\r\n <div *ngIf=\"isEdit\" class=\"input-wrapper\">\r\n <textarea [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\"\r\n [style.width.px]=\"params.column.getActualWidth() - 20\"\r\n [style.height.px]=\" params.node.rowHeight - 20\"\r\n (change)=\"onCellDataChanged($event)\" [placeholder]=\"params.placeholder\"\r\n [formControlName]=\"key\"></textarea>\r\n <tooltip-msg-error [control]=\"formGroup.get(this.key)\" *ngIf=\"\r\n formGroup.get(this.key).errors && formGroup.get(this.key).touched\r\n \"></tooltip-msg-error>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngIf=\"params.isTypeText && isEdit\" class=\"cont\">\r\n <input [readonly]=\"readonly\" [placeholder]=\"params.placeholder\"\r\n appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\" style=\"margin-left: -2.2rem\">{{ params.symbol\r\n }}</span>\r\n <tooltip-msg-error\r\n *ngIf=\"formGroup.get(key).errors && formGroup.get(key) && formGroup.get(key).touched\"\r\n [message]=\"formGroup.get(key).errors.message\"></tooltip-msg-error>\r\n </div>\r\n\r\n <div *ngIf=\"params.isTypeNumber && isEdit\" class=\"input-wrapper\">\r\n <div class=\"input-symbol-group\">\r\n <input [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\" [placeholder]=\"params.placeholder\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\"\r\n type=\"number\" />\r\n <span class=\"symbol\" *ngIf=\"params.showSymbol\">{{ params.symbol }}</span>\r\n </div>\r\n\r\n <tooltip-msg-error\r\n *ngIf=\"formGroup.get(key)?.errors && formGroup.get(key)?.touched\"\r\n [message]=\"formGroup.get(key)?.errors.message\"></tooltip-msg-error>\r\n </div>\r\n <div *ngIf=\"params.isTypeIntegerNumber && isEdit\" class=\"cont\">\r\n <input [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\" [placeholder]=\"params.placeholder\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" type=\"number\" />\r\n <span class=\"symbol\" *ngIf=\"params.showSymbol\" style=\"margin-left: -2.2rem\">{{\r\n params.symbol\r\n }}</span>\r\n <tooltip-msg-error *ngIf=\"formGroup.get(key).errors && formGroup.get(key).touched\"\r\n [message]=\"formGroup.get(key).errors.message\"></tooltip-msg-error>\r\n </div>\r\n</ng-container>", styles: [".symbol{color:#155ed4}textarea{height:98%}.cont{display:flex;align-items:center;gap:.5rem}.input-wrapper{display:flex;align-items:center;gap:.25rem}.input-symbol-group{display:flex;align-items:center;position:relative}.input-symbol-group input{padding-right:1.5rem}.symbol{position:absolute;right:1rem;pointer-events:none;color:#155ed4;z-index:2}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormControlValidationMsgDirectiveForInput, selector: "[appFormControlValidationMsgForInputs]", inputs: ["showBoxError", "
|
|
57
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GeneralInputRendererComponent, selector: "general-input-renderer-test", ngImport: i0, template: "<ng-container *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\r\n <div [ngClass]=\"{ 'ag-description': params.isTypeTextArea }\" *ngIf=\"!isEdit\">\r\n <span>{{ formGroup.get(key).value }}</span>\r\n </div>\r\n\r\n <ng-container *ngIf=\"params.isTypeTextArea\">\r\n <div *ngIf=\"isEdit\" class=\"input-wrapper\">\r\n <textarea [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\"\r\n [style.width.px]=\"params.column.getActualWidth() - 20\"\r\n [style.height.px]=\" params.node.rowHeight - 20\"\r\n (change)=\"onCellDataChanged($event)\" [placeholder]=\"params.placeholder\"\r\n [formControlName]=\"key\"></textarea>\r\n <tooltip-msg-error [control]=\"formGroup.get(this.key)\" *ngIf=\"\r\n formGroup.get(this.key).errors && formGroup.get(this.key).touched\r\n \"></tooltip-msg-error>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngIf=\"params.isTypeText && isEdit\" class=\"cont\">\r\n <input [readonly]=\"readonly\" [placeholder]=\"params.placeholder\"\r\n appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\" style=\"margin-left: -2.2rem\">{{ params.symbol\r\n }}</span>\r\n <tooltip-msg-error\r\n *ngIf=\"formGroup.get(key).errors && formGroup.get(key) && formGroup.get(key).touched\"\r\n [message]=\"formGroup.get(key).errors.message\"></tooltip-msg-error>\r\n </div>\r\n\r\n <div *ngIf=\"params.isTypeNumber && isEdit\" class=\"input-wrapper\">\r\n <div class=\"input-symbol-group\">\r\n <input [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\" [placeholder]=\"params.placeholder\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\"\r\n type=\"number\" />\r\n <span class=\"symbol\" *ngIf=\"params.showSymbol\">{{ params.symbol }}</span>\r\n </div>\r\n\r\n <tooltip-msg-error\r\n *ngIf=\"formGroup.get(key)?.errors && formGroup.get(key)?.touched\"\r\n [message]=\"formGroup.get(key)?.errors.message\"></tooltip-msg-error>\r\n </div>\r\n <div *ngIf=\"params.isTypeIntegerNumber && isEdit\" class=\"cont\">\r\n <input [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\" [placeholder]=\"params.placeholder\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" type=\"number\" />\r\n <span class=\"symbol\" *ngIf=\"params.showSymbol\" style=\"margin-left: -2.2rem\">{{\r\n params.symbol\r\n }}</span>\r\n <tooltip-msg-error *ngIf=\"formGroup.get(key).errors && formGroup.get(key).touched\"\r\n [message]=\"formGroup.get(key).errors.message\"></tooltip-msg-error>\r\n </div>\r\n</ng-container>", styles: [".symbol{color:#155ed4}textarea{height:98%}.cont{display:flex;align-items:center;gap:.5rem}.input-wrapper{display:flex;align-items:center;gap:.25rem}.input-symbol-group{display:flex;align-items:center;position:relative}.input-symbol-group input{padding-right:1.5rem}.symbol{position:absolute;right:1rem;pointer-events:none;color:#155ed4;z-index:2}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormControlValidationMsgDirectiveForInput, selector: "[appFormControlValidationMsgForInputs]", inputs: ["showBoxError", "beforeBegin", "afterEnd"] }, { kind: "component", type: i4.TooltipMsgError, selector: "tooltip-msg-error", inputs: ["width", "control", "messageType", "message"] }] });
|
|
58
58
|
}
|
|
59
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneralInputRendererComponent, decorators: [{
|
|
60
60
|
type: Component,
|
|
@@ -70,7 +70,8 @@ export class InputsModule {
|
|
|
70
70
|
EditableSavableInputComponent,
|
|
71
71
|
DropdownActionsComponent,
|
|
72
72
|
DynamicPipe,
|
|
73
|
-
AddAsteriskDirective
|
|
73
|
+
AddAsteriskDirective,
|
|
74
|
+
TooltipMsgError] });
|
|
74
75
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, imports: [CommonModule,
|
|
75
76
|
NgSelectModule,
|
|
76
77
|
FormsModule,
|
|
@@ -121,8 +122,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
121
122
|
EditableSavableInputComponent,
|
|
122
123
|
DropdownActionsComponent,
|
|
123
124
|
DynamicPipe,
|
|
124
|
-
AddAsteriskDirective
|
|
125
|
+
AddAsteriskDirective,
|
|
126
|
+
TooltipMsgError
|
|
125
127
|
]
|
|
126
128
|
}]
|
|
127
129
|
}] });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvbGliL2lucHV0cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDM0gsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDakgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3BILE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzFILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUErQ2xGLE1BQU0sT0FBTyxZQUFZO0lBRWhCLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBZ0I7UUFFcEMsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVCx3QkFBd0I7Z0JBQ3hCO29CQUNFLE9BQU8sRUFBRSxLQUFLO29CQUNkLFFBQVEsRUFBRSxXQUFXO2lCQUN0QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7d0dBZFUsWUFBWTt5R0FBWixZQUFZLGlCQTFDckIsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLHVCQUF1QjtZQUN2QixzQkFBc0I7WUFDdEIsOEJBQThCO1lBQzlCLDZCQUE2QjtZQUM3QixXQUFXO1lBQ1gsa0NBQWtDO1lBQ2xDLG9DQUFvQztZQUNwQyx3QkFBd0I7WUFDeEIseUNBQXlDO1lBQ3pDLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIsNENBQTRDO1lBQzVDLGVBQWUsYUFHZixZQUFZO1lBQ1osY0FBYztZQUNkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLDZCQUE2QjtZQUM3QixpQkFBaUIsYUFHakIsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLHVCQUF1QjtZQUN2QixzQkFBc0I7WUFDdEIsOEJBQThCO1lBQzlCLDZCQUE2QjtZQUM3Qix3QkFBd0I7WUFDeEIsV0FBVztZQUNYLG9CQUFvQjtZQUNwQixlQUFlO3lHQUdOLFlBQVksWUF2QnJCLFlBQVk7WUFDWixjQUFjO1lBQ2QsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsNkJBQTZCO1lBQzdCLGlCQUFpQjs7NEZBaUJSLFlBQVk7a0JBNUN4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLDZCQUE2Qjt3QkFDN0IsV0FBVzt3QkFDWCxrQ0FBa0M7d0JBQ2xDLG9DQUFvQzt3QkFDcEMsd0JBQXdCO3dCQUN4Qix5Q0FBeUM7d0JBQ3pDLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQiw0Q0FBNEM7d0JBQzVDLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsNkJBQTZCO3dCQUM3QixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLDZCQUE2Qjt3QkFDN0Isd0JBQXdCO3dCQUN4QixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XHJcbmltcG9ydCB7IEFwcE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnQGpvb2xlci9hcHAtbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBTaGFyZWRHZW5lcmFsQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJ0Bqb29sZXIvc2hhcmVkLWdlbmVyYWwtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xyXG5pbXBvcnQgeyBBZGRBc3Rlcmlza0RpcmVjdGl2ZSB9IGZyb20gJy4vYWRkLWFzdGVyaXNrLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENob29zZUVudW1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY2hvb3NlLWVudW0tcmVuZGVyZXIvY2hvb3NlLWVudW0tcmVuZGVyZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hvb3NlRW51bUNvbXBvbmVudCB9IGZyb20gJy4vY2hvb3NlLWVudW0vY2hvb3NlLWVudW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hvb3NlR2VuZXJhbEl0ZW1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY2hvb3NlLWdlbmVyYWwtaXRlbS1yZW5kZXJlci9jaG9vc2UtZ2VuZXJhbC1pdGVtLXJlbmRlcmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENob29zZUdlbmVyYWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jaG9vc2UtZ2VuZXJhbC1pdGVtL2Nob29zZS1nZW5lcmFsLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hvb3NlR2VuZXJhbEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9jaG9vc2UtZ2VuZXJhbC1pdGVtL2Nob29zZS1nZW5lcmFsLWl0ZW0uc2VydmljZSc7XHJcbmltcG9ydCB7IENob29zZUxpbmVUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jaG9vc2UtbGluZS10eXBlL2Nob29zZS1saW5lLXR5cGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hvb3NlWWVzT3JOb1JlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jaG9vc2UteWVzLW9yLW5vLXJlbmRlcmVyL2Nob29zZS15ZXMtb3Itbm8tcmVuZGVyZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hvb3NlWWVzT3JOb0NvbXBvbmVudCB9IGZyb20gJy4vY2hvb3NlLXllcy1vci1uby9jaG9vc2UteWVzLW9yLW5vLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vZHJvcGRvd24tYWN0aW9ucy9kcm9wZG93bi1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNQaXBlIH0gZnJvbSAnLi9lZGl0YWJsZS1zYXZhYmxlLWlucHV0L2R5bmFtaWNQaXBlJztcclxuaW1wb3J0IHsgRWRpdGFibGVTYXZhYmxlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2VkaXRhYmxlLXNhdmFibGUtaW5wdXQvZWRpdGFibGUtc2F2YWJsZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbFZhbGlkYXRpb25Nc2dEaXJlY3RpdmVGb3JOZ1NlbGVjdCB9IGZyb20gJy4vZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2ctZm9yLW5nLXNlbGVjdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbFZhbGlkYXRpb25Nc2dEaXJlY3RpdmVGb3JJbnB1dCB9IGZyb20gJy4vZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ3VzdG9tRGVjaW1hbFBvaW50VHdvRGlnaXRzRGlyZWN0aXZlIH0gZnJvbSAnLi9nZW5lcmFsLWlucHV0LXJlbmRlcmVyL2N1c3RvbS1kZWNpbWFsLXBvaW50LXR3by1kaWdpdHMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgR2VuZXJhbElucHV0UmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2dlbmVyYWwtaW5wdXQtcmVuZGVyZXIvZ2VuZXJhbC1pbnB1dC1yZW5kZXJlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaG93VGFibGVFcnJvcnNDb21wb25lbnQgfSBmcm9tICcuL3Nob3ctdGFibGUtZXJyb3JzL3Nob3ctdGFibGUtZXJyb3JzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBNc2dFcnJvciB9IGZyb20gJy4vdG9vbHRpcC1tc2ctZXJyb3IvdG9vbHRpcC1tc2ctZXJyb3IuY29tcG9uZW50JztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQ2hvb3NlRW51bUNvbXBvbmVudCxcclxuICAgIENob29zZUVudW1SZW5kZXJlckNvbXBvbmVudCxcclxuICAgIENob29zZUdlbmVyYWxJdGVtQ29tcG9uZW50LFxyXG4gICAgR2VuZXJhbElucHV0UmVuZGVyZXJDb21wb25lbnQsXHJcbiAgICBDaG9vc2VMaW5lVHlwZUNvbXBvbmVudCxcclxuICAgIENob29zZVllc09yTm9Db21wb25lbnQsXHJcbiAgICBDaG9vc2VZZXNPck5vUmVuZGVyZXJDb21wb25lbnQsXHJcbiAgICBFZGl0YWJsZVNhdmFibGVJbnB1dENvbXBvbmVudCxcclxuICAgIER5bmFtaWNQaXBlLFxyXG4gICAgQ2hvb3NlR2VuZXJhbEl0ZW1SZW5kZXJlckNvbXBvbmVudCxcclxuICAgIEN1c3RvbURlY2ltYWxQb2ludFR3b0RpZ2l0c0RpcmVjdGl2ZSxcclxuICAgIFNob3dUYWJsZUVycm9yc0NvbXBvbmVudCxcclxuICAgIEZvcm1Db250cm9sVmFsaWRhdGlvbk1zZ0RpcmVjdGl2ZUZvcklucHV0LFxyXG4gICAgRHJvcGRvd25BY3Rpb25zQ29tcG9uZW50LFxyXG4gICAgQWRkQXN0ZXJpc2tEaXJlY3RpdmUsXHJcbiAgICBGb3JtQ29udHJvbFZhbGlkYXRpb25Nc2dEaXJlY3RpdmVGb3JOZ1NlbGVjdCxcclxuICAgIFRvb2x0aXBNc2dFcnJvclxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTmdTZWxlY3RNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBBcHBNYXRlcmlhbE1vZHVsZSxcclxuICAgIFNoYXJlZEdlbmVyYWxDb21wb25lbnRzTW9kdWxlLFxyXG4gICAgRm9udEF3ZXNvbWVNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDaG9vc2VFbnVtQ29tcG9uZW50LFxyXG4gICAgQ2hvb3NlRW51bVJlbmRlcmVyQ29tcG9uZW50LFxyXG4gICAgQ2hvb3NlR2VuZXJhbEl0ZW1Db21wb25lbnQsXHJcbiAgICBHZW5lcmFsSW5wdXRSZW5kZXJlckNvbXBvbmVudCxcclxuICAgIENob29zZUxpbmVUeXBlQ29tcG9uZW50LFxyXG4gICAgQ2hvb3NlWWVzT3JOb0NvbXBvbmVudCxcclxuICAgIENob29zZVllc09yTm9SZW5kZXJlckNvbXBvbmVudCxcclxuICAgIEVkaXRhYmxlU2F2YWJsZUlucHV0Q29tcG9uZW50LFxyXG4gICAgRHJvcGRvd25BY3Rpb25zQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY1BpcGUsXHJcbiAgICBBZGRBc3Rlcmlza0RpcmVjdGl2ZSxcclxuICAgIFRvb2x0aXBNc2dFcnJvclxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0c01vZHVsZSB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudDogYW55KTogTW9kdWxlV2l0aFByb3ZpZGVyczxJbnB1dHNNb2R1bGU+IHtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSW5wdXRzTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBDaG9vc2VHZW5lcmFsSXRlbVNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogJ2VudicsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogZW52aXJvbm1lbnRcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG59Il19
|