@apipass/schemas 1.0.7 → 1.0.9

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 (60) hide show
  1. package/README.md +33 -33
  2. package/base-schema.component.d.ts +12 -12
  3. package/{esm2020 → esm2022}/apipass-schemas.mjs +4 -4
  4. package/esm2022/base-schema.component.mjs +38 -0
  5. package/{esm2020 → esm2022}/public-api.mjs +17 -17
  6. package/esm2022/schema-custom-attributes/schema-custom-attributes.mjs +169 -0
  7. package/esm2022/schema-fields.service.mjs +81 -0
  8. package/esm2022/schema-form/schema-array/array-session/array-session.mjs +141 -0
  9. package/esm2022/schema-form/schema-array/schema-array.mjs +219 -0
  10. package/esm2022/schema-form/schema-form.mjs +107 -0
  11. package/esm2022/schema-form/schema-input/field-render/field-render.mjs +76 -0
  12. package/esm2022/schema-form/schema-input/input-render/boolean-input/boolean-input.component.mjs +51 -0
  13. package/esm2022/schema-form/schema-input/input-render/input-render.mjs +193 -0
  14. package/esm2022/schema-form/schema-input/input-render/number-input/number-input.component.mjs +49 -0
  15. package/esm2022/schema-form/schema-input/schema-input.mjs +95 -0
  16. package/esm2022/schema-form/schema-object/schema-object.mjs +125 -0
  17. package/esm2022/schema-form-render.mjs +126 -0
  18. package/{esm2020 → esm2022}/schema-form-render.module.mjs +109 -108
  19. package/esm2022/schema-validation-field.mjs +18 -0
  20. package/{esm2020 → esm2022}/struct.utils.mjs +9 -9
  21. package/esm2022/type-script-compile/type-script-compile.base.mjs +115 -0
  22. package/{fesm2020 → fesm2022}/apipass-schemas.mjs +1571 -1563
  23. package/fesm2022/apipass-schemas.mjs.map +1 -0
  24. package/index.d.ts +5 -5
  25. package/package.json +15 -21
  26. package/public-api.d.ts +16 -16
  27. package/schema-custom-attributes/schema-custom-attributes.d.ts +21 -21
  28. package/schema-fields.service.d.ts +14 -14
  29. package/schema-form/schema-array/array-session/array-session.d.ts +19 -19
  30. package/schema-form/schema-array/schema-array.d.ts +31 -32
  31. package/schema-form/schema-form.d.ts +31 -31
  32. package/schema-form/schema-input/field-render/field-render.d.ts +16 -16
  33. package/schema-form/schema-input/input-render/boolean-input/boolean-input.component.d.ts +15 -15
  34. package/schema-form/schema-input/input-render/input-render.d.ts +29 -29
  35. package/schema-form/schema-input/input-render/number-input/number-input.component.d.ts +15 -15
  36. package/schema-form/schema-input/schema-input.d.ts +18 -19
  37. package/schema-form/schema-object/schema-object.d.ts +34 -34
  38. package/schema-form-render.d.ts +31 -31
  39. package/schema-form-render.module.d.ts +23 -23
  40. package/schema-validation-field.d.ts +23 -23
  41. package/struct.utils.d.ts +1 -1
  42. package/type-script-compile/type-script-compile.base.d.ts +17 -17
  43. package/esm2020/base-schema.component.mjs +0 -37
  44. package/esm2020/schema-custom-attributes/schema-custom-attributes.mjs +0 -169
  45. package/esm2020/schema-fields.service.mjs +0 -80
  46. package/esm2020/schema-form/schema-array/array-session/array-session.mjs +0 -143
  47. package/esm2020/schema-form/schema-array/schema-array.mjs +0 -220
  48. package/esm2020/schema-form/schema-form.mjs +0 -107
  49. package/esm2020/schema-form/schema-input/field-render/field-render.mjs +0 -69
  50. package/esm2020/schema-form/schema-input/input-render/boolean-input/boolean-input.component.mjs +0 -46
  51. package/esm2020/schema-form/schema-input/input-render/input-render.mjs +0 -192
  52. package/esm2020/schema-form/schema-input/input-render/number-input/number-input.component.mjs +0 -44
  53. package/esm2020/schema-form/schema-input/schema-input.mjs +0 -96
  54. package/esm2020/schema-form/schema-object/schema-object.mjs +0 -123
  55. package/esm2020/schema-form-render.mjs +0 -126
  56. package/esm2020/schema-validation-field.mjs +0 -14
  57. package/esm2020/type-script-compile/type-script-compile.base.mjs +0 -114
  58. package/fesm2015/apipass-schemas.mjs +0 -1801
  59. package/fesm2015/apipass-schemas.mjs.map +0 -1
  60. package/fesm2020/apipass-schemas.mjs.map +0 -1
@@ -0,0 +1,141 @@
1
+ import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
2
+ import { BaseSchemaComponent } from '../../../base-schema.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "ngx-drag-drop";
6
+ import * as i3 from "@angular/forms";
7
+ const _c0 = function () { return { standalone: true }; };
8
+ function ArraySessionComponent_div_4_div_4_Template(rf, ctx) { if (rf & 1) {
9
+ const _r8 = i0.ɵɵgetCurrentView();
10
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 12)(2, "label", 13);
11
+ i0.ɵɵtext(3, "Loop");
12
+ i0.ɵɵelementEnd();
13
+ i0.ɵɵelementStart(4, "input", 14);
14
+ i0.ɵɵlistener("ngModelChange", function ArraySessionComponent_div_4_div_4_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r8); const item_r2 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r2.loop = $event); })("dndDrop", function ArraySessionComponent_div_4_div_4_Template_input_dndDrop_4_listener($event) { i0.ɵɵrestoreView(_r8); const item_r2 = i0.ɵɵnextContext().$implicit; const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(item_r2.loop = ctx_r9.onDrop($event, item_r2.loop)); });
15
+ i0.ɵɵelementEnd()();
16
+ i0.ɵɵelementStart(5, "div", 15)(6, "label", 13);
17
+ i0.ɵɵtext(7, "Alias");
18
+ i0.ɵɵelementEnd();
19
+ i0.ɵɵelementStart(8, "input", 14);
20
+ i0.ɵɵlistener("ngModelChange", function ArraySessionComponent_div_4_div_4_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r8); const item_r2 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r2.alias = $event); })("dndDrop", function ArraySessionComponent_div_4_div_4_Template_input_dndDrop_8_listener($event) { i0.ɵɵrestoreView(_r8); const item_r2 = i0.ɵɵnextContext().$implicit; const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(item_r2.alias = ctx_r13.onDrop($event, item_r2.alias)); });
21
+ i0.ɵɵelementEnd()()();
22
+ } if (rf & 2) {
23
+ const item_r2 = i0.ɵɵnextContext().$implicit;
24
+ i0.ɵɵadvance(4);
25
+ i0.ɵɵproperty("ngModel", item_r2.loop)("ngModelOptions", i0.ɵɵpureFunction0(4, _c0));
26
+ i0.ɵɵadvance(4);
27
+ i0.ɵɵproperty("ngModel", item_r2.alias)("ngModelOptions", i0.ɵɵpureFunction0(5, _c0));
28
+ } }
29
+ function ArraySessionComponent_div_4_ng_container_5_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementContainer(0);
31
+ } }
32
+ const _c1 = function (a0, a1, a2) { return { items: a0, index: a1, mappingAttributes: a2 }; };
33
+ const _c2 = function (a0) { return { $implicit: a0 }; };
34
+ function ArraySessionComponent_div_4_Template(rf, ctx) { if (rf & 1) {
35
+ const _r17 = i0.ɵɵgetCurrentView();
36
+ i0.ɵɵelementStart(0, "div", 7)(1, "div", 8);
37
+ i0.ɵɵtext(2);
38
+ i0.ɵɵelementStart(3, "i", 9);
39
+ i0.ɵɵlistener("click", function ArraySessionComponent_div_4_Template_i_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r17); const item_r2 = restoredCtx.$implicit; const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.remove(item_r2)); });
40
+ i0.ɵɵelementEnd()();
41
+ i0.ɵɵtemplate(4, ArraySessionComponent_div_4_div_4_Template, 9, 6, "div", 10);
42
+ i0.ɵɵtemplate(5, ArraySessionComponent_div_4_ng_container_5_Template, 1, 0, "ng-container", 11);
43
+ i0.ɵɵelementEnd();
44
+ } if (rf & 2) {
45
+ const item_r2 = ctx.$implicit;
46
+ const index_r3 = ctx.index;
47
+ const ctx_r0 = i0.ɵɵnextContext();
48
+ i0.ɵɵadvance(2);
49
+ i0.ɵɵtextInterpolate2("", ctx_r0.removeLabel, " ", index_r3 + 1, " ");
50
+ i0.ɵɵadvance(2);
51
+ i0.ɵɵproperty("ngIf", item_r2.mappingAttributes || item_r2.mappingAttributes === "");
52
+ i0.ɵɵadvance(1);
53
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.subsectionItem)("ngTemplateOutletContext", i0.ɵɵpureFunction1(9, _c2, i0.ɵɵpureFunction3(5, _c1, ctx_r0.model, index_r3, item_r2.mappingAttributes || item_r2.mappingAttributes === "" ? item_r2.mappingAttributes : item_r2)));
54
+ } }
55
+ function ArraySessionComponent_button_9_Template(rf, ctx) { if (rf & 1) {
56
+ const _r19 = i0.ɵɵgetCurrentView();
57
+ i0.ɵɵelementStart(0, "button", 16);
58
+ i0.ɵɵlistener("click", function ArraySessionComponent_button_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.addLoop()); });
59
+ i0.ɵɵtext(1);
60
+ i0.ɵɵelementEnd();
61
+ } if (rf & 2) {
62
+ const ctx_r1 = i0.ɵɵnextContext();
63
+ i0.ɵɵadvance(1);
64
+ i0.ɵɵtextInterpolate(ctx_r1.addLoopLabel);
65
+ } }
66
+ class ArraySessionComponent extends BaseSchemaComponent {
67
+ label = '';
68
+ removeLabel = 'Remove';
69
+ addItemLabel = 'Add Item';
70
+ addLoopLabel = 'Add Loop';
71
+ showAddLoop = true;
72
+ onAdd = new EventEmitter();
73
+ onAddLoop = new EventEmitter();
74
+ subsectionItem = null;
75
+ add() {
76
+ this.onAdd.next(undefined);
77
+ }
78
+ addLoop() {
79
+ this.onAddLoop.next(undefined);
80
+ }
81
+ remove(item) {
82
+ const values = this.model;
83
+ const index = values.indexOf(item);
84
+ values.splice(index, 1);
85
+ this.model = values;
86
+ }
87
+ trackByIndex(index, obj) {
88
+ return index;
89
+ }
90
+ static ɵfac = /*@__PURE__*/ function () { let ɵArraySessionComponent_BaseFactory; return function ArraySessionComponent_Factory(t) { return (ɵArraySessionComponent_BaseFactory || (ɵArraySessionComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ArraySessionComponent)))(t || ArraySessionComponent); }; }();
91
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArraySessionComponent, selectors: [["array-session"]], contentQueries: function ArraySessionComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
92
+ i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5, TemplateRef);
93
+ } if (rf & 2) {
94
+ let _t;
95
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.subsectionItem = _t.first);
96
+ } }, inputs: { label: "label", removeLabel: "removeLabel", addItemLabel: "addItemLabel", addLoopLabel: "addLoopLabel", showAddLoop: "showAddLoop" }, outputs: { onAdd: "onAdd", onAddLoop: "onAddLoop" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 5, consts: [[1, "row"], [1, "col-md-12"], [1, "info-label", "bold"], ["class", "subsection-element", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "row", "add-buttons"], [1, "btn", "btn-outline-primary", "float-left", "btn-personal-edit", 3, "click"], ["class", "btn btn-outline-primary float-left btn-personal-edit ml-2", 3, "click", 4, "ngIf"], [1, "subsection-element"], [1, "subsection-item-title"], [1, "far", "fa-trash-alt", 3, "click"], ["class", "row", 4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "col-md-8"], [1, "info-label"], ["type", "text", "dndDropzone", "", 1, "form-control", 3, "ngModel", "ngModelOptions", "ngModelChange", "dndDrop"], [1, "col-md-4"], [1, "btn", "btn-outline-primary", "float-left", "btn-personal-edit", "ml-2", 3, "click"]], template: function ArraySessionComponent_Template(rf, ctx) { if (rf & 1) {
97
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "label", 2);
98
+ i0.ɵɵtext(3);
99
+ i0.ɵɵelementEnd();
100
+ i0.ɵɵtemplate(4, ArraySessionComponent_div_4_Template, 6, 11, "div", 3);
101
+ i0.ɵɵelementEnd()();
102
+ i0.ɵɵelementStart(5, "div", 4)(6, "div", 1)(7, "button", 5);
103
+ i0.ɵɵlistener("click", function ArraySessionComponent_Template_button_click_7_listener() { return ctx.add(); });
104
+ i0.ɵɵtext(8);
105
+ i0.ɵɵelementEnd();
106
+ i0.ɵɵtemplate(9, ArraySessionComponent_button_9_Template, 2, 1, "button", 6);
107
+ i0.ɵɵelementEnd()();
108
+ } if (rf & 2) {
109
+ i0.ɵɵadvance(3);
110
+ i0.ɵɵtextInterpolate(ctx.label);
111
+ i0.ɵɵadvance(1);
112
+ i0.ɵɵproperty("ngForOf", ctx.model)("ngForTrackBy", ctx.trackByIndex);
113
+ i0.ɵɵadvance(4);
114
+ i0.ɵɵtextInterpolate(ctx.addItemLabel);
115
+ i0.ɵɵadvance(1);
116
+ i0.ɵɵproperty("ngIf", ctx.showAddLoop);
117
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i2.DndDropzoneDirective, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel], styles: [".subsection-element[_ngcontent-%COMP%]{padding:5px 15px 15px;margin-top:10px;border:1px solid #CCC;border-radius:5px;background:#FFF}.subsection-element[_ngcontent-%COMP%]:first-child{margin-top:0!important}.btn-personal-edit[_ngcontent-%COMP%]{margin:5px 0}.subsection-item-title[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:calc(100% + 30px);padding:7px 10px 7px 14px;margin-top:-5px;margin-bottom:5px;margin-left:-15px;background:#EEE;border-radius:5px 5px 0 0;font-weight:700;border-bottom:1px solid #CCC}.subsection-item-title[_ngcontent-%COMP%] .fa-trash-alt[_ngcontent-%COMP%]{color:red;cursor:pointer}.subsection-item-title[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-weight:700}.add-buttons[_ngcontent-%COMP%]{margin-top:5px}"] });
118
+ }
119
+ export { ArraySessionComponent };
120
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArraySessionComponent, [{
121
+ type: Component,
122
+ args: [{ selector: 'array-session', template: "<div class=\"row\">\n <div class=\"col-md-12\">\n <label class=\"info-label bold\">{{ label }}</label>\n <div class=\"subsection-element\" *ngFor=\"let item of model; let index = index; trackBy:trackByIndex;\">\n <div class=\"subsection-item-title\">{{ removeLabel }} {{ index + 1 }}\n <i class=\"far fa-trash-alt\" (click)=\"remove(item)\"></i>\n </div>\n <div class=\"row\" *ngIf=\"item.mappingAttributes || item.mappingAttributes === ''\">\n <div class=\"col-md-8\">\n <label class=\"info-label\">Loop</label>\n <input class=\"form-control\" type=\"text\" [(ngModel)]=\"item.loop\" [ngModelOptions]=\"{standalone: true}\"\n dndDropzone (dndDrop)=\"item.loop = this.onDrop($event, item.loop)\" />\n </div>\n <div class=\"col-md-4\">\n <label class=\"info-label\">Alias</label>\n <input class=\"form-control\" type=\"text\" [(ngModel)]=\"item.alias\" [ngModelOptions]=\"{standalone: true}\"\n dndDropzone (dndDrop)=\"item.alias = this.onDrop($event, item.alias)\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"subsectionItem, context: {\n $implicit: {\n items: model, index: index,\n mappingAttributes: (item.mappingAttributes || item.mappingAttributes === '') ? item.mappingAttributes : item\n }\n }\"></ng-container>\n </div>\n </div>\n</div>\n<div class=\"row add-buttons\">\n <div class=\"col-md-12\">\n <button class=\"btn btn-outline-primary float-left btn-personal-edit\" (click)=\"add()\">{{ this.addItemLabel }}</button>\n <button class=\"btn btn-outline-primary float-left btn-personal-edit ml-2\" *ngIf=\"showAddLoop\" (click)=\"addLoop()\">{{ this.addLoopLabel }}</button>\n </div>\n</div>\n", styles: [".subsection-element{padding:5px 15px 15px;margin-top:10px;border:1px solid #CCC;border-radius:5px;background:#FFF}.subsection-element:first-child{margin-top:0!important}.btn-personal-edit{margin:5px 0}.subsection-item-title{display:flex;justify-content:space-between;align-items:center;width:calc(100% + 30px);padding:7px 10px 7px 14px;margin-top:-5px;margin-bottom:5px;margin-left:-15px;background:#EEE;border-radius:5px 5px 0 0;font-weight:700;border-bottom:1px solid #CCC}.subsection-item-title .fa-trash-alt{color:red;cursor:pointer}.subsection-item-title label{font-weight:700}.add-buttons{margin-top:5px}\n"] }]
123
+ }], null, { label: [{
124
+ type: Input
125
+ }], removeLabel: [{
126
+ type: Input
127
+ }], addItemLabel: [{
128
+ type: Input
129
+ }], addLoopLabel: [{
130
+ type: Input
131
+ }], showAddLoop: [{
132
+ type: Input
133
+ }], onAdd: [{
134
+ type: Output
135
+ }], onAddLoop: [{
136
+ type: Output
137
+ }], subsectionItem: [{
138
+ type: ContentChild,
139
+ args: [TemplateRef, { read: TemplateRef }]
140
+ }] }); })();
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktc2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaGVtYXMvc3JjL3NjaGVtYS1mb3JtL3NjaGVtYS1hcnJheS9hcnJheS1zZXNzaW9uL2FycmF5LXNlc3Npb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2hlbWFzL3NyYy9zY2hlbWEtZm9ybS9zY2hlbWEtYXJyYXkvYXJyYXktc2Vzc2lvbi9hcnJheS1zZXNzaW9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBOzs7Ozs7OztJQ005RCw4QkFBaUYsY0FBQSxnQkFBQTtJQUVuRCxvQkFBSTtJQUFBLGlCQUFRO0lBQ3RDLGlDQUM0RTtJQURwQyx3TUFBYSxxQ0FBaUIsSUFBUCxrTkFDakMsOEJBQVksbUNBQThCLENBQUEsSUFEVDtJQUEvRCxpQkFDNEUsRUFBQTtJQUU5RSwrQkFBc0IsZ0JBQUE7SUFDTSxxQkFBSztJQUFBLGlCQUFRO0lBQ3ZDLGlDQUM4RTtJQUR0Qyx3TUFBYSxzQ0FBa0IsSUFBUCxtTkFDbEMsK0JBQWEscUNBQStCLENBQUEsSUFEVjtJQUFoRSxpQkFDOEUsRUFBQSxFQUFBOzs7SUFOdEMsZUFBdUI7SUFBdkIsc0NBQXVCLDhDQUFBO0lBS3ZCLGVBQXdCO0lBQXhCLHVDQUF3Qiw4Q0FBQTs7O0lBSXBFLHdCQUtrQjs7Ozs7O0lBckJwQiw4QkFBcUcsYUFBQTtJQUNoRSxZQUNqQztJQUFBLDRCQUFtRDtJQUF2QiwwTkFBUyxlQUFBLHVCQUFZLENBQUEsSUFBQztJQUFDLGlCQUFJLEVBQUE7SUFFekQsNkVBV007SUFDTiwrRkFLa0I7SUFDcEIsaUJBQU07Ozs7O0lBckIrQixlQUNqQztJQURpQyxxRUFDakM7SUFFZ0IsZUFBNkQ7SUFBN0Qsb0ZBQTZEO0lBWWhFLGVBQWtDO0lBQWxDLHdEQUFrQyxnTkFBQTs7OztJQVluRCxrQ0FBa0g7SUFBcEIsdUtBQVMsZUFBQSxpQkFBUyxDQUFBLElBQUM7SUFBQyxZQUF1QjtJQUFBLGlCQUFTOzs7SUFBaEMsZUFBdUI7SUFBdkIseUNBQXVCOztBRDVCN0ksTUFLYSxxQkFBc0IsU0FBUSxtQkFBbUI7SUFFNUMsS0FBSyxHQUFHLEVBQUUsQ0FBQTtJQUNWLFdBQVcsR0FBRyxRQUFRLENBQUE7SUFDdEIsWUFBWSxHQUFHLFVBQVUsQ0FBQTtJQUN6QixZQUFZLEdBQUcsVUFBVSxDQUFBO0lBRXpCLFdBQVcsR0FBRyxJQUFJLENBQUE7SUFFakIsS0FBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFBO0lBQ2xELFNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQTtJQUdoRSxjQUFjLEdBQTRCLElBQUksQ0FBQTtJQUU5QyxHQUFHO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFFLElBQVM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN6QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO0lBQ3JCLENBQUM7SUFFTSxZQUFZLENBQUUsS0FBYSxFQUFFLEdBQVE7UUFDMUMsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO3NQQWhDVSxxQkFBcUIsU0FBckIscUJBQXFCOzZEQUFyQixxQkFBcUI7d0NBWWxCLFdBQVcsS0FBVSxXQUFXOzs7OztZQ3BCaEQsOEJBQWlCLGFBQUEsZUFBQTtZQUVrQixZQUFXO1lBQUEsaUJBQVE7WUFDbEQsdUVBc0JNO1lBQ1IsaUJBQU0sRUFBQTtZQUVSLDhCQUE2QixhQUFBLGdCQUFBO1lBRTRDLGtHQUFTLFNBQUssSUFBQztZQUFDLFlBQXVCO1lBQUEsaUJBQVM7WUFDckgsNEVBQWtKO1lBQ3BKLGlCQUFNLEVBQUE7O1lBOUIyQixlQUFXO1lBQVgsK0JBQVc7WUFDTyxlQUFVO1lBQVYsbUNBQVUsa0NBQUE7WUEyQjBCLGVBQXVCO1lBQXZCLHNDQUF1QjtZQUNqQyxlQUFpQjtZQUFqQixzQ0FBaUI7OztTRHZCbkYscUJBQXFCO3VGQUFyQixxQkFBcUI7Y0FMakMsU0FBUzsyQkFDRSxlQUFlO2dCQU1ULEtBQUs7a0JBQXBCLEtBQUs7WUFDVSxXQUFXO2tCQUExQixLQUFLO1lBQ1UsWUFBWTtrQkFBM0IsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUFFVSxXQUFXO2tCQUExQixLQUFLO1lBRVcsS0FBSztrQkFBckIsTUFBTTtZQUNVLFNBQVM7a0JBQXpCLE1BQU07WUFHQSxjQUFjO2tCQURwQixZQUFZO21CQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCYXNlU2NoZW1hQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYmFzZS1zY2hlbWEuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcnJheS1zZXNzaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICdhcnJheS1zZXNzaW9uLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYXJyYXktc2Vzc2lvbi5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlTZXNzaW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNjaGVtYUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIGxhYmVsID0gJydcbiAgQElucHV0KCkgcHVibGljIHJlbW92ZUxhYmVsID0gJ1JlbW92ZSdcbiAgQElucHV0KCkgcHVibGljIGFkZEl0ZW1MYWJlbCA9ICdBZGQgSXRlbSdcbiAgQElucHV0KCkgcHVibGljIGFkZExvb3BMYWJlbCA9ICdBZGQgTG9vcCdcblxuICBASW5wdXQoKSBwdWJsaWMgc2hvd0FkZExvb3AgPSB0cnVlXG5cbiAgQE91dHB1dCgpIHB1YmxpYyBvbkFkZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcHVibGljIG9uQWRkTG9vcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcHVibGljIHN1YnNlY3Rpb25JdGVtOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGxcblxuICBwdWJsaWMgYWRkICgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQWRkLm5leHQodW5kZWZpbmVkKVxuICB9XG5cbiAgcHVibGljIGFkZExvb3AgKCk6IHZvaWQge1xuICAgIHRoaXMub25BZGRMb29wLm5leHQodW5kZWZpbmVkKVxuICB9XG5cbiAgcHVibGljIHJlbW92ZSAoaXRlbTogYW55KTogYW55IHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLm1vZGVsXG4gICAgY29uc3QgaW5kZXggPSB2YWx1ZXMuaW5kZXhPZihpdGVtKVxuICAgIHZhbHVlcy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgdGhpcy5tb2RlbCA9IHZhbHVlc1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJbmRleCAoaW5kZXg6IG51bWJlciwgb2JqOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBpbmRleFxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImluZm8tbGFiZWwgYm9sZFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwic3Vic2VjdGlvbi1lbGVtZW50XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kZWw7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OnRyYWNrQnlJbmRleDtcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzZWN0aW9uLWl0ZW0tdGl0bGVcIj57eyByZW1vdmVMYWJlbCB9fSB7eyBpbmRleCArIDEgfX1cbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdHJhc2gtYWx0XCIgKGNsaWNrKT1cInJlbW92ZShpdGVtKVwiPjwvaT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiaXRlbS5tYXBwaW5nQXR0cmlidXRlcyB8fCBpdGVtLm1hcHBpbmdBdHRyaWJ1dGVzID09PSAnJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbmZvLWxhYmVsXCI+TG9vcDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIml0ZW0ubG9vcFwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICBkbmREcm9wem9uZSAoZG5kRHJvcCk9XCJpdGVtLmxvb3AgPSB0aGlzLm9uRHJvcCgkZXZlbnQsIGl0ZW0ubG9vcClcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1sYWJlbFwiPkFsaWFzPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiaXRlbS5hbGlhc1wiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICBkbmREcm9wem9uZSAoZG5kRHJvcCk9XCJpdGVtLmFsaWFzID0gdGhpcy5vbkRyb3AoJGV2ZW50LCBpdGVtLmFsaWFzKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3Vic2VjdGlvbkl0ZW0sIGNvbnRleHQ6IHtcbiAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgaXRlbXM6IG1vZGVsLCBpbmRleDogaW5kZXgsXG4gICAgICAgICAgbWFwcGluZ0F0dHJpYnV0ZXM6IChpdGVtLm1hcHBpbmdBdHRyaWJ1dGVzIHx8IGl0ZW0ubWFwcGluZ0F0dHJpYnV0ZXMgPT09ICcnKSA/IGl0ZW0ubWFwcGluZ0F0dHJpYnV0ZXMgOiBpdGVtXG4gICAgICAgICB9XG4gICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93IGFkZC1idXR0b25zXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgZmxvYXQtbGVmdCBidG4tcGVyc29uYWwtZWRpdFwiIChjbGljayk9XCJhZGQoKVwiPnt7IHRoaXMuYWRkSXRlbUxhYmVsIH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGZsb2F0LWxlZnQgYnRuLXBlcnNvbmFsLWVkaXQgbWwtMlwiICpuZ0lmPVwic2hvd0FkZExvb3BcIiAoY2xpY2spPVwiYWRkTG9vcCgpXCI+e3sgdGhpcy5hZGRMb29wTGFiZWwgfX08L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,219 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BaseSchemaComponent } from '../../base-schema.component';
3
+ import { onDropStruct } from '../../struct.utils';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "ngx-drag-drop";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "./array-session/array-session";
9
+ import * as i5 from "../schema-form";
10
+ import * as i6 from "../../schema-custom-attributes/schema-custom-attributes";
11
+ function SchemaArrayComponent_div_0_ng_template_2_schema_form_0_Template(rf, ctx) { if (rf & 1) {
12
+ const _r8 = i0.ɵɵgetCurrentView();
13
+ i0.ɵɵelementStart(0, "schema-form", 4);
14
+ i0.ɵɵlistener("modelChange", function SchemaArrayComponent_div_0_ng_template_2_schema_form_0_Template_schema_form_modelChange_0_listener($event) { i0.ɵɵrestoreView(_r8); const item_r3 = i0.ɵɵnextContext().$implicit; const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.model[ctx_r7.schema.id][item_r3.index].mappingAttributes = $event); });
15
+ i0.ɵɵelementEnd();
16
+ } if (rf & 2) {
17
+ const item_r3 = i0.ɵɵnextContext().$implicit;
18
+ const ctx_r4 = i0.ɵɵnextContext(2);
19
+ i0.ɵɵproperty("selectPlaceHolderLabel", ctx_r4.selectPlaceHolderLabel)("selectSearchPlaceHolderLabel", ctx_r4.selectSearchPlaceHolderLabel)("selectClearLabel", ctx_r4.selectClearLabel)("selectNotFoundLabel", ctx_r4.selectNotFoundLabel)("requiredLabel", ctx_r4.requiredLabel)("addItemLabel", ctx_r4.addItemLabel)("addLoopLabel", ctx_r4.addLoopLabel)("additionalAttributesLabel", ctx_r4.additionalAttributesLabel)("customAttributeRemoveLabel", ctx_r4.customAttributeRemoveLabel)("newCustomFieldNameLabel", ctx_r4.newCustomFieldNameLabel)("newCustomFieldValueLabel", ctx_r4.newCustomFieldValueLabel)("newCustomFieldAddLabel", ctx_r4.newCustomFieldAddLabel)("newCustomFieldSaveLabel", ctx_r4.newCustomFieldSaveLabel)("newCustomFieldCancelLabel", ctx_r4.newCustomFieldCancelLabel)("idPrefix", ctx_r4.idPrefix)("model", ctx_r4.model[ctx_r4.schema.id][item_r3.index].mappingAttributes)("schemas", ctx_r4.getSchemaProperties())("editing", ctx_r4.editing);
20
+ } }
21
+ function SchemaArrayComponent_div_0_ng_template_2_schema_form_1_Template(rf, ctx) { if (rf & 1) {
22
+ const _r12 = i0.ɵɵgetCurrentView();
23
+ i0.ɵɵelementStart(0, "schema-form", 4);
24
+ i0.ɵɵlistener("modelChange", function SchemaArrayComponent_div_0_ng_template_2_schema_form_1_Template_schema_form_modelChange_0_listener($event) { i0.ɵɵrestoreView(_r12); const item_r3 = i0.ɵɵnextContext().$implicit; const ctx_r11 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r11.model[ctx_r11.schema.id][item_r3.index] = $event)); });
25
+ i0.ɵɵelementEnd();
26
+ } if (rf & 2) {
27
+ const item_r3 = i0.ɵɵnextContext().$implicit;
28
+ const ctx_r5 = i0.ɵɵnextContext(2);
29
+ i0.ɵɵproperty("selectPlaceHolderLabel", ctx_r5.selectPlaceHolderLabel)("selectSearchPlaceHolderLabel", ctx_r5.selectSearchPlaceHolderLabel)("selectClearLabel", ctx_r5.selectClearLabel)("selectNotFoundLabel", ctx_r5.selectNotFoundLabel)("requiredLabel", ctx_r5.requiredLabel)("addItemLabel", ctx_r5.addItemLabel)("addLoopLabel", ctx_r5.addLoopLabel)("additionalAttributesLabel", ctx_r5.additionalAttributesLabel)("customAttributeRemoveLabel", ctx_r5.customAttributeRemoveLabel)("newCustomFieldNameLabel", ctx_r5.newCustomFieldNameLabel)("newCustomFieldValueLabel", ctx_r5.newCustomFieldValueLabel)("newCustomFieldAddLabel", ctx_r5.newCustomFieldAddLabel)("newCustomFieldSaveLabel", ctx_r5.newCustomFieldSaveLabel)("newCustomFieldCancelLabel", ctx_r5.newCustomFieldCancelLabel)("idPrefix", ctx_r5.idPrefix)("model", ctx_r5.model[ctx_r5.schema.id][item_r3.index])("schemas", ctx_r5.getSchemaProperties())("editing", ctx_r5.editing);
30
+ } }
31
+ function SchemaArrayComponent_div_0_ng_template_2_div_2_Template(rf, ctx) { if (rf & 1) {
32
+ const _r16 = i0.ɵɵgetCurrentView();
33
+ i0.ɵɵelementStart(0, "div", 5)(1, "div", 6)(2, "label", 7);
34
+ i0.ɵɵtext(3);
35
+ i0.ɵɵelementEnd();
36
+ i0.ɵɵelementStart(4, "schema-custom-attributes", 8);
37
+ i0.ɵɵlistener("modelChange", function SchemaArrayComponent_div_0_ng_template_2_div_2_Template_schema_custom_attributes_modelChange_4_listener($event) { i0.ɵɵrestoreView(_r16); const item_r3 = i0.ɵɵnextContext().$implicit; const ctx_r15 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r15.model[ctx_r15.schema.id][item_r3.index].customAttributes = $event); });
38
+ i0.ɵɵelementEnd()()();
39
+ } if (rf & 2) {
40
+ const item_r3 = i0.ɵɵnextContext().$implicit;
41
+ const ctx_r6 = i0.ɵɵnextContext(2);
42
+ i0.ɵɵadvance(3);
43
+ i0.ɵɵtextInterpolate(ctx_r6.additionalAttributesLabel);
44
+ i0.ɵɵadvance(1);
45
+ i0.ɵɵproperty("customAttributeRemoveLabel", ctx_r6.customAttributeRemoveLabel)("newCustomFieldNameLabel", ctx_r6.newCustomFieldNameLabel)("newCustomFieldValueLabel", ctx_r6.newCustomFieldValueLabel)("newCustomFieldAddLabel", ctx_r6.newCustomFieldAddLabel)("newCustomFieldSaveLabel", ctx_r6.newCustomFieldSaveLabel)("newCustomFieldCancelLabel", ctx_r6.newCustomFieldCancelLabel)("model", ctx_r6.model[ctx_r6.schema.id][item_r3.index].customAttributes)("onDropFunction", ctx_r6.onDrop);
46
+ } }
47
+ function SchemaArrayComponent_div_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
48
+ i0.ɵɵtemplate(0, SchemaArrayComponent_div_0_ng_template_2_schema_form_0_Template, 1, 18, "schema-form", 2);
49
+ i0.ɵɵtemplate(1, SchemaArrayComponent_div_0_ng_template_2_schema_form_1_Template, 1, 18, "schema-form", 2);
50
+ i0.ɵɵtemplate(2, SchemaArrayComponent_div_0_ng_template_2_div_2_Template, 5, 9, "div", 3);
51
+ } if (rf & 2) {
52
+ const item_r3 = ctx.$implicit;
53
+ const ctx_r2 = i0.ɵɵnextContext(2);
54
+ i0.ɵɵproperty("ngIf", ctx_r2.model[ctx_r2.schema.id][item_r3.index].loop !== undefined);
55
+ i0.ɵɵadvance(1);
56
+ i0.ɵɵproperty("ngIf", ctx_r2.model[ctx_r2.schema.id][item_r3.index].loop == undefined);
57
+ i0.ɵɵadvance(1);
58
+ i0.ɵɵproperty("ngIf", ctx_r2.model[ctx_r2.schema.id][item_r3.index] && ctx_r2.schema.customProperties);
59
+ } }
60
+ function SchemaArrayComponent_div_0_Template(rf, ctx) { if (rf & 1) {
61
+ const _r20 = i0.ɵɵgetCurrentView();
62
+ i0.ɵɵelementStart(0, "div")(1, "array-session", 1);
63
+ i0.ɵɵlistener("modelChange", function SchemaArrayComponent_div_0_Template_array_session_modelChange_1_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView((ctx_r19.model[ctx_r19.schema.id] = $event)); })("onAdd", function SchemaArrayComponent_div_0_Template_array_session_onAdd_1_listener() { i0.ɵɵrestoreView(_r20); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.addArrayItem(ctx_r21.schema.id, {})); })("onAddLoop", function SchemaArrayComponent_div_0_Template_array_session_onAddLoop_1_listener() { i0.ɵɵrestoreView(_r20); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.addArrayLoop(ctx_r22.schema.id, {})); });
64
+ i0.ɵɵtemplate(2, SchemaArrayComponent_div_0_ng_template_2_Template, 3, 3, "ng-template");
65
+ i0.ɵɵelementEnd()();
66
+ } if (rf & 2) {
67
+ const ctx_r0 = i0.ɵɵnextContext();
68
+ i0.ɵɵadvance(1);
69
+ i0.ɵɵproperty("addItemLabel", ctx_r0.addItemLabel)("addLoopLabel", ctx_r0.addLoopLabel)("label", ctx_r0.schema.title)("removeLabel", ctx_r0.schema.title)("model", ctx_r0.model[ctx_r0.schema.id])("showAddLoop", ctx_r0.schema.withoutLoop !== true);
70
+ } }
71
+ const _c0 = function () { return { standalone: true }; };
72
+ function SchemaArrayComponent_div_1_ng_template_2_input_2_Template(rf, ctx) { if (rf & 1) {
73
+ const _r30 = i0.ɵɵgetCurrentView();
74
+ i0.ɵɵelementStart(0, "input", 12);
75
+ i0.ɵɵlistener("ngModelChange", function SchemaArrayComponent_div_1_ng_template_2_input_2_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r30); const item_r24 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r24.items[item_r24.index].mappingAttributes = $event); })("dndDrop", function SchemaArrayComponent_div_1_ng_template_2_input_2_Template_input_dndDrop_0_listener($event) { i0.ɵɵrestoreView(_r30); const item_r24 = i0.ɵɵnextContext().$implicit; const ctx_r31 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(item_r24.items[item_r24.index].mappingAttributes = ctx_r31.onDrop($event, item_r24.items[item_r24.index].mappingAttributes)); });
76
+ i0.ɵɵelementEnd();
77
+ } if (rf & 2) {
78
+ const item_r24 = i0.ɵɵnextContext().$implicit;
79
+ const ctx_r25 = i0.ɵɵnextContext(2);
80
+ i0.ɵɵproperty("ngModel", item_r24.items[item_r24.index].mappingAttributes)("ngModelOptions", i0.ɵɵpureFunction0(3, _c0))("id", ctx_r25.getId(ctx_r25.index) + "-" + item_r24.index);
81
+ } }
82
+ function SchemaArrayComponent_div_1_ng_template_2_ng_template_3_Template(rf, ctx) { if (rf & 1) {
83
+ const _r36 = i0.ɵɵgetCurrentView();
84
+ i0.ɵɵelementStart(0, "input", 12);
85
+ i0.ɵɵlistener("ngModelChange", function SchemaArrayComponent_div_1_ng_template_2_ng_template_3_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r36); const item_r24 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView((item_r24.items[item_r24.index] = $event)); })("dndDrop", function SchemaArrayComponent_div_1_ng_template_2_ng_template_3_Template_input_dndDrop_0_listener($event) { i0.ɵɵrestoreView(_r36); const item_r24 = i0.ɵɵnextContext().$implicit; const ctx_r37 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((item_r24.items[item_r24.index] = ctx_r37.onDrop($event, item_r24.items[item_r24.index]))); });
86
+ i0.ɵɵelementEnd();
87
+ } if (rf & 2) {
88
+ const item_r24 = i0.ɵɵnextContext().$implicit;
89
+ const ctx_r27 = i0.ɵɵnextContext(2);
90
+ i0.ɵɵproperty("ngModel", item_r24.items[item_r24.index])("ngModelOptions", i0.ɵɵpureFunction0(3, _c0))("id", ctx_r27.getId(ctx_r27.index) + "-" + item_r24.index);
91
+ } }
92
+ function SchemaArrayComponent_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
93
+ i0.ɵɵelementStart(0, "label", 9);
94
+ i0.ɵɵtext(1);
95
+ i0.ɵɵelementEnd();
96
+ i0.ɵɵtemplate(2, SchemaArrayComponent_div_1_ng_template_2_input_2_Template, 1, 4, "input", 10);
97
+ i0.ɵɵtemplate(3, SchemaArrayComponent_div_1_ng_template_2_ng_template_3_Template, 1, 4, "ng-template", null, 11, i0.ɵɵtemplateRefExtractor);
98
+ } if (rf & 2) {
99
+ const item_r24 = ctx.$implicit;
100
+ const _r26 = i0.ɵɵreference(4);
101
+ const ctx_r23 = i0.ɵɵnextContext(2);
102
+ i0.ɵɵproperty("htmlFor", ctx_r23.getId(ctx_r23.index) + "-" + item_r24.index);
103
+ i0.ɵɵadvance(1);
104
+ i0.ɵɵtextInterpolate(ctx_r23.schema.title);
105
+ i0.ɵɵadvance(1);
106
+ i0.ɵɵproperty("ngIf", item_r24.items[item_r24.index].mappingAttributes || item_r24.items[item_r24.index].mappingAttributes === "")("ngIfElse", _r26);
107
+ } }
108
+ function SchemaArrayComponent_div_1_Template(rf, ctx) { if (rf & 1) {
109
+ const _r41 = i0.ɵɵgetCurrentView();
110
+ i0.ɵɵelementStart(0, "div")(1, "array-session", 1);
111
+ i0.ɵɵlistener("modelChange", function SchemaArrayComponent_div_1_Template_array_session_modelChange_1_listener($event) { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(); return i0.ɵɵresetView((ctx_r40.model[ctx_r40.schema.id] = $event)); })("onAdd", function SchemaArrayComponent_div_1_Template_array_session_onAdd_1_listener() { i0.ɵɵrestoreView(_r41); const ctx_r42 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r42.addArrayItem(ctx_r42.schema.id, "")); })("onAddLoop", function SchemaArrayComponent_div_1_Template_array_session_onAddLoop_1_listener() { i0.ɵɵrestoreView(_r41); const ctx_r43 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r43.addArrayLoop(ctx_r43.schema.id, "")); });
112
+ i0.ɵɵtemplate(2, SchemaArrayComponent_div_1_ng_template_2_Template, 5, 4, "ng-template");
113
+ i0.ɵɵelementEnd()();
114
+ } if (rf & 2) {
115
+ const ctx_r1 = i0.ɵɵnextContext();
116
+ i0.ɵɵadvance(1);
117
+ i0.ɵɵproperty("addItemLabel", ctx_r1.addItemLabel)("addLoopLabel", ctx_r1.addLoopLabel)("label", ctx_r1.schema.title)("removeLabel", ctx_r1.schema.title)("model", ctx_r1.model[ctx_r1.schema.id])("showAddLoop", ctx_r1.schema.withoutLoop !== true);
118
+ } }
119
+ class SchemaArrayComponent extends BaseSchemaComponent {
120
+ requiredLabel = '(required)';
121
+ addItemLabel = 'Add Item';
122
+ addLoopLabel = 'Add Loop';
123
+ additionalAttributesLabel = 'Additional Fields';
124
+ customAttributeRemoveLabel = 'Remove';
125
+ newCustomFieldNameLabel = 'Name';
126
+ newCustomFieldValueLabel = 'Value';
127
+ newCustomFieldAddLabel = 'Add';
128
+ newCustomFieldSaveLabel = 'Save';
129
+ newCustomFieldCancelLabel = 'Cancel';
130
+ selectPlaceHolderLabel = 'Select Item';
131
+ selectSearchPlaceHolderLabel = 'Search';
132
+ selectClearLabel = 'Clear';
133
+ selectNotFoundLabel = 'No Items Found';
134
+ idPrefix;
135
+ editing = false;
136
+ index;
137
+ loaded;
138
+ ngAfterContentInit() {
139
+ if (this.schema?.type === 'array' && this.model && !this.model[this.schema.id]) {
140
+ this.model[this.schema.id] = [];
141
+ }
142
+ this.loaded = true;
143
+ }
144
+ onDrop($event, modelElement) {
145
+ return onDropStruct($event, modelElement);
146
+ }
147
+ getId(index) {
148
+ return `${this.idPrefix}-struct-${index}`;
149
+ }
150
+ addArrayItem(id, param) {
151
+ this.model[id] = this.model[id] || [];
152
+ if (this.schema.properties) {
153
+ param = {};
154
+ Object.keys(this.schema.properties).forEach(key => {
155
+ const schemaProperty = this.schema.properties[key];
156
+ if (schemaProperty.type === 'object') {
157
+ param[schemaProperty.id] = {};
158
+ }
159
+ else if (schemaProperty.type === 'array') {
160
+ param[schemaProperty.id] = [];
161
+ }
162
+ });
163
+ }
164
+ this.model[id].push(param);
165
+ }
166
+ addArrayLoop(id, mappingAttributes) {
167
+ this.model[id] = this.model[id] || [];
168
+ this.model[id].push({ loop: '', alias: '', mappingAttributes });
169
+ }
170
+ static ɵfac = /*@__PURE__*/ function () { let ɵSchemaArrayComponent_BaseFactory; return function SchemaArrayComponent_Factory(t) { return (ɵSchemaArrayComponent_BaseFactory || (ɵSchemaArrayComponent_BaseFactory = i0.ɵɵgetInheritedFactory(SchemaArrayComponent)))(t || SchemaArrayComponent); }; }();
171
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SchemaArrayComponent, selectors: [["schema-array"]], inputs: { requiredLabel: "requiredLabel", addItemLabel: "addItemLabel", addLoopLabel: "addLoopLabel", additionalAttributesLabel: "additionalAttributesLabel", customAttributeRemoveLabel: "customAttributeRemoveLabel", newCustomFieldNameLabel: "newCustomFieldNameLabel", newCustomFieldValueLabel: "newCustomFieldValueLabel", newCustomFieldAddLabel: "newCustomFieldAddLabel", newCustomFieldSaveLabel: "newCustomFieldSaveLabel", newCustomFieldCancelLabel: "newCustomFieldCancelLabel", selectPlaceHolderLabel: "selectPlaceHolderLabel", selectSearchPlaceHolderLabel: "selectSearchPlaceHolderLabel", selectClearLabel: "selectClearLabel", selectNotFoundLabel: "selectNotFoundLabel", idPrefix: "idPrefix", editing: "editing", index: "index" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "addItemLabel", "addLoopLabel", "label", "removeLabel", "model", "showAddLoop", "modelChange", "onAdd", "onAddLoop"], [3, "selectPlaceHolderLabel", "selectSearchPlaceHolderLabel", "selectClearLabel", "selectNotFoundLabel", "requiredLabel", "addItemLabel", "addLoopLabel", "additionalAttributesLabel", "customAttributeRemoveLabel", "newCustomFieldNameLabel", "newCustomFieldValueLabel", "newCustomFieldAddLabel", "newCustomFieldSaveLabel", "newCustomFieldCancelLabel", "idPrefix", "model", "schemas", "editing", "modelChange", 4, "ngIf"], ["class", "row struct-custom-properties", 4, "ngIf"], [3, "selectPlaceHolderLabel", "selectSearchPlaceHolderLabel", "selectClearLabel", "selectNotFoundLabel", "requiredLabel", "addItemLabel", "addLoopLabel", "additionalAttributesLabel", "customAttributeRemoveLabel", "newCustomFieldNameLabel", "newCustomFieldValueLabel", "newCustomFieldAddLabel", "newCustomFieldSaveLabel", "newCustomFieldCancelLabel", "idPrefix", "model", "schemas", "editing", "modelChange"], [1, "row", "struct-custom-properties"], [1, "col-md-12"], [1, "info-label", "bold"], [3, "customAttributeRemoveLabel", "newCustomFieldNameLabel", "newCustomFieldValueLabel", "newCustomFieldAddLabel", "newCustomFieldSaveLabel", "newCustomFieldCancelLabel", "model", "onDropFunction", "modelChange"], [1, "info-label", 3, "htmlFor"], ["class", "form-control", "type", "text", "dndDropzone", "", 3, "ngModel", "ngModelOptions", "id", "ngModelChange", "dndDrop", 4, "ngIf", "ngIfElse"], ["elseBlock", ""], ["type", "text", "dndDropzone", "", 1, "form-control", 3, "ngModel", "ngModelOptions", "id", "ngModelChange", "dndDrop"]], template: function SchemaArrayComponent_Template(rf, ctx) { if (rf & 1) {
172
+ i0.ɵɵtemplate(0, SchemaArrayComponent_div_0_Template, 3, 6, "div", 0);
173
+ i0.ɵɵtemplate(1, SchemaArrayComponent_div_1_Template, 3, 6, "div", 0);
174
+ } if (rf & 2) {
175
+ i0.ɵɵproperty("ngIf", ctx.loaded && ctx.canRender(ctx.schema) && ctx.schema.type === "array" && ctx.schema.properties);
176
+ i0.ɵɵadvance(1);
177
+ i0.ɵɵproperty("ngIf", ctx.schema && ctx.canRender(ctx.schema) && ctx.schema.type === "array" && !ctx.schema.properties);
178
+ } }, dependencies: [i1.NgIf, i2.DndDropzoneDirective, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.ArraySessionComponent, i5.SchemaFormComponent, i6.SchemaCustomAttributesComponent] });
179
+ }
180
+ export { SchemaArrayComponent };
181
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchemaArrayComponent, [{
182
+ type: Component,
183
+ args: [{ selector: 'schema-array', template: "<div *ngIf=\"loaded && canRender(schema) && schema.type === 'array' && schema.properties\">\n <array-session\n [addItemLabel]=\"addItemLabel\"\n [addLoopLabel]=\"addLoopLabel\"\n [label]=\"schema.title\"\n [removeLabel]=\"schema.title\"\n [(model)]=\"this.model[schema.id]\"\n [showAddLoop]=\"schema.withoutLoop !== true\"\n (onAdd)=\"addArrayItem(schema.id, {})\"\n (onAddLoop)=\"addArrayLoop(schema.id, {})\">\n <ng-template let-item>\n <schema-form\n *ngIf=\"this.model[schema.id][item.index].loop !== undefined\"\n [selectPlaceHolderLabel]=\"selectPlaceHolderLabel\"\n [selectSearchPlaceHolderLabel]=\"selectSearchPlaceHolderLabel\"\n [selectClearLabel]=\"selectClearLabel\"\n [selectNotFoundLabel]=\"selectNotFoundLabel\"\n [requiredLabel]=\"requiredLabel\"\n [addItemLabel]=\"addItemLabel\"\n [addLoopLabel]=\"addLoopLabel\"\n [additionalAttributesLabel]=\"additionalAttributesLabel\"\n [customAttributeRemoveLabel]=\"customAttributeRemoveLabel\"\n [newCustomFieldNameLabel]=\"newCustomFieldNameLabel\"\n [newCustomFieldValueLabel]=\"newCustomFieldValueLabel\"\n [newCustomFieldAddLabel]=\"newCustomFieldAddLabel\"\n [newCustomFieldSaveLabel]=\"newCustomFieldSaveLabel\"\n [newCustomFieldCancelLabel]=\"newCustomFieldCancelLabel\"\n [idPrefix]=\"idPrefix\"\n [(model)]=\"this.model[schema.id][item.index].mappingAttributes\"\n [schemas]=\"getSchemaProperties()\"\n [editing]=\"this.editing\">\n </schema-form>\n <schema-form\n *ngIf=\"this.model[schema.id][item.index].loop == undefined\"\n [selectPlaceHolderLabel]=\"selectPlaceHolderLabel\"\n [selectSearchPlaceHolderLabel]=\"selectSearchPlaceHolderLabel\"\n [selectClearLabel]=\"selectClearLabel\"\n [selectNotFoundLabel]=\"selectNotFoundLabel\"\n [requiredLabel]=\"requiredLabel\"\n [addItemLabel]=\"addItemLabel\"\n [addLoopLabel]=\"addLoopLabel\"\n [additionalAttributesLabel]=\"additionalAttributesLabel\"\n [customAttributeRemoveLabel]=\"customAttributeRemoveLabel\"\n [newCustomFieldNameLabel]=\"newCustomFieldNameLabel\"\n [newCustomFieldValueLabel]=\"newCustomFieldValueLabel\"\n [newCustomFieldAddLabel]=\"newCustomFieldAddLabel\"\n [newCustomFieldSaveLabel]=\"newCustomFieldSaveLabel\"\n [newCustomFieldCancelLabel]=\"newCustomFieldCancelLabel\"\n [idPrefix]=\"idPrefix\"\n [(model)]=\"this.model[schema.id][item.index]\"\n [schemas]=\"getSchemaProperties()\"\n [editing]=\"this.editing\">\n </schema-form>\n\n <div class=\"row struct-custom-properties\" *ngIf=\"this.model[schema.id][item.index] && schema.customProperties\">\n <div class=\"col-md-12\">\n <label class=\"info-label bold\">{{ this.additionalAttributesLabel }}</label>\n <schema-custom-attributes\n [customAttributeRemoveLabel]=\"customAttributeRemoveLabel\"\n [newCustomFieldNameLabel]=\"newCustomFieldNameLabel\"\n [newCustomFieldValueLabel]=\"newCustomFieldValueLabel\"\n [newCustomFieldAddLabel]=\"newCustomFieldAddLabel\"\n [newCustomFieldSaveLabel]=\"newCustomFieldSaveLabel\"\n [newCustomFieldCancelLabel]=\"newCustomFieldCancelLabel\"\n [(model)]=\"this.model[schema.id][item.index].customAttributes\"\n [onDropFunction]=\"onDrop\">\n </schema-custom-attributes>\n </div>\n </div>\n\n </ng-template>\n </array-session>\n</div>\n<div *ngIf=\"schema && canRender(schema) && schema.type === 'array' && !schema.properties\">\n <array-session\n [addItemLabel]=\"addItemLabel\"\n [addLoopLabel]=\"addLoopLabel\"\n [label]=\"schema.title\"\n [removeLabel]=\"schema.title\"\n [(model)]=\"this.model[schema.id]\"\n [showAddLoop]=\"schema.withoutLoop !== true\"\n (onAdd)=\"addArrayItem(schema.id, '')\"\n (onAddLoop)=\"addArrayLoop(schema.id, '')\"\n >\n <ng-template let-item>\n <label class=\"info-label\" [htmlFor]=\"getId(index)+'-'+item.index\">{{ schema.title }}</label>\n <input class=\"form-control\" type=\"text\" [(ngModel)]=\"item.items[item.index].mappingAttributes\"\n [ngModelOptions]=\"{standalone: true}\" dndDropzone\n (dndDrop)=\"item.items[item.index].mappingAttributes = this.onDrop($event, item.items[item.index].mappingAttributes)\"\n *ngIf=\"item.items[item.index].mappingAttributes || item.items[item.index].mappingAttributes === ''; else elseBlock\"\n [id]=\"getId(index)+'-'+item.index\"/>\n <ng-template #elseBlock>\n <input class=\"form-control\" type=\"text\" [(ngModel)]=\"item.items[item.index]\"\n [ngModelOptions]=\"{standalone: true}\" dndDropzone\n (dndDrop)=\"item.items[item.index] = this.onDrop($event, item.items[item.index])\"\n [id]=\"getId(index)+'-'+item.index\"/>\n </ng-template>\n </ng-template>\n </array-session>\n</div>\n" }]
184
+ }], null, { requiredLabel: [{
185
+ type: Input
186
+ }], addItemLabel: [{
187
+ type: Input
188
+ }], addLoopLabel: [{
189
+ type: Input
190
+ }], additionalAttributesLabel: [{
191
+ type: Input
192
+ }], customAttributeRemoveLabel: [{
193
+ type: Input
194
+ }], newCustomFieldNameLabel: [{
195
+ type: Input
196
+ }], newCustomFieldValueLabel: [{
197
+ type: Input
198
+ }], newCustomFieldAddLabel: [{
199
+ type: Input
200
+ }], newCustomFieldSaveLabel: [{
201
+ type: Input
202
+ }], newCustomFieldCancelLabel: [{
203
+ type: Input
204
+ }], selectPlaceHolderLabel: [{
205
+ type: Input
206
+ }], selectSearchPlaceHolderLabel: [{
207
+ type: Input
208
+ }], selectClearLabel: [{
209
+ type: Input
210
+ }], selectNotFoundLabel: [{
211
+ type: Input
212
+ }], idPrefix: [{
213
+ type: Input
214
+ }], editing: [{
215
+ type: Input
216
+ }], index: [{
217
+ type: Input
218
+ }] }); })();
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvc2NoZW1hLWZvcm0vc2NoZW1hLWFycmF5L3NjaGVtYS1hcnJheS50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaGVtYXMvc3JjL3NjaGVtYS1mb3JtL3NjaGVtYS1hcnJheS9zY2hlbWEtYXJyYXkuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7Ozs7Ozs7O0lDUzNDLHNDQW1CMkI7SUFGekIsbVFBQVcsd0ZBQ2IsSUFEaUU7SUFHakUsaUJBQWM7Ozs7SUFsQlosc0VBQWlELHFFQUFBLDZDQUFBLG1EQUFBLHVDQUFBLHFDQUFBLHFDQUFBLCtEQUFBLGlFQUFBLDJEQUFBLDZEQUFBLHlEQUFBLDJEQUFBLCtEQUFBLDZCQUFBLDBFQUFBLHlDQUFBLDJCQUFBOzs7O0lBbUJuRCxzQ0FtQjJCO0lBRnpCLG1WQUE2QztJQUcvQyxpQkFBYzs7OztJQWxCWixzRUFBaUQscUVBQUEsNkNBQUEsbURBQUEsdUNBQUEscUNBQUEscUNBQUEsK0RBQUEsaUVBQUEsMkRBQUEsNkRBQUEseURBQUEsMkRBQUEsK0RBQUEsNkJBQUEsd0RBQUEseUNBQUEsMkJBQUE7Ozs7SUFvQm5ELDhCQUErRyxhQUFBLGVBQUE7SUFFNUUsWUFBb0M7SUFBQSxpQkFBUTtJQUMzRSxtREFRNEI7SUFEMUIsMFFBQVcseUZBQ2pCLElBRG9FO0lBRWhFLGlCQUEyQixFQUFBLEVBQUE7Ozs7SUFWSSxlQUFvQztJQUFwQyxzREFBb0M7SUFFakUsZUFBeUQ7SUFBekQsOEVBQXlELDJEQUFBLDZEQUFB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OzZEQUFwQixvQkFBb0I7WUNWakMscUVBd0VNO1lBQ04scUVBMEJNOztZQW5HQSxzSEFBaUY7WUF5RWpGLGVBQWtGO1lBQWxGLHVIQUFrRjs7O1NEL0QzRSxvQkFBb0I7dUZBQXBCLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLGNBQWM7Z0JBTVIsYUFBYTtrQkFBNUIsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUFDVSxZQUFZO2tCQUEzQixLQUFLO1lBQ1UseUJBQXlCO2tCQUF4QyxLQUFLO1lBQ1UsMEJBQTBCO2tCQUF6QyxLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBQ1Usd0JBQXdCO2tCQUF2QyxLQUFLO1lBQ1Usc0JBQXNCO2tCQUFyQyxLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBQ1UseUJBQXlCO2tCQUF4QyxLQUFLO1lBQ1Usc0JBQXNCO2tCQUFyQyxLQUFLO1lBQ1UsNEJBQTRCO2tCQUEzQyxLQUFLO1lBQ1UsZ0JBQWdCO2tCQUEvQixLQUFLO1lBQ1UsbUJBQW1CO2tCQUFsQyxLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmFzZVNjaGVtYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2Utc2NoZW1hLmNvbXBvbmVudCdcbmltcG9ydCB7IG9uRHJvcFN0cnVjdCB9IGZyb20gJy4uLy4uL3N0cnVjdC51dGlscydcbmltcG9ydCB7IERuZERyb3BFdmVudCB9IGZyb20gJ25neC1kcmFnLWRyb3AnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NjaGVtYS1hcnJheScsXG4gIHRlbXBsYXRlVXJsOiAnc2NoZW1hLWFycmF5Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2hlbWEtYXJyYXkuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNjaGVtYUFycmF5Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNjaGVtYUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZExhYmVsID0gJyhyZXF1aXJlZCknXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRJdGVtTGFiZWwgPSAnQWRkIEl0ZW0nXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRMb29wTGFiZWwgPSAnQWRkIExvb3AnXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRpdGlvbmFsQXR0cmlidXRlc0xhYmVsID0gJ0FkZGl0aW9uYWwgRmllbGRzJ1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQXR0cmlidXRlUmVtb3ZlTGFiZWwgPSAnUmVtb3ZlJ1xuICBASW5wdXQoKSBwdWJsaWMgbmV3Q3VzdG9tRmllbGROYW1lTGFiZWwgPSAnTmFtZSdcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkVmFsdWVMYWJlbCA9ICdWYWx1ZSdcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkQWRkTGFiZWwgPSAnQWRkJ1xuICBASW5wdXQoKSBwdWJsaWMgbmV3Q3VzdG9tRmllbGRTYXZlTGFiZWwgPSAnU2F2ZSdcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkQ2FuY2VsTGFiZWwgPSAnQ2FuY2VsJ1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0UGxhY2VIb2xkZXJMYWJlbCA9ICdTZWxlY3QgSXRlbSdcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdFNlYXJjaFBsYWNlSG9sZGVyTGFiZWwgPSAnU2VhcmNoJ1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0Q2xlYXJMYWJlbCA9ICdDbGVhcidcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdE5vdEZvdW5kTGFiZWwgPSAnTm8gSXRlbXMgRm91bmQnXG5cbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBlZGl0aW5nID0gZmFsc2VcbiAgQElucHV0KCkgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZFxuXG4gIGxvYWRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2NoZW1hPy50eXBlID09PSAnYXJyYXknICYmIHRoaXMubW9kZWwgJiYgIXRoaXMubW9kZWxbdGhpcy5zY2hlbWEuaWRdKSB7XG4gICAgICB0aGlzLm1vZGVsW3RoaXMuc2NoZW1hLmlkXSA9IFtdXG4gICAgfVxuICAgIHRoaXMubG9hZGVkID0gdHJ1ZVxuICB9XG5cbiAgb25Ecm9wICgkZXZlbnQ6IERuZERyb3BFdmVudCwgbW9kZWxFbGVtZW50OiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBvbkRyb3BTdHJ1Y3QoJGV2ZW50LCBtb2RlbEVsZW1lbnQpXG4gIH1cblxuICBnZXRJZCAoaW5kZXg6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaWRQcmVmaXh9LXN0cnVjdC0ke2luZGV4fWBcbiAgfVxuXG4gIGFkZEFycmF5SXRlbSAoaWQ6IGFueSwgcGFyYW06IGFueSk6IHZvaWQge1xuICAgIHRoaXMubW9kZWxbaWRdID0gdGhpcy5tb2RlbFtpZF0gfHwgW11cbiAgICBpZiAodGhpcy5zY2hlbWEucHJvcGVydGllcykge1xuICAgICAgcGFyYW0gPSB7fVxuICAgICAgT2JqZWN0LmtleXModGhpcy5zY2hlbWEucHJvcGVydGllcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBjb25zdCBzY2hlbWFQcm9wZXJ0eSA9IHRoaXMuc2NoZW1hLnByb3BlcnRpZXNba2V5XVxuICAgICAgICBpZiAoc2NoZW1hUHJvcGVydHkudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBwYXJhbVtzY2hlbWFQcm9wZXJ0eS5pZF0gPSB7fVxuICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYVByb3BlcnR5LnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgICBwYXJhbVtzY2hlbWFQcm9wZXJ0eS5pZF0gPSBbXVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICB0aGlzLm1vZGVsW2lkXS5wdXNoKHBhcmFtKVxuICB9XG5cbiAgYWRkQXJyYXlMb29wIChpZDogYW55LCBtYXBwaW5nQXR0cmlidXRlczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbFtpZF0gPSB0aGlzLm1vZGVsW2lkXSB8fCBbXVxuICAgIHRoaXMubW9kZWxbaWRdLnB1c2goeyBsb29wOiAnJywgYWxpYXM6ICcnLCBtYXBwaW5nQXR0cmlidXRlcyB9KVxuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJsb2FkZWQgJiYgY2FuUmVuZGVyKHNjaGVtYSkgJiYgc2NoZW1hLnR5cGUgPT09ICdhcnJheScgJiYgc2NoZW1hLnByb3BlcnRpZXNcIj5cbiAgPGFycmF5LXNlc3Npb25cbiAgICBbYWRkSXRlbUxhYmVsXT1cImFkZEl0ZW1MYWJlbFwiXG4gICAgW2FkZExvb3BMYWJlbF09XCJhZGRMb29wTGFiZWxcIlxuICAgIFtsYWJlbF09XCJzY2hlbWEudGl0bGVcIlxuICAgIFtyZW1vdmVMYWJlbF09XCJzY2hlbWEudGl0bGVcIlxuICAgIFsobW9kZWwpXT1cInRoaXMubW9kZWxbc2NoZW1hLmlkXVwiXG4gICAgW3Nob3dBZGRMb29wXT1cInNjaGVtYS53aXRob3V0TG9vcCAhPT0gdHJ1ZVwiXG4gICAgKG9uQWRkKT1cImFkZEFycmF5SXRlbShzY2hlbWEuaWQsIHt9KVwiXG4gICAgKG9uQWRkTG9vcCk9XCJhZGRBcnJheUxvb3Aoc2NoZW1hLmlkLCB7fSlcIj5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0+XG4gICAgICA8c2NoZW1hLWZvcm1cbiAgICAgICAgKm5nSWY9XCJ0aGlzLm1vZGVsW3NjaGVtYS5pZF1baXRlbS5pbmRleF0ubG9vcCAhPT0gdW5kZWZpbmVkXCJcbiAgICAgICAgW3NlbGVjdFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0UGxhY2VIb2xkZXJMYWJlbFwiXG4gICAgICAgIFtzZWxlY3RTZWFyY2hQbGFjZUhvbGRlckxhYmVsXT1cInNlbGVjdFNlYXJjaFBsYWNlSG9sZGVyTGFiZWxcIlxuICAgICAgICBbc2VsZWN0Q2xlYXJMYWJlbF09XCJzZWxlY3RDbGVhckxhYmVsXCJcbiAgICAgICAgW3NlbGVjdE5vdEZvdW5kTGFiZWxdPVwic2VsZWN0Tm90Rm91bmRMYWJlbFwiXG4gICAgICAgIFtyZXF1aXJlZExhYmVsXT1cInJlcXVpcmVkTGFiZWxcIlxuICAgICAgICBbYWRkSXRlbUxhYmVsXT1cImFkZEl0ZW1MYWJlbFwiXG4gICAgICAgIFthZGRMb29wTGFiZWxdPVwiYWRkTG9vcExhYmVsXCJcbiAgICAgICAgW2FkZGl0aW9uYWxBdHRyaWJ1dGVzTGFiZWxdPVwiYWRkaXRpb25hbEF0dHJpYnV0ZXNMYWJlbFwiXG4gICAgICAgIFtjdXN0b21BdHRyaWJ1dGVSZW1vdmVMYWJlbF09XCJjdXN0b21BdHRyaWJ1dGVSZW1vdmVMYWJlbFwiXG4gICAgICAgIFtuZXdDdXN0b21GaWVsZE5hbWVMYWJlbF09XCJuZXdDdXN0b21GaWVsZE5hbWVMYWJlbFwiXG4gICAgICAgIFtuZXdDdXN0b21GaWVsZFZhbHVlTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRWYWx1ZUxhYmVsXCJcbiAgICAgICAgW25ld0N1c3RvbUZpZWxkQWRkTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRBZGRMYWJlbFwiXG4gICAgICAgIFtuZXdDdXN0b21GaWVsZFNhdmVMYWJlbF09XCJuZXdDdXN0b21GaWVsZFNhdmVMYWJlbFwiXG4gICAgICAgIFtuZXdDdXN0b21GaWVsZENhbmNlbExhYmVsXT1cIm5ld0N1c3RvbUZpZWxkQ2FuY2VsTGFiZWxcIlxuICAgICAgICBbaWRQcmVmaXhdPVwiaWRQcmVmaXhcIlxuICAgICAgICBbKG1vZGVsKV09XCJ0aGlzLm1vZGVsW3NjaGVtYS5pZF1baXRlbS5pbmRleF0ubWFwcGluZ0F0dHJpYnV0ZXNcIlxuICAgICAgICBbc2NoZW1hc109XCJnZXRTY2hlbWFQcm9wZXJ0aWVzKClcIlxuICAgICAgICBbZWRpdGluZ109XCJ0aGlzLmVkaXRpbmdcIj5cbiAgICAgIDwvc2NoZW1hLWZvcm0+XG4gICAgICA8c2NoZW1hLWZvcm1cbiAgICAgICAgKm5nSWY9XCJ0aGlzLm1vZGVsW3NjaGVtYS5pZF1baXRlbS5pbmRleF0ubG9vcCA9PSB1bmRlZmluZWRcIlxuICAgICAgICBbc2VsZWN0UGxhY2VIb2xkZXJMYWJlbF09XCJzZWxlY3RQbGFjZUhvbGRlckxhYmVsXCJcbiAgICAgICAgW3NlbGVjdFNlYXJjaFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0U2VhcmNoUGxhY2VIb2xkZXJMYWJlbFwiXG4gICAgICAgIFtzZWxlY3RDbGVhckxhYmVsXT1cInNlbGVjdENsZWFyTGFiZWxcIlxuICAgICAgICBbc2VsZWN0Tm90Rm91bmRMYWJlbF09XCJzZWxlY3ROb3RGb3VuZExhYmVsXCJcbiAgICAgICAgW3JlcXVpcmVkTGFiZWxdPVwicmVxdWlyZWRMYWJlbFwiXG4gICAgICAgIFthZGRJdGVtTGFiZWxdPVwiYWRkSXRlbUxhYmVsXCJcbiAgICAgICAgW2FkZExvb3BMYWJlbF09XCJhZGRMb29wTGFiZWxcIlxuICAgICAgICBbYWRkaXRpb25hbEF0dHJpYnV0ZXNMYWJlbF09XCJhZGRpdGlvbmFsQXR0cmlidXRlc0xhYmVsXCJcbiAgICAgICAgW2N1c3RvbUF0dHJpYnV0ZVJlbW92ZUxhYmVsXT1cImN1c3RvbUF0dHJpYnV0ZVJlbW92ZUxhYmVsXCJcbiAgICAgICAgW25ld0N1c3RvbUZpZWxkTmFtZUxhYmVsXT1cIm5ld0N1c3RvbUZpZWxkTmFtZUxhYmVsXCJcbiAgICAgICAgW25ld0N1c3RvbUZpZWxkVmFsdWVMYWJlbF09XCJuZXdDdXN0b21GaWVsZFZhbHVlTGFiZWxcIlxuICAgICAgICBbbmV3Q3VzdG9tRmllbGRBZGRMYWJlbF09XCJuZXdDdXN0b21GaWVsZEFkZExhYmVsXCJcbiAgICAgICAgW25ld0N1c3RvbUZpZWxkU2F2ZUxhYmVsXT1cIm5ld0N1c3RvbUZpZWxkU2F2ZUxhYmVsXCJcbiAgICAgICAgW25ld0N1c3RvbUZpZWxkQ2FuY2VsTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRDYW5jZWxMYWJlbFwiXG4gICAgICAgIFtpZFByZWZpeF09XCJpZFByZWZpeFwiXG4gICAgICAgIFsobW9kZWwpXT1cInRoaXMubW9kZWxbc2NoZW1hLmlkXVtpdGVtLmluZGV4XVwiXG4gICAgICAgIFtzY2hlbWFzXT1cImdldFNjaGVtYVByb3BlcnRpZXMoKVwiXG4gICAgICAgIFtlZGl0aW5nXT1cInRoaXMuZWRpdGluZ1wiPlxuICAgICAgPC9zY2hlbWEtZm9ybT5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBzdHJ1Y3QtY3VzdG9tLXByb3BlcnRpZXNcIiAqbmdJZj1cInRoaXMubW9kZWxbc2NoZW1hLmlkXVtpdGVtLmluZGV4XSAmJiBzY2hlbWEuY3VzdG9tUHJvcGVydGllc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1sYWJlbCBib2xkXCI+e3sgdGhpcy5hZGRpdGlvbmFsQXR0cmlidXRlc0xhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICA8c2NoZW1hLWN1c3RvbS1hdHRyaWJ1dGVzXG4gICAgICAgICAgICBbY3VzdG9tQXR0cmlidXRlUmVtb3ZlTGFiZWxdPVwiY3VzdG9tQXR0cmlidXRlUmVtb3ZlTGFiZWxcIlxuICAgICAgICAgICAgW25ld0N1c3RvbUZpZWxkTmFtZUxhYmVsXT1cIm5ld0N1c3RvbUZpZWxkTmFtZUxhYmVsXCJcbiAgICAgICAgICAgIFtuZXdDdXN0b21GaWVsZFZhbHVlTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRWYWx1ZUxhYmVsXCJcbiAgICAgICAgICAgIFtuZXdDdXN0b21GaWVsZEFkZExhYmVsXT1cIm5ld0N1c3RvbUZpZWxkQWRkTGFiZWxcIlxuICAgICAgICAgICAgW25ld0N1c3RvbUZpZWxkU2F2ZUxhYmVsXT1cIm5ld0N1c3RvbUZpZWxkU2F2ZUxhYmVsXCJcbiAgICAgICAgICAgIFtuZXdDdXN0b21GaWVsZENhbmNlbExhYmVsXT1cIm5ld0N1c3RvbUZpZWxkQ2FuY2VsTGFiZWxcIlxuICAgICAgICAgICAgWyhtb2RlbCldPVwidGhpcy5tb2RlbFtzY2hlbWEuaWRdW2l0ZW0uaW5kZXhdLmN1c3RvbUF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgW29uRHJvcEZ1bmN0aW9uXT1cIm9uRHJvcFwiPlxuICAgICAgICAgIDwvc2NoZW1hLWN1c3RvbS1hdHRyaWJ1dGVzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hcnJheS1zZXNzaW9uPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwic2NoZW1hICYmIGNhblJlbmRlcihzY2hlbWEpICYmIHNjaGVtYS50eXBlID09PSAnYXJyYXknICYmICFzY2hlbWEucHJvcGVydGllc1wiPlxuICA8YXJyYXktc2Vzc2lvblxuICAgIFthZGRJdGVtTGFiZWxdPVwiYWRkSXRlbUxhYmVsXCJcbiAgICBbYWRkTG9vcExhYmVsXT1cImFkZExvb3BMYWJlbFwiXG4gICAgW2xhYmVsXT1cInNjaGVtYS50aXRsZVwiXG4gICAgW3JlbW92ZUxhYmVsXT1cInNjaGVtYS50aXRsZVwiXG4gICAgWyhtb2RlbCldPVwidGhpcy5tb2RlbFtzY2hlbWEuaWRdXCJcbiAgICBbc2hvd0FkZExvb3BdPVwic2NoZW1hLndpdGhvdXRMb29wICE9PSB0cnVlXCJcbiAgICAob25BZGQpPVwiYWRkQXJyYXlJdGVtKHNjaGVtYS5pZCwgJycpXCJcbiAgICAob25BZGRMb29wKT1cImFkZEFycmF5TG9vcChzY2hlbWEuaWQsICcnKVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbmZvLWxhYmVsXCIgW2h0bWxGb3JdPVwiZ2V0SWQoaW5kZXgpKyctJytpdGVtLmluZGV4XCI+e3sgc2NoZW1hLnRpdGxlIH19PC9sYWJlbD5cbiAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJpdGVtLml0ZW1zW2l0ZW0uaW5kZXhdLm1hcHBpbmdBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgZG5kRHJvcHpvbmVcbiAgICAgICAgICAgICAoZG5kRHJvcCk9XCJpdGVtLml0ZW1zW2l0ZW0uaW5kZXhdLm1hcHBpbmdBdHRyaWJ1dGVzID0gdGhpcy5vbkRyb3AoJGV2ZW50LCBpdGVtLml0ZW1zW2l0ZW0uaW5kZXhdLm1hcHBpbmdBdHRyaWJ1dGVzKVwiXG4gICAgICAgICAgICAgKm5nSWY9XCJpdGVtLml0ZW1zW2l0ZW0uaW5kZXhdLm1hcHBpbmdBdHRyaWJ1dGVzIHx8IGl0ZW0uaXRlbXNbaXRlbS5pbmRleF0ubWFwcGluZ0F0dHJpYnV0ZXMgPT09ICcnOyBlbHNlIGVsc2VCbG9ja1wiXG4gICAgICAgICAgICAgW2lkXT1cImdldElkKGluZGV4KSsnLScraXRlbS5pbmRleFwiLz5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUJsb2NrPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiaXRlbS5pdGVtc1tpdGVtLmluZGV4XVwiXG4gICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgZG5kRHJvcHpvbmVcbiAgICAgICAgICAgICAgIChkbmREcm9wKT1cIml0ZW0uaXRlbXNbaXRlbS5pbmRleF0gPSB0aGlzLm9uRHJvcCgkZXZlbnQsIGl0ZW0uaXRlbXNbaXRlbS5pbmRleF0pXCJcbiAgICAgICAgICAgICAgIFtpZF09XCJnZXRJZChpbmRleCkrJy0nK2l0ZW0uaW5kZXhcIi8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvYXJyYXktc2Vzc2lvbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,107 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BaseSchemaComponent } from '../base-schema.component';
3
+ import { onDropStruct } from '../struct.utils';
4
+ import * as i0 from "@angular/core";
5
+ function SchemaFormComponent_div_0_Template(rf, ctx) { if (rf & 1) {
6
+ const _r4 = i0.ɵɵgetCurrentView();
7
+ i0.ɵɵelementStart(0, "div", 1)(1, "schema-input", 2);
8
+ i0.ɵɵlistener("modelChange", function SchemaFormComponent_div_0_Template_schema_input_modelChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.model = $event); });
9
+ i0.ɵɵelementEnd();
10
+ i0.ɵɵelementStart(2, "schema-object", 3);
11
+ i0.ɵɵlistener("modelChange", function SchemaFormComponent_div_0_Template_schema_object_modelChange_2_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.model = $event); });
12
+ i0.ɵɵelementEnd();
13
+ i0.ɵɵelementStart(3, "schema-array", 3);
14
+ i0.ɵɵlistener("modelChange", function SchemaFormComponent_div_0_Template_schema_array_modelChange_3_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.model = $event); });
15
+ i0.ɵɵelementEnd()();
16
+ } if (rf & 2) {
17
+ const schema_r1 = ctx.$implicit;
18
+ const i_r2 = ctx.index;
19
+ const ctx_r0 = i0.ɵɵnextContext();
20
+ i0.ɵɵadvance(1);
21
+ i0.ɵɵproperty("selectPlaceHolderLabel", ctx_r0.selectPlaceHolderLabel)("selectSearchPlaceHolderLabel", ctx_r0.selectSearchPlaceHolderLabel)("selectClearLabel", ctx_r0.selectClearLabel)("selectNotFoundLabel", ctx_r0.selectNotFoundLabel)("requiredLabel", ctx_r0.requiredLabel)("idPrefix", ctx_r0.idPrefix)("model", ctx_r0.model)("schema", schema_r1)("editing", ctx_r0.editing)("index", i_r2);
22
+ i0.ɵɵadvance(1);
23
+ i0.ɵɵproperty("selectPlaceHolderLabel", ctx_r0.selectPlaceHolderLabel)("selectSearchPlaceHolderLabel", ctx_r0.selectSearchPlaceHolderLabel)("selectClearLabel", ctx_r0.selectClearLabel)("selectNotFoundLabel", ctx_r0.selectNotFoundLabel)("requiredLabel", ctx_r0.requiredLabel)("addItemLabel", ctx_r0.addItemLabel)("addLoopLabel", ctx_r0.addLoopLabel)("additionalAttributesLabel", ctx_r0.additionalAttributesLabel)("customAttributeRemoveLabel", ctx_r0.customAttributeRemoveLabel)("newCustomFieldNameLabel", ctx_r0.newCustomFieldNameLabel)("newCustomFieldValueLabel", ctx_r0.newCustomFieldValueLabel)("newCustomFieldAddLabel", ctx_r0.newCustomFieldAddLabel)("newCustomFieldSaveLabel", ctx_r0.newCustomFieldSaveLabel)("newCustomFieldCancelLabel", ctx_r0.newCustomFieldCancelLabel)("idPrefix", ctx_r0.idPrefix)("model", ctx_r0.model)("schema", schema_r1)("editing", ctx_r0.editing)("index", i_r2);
24
+ i0.ɵɵadvance(1);
25
+ i0.ɵɵproperty("selectPlaceHolderLabel", ctx_r0.selectPlaceHolderLabel)("selectSearchPlaceHolderLabel", ctx_r0.selectSearchPlaceHolderLabel)("selectClearLabel", ctx_r0.selectClearLabel)("selectNotFoundLabel", ctx_r0.selectNotFoundLabel)("requiredLabel", ctx_r0.requiredLabel)("addItemLabel", ctx_r0.addItemLabel)("addLoopLabel", ctx_r0.addLoopLabel)("additionalAttributesLabel", ctx_r0.additionalAttributesLabel)("customAttributeRemoveLabel", ctx_r0.customAttributeRemoveLabel)("newCustomFieldNameLabel", ctx_r0.newCustomFieldNameLabel)("newCustomFieldValueLabel", ctx_r0.newCustomFieldValueLabel)("newCustomFieldAddLabel", ctx_r0.newCustomFieldAddLabel)("newCustomFieldSaveLabel", ctx_r0.newCustomFieldSaveLabel)("newCustomFieldCancelLabel", ctx_r0.newCustomFieldCancelLabel)("idPrefix", ctx_r0.idPrefix)("model", ctx_r0.model)("schema", schema_r1)("editing", ctx_r0.editing)("index", i_r2);
26
+ } }
27
+ class SchemaFormComponent extends BaseSchemaComponent {
28
+ requiredLabel = '(required)';
29
+ addItemLabel = 'Add Item';
30
+ addLoopLabel = 'Add Loop';
31
+ additionalAttributesLabel = 'Additional Fields';
32
+ customAttributeRemoveLabel = 'Remove';
33
+ newCustomFieldNameLabel = 'Name';
34
+ newCustomFieldValueLabel = 'Value';
35
+ newCustomFieldAddLabel = 'Add';
36
+ newCustomFieldSaveLabel = 'Save';
37
+ newCustomFieldCancelLabel = 'Cancel';
38
+ selectPlaceHolderLabel = 'Select Item';
39
+ selectSearchPlaceHolderLabel = 'Search';
40
+ selectClearLabel = 'Clear';
41
+ selectNotFoundLabel = 'No Items Found';
42
+ idPrefix;
43
+ schemas = [];
44
+ customProperties = false;
45
+ editing = false;
46
+ inputType;
47
+ loaded = false;
48
+ ngAfterContentInit() {
49
+ this.loaded = true;
50
+ }
51
+ onDrop($event, modelElement) {
52
+ return onDropStruct($event, modelElement);
53
+ }
54
+ getId(index) {
55
+ return `${this.idPrefix}-struct-${index}`;
56
+ }
57
+ static ɵfac = /*@__PURE__*/ function () { let ɵSchemaFormComponent_BaseFactory; return function SchemaFormComponent_Factory(t) { return (ɵSchemaFormComponent_BaseFactory || (ɵSchemaFormComponent_BaseFactory = i0.ɵɵgetInheritedFactory(SchemaFormComponent)))(t || SchemaFormComponent); }; }();
58
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SchemaFormComponent, selectors: [["schema-form"]], inputs: { requiredLabel: "requiredLabel", addItemLabel: "addItemLabel", addLoopLabel: "addLoopLabel", additionalAttributesLabel: "additionalAttributesLabel", customAttributeRemoveLabel: "customAttributeRemoveLabel", newCustomFieldNameLabel: "newCustomFieldNameLabel", newCustomFieldValueLabel: "newCustomFieldValueLabel", newCustomFieldAddLabel: "newCustomFieldAddLabel", newCustomFieldSaveLabel: "newCustomFieldSaveLabel", newCustomFieldCancelLabel: "newCustomFieldCancelLabel", selectPlaceHolderLabel: "selectPlaceHolderLabel", selectSearchPlaceHolderLabel: "selectSearchPlaceHolderLabel", selectClearLabel: "selectClearLabel", selectNotFoundLabel: "selectNotFoundLabel", idPrefix: "idPrefix", schemas: "schemas", customProperties: "customProperties", editing: "editing", inputType: "inputType" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "schema-properties", 4, "ngFor", "ngForOf"], [1, "schema-properties"], [3, "selectPlaceHolderLabel", "selectSearchPlaceHolderLabel", "selectClearLabel", "selectNotFoundLabel", "requiredLabel", "idPrefix", "model", "schema", "editing", "index", "modelChange"], [3, "selectPlaceHolderLabel", "selectSearchPlaceHolderLabel", "selectClearLabel", "selectNotFoundLabel", "requiredLabel", "addItemLabel", "addLoopLabel", "additionalAttributesLabel", "customAttributeRemoveLabel", "newCustomFieldNameLabel", "newCustomFieldValueLabel", "newCustomFieldAddLabel", "newCustomFieldSaveLabel", "newCustomFieldCancelLabel", "idPrefix", "model", "schema", "editing", "index", "modelChange"]], template: function SchemaFormComponent_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵtemplate(0, SchemaFormComponent_div_0_Template, 4, 48, "div", 0);
60
+ } if (rf & 2) {
61
+ i0.ɵɵproperty("ngForOf", ctx.schemas);
62
+ } } });
63
+ }
64
+ export { SchemaFormComponent };
65
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchemaFormComponent, [{
66
+ type: Component,
67
+ args: [{ selector: 'schema-form', template: "<div class=\"schema-properties\" *ngFor=\"let schema of schemas; let i = index\">\n <schema-input\n [selectPlaceHolderLabel]=\"selectPlaceHolderLabel\"\n [selectSearchPlaceHolderLabel]=\"selectSearchPlaceHolderLabel\"\n [selectClearLabel]=\"selectClearLabel\"\n [selectNotFoundLabel]=\"selectNotFoundLabel\"\n [requiredLabel]=\"requiredLabel\"\n [idPrefix]=\"idPrefix\"\n [(model)]=\"model\"\n [schema]=\"schema\"\n [editing]=\"this.editing\"\n [index]=\"i\">\n </schema-input>\n <schema-object\n [selectPlaceHolderLabel]=\"selectPlaceHolderLabel\"\n [selectSearchPlaceHolderLabel]=\"selectSearchPlaceHolderLabel\"\n [selectClearLabel]=\"selectClearLabel\"\n [selectNotFoundLabel]=\"selectNotFoundLabel\"\n [requiredLabel]=\"requiredLabel\"\n [addItemLabel]=\"addItemLabel\"\n [addLoopLabel]=\"addLoopLabel\"\n [additionalAttributesLabel]=\"additionalAttributesLabel\"\n [customAttributeRemoveLabel]=\"customAttributeRemoveLabel\"\n [newCustomFieldNameLabel]=\"newCustomFieldNameLabel\"\n [newCustomFieldValueLabel]=\"newCustomFieldValueLabel\"\n [newCustomFieldAddLabel]=\"newCustomFieldAddLabel\"\n [newCustomFieldSaveLabel]=\"newCustomFieldSaveLabel\"\n [newCustomFieldCancelLabel]=\"newCustomFieldCancelLabel\"\n [idPrefix]=\"idPrefix\"\n [(model)]=\"model\"\n [schema]=\"schema\"\n [editing]=\"this.editing\"\n [index]=\"i\">\n </schema-object>\n <schema-array\n [selectPlaceHolderLabel]=\"selectPlaceHolderLabel\"\n [selectSearchPlaceHolderLabel]=\"selectSearchPlaceHolderLabel\"\n [selectClearLabel]=\"selectClearLabel\"\n [selectNotFoundLabel]=\"selectNotFoundLabel\"\n [requiredLabel]=\"requiredLabel\"\n [addItemLabel]=\"addItemLabel\"\n [addLoopLabel]=\"addLoopLabel\"\n [additionalAttributesLabel]=\"additionalAttributesLabel\"\n [customAttributeRemoveLabel]=\"customAttributeRemoveLabel\"\n [newCustomFieldNameLabel]=\"newCustomFieldNameLabel\"\n [newCustomFieldValueLabel]=\"newCustomFieldValueLabel\"\n [newCustomFieldAddLabel]=\"newCustomFieldAddLabel\"\n [newCustomFieldSaveLabel]=\"newCustomFieldSaveLabel\"\n [newCustomFieldCancelLabel]=\"newCustomFieldCancelLabel\"\n [idPrefix]=\"idPrefix\"\n [(model)]=\"model\"\n [schema]=\"schema\"\n [editing]=\"this.editing\"\n [index]=\"i\">\n </schema-array>\n</div>\n" }]
68
+ }], null, { requiredLabel: [{
69
+ type: Input
70
+ }], addItemLabel: [{
71
+ type: Input
72
+ }], addLoopLabel: [{
73
+ type: Input
74
+ }], additionalAttributesLabel: [{
75
+ type: Input
76
+ }], customAttributeRemoveLabel: [{
77
+ type: Input
78
+ }], newCustomFieldNameLabel: [{
79
+ type: Input
80
+ }], newCustomFieldValueLabel: [{
81
+ type: Input
82
+ }], newCustomFieldAddLabel: [{
83
+ type: Input
84
+ }], newCustomFieldSaveLabel: [{
85
+ type: Input
86
+ }], newCustomFieldCancelLabel: [{
87
+ type: Input
88
+ }], selectPlaceHolderLabel: [{
89
+ type: Input
90
+ }], selectSearchPlaceHolderLabel: [{
91
+ type: Input
92
+ }], selectClearLabel: [{
93
+ type: Input
94
+ }], selectNotFoundLabel: [{
95
+ type: Input
96
+ }], idPrefix: [{
97
+ type: Input
98
+ }], schemas: [{
99
+ type: Input
100
+ }], customProperties: [{
101
+ type: Input
102
+ }], editing: [{
103
+ type: Input
104
+ }], inputType: [{
105
+ type: Input
106
+ }] }); })();
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2hlbWFzL3NyYy9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaGVtYXMvc3JjL3NjaGVtYS1mb3JtL3NjaGVtYS1mb3JtLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7OztJQ0Y5Qyw4QkFBNkUsc0JBQUE7SUFRekUsaU9BQWlCO0lBSW5CLGlCQUFlO0lBQ2Ysd0NBbUJjO0lBSFosa09BQWlCO0lBSW5CLGlCQUFnQjtJQUNoQix1Q0FtQmM7SUFIWixpT0FBaUI7SUFJbkIsaUJBQWUsRUFBQTs7Ozs7SUFwRGIsZUFBaUQ7SUFBakQsc0VBQWlELHFFQUFBLDZDQUFBLG1EQUFBLHVDQUFBLDZCQUFBLHVCQUFBLHFCQUFBLDJCQUFBLGVBQUE7SUFZakQsZUFBaUQ7SUFBakQsc0VBQWlELHFFQUFBLDZDQUFBLG1EQUFBLHVDQUFBLHFDQUFBLHFDQUFBLCtEQUFBLGlFQUFBLDJEQUFBLDZEQUFBLHlEQUFBLDJEQUFBLCtEQUFBLDZCQUFBLHVCQUFBLHFCQUFBLDJCQUFBLGVBQUE7SUFxQmpELGVBQWlEO0lBQWpELHNFQUFpRCxxRUFBQSw2Q0FBQSxtREFBQSx1Q0FBQSxxQ0FBQSxxQ0FBQSwrREFBQSxpRUFBQSwyREFBQSw2REFBQSx5REFBQSwyREFBQSwrREFBQSw2QkFBQSx1QkFBQSxxQkFBQSwyQkFBQSxlQUFBOztBRDlCckQsTUFLYSxtQkFBb0IsU0FBUSxtQkFBbUI7SUFFMUMsYUFBYSxHQUFHLFlBQVksQ0FBQTtJQUM1QixZQUFZLEdBQUcsVUFBVSxDQUFBO0lBQ3pCLFlBQVksR0FBRyxVQUFVLENBQUE7SUFDekIseUJBQXlCLEdBQUcsbUJBQW1CLENBQUE7SUFDL0MsMEJBQTBCLEdBQUcsUUFBUSxDQUFBO0lBQ3JDLHVCQUF1QixHQUFHLE1BQU0sQ0FBQTtJQUNoQyx3QkFBd0IsR0FBRyxPQUFPLENBQUE7SUFDbEMsc0JBQXNCLEdBQUcsS0FBSyxDQUFBO0lBQzlCLHVCQUF1QixHQUFHLE1BQU0sQ0FBQTtJQUNoQyx5QkFBeUIsR0FBRyxRQUFRLENBQUE7SUFDcEMsc0JBQXNCLEdBQUcsYUFBYSxDQUFBO0lBQ3RDLDRCQUE0QixHQUFHLFFBQVEsQ0FBQTtJQUN2QyxnQkFBZ0IsR0FBRyxPQUFPLENBQUE7SUFDMUIsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUE7SUFFN0MsUUFBUSxDQUFvQjtJQUM1QixPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ1osZ0JBQWdCLEdBQUcsS0FBSyxDQUFBO0lBQ3hCLE9BQU8sR0FBRyxLQUFLLENBQUE7SUFDZixTQUFTLENBQW9CO0lBRXRDLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFFZCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBRSxNQUFvQixFQUFFLFlBQWlCO1FBQzdDLE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsS0FBSyxDQUFFLEtBQWE7UUFDbEIsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLFdBQVcsS0FBSyxFQUFFLENBQUE7SUFDM0MsQ0FBQzs4T0FuQ1UsbUJBQW1CLFNBQW5CLG1CQUFtQjs2REFBbkIsbUJBQW1CO1lDVmhDLHFFQXVETTs7WUF2RDRDLHFDQUFZOzs7U0RVakQsbUJBQW1CO3VGQUFuQixtQkFBbUI7Y0FML0IsU0FBUzsyQkFDRSxhQUFhO2dCQU1QLGFBQWE7a0JBQTVCLEtBQUs7WUFDVSxZQUFZO2tCQUEzQixLQUFLO1lBQ1UsWUFBWTtrQkFBM0IsS0FBSztZQUNVLHlCQUF5QjtrQkFBeEMsS0FBSztZQUNVLDBCQUEwQjtrQkFBekMsS0FBSztZQUNVLHVCQUF1QjtrQkFBdEMsS0FBSztZQUNVLHdCQUF3QjtrQkFBdkMsS0FBSztZQUNVLHNCQUFzQjtrQkFBckMsS0FBSztZQUNVLHVCQUF1QjtrQkFBdEMsS0FBSztZQUNVLHlCQUF5QjtrQkFBeEMsS0FBSztZQUNVLHNCQUFzQjtrQkFBckMsS0FBSztZQUNVLDRCQUE0QjtrQkFBM0MsS0FBSztZQUNVLGdCQUFnQjtrQkFBL0IsS0FBSztZQUNVLG1CQUFtQjtrQkFBbEMsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCYXNlU2NoZW1hQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1zY2hlbWEuY29tcG9uZW50J1xuaW1wb3J0IHsgb25Ecm9wU3RydWN0IH0gZnJvbSAnLi4vc3RydWN0LnV0aWxzJ1xuaW1wb3J0IHsgRG5kRHJvcEV2ZW50IH0gZnJvbSAnbmd4LWRyYWctZHJvcCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2NoZW1hLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJ3NjaGVtYS1mb3JtLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2hlbWEtZm9ybS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2NoZW1hRm9ybUNvbXBvbmVudCBleHRlbmRzIEJhc2VTY2hlbWFDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWRMYWJlbCA9ICcocmVxdWlyZWQpJ1xuICBASW5wdXQoKSBwdWJsaWMgYWRkSXRlbUxhYmVsID0gJ0FkZCBJdGVtJ1xuICBASW5wdXQoKSBwdWJsaWMgYWRkTG9vcExhYmVsID0gJ0FkZCBMb29wJ1xuICBASW5wdXQoKSBwdWJsaWMgYWRkaXRpb25hbEF0dHJpYnV0ZXNMYWJlbCA9ICdBZGRpdGlvbmFsIEZpZWxkcydcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUF0dHJpYnV0ZVJlbW92ZUxhYmVsID0gJ1JlbW92ZSdcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkTmFtZUxhYmVsID0gJ05hbWUnXG4gIEBJbnB1dCgpIHB1YmxpYyBuZXdDdXN0b21GaWVsZFZhbHVlTGFiZWwgPSAnVmFsdWUnXG4gIEBJbnB1dCgpIHB1YmxpYyBuZXdDdXN0b21GaWVsZEFkZExhYmVsID0gJ0FkZCdcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkU2F2ZUxhYmVsID0gJ1NhdmUnXG4gIEBJbnB1dCgpIHB1YmxpYyBuZXdDdXN0b21GaWVsZENhbmNlbExhYmVsID0gJ0NhbmNlbCdcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdFBsYWNlSG9sZGVyTGFiZWwgPSAnU2VsZWN0IEl0ZW0nXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RTZWFyY2hQbGFjZUhvbGRlckxhYmVsID0gJ1NlYXJjaCdcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdENsZWFyTGFiZWwgPSAnQ2xlYXInXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3ROb3RGb3VuZExhYmVsID0gJ05vIEl0ZW1zIEZvdW5kJ1xuXG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgc2NoZW1hcyA9IFtdXG4gIEBJbnB1dCgpIGN1c3RvbVByb3BlcnRpZXMgPSBmYWxzZVxuICBASW5wdXQoKSBlZGl0aW5nID0gZmFsc2VcbiAgQElucHV0KCkgaW5wdXRUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBsb2FkZWQgPSBmYWxzZVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkZWQgPSB0cnVlXG4gIH1cblxuICBvbkRyb3AgKCRldmVudDogRG5kRHJvcEV2ZW50LCBtb2RlbEVsZW1lbnQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIG9uRHJvcFN0cnVjdCgkZXZlbnQsIG1vZGVsRWxlbWVudClcbiAgfVxuXG4gIGdldElkIChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pZFByZWZpeH0tc3RydWN0LSR7aW5kZXh9YFxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY2hlbWEtcHJvcGVydGllc1wiICpuZ0Zvcj1cImxldCBzY2hlbWEgb2Ygc2NoZW1hczsgbGV0IGkgPSBpbmRleFwiPlxuICA8c2NoZW1hLWlucHV0XG4gICAgW3NlbGVjdFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0UGxhY2VIb2xkZXJMYWJlbFwiXG4gICAgW3NlbGVjdFNlYXJjaFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0U2VhcmNoUGxhY2VIb2xkZXJMYWJlbFwiXG4gICAgW3NlbGVjdENsZWFyTGFiZWxdPVwic2VsZWN0Q2xlYXJMYWJlbFwiXG4gICAgW3NlbGVjdE5vdEZvdW5kTGFiZWxdPVwic2VsZWN0Tm90Rm91bmRMYWJlbFwiXG4gICAgW3JlcXVpcmVkTGFiZWxdPVwicmVxdWlyZWRMYWJlbFwiXG4gICAgW2lkUHJlZml4XT1cImlkUHJlZml4XCJcbiAgICBbKG1vZGVsKV09XCJtb2RlbFwiXG4gICAgW3NjaGVtYV09XCJzY2hlbWFcIlxuICAgIFtlZGl0aW5nXT1cInRoaXMuZWRpdGluZ1wiXG4gICAgW2luZGV4XT1cImlcIj5cbiAgPC9zY2hlbWEtaW5wdXQ+XG4gIDxzY2hlbWEtb2JqZWN0XG4gICAgW3NlbGVjdFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0UGxhY2VIb2xkZXJMYWJlbFwiXG4gICAgW3NlbGVjdFNlYXJjaFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0U2VhcmNoUGxhY2VIb2xkZXJMYWJlbFwiXG4gICAgW3NlbGVjdENsZWFyTGFiZWxdPVwic2VsZWN0Q2xlYXJMYWJlbFwiXG4gICAgW3NlbGVjdE5vdEZvdW5kTGFiZWxdPVwic2VsZWN0Tm90Rm91bmRMYWJlbFwiXG4gICAgW3JlcXVpcmVkTGFiZWxdPVwicmVxdWlyZWRMYWJlbFwiXG4gICAgW2FkZEl0ZW1MYWJlbF09XCJhZGRJdGVtTGFiZWxcIlxuICAgIFthZGRMb29wTGFiZWxdPVwiYWRkTG9vcExhYmVsXCJcbiAgICBbYWRkaXRpb25hbEF0dHJpYnV0ZXNMYWJlbF09XCJhZGRpdGlvbmFsQXR0cmlidXRlc0xhYmVsXCJcbiAgICBbY3VzdG9tQXR0cmlidXRlUmVtb3ZlTGFiZWxdPVwiY3VzdG9tQXR0cmlidXRlUmVtb3ZlTGFiZWxcIlxuICAgIFtuZXdDdXN0b21GaWVsZE5hbWVMYWJlbF09XCJuZXdDdXN0b21GaWVsZE5hbWVMYWJlbFwiXG4gICAgW25ld0N1c3RvbUZpZWxkVmFsdWVMYWJlbF09XCJuZXdDdXN0b21GaWVsZFZhbHVlTGFiZWxcIlxuICAgIFtuZXdDdXN0b21GaWVsZEFkZExhYmVsXT1cIm5ld0N1c3RvbUZpZWxkQWRkTGFiZWxcIlxuICAgIFtuZXdDdXN0b21GaWVsZFNhdmVMYWJlbF09XCJuZXdDdXN0b21GaWVsZFNhdmVMYWJlbFwiXG4gICAgW25ld0N1c3RvbUZpZWxkQ2FuY2VsTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRDYW5jZWxMYWJlbFwiXG4gICAgW2lkUHJlZml4XT1cImlkUHJlZml4XCJcbiAgICBbKG1vZGVsKV09XCJtb2RlbFwiXG4gICAgW3NjaGVtYV09XCJzY2hlbWFcIlxuICAgIFtlZGl0aW5nXT1cInRoaXMuZWRpdGluZ1wiXG4gICAgW2luZGV4XT1cImlcIj5cbiAgPC9zY2hlbWEtb2JqZWN0PlxuICA8c2NoZW1hLWFycmF5XG4gICAgW3NlbGVjdFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0UGxhY2VIb2xkZXJMYWJlbFwiXG4gICAgW3NlbGVjdFNlYXJjaFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0U2VhcmNoUGxhY2VIb2xkZXJMYWJlbFwiXG4gICAgW3NlbGVjdENsZWFyTGFiZWxdPVwic2VsZWN0Q2xlYXJMYWJlbFwiXG4gICAgW3NlbGVjdE5vdEZvdW5kTGFiZWxdPVwic2VsZWN0Tm90Rm91bmRMYWJlbFwiXG4gICAgW3JlcXVpcmVkTGFiZWxdPVwicmVxdWlyZWRMYWJlbFwiXG4gICAgW2FkZEl0ZW1MYWJlbF09XCJhZGRJdGVtTGFiZWxcIlxuICAgIFthZGRMb29wTGFiZWxdPVwiYWRkTG9vcExhYmVsXCJcbiAgICBbYWRkaXRpb25hbEF0dHJpYnV0ZXNMYWJlbF09XCJhZGRpdGlvbmFsQXR0cmlidXRlc0xhYmVsXCJcbiAgICBbY3VzdG9tQXR0cmlidXRlUmVtb3ZlTGFiZWxdPVwiY3VzdG9tQXR0cmlidXRlUmVtb3ZlTGFiZWxcIlxuICAgIFtuZXdDdXN0b21GaWVsZE5hbWVMYWJlbF09XCJuZXdDdXN0b21GaWVsZE5hbWVMYWJlbFwiXG4gICAgW25ld0N1c3RvbUZpZWxkVmFsdWVMYWJlbF09XCJuZXdDdXN0b21GaWVsZFZhbHVlTGFiZWxcIlxuICAgIFtuZXdDdXN0b21GaWVsZEFkZExhYmVsXT1cIm5ld0N1c3RvbUZpZWxkQWRkTGFiZWxcIlxuICAgIFtuZXdDdXN0b21GaWVsZFNhdmVMYWJlbF09XCJuZXdDdXN0b21GaWVsZFNhdmVMYWJlbFwiXG4gICAgW25ld0N1c3RvbUZpZWxkQ2FuY2VsTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRDYW5jZWxMYWJlbFwiXG4gICAgW2lkUHJlZml4XT1cImlkUHJlZml4XCJcbiAgICBbKG1vZGVsKV09XCJtb2RlbFwiXG4gICAgW3NjaGVtYV09XCJzY2hlbWFcIlxuICAgIFtlZGl0aW5nXT1cInRoaXMuZWRpdGluZ1wiXG4gICAgW2luZGV4XT1cImlcIj5cbiAgPC9zY2hlbWEtYXJyYXk+XG48L2Rpdj5cbiJdfQ==