@apipass/schemas 0.2.16 → 1.0.7

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 (75) hide show
  1. package/README.md +33 -33
  2. package/base-schema.component.d.ts +12 -12
  3. package/{esm2015/apipass-schemas.js → esm2020/apipass-schemas.mjs} +4 -4
  4. package/esm2020/base-schema.component.mjs +37 -0
  5. package/esm2020/public-api.mjs +17 -0
  6. package/esm2020/schema-custom-attributes/schema-custom-attributes.mjs +169 -0
  7. package/esm2020/schema-fields.service.mjs +80 -0
  8. package/esm2020/schema-form/schema-array/array-session/array-session.mjs +143 -0
  9. package/esm2020/schema-form/schema-array/schema-array.mjs +220 -0
  10. package/esm2020/schema-form/schema-form.mjs +107 -0
  11. package/esm2020/schema-form/schema-input/field-render/field-render.mjs +69 -0
  12. package/esm2020/schema-form/schema-input/input-render/boolean-input/boolean-input.component.mjs +46 -0
  13. package/esm2020/schema-form/schema-input/input-render/input-render.mjs +192 -0
  14. package/esm2020/schema-form/schema-input/input-render/number-input/number-input.component.mjs +44 -0
  15. package/esm2020/schema-form/schema-input/schema-input.mjs +96 -0
  16. package/esm2020/schema-form/schema-object/schema-object.mjs +123 -0
  17. package/esm2020/schema-form-render.mjs +126 -0
  18. package/esm2020/schema-form-render.module.mjs +108 -0
  19. package/esm2020/schema-validation-field.mjs +14 -0
  20. package/esm2020/struct.utils.mjs +9 -0
  21. package/esm2020/type-script-compile/type-script-compile.base.mjs +114 -0
  22. package/fesm2015/apipass-schemas.mjs +1801 -0
  23. package/fesm2015/apipass-schemas.mjs.map +1 -0
  24. package/fesm2020/apipass-schemas.mjs +1616 -0
  25. package/fesm2020/apipass-schemas.mjs.map +1 -0
  26. package/{apipass-schemas.d.ts → index.d.ts} +5 -5
  27. package/package.json +32 -19
  28. package/public-api.d.ts +16 -16
  29. package/schema-custom-attributes/schema-custom-attributes.d.ts +21 -21
  30. package/schema-fields.service.d.ts +14 -15
  31. package/schema-form/schema-array/array-session/array-session.d.ts +19 -19
  32. package/schema-form/schema-array/schema-array.d.ts +32 -32
  33. package/schema-form/schema-form.d.ts +31 -31
  34. package/schema-form/schema-input/field-render/field-render.d.ts +16 -16
  35. package/schema-form/schema-input/input-render/boolean-input/boolean-input.component.d.ts +15 -15
  36. package/schema-form/schema-input/input-render/input-render.d.ts +29 -29
  37. package/schema-form/schema-input/input-render/number-input/number-input.component.d.ts +15 -15
  38. package/schema-form/schema-input/schema-input.d.ts +19 -19
  39. package/schema-form/schema-object/schema-object.d.ts +34 -34
  40. package/schema-form-render.d.ts +31 -31
  41. package/schema-form-render.module.d.ts +23 -22
  42. package/schema-validation-field.d.ts +23 -23
  43. package/struct.utils.d.ts +1 -1
  44. package/type-script-compile/type-script-compile.base.d.ts +17 -17
  45. package/assets/css/buttons.scss +0 -118
  46. package/assets/css/colors.scss +0 -34
  47. package/assets/css/fonts.scss +0 -24
  48. package/assets/css/inputs.scss +0 -197
  49. package/assets/css/pt_sans.scss +0 -144
  50. package/assets/css/spacing.scss +0 -28
  51. package/assets/css/texts.scss +0 -18
  52. package/bundles/apipass-schemas.umd.js +0 -2339
  53. package/bundles/apipass-schemas.umd.js.map +0 -1
  54. package/bundles/apipass-schemas.umd.min.js +0 -16
  55. package/bundles/apipass-schemas.umd.min.js.map +0 -1
  56. package/esm2015/base-schema.component.js +0 -38
  57. package/esm2015/public-api.js +0 -17
  58. package/esm2015/schema-custom-attributes/schema-custom-attributes.js +0 -192
  59. package/esm2015/schema-fields.service.js +0 -87
  60. package/esm2015/schema-form/schema-array/array-session/array-session.js +0 -161
  61. package/esm2015/schema-form/schema-array/schema-array.js +0 -234
  62. package/esm2015/schema-form/schema-form.js +0 -114
  63. package/esm2015/schema-form/schema-input/field-render/field-render.js +0 -74
  64. package/esm2015/schema-form/schema-input/input-render/boolean-input/boolean-input.component.js +0 -50
  65. package/esm2015/schema-form/schema-input/input-render/input-render.js +0 -199
  66. package/esm2015/schema-form/schema-input/input-render/number-input/number-input.component.js +0 -48
  67. package/esm2015/schema-form/schema-input/schema-input.js +0 -111
  68. package/esm2015/schema-form/schema-object/schema-object.js +0 -134
  69. package/esm2015/schema-form-render.js +0 -136
  70. package/esm2015/schema-form-render.module.js +0 -124
  71. package/esm2015/schema-validation-field.js +0 -15
  72. package/esm2015/struct.utils.js +0 -9
  73. package/esm2015/type-script-compile/type-script-compile.base.js +0 -112
  74. package/fesm2015/apipass-schemas.js +0 -1745
  75. package/fesm2015/apipass-schemas.js.map +0 -1
@@ -0,0 +1,126 @@
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 "./schema-form/schema-form";
7
+ import * as i3 from "./schema-custom-attributes/schema-custom-attributes";
8
+ function SchemaFormRenderComponent_div_0_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
9
+ const _r6 = i0.ɵɵgetCurrentView();
10
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 7)(2, "label", 8);
11
+ i0.ɵɵtext(3);
12
+ i0.ɵɵelementEnd();
13
+ i0.ɵɵelementStart(4, "schema-custom-attributes", 9);
14
+ i0.ɵɵlistener("modelChange", function SchemaFormRenderComponent_div_0_div_2_div_1_Template_schema_custom_attributes_modelChange_4_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r5.model.customAttributes = $event); });
15
+ i0.ɵɵelementEnd()()();
16
+ } if (rf & 2) {
17
+ const ctx_r4 = i0.ɵɵnextContext(3);
18
+ i0.ɵɵadvance(3);
19
+ i0.ɵɵtextInterpolate(ctx_r4.additionalAttributesLabel);
20
+ i0.ɵɵadvance(1);
21
+ i0.ɵɵproperty("customAttributeRemoveLabel", ctx_r4.customAttributeRemoveLabel)("newCustomFieldNameLabel", ctx_r4.newCustomFieldNameLabel)("newCustomFieldValueLabel", ctx_r4.newCustomFieldValueLabel)("newCustomFieldAddLabel", ctx_r4.newCustomFieldAddLabel)("newCustomFieldSaveLabel", ctx_r4.newCustomFieldSaveLabel)("newCustomFieldCancelLabel", ctx_r4.newCustomFieldCancelLabel)("model", ctx_r4.model.customAttributes)("onDropFunction", ctx_r4.onDrop);
22
+ } }
23
+ function SchemaFormRenderComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelementStart(0, "div", 4);
25
+ i0.ɵɵtemplate(1, SchemaFormRenderComponent_div_0_div_2_div_1_Template, 5, 9, "div", 5);
26
+ i0.ɵɵelementEnd();
27
+ } if (rf & 2) {
28
+ const ctx_r1 = i0.ɵɵnextContext(2);
29
+ i0.ɵɵadvance(1);
30
+ i0.ɵɵproperty("ngIf", ctx_r1.model && ctx_r1.customProperties);
31
+ } }
32
+ function SchemaFormRenderComponent_div_0_Template(rf, ctx) { if (rf & 1) {
33
+ const _r8 = i0.ɵɵgetCurrentView();
34
+ i0.ɵɵelementStart(0, "div", 1)(1, "schema-form", 2);
35
+ i0.ɵɵlistener("modelChange", function SchemaFormRenderComponent_div_0_Template_schema_form_modelChange_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.model = $event); });
36
+ i0.ɵɵelementEnd();
37
+ i0.ɵɵtemplate(2, SchemaFormRenderComponent_div_0_div_2_Template, 2, 1, "div", 3);
38
+ i0.ɵɵelementEnd();
39
+ } if (rf & 2) {
40
+ const ctx_r0 = i0.ɵɵnextContext();
41
+ i0.ɵɵadvance(1);
42
+ 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)("schemas", ctx_r0.schemas)("editing", ctx_r0.editing);
43
+ i0.ɵɵadvance(1);
44
+ i0.ɵɵproperty("ngForOf", ctx_r0.schemas);
45
+ } }
46
+ export class SchemaFormRenderComponent extends BaseSchemaComponent {
47
+ constructor() {
48
+ super(...arguments);
49
+ this.requiredLabel = '(required)';
50
+ this.addItemLabel = 'Add Item';
51
+ this.addLoopLabel = 'Add Loop';
52
+ this.additionalAttributesLabel = 'Additional Fields';
53
+ this.customAttributeRemoveLabel = 'Remove';
54
+ this.newCustomFieldNameLabel = 'Name';
55
+ this.newCustomFieldValueLabel = 'Value';
56
+ this.newCustomFieldAddLabel = 'Add';
57
+ this.newCustomFieldSaveLabel = 'Save';
58
+ this.newCustomFieldCancelLabel = 'Cancel';
59
+ this.selectPlaceHolderLabel = 'Select Item';
60
+ this.selectSearchPlaceHolderLabel = 'Search';
61
+ this.selectClearLabel = 'Clear';
62
+ this.selectNotFoundLabel = 'No Items Found';
63
+ this.schemas = [];
64
+ this.customProperties = false;
65
+ this.editing = false;
66
+ this.loaded = false;
67
+ }
68
+ ngAfterContentInit() {
69
+ this.loaded = true;
70
+ }
71
+ onDrop($event, modelElement) {
72
+ return onDropStruct($event, modelElement);
73
+ }
74
+ getId(index) {
75
+ return `${this.idPrefix}-struct-${index}`;
76
+ }
77
+ }
78
+ SchemaFormRenderComponent.ɵfac = /*@__PURE__*/ function () { let ɵSchemaFormRenderComponent_BaseFactory; return function SchemaFormRenderComponent_Factory(t) { return (ɵSchemaFormRenderComponent_BaseFactory || (ɵSchemaFormRenderComponent_BaseFactory = i0.ɵɵgetInheritedFactory(SchemaFormRenderComponent)))(t || SchemaFormRenderComponent); }; }();
79
+ SchemaFormRenderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SchemaFormRenderComponent, selectors: [["schema-form-render"]], 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", 4, "ngIf"], [1, "schema"], [3, "selectPlaceHolderLabel", "selectSearchPlaceHolderLabel", "selectClearLabel", "selectNotFoundLabel", "requiredLabel", "addItemLabel", "addLoopLabel", "additionalAttributesLabel", "customAttributeRemoveLabel", "newCustomFieldNameLabel", "newCustomFieldValueLabel", "newCustomFieldAddLabel", "newCustomFieldSaveLabel", "newCustomFieldCancelLabel", "idPrefix", "model", "schemas", "editing", "modelChange"], ["class", "schema-properties", 4, "ngFor", "ngForOf"], [1, "schema-properties"], ["class", "row struct-custom-properties", 4, "ngIf"], [1, "row", "struct-custom-properties"], [1, "col-md-12"], [1, "info-label", "bold"], [3, "customAttributeRemoveLabel", "newCustomFieldNameLabel", "newCustomFieldValueLabel", "newCustomFieldAddLabel", "newCustomFieldSaveLabel", "newCustomFieldCancelLabel", "model", "onDropFunction", "modelChange"]], template: function SchemaFormRenderComponent_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵtemplate(0, SchemaFormRenderComponent_div_0_Template, 3, 19, "div", 0);
81
+ } if (rf & 2) {
82
+ i0.ɵɵproperty("ngIf", ctx.loaded);
83
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.SchemaFormComponent, i3.SchemaCustomAttributesComponent], styles: [".schema[_ngcontent-%COMP%] .info-label{display:block}.schema[_ngcontent-%COMP%] input.form-control{width:calc(100% - 24px);padding:11px;border:1px solid #DDD;border-radius:3px;background:#FFF}.schema[_ngcontent-%COMP%] input.form-control:disabled{background:#ccc}.schema[_ngcontent-%COMP%] select.form-control{width:100%;padding:11px;border-radius:4px;border:1px solid #DDD;color:#777;cursor:pointer}.schema[_ngcontent-%COMP%] .ng-select-container{height:38px!important;min-height:38px!important}.schema[_ngcontent-%COMP%] .btn-outline-primary{padding:5px 15px;background:var(--color-primary);border:1px solid var(--color-secondary);color:var(--color-secondary);border-radius:4px;cursor:pointer}.schema[_ngcontent-%COMP%] .btn-outline-primary:hover{background:var(--color-primary-hover)}.schema[_ngcontent-%COMP%] .subsection-item-title{color:var(--color-primary)}.schema[_ngcontent-%COMP%] array-session .subsection-element{color:var(--color-primary)}"] });
84
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchemaFormRenderComponent, [{
85
+ type: Component,
86
+ args: [{ selector: 'schema-form-render', template: "<div class=\"schema\" *ngIf=\"loaded\">\r\n <schema-form\r\n [selectPlaceHolderLabel]=\"selectPlaceHolderLabel\"\r\n [selectSearchPlaceHolderLabel]=\"selectSearchPlaceHolderLabel\"\r\n [selectClearLabel]=\"selectClearLabel\"\r\n [selectNotFoundLabel]=\"selectNotFoundLabel\"\r\n [requiredLabel]=\"requiredLabel\"\r\n [addItemLabel]=\"addItemLabel\"\r\n [addLoopLabel]=\"addLoopLabel\"\r\n [additionalAttributesLabel]=\"additionalAttributesLabel\"\r\n [customAttributeRemoveLabel]=\"customAttributeRemoveLabel\"\r\n [newCustomFieldNameLabel]=\"newCustomFieldNameLabel\"\r\n [newCustomFieldValueLabel]=\"newCustomFieldValueLabel\"\r\n [newCustomFieldAddLabel]=\"newCustomFieldAddLabel\"\r\n [newCustomFieldSaveLabel]=\"newCustomFieldSaveLabel\"\r\n [newCustomFieldCancelLabel]=\"newCustomFieldCancelLabel\"\r\n [idPrefix]=\"idPrefix\"\r\n [(model)]=\"model\"\r\n [schemas]=\"schemas\"\r\n [editing]=\"this.editing\"></schema-form>\r\n\r\n <div class=\"schema-properties\" *ngFor=\"let schema of schemas; let i = index\">\r\n <div class=\"row struct-custom-properties\" *ngIf=\"this.model && customProperties\">\r\n <div class=\"col-md-12\">\r\n <label class=\"info-label bold\">{{ this.additionalAttributesLabel }}</label>\r\n <schema-custom-attributes\r\n [customAttributeRemoveLabel]=\"customAttributeRemoveLabel\"\r\n [newCustomFieldNameLabel]=\"newCustomFieldNameLabel\"\r\n [newCustomFieldValueLabel]=\"newCustomFieldValueLabel\"\r\n [newCustomFieldAddLabel]=\"newCustomFieldAddLabel\"\r\n [newCustomFieldSaveLabel]=\"newCustomFieldSaveLabel\"\r\n [newCustomFieldCancelLabel]=\"newCustomFieldCancelLabel\"\r\n [(model)]=\"model.customAttributes\"\r\n [onDropFunction]=\"onDrop\">\r\n </schema-custom-attributes>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", styles: [".schema ::ng-deep .info-label{display:block}.schema ::ng-deep input.form-control{width:calc(100% - 24px);padding:11px;border:1px solid #DDD;border-radius:3px;background:#FFF}.schema ::ng-deep input.form-control:disabled{background:#ccc}.schema ::ng-deep select.form-control{width:100%;padding:11px;border-radius:4px;border:1px solid #DDD;color:#777;cursor:pointer}.schema ::ng-deep .ng-select-container{height:38px!important;min-height:38px!important}.schema ::ng-deep .btn-outline-primary{padding:5px 15px;background:var(--color-primary);border:1px solid var(--color-secondary);color:var(--color-secondary);border-radius:4px;cursor:pointer}.schema ::ng-deep .btn-outline-primary:hover{background:var(--color-primary-hover)}.schema ::ng-deep .subsection-item-title{color:var(--color-primary)}.schema ::ng-deep array-session .subsection-element{color:var(--color-primary)}\n"] }]
87
+ }], null, { requiredLabel: [{
88
+ type: Input
89
+ }], addItemLabel: [{
90
+ type: Input
91
+ }], addLoopLabel: [{
92
+ type: Input
93
+ }], additionalAttributesLabel: [{
94
+ type: Input
95
+ }], customAttributeRemoveLabel: [{
96
+ type: Input
97
+ }], newCustomFieldNameLabel: [{
98
+ type: Input
99
+ }], newCustomFieldValueLabel: [{
100
+ type: Input
101
+ }], newCustomFieldAddLabel: [{
102
+ type: Input
103
+ }], newCustomFieldSaveLabel: [{
104
+ type: Input
105
+ }], newCustomFieldCancelLabel: [{
106
+ type: Input
107
+ }], selectPlaceHolderLabel: [{
108
+ type: Input
109
+ }], selectSearchPlaceHolderLabel: [{
110
+ type: Input
111
+ }], selectClearLabel: [{
112
+ type: Input
113
+ }], selectNotFoundLabel: [{
114
+ type: Input
115
+ }], idPrefix: [{
116
+ type: Input
117
+ }], schemas: [{
118
+ type: Input
119
+ }], customProperties: [{
120
+ type: Input
121
+ }], editing: [{
122
+ type: Input
123
+ }], inputType: [{
124
+ type: Input
125
+ }] }); })();
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tcmVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvc2NoZW1hLWZvcm0tcmVuZGVyLnRzIiwiLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvc2NoZW1hLWZvcm0tcmVuZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7Ozs7OztJQ21CekMsOEJBQWlGLGFBQUEsZUFBQTtJQUU5QyxZQUFvQztJQUFBLGlCQUFRO0lBQzNFLG1EQVE0QjtJQUQxQix1TkFBVyxzREFDaEIsSUFEdUM7SUFFcEMsaUJBQTJCLEVBQUEsRUFBQTs7O0lBVkksZUFBb0M7SUFBcEMsc0RBQW9DO0lBRWpFLGVBQXlEO0lBQXpELDhFQUF5RCwyREFBQSw2REFBQSx5REFBQSwyREFBQSwrREFBQSx3Q0FBQSxpQ0FBQTs7O0lBTGpFLDhCQUE2RTtJQUMzRSxzRkFjTTtJQUNSLGlCQUFNOzs7SUFmdUMsZUFBb0M7SUFBcEMsOERBQW9DOzs7O0lBdEJuRiw4QkFBbUMscUJBQUE7SUFpQi9CLHNPQUFpQjtJQUVRLGlCQUFjO0lBRXpDLGdGQWdCTTtJQUVSLGlCQUFNOzs7SUFyQ0YsZUFBaUQ7SUFBakQsc0VBQWlELHFFQUFBLDZDQUFBLG1EQUFBLHVDQUFBLHFDQUFBLHFDQUFBLCtEQUFBLGlFQUFBLDJEQUFBLDZEQUFBLHlEQUFBLDJEQUFBLCtEQUFBLDZCQUFBLHVCQUFBLDJCQUFBLDJCQUFBO0lBbUJELGVBQVk7SUFBWix3Q0FBWTs7QURYaEUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG1CQUFtQjtJQUxsRTs7UUFNa0Isa0JBQWEsR0FBRyxZQUFZLENBQUE7UUFDNUIsaUJBQVksR0FBRyxVQUFVLENBQUE7UUFDekIsaUJBQVksR0FBRyxVQUFVLENBQUE7UUFDekIsOEJBQXlCLEdBQUcsbUJBQW1CLENBQUE7UUFDL0MsK0JBQTBCLEdBQUcsUUFBUSxDQUFBO1FBQ3JDLDRCQUF1QixHQUFHLE1BQU0sQ0FBQTtRQUNoQyw2QkFBd0IsR0FBRyxPQUFPLENBQUE7UUFDbEMsMkJBQXNCLEdBQUcsS0FBSyxDQUFBO1FBQzlCLDRCQUF1QixHQUFHLE1BQU0sQ0FBQTtRQUNoQyw4QkFBeUIsR0FBRyxRQUFRLENBQUE7UUFDcEMsMkJBQXNCLEdBQUcsYUFBYSxDQUFBO1FBQ3RDLGlDQUE0QixHQUFHLFFBQVEsQ0FBQTtRQUN2QyxxQkFBZ0IsR0FBRyxPQUFPLENBQUE7UUFDMUIsd0JBQW1CLEdBQUcsZ0JBQWdCLENBQUE7UUFHN0MsWUFBTyxHQUFHLEVBQUUsQ0FBQTtRQUNaLHFCQUFnQixHQUFHLEtBQUssQ0FBQTtRQUN4QixZQUFPLEdBQUcsS0FBSyxDQUFBO1FBR3hCLFdBQU0sR0FBRyxLQUFLLENBQUE7S0FhZjtJQVhDLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQW9CLEVBQUUsWUFBaUI7UUFDN0MsT0FBTyxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxLQUFLLENBQUUsS0FBYTtRQUNsQixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsV0FBVyxLQUFLLEVBQUUsQ0FBQTtJQUMzQyxDQUFDOztxUkFsQ1UseUJBQXlCLFNBQXpCLHlCQUF5Qjs0RUFBekIseUJBQXlCO1FDVnRDLDJFQXVDTTs7UUF2Q2UsaUNBQVk7O3VGRFVwQix5QkFBeUI7Y0FMckMsU0FBUzsyQkFDRSxvQkFBb0I7Z0JBS2QsYUFBYTtrQkFBNUIsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUFDVSxZQUFZO2tCQUEzQixLQUFLO1lBQ1UseUJBQXlCO2tCQUF4QyxLQUFLO1lBQ1UsMEJBQTBCO2tCQUF6QyxLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBQ1Usd0JBQXdCO2tCQUF2QyxLQUFLO1lBQ1Usc0JBQXNCO2tCQUFyQyxLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBQ1UseUJBQXlCO2tCQUF4QyxLQUFLO1lBQ1Usc0JBQXNCO2tCQUFyQyxLQUFLO1lBQ1UsNEJBQTRCO2tCQUEzQyxLQUFLO1lBQ1UsZ0JBQWdCO2tCQUEvQixLQUFLO1lBQ1UsbUJBQW1CO2tCQUFsQyxLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQmFzZVNjaGVtYUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1zY2hlbWEuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBEbmREcm9wRXZlbnQgfSBmcm9tICduZ3gtZHJhZy1kcm9wJ1xyXG5pbXBvcnQgeyBvbkRyb3BTdHJ1Y3QgfSBmcm9tICcuL3N0cnVjdC51dGlscydcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2NoZW1hLWZvcm0tcmVuZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJ3NjaGVtYS1mb3JtLXJlbmRlci5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zY2hlbWEtZm9ybS1yZW5kZXIuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFGb3JtUmVuZGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNjaGVtYUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZExhYmVsID0gJyhyZXF1aXJlZCknXHJcbiAgQElucHV0KCkgcHVibGljIGFkZEl0ZW1MYWJlbCA9ICdBZGQgSXRlbSdcclxuICBASW5wdXQoKSBwdWJsaWMgYWRkTG9vcExhYmVsID0gJ0FkZCBMb29wJ1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRpdGlvbmFsQXR0cmlidXRlc0xhYmVsID0gJ0FkZGl0aW9uYWwgRmllbGRzJ1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21BdHRyaWJ1dGVSZW1vdmVMYWJlbCA9ICdSZW1vdmUnXHJcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkTmFtZUxhYmVsID0gJ05hbWUnXHJcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkVmFsdWVMYWJlbCA9ICdWYWx1ZSdcclxuICBASW5wdXQoKSBwdWJsaWMgbmV3Q3VzdG9tRmllbGRBZGRMYWJlbCA9ICdBZGQnXHJcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkU2F2ZUxhYmVsID0gJ1NhdmUnXHJcbiAgQElucHV0KCkgcHVibGljIG5ld0N1c3RvbUZpZWxkQ2FuY2VsTGFiZWwgPSAnQ2FuY2VsJ1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RQbGFjZUhvbGRlckxhYmVsID0gJ1NlbGVjdCBJdGVtJ1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RTZWFyY2hQbGFjZUhvbGRlckxhYmVsID0gJ1NlYXJjaCdcclxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0Q2xlYXJMYWJlbCA9ICdDbGVhcidcclxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0Tm90Rm91bmRMYWJlbCA9ICdObyBJdGVtcyBGb3VuZCdcclxuXHJcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gIEBJbnB1dCgpIHNjaGVtYXMgPSBbXVxyXG4gIEBJbnB1dCgpIGN1c3RvbVByb3BlcnRpZXMgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIGVkaXRpbmcgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIGlucHV0VHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcblxyXG4gIGxvYWRlZCA9IGZhbHNlXHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCAoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRlZCA9IHRydWVcclxuICB9XHJcblxyXG4gIG9uRHJvcCAoJGV2ZW50OiBEbmREcm9wRXZlbnQsIG1vZGVsRWxlbWVudDogYW55KTogYW55IHtcclxuICAgIHJldHVybiBvbkRyb3BTdHJ1Y3QoJGV2ZW50LCBtb2RlbEVsZW1lbnQpXHJcbiAgfVxyXG5cclxuICBnZXRJZCAoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5pZFByZWZpeH0tc3RydWN0LSR7aW5kZXh9YFxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2NoZW1hXCIgKm5nSWY9XCJsb2FkZWRcIj5cclxuICA8c2NoZW1hLWZvcm1cclxuICAgIFtzZWxlY3RQbGFjZUhvbGRlckxhYmVsXT1cInNlbGVjdFBsYWNlSG9sZGVyTGFiZWxcIlxyXG4gICAgW3NlbGVjdFNlYXJjaFBsYWNlSG9sZGVyTGFiZWxdPVwic2VsZWN0U2VhcmNoUGxhY2VIb2xkZXJMYWJlbFwiXHJcbiAgICBbc2VsZWN0Q2xlYXJMYWJlbF09XCJzZWxlY3RDbGVhckxhYmVsXCJcclxuICAgIFtzZWxlY3ROb3RGb3VuZExhYmVsXT1cInNlbGVjdE5vdEZvdW5kTGFiZWxcIlxyXG4gICAgW3JlcXVpcmVkTGFiZWxdPVwicmVxdWlyZWRMYWJlbFwiXHJcbiAgICBbYWRkSXRlbUxhYmVsXT1cImFkZEl0ZW1MYWJlbFwiXHJcbiAgICBbYWRkTG9vcExhYmVsXT1cImFkZExvb3BMYWJlbFwiXHJcbiAgICBbYWRkaXRpb25hbEF0dHJpYnV0ZXNMYWJlbF09XCJhZGRpdGlvbmFsQXR0cmlidXRlc0xhYmVsXCJcclxuICAgIFtjdXN0b21BdHRyaWJ1dGVSZW1vdmVMYWJlbF09XCJjdXN0b21BdHRyaWJ1dGVSZW1vdmVMYWJlbFwiXHJcbiAgICBbbmV3Q3VzdG9tRmllbGROYW1lTGFiZWxdPVwibmV3Q3VzdG9tRmllbGROYW1lTGFiZWxcIlxyXG4gICAgW25ld0N1c3RvbUZpZWxkVmFsdWVMYWJlbF09XCJuZXdDdXN0b21GaWVsZFZhbHVlTGFiZWxcIlxyXG4gICAgW25ld0N1c3RvbUZpZWxkQWRkTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRBZGRMYWJlbFwiXHJcbiAgICBbbmV3Q3VzdG9tRmllbGRTYXZlTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRTYXZlTGFiZWxcIlxyXG4gICAgW25ld0N1c3RvbUZpZWxkQ2FuY2VsTGFiZWxdPVwibmV3Q3VzdG9tRmllbGRDYW5jZWxMYWJlbFwiXHJcbiAgICBbaWRQcmVmaXhdPVwiaWRQcmVmaXhcIlxyXG4gICAgWyhtb2RlbCldPVwibW9kZWxcIlxyXG4gICAgW3NjaGVtYXNdPVwic2NoZW1hc1wiXHJcbiAgICBbZWRpdGluZ109XCJ0aGlzLmVkaXRpbmdcIj48L3NjaGVtYS1mb3JtPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2NoZW1hLXByb3BlcnRpZXNcIiAqbmdGb3I9XCJsZXQgc2NoZW1hIG9mIHNjaGVtYXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgc3RydWN0LWN1c3RvbS1wcm9wZXJ0aWVzXCIgKm5nSWY9XCJ0aGlzLm1vZGVsICYmIGN1c3RvbVByb3BlcnRpZXNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImluZm8tbGFiZWwgYm9sZFwiPnt7IHRoaXMuYWRkaXRpb25hbEF0dHJpYnV0ZXNMYWJlbCB9fTwvbGFiZWw+XHJcbiAgICAgICAgPHNjaGVtYS1jdXN0b20tYXR0cmlidXRlc1xyXG4gICAgICAgICAgW2N1c3RvbUF0dHJpYnV0ZVJlbW92ZUxhYmVsXT1cImN1c3RvbUF0dHJpYnV0ZVJlbW92ZUxhYmVsXCJcclxuICAgICAgICAgIFtuZXdDdXN0b21GaWVsZE5hbWVMYWJlbF09XCJuZXdDdXN0b21GaWVsZE5hbWVMYWJlbFwiXHJcbiAgICAgICAgICBbbmV3Q3VzdG9tRmllbGRWYWx1ZUxhYmVsXT1cIm5ld0N1c3RvbUZpZWxkVmFsdWVMYWJlbFwiXHJcbiAgICAgICAgICBbbmV3Q3VzdG9tRmllbGRBZGRMYWJlbF09XCJuZXdDdXN0b21GaWVsZEFkZExhYmVsXCJcclxuICAgICAgICAgIFtuZXdDdXN0b21GaWVsZFNhdmVMYWJlbF09XCJuZXdDdXN0b21GaWVsZFNhdmVMYWJlbFwiXHJcbiAgICAgICAgICBbbmV3Q3VzdG9tRmllbGRDYW5jZWxMYWJlbF09XCJuZXdDdXN0b21GaWVsZENhbmNlbExhYmVsXCJcclxuICAgICAgICAgIFsobW9kZWwpXT1cIm1vZGVsLmN1c3RvbUF0dHJpYnV0ZXNcIlxyXG4gICAgICAgICAgW29uRHJvcEZ1bmN0aW9uXT1cIm9uRHJvcFwiPlxyXG4gICAgICAgIDwvc2NoZW1hLWN1c3RvbS1hdHRyaWJ1dGVzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,108 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { SchemaArrayComponent } from './schema-form/schema-array/schema-array';
5
+ import { SchemaInputComponent } from './schema-form/schema-input/schema-input';
6
+ import { FieldRenderComponent } from './schema-form/schema-input/field-render/field-render';
7
+ import { SchemaObjectComponent } from './schema-form/schema-object/schema-object';
8
+ import { ArraySessionComponent } from './schema-form/schema-array/array-session/array-session';
9
+ import { InputRenderComponent } from './schema-form/schema-input/input-render/input-render';
10
+ import { SchemaFieldsService } from './schema-fields.service';
11
+ import { SchemaFormComponent } from './schema-form/schema-form';
12
+ import { SchemaCustomAttributesComponent } from './schema-custom-attributes/schema-custom-attributes';
13
+ import { BooleanInputComponent } from './schema-form/schema-input/input-render/boolean-input/boolean-input.component';
14
+ import { NumberInputComponent } from './schema-form/schema-input/input-render/number-input/number-input.component';
15
+ import { DndModule } from 'ngx-drag-drop';
16
+ import { MatTooltipModule } from '@angular/material/tooltip';
17
+ import { SchemaFormRenderComponent } from './schema-form-render';
18
+ import { InputsModule } from '@apipass/inputs';
19
+ import { APIPASS_TYPESCRIPT_COMPILE_INTL_PROVIDER } from './type-script-compile/type-script-compile.base';
20
+ import { IconsModule } from '@apipass/icons';
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/common";
23
+ export class SchemaFormRenderModule {
24
+ }
25
+ SchemaFormRenderModule.ɵfac = function SchemaFormRenderModule_Factory(t) { return new (t || SchemaFormRenderModule)(); };
26
+ SchemaFormRenderModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SchemaFormRenderModule });
27
+ SchemaFormRenderModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
28
+ SchemaFieldsService,
29
+ APIPASS_TYPESCRIPT_COMPILE_INTL_PROVIDER
30
+ ], imports: [CommonModule,
31
+ DndModule,
32
+ FormsModule,
33
+ MatTooltipModule,
34
+ InputsModule,
35
+ IconsModule] });
36
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchemaFormRenderModule, [{
37
+ type: NgModule,
38
+ args: [{
39
+ imports: [
40
+ CommonModule,
41
+ DndModule,
42
+ FormsModule,
43
+ MatTooltipModule,
44
+ InputsModule,
45
+ IconsModule
46
+ ],
47
+ declarations: [
48
+ ArraySessionComponent,
49
+ SchemaArrayComponent,
50
+ FieldRenderComponent,
51
+ InputRenderComponent,
52
+ BooleanInputComponent,
53
+ NumberInputComponent,
54
+ SchemaInputComponent,
55
+ SchemaObjectComponent,
56
+ SchemaFormRenderComponent,
57
+ SchemaFormComponent,
58
+ SchemaCustomAttributesComponent
59
+ ],
60
+ exports: [
61
+ ArraySessionComponent,
62
+ SchemaArrayComponent,
63
+ FieldRenderComponent,
64
+ InputRenderComponent,
65
+ BooleanInputComponent,
66
+ NumberInputComponent,
67
+ SchemaInputComponent,
68
+ SchemaObjectComponent,
69
+ SchemaFormRenderComponent,
70
+ SchemaFormComponent,
71
+ SchemaCustomAttributesComponent
72
+ ],
73
+ providers: [
74
+ SchemaFieldsService,
75
+ APIPASS_TYPESCRIPT_COMPILE_INTL_PROVIDER
76
+ ]
77
+ }]
78
+ }], null, null); })();
79
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SchemaFormRenderModule, { declarations: [ArraySessionComponent,
80
+ SchemaArrayComponent,
81
+ FieldRenderComponent,
82
+ InputRenderComponent,
83
+ BooleanInputComponent,
84
+ NumberInputComponent,
85
+ SchemaInputComponent,
86
+ SchemaObjectComponent,
87
+ SchemaFormRenderComponent,
88
+ SchemaFormComponent,
89
+ SchemaCustomAttributesComponent], imports: [CommonModule,
90
+ DndModule,
91
+ FormsModule,
92
+ MatTooltipModule,
93
+ InputsModule,
94
+ IconsModule], exports: [ArraySessionComponent,
95
+ SchemaArrayComponent,
96
+ FieldRenderComponent,
97
+ InputRenderComponent,
98
+ BooleanInputComponent,
99
+ NumberInputComponent,
100
+ SchemaInputComponent,
101
+ SchemaObjectComponent,
102
+ SchemaFormRenderComponent,
103
+ SchemaFormComponent,
104
+ SchemaCustomAttributesComponent] }); })();
105
+ i0.ɵɵsetComponentScope(SchemaFormComponent, [i1.NgForOf, SchemaArrayComponent,
106
+ SchemaInputComponent,
107
+ SchemaObjectComponent], []);
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tcmVuZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NjaGVtYXMvc3JjL3NjaGVtYS1mb3JtLXJlbmRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFBO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFBO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFBO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQy9ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFBO0FBQ3JHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtFQUErRSxDQUFBO0FBQ3JILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZFQUE2RSxDQUFBO0FBQ2xILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLGdEQUFnRCxDQUFBO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBMEM1QyxNQUFNLE9BQU8sc0JBQXNCOzs0RkFBdEIsc0JBQXNCO3dFQUF0QixzQkFBc0I7NkVBTHRCO1FBQ1QsbUJBQW1CO1FBQ25CLHdDQUF3QztLQUN6QyxZQXBDQyxZQUFZO1FBQ1osU0FBUztRQUNULFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLFdBQVc7dUZBaUNGLHNCQUFzQjtjQXhDbEMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFNBQVM7b0JBQ1QsV0FBVztvQkFDWCxnQkFBZ0I7b0JBQ2hCLFlBQVk7b0JBQ1osV0FBVztpQkFDWjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1oscUJBQXFCO29CQUNyQixvQkFBb0I7b0JBQ3BCLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUNwQixxQkFBcUI7b0JBQ3JCLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUNwQixxQkFBcUI7b0JBQ3JCLHlCQUF5QjtvQkFDekIsbUJBQW1CO29CQUNuQiwrQkFBK0I7aUJBQ2hDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxxQkFBcUI7b0JBQ3JCLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUNwQixvQkFBb0I7b0JBQ3BCLHFCQUFxQjtvQkFDckIsb0JBQW9CO29CQUNwQixvQkFBb0I7b0JBQ3BCLHFCQUFxQjtvQkFDckIseUJBQXlCO29CQUN6QixtQkFBbUI7b0JBQ25CLCtCQUErQjtpQkFDaEM7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULG1CQUFtQjtvQkFDbkIsd0NBQXdDO2lCQUN6QzthQUNGOzt3RkFDWSxzQkFBc0IsbUJBOUIvQixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLHlCQUF5QjtRQUN6QixtQkFBbUI7UUFDbkIsK0JBQStCLGFBbEIvQixZQUFZO1FBQ1osU0FBUztRQUNULFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLFdBQVcsYUFnQlgscUJBQXFCO1FBQ3JCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQix5QkFBeUI7UUFDekIsbUJBQW1CO1FBQ25CLCtCQUErQjt1QkFkL0IsbUJBQW1CLGVBUm5CLG9CQUFvQjtJQUtwQixvQkFBb0I7SUFDcEIscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXHJcbmltcG9ydCB7IFNjaGVtYUFycmF5Q29tcG9uZW50IH0gZnJvbSAnLi9zY2hlbWEtZm9ybS9zY2hlbWEtYXJyYXkvc2NoZW1hLWFycmF5J1xyXG5pbXBvcnQgeyBTY2hlbWFJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vc2NoZW1hLWZvcm0vc2NoZW1hLWlucHV0L3NjaGVtYS1pbnB1dCdcclxuaW1wb3J0IHsgRmllbGRSZW5kZXJDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS1mb3JtL3NjaGVtYS1pbnB1dC9maWVsZC1yZW5kZXIvZmllbGQtcmVuZGVyJ1xyXG5pbXBvcnQgeyBTY2hlbWFPYmplY3RDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS1mb3JtL3NjaGVtYS1vYmplY3Qvc2NoZW1hLW9iamVjdCdcclxuaW1wb3J0IHsgQXJyYXlTZXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zY2hlbWEtZm9ybS9zY2hlbWEtYXJyYXkvYXJyYXktc2Vzc2lvbi9hcnJheS1zZXNzaW9uJ1xyXG5pbXBvcnQgeyBJbnB1dFJlbmRlckNvbXBvbmVudCB9IGZyb20gJy4vc2NoZW1hLWZvcm0vc2NoZW1hLWlucHV0L2lucHV0LXJlbmRlci9pbnB1dC1yZW5kZXInXHJcbmltcG9ydCB7IFNjaGVtYUZpZWxkc1NlcnZpY2UgfSBmcm9tICcuL3NjaGVtYS1maWVsZHMuc2VydmljZSdcclxuaW1wb3J0IHsgU2NoZW1hRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vc2NoZW1hLWZvcm0vc2NoZW1hLWZvcm0nXHJcbmltcG9ydCB7IFNjaGVtYUN1c3RvbUF0dHJpYnV0ZXNDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS1jdXN0b20tYXR0cmlidXRlcy9zY2hlbWEtY3VzdG9tLWF0dHJpYnV0ZXMnXHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vc2NoZW1hLWZvcm0vc2NoZW1hLWlucHV0L2lucHV0LXJlbmRlci9ib29sZWFuLWlucHV0L2Jvb2xlYW4taW5wdXQuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBOdW1iZXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vc2NoZW1hLWZvcm0vc2NoZW1hLWlucHV0L2lucHV0LXJlbmRlci9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCdcclxuaW1wb3J0IHsgRG5kTW9kdWxlIH0gZnJvbSAnbmd4LWRyYWctZHJvcCdcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXHJcbmltcG9ydCB7IFNjaGVtYUZvcm1SZW5kZXJDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS1mb3JtLXJlbmRlcidcclxuaW1wb3J0IHsgSW5wdXRzTW9kdWxlIH0gZnJvbSAnQGFwaXBhc3MvaW5wdXRzJ1xyXG5pbXBvcnQgeyBBUElQQVNTX1RZUEVTQ1JJUFRfQ09NUElMRV9JTlRMX1BST1ZJREVSIH0gZnJvbSAnLi90eXBlLXNjcmlwdC1jb21waWxlL3R5cGUtc2NyaXB0LWNvbXBpbGUuYmFzZSdcclxuaW1wb3J0IHsgSWNvbnNNb2R1bGUgfSBmcm9tICdAYXBpcGFzcy9pY29ucydcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRG5kTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgSW5wdXRzTW9kdWxlLFxyXG4gICAgSWNvbnNNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQXJyYXlTZXNzaW9uQ29tcG9uZW50LFxyXG4gICAgU2NoZW1hQXJyYXlDb21wb25lbnQsXHJcbiAgICBGaWVsZFJlbmRlckNvbXBvbmVudCxcclxuICAgIElucHV0UmVuZGVyQ29tcG9uZW50LFxyXG4gICAgQm9vbGVhbklucHV0Q29tcG9uZW50LFxyXG4gICAgTnVtYmVySW5wdXRDb21wb25lbnQsXHJcbiAgICBTY2hlbWFJbnB1dENvbXBvbmVudCxcclxuICAgIFNjaGVtYU9iamVjdENvbXBvbmVudCxcclxuICAgIFNjaGVtYUZvcm1SZW5kZXJDb21wb25lbnQsXHJcbiAgICBTY2hlbWFGb3JtQ29tcG9uZW50LFxyXG4gICAgU2NoZW1hQ3VzdG9tQXR0cmlidXRlc0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQXJyYXlTZXNzaW9uQ29tcG9uZW50LFxyXG4gICAgU2NoZW1hQXJyYXlDb21wb25lbnQsXHJcbiAgICBGaWVsZFJlbmRlckNvbXBvbmVudCxcclxuICAgIElucHV0UmVuZGVyQ29tcG9uZW50LFxyXG4gICAgQm9vbGVhbklucHV0Q29tcG9uZW50LFxyXG4gICAgTnVtYmVySW5wdXRDb21wb25lbnQsXHJcbiAgICBTY2hlbWFJbnB1dENvbXBvbmVudCxcclxuICAgIFNjaGVtYU9iamVjdENvbXBvbmVudCxcclxuICAgIFNjaGVtYUZvcm1SZW5kZXJDb21wb25lbnQsXHJcbiAgICBTY2hlbWFGb3JtQ29tcG9uZW50LFxyXG4gICAgU2NoZW1hQ3VzdG9tQXR0cmlidXRlc0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTY2hlbWFGaWVsZHNTZXJ2aWNlLFxyXG4gICAgQVBJUEFTU19UWVBFU0NSSVBUX0NPTVBJTEVfSU5UTF9QUk9WSURFUlxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNjaGVtYUZvcm1SZW5kZXJNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ export class SchemaValidationField {
2
+ constructor(emptyFields, invalidMinLengthFields, invalidMaxLengthFields) {
3
+ this.emptyFields = emptyFields;
4
+ this.invalidMinLengthFields = invalidMinLengthFields;
5
+ this.invalidMaxLengthFields = invalidMaxLengthFields;
6
+ }
7
+ isValidSchemaFields() {
8
+ return this.emptyFields?.length < 1 && this.invalidMinLengthFields?.length < 1 && this.invalidMaxLengthFields?.length < 1;
9
+ }
10
+ isInvalidSchemaFields() {
11
+ return !this.isValidSchemaFields();
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLXZhbGlkYXRpb24tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9zY2hlbWFzL3NyYy9zY2hlbWEtdmFsaWRhdGlvbi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUFhLFdBQTRCLEVBQUUsc0JBQXVDLEVBQUUsc0JBQXVDO1FBQ3pILElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQTtRQUNwRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUE7SUFDdEQsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUMzSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTdHJ1Y3RGaWVsZFR5cGUgPSBBcnJheTx7XHJcbiAgdGl0bGU/OiBzdHJpbmdcclxuICBpZDogc3RyaW5nXHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcclxuICBwcm9wZXJ0eU9yZGVyPzogbnVtYmVyXHJcbiAgbWluTGVuZ3RoPzogbnVtYmVyXHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyXHJcbn0+XHJcblxyXG5leHBvcnQgdHlwZSBFcnJvcnNMYWJlbCA9IEFycmF5PHtcclxuICB0eXBlOiBzdHJpbmdcclxuICBmaWVsZE5hbWU/OiBzdHJpbmdcclxuICBtaW5MZW5ndGg/OiBudW1iZXJcclxuICBtYXhMZW5ndGg/OiBudW1iZXJcclxufT5cclxuXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFWYWxpZGF0aW9uRmllbGQge1xuICBlbXB0eUZpZWxkczogU3RydWN0RmllbGRUeXBlXHJcbiAgaW52YWxpZE1pbkxlbmd0aEZpZWxkczogU3RydWN0RmllbGRUeXBlXHJcbiAgaW52YWxpZE1heExlbmd0aEZpZWxkczogU3RydWN0RmllbGRUeXBlXHJcbiAgdmFsaWRhdGlvbkVycm9yc0xhYmVsOiBFcnJvcnNMYWJlbCB8IHVuZGVmaW5lZFxyXG5cclxuICBjb25zdHJ1Y3RvciAoZW1wdHlGaWVsZHM6IFN0cnVjdEZpZWxkVHlwZSwgaW52YWxpZE1pbkxlbmd0aEZpZWxkczogU3RydWN0RmllbGRUeXBlLCBpbnZhbGlkTWF4TGVuZ3RoRmllbGRzOiBTdHJ1Y3RGaWVsZFR5cGUpIHtcclxuICAgIHRoaXMuZW1wdHlGaWVsZHMgPSBlbXB0eUZpZWxkc1xyXG4gICAgdGhpcy5pbnZhbGlkTWluTGVuZ3RoRmllbGRzID0gaW52YWxpZE1pbkxlbmd0aEZpZWxkc1xyXG4gICAgdGhpcy5pbnZhbGlkTWF4TGVuZ3RoRmllbGRzID0gaW52YWxpZE1heExlbmd0aEZpZWxkc1xyXG4gIH1cclxuXHJcbiAgaXNWYWxpZFNjaGVtYUZpZWxkcyAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbXB0eUZpZWxkcz8ubGVuZ3RoIDwgMSAmJiB0aGlzLmludmFsaWRNaW5MZW5ndGhGaWVsZHM/Lmxlbmd0aCA8IDEgJiYgdGhpcy5pbnZhbGlkTWF4TGVuZ3RoRmllbGRzPy5sZW5ndGggPCAxXHJcbiAgfVxyXG5cclxuICBpc0ludmFsaWRTY2hlbWFGaWVsZHMgKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmlzVmFsaWRTY2hlbWFGaWVsZHMoKVxyXG4gIH1cbn1cclxuIl19
@@ -0,0 +1,9 @@
1
+ export function onDropStruct(event, attr) {
2
+ const data = event.data;
3
+ if (!attr) {
4
+ attr = '';
5
+ }
6
+ attr += `{{${data}}}`;
7
+ return attr;
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvc3RydWN0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUUsS0FBVSxFQUFFLElBQVM7SUFDakQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtJQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsSUFBSSxHQUFHLEVBQUUsQ0FBQTtLQUNWO0lBQ0QsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUE7SUFDckIsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG9uRHJvcFN0cnVjdCAoZXZlbnQ6IGFueSwgYXR0cjogYW55KTogYW55IHtcclxuICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YVxyXG4gIGlmICghYXR0cikge1xyXG4gICAgYXR0ciA9ICcnXHJcbiAgfVxyXG4gIGF0dHIgKz0gYHt7JHtkYXRhfX19YFxyXG4gIHJldHVybiBhdHRyXHJcbn1cclxuIl19
@@ -0,0 +1,114 @@
1
+ import { Injectable, Optional, SkipSelf } from '@angular/core';
2
+ import { FormControl, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export class TypeScriptCompileBase {
5
+ getTranslate(text) {
6
+ return text;
7
+ }
8
+ addItemToFormProperties(formProperties, item, key) {
9
+ this.translateProperties(item);
10
+ if (item.minLength && item.minLength > 0) {
11
+ formProperties[key] = new FormControl([null, [Validators.required]]);
12
+ }
13
+ else {
14
+ formProperties[key] = new FormControl([null]);
15
+ }
16
+ }
17
+ compileProperties(input) {
18
+ const compiledProperties = [];
19
+ const formProperties = {};
20
+ let inputData = {};
21
+ const inputToCompile = JSON.parse(JSON.stringify(input));
22
+ this.translateProperties(inputToCompile);
23
+ if (inputToCompile.properties) {
24
+ if (inputToCompile.type === 'array') {
25
+ inputData = [];
26
+ }
27
+ if (inputToCompile.type === 'object') {
28
+ inputData = {};
29
+ }
30
+ inputToCompile.id = 'inputData';
31
+ this.proccessProperties(inputToCompile, formProperties, 'inputData');
32
+ this.translateProperties(inputToCompile);
33
+ compiledProperties.push(inputToCompile);
34
+ }
35
+ else if (inputToCompile.type === 'array') {
36
+ inputToCompile.id = 'inputData';
37
+ inputData = [];
38
+ this.addItemToFormProperties(formProperties, inputToCompile, 'inputData');
39
+ compiledProperties.push(inputToCompile);
40
+ }
41
+ else if (!inputToCompile.type) {
42
+ for (let index = 0; index < Object.keys(inputToCompile).length; index++) {
43
+ const key = Object.keys(inputToCompile)[index];
44
+ const item = inputToCompile[key];
45
+ item.id = key;
46
+ if (item.type === 'array') {
47
+ inputData[item.id] = [];
48
+ }
49
+ if (item.type === 'object') {
50
+ inputData[item.id] = {};
51
+ }
52
+ this.proccessProperties(item, formProperties, key);
53
+ this.translateProperties(item);
54
+ compiledProperties.push(item);
55
+ }
56
+ }
57
+ compiledProperties.sort((a, b) => a.propertyOrder - b.propertyOrder);
58
+ return { compiledProperties, formProperties, inputData };
59
+ }
60
+ translateProperties(input) {
61
+ if (input?.title) {
62
+ input.title = this.getTranslate(input.title);
63
+ }
64
+ if (input?.description) {
65
+ input.description = this.getTranslate(input.description);
66
+ }
67
+ if (input?.options instanceof Array) {
68
+ input?.options.forEach((option) => {
69
+ option.value = this.getTranslate(option.value);
70
+ });
71
+ }
72
+ }
73
+ proccessProperties(item, formProperties, key) {
74
+ this.translateProperties(item);
75
+ if (this.hasProperties(item)) {
76
+ const arFieldsChild = [];
77
+ for (let indexChild = 0; indexChild < Object.keys(item.properties).length; indexChild++) {
78
+ const keyChild = Object.keys(item.properties)[indexChild];
79
+ const itemChild = item.properties[keyChild];
80
+ itemChild.id = keyChild;
81
+ if (this.hasProperties(itemChild)) {
82
+ this.proccessProperties(itemChild, formProperties, keyChild);
83
+ arFieldsChild.push(itemChild);
84
+ }
85
+ else {
86
+ this.addItemToFormProperties(formProperties, itemChild, keyChild);
87
+ arFieldsChild.push(itemChild);
88
+ }
89
+ }
90
+ item.properties = arFieldsChild;
91
+ }
92
+ else {
93
+ this.addItemToFormProperties(formProperties, item, key);
94
+ }
95
+ }
96
+ hasProperties(item) {
97
+ return item.type === 'object' || (item.type === 'array' && item.properties);
98
+ }
99
+ }
100
+ TypeScriptCompileBase.ɵfac = function TypeScriptCompileBase_Factory(t) { return new (t || TypeScriptCompileBase)(); };
101
+ TypeScriptCompileBase.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TypeScriptCompileBase, factory: TypeScriptCompileBase.ɵfac, providedIn: 'root' });
102
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TypeScriptCompileBase, [{
103
+ type: Injectable,
104
+ args: [{ providedIn: 'root' }]
105
+ }], null, null); })();
106
+ export function APIPASS_TYPESCRIPT_COMPILE_BASE_PROVIDER_FACTORY(parentIntl) {
107
+ return parentIntl || new TypeScriptCompileBase();
108
+ }
109
+ export const APIPASS_TYPESCRIPT_COMPILE_INTL_PROVIDER = {
110
+ provide: TypeScriptCompileBase,
111
+ deps: [[new Optional(), new SkipSelf(), TypeScriptCompileBase]],
112
+ useFactory: APIPASS_TYPESCRIPT_COMPILE_BASE_PROVIDER_FACTORY
113
+ };
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zY3JpcHQtY29tcGlsZS5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvdHlwZS1zY3JpcHQtY29tcGlsZS90eXBlLXNjcmlwdC1jb21waWxlLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7O0FBR3hELE1BQU0sT0FBTyxxQkFBcUI7SUFDdEIsWUFBWSxDQUFFLElBQVk7UUFDbEMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRVMsdUJBQXVCLENBQUUsY0FBbUIsRUFBRSxJQUFTLEVBQUUsR0FBVztRQUM1RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDckU7YUFBTTtZQUNMLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7U0FDOUM7SUFDSCxDQUFDO0lBRU0saUJBQWlCLENBQUUsS0FBVTtRQUtsQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtRQUM3QixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUE7UUFDekIsSUFBSSxTQUFTLEdBQVEsRUFBRSxDQUFBO1FBQ3ZCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFL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QUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1NBQ3hEO0lBQ0gsQ0FBQztJQUVTLGFBQWEsQ0FBRSxJQUFTO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDN0UsQ0FBQzs7MEZBdEdVLHFCQUFxQjsyRUFBckIscUJBQXFCLFdBQXJCLHFCQUFxQixtQkFEUixNQUFNO3VGQUNuQixxQkFBcUI7Y0FEakMsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUEwR2xDLE1BQU0sVUFBVSxnREFBZ0QsQ0FBRSxVQUFpQztJQUNqRyxPQUFPLFVBQVUsSUFBSSxJQUFJLHFCQUFxQixFQUFFLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFRO0lBQzNELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUMvRCxVQUFVLEVBQUUsZ0RBQWdEO0NBQzdELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRDb21waWxlQmFzZSB7XHJcbiAgcHJvdGVjdGVkIGdldFRyYW5zbGF0ZSAodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0ZXh0XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWRkSXRlbVRvRm9ybVByb3BlcnRpZXMgKGZvcm1Qcm9wZXJ0aWVzOiBhbnksIGl0ZW06IGFueSwga2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlUHJvcGVydGllcyhpdGVtKVxyXG4gICAgaWYgKGl0ZW0ubWluTGVuZ3RoICYmIGl0ZW0ubWluTGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3JtUHJvcGVydGllc1trZXldID0gbmV3IEZvcm1Db250cm9sKFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybVByb3BlcnRpZXNba2V5XSA9IG5ldyBGb3JtQ29udHJvbChbbnVsbF0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29tcGlsZVByb3BlcnRpZXMgKGlucHV0OiBhbnkpOiB7XHJcbiAgICBjb21waWxlZFByb3BlcnRpZXM6IGFueVxyXG4gICAgZm9ybVByb3BlcnRpZXM6IGFueVxyXG4gICAgaW5wdXREYXRhOiBhbnlcclxuICB9IHtcclxuICAgIGNvbnN0IGNvbXBpbGVkUHJvcGVydGllcyA9IFtdXHJcbiAgICBjb25zdCBmb3JtUHJvcGVydGllcyA9IHt9XHJcbiAgICBsZXQgaW5wdXREYXRhOiBhbnkgPSB7fVxyXG4gICAgY29uc3QgaW5wdXRUb0NvbXBpbGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGlucHV0KSlcclxuICAgIHRoaXMudHJhbnNsYXRlUHJvcGVydGllcyhpbnB1dFRvQ29tcGlsZSlcclxuXHJcbiAgICBpZiAoaW5wdXRUb0NvbXBpbGUucHJvcGVydGllcykge1xyXG4gICAgICBpZiAoaW5wdXRUb0NvbXBpbGUudHlwZSA9PT0gJ2FycmF5Jykge1xyXG4gICAgICAgIGlucHV0RGF0YSA9IFtdXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlucHV0VG9Db21waWxlLnR5cGUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgaW5wdXREYXRhID0ge31cclxuICAgICAgfVxyXG4gICAgICBpbnB1dFRvQ29tcGlsZS5pZCA9ICdpbnB1dERhdGEnXHJcbiAgICAgIHRoaXMucHJvY2Nlc3NQcm9wZXJ0aWVzKGlucHV0VG9Db21waWxlLCBmb3JtUHJvcGVydGllcywgJ2lucHV0RGF0YScpXHJcbiAgICAgIHRoaXMudHJhbnNsYXRlUHJvcGVydGllcyhpbnB1dFRvQ29tcGlsZSlcclxuICAgICAgY29tcGlsZWRQcm9wZXJ0aWVzLnB1c2goaW5wdXRUb0NvbXBpbGUpXHJcbiAgICB9IGVsc2UgaWYgKGlucHV0VG9Db21waWxlLnR5cGUgPT09ICdhcnJheScpIHtcclxuICAgICAgaW5wdXRUb0NvbXBpbGUuaWQgPSAnaW5wdXREYXRhJ1xyXG4gICAgICBpbnB1dERhdGEgPSBbXVxyXG4gICAgICB0aGlzLmFkZEl0ZW1Ub0Zvcm1Qcm9wZXJ0aWVzKGZvcm1Qcm9wZXJ0aWVzLCBpbnB1dFRvQ29tcGlsZSwgJ2lucHV0RGF0YScpXHJcbiAgICAgIGNvbXBpbGVkUHJvcGVydGllcy5wdXNoKGlucHV0VG9Db21waWxlKVxyXG4gICAgfSBlbHNlIGlmICghaW5wdXRUb0NvbXBpbGUudHlwZSkge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgT2JqZWN0LmtleXMoaW5wdXRUb0NvbXBpbGUpLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGlucHV0VG9Db21waWxlKVtpbmRleF1cclxuICAgICAgICBjb25zdCBpdGVtID0gaW5wdXRUb0NvbXBpbGVba2V5XVxyXG4gICAgICAgIGl0ZW0uaWQgPSBrZXlcclxuXHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2FycmF5Jykge1xyXG4gICAgICAgICAgaW5wdXREYXRhW2l0ZW0uaWRdID0gW11cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpbnB1dERhdGFbaXRlbS5pZF0gPSB7fVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnByb2NjZXNzUHJvcGVydGllcyhpdGVtLCBmb3JtUHJvcGVydGllcywga2V5KVxyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlUHJvcGVydGllcyhpdGVtKVxyXG4gICAgICAgIGNvbXBpbGVkUHJvcGVydGllcy5wdXNoKGl0ZW0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb21waWxlZFByb3BlcnRpZXMuc29ydCgoYSwgYikgPT4gYS5wcm9wZXJ0eU9yZGVyIC0gYi5wcm9wZXJ0eU9yZGVyKVxyXG4gICAgcmV0dXJuIHsgY29tcGlsZWRQcm9wZXJ0aWVzLCBmb3JtUHJvcGVydGllcywgaW5wdXREYXRhIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2xhdGVQcm9wZXJ0aWVzIChpbnB1dDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoaW5wdXQ/LnRpdGxlKSB7XHJcbiAgICAgIGlucHV0LnRpdGxlID0gdGhpcy5nZXRUcmFuc2xhdGUoaW5wdXQudGl0bGUpXHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXQ/LmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgIGlucHV0LmRlc2NyaXB0aW9uID0gdGhpcy5nZXRUcmFuc2xhdGUoaW5wdXQuZGVzY3JpcHRpb24pXHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXQ/Lm9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICBpbnB1dD8ub3B0aW9ucy5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgIG9wdGlvbi52YWx1ZSA9IHRoaXMuZ2V0VHJhbnNsYXRlKG9wdGlvbi52YWx1ZSlcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcm9jY2Vzc1Byb3BlcnRpZXMgKGl0ZW06IGFueSwgZm9ybVByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGVQcm9wZXJ0aWVzKGl0ZW0pXHJcbiAgICBpZiAodGhpcy5oYXNQcm9wZXJ0aWVzKGl0ZW0pKSB7XHJcbiAgICAgIGNvbnN0IGFyRmllbGRzQ2hpbGQgPSBbXVxyXG4gICAgICBmb3IgKGxldCBpbmRleENoaWxkID0gMDsgaW5kZXhDaGlsZCA8IE9iamVjdC5rZXlzKGl0ZW0ucHJvcGVydGllcykubGVuZ3RoOyBpbmRleENoaWxkKyspIHtcclxuICAgICAgICBjb25zdCBrZXlDaGlsZCA9IE9iamVjdC5rZXlzKGl0ZW0ucHJvcGVydGllcylbaW5kZXhDaGlsZF1cclxuICAgICAgICBjb25zdCBpdGVtQ2hpbGQgPSBpdGVtLnByb3BlcnRpZXNba2V5Q2hpbGRdXHJcbiAgICAgICAgaXRlbUNoaWxkLmlkID0ga2V5Q2hpbGRcclxuICAgICAgICBpZiAodGhpcy5oYXNQcm9wZXJ0aWVzKGl0ZW1DaGlsZCkpIHtcclxuICAgICAgICAgIHRoaXMucHJvY2Nlc3NQcm9wZXJ0aWVzKGl0ZW1DaGlsZCwgZm9ybVByb3BlcnRpZXMsIGtleUNoaWxkKVxyXG4gICAgICAgICAgYXJGaWVsZHNDaGlsZC5wdXNoKGl0ZW1DaGlsZClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hZGRJdGVtVG9Gb3JtUHJvcGVydGllcyhmb3JtUHJvcGVydGllcywgaXRlbUNoaWxkLCBrZXlDaGlsZClcclxuICAgICAgICAgIGFyRmllbGRzQ2hpbGQucHVzaChpdGVtQ2hpbGQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGl0ZW0ucHJvcGVydGllcyA9IGFyRmllbGRzQ2hpbGRcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWRkSXRlbVRvRm9ybVByb3BlcnRpZXMoZm9ybVByb3BlcnRpZXMsIGl0ZW0sIGtleSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYXNQcm9wZXJ0aWVzIChpdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gJ29iamVjdCcgfHwgKGl0ZW0udHlwZSA9PT0gJ2FycmF5JyAmJiBpdGVtLnByb3BlcnRpZXMpXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gQVBJUEFTU19UWVBFU0NSSVBUX0NPTVBJTEVfQkFTRV9QUk9WSURFUl9GQUNUT1JZIChwYXJlbnRJbnRsOiBUeXBlU2NyaXB0Q29tcGlsZUJhc2UpOiBhbnkge1xyXG4gIHJldHVybiBwYXJlbnRJbnRsIHx8IG5ldyBUeXBlU2NyaXB0Q29tcGlsZUJhc2UoKVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQVBJUEFTU19UWVBFU0NSSVBUX0NPTVBJTEVfSU5UTF9QUk9WSURFUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IFR5cGVTY3JpcHRDb21waWxlQmFzZSxcclxuICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgVHlwZVNjcmlwdENvbXBpbGVCYXNlXV0sXHJcbiAgdXNlRmFjdG9yeTogQVBJUEFTU19UWVBFU0NSSVBUX0NPTVBJTEVfQkFTRV9QUk9WSURFUl9GQUNUT1JZXHJcbn1cclxuIl19