kwikid-forms 0.3.2 → 0.3.3
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/bundles/kwikid-forms.umd.js +1395 -393
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/builder/builder.component.js +86 -67
- package/esm2015/lib/builder/builder.module.js +52 -7
- package/esm2015/lib/builder/element-config-editor/editors/basic/checkbox-config.editor.component.js +72 -0
- package/esm2015/lib/builder/element-config-editor/editors/basic/date-config.editor.component.js +72 -0
- package/esm2015/lib/builder/element-config-editor/editors/basic/number-config.editor.component.js +72 -0
- package/esm2015/lib/builder/element-config-editor/editors/basic/otp-config.editor.component.js +130 -0
- package/esm2015/lib/builder/element-config-editor/editors/basic/phone-config.editor.component.js +130 -0
- package/esm2015/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.js +241 -147
- package/esm2015/lib/builder/element-config-editor/editors/basic/text-config.editor.component.js +48 -51
- package/esm2015/lib/builder/element-config-editor/editors/basic-element-config.editor.component.js +475 -333
- package/esm2015/lib/builder/element-config-editor/editors/document/aadhaar-number-config.editor.component.js +130 -0
- package/esm2015/lib/builder/element-config-editor/editors/document/pan-number-config.editor.component.js +135 -0
- package/esm2015/lib/builder/element-config-editor/editors/document-element-config.editor.component.js +610 -0
- package/esm2015/lib/builder/element-config-editor/editors/other/html-config.editor.component.js +120 -0
- package/esm2015/lib/builder/element-config-editor/editors/other/title-config.editor.component.js +121 -0
- package/esm2015/lib/builder/element-config-editor/editors/other-element-config.editor.component.js +214 -0
- package/esm2015/lib/builder/element-config-editor/element-config-editor.component.js +6 -3
- package/esm2015/lib/builder/shared/elements.js +33 -8
- package/esm2015/lib/renderer/config-converter.helper.js +1 -2
- package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +1 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +28 -13
- package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +17 -15
- package/esm2015/lib/renderer/renderer.component.js +1 -2
- package/fesm2015/kwikid-forms.js +2786 -738
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/builder/builder.component.d.ts +4 -0
- package/lib/builder/builder.module.d.ts +16 -5
- package/lib/builder/element-config-editor/editors/basic/checkbox-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/basic/date-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/basic/number-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/basic/otp-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/basic/phone-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/document/aadhaar-number-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/document/pan-number-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/document-element-config.editor.component.d.ts +20 -0
- package/lib/builder/element-config-editor/editors/other/html-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/other/title-config.editor.component.d.ts +16 -0
- package/lib/builder/element-config-editor/editors/other-element-config.editor.component.d.ts +20 -0
- package/lib/builder/shared/elements.d.ts +3 -1
- package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +3 -1
- package/package.json +1 -1
package/esm2015/lib/builder/element-config-editor/editors/basic-element-config.editor.component.js
CHANGED
|
@@ -3,10 +3,15 @@ import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
|
3
3
|
import { FormControl, FormGroup } from "@angular/forms";
|
|
4
4
|
import { logMethod, mergeObjects } from "kwikid-toolkit";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "./basic/
|
|
8
|
-
import * as i3 from "
|
|
9
|
-
import * as i4 from "
|
|
6
|
+
import * as i1 from "kwikui";
|
|
7
|
+
import * as i2 from "./basic/text-config.editor.component";
|
|
8
|
+
import * as i3 from "./basic/number-config.editor.component";
|
|
9
|
+
import * as i4 from "./basic/radio-config.editor.component";
|
|
10
|
+
import * as i5 from "./basic/checkbox-config.editor.component";
|
|
11
|
+
import * as i6 from "./basic/otp-config.editor.component";
|
|
12
|
+
import * as i7 from "./basic/phone-config.editor.component";
|
|
13
|
+
import * as i8 from "@angular/common";
|
|
14
|
+
import * as i9 from "@angular/forms";
|
|
10
15
|
export class BasicElementConfigEditor {
|
|
11
16
|
constructor() {
|
|
12
17
|
this.saveClickCounter = 0;
|
|
@@ -39,13 +44,14 @@ export class BasicElementConfigEditor {
|
|
|
39
44
|
this.createBasicFormGroup();
|
|
40
45
|
}
|
|
41
46
|
ngOnChanges(changes) {
|
|
47
|
+
var _a;
|
|
42
48
|
const verifyChange = (key) => {
|
|
43
49
|
return changes.hasOwnProperty(key) && !changes[key].firstChange;
|
|
44
50
|
};
|
|
45
51
|
if (verifyChange("elementConfig")) {
|
|
46
52
|
this.elementConfig = changes.elementConfig.currentValue;
|
|
47
53
|
this.assignVariables();
|
|
48
|
-
this.
|
|
54
|
+
(_a = this.basicFormGroup) === null || _a === void 0 ? void 0 : _a.reset(this.elementConfig);
|
|
49
55
|
}
|
|
50
56
|
if (verifyChange("saveClickCounter")) {
|
|
51
57
|
if (changes.saveClickCounter.previousValue !==
|
|
@@ -112,179 +118,212 @@ export class BasicElementConfigEditor {
|
|
|
112
118
|
/** @nocollapse */ BasicElementConfigEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicElementConfigEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
113
119
|
/** @nocollapse */ BasicElementConfigEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BasicElementConfigEditor, selector: "basic-element-config-editor", inputs: { saveClickCounter: "saveClickCounter", elementConfig: "elementConfig" }, outputs: { updateElement: "updateElement" }, usesOnChanges: true, ngImport: i0, template: `
|
|
114
120
|
<ng-container *ngIf="elementConfig !== undefined">
|
|
115
|
-
<table
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
</table>
|
|
121
|
+
<kwikui-table
|
|
122
|
+
style="width: 100%; height: 100%; overflow: auto; box-shadow: 0px 0px 10px -6px #000; border: 0px solid gray; border-radius: 1rem;"
|
|
123
|
+
[columns]="['id', 'type', 'category']"
|
|
124
|
+
[headers]="{ id: 'ID', type: 'Type', category: 'Category' }"
|
|
125
|
+
[data]="[
|
|
126
|
+
{
|
|
127
|
+
id: elementConfig.elementId,
|
|
128
|
+
type: elementConfig.elementType,
|
|
129
|
+
category: elementConfig.elementCategory
|
|
130
|
+
}
|
|
131
|
+
]"
|
|
132
|
+
(onClick)="(undefined)"
|
|
133
|
+
></kwikui-table>
|
|
129
134
|
</ng-container>
|
|
130
135
|
<form [formGroup]="basicFormGroup">
|
|
131
136
|
<fieldset>
|
|
132
|
-
<legend>Standard</legend>
|
|
137
|
+
<legend class="form-group-title">Standard</legend>
|
|
133
138
|
<div class="form-group">
|
|
134
|
-
<
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
<kwikui-input
|
|
140
|
+
[label]="'Label'"
|
|
141
|
+
[id]="'basic-field-label'"
|
|
142
|
+
[type]="'text'"
|
|
143
|
+
[formControlName]="'label'"
|
|
144
|
+
[formControl]="basicFormGroup.controls['label']"
|
|
145
|
+
[disabled]="false"
|
|
146
|
+
[placeholder]="'Please enter your Label'"
|
|
147
|
+
[focus]="false"
|
|
148
|
+
[invalid]="false"
|
|
149
|
+
[case]="'default'"
|
|
150
|
+
size="m"
|
|
151
|
+
></kwikui-input>
|
|
142
152
|
</div>
|
|
143
153
|
<div class="form-group">
|
|
144
|
-
<
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
154
|
+
<kwikui-input
|
|
155
|
+
[label]="'Key'"
|
|
156
|
+
[id]="'basic-field-key'"
|
|
157
|
+
[type]="'text'"
|
|
158
|
+
[formControlName]="'key'"
|
|
159
|
+
[formControl]="basicFormGroup.controls['key']"
|
|
160
|
+
[disabled]="false"
|
|
161
|
+
[placeholder]="'Please enter your Key'"
|
|
162
|
+
[focus]="false"
|
|
163
|
+
[invalid]="false"
|
|
164
|
+
[case]="'default'"
|
|
165
|
+
size="m"
|
|
166
|
+
></kwikui-input>
|
|
152
167
|
</div>
|
|
153
168
|
<div class="form-group">
|
|
154
|
-
<
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
*ngFor="let disabled of [true, false]"
|
|
167
|
-
[ngValue]="disabled"
|
|
168
|
-
>
|
|
169
|
-
{{ disabled }}
|
|
170
|
-
</option>
|
|
171
|
-
</select>
|
|
172
|
-
</div>
|
|
173
|
-
</fieldset>
|
|
174
|
-
<fieldset formGroupName="default">
|
|
175
|
-
<legend>Default</legend>
|
|
176
|
-
<div class="form-group">
|
|
177
|
-
<label for="basic-input-property-value">value</label>
|
|
178
|
-
<select
|
|
179
|
-
class="form-control"
|
|
180
|
-
formControlName="value"
|
|
181
|
-
id="basic-input-property-value"
|
|
182
|
-
>
|
|
183
|
-
<option
|
|
184
|
-
[ngValue]="null"
|
|
185
|
-
value
|
|
186
|
-
>Select either true or false</option
|
|
187
|
-
>
|
|
188
|
-
<option
|
|
189
|
-
*ngFor="let value of [true, false]"
|
|
190
|
-
[ngValue]="value"
|
|
191
|
-
>
|
|
192
|
-
{{ value }}
|
|
193
|
-
</option>
|
|
194
|
-
</select>
|
|
195
|
-
</div>
|
|
196
|
-
</fieldset>
|
|
197
|
-
<fieldset formGroupName="validators">
|
|
198
|
-
<legend>Validators</legend>
|
|
199
|
-
<div class="form-group">
|
|
200
|
-
<label for="basic-input-validators-min">min</label>
|
|
201
|
-
<input
|
|
202
|
-
class="form-control"
|
|
203
|
-
formControlName="min"
|
|
204
|
-
id="basic-input-validators-min"
|
|
205
|
-
type="number"
|
|
206
|
-
/>
|
|
207
|
-
</div>
|
|
208
|
-
<div class="form-group">
|
|
209
|
-
<label for="basic-input-validators-max">max</label>
|
|
210
|
-
<input
|
|
211
|
-
class="form-control"
|
|
212
|
-
formControlName="max"
|
|
213
|
-
id="basic-input-validators-max"
|
|
214
|
-
type="number"
|
|
215
|
-
/>
|
|
216
|
-
</div>
|
|
217
|
-
<div class="form-group">
|
|
218
|
-
<label for="basic-input-validators-minLength">minLength</label>
|
|
219
|
-
<input
|
|
220
|
-
class="form-control"
|
|
221
|
-
formControlName="minLength"
|
|
222
|
-
id="basic-input-validators-minLength"
|
|
223
|
-
type="number"
|
|
224
|
-
/>
|
|
225
|
-
</div>
|
|
226
|
-
<div class="form-group">
|
|
227
|
-
<label for="basic-input-validators-maxLength">maxLength</label>
|
|
228
|
-
<input
|
|
229
|
-
class="form-control"
|
|
230
|
-
formControlName="maxLength"
|
|
231
|
-
id="basic-input-validators-maxLength"
|
|
232
|
-
type="number"
|
|
233
|
-
/>
|
|
234
|
-
</div>
|
|
235
|
-
<div class="form-group">
|
|
236
|
-
<label for="basic-input-property-required">required</label>
|
|
237
|
-
<select
|
|
238
|
-
class="form-control"
|
|
239
|
-
formControlName="required"
|
|
240
|
-
id="basic-input-property-required"
|
|
241
|
-
>
|
|
242
|
-
<option
|
|
243
|
-
[ngValue]="null"
|
|
244
|
-
disabled
|
|
245
|
-
>Select either true or false</option
|
|
246
|
-
>
|
|
247
|
-
<option
|
|
248
|
-
*ngFor="let required of [true, false]"
|
|
249
|
-
[ngValue]="required"
|
|
250
|
-
>
|
|
251
|
-
{{ required }}
|
|
252
|
-
</option>
|
|
253
|
-
</select>
|
|
254
|
-
</div>
|
|
255
|
-
</fieldset>
|
|
256
|
-
<fieldset formGroupName="properties">
|
|
257
|
-
<legend>Properties</legend>
|
|
258
|
-
<div class="form-group">
|
|
259
|
-
<label for="basic-input-property-placeholder">Placeholder</label>
|
|
260
|
-
<input
|
|
261
|
-
class="form-control"
|
|
262
|
-
formControlName="placeholder"
|
|
263
|
-
id="basic-input-property-placeholder"
|
|
264
|
-
type="text"
|
|
265
|
-
/>
|
|
266
|
-
</div>
|
|
267
|
-
<div class="form-group">
|
|
268
|
-
<label for="basic-input-property-readonly">readOnly</label>
|
|
269
|
-
<select
|
|
270
|
-
class="form-control"
|
|
271
|
-
formControlName="readOnly"
|
|
272
|
-
id="basic-input-property-readonly"
|
|
273
|
-
>
|
|
274
|
-
<option
|
|
275
|
-
[ngValue]="null"
|
|
276
|
-
disabled
|
|
277
|
-
>Select either true or false</option
|
|
278
|
-
>
|
|
279
|
-
<option
|
|
280
|
-
*ngFor="let readonly of [true, false]"
|
|
281
|
-
[ngValue]="readonly"
|
|
282
|
-
>
|
|
283
|
-
{{ readonly }}
|
|
284
|
-
</option>
|
|
285
|
-
</select>
|
|
169
|
+
<kwikui-select-combobox
|
|
170
|
+
[options]="[true, false]"
|
|
171
|
+
[label]="'Disabled'"
|
|
172
|
+
[id]="'basic-input-property-disabled'"
|
|
173
|
+
size="m"
|
|
174
|
+
[formControlName]="'disabled'"
|
|
175
|
+
[formControl]="basicFormGroup.controls['disabled']"
|
|
176
|
+
[focus]="false"
|
|
177
|
+
[disabled]="false"
|
|
178
|
+
[invalid]="false"
|
|
179
|
+
[placeholder]="'Please select either true or false'"
|
|
180
|
+
></kwikui-select-combobox>
|
|
286
181
|
</div>
|
|
287
182
|
</fieldset>
|
|
183
|
+
|
|
184
|
+
<div formGroupName="default">
|
|
185
|
+
<fieldset>
|
|
186
|
+
<legend class="form-group-title">Default</legend>
|
|
187
|
+
<div class="form-group">
|
|
188
|
+
<kwikui-select-combobox
|
|
189
|
+
[options]="[true, false]"
|
|
190
|
+
[label]="'value'"
|
|
191
|
+
[id]="'basic-input-property-value'"
|
|
192
|
+
size="m"
|
|
193
|
+
[formControlName]="'value'"
|
|
194
|
+
[formControl]="
|
|
195
|
+
basicFormGroup['controls'].default['controls'].value
|
|
196
|
+
"
|
|
197
|
+
[focus]="false"
|
|
198
|
+
[disabled]="false"
|
|
199
|
+
[invalid]="false"
|
|
200
|
+
[placeholder]="'Please select either true or false'"
|
|
201
|
+
></kwikui-select-combobox>
|
|
202
|
+
</div>
|
|
203
|
+
</fieldset>
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
<div formGroupName="validators">
|
|
207
|
+
<fieldset>
|
|
208
|
+
<legend class="form-group-title">Validators</legend>
|
|
209
|
+
<div class="form-group">
|
|
210
|
+
<kwikui-input-number
|
|
211
|
+
[label]="'min'"
|
|
212
|
+
[id]="'basic-input-validators-min'"
|
|
213
|
+
[formControlName]="'min'"
|
|
214
|
+
[formControl]="
|
|
215
|
+
basicFormGroup['controls'].validators['controls'].min
|
|
216
|
+
"
|
|
217
|
+
[disabled]="false"
|
|
218
|
+
[placeholder]="'Please enter your minimum value'"
|
|
219
|
+
[focus]="false"
|
|
220
|
+
[invalid]="false"
|
|
221
|
+
size="m"
|
|
222
|
+
></kwikui-input-number>
|
|
223
|
+
</div>
|
|
224
|
+
<div class="form-group">
|
|
225
|
+
<kwikui-input-number
|
|
226
|
+
[label]="'max'"
|
|
227
|
+
[id]="'basic-input-validators-max'"
|
|
228
|
+
[formControlName]="'max'"
|
|
229
|
+
[formControl]="
|
|
230
|
+
basicFormGroup['controls'].validators['controls'].max
|
|
231
|
+
"
|
|
232
|
+
[disabled]="false"
|
|
233
|
+
[placeholder]="'Please enter your maximum value'"
|
|
234
|
+
[focus]="false"
|
|
235
|
+
[invalid]="false"
|
|
236
|
+
size="m"
|
|
237
|
+
></kwikui-input-number>
|
|
238
|
+
</div>
|
|
239
|
+
<div class="form-group">
|
|
240
|
+
<kwikui-input-number
|
|
241
|
+
[label]="'minLength'"
|
|
242
|
+
[id]="'basic-input-validators-minLength'"
|
|
243
|
+
[formControlName]="'minLength'"
|
|
244
|
+
[formControl]="
|
|
245
|
+
basicFormGroup['controls'].validators['controls'].minLength
|
|
246
|
+
"
|
|
247
|
+
[disabled]="false"
|
|
248
|
+
[placeholder]="'Please enter your minimum length value'"
|
|
249
|
+
[focus]="false"
|
|
250
|
+
[invalid]="false"
|
|
251
|
+
size="m"
|
|
252
|
+
></kwikui-input-number>
|
|
253
|
+
</div>
|
|
254
|
+
<div class="form-group">
|
|
255
|
+
<kwikui-input-number
|
|
256
|
+
[label]="'maxLength'"
|
|
257
|
+
[id]="'basic-input-validators-maxLength'"
|
|
258
|
+
[formControlName]="'maxLength'"
|
|
259
|
+
[formControl]="
|
|
260
|
+
basicFormGroup['controls'].validators['controls'].maxLength
|
|
261
|
+
"
|
|
262
|
+
[disabled]="false"
|
|
263
|
+
[placeholder]="'Please enter your maximum length value'"
|
|
264
|
+
[focus]="false"
|
|
265
|
+
[invalid]="false"
|
|
266
|
+
size="m"
|
|
267
|
+
></kwikui-input-number>
|
|
268
|
+
</div>
|
|
269
|
+
<div class="form-group">
|
|
270
|
+
<kwikui-select-combobox
|
|
271
|
+
[options]="[true, false]"
|
|
272
|
+
[label]="'required'"
|
|
273
|
+
[id]="'basic-input-property-required'"
|
|
274
|
+
size="m"
|
|
275
|
+
[formControlName]="'required'"
|
|
276
|
+
[formControl]="
|
|
277
|
+
basicFormGroup['controls'].validators['controls'].required
|
|
278
|
+
"
|
|
279
|
+
[focus]="false"
|
|
280
|
+
[disabled]="false"
|
|
281
|
+
[invalid]="false"
|
|
282
|
+
[placeholder]="'Please select either true or false'"
|
|
283
|
+
></kwikui-select-combobox>
|
|
284
|
+
</div>
|
|
285
|
+
</fieldset>
|
|
286
|
+
</div>
|
|
287
|
+
|
|
288
|
+
<div formGroupName="properties">
|
|
289
|
+
<fieldset>
|
|
290
|
+
<legend class="form-group-title">Properties</legend>
|
|
291
|
+
<div class="form-group">
|
|
292
|
+
<kwikui-input
|
|
293
|
+
[label]="'Placeholder'"
|
|
294
|
+
[id]="'basic-field-placeholder'"
|
|
295
|
+
[type]="'text'"
|
|
296
|
+
[formControlName]="'placeholder'"
|
|
297
|
+
[formControl]="
|
|
298
|
+
basicFormGroup.controls.properties['controls'].placeholder
|
|
299
|
+
"
|
|
300
|
+
[disabled]="false"
|
|
301
|
+
[placeholder]="'Please enter your placeholder'"
|
|
302
|
+
[focus]="false"
|
|
303
|
+
[invalid]="false"
|
|
304
|
+
[case]="'default'"
|
|
305
|
+
size="m"
|
|
306
|
+
></kwikui-input>
|
|
307
|
+
</div>
|
|
308
|
+
<div class="form-group">
|
|
309
|
+
<kwikui-select-combobox
|
|
310
|
+
[options]="[true, false]"
|
|
311
|
+
[label]="'readOnly'"
|
|
312
|
+
[id]="'basic-input-property-readOnly'"
|
|
313
|
+
size="m"
|
|
314
|
+
[formControlName]="'readOnly'"
|
|
315
|
+
[formControl]="
|
|
316
|
+
basicFormGroup['controls'].properties['controls'].readOnly
|
|
317
|
+
"
|
|
318
|
+
[focus]="false"
|
|
319
|
+
[disabled]="false"
|
|
320
|
+
[invalid]="false"
|
|
321
|
+
[placeholder]="'Please select either true or false'"
|
|
322
|
+
></kwikui-select-combobox>
|
|
323
|
+
</div>
|
|
324
|
+
</fieldset>
|
|
325
|
+
</div>
|
|
326
|
+
|
|
288
327
|
<ng-container [ngSwitch]="elementType">
|
|
289
328
|
<ng-container *ngSwitchCase="'text'">
|
|
290
329
|
<basic-text-config-editor
|
|
@@ -293,6 +332,13 @@ export class BasicElementConfigEditor {
|
|
|
293
332
|
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
294
333
|
></basic-text-config-editor>
|
|
295
334
|
</ng-container>
|
|
335
|
+
<ng-container *ngSwitchCase="'number'">
|
|
336
|
+
<basic-number-config-editor
|
|
337
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
338
|
+
[elementConfig]="elementConfig"
|
|
339
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
340
|
+
></basic-number-config-editor>
|
|
341
|
+
</ng-container>
|
|
296
342
|
<ng-container *ngSwitchCase="'radio'">
|
|
297
343
|
<basic-radio-config-editor
|
|
298
344
|
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
@@ -300,9 +346,37 @@ export class BasicElementConfigEditor {
|
|
|
300
346
|
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
301
347
|
></basic-radio-config-editor>
|
|
302
348
|
</ng-container>
|
|
349
|
+
<ng-container *ngSwitchCase="'checkbox'">
|
|
350
|
+
<basic-checkbox-config-editor
|
|
351
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
352
|
+
[elementConfig]="elementConfig"
|
|
353
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
354
|
+
></basic-checkbox-config-editor>
|
|
355
|
+
</ng-container>
|
|
356
|
+
<ng-container *ngSwitchCase="'date'">
|
|
357
|
+
<basic-checkbox-config-editor
|
|
358
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
359
|
+
[elementConfig]="elementConfig"
|
|
360
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
361
|
+
></basic-checkbox-config-editor>
|
|
362
|
+
</ng-container>
|
|
363
|
+
<ng-container *ngSwitchCase="'otp'">
|
|
364
|
+
<basic-otp-config-editor
|
|
365
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
366
|
+
[elementConfig]="elementConfig"
|
|
367
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
368
|
+
></basic-otp-config-editor>
|
|
369
|
+
</ng-container>
|
|
370
|
+
<ng-container *ngSwitchCase="'phone'">
|
|
371
|
+
<basic-phone-config-editor
|
|
372
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
373
|
+
[elementConfig]="elementConfig"
|
|
374
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
375
|
+
></basic-phone-config-editor>
|
|
376
|
+
</ng-container>
|
|
303
377
|
</ng-container>
|
|
304
378
|
</form>
|
|
305
|
-
`, isInline: true, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: flex-start;\n align-items: stretch;\n gap: 1rem;\n }\n "], components: [{ type: i1.
|
|
379
|
+
`, isInline: true, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: flex-start;\n align-items: stretch;\n gap: 1rem;\n }\n "], components: [{ type: i1.KwikUITableComponent, selector: "kwikui-table", inputs: ["id", "columns", "headers", "data"], outputs: ["onClick"] }, { type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "size", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.BasicTextConfigEditor, selector: "basic-text-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: i3.BasicNumberConfigEditor, selector: "basic-number-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: i4.BasicRadioConfigEditor, selector: "basic-radio-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: i5.BasicCheckboxConfigEditor, selector: "basic-checkbox-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: i6.BasicOtpConfigEditor, selector: "basic-otp-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }, { type: i7.BasicPhoneConfigEditor, selector: "basic-phone-config-editor", inputs: ["saveBasicClickCounter", "elementConfig"], outputs: ["updateElement"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i9.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
|
|
306
380
|
__decorate([
|
|
307
381
|
logMethod
|
|
308
382
|
], BasicElementConfigEditor.prototype, "ngOnInit", null);
|
|
@@ -327,179 +401,212 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
327
401
|
selector: "basic-element-config-editor",
|
|
328
402
|
template: `
|
|
329
403
|
<ng-container *ngIf="elementConfig !== undefined">
|
|
330
|
-
<table
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
</table>
|
|
404
|
+
<kwikui-table
|
|
405
|
+
style="width: 100%; height: 100%; overflow: auto; box-shadow: 0px 0px 10px -6px #000; border: 0px solid gray; border-radius: 1rem;"
|
|
406
|
+
[columns]="['id', 'type', 'category']"
|
|
407
|
+
[headers]="{ id: 'ID', type: 'Type', category: 'Category' }"
|
|
408
|
+
[data]="[
|
|
409
|
+
{
|
|
410
|
+
id: elementConfig.elementId,
|
|
411
|
+
type: elementConfig.elementType,
|
|
412
|
+
category: elementConfig.elementCategory
|
|
413
|
+
}
|
|
414
|
+
]"
|
|
415
|
+
(onClick)="(undefined)"
|
|
416
|
+
></kwikui-table>
|
|
344
417
|
</ng-container>
|
|
345
418
|
<form [formGroup]="basicFormGroup">
|
|
346
419
|
<fieldset>
|
|
347
|
-
<legend>Standard</legend>
|
|
420
|
+
<legend class="form-group-title">Standard</legend>
|
|
348
421
|
<div class="form-group">
|
|
349
|
-
<
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
422
|
+
<kwikui-input
|
|
423
|
+
[label]="'Label'"
|
|
424
|
+
[id]="'basic-field-label'"
|
|
425
|
+
[type]="'text'"
|
|
426
|
+
[formControlName]="'label'"
|
|
427
|
+
[formControl]="basicFormGroup.controls['label']"
|
|
428
|
+
[disabled]="false"
|
|
429
|
+
[placeholder]="'Please enter your Label'"
|
|
430
|
+
[focus]="false"
|
|
431
|
+
[invalid]="false"
|
|
432
|
+
[case]="'default'"
|
|
433
|
+
size="m"
|
|
434
|
+
></kwikui-input>
|
|
357
435
|
</div>
|
|
358
436
|
<div class="form-group">
|
|
359
|
-
<
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
437
|
+
<kwikui-input
|
|
438
|
+
[label]="'Key'"
|
|
439
|
+
[id]="'basic-field-key'"
|
|
440
|
+
[type]="'text'"
|
|
441
|
+
[formControlName]="'key'"
|
|
442
|
+
[formControl]="basicFormGroup.controls['key']"
|
|
443
|
+
[disabled]="false"
|
|
444
|
+
[placeholder]="'Please enter your Key'"
|
|
445
|
+
[focus]="false"
|
|
446
|
+
[invalid]="false"
|
|
447
|
+
[case]="'default'"
|
|
448
|
+
size="m"
|
|
449
|
+
></kwikui-input>
|
|
367
450
|
</div>
|
|
368
451
|
<div class="form-group">
|
|
369
|
-
<
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
*ngFor="let disabled of [true, false]"
|
|
382
|
-
[ngValue]="disabled"
|
|
383
|
-
>
|
|
384
|
-
{{ disabled }}
|
|
385
|
-
</option>
|
|
386
|
-
</select>
|
|
387
|
-
</div>
|
|
388
|
-
</fieldset>
|
|
389
|
-
<fieldset formGroupName="default">
|
|
390
|
-
<legend>Default</legend>
|
|
391
|
-
<div class="form-group">
|
|
392
|
-
<label for="basic-input-property-value">value</label>
|
|
393
|
-
<select
|
|
394
|
-
class="form-control"
|
|
395
|
-
formControlName="value"
|
|
396
|
-
id="basic-input-property-value"
|
|
397
|
-
>
|
|
398
|
-
<option
|
|
399
|
-
[ngValue]="null"
|
|
400
|
-
value
|
|
401
|
-
>Select either true or false</option
|
|
402
|
-
>
|
|
403
|
-
<option
|
|
404
|
-
*ngFor="let value of [true, false]"
|
|
405
|
-
[ngValue]="value"
|
|
406
|
-
>
|
|
407
|
-
{{ value }}
|
|
408
|
-
</option>
|
|
409
|
-
</select>
|
|
410
|
-
</div>
|
|
411
|
-
</fieldset>
|
|
412
|
-
<fieldset formGroupName="validators">
|
|
413
|
-
<legend>Validators</legend>
|
|
414
|
-
<div class="form-group">
|
|
415
|
-
<label for="basic-input-validators-min">min</label>
|
|
416
|
-
<input
|
|
417
|
-
class="form-control"
|
|
418
|
-
formControlName="min"
|
|
419
|
-
id="basic-input-validators-min"
|
|
420
|
-
type="number"
|
|
421
|
-
/>
|
|
422
|
-
</div>
|
|
423
|
-
<div class="form-group">
|
|
424
|
-
<label for="basic-input-validators-max">max</label>
|
|
425
|
-
<input
|
|
426
|
-
class="form-control"
|
|
427
|
-
formControlName="max"
|
|
428
|
-
id="basic-input-validators-max"
|
|
429
|
-
type="number"
|
|
430
|
-
/>
|
|
431
|
-
</div>
|
|
432
|
-
<div class="form-group">
|
|
433
|
-
<label for="basic-input-validators-minLength">minLength</label>
|
|
434
|
-
<input
|
|
435
|
-
class="form-control"
|
|
436
|
-
formControlName="minLength"
|
|
437
|
-
id="basic-input-validators-minLength"
|
|
438
|
-
type="number"
|
|
439
|
-
/>
|
|
440
|
-
</div>
|
|
441
|
-
<div class="form-group">
|
|
442
|
-
<label for="basic-input-validators-maxLength">maxLength</label>
|
|
443
|
-
<input
|
|
444
|
-
class="form-control"
|
|
445
|
-
formControlName="maxLength"
|
|
446
|
-
id="basic-input-validators-maxLength"
|
|
447
|
-
type="number"
|
|
448
|
-
/>
|
|
449
|
-
</div>
|
|
450
|
-
<div class="form-group">
|
|
451
|
-
<label for="basic-input-property-required">required</label>
|
|
452
|
-
<select
|
|
453
|
-
class="form-control"
|
|
454
|
-
formControlName="required"
|
|
455
|
-
id="basic-input-property-required"
|
|
456
|
-
>
|
|
457
|
-
<option
|
|
458
|
-
[ngValue]="null"
|
|
459
|
-
disabled
|
|
460
|
-
>Select either true or false</option
|
|
461
|
-
>
|
|
462
|
-
<option
|
|
463
|
-
*ngFor="let required of [true, false]"
|
|
464
|
-
[ngValue]="required"
|
|
465
|
-
>
|
|
466
|
-
{{ required }}
|
|
467
|
-
</option>
|
|
468
|
-
</select>
|
|
469
|
-
</div>
|
|
470
|
-
</fieldset>
|
|
471
|
-
<fieldset formGroupName="properties">
|
|
472
|
-
<legend>Properties</legend>
|
|
473
|
-
<div class="form-group">
|
|
474
|
-
<label for="basic-input-property-placeholder">Placeholder</label>
|
|
475
|
-
<input
|
|
476
|
-
class="form-control"
|
|
477
|
-
formControlName="placeholder"
|
|
478
|
-
id="basic-input-property-placeholder"
|
|
479
|
-
type="text"
|
|
480
|
-
/>
|
|
481
|
-
</div>
|
|
482
|
-
<div class="form-group">
|
|
483
|
-
<label for="basic-input-property-readonly">readOnly</label>
|
|
484
|
-
<select
|
|
485
|
-
class="form-control"
|
|
486
|
-
formControlName="readOnly"
|
|
487
|
-
id="basic-input-property-readonly"
|
|
488
|
-
>
|
|
489
|
-
<option
|
|
490
|
-
[ngValue]="null"
|
|
491
|
-
disabled
|
|
492
|
-
>Select either true or false</option
|
|
493
|
-
>
|
|
494
|
-
<option
|
|
495
|
-
*ngFor="let readonly of [true, false]"
|
|
496
|
-
[ngValue]="readonly"
|
|
497
|
-
>
|
|
498
|
-
{{ readonly }}
|
|
499
|
-
</option>
|
|
500
|
-
</select>
|
|
452
|
+
<kwikui-select-combobox
|
|
453
|
+
[options]="[true, false]"
|
|
454
|
+
[label]="'Disabled'"
|
|
455
|
+
[id]="'basic-input-property-disabled'"
|
|
456
|
+
size="m"
|
|
457
|
+
[formControlName]="'disabled'"
|
|
458
|
+
[formControl]="basicFormGroup.controls['disabled']"
|
|
459
|
+
[focus]="false"
|
|
460
|
+
[disabled]="false"
|
|
461
|
+
[invalid]="false"
|
|
462
|
+
[placeholder]="'Please select either true or false'"
|
|
463
|
+
></kwikui-select-combobox>
|
|
501
464
|
</div>
|
|
502
465
|
</fieldset>
|
|
466
|
+
|
|
467
|
+
<div formGroupName="default">
|
|
468
|
+
<fieldset>
|
|
469
|
+
<legend class="form-group-title">Default</legend>
|
|
470
|
+
<div class="form-group">
|
|
471
|
+
<kwikui-select-combobox
|
|
472
|
+
[options]="[true, false]"
|
|
473
|
+
[label]="'value'"
|
|
474
|
+
[id]="'basic-input-property-value'"
|
|
475
|
+
size="m"
|
|
476
|
+
[formControlName]="'value'"
|
|
477
|
+
[formControl]="
|
|
478
|
+
basicFormGroup['controls'].default['controls'].value
|
|
479
|
+
"
|
|
480
|
+
[focus]="false"
|
|
481
|
+
[disabled]="false"
|
|
482
|
+
[invalid]="false"
|
|
483
|
+
[placeholder]="'Please select either true or false'"
|
|
484
|
+
></kwikui-select-combobox>
|
|
485
|
+
</div>
|
|
486
|
+
</fieldset>
|
|
487
|
+
</div>
|
|
488
|
+
|
|
489
|
+
<div formGroupName="validators">
|
|
490
|
+
<fieldset>
|
|
491
|
+
<legend class="form-group-title">Validators</legend>
|
|
492
|
+
<div class="form-group">
|
|
493
|
+
<kwikui-input-number
|
|
494
|
+
[label]="'min'"
|
|
495
|
+
[id]="'basic-input-validators-min'"
|
|
496
|
+
[formControlName]="'min'"
|
|
497
|
+
[formControl]="
|
|
498
|
+
basicFormGroup['controls'].validators['controls'].min
|
|
499
|
+
"
|
|
500
|
+
[disabled]="false"
|
|
501
|
+
[placeholder]="'Please enter your minimum value'"
|
|
502
|
+
[focus]="false"
|
|
503
|
+
[invalid]="false"
|
|
504
|
+
size="m"
|
|
505
|
+
></kwikui-input-number>
|
|
506
|
+
</div>
|
|
507
|
+
<div class="form-group">
|
|
508
|
+
<kwikui-input-number
|
|
509
|
+
[label]="'max'"
|
|
510
|
+
[id]="'basic-input-validators-max'"
|
|
511
|
+
[formControlName]="'max'"
|
|
512
|
+
[formControl]="
|
|
513
|
+
basicFormGroup['controls'].validators['controls'].max
|
|
514
|
+
"
|
|
515
|
+
[disabled]="false"
|
|
516
|
+
[placeholder]="'Please enter your maximum value'"
|
|
517
|
+
[focus]="false"
|
|
518
|
+
[invalid]="false"
|
|
519
|
+
size="m"
|
|
520
|
+
></kwikui-input-number>
|
|
521
|
+
</div>
|
|
522
|
+
<div class="form-group">
|
|
523
|
+
<kwikui-input-number
|
|
524
|
+
[label]="'minLength'"
|
|
525
|
+
[id]="'basic-input-validators-minLength'"
|
|
526
|
+
[formControlName]="'minLength'"
|
|
527
|
+
[formControl]="
|
|
528
|
+
basicFormGroup['controls'].validators['controls'].minLength
|
|
529
|
+
"
|
|
530
|
+
[disabled]="false"
|
|
531
|
+
[placeholder]="'Please enter your minimum length value'"
|
|
532
|
+
[focus]="false"
|
|
533
|
+
[invalid]="false"
|
|
534
|
+
size="m"
|
|
535
|
+
></kwikui-input-number>
|
|
536
|
+
</div>
|
|
537
|
+
<div class="form-group">
|
|
538
|
+
<kwikui-input-number
|
|
539
|
+
[label]="'maxLength'"
|
|
540
|
+
[id]="'basic-input-validators-maxLength'"
|
|
541
|
+
[formControlName]="'maxLength'"
|
|
542
|
+
[formControl]="
|
|
543
|
+
basicFormGroup['controls'].validators['controls'].maxLength
|
|
544
|
+
"
|
|
545
|
+
[disabled]="false"
|
|
546
|
+
[placeholder]="'Please enter your maximum length value'"
|
|
547
|
+
[focus]="false"
|
|
548
|
+
[invalid]="false"
|
|
549
|
+
size="m"
|
|
550
|
+
></kwikui-input-number>
|
|
551
|
+
</div>
|
|
552
|
+
<div class="form-group">
|
|
553
|
+
<kwikui-select-combobox
|
|
554
|
+
[options]="[true, false]"
|
|
555
|
+
[label]="'required'"
|
|
556
|
+
[id]="'basic-input-property-required'"
|
|
557
|
+
size="m"
|
|
558
|
+
[formControlName]="'required'"
|
|
559
|
+
[formControl]="
|
|
560
|
+
basicFormGroup['controls'].validators['controls'].required
|
|
561
|
+
"
|
|
562
|
+
[focus]="false"
|
|
563
|
+
[disabled]="false"
|
|
564
|
+
[invalid]="false"
|
|
565
|
+
[placeholder]="'Please select either true or false'"
|
|
566
|
+
></kwikui-select-combobox>
|
|
567
|
+
</div>
|
|
568
|
+
</fieldset>
|
|
569
|
+
</div>
|
|
570
|
+
|
|
571
|
+
<div formGroupName="properties">
|
|
572
|
+
<fieldset>
|
|
573
|
+
<legend class="form-group-title">Properties</legend>
|
|
574
|
+
<div class="form-group">
|
|
575
|
+
<kwikui-input
|
|
576
|
+
[label]="'Placeholder'"
|
|
577
|
+
[id]="'basic-field-placeholder'"
|
|
578
|
+
[type]="'text'"
|
|
579
|
+
[formControlName]="'placeholder'"
|
|
580
|
+
[formControl]="
|
|
581
|
+
basicFormGroup.controls.properties['controls'].placeholder
|
|
582
|
+
"
|
|
583
|
+
[disabled]="false"
|
|
584
|
+
[placeholder]="'Please enter your placeholder'"
|
|
585
|
+
[focus]="false"
|
|
586
|
+
[invalid]="false"
|
|
587
|
+
[case]="'default'"
|
|
588
|
+
size="m"
|
|
589
|
+
></kwikui-input>
|
|
590
|
+
</div>
|
|
591
|
+
<div class="form-group">
|
|
592
|
+
<kwikui-select-combobox
|
|
593
|
+
[options]="[true, false]"
|
|
594
|
+
[label]="'readOnly'"
|
|
595
|
+
[id]="'basic-input-property-readOnly'"
|
|
596
|
+
size="m"
|
|
597
|
+
[formControlName]="'readOnly'"
|
|
598
|
+
[formControl]="
|
|
599
|
+
basicFormGroup['controls'].properties['controls'].readOnly
|
|
600
|
+
"
|
|
601
|
+
[focus]="false"
|
|
602
|
+
[disabled]="false"
|
|
603
|
+
[invalid]="false"
|
|
604
|
+
[placeholder]="'Please select either true or false'"
|
|
605
|
+
></kwikui-select-combobox>
|
|
606
|
+
</div>
|
|
607
|
+
</fieldset>
|
|
608
|
+
</div>
|
|
609
|
+
|
|
503
610
|
<ng-container [ngSwitch]="elementType">
|
|
504
611
|
<ng-container *ngSwitchCase="'text'">
|
|
505
612
|
<basic-text-config-editor
|
|
@@ -508,6 +615,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
508
615
|
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
509
616
|
></basic-text-config-editor>
|
|
510
617
|
</ng-container>
|
|
618
|
+
<ng-container *ngSwitchCase="'number'">
|
|
619
|
+
<basic-number-config-editor
|
|
620
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
621
|
+
[elementConfig]="elementConfig"
|
|
622
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
623
|
+
></basic-number-config-editor>
|
|
624
|
+
</ng-container>
|
|
511
625
|
<ng-container *ngSwitchCase="'radio'">
|
|
512
626
|
<basic-radio-config-editor
|
|
513
627
|
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
@@ -515,6 +629,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
515
629
|
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
516
630
|
></basic-radio-config-editor>
|
|
517
631
|
</ng-container>
|
|
632
|
+
<ng-container *ngSwitchCase="'checkbox'">
|
|
633
|
+
<basic-checkbox-config-editor
|
|
634
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
635
|
+
[elementConfig]="elementConfig"
|
|
636
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
637
|
+
></basic-checkbox-config-editor>
|
|
638
|
+
</ng-container>
|
|
639
|
+
<ng-container *ngSwitchCase="'date'">
|
|
640
|
+
<basic-checkbox-config-editor
|
|
641
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
642
|
+
[elementConfig]="elementConfig"
|
|
643
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
644
|
+
></basic-checkbox-config-editor>
|
|
645
|
+
</ng-container>
|
|
646
|
+
<ng-container *ngSwitchCase="'otp'">
|
|
647
|
+
<basic-otp-config-editor
|
|
648
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
649
|
+
[elementConfig]="elementConfig"
|
|
650
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
651
|
+
></basic-otp-config-editor>
|
|
652
|
+
</ng-container>
|
|
653
|
+
<ng-container *ngSwitchCase="'phone'">
|
|
654
|
+
<basic-phone-config-editor
|
|
655
|
+
[saveBasicClickCounter]="saveBasicClickCounter"
|
|
656
|
+
[elementConfig]="elementConfig"
|
|
657
|
+
(updateElement)="handleOnSaveUpdateElement($event)"
|
|
658
|
+
></basic-phone-config-editor>
|
|
659
|
+
</ng-container>
|
|
518
660
|
</ng-container>
|
|
519
661
|
</form>
|
|
520
662
|
`,
|
|
@@ -538,4 +680,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
538
680
|
}], updateElement: [{
|
|
539
681
|
type: Output
|
|
540
682
|
}], ngOnInit: [], ngOnChanges: [], assignVariables: [], createBasicFormGroup: [], handleOnSaveUpdateElement: [], handleOnSave: [] } });
|
|
541
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtZWxlbWVudC1jb25maWcuZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL2J1aWxkZXIvZWxlbWVudC1jb25maWctZWRpdG9yL2VkaXRvcnMvYmFzaWMtZWxlbWVudC1jb25maWcuZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWtOekQsTUFBTSxPQUFPLHdCQUF3QjtJQWlDbkM7UUEvQkEscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBRzdCLGtCQUFhLEdBQVE7WUFDbkIsS0FBSyxFQUFFLEVBQUU7WUFDVCxHQUFHLEVBQUUsRUFBRTtZQUNQLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsRUFBRTtnQkFDZixRQUFRLEVBQUUsS0FBSzthQUNoQjtTQUNGLENBQUM7UUFHRixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsMEJBQXFCLEdBQVcsQ0FBQyxDQUFDO1FBRWxDLG1CQUFjLEdBQWMsU0FBUyxDQUFDO0lBRXZCLENBQUM7SUFHaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBR0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFFRixJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtRQUVELElBQUksWUFBWSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDcEMsSUFDRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYTtnQkFDdEMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFDckM7Z0JBQ0EsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7Z0JBRTlELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtTQUNGO0lBQ0gsQ0FBQztJQUdELGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ3BELENBQUM7SUFHRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDaEQsR0FBRyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDO1lBQzVDLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztZQUN0RCxPQUFPLEVBQUUsSUFBSSxTQUFTLENBQUM7Z0JBQ3JCLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7b0JBQ3ZELFFBQVEsRUFBRSxRQUFRO2lCQUNuQixDQUFDO2FBQ0gsQ0FBQztZQUNGLFVBQVUsRUFBRSxJQUFJLFNBQVMsQ0FBQztnQkFDeEIsR0FBRyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDdEQsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7Z0JBQ0YsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtvQkFDbEUsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7Z0JBQ0YsR0FBRyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDdEQsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7Z0JBQ0YsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtvQkFDbEUsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7Z0JBQ0YsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDaEUsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7YUFDSCxDQUFDO1lBQ0YsVUFBVSxFQUFFLElBQUksU0FBUyxDQUFDO2dCQUN4QixXQUFXLEVBQUUsSUFBSSxXQUFXLENBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFDekM7b0JBQ0UsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQ0Y7Z0JBQ0QsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDaEUsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFHRCx5QkFBeUIsQ0FBQyxLQUFVO1FBQ2xDLG9CQUFvQjtRQUNwQixJQUFJLHdCQUF3QixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakUsd0JBQXdCLENBQUMsR0FBRyxHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQ2pFLEtBQUssRUFDTCxHQUFHLENBQ0osQ0FBQztRQUVGLDJCQUEyQjtRQUMzQixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUVwRCxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FDL0IsSUFBSSxDQUFDLGFBQWEsRUFDbEIsd0JBQXdCLEVBQ3hCLGtCQUFrQixDQUNuQixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUdELFlBQVk7UUFDVixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDOzt5SUF6SVUsd0JBQXdCOzZIQUF4Qix3QkFBd0IsdU5BOU16Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ01UO0FBa0REO0lBREMsU0FBUzt3REFJVDtBQUdEO0lBREMsU0FBUzsyREFzQlQ7QUFHRDtJQURDLFNBQVM7K0RBR1Q7QUFHRDtJQURDLFNBQVM7b0VBeUNUO0FBR0Q7SUFEQyxTQUFTO3lFQW1CVDtBQUdEO0lBREMsU0FBUzs0REFHVDs0RkF6SVUsd0JBQXdCO2tCQWhOcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdNVDtvQkFDRCxNQUFNLEVBQUU7d0JBQ047Ozs7Ozs7OztLQVNDO3FCQUNGO2lCQUNGOzBFQUdDLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFzQk4sYUFBYTtzQkFEWixNQUFNO2dCQVdQLFFBQVEsTUFNUixXQUFXLE1Bd0JYLGVBQWUsTUFLZixvQkFBb0IsTUEyQ3BCLHlCQUF5QixNQXFCekIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IGxvZ01ldGhvZCwgbWVyZ2VPYmplY3RzIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJiYXNpYy1lbGVtZW50LWNvbmZpZy1lZGl0b3JcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudENvbmZpZyAhPT0gdW5kZWZpbmVkXCI+XG4gICAgICA8dGFibGU+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+SWQ8L3RkPlxuICAgICAgICAgIDx0ZD57eyBlbGVtZW50Q29uZmlnLmVsZW1lbnRJZCB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+VHlwZTwvdGQ+XG4gICAgICAgICAgPHRkPnt7IGVsZW1lbnRDb25maWcuZWxlbWVudFR5cGUgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPkNhdGVnb3J5PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgZWxlbWVudENvbmZpZy5lbGVtZW50Q2F0ZWdvcnkgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90YWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImJhc2ljRm9ybUdyb3VwXCI+XG4gICAgICA8ZmllbGRzZXQ+XG4gICAgICAgIDxsZWdlbmQ+U3RhbmRhcmQ8L2xlZ2VuZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYmFzaWMtZmllbGQtbGFiZWxcIj5MYWJlbDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBpZD1cImJhc2ljLWZpZWxkLWxhYmVsXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxhYmVsXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJhc2ljLWZpZWxkLWtleVwiPktleTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBpZD1cImJhc2ljLWZpZWxkLWtleVwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJrZXlcIlxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYmFzaWMtaW5wdXQtcHJvcGVydHktZGlzYWJsZWRcIj5kaXNhYmxlZDwvbGFiZWw+XG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgaWQ9XCJiYXNpYy1pbnB1dC1wcm9wZXJ0eS1kaXNhYmxlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJudWxsXCJcbiAgICAgICAgICAgICAgZGlzYWJsZWRcbiAgICAgICAgICAgICAgPlNlbGVjdCBlaXRoZXIgdHJ1ZSBvciBmYWxzZTwvb3B0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkaXNhYmxlZCBvZiBbdHJ1ZSwgZmFsc2VdXCJcbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBkaXNhYmxlZCB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9maWVsZHNldD5cbiAgICAgIDxmaWVsZHNldCBmb3JtR3JvdXBOYW1lPVwiZGVmYXVsdFwiPlxuICAgICAgICA8bGVnZW5kPkRlZmF1bHQ8L2xlZ2VuZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYmFzaWMtaW5wdXQtcHJvcGVydHktdmFsdWVcIj52YWx1ZTwvbGFiZWw+XG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgaWQ9XCJiYXNpYy1pbnB1dC1wcm9wZXJ0eS12YWx1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJudWxsXCJcbiAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgPlNlbGVjdCBlaXRoZXIgdHJ1ZSBvciBmYWxzZTwvb3B0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBbdHJ1ZSwgZmFsc2VdXCJcbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9maWVsZHNldD5cbiAgICAgIDxmaWVsZHNldCBmb3JtR3JvdXBOYW1lPVwidmFsaWRhdG9yc1wiPlxuICAgICAgICA8bGVnZW5kPlZhbGlkYXRvcnM8L2xlZ2VuZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYmFzaWMtaW5wdXQtdmFsaWRhdG9ycy1taW5cIj5taW48L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWluXCJcbiAgICAgICAgICAgIGlkPVwiYmFzaWMtaW5wdXQtdmFsaWRhdG9ycy1taW5cIlxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJhc2ljLWlucHV0LXZhbGlkYXRvcnMtbWF4XCI+bWF4PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1heFwiXG4gICAgICAgICAgICBpZD1cImJhc2ljLWlucHV0LXZhbGlkYXRvcnMtbWF4XCJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJiYXNpYy1pbnB1dC12YWxpZGF0b3JzLW1pbkxlbmd0aFwiPm1pbkxlbmd0aDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtaW5MZW5ndGhcIlxuICAgICAgICAgICAgaWQ9XCJiYXNpYy1pbnB1dC12YWxpZGF0b3JzLW1pbkxlbmd0aFwiXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYmFzaWMtaW5wdXQtdmFsaWRhdG9ycy1tYXhMZW5ndGhcIj5tYXhMZW5ndGg8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWF4TGVuZ3RoXCJcbiAgICAgICAgICAgIGlkPVwiYmFzaWMtaW5wdXQtdmFsaWRhdG9ycy1tYXhMZW5ndGhcIlxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJhc2ljLWlucHV0LXByb3BlcnR5LXJlcXVpcmVkXCI+cmVxdWlyZWQ8L2xhYmVsPlxuICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgIGlkPVwiYmFzaWMtaW5wdXQtcHJvcGVydHktcmVxdWlyZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwibnVsbFwiXG4gICAgICAgICAgICAgIGRpc2FibGVkXG4gICAgICAgICAgICAgID5TZWxlY3QgZWl0aGVyIHRydWUgb3IgZmFsc2U8L29wdGlvblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVxdWlyZWQgb2YgW3RydWUsIGZhbHNlXVwiXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcmVxdWlyZWQgfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8ZmllbGRzZXQgZm9ybUdyb3VwTmFtZT1cInByb3BlcnRpZXNcIj5cbiAgICAgICAgPGxlZ2VuZD5Qcm9wZXJ0aWVzPC9sZWdlbmQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJhc2ljLWlucHV0LXByb3BlcnR5LXBsYWNlaG9sZGVyXCI+UGxhY2Vob2xkZXI8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgaWQ9XCJiYXNpYy1pbnB1dC1wcm9wZXJ0eS1wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJhc2ljLWlucHV0LXByb3BlcnR5LXJlYWRvbmx5XCI+cmVhZE9ubHk8L2xhYmVsPlxuICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgIGlkPVwiYmFzaWMtaW5wdXQtcHJvcGVydHktcmVhZG9ubHlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwibnVsbFwiXG4gICAgICAgICAgICAgIGRpc2FibGVkXG4gICAgICAgICAgICAgID5TZWxlY3QgZWl0aGVyIHRydWUgb3IgZmFsc2U8L29wdGlvblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVhZG9ubHkgb2YgW3RydWUsIGZhbHNlXVwiXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcmVhZG9ubHkgfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJlbGVtZW50VHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cbiAgICAgICAgICA8YmFzaWMtdGV4dC1jb25maWctZWRpdG9yXG4gICAgICAgICAgICBbc2F2ZUJhc2ljQ2xpY2tDb3VudGVyXT1cInNhdmVCYXNpY0NsaWNrQ291bnRlclwiXG4gICAgICAgICAgICBbZWxlbWVudENvbmZpZ109XCJlbGVtZW50Q29uZmlnXCJcbiAgICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYmFzaWMtdGV4dC1jb25maWctZWRpdG9yPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiPlxuICAgICAgICAgIDxiYXNpYy1yYWRpby1jb25maWctZWRpdG9yXG4gICAgICAgICAgICBbc2F2ZUJhc2ljQ2xpY2tDb3VudGVyXT1cInNhdmVCYXNpY0NsaWNrQ291bnRlclwiXG4gICAgICAgICAgICBbZWxlbWVudENvbmZpZ109XCJlbGVtZW50Q29uZmlnXCJcbiAgICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYmFzaWMtcmFkaW8tY29uZmlnLWVkaXRvcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Zvcm0+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgICB9XG4gICAgYFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJhc2ljRWxlbWVudENvbmZpZ0VkaXRvciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHNhdmVDbGlja0NvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgZWxlbWVudENvbmZpZzogYW55ID0ge1xuICAgIGxhYmVsOiBcIlwiLFxuICAgIGtleTogXCJcIixcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZGVmYXVsdDoge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9LFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIG1pbjogbnVsbCxcbiAgICAgIG1heDogbnVsbCxcbiAgICAgIG1pbkxlbmd0aDogbnVsbCxcbiAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICAgIHJlYWRPbmx5OiBmYWxzZVxuICAgIH1cbiAgfTtcblxuICBAT3V0cHV0KClcbiAgdXBkYXRlRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGVsZW1lbnRUeXBlOiBzdHJpbmcgPSBcIlwiO1xuICBzYXZlQmFzaWNDbGlja0NvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgYmFzaWNGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgQGxvZ01ldGhvZFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFzc2lnblZhcmlhYmxlcygpO1xuICAgIHRoaXMuY3JlYXRlQmFzaWNGb3JtR3JvdXAoKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAhY2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlO1xuICAgIH07XG5cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwiZWxlbWVudENvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5lbGVtZW50Q29uZmlnID0gY2hhbmdlcy5lbGVtZW50Q29uZmlnLmN1cnJlbnRWYWx1ZTtcbiAgICAgIHRoaXMuYXNzaWduVmFyaWFibGVzKCk7XG4gICAgICB0aGlzLmNyZWF0ZUJhc2ljRm9ybUdyb3VwKCk7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcInNhdmVDbGlja0NvdW50ZXJcIikpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlcy5zYXZlQ2xpY2tDb3VudGVyLnByZXZpb3VzVmFsdWUgIT09XG4gICAgICAgIGNoYW5nZXMuc2F2ZUNsaWNrQ291bnRlci5jdXJyZW50VmFsdWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLnNhdmVDbGlja0NvdW50ZXIgPSBjaGFuZ2VzLnNhdmVDbGlja0NvdW50ZXIuY3VycmVudFZhbHVlO1xuXG4gICAgICAgIHRoaXMuaGFuZGxlT25TYXZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBhc3NpZ25WYXJpYWJsZXMoKSB7XG4gICAgdGhpcy5lbGVtZW50VHlwZSA9IHRoaXMuZWxlbWVudENvbmZpZy5lbGVtZW50VHlwZTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgY3JlYXRlQmFzaWNGb3JtR3JvdXAoKSB7XG4gICAgdGhpcy5iYXNpY0Zvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgbGFiZWw6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcubGFiZWwpLFxuICAgICAga2V5OiBuZXcgRm9ybUNvbnRyb2wodGhpcy5lbGVtZW50Q29uZmlnLmtleSksXG4gICAgICBkaXNhYmxlZDogbmV3IEZvcm1Db250cm9sKHRoaXMuZWxlbWVudENvbmZpZy5kaXNhYmxlZCksXG4gICAgICBkZWZhdWx0OiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgdmFsdWU6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcuZGVmYXVsdC52YWx1ZSwge1xuICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgIH0pXG4gICAgICB9KSxcbiAgICAgIHZhbGlkYXRvcnM6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBtaW46IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcudmFsaWRhdG9ycy5taW4sIHtcbiAgICAgICAgICB1cGRhdGVPbjogXCJjaGFuZ2VcIlxuICAgICAgICB9KSxcbiAgICAgICAgbWluTGVuZ3RoOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5lbGVtZW50Q29uZmlnLnZhbGlkYXRvcnMubWluTGVuZ3RoLCB7XG4gICAgICAgICAgdXBkYXRlT246IFwiY2hhbmdlXCJcbiAgICAgICAgfSksXG4gICAgICAgIG1heDogbmV3IEZvcm1Db250cm9sKHRoaXMuZWxlbWVudENvbmZpZy52YWxpZGF0b3JzLm1heCwge1xuICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgIH0pLFxuICAgICAgICBtYXhMZW5ndGg6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcudmFsaWRhdG9ycy5tYXhMZW5ndGgsIHtcbiAgICAgICAgICB1cGRhdGVPbjogXCJjaGFuZ2VcIlxuICAgICAgICB9KSxcbiAgICAgICAgcmVxdWlyZWQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcudmFsaWRhdG9ycy5yZXF1aXJlZCwge1xuICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgIH0pXG4gICAgICB9KSxcbiAgICAgIHByb3BlcnRpZXM6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBwbGFjZWhvbGRlcjogbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgIHRoaXMuZWxlbWVudENvbmZpZy5wcm9wZXJ0aWVzLnBsYWNlaG9sZGVyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICByZWFkT25seTogbmV3IEZvcm1Db250cm9sKHRoaXMuZWxlbWVudENvbmZpZy5wcm9wZXJ0aWVzLnJlYWRPbmx5LCB7XG4gICAgICAgICAgdXBkYXRlT246IFwiY2hhbmdlXCJcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSk7XG4gICAgdGhpcy5iYXNpY0Zvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoZXZlbnQ6IGFueSkge1xuICAgIC8vIEdldCBDb21tb24gQ29uZmlnXG4gICAgbGV0IGJhc2ljRWxlbWVudENvbW1vbkNvbmZpZyA9IHRoaXMuYmFzaWNGb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgICBiYXNpY0VsZW1lbnRDb21tb25Db25maWcua2V5ID0gYmFzaWNFbGVtZW50Q29tbW9uQ29uZmlnLmtleS5yZXBsYWNlKFxuICAgICAgL1xccy9nLFxuICAgICAgXCJfXCJcbiAgICApO1xuXG4gICAgLy8gR2V0IEJhc2ljIEVsZW1lbnQgQ29uZmlnXG4gICAgY29uc3QgYmFzaWNFbGVtZW50Q29uZmlnID0gZXZlbnQuYmFzaWNFbGVtZW50Q29uZmlnO1xuXG4gICAgdGhpcy5lbGVtZW50Q29uZmlnID0gbWVyZ2VPYmplY3RzKFxuICAgICAgdGhpcy5lbGVtZW50Q29uZmlnLFxuICAgICAgYmFzaWNFbGVtZW50Q29tbW9uQ29uZmlnLFxuICAgICAgYmFzaWNFbGVtZW50Q29uZmlnXG4gICAgKTtcblxuICAgIHRoaXMudXBkYXRlRWxlbWVudC5lbWl0KHsgZWxlbWVudENvbmZpZzogdGhpcy5lbGVtZW50Q29uZmlnIH0pO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPblNhdmUoKSB7XG4gICAgdGhpcy5zYXZlQmFzaWNDbGlja0NvdW50ZXIrKztcbiAgfVxufVxuIl19
|
|
683
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtZWxlbWVudC1jb25maWcuZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL2J1aWxkZXIvZWxlbWVudC1jb25maWctZWRpdG9yL2VkaXRvcnMvYmFzaWMtZWxlbWVudC1jb25maWcuZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBc1J6RCxNQUFNLE9BQU8sd0JBQXdCO0lBaUNuQztRQS9CQSxxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFHN0Isa0JBQWEsR0FBUTtZQUNuQixLQUFLLEVBQUUsRUFBRTtZQUNULEdBQUcsRUFBRSxFQUFFO1lBQ1AsUUFBUSxFQUFFLEtBQUs7WUFDZixPQUFPLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNELFVBQVUsRUFBRTtnQkFDVixHQUFHLEVBQUUsSUFBSTtnQkFDVCxHQUFHLEVBQUUsSUFBSTtnQkFDVCxTQUFTLEVBQUUsSUFBSTtnQkFDZixTQUFTLEVBQUUsSUFBSTtnQkFDZixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxFQUFFO2dCQUNmLFFBQVEsRUFBRSxLQUFLO2FBQ2hCO1NBQ0YsQ0FBQztRQUdGLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4QyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QiwwQkFBcUIsR0FBVyxDQUFDLENBQUM7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb1FUO0FBa0REO0lBREMsU0FBUzt3REFJVDtBQUdEO0lBREMsU0FBUzsyREFzQlQ7QUFHRDtJQURDLFNBQVM7K0RBR1Q7QUFHRDtJQURDLFNBQVM7b0VBeUNUO0FBR0Q7SUFEQyxTQUFTO3lFQW1CVDtBQUdEO0lBREMsU0FBUzs0REFHVDs0RkF6SVUsd0JBQXdCO2tCQXBScEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb1FUO29CQUNELE1BQU0sRUFBRTt3QkFDTjs7Ozs7Ozs7O0tBU0M7cUJBQ0Y7aUJBQ0Y7MEVBR0MsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQXNCTixhQUFhO3NCQURaLE1BQU07Z0JBV1AsUUFBUSxNQU1SLFdBQVcsTUF3QlgsZUFBZSxNQUtmLG9CQUFvQixNQTJDcEIseUJBQXlCLE1BcUJ6QixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgbG9nTWV0aG9kLCBtZXJnZU9iamVjdHMgfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImJhc2ljLWVsZW1lbnQtY29uZmlnLWVkaXRvclwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50Q29uZmlnICE9PSB1bmRlZmluZWRcIj5cbiAgICAgIDxrd2lrdWktdGFibGVcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvdmVyZmxvdzogYXV0bzsgYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IC02cHggIzAwMDsgYm9yZGVyOiAwcHggc29saWQgZ3JheTsgYm9yZGVyLXJhZGl1czogMXJlbTtcIlxuICAgICAgICBbY29sdW1uc109XCJbJ2lkJywgJ3R5cGUnLCAnY2F0ZWdvcnknXVwiXG4gICAgICAgIFtoZWFkZXJzXT1cInsgaWQ6ICdJRCcsIHR5cGU6ICdUeXBlJywgY2F0ZWdvcnk6ICdDYXRlZ29yeScgfVwiXG4gICAgICAgIFtkYXRhXT1cIltcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogZWxlbWVudENvbmZpZy5lbGVtZW50SWQsXG4gICAgICAgICAgICB0eXBlOiBlbGVtZW50Q29uZmlnLmVsZW1lbnRUeXBlLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IGVsZW1lbnRDb25maWcuZWxlbWVudENhdGVnb3J5XG4gICAgICAgICAgfVxuICAgICAgICBdXCJcbiAgICAgICAgKG9uQ2xpY2spPVwiKHVuZGVmaW5lZClcIlxuICAgICAgPjwva3dpa3VpLXRhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiYmFzaWNGb3JtR3JvdXBcIj5cbiAgICAgIDxmaWVsZHNldD5cbiAgICAgICAgPGxlZ2VuZCBjbGFzcz1cImZvcm0tZ3JvdXAtdGl0bGVcIj5TdGFuZGFyZDwvbGVnZW5kPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxrd2lrdWktaW5wdXRcbiAgICAgICAgICAgIFtsYWJlbF09XCInTGFiZWwnXCJcbiAgICAgICAgICAgIFtpZF09XCInYmFzaWMtZmllbGQtbGFiZWwnXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidsYWJlbCdcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImJhc2ljRm9ybUdyb3VwLmNvbnRyb2xzWydsYWJlbCddXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBlbnRlciB5b3VyIExhYmVsJ1wiXG4gICAgICAgICAgICBbZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2ludmFsaWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2Nhc2VdPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICA+PC9rd2lrdWktaW5wdXQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxrd2lrdWktaW5wdXRcbiAgICAgICAgICAgIFtsYWJlbF09XCInS2V5J1wiXG4gICAgICAgICAgICBbaWRdPVwiJ2Jhc2ljLWZpZWxkLWtleSdcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2tleSdcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImJhc2ljRm9ybUdyb3VwLmNvbnRyb2xzWydrZXknXVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQbGVhc2UgZW50ZXIgeW91ciBLZXknXCJcbiAgICAgICAgICAgIFtmb2N1c109XCJmYWxzZVwiXG4gICAgICAgICAgICBbaW52YWxpZF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbY2FzZV09XCInZGVmYXVsdCdcIlxuICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgID48L2t3aWt1aS1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGt3aWt1aS1zZWxlY3QtY29tYm9ib3hcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIlt0cnVlLCBmYWxzZV1cIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidEaXNhYmxlZCdcIlxuICAgICAgICAgICAgW2lkXT1cIidiYXNpYy1pbnB1dC1wcm9wZXJ0eS1kaXNhYmxlZCdcIlxuICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZGlzYWJsZWQnXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJiYXNpY0Zvcm1Hcm91cC5jb250cm9sc1snZGlzYWJsZWQnXVwiXG4gICAgICAgICAgICBbZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUGxlYXNlIHNlbGVjdCBlaXRoZXIgdHJ1ZSBvciBmYWxzZSdcIlxuICAgICAgICAgID48L2t3aWt1aS1zZWxlY3QtY29tYm9ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9maWVsZHNldD5cblxuICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwiZGVmYXVsdFwiPlxuICAgICAgICA8ZmllbGRzZXQ+XG4gICAgICAgICAgPGxlZ2VuZCBjbGFzcz1cImZvcm0tZ3JvdXAtdGl0bGVcIj5EZWZhdWx0PC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxrd2lrdWktc2VsZWN0LWNvbWJvYm94XG4gICAgICAgICAgICAgIFtvcHRpb25zXT1cIlt0cnVlLCBmYWxzZV1cIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3ZhbHVlJ1wiXG4gICAgICAgICAgICAgIFtpZF09XCInYmFzaWMtaW5wdXQtcHJvcGVydHktdmFsdWUnXCJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIid2YWx1ZSdcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiXG4gICAgICAgICAgICAgICAgYmFzaWNGb3JtR3JvdXBbJ2NvbnRyb2xzJ10uZGVmYXVsdFsnY29udHJvbHMnXS52YWx1ZVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbaW52YWxpZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUGxlYXNlIHNlbGVjdCBlaXRoZXIgdHJ1ZSBvciBmYWxzZSdcIlxuICAgICAgICAgICAgPjwva3dpa3VpLXNlbGVjdC1jb21ib2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJ2YWxpZGF0b3JzXCI+XG4gICAgICAgIDxmaWVsZHNldD5cbiAgICAgICAgICA8bGVnZW5kIGNsYXNzPVwiZm9ybS1ncm91cC10aXRsZVwiPlZhbGlkYXRvcnM8L2xlZ2VuZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGt3aWt1aS1pbnB1dC1udW1iZXJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidtaW4nXCJcbiAgICAgICAgICAgICAgW2lkXT1cIidiYXNpYy1pbnB1dC12YWxpZGF0b3JzLW1pbidcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidtaW4nXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIlxuICAgICAgICAgICAgICAgIGJhc2ljRm9ybUdyb3VwWydjb250cm9scyddLnZhbGlkYXRvcnNbJ2NvbnRyb2xzJ10ubWluXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUGxlYXNlIGVudGVyIHlvdXIgbWluaW11bSB2YWx1ZSdcIlxuICAgICAgICAgICAgICBbZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbaW52YWxpZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgID48L2t3aWt1aS1pbnB1dC1udW1iZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxrd2lrdWktaW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInbWF4J1wiXG4gICAgICAgICAgICAgIFtpZF09XCInYmFzaWMtaW5wdXQtdmFsaWRhdG9ycy1tYXgnXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInbWF4J1wiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJcbiAgICAgICAgICAgICAgICBiYXNpY0Zvcm1Hcm91cFsnY29udHJvbHMnXS52YWxpZGF0b3JzWydjb250cm9scyddLm1heFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBlbnRlciB5b3VyIG1heGltdW0gdmFsdWUnXCJcbiAgICAgICAgICAgICAgW2ZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICA+PC9rd2lrdWktaW5wdXQtbnVtYmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8a3dpa3VpLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ21pbkxlbmd0aCdcIlxuICAgICAgICAgICAgICBbaWRdPVwiJ2Jhc2ljLWlucHV0LXZhbGlkYXRvcnMtbWluTGVuZ3RoJ1wiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ21pbkxlbmd0aCdcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiXG4gICAgICAgICAgICAgICAgYmFzaWNGb3JtR3JvdXBbJ2NvbnRyb2xzJ10udmFsaWRhdG9yc1snY29udHJvbHMnXS5taW5MZW5ndGhcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQbGVhc2UgZW50ZXIgeW91ciBtaW5pbXVtIGxlbmd0aCB2YWx1ZSdcIlxuICAgICAgICAgICAgICBbZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbaW52YWxpZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgID48L2t3aWt1aS1pbnB1dC1udW1iZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxrd2lrdWktaW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInbWF4TGVuZ3RoJ1wiXG4gICAgICAgICAgICAgIFtpZF09XCInYmFzaWMtaW5wdXQtdmFsaWRhdG9ycy1tYXhMZW5ndGgnXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInbWF4TGVuZ3RoJ1wiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJcbiAgICAgICAgICAgICAgICBiYXNpY0Zvcm1Hcm91cFsnY29udHJvbHMnXS52YWxpZGF0b3JzWydjb250cm9scyddLm1heExlbmd0aFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBlbnRlciB5b3VyIG1heGltdW0gbGVuZ3RoIHZhbHVlJ1wiXG4gICAgICAgICAgICAgIFtmb2N1c109XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgPjwva3dpa3VpLWlucHV0LW51bWJlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGt3aWt1aS1zZWxlY3QtY29tYm9ib3hcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwiW3RydWUsIGZhbHNlXVwiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCIncmVxdWlyZWQnXCJcbiAgICAgICAgICAgICAgW2lkXT1cIidiYXNpYy1pbnB1dC1wcm9wZXJ0eS1yZXF1aXJlZCdcIlxuICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3JlcXVpcmVkJ1wiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJcbiAgICAgICAgICAgICAgICBiYXNpY0Zvcm1Hcm91cFsnY29udHJvbHMnXS52YWxpZGF0b3JzWydjb250cm9scyddLnJlcXVpcmVkXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtmb2N1c109XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQbGVhc2Ugc2VsZWN0IGVpdGhlciB0cnVlIG9yIGZhbHNlJ1wiXG4gICAgICAgICAgICA+PC9rd2lrdWktc2VsZWN0LWNvbWJvYm94PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cInByb3BlcnRpZXNcIj5cbiAgICAgICAgPGZpZWxkc2V0PlxuICAgICAgICAgIDxsZWdlbmQgY2xhc3M9XCJmb3JtLWdyb3VwLXRpdGxlXCI+UHJvcGVydGllczwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8a3dpa3VpLWlucHV0XG4gICAgICAgICAgICAgIFtsYWJlbF09XCInUGxhY2Vob2xkZXInXCJcbiAgICAgICAgICAgICAgW2lkXT1cIidiYXNpYy1maWVsZC1wbGFjZWhvbGRlcidcIlxuICAgICAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidwbGFjZWhvbGRlcidcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiXG4gICAgICAgICAgICAgICAgYmFzaWNGb3JtR3JvdXAuY29udHJvbHMucHJvcGVydGllc1snY29udHJvbHMnXS5wbGFjZWhvbGRlclxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBlbnRlciB5b3VyIHBsYWNlaG9sZGVyJ1wiXG4gICAgICAgICAgICAgIFtmb2N1c109XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2Nhc2VdPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgPjwva3dpa3VpLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8a3dpa3VpLXNlbGVjdC1jb21ib2JveFxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJbdHJ1ZSwgZmFsc2VdXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidyZWFkT25seSdcIlxuICAgICAgICAgICAgICBbaWRdPVwiJ2Jhc2ljLWlucHV0LXByb3BlcnR5LXJlYWRPbmx5J1wiXG4gICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCIncmVhZE9ubHknXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIlxuICAgICAgICAgICAgICAgIGJhc2ljRm9ybUdyb3VwWydjb250cm9scyddLnByb3BlcnRpZXNbJ2NvbnRyb2xzJ10ucmVhZE9ubHlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2ZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBzZWxlY3QgZWl0aGVyIHRydWUgb3IgZmFsc2UnXCJcbiAgICAgICAgICAgID48L2t3aWt1aS1zZWxlY3QtY29tYm9ib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZWxlbWVudFR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XG4gICAgICAgICAgPGJhc2ljLXRleHQtY29uZmlnLWVkaXRvclxuICAgICAgICAgICAgW3NhdmVCYXNpY0NsaWNrQ291bnRlcl09XCJzYXZlQmFzaWNDbGlja0NvdW50ZXJcIlxuICAgICAgICAgICAgW2VsZW1lbnRDb25maWddPVwiZWxlbWVudENvbmZpZ1wiXG4gICAgICAgICAgICAodXBkYXRlRWxlbWVudCk9XCJoYW5kbGVPblNhdmVVcGRhdGVFbGVtZW50KCRldmVudClcIlxuICAgICAgICAgID48L2Jhc2ljLXRleHQtY29uZmlnLWVkaXRvcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XG4gICAgICAgICAgPGJhc2ljLW51bWJlci1jb25maWctZWRpdG9yXG4gICAgICAgICAgICBbc2F2ZUJhc2ljQ2xpY2tDb3VudGVyXT1cInNhdmVCYXNpY0NsaWNrQ291bnRlclwiXG4gICAgICAgICAgICBbZWxlbWVudENvbmZpZ109XCJlbGVtZW50Q29uZmlnXCJcbiAgICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYmFzaWMtbnVtYmVyLWNvbmZpZy1lZGl0b3I+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCI+XG4gICAgICAgICAgPGJhc2ljLXJhZGlvLWNvbmZpZy1lZGl0b3JcbiAgICAgICAgICAgIFtzYXZlQmFzaWNDbGlja0NvdW50ZXJdPVwic2F2ZUJhc2ljQ2xpY2tDb3VudGVyXCJcbiAgICAgICAgICAgIFtlbGVtZW50Q29uZmlnXT1cImVsZW1lbnRDb25maWdcIlxuICAgICAgICAgICAgKHVwZGF0ZUVsZW1lbnQpPVwiaGFuZGxlT25TYXZlVXBkYXRlRWxlbWVudCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9iYXNpYy1yYWRpby1jb25maWctZWRpdG9yPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxuICAgICAgICAgIDxiYXNpYy1jaGVja2JveC1jb25maWctZWRpdG9yXG4gICAgICAgICAgICBbc2F2ZUJhc2ljQ2xpY2tDb3VudGVyXT1cInNhdmVCYXNpY0NsaWNrQ291bnRlclwiXG4gICAgICAgICAgICBbZWxlbWVudENvbmZpZ109XCJlbGVtZW50Q29uZmlnXCJcbiAgICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYmFzaWMtY2hlY2tib3gtY29uZmlnLWVkaXRvcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxuICAgICAgICAgIDxiYXNpYy1jaGVja2JveC1jb25maWctZWRpdG9yXG4gICAgICAgICAgICBbc2F2ZUJhc2ljQ2xpY2tDb3VudGVyXT1cInNhdmVCYXNpY0NsaWNrQ291bnRlclwiXG4gICAgICAgICAgICBbZWxlbWVudENvbmZpZ109XCJlbGVtZW50Q29uZmlnXCJcbiAgICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYmFzaWMtY2hlY2tib3gtY29uZmlnLWVkaXRvcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidvdHAnXCI+XG4gICAgICAgICAgPGJhc2ljLW90cC1jb25maWctZWRpdG9yXG4gICAgICAgICAgICBbc2F2ZUJhc2ljQ2xpY2tDb3VudGVyXT1cInNhdmVCYXNpY0NsaWNrQ291bnRlclwiXG4gICAgICAgICAgICBbZWxlbWVudENvbmZpZ109XCJlbGVtZW50Q29uZmlnXCJcbiAgICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYmFzaWMtb3RwLWNvbmZpZy1lZGl0b3I+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGhvbmUnXCI+XG4gICAgICAgICAgPGJhc2ljLXBob25lLWNvbmZpZy1lZGl0b3JcbiAgICAgICAgICAgIFtzYXZlQmFzaWNDbGlja0NvdW50ZXJdPVwic2F2ZUJhc2ljQ2xpY2tDb3VudGVyXCJcbiAgICAgICAgICAgIFtlbGVtZW50Q29uZmlnXT1cImVsZW1lbnRDb25maWdcIlxuICAgICAgICAgICAgKHVwZGF0ZUVsZW1lbnQpPVwiaGFuZGxlT25TYXZlVXBkYXRlRWxlbWVudCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9iYXNpYy1waG9uZS1jb25maWctZWRpdG9yPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZm9ybT5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgIH1cbiAgICBgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQmFzaWNFbGVtZW50Q29uZmlnRWRpdG9yIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgc2F2ZUNsaWNrQ291bnRlcjogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBlbGVtZW50Q29uZmlnOiBhbnkgPSB7XG4gICAgbGFiZWw6IFwiXCIsXG4gICAga2V5OiBcIlwiLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBkZWZhdWx0OiB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0sXG4gICAgdmFsaWRhdG9yczoge1xuICAgICAgbWluOiBudWxsLFxuICAgICAgbWF4OiBudWxsLFxuICAgICAgbWluTGVuZ3RoOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoOiBudWxsLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHBsYWNlaG9sZGVyOiBcIlwiLFxuICAgICAgcmVhZE9ubHk6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIEBPdXRwdXQoKVxuICB1cGRhdGVFbGVtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZWxlbWVudFR5cGU6IHN0cmluZyA9IFwiXCI7XG4gIHNhdmVCYXNpY0NsaWNrQ291bnRlcjogbnVtYmVyID0gMDtcblxuICBiYXNpY0Zvcm1Hcm91cDogRm9ybUdyb3VwID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBAbG9nTWV0aG9kXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXNzaWduVmFyaWFibGVzKCk7XG4gICAgdGhpcy5jcmVhdGVCYXNpY0Zvcm1Hcm91cCgpO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgdmVyaWZ5Q2hhbmdlID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2U7XG4gICAgfTtcblxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJlbGVtZW50Q29uZmlnXCIpKSB7XG4gICAgICB0aGlzLmVsZW1lbnRDb25maWcgPSBjaGFuZ2VzLmVsZW1lbnRDb25maWcuY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5hc3NpZ25WYXJpYWJsZXMoKTtcbiAgICAgIHRoaXMuYmFzaWNGb3JtR3JvdXA/LnJlc2V0KHRoaXMuZWxlbWVudENvbmZpZyk7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcInNhdmVDbGlja0NvdW50ZXJcIikpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlcy5zYXZlQ2xpY2tDb3VudGVyLnByZXZpb3VzVmFsdWUgIT09XG4gICAgICAgIGNoYW5nZXMuc2F2ZUNsaWNrQ291bnRlci5jdXJyZW50VmFsdWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLnNhdmVDbGlja0NvdW50ZXIgPSBjaGFuZ2VzLnNhdmVDbGlja0NvdW50ZXIuY3VycmVudFZhbHVlO1xuXG4gICAgICAgIHRoaXMuaGFuZGxlT25TYXZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBhc3NpZ25WYXJpYWJsZXMoKSB7XG4gICAgdGhpcy5lbGVtZW50VHlwZSA9IHRoaXMuZWxlbWVudENvbmZpZy5lbGVtZW50VHlwZTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgY3JlYXRlQmFzaWNGb3JtR3JvdXAoKSB7XG4gICAgdGhpcy5iYXNpY0Zvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgbGFiZWw6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcubGFiZWwpLFxuICAgICAga2V5OiBuZXcgRm9ybUNvbnRyb2wodGhpcy5lbGVtZW50Q29uZmlnLmtleSksXG4gICAgICBkaXNhYmxlZDogbmV3IEZvcm1Db250cm9sKHRoaXMuZWxlbWVudENvbmZpZy5kaXNhYmxlZCksXG4gICAgICBkZWZhdWx0OiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgdmFsdWU6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcuZGVmYXVsdC52YWx1ZSwge1xuICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgIH0pXG4gICAgICB9KSxcbiAgICAgIHZhbGlkYXRvcnM6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBtaW46IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcudmFsaWRhdG9ycy5taW4sIHtcbiAgICAgICAgICB1cGRhdGVPbjogXCJjaGFuZ2VcIlxuICAgICAgICB9KSxcbiAgICAgICAgbWluTGVuZ3RoOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5lbGVtZW50Q29uZmlnLnZhbGlkYXRvcnMubWluTGVuZ3RoLCB7XG4gICAgICAgICAgdXBkYXRlT246IFwiY2hhbmdlXCJcbiAgICAgICAgfSksXG4gICAgICAgIG1heDogbmV3IEZvcm1Db250cm9sKHRoaXMuZWxlbWVudENvbmZpZy52YWxpZGF0b3JzLm1heCwge1xuICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgIH0pLFxuICAgICAgICBtYXhMZW5ndGg6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcudmFsaWRhdG9ycy5tYXhMZW5ndGgsIHtcbiAgICAgICAgICB1cGRhdGVPbjogXCJjaGFuZ2VcIlxuICAgICAgICB9KSxcbiAgICAgICAgcmVxdWlyZWQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcudmFsaWRhdG9ycy5yZXF1aXJlZCwge1xuICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgIH0pXG4gICAgICB9KSxcbiAgICAgIHByb3BlcnRpZXM6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBwbGFjZWhvbGRlcjogbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgIHRoaXMuZWxlbWVudENvbmZpZy5wcm9wZXJ0aWVzLnBsYWNlaG9sZGVyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICByZWFkT25seTogbmV3IEZvcm1Db250cm9sKHRoaXMuZWxlbWVudENvbmZpZy5wcm9wZXJ0aWVzLnJlYWRPbmx5LCB7XG4gICAgICAgICAgdXBkYXRlT246IFwiY2hhbmdlXCJcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSk7XG4gICAgdGhpcy5iYXNpY0Zvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoZXZlbnQ6IGFueSkge1xuICAgIC8vIEdldCBDb21tb24gQ29uZmlnXG4gICAgbGV0IGJhc2ljRWxlbWVudENvbW1vbkNvbmZpZyA9IHRoaXMuYmFzaWNGb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgICBiYXNpY0VsZW1lbnRDb21tb25Db25maWcua2V5ID0gYmFzaWNFbGVtZW50Q29tbW9uQ29uZmlnLmtleS5yZXBsYWNlKFxuICAgICAgL1xccy9nLFxuICAgICAgXCJfXCJcbiAgICApO1xuXG4gICAgLy8gR2V0IEJhc2ljIEVsZW1lbnQgQ29uZmlnXG4gICAgY29uc3QgYmFzaWNFbGVtZW50Q29uZmlnID0gZXZlbnQuYmFzaWNFbGVtZW50Q29uZmlnO1xuXG4gICAgdGhpcy5lbGVtZW50Q29uZmlnID0gbWVyZ2VPYmplY3RzKFxuICAgICAgdGhpcy5lbGVtZW50Q29uZmlnLFxuICAgICAgYmFzaWNFbGVtZW50Q29tbW9uQ29uZmlnLFxuICAgICAgYmFzaWNFbGVtZW50Q29uZmlnXG4gICAgKTtcblxuICAgIHRoaXMudXBkYXRlRWxlbWVudC5lbWl0KHsgZWxlbWVudENvbmZpZzogdGhpcy5lbGVtZW50Q29uZmlnIH0pO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPblNhdmUoKSB7XG4gICAgdGhpcy5zYXZlQmFzaWNDbGlja0NvdW50ZXIrKztcbiAgfVxufVxuIl19
|