kwikid-forms 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/bundles/kwikid-forms.umd.js +3672 -2968
  2. package/bundles/kwikid-forms.umd.js.map +1 -1
  3. package/esm2015/lib/builder/builder.component.js +236 -104
  4. package/esm2015/lib/builder/builder.module.js +42 -5
  5. package/esm2015/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.js +302 -0
  6. package/esm2015/lib/builder/element-config-editor/editors/basic/text-config.editor.component.js +135 -0
  7. package/esm2015/lib/builder/element-config-editor/editors/basic-element-config.editor.component.js +542 -0
  8. package/esm2015/lib/builder/element-config-editor/element-config-editor.component.js +89 -0
  9. package/esm2015/lib/builder/shared/elements.js +44 -0
  10. package/esm2015/lib/builder/shared/helpers.js +6 -0
  11. package/esm2015/lib/renderer/config-converter.helper.js +661 -0
  12. package/esm2015/lib/renderer/form-view/definitions/form-view.apis.definition.js +1 -1
  13. package/esm2015/lib/renderer/form-view/form-view.component.js +73 -91
  14. package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +22 -12
  15. package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +4 -1
  16. package/esm2015/lib/renderer/renderer.component.js +74 -24
  17. package/fesm2015/kwikid-forms.js +3379 -2071
  18. package/fesm2015/kwikid-forms.js.map +1 -1
  19. package/lib/builder/builder.component.d.ts +21 -53
  20. package/lib/builder/builder.module.d.ts +9 -4
  21. package/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.d.ts +25 -0
  22. package/lib/builder/element-config-editor/editors/basic/text-config.editor.component.d.ts +16 -0
  23. package/lib/builder/element-config-editor/editors/basic-element-config.editor.component.d.ts +20 -0
  24. package/lib/builder/element-config-editor/element-config-editor.component.d.ts +20 -0
  25. package/lib/builder/shared/elements.d.ts +32 -0
  26. package/lib/builder/shared/helpers.d.ts +1 -0
  27. package/lib/renderer/{renderer.config-converter.helper.d.ts → config-converter.helper.d.ts} +2 -0
  28. package/lib/renderer/form-view/definitions/form-view.apis.definition.d.ts +2 -1
  29. package/lib/renderer/form-view/form-view.component.d.ts +8 -5
  30. package/lib/renderer/renderer.component.d.ts +2 -2
  31. package/package.json +3 -3
  32. package/esm2015/lib/renderer/renderer.config-converter.helper.js +0 -641
@@ -0,0 +1,302 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
3
+ import { FormArray, FormControl, FormGroup } from "@angular/forms";
4
+ import { logMethod, setMissingKeyValue } from "kwikid-toolkit";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@angular/common";
8
+ export class BasicRadioConfigEditor {
9
+ constructor() {
10
+ this.optionType = {
11
+ label: "",
12
+ disabled: false,
13
+ description: ""
14
+ };
15
+ this.saveBasicClickCounter = 0;
16
+ this.elementConfig = {
17
+ properties: {
18
+ orientation: "horizontal"
19
+ },
20
+ options: []
21
+ };
22
+ this.updateElement = new EventEmitter();
23
+ this.basicRadioFormGroup = undefined;
24
+ }
25
+ ngOnInit() {
26
+ this.createBasicRadioFormGroup();
27
+ }
28
+ ngOnChanges(changes) {
29
+ const verifyChange = (key) => {
30
+ return changes.hasOwnProperty(key) && !changes[key].firstChange;
31
+ };
32
+ if (verifyChange("elementConfig")) {
33
+ this.elementConfig = changes.elementConfig.currentValue;
34
+ this.createBasicRadioFormGroup();
35
+ }
36
+ if (verifyChange("saveBasicClickCounter")) {
37
+ if (changes.saveBasicClickCounter.previousValue !==
38
+ changes.saveBasicClickCounter.currentValue) {
39
+ this.saveBasicClickCounter = changes.saveBasicClickCounter.currentValue;
40
+ this.handleOnSave();
41
+ }
42
+ }
43
+ }
44
+ createBasicRadioFormGroup() {
45
+ let optionsFormArray = [];
46
+ this.elementConfig = setMissingKeyValue(this.elementConfig, "options", [
47
+ this.optionType
48
+ ]);
49
+ for (let option of this.elementConfig.options) {
50
+ optionsFormArray.push(this.createOptionConfigFormGroup(option));
51
+ }
52
+ this.basicRadioFormGroup = new FormGroup({
53
+ properties: new FormGroup({
54
+ orientation: new FormControl(this.elementConfig.properties.orientation, {
55
+ updateOn: "change"
56
+ })
57
+ }),
58
+ options: new FormArray(optionsFormArray)
59
+ });
60
+ this.basicRadioFormGroup.updateValueAndValidity();
61
+ }
62
+ handleOnSave() {
63
+ let basicElementConfig = this.basicRadioFormGroup.getRawValue();
64
+ this.updateElement.emit({
65
+ basicElementConfig: basicElementConfig
66
+ });
67
+ }
68
+ get optionsArray() {
69
+ return this.basicRadioFormGroup.get("options");
70
+ }
71
+ createOptionConfigFormGroup(optionConfig) {
72
+ const optionFormGroup = new FormGroup({
73
+ label: new FormControl(optionConfig.label, {
74
+ updateOn: "change"
75
+ }),
76
+ disabled: new FormControl(optionConfig.disabled, {
77
+ updateOn: "change"
78
+ }),
79
+ description: new FormControl(optionConfig.description, {
80
+ updateOn: "change"
81
+ })
82
+ });
83
+ return optionFormGroup;
84
+ }
85
+ addOption() {
86
+ const options = this.basicRadioFormGroup.get("options");
87
+ options.push(this.createOptionConfigFormGroup(this.optionType));
88
+ }
89
+ removeOption(optionIndex) {
90
+ const options = this.basicRadioFormGroup.get("options");
91
+ if (options.length > 1) {
92
+ options.removeAt(optionIndex);
93
+ }
94
+ else {
95
+ this.addOption();
96
+ // options.reset();
97
+ }
98
+ }
99
+ }
100
+ /** @nocollapse */ BasicRadioConfigEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicRadioConfigEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
101
+ /** @nocollapse */ BasicRadioConfigEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BasicRadioConfigEditor, selector: "basic-radio-config-editor", inputs: { saveBasicClickCounter: "saveBasicClickCounter", elementConfig: "elementConfig" }, outputs: { updateElement: "updateElement" }, usesOnChanges: true, ngImport: i0, template: `
102
+ <form [formGroup]="basicRadioFormGroup">
103
+ <fieldset formArrayName="options">
104
+ <legend>Options</legend>
105
+ <ng-container
106
+ *ngFor="let option of optionsArray.controls; let i = index"
107
+ >
108
+ <div [formGroupName]="i">
109
+ <div class="form-group">
110
+ <label for="basic-radio-config-placeholder">label</label>
111
+ <input
112
+ class="form-control"
113
+ formControlName="label"
114
+ id="basic-radio-config-placeholder"
115
+ type="text"
116
+ />
117
+ </div>
118
+ <div class="form-group">
119
+ <label for="basic-radio-config-disabled">disabled</label>
120
+ <select
121
+ class="form-control"
122
+ formControlName="disabled"
123
+ id="basic-radio-config-disabled"
124
+ >
125
+ <option
126
+ [ngValue]="null"
127
+ disabled
128
+ >Select Disability</option
129
+ >
130
+ <option
131
+ *ngFor="let disabled of [true, false]"
132
+ [ngValue]="disabled"
133
+ >
134
+ {{ disabled }}
135
+ </option>
136
+ </select>
137
+ </div>
138
+ <div class="form-group">
139
+ <label for="basic-radio-config-description">description</label>
140
+ <input
141
+ class="form-control"
142
+ formControlName="description"
143
+ id="basic-radio-config-description"
144
+ type="text"
145
+ />
146
+ </div>
147
+ </div>
148
+ <div class="form-array-actions">
149
+ <button (click)="removeOption(i)">Remove</button>
150
+ <button (click)="addOption()">Add</button>
151
+ </div>
152
+ </ng-container>
153
+ </fieldset>
154
+ <fieldset formGroupName="properties">
155
+ <legend>Miscellaneous</legend>
156
+ <div class="form-group">
157
+ <label for="basic-radio-config-orientation">Orientation</label>
158
+ <select
159
+ class="form-control"
160
+ formControlName="orientation"
161
+ id="basic-radio-config-orientation"
162
+ >
163
+ <option
164
+ [ngValue]="null"
165
+ disabled
166
+ >Select Orientation</option
167
+ >
168
+ <option
169
+ *ngFor="let orientation of ['horizontal', 'vertical']"
170
+ [ngValue]="orientation"
171
+ >
172
+ {{ orientation }}
173
+ </option>
174
+ </select>
175
+ </div>
176
+ </fieldset>
177
+ </form>
178
+ `, isInline: true, styles: ["\n .form-array-actions {\n display: flex;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n }\n "], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
179
+ __decorate([
180
+ logMethod
181
+ ], BasicRadioConfigEditor.prototype, "ngOnInit", null);
182
+ __decorate([
183
+ logMethod
184
+ ], BasicRadioConfigEditor.prototype, "ngOnChanges", null);
185
+ __decorate([
186
+ logMethod
187
+ ], BasicRadioConfigEditor.prototype, "createBasicRadioFormGroup", null);
188
+ __decorate([
189
+ logMethod
190
+ ], BasicRadioConfigEditor.prototype, "handleOnSave", null);
191
+ __decorate([
192
+ logMethod
193
+ ], BasicRadioConfigEditor.prototype, "createOptionConfigFormGroup", null);
194
+ __decorate([
195
+ logMethod
196
+ ], BasicRadioConfigEditor.prototype, "addOption", null);
197
+ __decorate([
198
+ logMethod
199
+ ], BasicRadioConfigEditor.prototype, "removeOption", null);
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicRadioConfigEditor, decorators: [{
201
+ type: Component,
202
+ args: [{
203
+ selector: "basic-radio-config-editor",
204
+ template: `
205
+ <form [formGroup]="basicRadioFormGroup">
206
+ <fieldset formArrayName="options">
207
+ <legend>Options</legend>
208
+ <ng-container
209
+ *ngFor="let option of optionsArray.controls; let i = index"
210
+ >
211
+ <div [formGroupName]="i">
212
+ <div class="form-group">
213
+ <label for="basic-radio-config-placeholder">label</label>
214
+ <input
215
+ class="form-control"
216
+ formControlName="label"
217
+ id="basic-radio-config-placeholder"
218
+ type="text"
219
+ />
220
+ </div>
221
+ <div class="form-group">
222
+ <label for="basic-radio-config-disabled">disabled</label>
223
+ <select
224
+ class="form-control"
225
+ formControlName="disabled"
226
+ id="basic-radio-config-disabled"
227
+ >
228
+ <option
229
+ [ngValue]="null"
230
+ disabled
231
+ >Select Disability</option
232
+ >
233
+ <option
234
+ *ngFor="let disabled of [true, false]"
235
+ [ngValue]="disabled"
236
+ >
237
+ {{ disabled }}
238
+ </option>
239
+ </select>
240
+ </div>
241
+ <div class="form-group">
242
+ <label for="basic-radio-config-description">description</label>
243
+ <input
244
+ class="form-control"
245
+ formControlName="description"
246
+ id="basic-radio-config-description"
247
+ type="text"
248
+ />
249
+ </div>
250
+ </div>
251
+ <div class="form-array-actions">
252
+ <button (click)="removeOption(i)">Remove</button>
253
+ <button (click)="addOption()">Add</button>
254
+ </div>
255
+ </ng-container>
256
+ </fieldset>
257
+ <fieldset formGroupName="properties">
258
+ <legend>Miscellaneous</legend>
259
+ <div class="form-group">
260
+ <label for="basic-radio-config-orientation">Orientation</label>
261
+ <select
262
+ class="form-control"
263
+ formControlName="orientation"
264
+ id="basic-radio-config-orientation"
265
+ >
266
+ <option
267
+ [ngValue]="null"
268
+ disabled
269
+ >Select Orientation</option
270
+ >
271
+ <option
272
+ *ngFor="let orientation of ['horizontal', 'vertical']"
273
+ [ngValue]="orientation"
274
+ >
275
+ {{ orientation }}
276
+ </option>
277
+ </select>
278
+ </div>
279
+ </fieldset>
280
+ </form>
281
+ `,
282
+ styles: [
283
+ `
284
+ .form-array-actions {
285
+ display: flex;
286
+ flex-direction: row;
287
+ align-content: center;
288
+ justify-content: center;
289
+ align-items: center;
290
+ gap: 1rem;
291
+ }
292
+ `
293
+ ]
294
+ }]
295
+ }], ctorParameters: function () { return []; }, propDecorators: { saveBasicClickCounter: [{
296
+ type: Input
297
+ }], elementConfig: [{
298
+ type: Input
299
+ }], updateElement: [{
300
+ type: Output
301
+ }], ngOnInit: [], ngOnChanges: [], createBasicRadioFormGroup: [], handleOnSave: [], createOptionConfigFormGroup: [], addOption: [], removeOption: [] } });
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tY29uZmlnLmVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2VsZW1lbnQtY29uZmlnLWVkaXRvci9lZGl0b3JzL2Jhc2ljL3JhZGlvLWNvbmZpZy5lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQStGL0QsTUFBTSxPQUFPLHNCQUFzQjtJQXVCakM7UUF0QlMsZUFBVSxHQUFHO1lBQ3BCLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEtBQUs7WUFDZixXQUFXLEVBQUUsRUFBRTtTQUNoQixDQUFDO1FBR0YsMEJBQXFCLEdBQVcsQ0FBQyxDQUFDO1FBR2xDLGtCQUFhLEdBQVE7WUFDbkIsVUFBVSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxZQUFZO2FBQzFCO1lBQ0QsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBR0Ysa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXhDLHdCQUFtQixHQUFjLFNBQVMsQ0FBQztJQUU1QixDQUFDO0lBR2hCLFFBQVE7UUFDTixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBR0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJ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QUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFjLENBQUM7UUFDckUsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0QixPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsbUJBQW1CO1NBQ3BCO0lBQ0gsQ0FBQzs7dUlBM0hVLHNCQUFzQjsySEFBdEIsc0JBQXNCLCtOQTNGdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkVUO0FBd0NEO0lBREMsU0FBUztzREFHVDtBQUdEO0lBREMsU0FBUzt5REFxQlQ7QUFHRDtJQURDLFNBQVM7dUVBd0JUO0FBR0Q7SUFEQyxTQUFTOzBEQU9UO0FBT0Q7SUFEQyxTQUFTO3lFQWNUO0FBR0Q7SUFEQyxTQUFTO3VEQUlUO0FBR0Q7SUFEQyxTQUFTOzBEQVNUOzRGQTNIVSxzQkFBc0I7a0JBN0ZsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2RVQ7b0JBQ0QsTUFBTSxFQUFFO3dCQUNOOzs7Ozs7Ozs7S0FTQztxQkFDRjtpQkFDRjswRUFTQyxxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQVNOLGFBQWE7c0JBRFosTUFBTTtnQkFRUCxRQUFRLE1BS1IsV0FBVyxNQXVCWCx5QkFBeUIsTUEwQnpCLFlBQVksTUFhWiwyQkFBMkIsTUFnQjNCLFNBQVMsTUFNVCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBsb2dNZXRob2QsIHNldE1pc3NpbmdLZXlWYWx1ZSB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYmFzaWMtcmFkaW8tY29uZmlnLWVkaXRvclwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiYmFzaWNSYWRpb0Zvcm1Hcm91cFwiPlxuICAgICAgPGZpZWxkc2V0IGZvcm1BcnJheU5hbWU9XCJvcHRpb25zXCI+XG4gICAgICAgIDxsZWdlbmQ+T3B0aW9uczwvbGVnZW5kPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zQXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYmFzaWMtcmFkaW8tY29uZmlnLXBsYWNlaG9sZGVyXCI+bGFiZWw8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgIGlkPVwiYmFzaWMtcmFkaW8tY29uZmlnLXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJiYXNpYy1yYWRpby1jb25maWctZGlzYWJsZWRcIj5kaXNhYmxlZDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIGlkPVwiYmFzaWMtcmFkaW8tY29uZmlnLWRpc2FibGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIm51bGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgID5TZWxlY3QgRGlzYWJpbGl0eTwvb3B0aW9uXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkaXNhYmxlZCBvZiBbdHJ1ZSwgZmFsc2VdXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBkaXNhYmxlZCB9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImJhc2ljLXJhZGlvLWNvbmZpZy1kZXNjcmlwdGlvblwiPmRlc2NyaXB0aW9uPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICBpZD1cImJhc2ljLXJhZGlvLWNvbmZpZy1kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tYXJyYXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlT3B0aW9uKGkpXCI+UmVtb3ZlPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGRPcHRpb24oKVwiPkFkZDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8ZmllbGRzZXQgZm9ybUdyb3VwTmFtZT1cInByb3BlcnRpZXNcIj5cbiAgICAgICAgPGxlZ2VuZD5NaXNjZWxsYW5lb3VzPC9sZWdlbmQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJhc2ljLXJhZGlvLWNvbmZpZy1vcmllbnRhdGlvblwiPk9yaWVudGF0aW9uPC9sYWJlbD5cbiAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcmllbnRhdGlvblwiXG4gICAgICAgICAgICBpZD1cImJhc2ljLXJhZGlvLWNvbmZpZy1vcmllbnRhdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJudWxsXCJcbiAgICAgICAgICAgICAgZGlzYWJsZWRcbiAgICAgICAgICAgICAgPlNlbGVjdCBPcmllbnRhdGlvbjwvb3B0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcmllbnRhdGlvbiBvZiBbJ2hvcml6b250YWwnLCAndmVydGljYWwnXVwiXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIm9yaWVudGF0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgb3JpZW50YXRpb24gfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9mb3JtPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuZm9ybS1hcnJheS1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgfVxuICAgIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXNpY1JhZGlvQ29uZmlnRWRpdG9yIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcmVhZG9ubHkgb3B0aW9uVHlwZSA9IHtcbiAgICBsYWJlbDogXCJcIixcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiXCJcbiAgfTtcblxuICBASW5wdXQoKVxuICBzYXZlQmFzaWNDbGlja0NvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgZWxlbWVudENvbmZpZzogYW55ID0ge1xuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIG9yaWVudGF0aW9uOiBcImhvcml6b250YWxcIlxuICAgIH0sXG4gICAgb3B0aW9uczogW11cbiAgfTtcblxuICBAT3V0cHV0KClcbiAgdXBkYXRlRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGJhc2ljUmFkaW9Gb3JtR3JvdXA6IEZvcm1Hcm91cCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgQGxvZ01ldGhvZFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZUJhc2ljUmFkaW9Gb3JtR3JvdXAoKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAhY2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlO1xuICAgIH07XG5cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwiZWxlbWVudENvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5lbGVtZW50Q29uZmlnID0gY2hhbmdlcy5lbGVtZW50Q29uZmlnLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgdGhpcy5jcmVhdGVCYXNpY1JhZGlvRm9ybUdyb3VwKCk7XG4gICAgfVxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJzYXZlQmFzaWNDbGlja0NvdW50ZXJcIikpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlcy5zYXZlQmFzaWNDbGlja0NvdW50ZXIucHJldmlvdXNWYWx1ZSAhPT1cbiAgICAgICAgY2hhbmdlcy5zYXZlQmFzaWNDbGlja0NvdW50ZXIuY3VycmVudFZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zYXZlQmFzaWNDbGlja0NvdW50ZXIgPSBjaGFuZ2VzLnNhdmVCYXNpY0NsaWNrQ291bnRlci5jdXJyZW50VmFsdWU7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVPblNhdmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGNyZWF0ZUJhc2ljUmFkaW9Gb3JtR3JvdXAoKTogdm9pZCB7XG4gICAgbGV0IG9wdGlvbnNGb3JtQXJyYXkgPSBbXTtcblxuICAgIHRoaXMuZWxlbWVudENvbmZpZyA9IHNldE1pc3NpbmdLZXlWYWx1ZSh0aGlzLmVsZW1lbnRDb25maWcsIFwib3B0aW9uc1wiLCBbXG4gICAgICB0aGlzLm9wdGlvblR5cGVcbiAgICBdKTtcblxuICAgIGZvciAobGV0IG9wdGlvbiBvZiB0aGlzLmVsZW1lbnRDb25maWcub3B0aW9ucykge1xuICAgICAgb3B0aW9uc0Zvcm1BcnJheS5wdXNoKHRoaXMuY3JlYXRlT3B0aW9uQ29uZmlnRm9ybUdyb3VwKG9wdGlvbikpO1xuICAgIH1cblxuICAgIHRoaXMuYmFzaWNSYWRpb0Zvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgcHJvcGVydGllczogbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIG9yaWVudGF0aW9uOiBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgdGhpcy5lbGVtZW50Q29uZmlnLnByb3BlcnRpZXMub3JpZW50YXRpb24sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdXBkYXRlT246IFwiY2hhbmdlXCJcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH0pLFxuICAgICAgb3B0aW9uczogbmV3IEZvcm1BcnJheShvcHRpb25zRm9ybUFycmF5KVxuICAgIH0pO1xuICAgIHRoaXMuYmFzaWNSYWRpb0Zvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGhhbmRsZU9uU2F2ZSgpIHtcbiAgICBsZXQgYmFzaWNFbGVtZW50Q29uZmlnID0gdGhpcy5iYXNpY1JhZGlvRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG5cbiAgICB0aGlzLnVwZGF0ZUVsZW1lbnQuZW1pdCh7XG4gICAgICBiYXNpY0VsZW1lbnRDb25maWc6IGJhc2ljRWxlbWVudENvbmZpZ1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IG9wdGlvbnNBcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmJhc2ljUmFkaW9Gb3JtR3JvdXAuZ2V0KFwib3B0aW9uc1wiKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGNyZWF0ZU9wdGlvbkNvbmZpZ0Zvcm1Hcm91cChvcHRpb25Db25maWc6IGFueSk6IEZvcm1Hcm91cCB7XG4gICAgY29uc3Qgb3B0aW9uRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBsYWJlbDogbmV3IEZvcm1Db250cm9sKG9wdGlvbkNvbmZpZy5sYWJlbCwge1xuICAgICAgICB1cGRhdGVPbjogXCJjaGFuZ2VcIlxuICAgICAgfSksXG4gICAgICBkaXNhYmxlZDogbmV3IEZvcm1Db250cm9sKG9wdGlvbkNvbmZpZy5kaXNhYmxlZCwge1xuICAgICAgICB1cGRhdGVPbjogXCJjaGFuZ2VcIlxuICAgICAgfSksXG4gICAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKG9wdGlvbkNvbmZpZy5kZXNjcmlwdGlvbiwge1xuICAgICAgICB1cGRhdGVPbjogXCJjaGFuZ2VcIlxuICAgICAgfSlcbiAgICB9KTtcbiAgICByZXR1cm4gb3B0aW9uRm9ybUdyb3VwO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBhZGRPcHRpb24oKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuYmFzaWNSYWRpb0Zvcm1Hcm91cC5nZXQoXCJvcHRpb25zXCIpIGFzIEZvcm1BcnJheTtcbiAgICBvcHRpb25zLnB1c2godGhpcy5jcmVhdGVPcHRpb25Db25maWdGb3JtR3JvdXAodGhpcy5vcHRpb25UeXBlKSk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHJlbW92ZU9wdGlvbihvcHRpb25JbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuYmFzaWNSYWRpb0Zvcm1Hcm91cC5nZXQoXCJvcHRpb25zXCIpIGFzIEZvcm1BcnJheTtcbiAgICBpZiAob3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICBvcHRpb25zLnJlbW92ZUF0KG9wdGlvbkluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRPcHRpb24oKTtcbiAgICAgIC8vIG9wdGlvbnMucmVzZXQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,135 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
3
+ import { FormControl, FormGroup } from "@angular/forms";
4
+ import { logMethod } from "kwikid-toolkit";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@angular/common";
8
+ export class BasicTextConfigEditor {
9
+ constructor() {
10
+ this.saveBasicClickCounter = 0;
11
+ this.elementConfig = {
12
+ properties: {
13
+ case: "default"
14
+ }
15
+ };
16
+ this.updateElement = new EventEmitter();
17
+ this.basicTextFormGroup = undefined;
18
+ }
19
+ ngOnInit() {
20
+ this.createBasicTextFormGroup();
21
+ }
22
+ ngOnChanges(changes) {
23
+ const verifyChange = (key) => {
24
+ return changes.hasOwnProperty(key) && !changes[key].firstChange;
25
+ };
26
+ if (verifyChange("elementConfig")) {
27
+ this.elementConfig = changes.elementConfig.currentValue;
28
+ this.createBasicTextFormGroup();
29
+ }
30
+ if (verifyChange("saveBasicClickCounter")) {
31
+ if (changes.saveBasicClickCounter.previousValue !==
32
+ changes.saveBasicClickCounter.currentValue) {
33
+ this.saveBasicClickCounter = changes.saveBasicClickCounter.currentValue;
34
+ this.handleOnSave();
35
+ }
36
+ }
37
+ }
38
+ createBasicTextFormGroup() {
39
+ this.basicTextFormGroup = new FormGroup({
40
+ properties: new FormGroup({
41
+ case: new FormControl(this.elementConfig.properties.case, {
42
+ updateOn: "change"
43
+ })
44
+ })
45
+ });
46
+ this.basicTextFormGroup.updateValueAndValidity();
47
+ }
48
+ handleOnSave() {
49
+ let basicElementConfig = this.basicTextFormGroup.getRawValue();
50
+ this.updateElement.emit({
51
+ basicElementConfig: basicElementConfig
52
+ });
53
+ }
54
+ }
55
+ /** @nocollapse */ BasicTextConfigEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicTextConfigEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
+ /** @nocollapse */ BasicTextConfigEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BasicTextConfigEditor, selector: "basic-text-config-editor", inputs: { saveBasicClickCounter: "saveBasicClickCounter", elementConfig: "elementConfig" }, outputs: { updateElement: "updateElement" }, usesOnChanges: true, ngImport: i0, template: `
57
+ <form [formGroup]="basicTextFormGroup">
58
+ <fieldset formGroupName="properties">
59
+ <legend>Miscellaneous</legend>
60
+ <div class="form-group">
61
+ <label for="basic-text-config-case">Case</label>
62
+ <select
63
+ class="form-control"
64
+ formControlName="case"
65
+ id="basic-text-config-case"
66
+ >
67
+ <option
68
+ [ngValue]="null"
69
+ disabled
70
+ >Select Case</option
71
+ >
72
+ <option
73
+ *ngFor="let case of ['default', 'upper', 'lower']"
74
+ [ngValue]="case"
75
+ >
76
+ {{ case }}
77
+ </option>
78
+ </select>
79
+ </div>
80
+ </fieldset>
81
+ </form>
82
+ `, isInline: true, styles: [""], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
83
+ __decorate([
84
+ logMethod
85
+ ], BasicTextConfigEditor.prototype, "ngOnInit", null);
86
+ __decorate([
87
+ logMethod
88
+ ], BasicTextConfigEditor.prototype, "ngOnChanges", null);
89
+ __decorate([
90
+ logMethod
91
+ ], BasicTextConfigEditor.prototype, "createBasicTextFormGroup", null);
92
+ __decorate([
93
+ logMethod
94
+ ], BasicTextConfigEditor.prototype, "handleOnSave", null);
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BasicTextConfigEditor, decorators: [{
96
+ type: Component,
97
+ args: [{
98
+ selector: "basic-text-config-editor",
99
+ template: `
100
+ <form [formGroup]="basicTextFormGroup">
101
+ <fieldset formGroupName="properties">
102
+ <legend>Miscellaneous</legend>
103
+ <div class="form-group">
104
+ <label for="basic-text-config-case">Case</label>
105
+ <select
106
+ class="form-control"
107
+ formControlName="case"
108
+ id="basic-text-config-case"
109
+ >
110
+ <option
111
+ [ngValue]="null"
112
+ disabled
113
+ >Select Case</option
114
+ >
115
+ <option
116
+ *ngFor="let case of ['default', 'upper', 'lower']"
117
+ [ngValue]="case"
118
+ >
119
+ {{ case }}
120
+ </option>
121
+ </select>
122
+ </div>
123
+ </fieldset>
124
+ </form>
125
+ `,
126
+ styles: [``]
127
+ }]
128
+ }], ctorParameters: function () { return []; }, propDecorators: { saveBasicClickCounter: [{
129
+ type: Input
130
+ }], elementConfig: [{
131
+ type: Input
132
+ }], updateElement: [{
133
+ type: Output
134
+ }], ngOnInit: [], ngOnChanges: [], createBasicTextFormGroup: [], handleOnSave: [] } });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jb25maWcuZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL2J1aWxkZXIvZWxlbWVudC1jb25maWctZWRpdG9yL2VkaXRvcnMvYmFzaWMvdGV4dC1jb25maWcuZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWlDM0MsTUFBTSxPQUFPLHFCQUFxQjtJQWdCaEM7UUFkQSwwQkFBcUIsR0FBVyxDQUFDLENBQUM7UUFHbEMsa0JBQWEsR0FBUTtZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRixDQUFDO1FBR0Ysa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXhDLHVCQUFrQixHQUFjLFNBQVMsQ0FBQztJQUUzQixDQUFDO0lBR2hCLFFBQVE7UUFDTixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBR0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFFRixJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBRXhELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxZQUFZLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUN6QyxJQUNFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhO2dCQUMzQyxPQUFPLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUMxQztnQkFDQSxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQztnQkFFeEUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDO0lBR0Qsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUN0QyxVQUFVLEVBQUUsSUFBSSxTQUFTLENBQUM7Z0JBQ3hCLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7b0JBQ3hELFFBQVEsRUFBRSxRQUFRO2lCQUNuQixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFHRCxZQUFZO1FBQ1YsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFL0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDdEIsa0JBQWtCLEVBQUUsa0JBQWtCO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7O3NJQWpFVSxxQkFBcUI7MEhBQXJCLHFCQUFxQiw4TkE3QnRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVDtBQXNCRDtJQURDLFNBQVM7cURBR1Q7QUFHRDtJQURDLFNBQVM7d0RBcUJUO0FBR0Q7SUFEQyxTQUFTO3FFQVVUO0FBR0Q7SUFEQyxTQUFTO3lEQU9UOzRGQWpFVSxxQkFBcUI7a0JBL0JqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7b0JBQ0QsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNiOzBFQUdDLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBUU4sYUFBYTtzQkFEWixNQUFNO2dCQVFQLFFBQVEsTUFLUixXQUFXLE1BdUJYLHdCQUF3QixNQVl4QixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgbG9nTWV0aG9kIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJiYXNpYy10ZXh0LWNvbmZpZy1lZGl0b3JcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImJhc2ljVGV4dEZvcm1Hcm91cFwiPlxuICAgICAgPGZpZWxkc2V0IGZvcm1Hcm91cE5hbWU9XCJwcm9wZXJ0aWVzXCI+XG4gICAgICAgIDxsZWdlbmQ+TWlzY2VsbGFuZW91czwvbGVnZW5kPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJiYXNpYy10ZXh0LWNvbmZpZy1jYXNlXCI+Q2FzZTwvbGFiZWw+XG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2FzZVwiXG4gICAgICAgICAgICBpZD1cImJhc2ljLXRleHQtY29uZmlnLWNhc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwibnVsbFwiXG4gICAgICAgICAgICAgIGRpc2FibGVkXG4gICAgICAgICAgICAgID5TZWxlY3QgQ2FzZTwvb3B0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXNlIG9mIFsnZGVmYXVsdCcsICd1cHBlcicsICdsb3dlciddXCJcbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwiY2FzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGNhc2UgfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9mb3JtPlxuICBgLFxuICBzdHlsZXM6IFtgYF1cbn0pXG5leHBvcnQgY2xhc3MgQmFzaWNUZXh0Q29uZmlnRWRpdG9yIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgc2F2ZUJhc2ljQ2xpY2tDb3VudGVyOiBudW1iZXIgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIGVsZW1lbnRDb25maWc6IGFueSA9IHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBjYXNlOiBcImRlZmF1bHRcIlxuICAgIH1cbiAgfTtcblxuICBAT3V0cHV0KClcbiAgdXBkYXRlRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGJhc2ljVGV4dEZvcm1Hcm91cDogRm9ybUdyb3VwID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBAbG9nTWV0aG9kXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3JlYXRlQmFzaWNUZXh0Rm9ybUdyb3VwKCk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCB2ZXJpZnlDaGFuZ2UgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBjaGFuZ2VzLmhhc093blByb3BlcnR5KGtleSkgJiYgIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZTtcbiAgICB9O1xuXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImVsZW1lbnRDb25maWdcIikpIHtcbiAgICAgIHRoaXMuZWxlbWVudENvbmZpZyA9IGNoYW5nZXMuZWxlbWVudENvbmZpZy5jdXJyZW50VmFsdWU7XG5cbiAgICAgIHRoaXMuY3JlYXRlQmFzaWNUZXh0Rm9ybUdyb3VwKCk7XG4gICAgfVxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJzYXZlQmFzaWNDbGlja0NvdW50ZXJcIikpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlcy5zYXZlQmFzaWNDbGlja0NvdW50ZXIucHJldmlvdXNWYWx1ZSAhPT1cbiAgICAgICAgY2hhbmdlcy5zYXZlQmFzaWNDbGlja0NvdW50ZXIuY3VycmVudFZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zYXZlQmFzaWNDbGlja0NvdW50ZXIgPSBjaGFuZ2VzLnNhdmVCYXNpY0NsaWNrQ291bnRlci5jdXJyZW50VmFsdWU7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVPblNhdmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGNyZWF0ZUJhc2ljVGV4dEZvcm1Hcm91cCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2ljVGV4dEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgcHJvcGVydGllczogbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGNhc2U6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVsZW1lbnRDb25maWcucHJvcGVydGllcy5jYXNlLCB7XG4gICAgICAgICAgdXBkYXRlT246IFwiY2hhbmdlXCJcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSk7XG4gICAgdGhpcy5iYXNpY1RleHRGb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPblNhdmUoKSB7XG4gICAgbGV0IGJhc2ljRWxlbWVudENvbmZpZyA9IHRoaXMuYmFzaWNUZXh0Rm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG5cbiAgICB0aGlzLnVwZGF0ZUVsZW1lbnQuZW1pdCh7XG4gICAgICBiYXNpY0VsZW1lbnRDb25maWc6IGJhc2ljRWxlbWVudENvbmZpZ1xuICAgIH0pO1xuICB9XG59XG4iXX0=