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
@@ -1,138 +1,270 @@
1
+ import { __decorate } from "tslib";
1
2
  import { copyArrayItem, moveItemInArray } from "@angular/cdk/drag-drop";
2
- import { Component, VERSION } from "@angular/core";
3
- import { FormControl, FormGroup } from "@angular/forms";
4
- import { KwikUIButtonComponent, KwikUIInputComponent, KwikUIProgressSegmentedComponent } from "kwikui";
5
- import { cloneDeep } from "lodash";
3
+ import { Component } from "@angular/core";
4
+ import { FormControl, FormGroup, Validators } from "@angular/forms";
5
+ import { getObjectFromLocalStorage, isEmptyValue, isNotEmptyValue, logMethod } from "kwikid-toolkit";
6
+ import { Elements } from "./shared/elements";
7
+ import { revisedRandId } from "./shared/helpers";
6
8
  import * as i0 from "@angular/core";
9
+ import * as i1 from "kwikui";
10
+ import * as i2 from "./element-config-editor/element-config-editor.component";
11
+ import * as i3 from "@angular/forms";
12
+ import * as i4 from "@angular/cdk/drag-drop";
13
+ import * as i5 from "@angular/common";
7
14
  export class KwikIDFormsBuilderComponent {
8
15
  constructor() {
9
- this.buttonComponent = {
10
- disabled: false,
11
- id: "",
12
- label: "Button",
13
- showLoader: false,
14
- styles: "",
15
- class: "tui-space_right-3 tui-space_bottom-3",
16
- type: "button",
17
- appearance: "primary",
18
- icon: "",
19
- iconRight: "",
20
- shape: null,
21
- size: "m"
22
- };
23
- this.progressSegmentedComponent = {
24
- colors: "tui(--tui-primary)",
25
- max: "5",
26
- size: "m",
27
- value: "2"
28
- };
29
- this.inputComponent = {
30
- case: "default",
31
- disabled: false,
32
- focus: false,
33
- id: "id",
34
- invalid: false,
35
- label: "label",
36
- placeholder: "placeholder",
37
- type: "text",
38
- validators: {
39
- required: true
40
- }
41
- };
42
- this.formGroup = new FormGroup({});
43
- this.name = "Angular " + VERSION.major;
44
- this.menu = [
45
- {
46
- title: "button",
47
- key: "button",
48
- component: KwikUIButtonComponent,
49
- props: this.buttonComponent
50
- },
51
- {
52
- title: "progress-segmented",
53
- key: "progress_segmented",
54
- component: KwikUIProgressSegmentedComponent,
55
- props: this.progressSegmentedComponent
56
- },
57
- {
58
- title: "input",
59
- key: "input",
60
- component: KwikUIInputComponent,
61
- props: this.inputComponent
62
- }
63
- ];
64
- this.table = [];
16
+ this.formKey = "";
17
+ this.formTitle = "";
18
+ this.builderFormGroup = undefined;
19
+ this.basicElements = new Elements().basic;
20
+ this.documentElements = new Elements().documents;
21
+ this.otherElements = new Elements().others;
22
+ this.templateElements = new Elements().templates;
23
+ this.elementsMapping = new Elements().elementMapping;
24
+ this.formElementsDragList = [];
25
+ this.formElementsDropList = [];
26
+ this.elementEditorElementConfig = undefined;
27
+ this.builderFormGroup = new FormGroup({
28
+ formKey: new FormControl("", [Validators.required]),
29
+ formTitle: new FormControl("", [Validators.required])
30
+ });
31
+ const formDropConfig = getObjectFromLocalStorage("formDropConfig");
32
+ if (isNotEmptyValue(formDropConfig)) {
33
+ this.formKey = formDropConfig.key;
34
+ this.formTitle = formDropConfig.title;
35
+ const formFields = formDropConfig.fields.map((item) => {
36
+ item.elementId = revisedRandId();
37
+ item.elementCategory = this.elementsMapping.basic.includes(item.type)
38
+ ? "basic"
39
+ : this.elementsMapping.documents.includes(item.type)
40
+ ? "document"
41
+ : "others";
42
+ item.elementType =
43
+ item.elementCategory === "basic" ||
44
+ item.elementCategory === "document"
45
+ ? item.type
46
+ : String(`NA<>${item.type}`);
47
+ item.isElement = true;
48
+ const elementFiltered = item.elementCategory === "basic"
49
+ ? this.basicElements.find((element) => element.elementType === item.type)
50
+ : item.elementCategory === "document"
51
+ ? this.documentElements.find((element) => element.elementType === item.type)
52
+ : item.elementCategory === "others"
53
+ ? this.otherElements.find((element) => element.elementType === item.type)
54
+ : undefined;
55
+ console.log(elementFiltered);
56
+ item.elementTitle = isEmptyValue(elementFiltered)
57
+ ? item.elementCategory + "::" + item.elementType
58
+ : elementFiltered.elementTitle;
59
+ return item;
60
+ });
61
+ this.formElementsDropList = formFields;
62
+ console.log(formFields);
63
+ }
65
64
  }
66
65
  ngOnInit() {
67
- for (let m of this.menu) {
68
- m.id = this.revisedRandId();
66
+ this.formElementsDragList = [
67
+ { isElement: false, elementTitle: "Basic Elements" },
68
+ ...this.basicElements,
69
+ { isElement: false, elementTitle: "Document Elements" },
70
+ ...this.documentElements,
71
+ { isElement: false, elementTitle: "Other Elements" },
72
+ ...this.otherElements
73
+ ];
74
+ for (let formElementsDragItem of this.formElementsDragList) {
75
+ formElementsDragItem.elementId = revisedRandId();
69
76
  }
70
77
  }
71
- revisedRandId() {
72
- return Math.random()
73
- .toString(36)
74
- .replace(/[^a-z]+/g, "");
75
- }
76
78
  handleOnChange(event, id, key, idx) {
77
79
  const _value = event.target.value;
78
- this.formGroup.controls[id]["controls"][key].patchValue(_value);
79
80
  }
80
- toggleShow(id) {
81
- console.log(id);
81
+ // DOM Event Handlers
82
+ handleGetKeyValue(e) {
83
+ this.builderFormGroup.patchValue({
84
+ [e.key]: e.value
85
+ }, { emitEvent: false });
82
86
  }
83
- drop(event) {
87
+ drop(event, elementCategory) {
84
88
  // let item = JSON.parse(JSON.stringify(event));
85
89
  if (event.previousContainer !== event.container) {
86
90
  console.log("copying");
87
- // Clone the item that was dropped.
88
- let clone = cloneDeep(event.previousContainer.data[event.previousIndex]);
89
- clone.id = clone.key + "__" + this.revisedRandId();
90
- event.previousContainer.data[event.previousIndex] = clone;
91
- let newFormGroup = new FormGroup({});
92
- const props = clone.props;
93
- Object.keys(props).forEach((key) => {
94
- newFormGroup.addControl(key, new FormControl({ value: props[key], disabled: false }));
95
- });
96
- this.formGroup.addControl(clone.id, newFormGroup);
97
- copyArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
91
+ if (event.item.data.isElement) {
92
+ // Clone the item that was dropped.
93
+ const draggedItemIndex = this.formElementsDragList.findIndex((item) => {
94
+ return item.elementId === event.item.data.elementId;
95
+ });
96
+ copyArrayItem(this.formElementsDragList, this.formElementsDropList, draggedItemIndex, event.currentIndex);
97
+ this.formElementsDragList = JSON.parse(JSON.stringify(this.formElementsDragList.map((item) => {
98
+ item.elementId = revisedRandId();
99
+ return item;
100
+ })));
101
+ }
98
102
  }
99
103
  else {
100
104
  console.log("moving");
101
105
  moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
102
106
  }
103
- if (event.previousContainer.data) {
104
- this.menu = this.menu.filter((f) => !f.temp);
105
- }
106
- }
107
- exited(event) {
108
- const currentIdx = event.container.data.findIndex((f) => f.id === event.item.data.id);
109
- this.menu.splice(currentIdx + 1, 0, Object.assign(Object.assign({}, event.item.data), { temp: true }));
110
- }
111
- entered() {
112
- this.menu = this.menu.filter((f) => !f.temp);
113
107
  }
114
- isNumber(val) {
115
- return typeof val;
108
+ exit(event, elementCategory) { }
109
+ enter(event, elementCategory) { }
110
+ /** Predicate function that only allows isElement: true items to be dropped into a list. */
111
+ isElementPredicate(item) {
112
+ return item.data.isElement;
116
113
  }
117
114
  removeElement(idx, id) {
118
- this.formGroup.removeControl(id);
119
- this.table.splice(idx, 1);
115
+ this.formElementsDropList.splice(idx, 1);
120
116
  }
121
- getJSON() {
122
- for (let t of this.table) {
123
- t.props = this.formGroup.getRawValue()[t.id];
117
+ editElement(idx, item) {
118
+ this.elementEditorElementConfig = item;
119
+ }
120
+ handleOnSaveUpdateElement(event) { }
121
+ handleOnClickSaveForms(event) {
122
+ if (isEmptyValue(this.formKey)) {
123
+ window.alert("Please provide Form Key");
124
+ return;
125
+ }
126
+ else {
127
+ this.formKey = this.formKey.replace(/\s/g, "_").toLocaleUpperCase();
124
128
  }
125
- console.log(this.table);
129
+ if (isEmptyValue(this.formTitle)) {
130
+ window.alert("Please provide Form Title");
131
+ return;
132
+ }
133
+ let finalFields = JSON.parse(JSON.stringify(this.formElementsDropList));
134
+ finalFields = finalFields.map((item) => {
135
+ if (item.elementType.startsWith("NA<>", 0)) {
136
+ delete item.elementId;
137
+ delete item.elementType;
138
+ delete item.elementTitle;
139
+ delete item.elementCategory;
140
+ delete item.isElement;
141
+ return item;
142
+ }
143
+ delete item.elementId;
144
+ delete item.elementType;
145
+ delete item.elementTitle;
146
+ delete item.elementCategory;
147
+ delete item.isElement;
148
+ if (item.default.value) {
149
+ item.default = {
150
+ value: {
151
+ is_found: false,
152
+ value: "",
153
+ sources: [
154
+ {
155
+ key: "OBJECT",
156
+ props: {
157
+ object: {
158
+ key: "ALL_FORMS_DATA",
159
+ path: String(`$.${this.formKey}.${item.key}`)
160
+ }
161
+ },
162
+ value: "",
163
+ validation: {
164
+ is_valid: false,
165
+ triggers: ["ON_INIT"],
166
+ rules: [
167
+ {
168
+ id: "1",
169
+ key: "VALUE_CHECK",
170
+ props: {
171
+ value: {
172
+ source: {
173
+ key: "OBJECT",
174
+ props: {
175
+ object: {
176
+ key: "ALL_FORMS_DATA",
177
+ path: String(`$.${this.formKey}.${item.key}`)
178
+ }
179
+ }
180
+ }
181
+ },
182
+ pattern: { key: "IS_NOT_EMPTY" }
183
+ }
184
+ }
185
+ ],
186
+ actions: [
187
+ {
188
+ id: "1",
189
+ key: "SET_FIELD_DEFAULT_VALUE",
190
+ condition: "1",
191
+ props: {
192
+ fieldKey: String(`${item.key}`),
193
+ value: {
194
+ source: {
195
+ key: "OBJECT",
196
+ props: {
197
+ object: {
198
+ key: "ALL_FORMS_DATA",
199
+ path: String(`$.${this.formKey}.${item.key}`)
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+ ]
207
+ }
208
+ }
209
+ ]
210
+ }
211
+ };
212
+ }
213
+ else {
214
+ item.default = {
215
+ value: {
216
+ is_found: false,
217
+ value: "",
218
+ sources: []
219
+ }
220
+ };
221
+ }
222
+ return item;
223
+ });
224
+ const finalFormConfig = {
225
+ key: this.formKey,
226
+ title: this.formTitle,
227
+ fields: finalFields
228
+ };
229
+ localStorage.setItem("rendererFormConfig", JSON.stringify(finalFormConfig));
230
+ localStorage.setItem("builderFormConfig", JSON.stringify({
231
+ key: this.formKey,
232
+ title: this.formTitle,
233
+ fields: this.formElementsDropList
234
+ }));
235
+ console.log(finalFormConfig);
236
+ console.log(this.formElementsDropList);
126
237
  }
127
238
  }
128
239
  /** @nocollapse */ KwikIDFormsBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
129
- /** @nocollapse */ KwikIDFormsBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilderComponent, selector: "kwikid-forms-builder", ngImport: i0, template: "<!-- <div>{{ name }}</div>\n<p>Start editing to see some magic happen :)</p>\n\n<button (click)=\"getJSON()\">Get JSON</button>\n\n<div class=\"drap-copy\">\n <div>\n <ul\n class=\"menu\"\n cdkDropList\n #menuList=\"cdkDropList\"\n [cdkDropListData]=\"menu\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[tableList]\"\n (cdkDropListDropped)=\"drop($event)\"\n (cdkDropListExited)=\"exited($event)\"\n (cdkDropListEntered)=\"entered()\"\n >\n <li class=\"item\" *ngFor=\"let item of menu\" cdkDrag [cdkDragData]=\"item\">\n <div class=\"item\" *cdkDragPlaceholder>\n <a>{{ item.title }}</a>\n </div>\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\n </li>\n </ul>\n </div>\n\n <div\n class=\"table\"\n cdkDropList\n #tableList=\"cdkDropList\"\n [cdkDropListData]=\"table\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"content\">\n <div>\n <div class=\"item\" *ngFor=\"let item of table; let idx = index\" cdkDrag>\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\n <div class=\"item-header\">\n <p>{{ idx }}--{{ item.title }}</p>\n <button (click)=\"removeElement(idx, item.id)\">Remove</button>\n </div>\n <div class=\"desc\">\n <div>id - {{ item.id }}</div>\n <div>key - {{ item.key }}</div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"formModal; context: item\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ng-template #formModal let-component=\"component\" let-props=\"props\" let-id=\"id\">\n <div class=\"field_editor\">\n <div *ngFor=\"let i of props | keyvalue; let idx = index\">\n <div class=\"formModalInputGroup\">\n <label>{{ i.key }}</label>\n <input\n value=\"{{ i.value }}\"\n (keyup)=\"handleOnChange($event, id, i.key, idx)\"\n />\n </div>\n </div>\n </div>\n</ng-template> -->\n", styles: [":host{--padding: 1rem;--border: 1px solid #e8e8e8}ul,li{list-style:none}*{margin:0;padding:0}p{font-family:Lato}.item{margin-bottom:12px;padding:var(--padding);border:var(--border);background:#fff;cursor:move;display:flex;flex-direction:column;grid-row-gap:.5rem;row-gap:.5rem}.item-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;align-content:center;grid-column-gap:.5rem;column-gap:.5rem}.table,.menu{padding:var(--padding)}.drap-copy{display:flex;border:var(--border)}.drap-copy>div{flex:1}.drap-copy>div:first-child{border-right:var(--border)}.desc{display:flex;justify-content:space-between;font-size:1em;color:#00000073}.field_editor{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;align-content:center;grid-row-gap:.5rem;row-gap:.5rem}.formModalInputGroup{display:flex;flex-direction:row;align-items:center;justify-content:space-between;align-content:center;grid-column-gap:.5rem;column-gap:.5rem}\n"] });
240
+ /** @nocollapse */ KwikIDFormsBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilderComponent, selector: "kwikid-forms-builder", ngImport: i0, template: "<div class=\"container\">\n <div class=\"wrapper\">\n <div class=\"builder-header\">\n <div class=\"builder-title\">KwikID Form Builder</div>\n <form\n [formGroup]=\"builderFormGroup\"\n class=\"builder-form\"\n >\n <kwikui-input\n [label]=\"'Form Key'\"\n [id]=\"'form_key'\"\n [type]=\"'text'\"\n [formControlName]=\"'formKey'\"\n [formControl]=\"builderFormGroup.controls['formKey']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Key'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'upper'\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-input\n [label]=\"'Form Title'\"\n [id]=\"'form_title'\"\n [type]=\"'text'\"\n [formControlName]=\"'formTitle'\"\n [formControl]=\"builderFormGroup.controls['formTitle']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Title'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'default'\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-button\n [disabled]=\"builderFormGroup.valid\"\n id=\"save_form_btn\"\n label=\"Save Form\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"'rounded'\"\n size=\"m\"\n (onClick)=\"handleOnClickSaveForms($event)\"\n ></kwikui-button>\n </form>\n </div>\n <div class=\"builder-body\">\n <div class=\"form-elements-drag-wrapper\">\n <div\n class=\"form-elements-drag\"\n cdkDropList\n [cdkDropListData]=\"formElementsDragList\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[formElementsList]\"\n (cdkDropListExited)=\"exit($event, 'other')\"\n (cdkDropListEntered)=\"enter($event, 'other')\"\n >\n <ng-container\n *ngFor=\"let formElementDragItem of formElementsDragList\"\n >\n <ng-container *ngIf=\"formElementDragItem.isElement\">\n <div\n class=\"form-element-drag\"\n cdkDrag\n [cdkDragData]=\"formElementDragItem\"\n >\n &#8942;&#8942;&nbsp;&nbsp;{{ formElementDragItem.elementTitle }}\n <!-- <ng-container *ngComponentOutlet=\"formElementDragItem.component\"></ng-container> -->\n </div>\n <div\n class=\"form-element-drag\"\n *cdkDragPlaceholder\n >\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"!formElementDragItem.isElement\">\n <div class=\"form-element-category\">\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div\n class=\"form-elements-drop-wrapper\"\n cdkDropList\n #formElementsList=\"cdkDropList\"\n [cdkDropListData]=\"formElementsDropList\"\n (cdkDropListDropped)=\"drop($event, '')\"\n [cdkDropListEnterPredicate]=\"isElementPredicate\"\n >\n <ng-container\n *ngFor=\"\n let formElementDropItem of formElementsDropList;\n let idx = index\n \"\n >\n <div\n class=\"form-drop-element\"\n cdkDrag\n >\n <div class=\"form-drop-element-grab-symbol\">&#8942;&#8942;</div>\n <div class=\"form-drop-element-main\">\n <div class=\"form-drop-element-header\">\n <div class=\"form-drop-element-title\">\n {{ formElementDropItem.elementTitle }}\n </div>\n <div class=\"form-drop-element-actions\">\n <kwikui-button-icon\n [disabled]=\"false\"\n [id]=\"'edit-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'secondary'\"\n [icon]=\"'tuiIconEdit'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"editElement(idx, formElementDropItem)\"\n ></kwikui-button-icon>\n <kwikui-button-icon\n [disabled]=\"false\"\n [id]=\"'remove-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'accent'\"\n [icon]=\"'tuiIconCloseLarge'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"removeElement(idx, formElementDropItem)\"\n ></kwikui-button-icon>\n <!-- <button\n (click)=\"editElement(idx, formElementDropItem)\"\n title=\"edit element properties\"\n >\n &#9998;\n </button>\n <button\n (click)=\"removeElement(idx, formElementDropItem)\"\n title=\"delete element\"\n >\n &#10006;\n </button> -->\n </div>\n </div>\n <div class=\"form-drop-element-body\"> </div>\n <div class=\"form-drop-element-footer\">\n <div class=\"form-drop-element-id\">\n {{ formElementDropItem.elementId }}\n </div>\n <div class=\"form-drop-element-category\">\n {{ formElementDropItem.elementCategory }}\n </div>\n <div class=\"form-drop-element-type\">\n {{ formElementDropItem.elementType }}\n </div>\n </div>\n <div\n class=\"example-custom-placeholder\"\n *cdkDragPlaceholder\n ></div>\n <!-- <ng-container *ngComponentOutlet=\"formElementDropItem.component\"> </ng-container> -->\n <!-- <ng-container *ngTemplateOutlet=\"formModal; context: formElementDropItem\"></ng-container> -->\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"element-property-editor-wrapper\">\n <element-config-editor\n [elementConfig]=\"elementEditorElementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></element-config-editor>\n </div>\n </div>\n <div class=\"builder-footer\"> &copy; Baiju Dodhia, KwikID </div>\n </div>\n</div>\n", styles: ["kwikid-forms-builder button{align-content:center;align-items:center;background:black;border-color:transparent;box-shadow:0 2px 10px -6px #000;border-radius:1rem;color:#fff;cursor:pointer;display:flex;flex-direction:row;justify-content:center;padding:.5rem;transform:scale(1);transition:.05s ease-in}kwikid-forms-builder button:hover{box-shadow:0 2px 10px -5px #000}kwikid-forms-builder button:active{transform:scale(.98);transition:.05s ease-out}kwikid-forms-builder fieldset{display:flex;flex-direction:column;justify-content:center;align-items:stretch;align-content:center;grid-gap:.5rem;gap:.5rem;padding:.5rem 1rem 1rem;box-shadow:0 2px 10px -6px #000;border:1px solid gray}kwikid-forms-builder input,kwikid-forms-builder select{flex:1;width:100%;border:1px solid black;outline:none;padding:.25rem;overflow-x:auto}kwikid-forms-builder table,kwikid-forms-builder tr,kwikid-forms-builder td{border:1px solid black;padding:.5rem 1rem}\n", ":host{all:unset;position:relative;width:100%;height:100%}.container{width:100%;height:100%;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.container .wrapper{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:space-between;align-items:stretch}.container .wrapper .builder-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:1rem;max-height:max-content;border:1px solid lightgray;box-shadow:0 2px 10px -6px #000}.container .wrapper .builder-header .builder-title{font-weight:bold;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center}.container .wrapper .builder-header .builder-form{display:flex;align-content:center;justify-content:flex-end;flex:1;flex-direction:row;align-items:center;grid-gap:1rem;gap:1rem;width:100%}.container .wrapper .builder-header .builder-form kwikui-input{width:16rem}.container .wrapper .builder-body{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:stretch;grid-gap:1rem;gap:1rem;flex:1;padding:1rem;overflow:auto}.container .wrapper .builder-body>*{width:100%;border:1px solid lightgray;overflow:auto;box-shadow:0 2px 10px -6px #000}.container .wrapper .builder-body .form-elements-drag-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;padding:1rem;min-width:16rem;max-width:16rem}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;border-bottom:none}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag .form-element-drag{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:1rem;gap:1rem;border:1px solid lightgray;padding:1rem;cursor:grab;box-shadow:0 2px 10px -6px #000;text-transform:capitalize}.container .wrapper .builder-body .form-elements-drag-wrapper .form-elements-drag .form-element-category{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:1rem;gap:1rem;border-left:.25rem solid blue;padding:.5rem;background:lightblue}.container .wrapper .builder-body .form-elements-drop-wrapper{padding:1rem;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-gap:1rem;gap:1rem;min-width:20rem;max-width:28rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder{display:flex;justify-content:flex-start;justify-items:start;align-items:center;padding:1rem;border:1px solid lightgray;box-shadow:0 2px 10px -6px #000;cursor:grab;flex-direction:row;position:relative;grid-gap:1rem;gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main{flex:1;display:flex;justify-content:space-between;justify-items:start;align-items:stretch;flex-direction:column;width:100%;grid-gap:.5rem;gap:.5rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button{width:1.6rem;height:1.6rem;transform:rotate(90deg)!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:first-child,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:first-child{background-color:#dc143c!important;color:#fff!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:last-child,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-header .form-drop-element-actions button:last-child{background-color:gray!important;color:#fff!important}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-body,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-body{border-top:1px dashed lightgray;border-bottom:1px dashed lightgray}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer{display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;grid-gap:.5rem;gap:.5rem}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-id,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-id{background:orange;padding:0 5px;border-radius:1rem;color:#fff}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-category,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-category{background:blue;padding:0 5px;border-radius:1rem;color:#fff}.container .wrapper .builder-body .form-elements-drop-wrapper .form-drop-element .form-drop-element-main .form-drop-element-footer .form-drop-element-type,.container .wrapper .builder-body .form-elements-drop-wrapper .cdk-drag-placeholder .form-drop-element-main .form-drop-element-footer .form-drop-element-type{background:green;padding:0 5px;border-radius:1rem;color:#fff}.container .wrapper .builder-body .element-property-editor-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;padding:1rem;min-width:20rem;grid-gap:1rem;gap:1rem}.container .wrapper .builder-footer{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:1rem;max-height:30px;border:1px solid lightgray;box-shadow:0 -2px 10px -6px #000;font-weight:bold}.cdk-drag-preview{width:-moz-fit-content;width:fit-content;height:auto;box-sizing:border-box;background-color:transparent;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;cursor:grabbing}.cdk-drag-placeholder{opacity:1}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-custom-placeholder{background:#ccc;border:dotted 3px #999;min-height:60px;transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], components: [{ type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "properties"], outputs: ["getKeyValue"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i1.KwikUIButtonIconComponent, selector: "kwikui-button-icon", inputs: ["disabled", "id", "showLoader", "styles", "class", "type", "appearance", "icon", "shape", "size"], outputs: ["onClick"] }, { type: i2.ElementConfigEditor, selector: "element-config-editor", inputs: ["formKey", "elementConfig"], outputs: ["updateElement"] }], directives: [{ type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "id", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListAutoScrollDisabled", "cdkDropListOrientation", "cdkDropListLockAxis", "cdkDropListData", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }] });
241
+ __decorate([
242
+ logMethod
243
+ ], KwikIDFormsBuilderComponent.prototype, "handleGetKeyValue", null);
244
+ __decorate([
245
+ logMethod
246
+ ], KwikIDFormsBuilderComponent.prototype, "drop", null);
247
+ __decorate([
248
+ logMethod
249
+ ], KwikIDFormsBuilderComponent.prototype, "exit", null);
250
+ __decorate([
251
+ logMethod
252
+ ], KwikIDFormsBuilderComponent.prototype, "enter", null);
253
+ __decorate([
254
+ logMethod
255
+ ], KwikIDFormsBuilderComponent.prototype, "removeElement", null);
256
+ __decorate([
257
+ logMethod
258
+ ], KwikIDFormsBuilderComponent.prototype, "editElement", null);
259
+ __decorate([
260
+ logMethod
261
+ ], KwikIDFormsBuilderComponent.prototype, "handleOnSaveUpdateElement", null);
130
262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilderComponent, decorators: [{
131
263
  type: Component,
132
264
  args: [{
133
265
  selector: "kwikid-forms-builder",
134
266
  templateUrl: "./builder.component.html",
135
- styleUrls: ["./builder.component.scss"]
267
+ styleUrls: ["shared/shared.scss", "./builder.component.scss"]
136
268
  }]
137
- }], ctorParameters: function () { return []; } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixnQ0FBZ0MsRUFDakMsTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFnQm5DLE1BQU0sT0FBTywyQkFBMkI7SUF1Q3RDO1FBdENBLG9CQUFlLEdBQUc7WUFDaEIsUUFBUSxFQUFFLEtBQUs7WUFDZixFQUFFLEVBQUUsRUFBRTtZQUNOLEtBQUssRUFBRSxRQUFRO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsTUFBTSxFQUFFLEVBQUU7WUFDVixLQUFLLEVBQUUsc0NBQXNDO1lBQzdDLElBQUksRUFBRSxRQUFRO1lBQ2QsVUFBVSxFQUFFLFNBQVM7WUFDckIsSUFBSSxFQUFFLEVBQUU7WUFDUixTQUFTLEVBQUUsRUFBRTtZQUNiLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLEdBQUc7U0FDVixDQUFDO1FBRUYsK0JBQTBCLEdBQUc7WUFDM0IsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixHQUFHLEVBQUUsR0FBRztZQUNSLElBQUksRUFBRSxHQUFH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QUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxrQ0FDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQ2xCLElBQUksRUFBRSxJQUFJLElBQ1YsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFRO1FBQ2YsT0FBTyxPQUFPLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVcsRUFBRSxFQUFVO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4QixDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7NElBaEtVLDJCQUEyQjtnSUFBM0IsMkJBQTJCLDREQ3hCeEMsZ2tFQW1FQTs0RkQzQ2EsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFdBQVcsRUFBRSwwQkFBMEI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvcHlBcnJheUl0ZW0sIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVkVSU0lPTiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge1xuICBLd2lrVUlCdXR0b25Db21wb25lbnQsXG4gIEt3aWtVSUlucHV0Q29tcG9uZW50LFxuICBLd2lrVUlQcm9ncmVzc1NlZ21lbnRlZENvbXBvbmVudFxufSBmcm9tIFwia3dpa3VpXCI7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tIFwibG9kYXNoXCI7XG5cbnR5cGUgSU1lbnUgPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBrZXk/OiBzdHJpbmc7XG4gIHRlbXA/OiBzdHJpbmc7XG4gIGNvbXBvbmVudD86IGFueTtcbiAgcHJvcHM/OiBhbnk7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwia3dpa2lkLWZvcm1zLWJ1aWxkZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9idWlsZGVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9idWlsZGVyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1zQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGJ1dHRvbkNvbXBvbmVudCA9IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgaWQ6IFwiXCIsXG4gICAgbGFiZWw6IFwiQnV0dG9uXCIsXG4gICAgc2hvd0xvYWRlcjogZmFsc2UsXG4gICAgc3R5bGVzOiBcIlwiLFxuICAgIGNsYXNzOiBcInR1aS1zcGFjZV9yaWdodC0zIHR1aS1zcGFjZV9ib3R0b20tM1wiLFxuICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgYXBwZWFyYW5jZTogXCJwcmltYXJ5XCIsXG4gICAgaWNvbjogXCJcIixcbiAgICBpY29uUmlnaHQ6IFwiXCIsXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogXCJtXCJcbiAgfTtcblxuICBwcm9ncmVzc1NlZ21lbnRlZENvbXBvbmVudCA9IHtcbiAgICBjb2xvcnM6IFwidHVpKC0tdHVpLXByaW1hcnkpXCIsXG4gICAgbWF4OiBcIjVcIixcbiAgICBzaXplOiBcIm1cIixcbiAgICB2YWx1ZTogXCIyXCJcbiAgfTtcblxuICBpbnB1dENvbXBvbmVudCA9IHtcbiAgICBjYXNlOiBcImRlZmF1bHRcIixcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZm9jdXM6IGZhbHNlLFxuICAgIGlkOiBcImlkXCIsXG4gICAgaW52YWxpZDogZmFsc2UsXG4gICAgbGFiZWw6IFwibGFiZWxcIixcbiAgICBwbGFjZWhvbGRlcjogXCJwbGFjZWhvbGRlclwiLFxuICAgIHR5cGU6IFwidGV4dFwiLFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfVxuICB9O1xuXG4gIGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBmb3IgKGxldCBtIG9mIHRoaXMubWVudSkge1xuICAgICAgbS5pZCA9IHRoaXMucmV2aXNlZFJhbmRJZCgpO1xuICAgIH1cbiAgfVxuXG4gIHJldmlzZWRSYW5kSWQoKSB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKClcbiAgICAgIC50b1N0cmluZygzNilcbiAgICAgIC5yZXBsYWNlKC9bXmEtel0rL2csIFwiXCIpO1xuICB9XG5cbiAgaGFuZGxlT25DaGFuZ2UoXG4gICAgZXZlbnQ6IHsgdGFyZ2V0OiB7IHZhbHVlOiBhbnkgfSB9LFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAga2V5OiBzdHJpbmcgfCBudW1iZXIsXG4gICAgaWR4OiBhbnlcbiAgKSB7XG4gICAgY29uc3QgX3ZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW2lkXVtcImNvbnRyb2xzXCJdW2tleV0ucGF0Y2hWYWx1ZShfdmFsdWUpO1xuICB9XG5cbiAgdG9nZ2xlU2hvdyhpZDogYW55KSB7XG4gICAgY29uc29sZS5sb2coaWQpO1xuICB9XG5cbiAgbmFtZSA9IFwiQW5ndWxhciBcIiArIFZFUlNJT04ubWFqb3I7XG4gIG1lbnU6IEFycmF5PElNZW51PiA9IFtcbiAgICB7XG4gICAgICB0aXRsZTogXCJidXR0b25cIixcbiAgICAgIGtleTogXCJidXR0b25cIixcbiAgICAgIGNvbXBvbmVudDogS3dpa1VJQnV0dG9uQ29tcG9uZW50LFxuICAgICAgcHJvcHM6IHRoaXMuYnV0dG9uQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogXCJwcm9ncmVzcy1zZWdtZW50ZWRcIixcbiAgICAgIGtleTogXCJwcm9ncmVzc19zZWdtZW50ZWRcIixcbiAgICAgIGNvbXBvbmVudDogS3dpa1VJUHJvZ3Jlc3NTZWdtZW50ZWRDb21wb25lbnQsXG4gICAgICBwcm9wczogdGhpcy5wcm9ncmVzc1NlZ21lbnRlZENvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IFwiaW5wdXRcIixcbiAgICAgIGtleTogXCJpbnB1dFwiLFxuICAgICAgY29tcG9uZW50OiBLd2lrVUlJbnB1dENvbXBvbmVudCxcbiAgICAgIHByb3BzOiB0aGlzLmlucHV0Q29tcG9uZW50XG4gICAgfVxuICBdO1xuICB0YWJsZTogQXJyYXk8SU1lbnU+ID0gW107XG5cbiAgZHJvcChldmVudDogYW55KSB7XG4gICAgLy8gbGV0IGl0ZW0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGV2ZW50KSk7XG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyICE9PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiY29weWluZ1wiKTtcblxuICAgICAgLy8gQ2xvbmUgdGhlIGl0ZW0gdGhhdCB3YXMgZHJvcHBlZC5cbiAgICAgIGxldCBjbG9uZSA9IGNsb25lRGVlcChldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhW2V2ZW50LnByZXZpb3VzSW5kZXhdKTtcbiAgICAgIGNsb25lLmlkID0gY2xvbmUua2V5ICsgXCJfX1wiICsgdGhpcy5yZXZpc2VkUmFuZElkKCk7XG4gICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhW2V2ZW50LnByZXZpb3VzSW5kZXhdID0gY2xvbmU7XG5cbiAgICAgIGxldCBuZXdGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICAgICAgY29uc3QgcHJvcHMgPSBjbG9uZS5wcm9wcztcblxuICAgICAgT2JqZWN0LmtleXMocHJvcHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBuZXdGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHByb3BzW2tleV0sIGRpc2FibGVkOiBmYWxzZSB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woY2xvbmUuaWQsIG5ld0Zvcm1Hcm91cCk7XG5cbiAgICAgIGNvcHlBcnJheUl0ZW0oXG4gICAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKFwibW92aW5nXCIpO1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSkge1xuICAgICAgdGhpcy5tZW51ID0gdGhpcy5tZW51LmZpbHRlcigoZikgPT4gIWYudGVtcCk7XG4gICAgfVxuICB9XG5cbiAgZXhpdGVkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBjdXJyZW50SWR4ID0gZXZlbnQuY29udGFpbmVyLmRhdGEuZmluZEluZGV4KFxuICAgICAgKGY6IHsgaWQ6IGFueSB9KSA9PiBmLmlkID09PSBldmVudC5pdGVtLmRhdGEuaWRcbiAgICApO1xuICAgIHRoaXMubWVudS5zcGxpY2UoY3VycmVudElkeCArIDEsIDAsIHtcbiAgICAgIC4uLmV2ZW50Lml0ZW0uZGF0YSxcbiAgICAgIHRlbXA6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIGVudGVyZWQoKSB7XG4gICAgdGhpcy5tZW51ID0gdGhpcy5tZW51LmZpbHRlcigoZikgPT4gIWYudGVtcCk7XG4gIH1cblxuICBpc051bWJlcih2YWw6IGFueSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsO1xuICB9XG5cbiAgcmVtb3ZlRWxlbWVudChpZHg6IG51bWJlciwgaWQ6IHN0cmluZykge1xuICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woaWQpO1xuICAgIHRoaXMudGFibGUuc3BsaWNlKGlkeCwgMSk7XG4gIH1cblxuICBnZXRKU09OKCkge1xuICAgIGZvciAobGV0IHQgb2YgdGhpcy50YWJsZSkge1xuICAgICAgdC5wcm9wcyA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKClbdC5pZF07XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKHRoaXMudGFibGUpO1xuICB9XG59XG4iLCI8IS0tIDxkaXY+e3sgbmFtZSB9fTwvZGl2PlxuPHA+U3RhcnQgZWRpdGluZyB0byBzZWUgc29tZSBtYWdpYyBoYXBwZW4gOik8L3A+XG5cbjxidXR0b24gKGNsaWNrKT1cImdldEpTT04oKVwiPkdldCBKU09OPC9idXR0b24+XG5cbjxkaXYgY2xhc3M9XCJkcmFwLWNvcHlcIj5cbiAgPGRpdj5cbiAgICA8dWxcbiAgICAgIGNsYXNzPVwibWVudVwiXG4gICAgICBjZGtEcm9wTGlzdFxuICAgICAgI21lbnVMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJtZW51XCJcbiAgICAgIGNka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXG4gICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbdGFibGVMaXN0XVwiXG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgICAoY2RrRHJvcExpc3RFeGl0ZWQpPVwiZXhpdGVkKCRldmVudClcIlxuICAgICAgKGNka0Ryb3BMaXN0RW50ZXJlZCk9XCJlbnRlcmVkKClcIlxuICAgID5cbiAgICAgIDxsaSBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51XCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpjZGtEcmFnUGxhY2Vob2xkZXI+XG4gICAgICAgICAgPGE+e3sgaXRlbS50aXRsZSB9fTwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiaXRlbS5jb21wb25lbnRcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInRhYmxlXCJcbiAgICBjZGtEcm9wTGlzdFxuICAgICN0YWJsZUxpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJ0YWJsZVwiXG4gICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGFibGU7IGxldCBpZHggPSBpbmRleFwiIGNka0RyYWc+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJpdGVtLmNvbXBvbmVudFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxwPnt7IGlkeCB9fS0te3sgaXRlbS50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlbW92ZUVsZW1lbnQoaWR4LCBpdGVtLmlkKVwiPlJlbW92ZTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+XG4gICAgICAgICAgICA8ZGl2PmlkIC0ge3sgaXRlbS5pZCB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdj5rZXkgLSB7eyBpdGVtLmtleSB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9ybU1vZGFsOyBjb250ZXh0OiBpdGVtXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2Zvcm1Nb2RhbCBsZXQtY29tcG9uZW50PVwiY29tcG9uZW50XCIgbGV0LXByb3BzPVwicHJvcHNcIiBsZXQtaWQ9XCJpZFwiPlxuICA8ZGl2IGNsYXNzPVwiZmllbGRfZWRpdG9yXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaSBvZiBwcm9wcyB8IGtleXZhbHVlOyBsZXQgaWR4ID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtTW9kYWxJbnB1dEdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD57eyBpLmtleSB9fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHZhbHVlPVwie3sgaS52YWx1ZSB9fVwiXG4gICAgICAgICAgKGtleXVwKT1cImhhbmRsZU9uQ2hhbmdlKCRldmVudCwgaWQsIGkua2V5LCBpZHgpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+IC0tPlxuIl19
269
+ }], ctorParameters: function () { return []; }, propDecorators: { handleGetKeyValue: [], drop: [], exit: [], enter: [], removeElement: [], editElement: [], handleOnSaveUpdateElement: [] } });
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBT2pELE1BQU0sT0FBTywyQkFBMkI7SUFpQnRDO1FBaEJBLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixxQkFBZ0IsR0FBYyxTQUFTLENBQUM7UUFFeEMsa0JBQWEsR0FBZSxJQUFJLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNqRCxxQkFBZ0IsR0FBZSxJQUFJLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN4RCxrQkFBYSxHQUFlLElBQUksUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2xELHFCQUFnQixHQUFlLElBQUksUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBRXhELG9CQUFlLEdBQVEsSUFBSSxRQUFR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QUFDO1lBQ2IsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUztZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtTQUNsQyxDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs0SUFoU1UsMkJBQTJCO2dJQUEzQiwyQkFBMkIsNERDckJ4Qyx5L05BMExBO0FEdEVFO0lBREMsU0FBUztvRUFRVDtBQUdEO0lBREMsU0FBUzt1REFtQ1Q7QUFHRDtJQURDLFNBQVM7dURBQ2tDO0FBRzVDO0lBREMsU0FBUzt3REFDbUM7QUFRN0M7SUFEQyxTQUFTO2dFQUdUO0FBR0Q7SUFEQyxTQUFTOzhEQUdUO0FBR0Q7SUFEQyxTQUFTOzRFQUM4Qjs0RkFuSzdCLDJCQUEyQjtrQkFMdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSwwQkFBMEIsQ0FBQztpQkFDOUQ7MEVBZ0dDLGlCQUFpQixNQVVqQixJQUFJLE1BcUNKLElBQUksTUFHSixLQUFLLE1BUUwsYUFBYSxNQUtiLFdBQVcsTUFLWCx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDZGtEcmFnLFxuICBjb3B5QXJyYXlJdGVtLFxuICBtb3ZlSXRlbUluQXJyYXlcbn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7XG4gIGdldE9iamVjdEZyb21Mb2NhbFN0b3JhZ2UsXG4gIGlzRW1wdHlWYWx1ZSxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBsb2dNZXRob2Rcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBFbGVtZW50cyB9IGZyb20gXCIuL3NoYXJlZC9lbGVtZW50c1wiO1xuaW1wb3J0IHsgcmV2aXNlZFJhbmRJZCB9IGZyb20gXCIuL3NoYXJlZC9oZWxwZXJzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrd2lraWQtZm9ybXMtYnVpbGRlclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2J1aWxkZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCJzaGFyZWQvc2hhcmVkLnNjc3NcIiwgXCIuL2J1aWxkZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgS3dpa0lERm9ybXNCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybUtleTogc3RyaW5nID0gXCJcIjtcbiAgZm9ybVRpdGxlOiBzdHJpbmcgPSBcIlwiO1xuICBidWlsZGVyRm9ybUdyb3VwOiBGb3JtR3JvdXAgPSB1bmRlZmluZWQ7XG5cbiAgYmFzaWNFbGVtZW50czogQXJyYXk8YW55PiA9IG5ldyBFbGVtZW50cygpLmJhc2ljO1xuICBkb2N1bWVudEVsZW1lbnRzOiBBcnJheTxhbnk+ID0gbmV3IEVsZW1lbnRzKCkuZG9jdW1lbnRzO1xuICBvdGhlckVsZW1lbnRzOiBBcnJheTxhbnk+ID0gbmV3IEVsZW1lbnRzKCkub3RoZXJzO1xuICB0ZW1wbGF0ZUVsZW1lbnRzOiBBcnJheTxhbnk+ID0gbmV3IEVsZW1lbnRzKCkudGVtcGxhdGVzO1xuXG4gIGVsZW1lbnRzTWFwcGluZzogYW55ID0gbmV3IEVsZW1lbnRzKCkuZWxlbWVudE1hcHBpbmc7XG5cbiAgZm9ybUVsZW1lbnRzRHJhZ0xpc3Q6IEFycmF5PGFueT4gPSBbXTtcbiAgZm9ybUVsZW1lbnRzRHJvcExpc3Q6IEFycmF5PGFueT4gPSBbXTtcblxuICBlbGVtZW50RWRpdG9yRWxlbWVudENvbmZpZzogYW55ID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYnVpbGRlckZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgZm9ybUtleTogbmV3IEZvcm1Db250cm9sKFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBmb3JtVGl0bGU6IG5ldyBGb3JtQ29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgfSk7XG5cbiAgICBjb25zdCBmb3JtRHJvcENvbmZpZyA9IGdldE9iamVjdEZyb21Mb2NhbFN0b3JhZ2UoXCJmb3JtRHJvcENvbmZpZ1wiKTtcblxuICAgIGlmIChpc05vdEVtcHR5VmFsdWUoZm9ybURyb3BDb25maWcpKSB7XG4gICAgICB0aGlzLmZvcm1LZXkgPSBmb3JtRHJvcENvbmZpZy5rZXk7XG4gICAgICB0aGlzLmZvcm1UaXRsZSA9IGZvcm1Ecm9wQ29uZmlnLnRpdGxlO1xuICAgICAgY29uc3QgZm9ybUZpZWxkcyA9IGZvcm1Ecm9wQ29uZmlnLmZpZWxkcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgaXRlbS5lbGVtZW50SWQgPSByZXZpc2VkUmFuZElkKCk7XG4gICAgICAgIGl0ZW0uZWxlbWVudENhdGVnb3J5ID0gdGhpcy5lbGVtZW50c01hcHBpbmcuYmFzaWMuaW5jbHVkZXMoaXRlbS50eXBlKVxuICAgICAgICAgID8gXCJiYXNpY1wiXG4gICAgICAgICAgOiB0aGlzLmVsZW1lbnRzTWFwcGluZy5kb2N1bWVudHMuaW5jbHVkZXMoaXRlbS50eXBlKVxuICAgICAgICAgID8gXCJkb2N1bWVudFwiXG4gICAgICAgICAgOiBcIm90aGVyc1wiO1xuICAgICAgICBpdGVtLmVsZW1lbnRUeXBlID1cbiAgICAgICAgICBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJiYXNpY1wiIHx8XG4gICAgICAgICAgaXRlbS5lbGVtZW50Q2F0ZWdvcnkgPT09IFwiZG9jdW1lbnRcIlxuICAgICAgICAgICAgPyBpdGVtLnR5cGVcbiAgICAgICAgICAgIDogU3RyaW5nKGBOQTw+JHtpdGVtLnR5cGV9YCk7XG4gICAgICAgIGl0ZW0uaXNFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZWxlbWVudEZpbHRlcmVkID1cbiAgICAgICAgICBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJiYXNpY1wiXG4gICAgICAgICAgICA/IHRoaXMuYmFzaWNFbGVtZW50cy5maW5kKFxuICAgICAgICAgICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50LmVsZW1lbnRUeXBlID09PSBpdGVtLnR5cGVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJkb2N1bWVudFwiXG4gICAgICAgICAgICA/IHRoaXMuZG9jdW1lbnRFbGVtZW50cy5maW5kKFxuICAgICAgICAgICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50LmVsZW1lbnRUeXBlID09PSBpdGVtLnR5cGVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJvdGhlcnNcIlxuICAgICAgICAgICAgPyB0aGlzLm90aGVyRWxlbWVudHMuZmluZChcbiAgICAgICAgICAgICAgICAoZWxlbWVudCkgPT4gZWxlbWVudC5lbGVtZW50VHlwZSA9PT0gaXRlbS50eXBlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50RmlsdGVyZWQpO1xuICAgICAgICBpdGVtLmVsZW1lbnRUaXRsZSA9IGlzRW1wdHlWYWx1ZShlbGVtZW50RmlsdGVyZWQpXG4gICAgICAgICAgPyBpdGVtLmVsZW1lbnRDYXRlZ29yeSArIFwiOjpcIiArIGl0ZW0uZWxlbWVudFR5cGVcbiAgICAgICAgICA6IGVsZW1lbnRGaWx0ZXJlZC5lbGVtZW50VGl0bGU7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5mb3JtRWxlbWVudHNEcm9wTGlzdCA9IGZvcm1GaWVsZHM7XG5cbiAgICAgIGNvbnNvbGUubG9nKGZvcm1GaWVsZHMpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzRHJhZ0xpc3QgPSBbXG4gICAgICB7IGlzRWxlbWVudDogZmFsc2UsIGVsZW1lbnRUaXRsZTogXCJCYXNpYyBFbGVtZW50c1wiIH0sXG4gICAgICAuLi50aGlzLmJhc2ljRWxlbWVudHMsXG4gICAgICB7IGlzRWxlbWVudDogZmFsc2UsIGVsZW1lbnRUaXRsZTogXCJEb2N1bWVudCBFbGVtZW50c1wiIH0sXG4gICAgICAuLi50aGlzLmRvY3VtZW50RWxlbWVudHMsXG4gICAgICB7IGlzRWxlbWVudDogZmFsc2UsIGVsZW1lbnRUaXRsZTogXCJPdGhlciBFbGVtZW50c1wiIH0sXG4gICAgICAuLi50aGlzLm90aGVyRWxlbWVudHNcbiAgICBdO1xuXG4gICAgZm9yIChsZXQgZm9ybUVsZW1lbnRzRHJhZ0l0ZW0gb2YgdGhpcy5mb3JtRWxlbWVudHNEcmFnTGlzdCkge1xuICAgICAgZm9ybUVsZW1lbnRzRHJhZ0l0ZW0uZWxlbWVudElkID0gcmV2aXNlZFJhbmRJZCgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU9uQ2hhbmdlKFxuICAgIGV2ZW50OiB7IHRhcmdldDogeyB2YWx1ZTogYW55IH0gfSxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIGtleTogc3RyaW5nIHwgbnVtYmVyLFxuICAgIGlkeDogYW55XG4gICkge1xuICAgIGNvbnN0IF92YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgfVxuXG4gIC8vIERPTSBFdmVudCBIYW5kbGVyc1xuICBAbG9nTWV0aG9kXG4gIGhhbmRsZUdldEtleVZhbHVlKGU6IGFueSkge1xuICAgIHRoaXMuYnVpbGRlckZvcm1Hcm91cC5wYXRjaFZhbHVlKFxuICAgICAge1xuICAgICAgICBbZS5rZXldOiBlLnZhbHVlXG4gICAgICB9LFxuICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cbiAgICApO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBkcm9wKGV2ZW50OiBhbnksIGVsZW1lbnRDYXRlZ29yeTogc3RyaW5nKSB7XG4gICAgLy8gbGV0IGl0ZW0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGV2ZW50KSk7XG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyICE9PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiY29weWluZ1wiKTtcbiAgICAgIGlmIChldmVudC5pdGVtLmRhdGEuaXNFbGVtZW50KSB7XG4gICAgICAgIC8vIENsb25lIHRoZSBpdGVtIHRoYXQgd2FzIGRyb3BwZWQuXG4gICAgICAgIGNvbnN0IGRyYWdnZWRJdGVtSW5kZXggPSB0aGlzLmZvcm1FbGVtZW50c0RyYWdMaXN0LmZpbmRJbmRleCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpdGVtLmVsZW1lbnRJZCA9PT0gZXZlbnQuaXRlbS5kYXRhLmVsZW1lbnRJZDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29weUFycmF5SXRlbShcbiAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50c0RyYWdMaXN0LFxuICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnRzRHJvcExpc3QsXG4gICAgICAgICAgZHJhZ2dlZEl0ZW1JbmRleCxcbiAgICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmZvcm1FbGVtZW50c0RyYWdMaXN0ID0gSlNPTi5wYXJzZShcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnRzRHJhZ0xpc3QubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgIGl0ZW0uZWxlbWVudElkID0gcmV2aXNlZFJhbmRJZCgpO1xuICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhcIm1vdmluZ1wiKTtcbiAgICAgIG1vdmVJdGVtSW5BcnJheShcbiAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGV4aXQoZXZlbnQ6IGFueSwgZWxlbWVudENhdGVnb3J5OiBzdHJpbmcpIHt9XG5cbiAgQGxvZ01ldGhvZFxuICBlbnRlcihldmVudDogYW55LCBlbGVtZW50Q2F0ZWdvcnk6IHN0cmluZykge31cblxuICAvKiogUHJlZGljYXRlIGZ1bmN0aW9uIHRoYXQgb25seSBhbGxvd3MgaXNFbGVtZW50OiB0cnVlIGl0ZW1zIHRvIGJlIGRyb3BwZWQgaW50byBhIGxpc3QuICovXG4gIGlzRWxlbWVudFByZWRpY2F0ZShpdGVtOiBDZGtEcmFnPGFueT4pIHtcbiAgICByZXR1cm4gaXRlbS5kYXRhLmlzRWxlbWVudDtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgcmVtb3ZlRWxlbWVudChpZHg6IG51bWJlciwgaWQ6IHN0cmluZykge1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzRHJvcExpc3Quc3BsaWNlKGlkeCwgMSk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGVkaXRFbGVtZW50KGlkeDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcbiAgICB0aGlzLmVsZW1lbnRFZGl0b3JFbGVtZW50Q29uZmlnID0gaXRlbTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgaGFuZGxlT25TYXZlVXBkYXRlRWxlbWVudChldmVudDogYW55KSB7fVxuXG4gIGhhbmRsZU9uQ2xpY2tTYXZlRm9ybXMoZXZlbnQ6IGFueSkge1xuICAgIGlmIChpc0VtcHR5VmFsdWUodGhpcy5mb3JtS2V5KSkge1xuICAgICAgd2luZG93LmFsZXJ0KFwiUGxlYXNlIHByb3ZpZGUgRm9ybSBLZXlcIik7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUtleSA9IHRoaXMuZm9ybUtleS5yZXBsYWNlKC9cXHMvZywgXCJfXCIpLnRvTG9jYWxlVXBwZXJDYXNlKCk7XG4gICAgfVxuICAgIGlmIChpc0VtcHR5VmFsdWUodGhpcy5mb3JtVGl0bGUpKSB7XG4gICAgICB3aW5kb3cuYWxlcnQoXCJQbGVhc2UgcHJvdmlkZSBGb3JtIFRpdGxlXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBmaW5hbEZpZWxkcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRWxlbWVudHNEcm9wTGlzdCkpO1xuICAgIGZpbmFsRmllbGRzID0gZmluYWxGaWVsZHMubWFwKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5lbGVtZW50VHlwZS5zdGFydHNXaXRoKFwiTkE8PlwiLCAwKSkge1xuICAgICAgICBkZWxldGUgaXRlbS5lbGVtZW50SWQ7XG4gICAgICAgIGRlbGV0ZSBpdGVtLmVsZW1lbnRUeXBlO1xuICAgICAgICBkZWxldGUgaXRlbS5lbGVtZW50VGl0bGU7XG4gICAgICAgIGRlbGV0ZSBpdGVtLmVsZW1lbnRDYXRlZ29yeTtcbiAgICAgICAgZGVsZXRlIGl0ZW0uaXNFbGVtZW50O1xuXG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfVxuICAgICAgZGVsZXRlIGl0ZW0uZWxlbWVudElkO1xuICAgICAgZGVsZXRlIGl0ZW0uZWxlbWVudFR5cGU7XG4gICAgICBkZWxldGUgaXRlbS5lbGVtZW50VGl0bGU7XG4gICAgICBkZWxldGUgaXRlbS5lbGVtZW50Q2F0ZWdvcnk7XG4gICAgICBkZWxldGUgaXRlbS5pc0VsZW1lbnQ7XG5cbiAgICAgIGlmIChpdGVtLmRlZmF1bHQudmFsdWUpIHtcbiAgICAgICAgaXRlbS5kZWZhdWx0ID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgIHNvdXJjZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogXCJPQkpFQ1RcIixcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogXCJBTExfRk9STVNfREFUQVwiLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBTdHJpbmcoYCQuJHt0aGlzLmZvcm1LZXl9LiR7aXRlbS5rZXl9YClcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgICAgICAgICAgIGlzX3ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9JTklUXCJdLFxuICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiVkFMVUVfQ0hFQ0tcIixcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIk9CSkVDVFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIkFMTF9GT1JNU19EQVRBXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFN0cmluZyhgJC4ke3RoaXMuZm9ybUtleX0uJHtpdGVtLmtleX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IHsga2V5OiBcIklTX05PVF9FTVBUWVwiIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAga2V5OiBcIlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFXCIsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRLZXk6IFN0cmluZyhgJHtpdGVtLmtleX1gKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCJPQkpFQ1RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCJBTExfRk9STVNfREFUQVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBTdHJpbmcoYCQuJHt0aGlzLmZvcm1LZXl9LiR7aXRlbS5rZXl9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtLmRlZmF1bHQgPSB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgc291cmNlczogW11cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbmFsRm9ybUNvbmZpZyA9IHtcbiAgICAgIGtleTogdGhpcy5mb3JtS2V5LFxuICAgICAgdGl0bGU6IHRoaXMuZm9ybVRpdGxlLFxuICAgICAgZmllbGRzOiBmaW5hbEZpZWxkc1xuICAgIH07XG5cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcInJlbmRlcmVyRm9ybUNvbmZpZ1wiLCBKU09OLnN0cmluZ2lmeShmaW5hbEZvcm1Db25maWcpKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgIFwiYnVpbGRlckZvcm1Db25maWdcIixcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAga2V5OiB0aGlzLmZvcm1LZXksXG4gICAgICAgIHRpdGxlOiB0aGlzLmZvcm1UaXRsZSxcbiAgICAgICAgZmllbGRzOiB0aGlzLmZvcm1FbGVtZW50c0Ryb3BMaXN0XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBjb25zb2xlLmxvZyhmaW5hbEZvcm1Db25maWcpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybUVsZW1lbnRzRHJvcExpc3QpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1aWxkZXItaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnVpbGRlci10aXRsZVwiPkt3aWtJRCBGb3JtIEJ1aWxkZXI8L2Rpdj5cbiAgICAgIDxmb3JtXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiYnVpbGRlckZvcm1Hcm91cFwiXG4gICAgICAgIGNsYXNzPVwiYnVpbGRlci1mb3JtXCJcbiAgICAgID5cbiAgICAgICAgPGt3aWt1aS1pbnB1dFxuICAgICAgICAgIFtsYWJlbF09XCInRm9ybSBLZXknXCJcbiAgICAgICAgICBbaWRdPVwiJ2Zvcm1fa2V5J1wiXG4gICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidmb3JtS2V5J1wiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImJ1aWxkZXJGb3JtR3JvdXAuY29udHJvbHNbJ2Zvcm1LZXknXVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBlbnRlciBhIEZvcm0gS2V5J1wiXG4gICAgICAgICAgW2ZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgICBbaW52YWxpZF09XCJmYWxzZVwiXG4gICAgICAgICAgW2Nhc2VdPVwiJ3VwcGVyJ1wiXG4gICAgICAgICAgKGdldEtleVZhbHVlKT1cImhhbmRsZUdldEtleVZhbHVlKCRldmVudClcIlxuICAgICAgICA+PC9rd2lrdWktaW5wdXQ+XG4gICAgICAgIDxrd2lrdWktaW5wdXRcbiAgICAgICAgICBbbGFiZWxdPVwiJ0Zvcm0gVGl0bGUnXCJcbiAgICAgICAgICBbaWRdPVwiJ2Zvcm1fdGl0bGUnXCJcbiAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2Zvcm1UaXRsZSdcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJidWlsZGVyRm9ybUdyb3VwLmNvbnRyb2xzWydmb3JtVGl0bGUnXVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBlbnRlciBhIEZvcm0gVGl0bGUnXCJcbiAgICAgICAgICBbZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgICBbY2FzZV09XCInZGVmYXVsdCdcIlxuICAgICAgICAgIChnZXRLZXlWYWx1ZSk9XCJoYW5kbGVHZXRLZXlWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgPjwva3dpa3VpLWlucHV0PlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJidWlsZGVyRm9ybUdyb3VwLnZhbGlkXCJcbiAgICAgICAgICBpZD1cInNhdmVfZm9ybV9idG5cIlxuICAgICAgICAgIGxhYmVsPVwiU2F2ZSBGb3JtXCJcbiAgICAgICAgICBbc2hvd0xvYWRlcl09XCJmYWxzZVwiXG4gICAgICAgICAgc3R5bGVzPVwiXCJcbiAgICAgICAgICBjbGFzcz1cIlwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgYXBwZWFyYW5jZT1cInByaW1hcnlcIlxuICAgICAgICAgIGljb249XCJcIlxuICAgICAgICAgIGljb25SaWdodD1cIlwiXG4gICAgICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2tTYXZlRm9ybXMoJGV2ZW50KVwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJ1aWxkZXItYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZWxlbWVudHMtZHJhZy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZvcm0tZWxlbWVudHMtZHJhZ1wiXG4gICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImZvcm1FbGVtZW50c0RyYWdMaXN0XCJcbiAgICAgICAgICBjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZFxuICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltmb3JtRWxlbWVudHNMaXN0XVwiXG4gICAgICAgICAgKGNka0Ryb3BMaXN0RXhpdGVkKT1cImV4aXQoJGV2ZW50LCAnb3RoZXInKVwiXG4gICAgICAgICAgKGNka0Ryb3BMaXN0RW50ZXJlZCk9XCJlbnRlcigkZXZlbnQsICdvdGhlcicpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmb3JtRWxlbWVudERyYWdJdGVtIG9mIGZvcm1FbGVtZW50c0RyYWdMaXN0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUVsZW1lbnREcmFnSXRlbS5pc0VsZW1lbnRcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1lbGVtZW50LWRyYWdcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiZm9ybUVsZW1lbnREcmFnSXRlbVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAmIzg5NDI7JiM4OTQyOyZuYnNwOyZuYnNwO3t7IGZvcm1FbGVtZW50RHJhZ0l0ZW0uZWxlbWVudFRpdGxlIH19XG4gICAgICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImZvcm1FbGVtZW50RHJhZ0l0ZW0uY29tcG9uZW50XCI+PC9uZy1jb250YWluZXI+IC0tPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1lbGVtZW50LWRyYWdcIlxuICAgICAgICAgICAgICAgICpjZGtEcmFnUGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGZvcm1FbGVtZW50RHJhZ0l0ZW0uZWxlbWVudFRpdGxlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZvcm1FbGVtZW50RHJhZ0l0ZW0uaXNFbGVtZW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnQtY2F0ZWdvcnlcIj5cbiAgICAgICAgICAgICAgICB7eyBmb3JtRWxlbWVudERyYWdJdGVtLmVsZW1lbnRUaXRsZSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZvcm0tZWxlbWVudHMtZHJvcC13cmFwcGVyXCJcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgI2Zvcm1FbGVtZW50c0xpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZm9ybUVsZW1lbnRzRHJvcExpc3RcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCAnJylcIlxuICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJpc0VsZW1lbnRQcmVkaWNhdGVcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgZm9ybUVsZW1lbnREcm9wSXRlbSBvZiBmb3JtRWxlbWVudHNEcm9wTGlzdDtcbiAgICAgICAgICAgIGxldCBpZHggPSBpbmRleFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50XCJcbiAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtZ3JhYi1zeW1ib2xcIj4mIzg5NDI7JiM4OTQyOzwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LW1haW5cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAge3sgZm9ybUVsZW1lbnREcm9wSXRlbS5lbGVtZW50VGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgPGt3aWt1aS1idXR0b24taWNvblxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2VkaXQtZWxlbWVudCdcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0xvYWRlcl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZXNdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIlwiXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIididXR0b24nXCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCIndHVpSWNvbkVkaXQnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImVkaXRFbGVtZW50KGlkeCwgZm9ybUVsZW1lbnREcm9wSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgPjwva3dpa3VpLWJ1dHRvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgPGt3aWt1aS1idXR0b24taWNvblxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3JlbW92ZS1lbGVtZW50J1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlc109XCJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCInYWNjZW50J1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIid0dWlJY29uQ2xvc2VMYXJnZSdcIlxuICAgICAgICAgICAgICAgICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ3MnXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwicmVtb3ZlRWxlbWVudChpZHgsIGZvcm1FbGVtZW50RHJvcEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgID48L2t3aWt1aS1idXR0b24taWNvbj5cbiAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdEVsZW1lbnQoaWR4LCBmb3JtRWxlbWVudERyb3BJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiZWRpdCBlbGVtZW50IHByb3BlcnRpZXNcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAmIzk5OTg7XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUVsZW1lbnQoaWR4LCBmb3JtRWxlbWVudERyb3BJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiZGVsZXRlIGVsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAmIzEwMDA2O1xuICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LWJvZHlcIj4gPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtaWRcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGZvcm1FbGVtZW50RHJvcEl0ZW0uZWxlbWVudElkIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LWNhdGVnb3J5XCI+XG4gICAgICAgICAgICAgICAgICB7eyBmb3JtRWxlbWVudERyb3BJdGVtLmVsZW1lbnRDYXRlZ29yeSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC10eXBlXCI+XG4gICAgICAgICAgICAgICAgICB7eyBmb3JtRWxlbWVudERyb3BJdGVtLmVsZW1lbnRUeXBlIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJleGFtcGxlLWN1c3RvbS1wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgKmNka0RyYWdQbGFjZWhvbGRlclxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJmb3JtRWxlbWVudERyb3BJdGVtLmNvbXBvbmVudFwiPiA8L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvcm1Nb2RhbDsgY29udGV4dDogZm9ybUVsZW1lbnREcm9wSXRlbVwiPjwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImVsZW1lbnQtcHJvcGVydHktZWRpdG9yLXdyYXBwZXJcIj5cbiAgICAgICAgPGVsZW1lbnQtY29uZmlnLWVkaXRvclxuICAgICAgICAgIFtlbGVtZW50Q29uZmlnXT1cImVsZW1lbnRFZGl0b3JFbGVtZW50Q29uZmlnXCJcbiAgICAgICAgICAodXBkYXRlRWxlbWVudCk9XCJoYW5kbGVPblNhdmVVcGRhdGVFbGVtZW50KCRldmVudClcIlxuICAgICAgICA+PC9lbGVtZW50LWNvbmZpZy1lZGl0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYnVpbGRlci1mb290ZXJcIj4gJmNvcHk7IEJhaWp1IERvZGhpYSwgS3dpa0lEIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -2,20 +2,57 @@ import { DragDropModule } from "@angular/cdk/drag-drop";
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { NgModule } from "@angular/core";
4
4
  import { FormsModule, ReactiveFormsModule } from "@angular/forms";
5
+ import { KwikUIButtonIconModule, KwikUIButtonModule, KwikUIInputModule } from "kwikui";
5
6
  import { KwikIDFormsBuilderComponent } from "./builder.component";
7
+ import { BasicElementConfigEditor } from "./element-config-editor/editors/basic-element-config.editor.component";
8
+ import { BasicRadioConfigEditor } from "./element-config-editor/editors/basic/radio-config.editor.component";
9
+ import { BasicTextConfigEditor } from "./element-config-editor/editors/basic/text-config.editor.component";
10
+ import { ElementConfigEditor } from "./element-config-editor/element-config-editor.component";
6
11
  import * as i0 from "@angular/core";
7
12
  export class KwikIDFormBuilderModule {
8
13
  }
9
14
  /** @nocollapse */ KwikIDFormBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- /** @nocollapse */ KwikIDFormBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilderModule, declarations: [KwikIDFormsBuilderComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule], exports: [KwikIDFormsBuilderComponent] });
11
- /** @nocollapse */ KwikIDFormBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilderModule, providers: [], imports: [[CommonModule, FormsModule, ReactiveFormsModule, DragDropModule]] });
15
+ /** @nocollapse */ KwikIDFormBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilderModule, declarations: [KwikIDFormsBuilderComponent,
16
+ ElementConfigEditor,
17
+ BasicElementConfigEditor,
18
+ BasicTextConfigEditor,
19
+ BasicRadioConfigEditor], imports: [CommonModule,
20
+ FormsModule,
21
+ ReactiveFormsModule,
22
+ DragDropModule,
23
+ KwikUIButtonModule,
24
+ KwikUIInputModule,
25
+ KwikUIButtonIconModule], exports: [KwikIDFormsBuilderComponent] });
26
+ /** @nocollapse */ KwikIDFormBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilderModule, providers: [], imports: [[
27
+ CommonModule,
28
+ FormsModule,
29
+ ReactiveFormsModule,
30
+ DragDropModule,
31
+ KwikUIButtonModule,
32
+ KwikUIInputModule,
33
+ KwikUIButtonIconModule
34
+ ]] });
12
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormBuilderModule, decorators: [{
13
36
  type: NgModule,
14
37
  args: [{
15
- declarations: [KwikIDFormsBuilderComponent],
16
- imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule],
38
+ declarations: [
39
+ KwikIDFormsBuilderComponent,
40
+ ElementConfigEditor,
41
+ BasicElementConfigEditor,
42
+ BasicTextConfigEditor,
43
+ BasicRadioConfigEditor
44
+ ],
45
+ imports: [
46
+ CommonModule,
47
+ FormsModule,
48
+ ReactiveFormsModule,
49
+ DragDropModule,
50
+ KwikUIButtonModule,
51
+ KwikUIInputModule,
52
+ KwikUIButtonIconModule
53
+ ],
17
54
  providers: [],
18
55
  exports: [KwikIDFormsBuilderComponent]
19
56
  }]
20
57
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBUWxFLE1BQU0sT0FBTyx1QkFBdUI7O3dJQUF2Qix1QkFBdUI7eUlBQXZCLHVCQUF1QixpQkFMbkIsMkJBQTJCLGFBQ2hDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxhQUU5RCwyQkFBMkI7eUlBRTFCLHVCQUF1QixhQUh2QixFQUFFLFlBREosQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQzs0RkFJOUQsdUJBQXVCO2tCQU5uQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUMzQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQztvQkFDekUsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEt3aWtJREZvcm1zQnVpbGRlckNvbXBvbmVudCB9IGZyb20gXCIuL2J1aWxkZXIuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0t3aWtJREZvcm1zQnVpbGRlckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBEcmFnRHJvcE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW10sXG4gIGV4cG9ydHM6IFtLd2lrSURGb3Jtc0J1aWxkZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1CdWlsZGVyTW9kdWxlIHt9XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2xCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOztBQXNCOUYsTUFBTSxPQUFPLHVCQUF1Qjs7d0lBQXZCLHVCQUF1Qjt5SUFBdkIsdUJBQXVCLGlCQWxCaEMsMkJBQTJCO1FBQzNCLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLHNCQUFzQixhQUd0QixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixzQkFBc0IsYUFHZCwyQkFBMkI7eUlBRTFCLHVCQUF1QixhQUh2QixFQUFFLFlBVEo7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixzQkFBc0I7U0FDdkI7NEZBSVUsdUJBQXVCO2tCQXBCbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixzQkFBc0I7cUJBQ3ZCO29CQUNELFNBQVMsRUFBRSxFQUFFO29CQUNiLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge1xuICBLd2lrVUlCdXR0b25JY29uTW9kdWxlLFxuICBLd2lrVUlCdXR0b25Nb2R1bGUsXG4gIEt3aWtVSUlucHV0TW9kdWxlXG59IGZyb20gXCJrd2lrdWlcIjtcbmltcG9ydCB7IEt3aWtJREZvcm1zQnVpbGRlckNvbXBvbmVudCB9IGZyb20gXCIuL2J1aWxkZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBCYXNpY0VsZW1lbnRDb25maWdFZGl0b3IgfSBmcm9tIFwiLi9lbGVtZW50LWNvbmZpZy1lZGl0b3IvZWRpdG9ycy9iYXNpYy1lbGVtZW50LWNvbmZpZy5lZGl0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBCYXNpY1JhZGlvQ29uZmlnRWRpdG9yIH0gZnJvbSBcIi4vZWxlbWVudC1jb25maWctZWRpdG9yL2VkaXRvcnMvYmFzaWMvcmFkaW8tY29uZmlnLmVkaXRvci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJhc2ljVGV4dENvbmZpZ0VkaXRvciB9IGZyb20gXCIuL2VsZW1lbnQtY29uZmlnLWVkaXRvci9lZGl0b3JzL2Jhc2ljL3RleHQtY29uZmlnLmVkaXRvci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEVsZW1lbnRDb25maWdFZGl0b3IgfSBmcm9tIFwiLi9lbGVtZW50LWNvbmZpZy1lZGl0b3IvZWxlbWVudC1jb25maWctZWRpdG9yLmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBLd2lrSURGb3Jtc0J1aWxkZXJDb21wb25lbnQsXG4gICAgRWxlbWVudENvbmZpZ0VkaXRvcixcbiAgICBCYXNpY0VsZW1lbnRDb25maWdFZGl0b3IsXG4gICAgQmFzaWNUZXh0Q29uZmlnRWRpdG9yLFxuICAgIEJhc2ljUmFkaW9Db25maWdFZGl0b3JcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIEt3aWtVSUJ1dHRvbk1vZHVsZSxcbiAgICBLd2lrVUlJbnB1dE1vZHVsZSxcbiAgICBLd2lrVUlCdXR0b25JY29uTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW10sXG4gIGV4cG9ydHM6IFtLd2lrSURGb3Jtc0J1aWxkZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1CdWlsZGVyTW9kdWxlIHt9XG4iXX0=