@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
@@ -1,17 +1,17 @@
1
- import * as i0 from "@angular/core";
2
- export declare class TypeScriptCompileBase {
3
- protected getTranslate(text: string): string;
4
- protected addItemToFormProperties(formProperties: any, item: any, key: string): void;
5
- compileProperties(input: any): {
6
- compiledProperties: any;
7
- formProperties: any;
8
- inputData: any;
9
- };
10
- protected translateProperties(input: any): void;
11
- protected proccessProperties(item: any, formProperties: Record<string, unknown>, key: any): void;
12
- protected hasProperties(item: any): any;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<TypeScriptCompileBase, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<TypeScriptCompileBase>;
15
- }
16
- export declare function APIPASS_TYPESCRIPT_COMPILE_BASE_PROVIDER_FACTORY(parentIntl: TypeScriptCompileBase): any;
17
- export declare const APIPASS_TYPESCRIPT_COMPILE_INTL_PROVIDER: any;
1
+ import * as i0 from "@angular/core";
2
+ export declare class TypeScriptCompileBase {
3
+ protected getTranslate(text: string): string;
4
+ protected addItemToFormProperties(formProperties: any, item: any, key: string): void;
5
+ compileProperties(input: any): {
6
+ compiledProperties: any;
7
+ formProperties: any;
8
+ inputData: any;
9
+ };
10
+ protected translateProperties(input: any): void;
11
+ protected proccessProperties(item: any, formProperties: Record<string, unknown>, key: any): void;
12
+ protected hasProperties(item: any): any;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<TypeScriptCompileBase, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<TypeScriptCompileBase>;
15
+ }
16
+ export declare function APIPASS_TYPESCRIPT_COMPILE_BASE_PROVIDER_FACTORY(parentIntl: TypeScriptCompileBase): any;
17
+ export declare const APIPASS_TYPESCRIPT_COMPILE_INTL_PROVIDER: any;
@@ -1,37 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BaseSchemaComponent {
4
- constructor() {
5
- this.modelChange = new EventEmitter();
6
- }
7
- getSchemaProperties() {
8
- return this.schema.properties instanceof Array ? this.schema.properties : [this.schema.properties];
9
- }
10
- canRender(property) {
11
- property.canRender = property?.conditionExpression ? eval(property.conditionExpression) : true;
12
- return property.canRender;
13
- }
14
- onDrop(event, attr) {
15
- const data = event.data;
16
- if (!attr) {
17
- attr = '';
18
- }
19
- attr += `{{${data}}}`;
20
- return attr;
21
- }
22
- }
23
- BaseSchemaComponent.ɵfac = function BaseSchemaComponent_Factory(t) { return new (t || BaseSchemaComponent)(); };
24
- BaseSchemaComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BaseSchemaComponent, selectors: [["ng-component"]], inputs: { model: "model", schema: "schema" }, outputs: { modelChange: "modelChange" }, decls: 0, vars: 0, template: function BaseSchemaComponent_Template(rf, ctx) { }, encapsulation: 2 });
25
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseSchemaComponent, [{
26
- type: Component,
27
- args: [{
28
- template: ''
29
- }]
30
- }], null, { model: [{
31
- type: Input
32
- }], schema: [{
33
- type: Input
34
- }], modelChange: [{
35
- type: Output
36
- }] }); })();
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zY2hlbWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvYmFzZS1zY2hlbWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBS3RFLE1BQU0sT0FBZ0IsbUJBQW1CO0lBSHpDO1FBTVksZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQTtLQW1CbkU7SUFqQkMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3BHLENBQUM7SUFFTSxTQUFTLENBQUUsUUFBYTtRQUM3QixRQUFRLENBQUMsU0FBUyxHQUFHLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDOUYsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFBO0lBQzNCLENBQUM7SUFFTSxNQUFNLENBQUUsS0FBVSxFQUFFLElBQVM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsSUFBSSxHQUFHLEVBQUUsQ0FBQTtTQUNWO1FBQ0QsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUE7UUFDckIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOztzRkFyQm1CLG1CQUFtQjtzRUFBbkIsbUJBQW1CO3VGQUFuQixtQkFBbUI7Y0FIeEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2I7Z0JBRVUsS0FBSztrQkFBYixLQUFLO1lBQ1UsTUFBTTtrQkFBckIsS0FBSztZQUNJLFdBQVc7a0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTY2hlbWFDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBhbnlcclxuICBASW5wdXQoKSBwdWJsaWMgc2NoZW1hOiBhbnlcclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcclxuXHJcbiAgZ2V0U2NoZW1hUHJvcGVydGllcyAoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzIGluc3RhbmNlb2YgQXJyYXkgPyB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzIDogW3RoaXMuc2NoZW1hLnByb3BlcnRpZXNdXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuUmVuZGVyIChwcm9wZXJ0eTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBwcm9wZXJ0eS5jYW5SZW5kZXIgPSBwcm9wZXJ0eT8uY29uZGl0aW9uRXhwcmVzc2lvbiA/IGV2YWwocHJvcGVydHkuY29uZGl0aW9uRXhwcmVzc2lvbikgOiB0cnVlXHJcbiAgICByZXR1cm4gcHJvcGVydHkuY2FuUmVuZGVyXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Ecm9wIChldmVudDogYW55LCBhdHRyOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGFcclxuICAgIGlmICghYXR0cikge1xyXG4gICAgICBhdHRyID0gJydcclxuICAgIH1cclxuICAgIGF0dHIgKz0gYHt7JHtkYXRhfX19YFxyXG4gICAgcmV0dXJuIGF0dHJcclxuICB9XHJcbn1cclxuIl19
@@ -1,169 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } 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
- import * as i4 from "@angular/material/tooltip";
8
- const _c0 = function () { return { standalone: true }; };
9
- function SchemaCustomAttributesComponent_div_0_Template(rf, ctx) { if (rf & 1) {
10
- const _r8 = i0.ɵɵgetCurrentView();
11
- i0.ɵɵelementStart(0, "div", 6)(1, "div", 7)(2, "label", 8);
12
- i0.ɵɵtext(3);
13
- i0.ɵɵelementEnd();
14
- i0.ɵɵelementStart(4, "span", 9);
15
- i0.ɵɵlistener("click", function SchemaCustomAttributesComponent_div_0_Template_span_click_4_listener() { const restoredCtx = i0.ɵɵrestoreView(_r8); const i_r6 = restoredCtx.index; const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.removeCustomAttribute(i_r6)); });
16
- i0.ɵɵelement(5, "i", 10);
17
- i0.ɵɵelementEnd();
18
- i0.ɵɵelementStart(6, "input", 11);
19
- i0.ɵɵlistener("ngModelChange", function SchemaCustomAttributesComponent_div_0_Template_input_ngModelChange_6_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r8); const attribute_r5 = restoredCtx.$implicit; return i0.ɵɵresetView(attribute_r5.value = $event); })("dndDrop", function SchemaCustomAttributesComponent_div_0_Template_input_dndDrop_6_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r8); const attribute_r5 = restoredCtx.$implicit; const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.onDropAttr($event, "value", attribute_r5)); });
20
- i0.ɵɵelementEnd()()();
21
- } if (rf & 2) {
22
- const attribute_r5 = ctx.$implicit;
23
- const ctx_r0 = i0.ɵɵnextContext();
24
- i0.ɵɵadvance(3);
25
- i0.ɵɵtextInterpolate(attribute_r5.label);
26
- i0.ɵɵadvance(2);
27
- i0.ɵɵproperty("matTooltip", ctx_r0.customAttributeRemoveLabel);
28
- i0.ɵɵadvance(1);
29
- i0.ɵɵproperty("ngModel", attribute_r5.value)("ngModelOptions", i0.ɵɵpureFunction0(4, _c0));
30
- } }
31
- function SchemaCustomAttributesComponent_div_1_Template(rf, ctx) { if (rf & 1) {
32
- const _r12 = i0.ɵɵgetCurrentView();
33
- i0.ɵɵelementStart(0, "div", 12)(1, "div", 13)(2, "div", 7)(3, "label", 8);
34
- i0.ɵɵtext(4);
35
- i0.ɵɵelementStart(5, "strong");
36
- i0.ɵɵtext(6, "*");
37
- i0.ɵɵelementEnd()();
38
- i0.ɵɵelementStart(7, "input", 11);
39
- i0.ɵɵlistener("ngModelChange", function SchemaCustomAttributesComponent_div_1_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.newCustomField.label = $event); })("dndDrop", function SchemaCustomAttributesComponent_div_1_Template_input_dndDrop_7_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.onDropAttr($event, "label", ctx_r13.newCustomField)); });
40
- i0.ɵɵelementEnd()()();
41
- i0.ɵɵelementStart(8, "div", 13)(9, "div", 7)(10, "label", 8);
42
- i0.ɵɵtext(11);
43
- i0.ɵɵelementStart(12, "strong");
44
- i0.ɵɵtext(13, "*");
45
- i0.ɵɵelementEnd()();
46
- i0.ɵɵelementStart(14, "input", 11);
47
- i0.ɵɵlistener("ngModelChange", function SchemaCustomAttributesComponent_div_1_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.newCustomField.value = $event); })("dndDrop", function SchemaCustomAttributesComponent_div_1_Template_input_dndDrop_14_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.onDropAttr($event, "value", ctx_r15.newCustomField)); });
48
- i0.ɵɵelementEnd()()()();
49
- } if (rf & 2) {
50
- const ctx_r1 = i0.ɵɵnextContext();
51
- i0.ɵɵadvance(4);
52
- i0.ɵɵtextInterpolate(ctx_r1.newCustomFieldNameLabel);
53
- i0.ɵɵadvance(3);
54
- i0.ɵɵproperty("ngModel", ctx_r1.newCustomField.label)("ngModelOptions", i0.ɵɵpureFunction0(6, _c0));
55
- i0.ɵɵadvance(4);
56
- i0.ɵɵtextInterpolate(ctx_r1.newCustomFieldValueLabel);
57
- i0.ɵɵadvance(3);
58
- i0.ɵɵproperty("ngModel", ctx_r1.newCustomField.value)("ngModelOptions", i0.ɵɵpureFunction0(7, _c0));
59
- } }
60
- function SchemaCustomAttributesComponent_button_4_Template(rf, ctx) { if (rf & 1) {
61
- const _r17 = i0.ɵɵgetCurrentView();
62
- i0.ɵɵelementStart(0, "button", 14);
63
- i0.ɵɵlistener("click", function SchemaCustomAttributesComponent_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.newCustomField = {}); });
64
- i0.ɵɵtext(1);
65
- i0.ɵɵelementEnd();
66
- } if (rf & 2) {
67
- const ctx_r2 = i0.ɵɵnextContext();
68
- i0.ɵɵadvance(1);
69
- i0.ɵɵtextInterpolate1(" ", ctx_r2.newCustomFieldAddLabel, " ");
70
- } }
71
- function SchemaCustomAttributesComponent_button_5_Template(rf, ctx) { if (rf & 1) {
72
- const _r19 = i0.ɵɵgetCurrentView();
73
- i0.ɵɵelementStart(0, "button", 15);
74
- i0.ɵɵlistener("click", function SchemaCustomAttributesComponent_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.newCustomField = null); });
75
- i0.ɵɵtext(1);
76
- i0.ɵɵelementEnd();
77
- } if (rf & 2) {
78
- const ctx_r3 = i0.ɵɵnextContext();
79
- i0.ɵɵadvance(1);
80
- i0.ɵɵtextInterpolate1(" ", ctx_r3.newCustomFieldCancelLabel, " ");
81
- } }
82
- function SchemaCustomAttributesComponent_button_6_Template(rf, ctx) { if (rf & 1) {
83
- const _r21 = i0.ɵɵgetCurrentView();
84
- i0.ɵɵelementStart(0, "button", 14);
85
- i0.ɵɵlistener("click", function SchemaCustomAttributesComponent_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.saveNewAttribute(ctx_r20.newCustomField)); });
86
- i0.ɵɵtext(1);
87
- i0.ɵɵelementEnd();
88
- } if (rf & 2) {
89
- const ctx_r4 = i0.ɵɵnextContext();
90
- i0.ɵɵadvance(1);
91
- i0.ɵɵtextInterpolate1(" ", ctx_r4.newCustomFieldSaveLabel, " ");
92
- } }
93
- export class SchemaCustomAttributesComponent extends BaseSchemaComponent {
94
- constructor() {
95
- super(...arguments);
96
- this.customAttributeRemoveLabel = 'Remove';
97
- this.newCustomFieldNameLabel = 'Name';
98
- this.newCustomFieldValueLabel = 'Value';
99
- this.newCustomFieldAddLabel = 'Add';
100
- this.newCustomFieldSaveLabel = 'Save';
101
- this.newCustomFieldCancelLabel = 'Cancel';
102
- this.onSaveAttribute = new EventEmitter();
103
- this.onDropOnAttribute = new EventEmitter();
104
- }
105
- ngAfterContentInit() {
106
- if (!this.model) {
107
- this.model = [];
108
- }
109
- }
110
- saveNewAttribute(newCustomField) {
111
- this.onSaveAttribute.emit(newCustomField);
112
- this.model.push(newCustomField);
113
- this.newCustomField = null;
114
- this.modelChange.emit(this.model);
115
- }
116
- removeCustomAttribute(attributeIndex) {
117
- this.model.splice(attributeIndex, 1);
118
- this.modelChange.emit(this.model);
119
- }
120
- onDropAttr($event, value, newCustomField) {
121
- if (!newCustomField[value]) {
122
- newCustomField[value] = '';
123
- }
124
- newCustomField[value] += `{{${$event.data}}}`;
125
- }
126
- }
127
- SchemaCustomAttributesComponent.ɵfac = /*@__PURE__*/ function () { let ɵSchemaCustomAttributesComponent_BaseFactory; return function SchemaCustomAttributesComponent_Factory(t) { return (ɵSchemaCustomAttributesComponent_BaseFactory || (ɵSchemaCustomAttributesComponent_BaseFactory = i0.ɵɵgetInheritedFactory(SchemaCustomAttributesComponent)))(t || SchemaCustomAttributesComponent); }; }();
128
- SchemaCustomAttributesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SchemaCustomAttributesComponent, selectors: [["schema-custom-attributes"]], inputs: { onDropFunction: "onDropFunction", customAttributeRemoveLabel: "customAttributeRemoveLabel", newCustomFieldNameLabel: "newCustomFieldNameLabel", newCustomFieldValueLabel: "newCustomFieldValueLabel", newCustomFieldAddLabel: "newCustomFieldAddLabel", newCustomFieldSaveLabel: "newCustomFieldSaveLabel", newCustomFieldCancelLabel: "newCustomFieldCancelLabel" }, outputs: { onSaveAttribute: "onSaveAttribute", onDropOnAttribute: "onDropOnAttribute" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 5, consts: [["class", "row custom-attributes", 4, "ngFor", "ngForOf"], ["class", "struct-custom-field", 4, "ngIf"], [1, "row", "actions-buttons"], [1, "col-md-12", "pull-right"], ["class", "btn btn-outline-primary float-left", 3, "click", 4, "ngIf"], ["class", "btn btn-outline-danger float-left ml-2", 3, "click", 4, "ngIf"], [1, "row", "custom-attributes"], [1, "col-md-12"], [1, "info-label"], [1, "customAttributeDeleteIcon", 3, "click"], [1, "far", "fa-trash-alt", 3, "matTooltip"], ["dndDropzone", "", 1, "form-control", 3, "ngModel", "ngModelOptions", "ngModelChange", "dndDrop"], [1, "struct-custom-field"], [1, "row"], [1, "btn", "btn-outline-primary", "float-left", 3, "click"], [1, "btn", "btn-outline-danger", "float-left", "ml-2", 3, "click"]], template: function SchemaCustomAttributesComponent_Template(rf, ctx) { if (rf & 1) {
129
- i0.ɵɵtemplate(0, SchemaCustomAttributesComponent_div_0_Template, 7, 5, "div", 0);
130
- i0.ɵɵtemplate(1, SchemaCustomAttributesComponent_div_1_Template, 15, 8, "div", 1);
131
- i0.ɵɵelementStart(2, "div", 2)(3, "div", 3);
132
- i0.ɵɵtemplate(4, SchemaCustomAttributesComponent_button_4_Template, 2, 1, "button", 4);
133
- i0.ɵɵtemplate(5, SchemaCustomAttributesComponent_button_5_Template, 2, 1, "button", 5);
134
- i0.ɵɵtemplate(6, SchemaCustomAttributesComponent_button_6_Template, 2, 1, "button", 4);
135
- i0.ɵɵelementEnd()();
136
- } if (rf & 2) {
137
- i0.ɵɵproperty("ngForOf", ctx.model);
138
- i0.ɵɵadvance(1);
139
- i0.ɵɵproperty("ngIf", ctx.newCustomField);
140
- i0.ɵɵadvance(3);
141
- i0.ɵɵproperty("ngIf", !ctx.newCustomField);
142
- i0.ɵɵadvance(1);
143
- i0.ɵɵproperty("ngIf", ctx.newCustomField);
144
- i0.ɵɵadvance(1);
145
- i0.ɵɵproperty("ngIf", ctx.newCustomField && ctx.newCustomField.label && ctx.newCustomField.value);
146
- } }, dependencies: [i1.NgForOf, i1.NgIf, i2.DndDropzoneDirective, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.MatTooltip], styles: [".customAttributeDeleteIcon[_ngcontent-%COMP%]{position:absolute;right:15px;top:4px;cursor:pointer;font-size:16px;color:red}.customAttributeDeleteIcon[_ngcontent-%COMP%]:hover{color:#777}.struct-custom-field[_ngcontent-%COMP%]{margin-top:16px;padding:8px 16px 16px;background-color:#ececec}"] });
147
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchemaCustomAttributesComponent, [{
148
- type: Component,
149
- args: [{ selector: 'schema-custom-attributes', template: "<div class=\"row custom-attributes\" *ngFor=\"let attribute of model; let i = index\">\r\n <div class=\"col-md-12\">\r\n <label class=\"info-label\">{{ attribute.label }}</label>\r\n <span (click)=\"removeCustomAttribute(i)\" class=\"customAttributeDeleteIcon\">\r\n <i class=\"far fa-trash-alt\" [matTooltip]=\"this.customAttributeRemoveLabel\"></i>\r\n </span>\r\n\r\n <input\r\n class=\"form-control\"\r\n [(ngModel)]=\"attribute.value\"\r\n [ngModelOptions]=\"{standalone: true}\"\r\n dndDropzone\r\n (dndDrop)=\"onDropAttr($event, 'value', attribute)\"\r\n />\r\n </div>\r\n</div>\r\n<div *ngIf=\"newCustomField\" class=\"struct-custom-field\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <label class=\"info-label\">{{ this.newCustomFieldNameLabel }}<strong>*</strong></label>\r\n <input \r\n class=\"form-control\" \r\n [(ngModel)]=\"newCustomField.label\" \r\n [ngModelOptions]=\"{standalone: true}\"\r\n dndDropzone\r\n (dndDrop)=\"onDropAttr($event, 'label', newCustomField)\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <label class=\"info-label\">{{ this.newCustomFieldValueLabel }}<strong>*</strong></label>\r\n <input\r\n class=\"form-control\"\r\n [(ngModel)]=\"newCustomField.value\"\r\n [ngModelOptions]=\"{standalone: true}\"\r\n dndDropzone\r\n (dndDrop)=\"onDropAttr($event, 'value', newCustomField)\"\r\n />\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row actions-buttons\">\r\n <div class=\"col-md-12 pull-right\">\r\n <button class=\"btn btn-outline-primary float-left\" *ngIf=\"!newCustomField\" (click)=\"newCustomField = {}\">\r\n {{ this.newCustomFieldAddLabel }}\r\n </button>\r\n <button\r\n class=\"btn btn-outline-danger float-left ml-2\"\r\n *ngIf=\"newCustomField\"\r\n (click)=\"newCustomField = null\"\r\n >\r\n {{ this.newCustomFieldCancelLabel }}\r\n </button>\r\n <button\r\n class=\"btn btn-outline-primary float-left\"\r\n *ngIf=\"newCustomField && newCustomField.label && newCustomField.value\"\r\n (click)=\"saveNewAttribute(newCustomField)\"\r\n >\r\n {{ this.newCustomFieldSaveLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".customAttributeDeleteIcon{position:absolute;right:15px;top:4px;cursor:pointer;font-size:16px;color:red}.customAttributeDeleteIcon:hover{color:#777}.struct-custom-field{margin-top:16px;padding:8px 16px 16px;background-color:#ececec}\n"] }]
150
- }], null, { onDropFunction: [{
151
- type: Input
152
- }], customAttributeRemoveLabel: [{
153
- type: Input
154
- }], newCustomFieldNameLabel: [{
155
- type: Input
156
- }], newCustomFieldValueLabel: [{
157
- type: Input
158
- }], newCustomFieldAddLabel: [{
159
- type: Input
160
- }], newCustomFieldSaveLabel: [{
161
- type: Input
162
- }], newCustomFieldCancelLabel: [{
163
- type: Input
164
- }], onSaveAttribute: [{
165
- type: Output
166
- }], onDropOnAttribute: [{
167
- type: Output
168
- }] }); })();
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWN1c3RvbS1hdHRyaWJ1dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvc2NoZW1hLWN1c3RvbS1hdHRyaWJ1dGVzL3NjaGVtYS1jdXN0b20tYXR0cmlidXRlcy50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaGVtYXMvc3JjL3NjaGVtYS1jdXN0b20tYXR0cmlidXRlcy9zY2hlbWEtY3VzdG9tLWF0dHJpYnV0ZXMuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7Ozs7Ozs7O0lDRDlELDhCQUFrRixhQUFBLGVBQUE7SUFFcEQsWUFBcUI7SUFBQSxpQkFBUTtJQUN2RCwrQkFBMkU7SUFBckUsOE5BQVMsZUFBQSxrQ0FBd0IsQ0FBQSxJQUFDO0lBQ3RDLHdCQUErRTtJQUNqRixpQkFBTztJQUVQLGlDQU1FO0lBSkEsOE5BQWEsMkNBQ2QsSUFEOEIseU9BR2xCLGVBQUEsMkJBQW1CLE9BQU8sZUFBWSxDQUFBLElBSHBCO0lBRi9CLGlCQU1FLEVBQUEsRUFBQTs7OztJQVh3QixlQUFxQjtJQUFyQix3Q0FBcUI7SUFFakIsZUFBOEM7SUFBOUMsOERBQThDO0lBSzFFLGVBQTZCO0lBQTdCLDRDQUE2Qiw4Q0FBQTs7OztJQU9uQywrQkFBd0QsY0FBQSxhQUFBLGVBQUE7SUFHeEIsWUFBa0M7SUFBQSw4QkFBUTtJQUFBLGlCQUFDO0lBQUEsaUJBQVMsRUFBQTtJQUM5RSxpQ0FNRTtJQUpBLG1NQUFhLHFEQUNqQixJQURzQywwS0FHdkIsZUFBQSwyQkFBbUIsT0FBTyx5QkFBaUIsQ0FBQSxJQUhwQjtJQUZwQyxpQkFNRSxFQUFBLEVBQUE7SUFHTiwrQkFBaUIsYUFBQSxn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QUFjO2tCQUF0QixLQUFLO1lBRUcsMEJBQTBCO2tCQUFsQyxLQUFLO1lBQ0csdUJBQXVCO2tCQUEvQixLQUFLO1lBQ0csd0JBQXdCO2tCQUFoQyxLQUFLO1lBQ0csc0JBQXNCO2tCQUE5QixLQUFLO1lBQ0csdUJBQXVCO2tCQUEvQixLQUFLO1lBQ0cseUJBQXlCO2tCQUFqQyxLQUFLO1lBRUksZUFBZTtrQkFBeEIsTUFBTTtZQUNHLGlCQUFpQjtrQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQmFzZVNjaGVtYUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2Utc2NoZW1hLmNvbXBvbmVudCdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2NoZW1hLWN1c3RvbS1hdHRyaWJ1dGVzJyxcclxuICB0ZW1wbGF0ZVVybDogJ3NjaGVtYS1jdXN0b20tYXR0cmlidXRlcy5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zY2hlbWEtY3VzdG9tLWF0dHJpYnV0ZXMuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFDdXN0b21BdHRyaWJ1dGVzQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNjaGVtYUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG4gIEBJbnB1dCgpIG9uRHJvcEZ1bmN0aW9uOiAoKCRldmVudDogYW55LCBtb2RlbEVsZW1lbnQ6IGFueSkgPT4gYW55IHwgdW5kZWZpbmVkKSB8IHVuZGVmaW5lZFxyXG5cclxuICBASW5wdXQoKSBjdXN0b21BdHRyaWJ1dGVSZW1vdmVMYWJlbCA9ICdSZW1vdmUnXHJcbiAgQElucHV0KCkgbmV3Q3VzdG9tRmllbGROYW1lTGFiZWwgPSAnTmFtZSdcclxuICBASW5wdXQoKSBuZXdDdXN0b21GaWVsZFZhbHVlTGFiZWwgPSAnVmFsdWUnXHJcbiAgQElucHV0KCkgbmV3Q3VzdG9tRmllbGRBZGRMYWJlbCA9ICdBZGQnXHJcbiAgQElucHV0KCkgbmV3Q3VzdG9tRmllbGRTYXZlTGFiZWwgPSAnU2F2ZSdcclxuICBASW5wdXQoKSBuZXdDdXN0b21GaWVsZENhbmNlbExhYmVsID0gJ0NhbmNlbCdcclxuXHJcbiAgQE91dHB1dCgpIG9uU2F2ZUF0dHJpYnV0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxyXG4gIEBPdXRwdXQoKSBvbkRyb3BPbkF0dHJpYnV0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxyXG5cclxuICBwdWJsaWMgbmV3Q3VzdG9tRmllbGQ6IGFueVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQgKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBbXVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVOZXdBdHRyaWJ1dGUgKG5ld0N1c3RvbUZpZWxkOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25TYXZlQXR0cmlidXRlLmVtaXQobmV3Q3VzdG9tRmllbGQpXHJcbiAgICB0aGlzLm1vZGVsLnB1c2gobmV3Q3VzdG9tRmllbGQpXHJcbiAgICB0aGlzLm5ld0N1c3RvbUZpZWxkID0gbnVsbFxyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlQ3VzdG9tQXR0cmlidXRlIChhdHRyaWJ1dGVJbmRleDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGVsLnNwbGljZShhdHRyaWJ1dGVJbmRleCwgMSlcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRHJvcEF0dHIgKCRldmVudDogYW55LCB2YWx1ZTogYW55LCBuZXdDdXN0b21GaWVsZDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIW5ld0N1c3RvbUZpZWxkW3ZhbHVlXSkge1xyXG4gICAgICBuZXdDdXN0b21GaWVsZFt2YWx1ZV0gPSAnJ1xyXG4gICAgfVxyXG4gICAgbmV3Q3VzdG9tRmllbGRbdmFsdWVdICs9IGB7eyR7JGV2ZW50LmRhdGF9fX1gXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgY3VzdG9tLWF0dHJpYnV0ZXNcIiAqbmdGb3I9XCJsZXQgYXR0cmlidXRlIG9mIG1vZGVsOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwiaW5mby1sYWJlbFwiPnt7IGF0dHJpYnV0ZS5sYWJlbCB9fTwvbGFiZWw+XHJcbiAgICA8c3BhbiAoY2xpY2spPVwicmVtb3ZlQ3VzdG9tQXR0cmlidXRlKGkpXCIgY2xhc3M9XCJjdXN0b21BdHRyaWJ1dGVEZWxldGVJY29uXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXRyYXNoLWFsdFwiIFttYXRUb29sdGlwXT1cInRoaXMuY3VzdG9tQXR0cmlidXRlUmVtb3ZlTGFiZWxcIj48L2k+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJhdHRyaWJ1dGUudmFsdWVcIlxyXG4gICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgZG5kRHJvcHpvbmVcclxuICAgICAgKGRuZERyb3ApPVwib25Ecm9wQXR0cigkZXZlbnQsICd2YWx1ZScsIGF0dHJpYnV0ZSlcIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJuZXdDdXN0b21GaWVsZFwiIGNsYXNzPVwic3RydWN0LWN1c3RvbS1maWVsZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1sYWJlbFwiPnt7IHRoaXMubmV3Q3VzdG9tRmllbGROYW1lTGFiZWwgfX08c3Ryb25nPio8L3N0cm9uZz48L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBcclxuICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld0N1c3RvbUZpZWxkLmxhYmVsXCIgXHJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgZG5kRHJvcHpvbmVcclxuICAgICAgICAoZG5kRHJvcCk9XCJvbkRyb3BBdHRyKCRldmVudCwgJ2xhYmVsJywgbmV3Q3VzdG9tRmllbGQpXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1sYWJlbFwiPnt7IHRoaXMubmV3Q3VzdG9tRmllbGRWYWx1ZUxhYmVsIH19PHN0cm9uZz4qPC9zdHJvbmc+PC9sYWJlbD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwibmV3Q3VzdG9tRmllbGQudmFsdWVcIlxyXG4gICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgIGRuZERyb3B6b25lXHJcbiAgICAgICAgKGRuZERyb3ApPVwib25Ecm9wQXR0cigkZXZlbnQsICd2YWx1ZScsIG5ld0N1c3RvbUZpZWxkKVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJyb3cgYWN0aW9ucy1idXR0b25zXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBwdWxsLXJpZ2h0XCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgZmxvYXQtbGVmdFwiICpuZ0lmPVwiIW5ld0N1c3RvbUZpZWxkXCIgKGNsaWNrKT1cIm5ld0N1c3RvbUZpZWxkID0ge31cIj5cclxuICAgICAge3sgdGhpcy5uZXdDdXN0b21GaWVsZEFkZExhYmVsIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGFuZ2VyIGZsb2F0LWxlZnQgbWwtMlwiXHJcbiAgICAgICpuZ0lmPVwibmV3Q3VzdG9tRmllbGRcIlxyXG4gICAgICAoY2xpY2spPVwibmV3Q3VzdG9tRmllbGQgPSBudWxsXCJcclxuICAgID5cclxuICAgICAge3sgdGhpcy5uZXdDdXN0b21GaWVsZENhbmNlbExhYmVsIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBmbG9hdC1sZWZ0XCJcclxuICAgICAgKm5nSWY9XCJuZXdDdXN0b21GaWVsZCAmJiBuZXdDdXN0b21GaWVsZC5sYWJlbCAmJiBuZXdDdXN0b21GaWVsZC52YWx1ZVwiXHJcbiAgICAgIChjbGljayk9XCJzYXZlTmV3QXR0cmlidXRlKG5ld0N1c3RvbUZpZWxkKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IHRoaXMubmV3Q3VzdG9tRmllbGRTYXZlTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,80 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { SchemaValidationField } from './schema-validation-field';
3
- import * as i0 from "@angular/core";
4
- export class SchemaFieldsService {
5
- async validateSchemaFields(propertiesRendered, model, editing) {
6
- if (!propertiesRendered) {
7
- return new SchemaValidationField([], [], []);
8
- }
9
- const emptyFields = [];
10
- const invalidMinLengthFields = [];
11
- const invalidMaxLengthFields = [];
12
- this.processProperties(propertiesRendered, model, editing, emptyFields, invalidMinLengthFields, invalidMaxLengthFields);
13
- const structValidationField = new SchemaValidationField(emptyFields, invalidMinLengthFields, invalidMaxLengthFields);
14
- structValidationField.validationErrorsLabel = await this.getErrorsStringArray(structValidationField);
15
- return structValidationField;
16
- }
17
- processProperties(propertiesRendered, model, editing, emptyFields, invalidMinLengthFields, invalidMaxLengthFields, recursive) {
18
- for (const property of propertiesRendered) {
19
- if ((property.type === 'object' || property.type === 'array') && property.properties) {
20
- this.processProperties(property.properties, model[property.id], editing, emptyFields, invalidMinLengthFields, invalidMaxLengthFields, true);
21
- }
22
- else if (property.type === 'array' && !property.properties) {
23
- const newProperty = { ...property };
24
- newProperty.type = 'string';
25
- this.processProperties([newProperty], model[property.id], editing, emptyFields, invalidMinLengthFields, invalidMaxLengthFields, true);
26
- }
27
- else {
28
- const validateModel = recursive ? model : model[property.id];
29
- if (property.type !== 'password' || !editing || validateModel !== undefined) {
30
- if (property?.canRender && property?.minLength > 0 &&
31
- (validateModel === undefined || validateModel === '' || validateModel === null)) {
32
- emptyFields.push(property);
33
- }
34
- else if (property?.canRender && property?.minLength > 0 && (validateModel?.length < property.minLength)) {
35
- invalidMinLengthFields.push(property);
36
- }
37
- else if (property?.canRender && property?.maxLength > 0 && (validateModel?.length > property.maxLength)) {
38
- invalidMaxLengthFields.push(property);
39
- }
40
- }
41
- }
42
- }
43
- }
44
- async getErrorsStringArray(structValidation) {
45
- if (!structValidation.isInvalidSchemaFields()) {
46
- return [];
47
- }
48
- const errors = [];
49
- for (const field of structValidation.emptyFields) {
50
- const fieldName = field.title || field.id;
51
- errors.push({
52
- type: 'emptyFields',
53
- fieldName
54
- });
55
- }
56
- for (const field of structValidation.invalidMinLengthFields) {
57
- const fieldName = field.title || field.id;
58
- errors.push({
59
- type: 'invalidMinLengthFields',
60
- fieldName,
61
- minLength: field.minLength
62
- });
63
- }
64
- for (const field of structValidation.invalidMaxLengthFields) {
65
- const fieldName = field.title || field.id;
66
- errors.push({
67
- type: 'invalidMaxLengthFields',
68
- fieldName,
69
- maxLength: field.maxLength
70
- });
71
- }
72
- return errors;
73
- }
74
- }
75
- SchemaFieldsService.ɵfac = function SchemaFieldsService_Factory(t) { return new (t || SchemaFieldsService)(); };
76
- SchemaFieldsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SchemaFieldsService, factory: SchemaFieldsService.ɵfac });
77
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchemaFieldsService, [{
78
- type: Injectable
79
- }], null, null); })();
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZpZWxkcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvc2NoZW1hLWZpZWxkcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7O0FBR2pFLE1BQU0sT0FBTyxtQkFBbUI7SUFDdkIsS0FBSyxDQUFDLG9CQUFvQixDQUFFLGtCQUF5QixFQUFFLEtBQVUsRUFBRSxPQUFnQjtRQUN4RixJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdkIsT0FBTyxJQUFJLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7U0FDN0M7UUFFRCxNQUFNLFdBQVcsR0FBVSxFQUFFLENBQUE7UUFDN0IsTUFBTSxzQkFBc0IsR0FBVSxFQUFFLENBQUE7UUFDeEMsTUFBTSxzQkFBc0IsR0FBVSxFQUFFLENBQUE7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixDQUFDLENBQUE7UUFFdkgsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFBO1FBQ3BILHFCQUFxQixDQUFDLHFCQUFxQixHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFFcEcsT0FBTyxxQkFBcUIsQ0FBQTtJQUM5QixDQUFDO0lBRU8saUJBQWlCLENBQUUsa0JBQXlCLEVBQ2xELEtBQVUsRUFDVixPQUFnQixFQUNoQixXQUFrQixFQUNsQixzQkFBNkIsRUFDN0Isc0JBQTZCLEVBQzdCLFNBQW1CO1FBQ25C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LEVBQUUsS0FBSyxDQUFDLFNBQVM7YUFDM0IsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFO1lBQzNELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQTtZQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLFNBQVM7Z0JBQ1QsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2FBQzNCLENBQUMsQ0FBQTtTQUNIO1FBQ0QsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOztzRkEvRVUsbUJBQW1CO3lFQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1CO3VGQUFuQixtQkFBbUI7Y0FEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBTY2hlbWFWYWxpZGF0aW9uRmllbGQgfSBmcm9tICcuL3NjaGVtYS12YWxpZGF0aW9uLWZpZWxkJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2NoZW1hRmllbGRzU2VydmljZSB7XG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZVNjaGVtYUZpZWxkcyAocHJvcGVydGllc1JlbmRlcmVkOiBhbnlbXSwgbW9kZWw6IGFueSwgZWRpdGluZzogYm9vbGVhbik6IFByb21pc2U8U2NoZW1hVmFsaWRhdGlvbkZpZWxkPiB7XHJcbiAgICBpZiAoIXByb3BlcnRpZXNSZW5kZXJlZCkge1xyXG4gICAgICByZXR1cm4gbmV3IFNjaGVtYVZhbGlkYXRpb25GaWVsZChbXSwgW10sIFtdKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVtcHR5RmllbGRzOiBhbnlbXSA9IFtdXHJcbiAgICBjb25zdCBpbnZhbGlkTWluTGVuZ3RoRmllbGRzOiBhbnlbXSA9IFtdXHJcbiAgICBjb25zdCBpbnZhbGlkTWF4TGVuZ3RoRmllbGRzOiBhbnlbXSA9IFtdXHJcbiAgICB0aGlzLnByb2Nlc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXNSZW5kZXJlZCwgbW9kZWwsIGVkaXRpbmcsIGVtcHR5RmllbGRzLCBpbnZhbGlkTWluTGVuZ3RoRmllbGRzLCBpbnZhbGlkTWF4TGVuZ3RoRmllbGRzKVxyXG5cclxuICAgIGNvbnN0IHN0cnVjdFZhbGlkYXRpb25GaWVsZCA9IG5ldyBTY2hlbWFWYWxpZGF0aW9uRmllbGQoZW1wdHlGaWVsZHMsIGludmFsaWRNaW5MZW5ndGhGaWVsZHMsIGludmFsaWRNYXhMZW5ndGhGaWVsZHMpXHJcbiAgICBzdHJ1Y3RWYWxpZGF0aW9uRmllbGQudmFsaWRhdGlvbkVycm9yc0xhYmVsID0gYXdhaXQgdGhpcy5nZXRFcnJvcnNTdHJpbmdBcnJheShzdHJ1Y3RWYWxpZGF0aW9uRmllbGQpXHJcblxyXG4gICAgcmV0dXJuIHN0cnVjdFZhbGlkYXRpb25GaWVsZFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzUHJvcGVydGllcyAocHJvcGVydGllc1JlbmRlcmVkOiBhbnlbXSxcclxuICAgIG1vZGVsOiBhbnksXHJcbiAgICBlZGl0aW5nOiBib29sZWFuLFxyXG4gICAgZW1wdHlGaWVsZHM6IGFueVtdLFxyXG4gICAgaW52YWxpZE1pbkxlbmd0aEZpZWxkczogYW55W10sXHJcbiAgICBpbnZhbGlkTWF4TGVuZ3RoRmllbGRzOiBhbnlbXSxcclxuICAgIHJlY3Vyc2l2ZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllc1JlbmRlcmVkKSB7XHJcbiAgICAgIGlmICgocHJvcGVydHkudHlwZSA9PT0gJ29iamVjdCcgfHwgcHJvcGVydHkudHlwZSA9PT0gJ2FycmF5JykgJiYgcHJvcGVydHkucHJvcGVydGllcykge1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc1Byb3BlcnRpZXMocHJvcGVydHkucHJvcGVydGllcywgbW9kZWxbcHJvcGVydHkuaWRdLCBlZGl0aW5nLFxyXG4gICAgICAgICAgZW1wdHlGaWVsZHMsIGludmFsaWRNaW5MZW5ndGhGaWVsZHMsIGludmFsaWRNYXhMZW5ndGhGaWVsZHMsIHRydWUpXHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkudHlwZSA9PT0gJ2FycmF5JyAmJiAhcHJvcGVydHkucHJvcGVydGllcykge1xyXG4gICAgICAgIGNvbnN0IG5ld1Byb3BlcnR5ID0geyAuLi5wcm9wZXJ0eSB9XHJcbiAgICAgICAgbmV3UHJvcGVydHkudHlwZSA9ICdzdHJpbmcnXHJcbiAgICAgICAgdGhpcy5wcm9jZXNzUHJvcGVydGllcyhbbmV3UHJvcGVydHldLCBtb2RlbFtwcm9wZXJ0eS5pZF0sIGVkaXRpbmcsXHJcbiAgICAgICAgICBlbXB0eUZpZWxkcywgaW52YWxpZE1pbkxlbmd0aEZpZWxkcywgaW52YWxpZE1heExlbmd0aEZpZWxkcywgdHJ1ZSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCB2YWxpZGF0ZU1vZGVsID0gcmVjdXJzaXZlID8gbW9kZWwgOiBtb2RlbFtwcm9wZXJ0eS5pZF1cclxuICAgICAgICBpZiAocHJvcGVydHkudHlwZSAhPT0gJ3Bhc3N3b3JkJyB8fCAhZWRpdGluZyB8fCB2YWxpZGF0ZU1vZGVsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGlmIChwcm9wZXJ0eT8uY2FuUmVuZGVyICYmIHByb3BlcnR5Py5taW5MZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICh2YWxpZGF0ZU1vZGVsID09PSB1bmRlZmluZWQgfHwgdmFsaWRhdGVNb2RlbCA9PT0gJycgfHwgdmFsaWRhdGVNb2RlbCA9PT0gbnVsbCkpIHtcclxuICAgICAgICAgICAgZW1wdHlGaWVsZHMucHVzaChwcm9wZXJ0eSlcclxuICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHk/LmNhblJlbmRlciAmJiBwcm9wZXJ0eT8ubWluTGVuZ3RoID4gMCAmJiAodmFsaWRhdGVNb2RlbD8ubGVuZ3RoIDwgcHJvcGVydHkubWluTGVuZ3RoKSkge1xyXG4gICAgICAgICAgICBpbnZhbGlkTWluTGVuZ3RoRmllbGRzLnB1c2gocHJvcGVydHkpXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5Py5jYW5SZW5kZXIgJiYgcHJvcGVydHk/Lm1heExlbmd0aCA+IDAgJiYgKHZhbGlkYXRlTW9kZWw/Lmxlbmd0aCA+IHByb3BlcnR5Lm1heExlbmd0aCkpIHtcclxuICAgICAgICAgICAgaW52YWxpZE1heExlbmd0aEZpZWxkcy5wdXNoKHByb3BlcnR5KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEVycm9yc1N0cmluZ0FycmF5IChzdHJ1Y3RWYWxpZGF0aW9uOiBTY2hlbWFWYWxpZGF0aW9uRmllbGQpOlxyXG4gIFByb21pc2U8QXJyYXk8eyB0eXBlOiBzdHJpbmcsIGZpZWxkTmFtZT86IHN0cmluZywgbWluTGVuZ3RoPzogbnVtYmVyLCBtYXhMZW5ndGg/OiBudW1iZXIgfT4+IHtcclxuICAgIGlmICghc3RydWN0VmFsaWRhdGlvbi5pc0ludmFsaWRTY2hlbWFGaWVsZHMoKSkge1xyXG4gICAgICByZXR1cm4gW11cclxuICAgIH1cclxuICAgIGNvbnN0IGVycm9ycyA9IFtdXHJcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHN0cnVjdFZhbGlkYXRpb24uZW1wdHlGaWVsZHMpIHtcclxuICAgICAgY29uc3QgZmllbGROYW1lID0gZmllbGQudGl0bGUgfHwgZmllbGQuaWRcclxuICAgICAgZXJyb3JzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdlbXB0eUZpZWxkcycsXHJcbiAgICAgICAgZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHN0cnVjdFZhbGlkYXRpb24uaW52YWxpZE1pbkxlbmd0aEZpZWxkcykge1xyXG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZC50aXRsZSB8fCBmaWVsZC5pZFxyXG4gICAgICBlcnJvcnMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ2ludmFsaWRNaW5MZW5ndGhGaWVsZHMnLFxyXG4gICAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgICBtaW5MZW5ndGg6IGZpZWxkLm1pbkxlbmd0aFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBzdHJ1Y3RWYWxpZGF0aW9uLmludmFsaWRNYXhMZW5ndGhGaWVsZHMpIHtcclxuICAgICAgY29uc3QgZmllbGROYW1lID0gZmllbGQudGl0bGUgfHwgZmllbGQuaWRcclxuICAgICAgZXJyb3JzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdpbnZhbGlkTWF4TGVuZ3RoRmllbGRzJyxcclxuICAgICAgICBmaWVsZE5hbWUsXHJcbiAgICAgICAgbWF4TGVuZ3RoOiBmaWVsZC5tYXhMZW5ndGhcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcnNcclxuICB9XHJcbn1cclxuIl19
@@ -1,143 +0,0 @@
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
- export class ArraySessionComponent extends BaseSchemaComponent {
67
- constructor() {
68
- super(...arguments);
69
- this.label = '';
70
- this.removeLabel = 'Remove';
71
- this.addItemLabel = 'Add Item';
72
- this.addLoopLabel = 'Add Loop';
73
- this.showAddLoop = true;
74
- this.onAdd = new EventEmitter();
75
- this.onAddLoop = new EventEmitter();
76
- this.subsectionItem = null;
77
- }
78
- add() {
79
- this.onAdd.next();
80
- }
81
- addLoop() {
82
- this.onAddLoop.next();
83
- }
84
- remove(item) {
85
- const values = this.model;
86
- const index = values.indexOf(item);
87
- values.splice(index, 1);
88
- this.model = values;
89
- }
90
- trackByIndex(index, obj) {
91
- return index;
92
- }
93
- }
94
- ArraySessionComponent.ɵfac = /*@__PURE__*/ function () { let ɵArraySessionComponent_BaseFactory; return function ArraySessionComponent_Factory(t) { return (ɵArraySessionComponent_BaseFactory || (ɵArraySessionComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ArraySessionComponent)))(t || ArraySessionComponent); }; }();
95
- ArraySessionComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArraySessionComponent, selectors: [["array-session"]], contentQueries: function ArraySessionComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
96
- i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5, TemplateRef);
97
- } if (rf & 2) {
98
- let _t;
99
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.subsectionItem = _t.first);
100
- } }, 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) {
101
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "label", 2);
102
- i0.ɵɵtext(3);
103
- i0.ɵɵelementEnd();
104
- i0.ɵɵtemplate(4, ArraySessionComponent_div_4_Template, 6, 11, "div", 3);
105
- i0.ɵɵelementEnd()();
106
- i0.ɵɵelementStart(5, "div", 4)(6, "div", 1)(7, "button", 5);
107
- i0.ɵɵlistener("click", function ArraySessionComponent_Template_button_click_7_listener() { return ctx.add(); });
108
- i0.ɵɵtext(8);
109
- i0.ɵɵelementEnd();
110
- i0.ɵɵtemplate(9, ArraySessionComponent_button_9_Template, 2, 1, "button", 6);
111
- i0.ɵɵelementEnd()();
112
- } if (rf & 2) {
113
- i0.ɵɵadvance(3);
114
- i0.ɵɵtextInterpolate(ctx.label);
115
- i0.ɵɵadvance(1);
116
- i0.ɵɵproperty("ngForOf", ctx.model)("ngForTrackBy", ctx.trackByIndex);
117
- i0.ɵɵadvance(4);
118
- i0.ɵɵtextInterpolate(ctx.addItemLabel);
119
- i0.ɵɵadvance(1);
120
- i0.ɵɵproperty("ngIf", ctx.showAddLoop);
121
- } }, 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}"] });
122
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArraySessionComponent, [{
123
- type: Component,
124
- args: [{ selector: 'array-session', template: "<div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <label class=\"info-label bold\">{{ label }}</label>\r\n <div class=\"subsection-element\" *ngFor=\"let item of model; let index = index; trackBy:trackByIndex;\">\r\n <div class=\"subsection-item-title\">{{ removeLabel }} {{ index + 1 }}\r\n <i class=\"far fa-trash-alt\" (click)=\"remove(item)\"></i>\r\n </div>\r\n <div class=\"row\" *ngIf=\"item.mappingAttributes || item.mappingAttributes === ''\">\r\n <div class=\"col-md-8\">\r\n <label class=\"info-label\">Loop</label>\r\n <input class=\"form-control\" type=\"text\" [(ngModel)]=\"item.loop\" [ngModelOptions]=\"{standalone: true}\"\r\n dndDropzone (dndDrop)=\"item.loop = this.onDrop($event, item.loop)\" />\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"info-label\">Alias</label>\r\n <input class=\"form-control\" type=\"text\" [(ngModel)]=\"item.alias\" [ngModelOptions]=\"{standalone: true}\"\r\n dndDropzone (dndDrop)=\"item.alias = this.onDrop($event, item.alias)\" />\r\n </div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"subsectionItem, context: {\r\n $implicit: {\r\n items: model, index: index,\r\n mappingAttributes: (item.mappingAttributes || item.mappingAttributes === '') ? item.mappingAttributes : item\r\n }\r\n }\"></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row add-buttons\">\r\n <div class=\"col-md-12\">\r\n <button class=\"btn btn-outline-primary float-left btn-personal-edit\" (click)=\"add()\">{{ this.addItemLabel }}</button>\r\n <button class=\"btn btn-outline-primary float-left btn-personal-edit ml-2\" *ngIf=\"showAddLoop\" (click)=\"addLoop()\">{{ this.addLoopLabel }}</button>\r\n </div>\r\n</div>\r\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"] }]
125
- }], null, { label: [{
126
- type: Input
127
- }], removeLabel: [{
128
- type: Input
129
- }], addItemLabel: [{
130
- type: Input
131
- }], addLoopLabel: [{
132
- type: Input
133
- }], showAddLoop: [{
134
- type: Input
135
- }], onAdd: [{
136
- type: Output
137
- }], onAddLoop: [{
138
- type: Output
139
- }], subsectionItem: [{
140
- type: ContentChild,
141
- args: [TemplateRef, { read: TemplateRef }]
142
- }] }); })();
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktc2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaGVtYXMvc3JjL3NjaGVtYS1mb3JtL3NjaGVtYS1hcnJheS9hcnJheS1zZXNzaW9uL2FycmF5LXNlc3Npb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2hlbWFzL3NyYy9zY2hlbWEtZm9ybS9zY2hlbWEtYXJyYXkvYXJyYXktc2Vzc2lvbi9hcnJheS1zZXNzaW9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBOzs7Ozs7OztJQ005RCw4QkFBaUYsY0FBQSxnQkFBQTtJQUVuRCxvQkFBSTtJQUFBLGlCQUFRO0lBQ3RDLGlDQUM0RTtJQURwQyx3TUFBYSxxQ0FBaUIsSUFBUCxrTkFDakMsOEJBQVksbUNBQThCLENBQUEsSUFEVDtJQUEvRCxpQkFDNEUsRUFBQTtJQUU5RSwrQkFBc0IsZ0JBQUE7SUFDTSxxQkFBSztJQUFBLGlCQUFRO0lBQ3ZDLGlDQUM4RTtJQUR0Qyx3TUFBYSxzQ0FBa0IsSUFBUCxtTkFDbEMsK0JBQWEscUNBQStCLENBQUEsSUFEVjtJQUFoRSxpQkFDOEUsRUFBQSxFQUFBOzs7SUFOdEMsZUFBdUI7SUFBdkIsc0NBQXVCLDhDQUFBO0lBS3ZCLGVBQXdCO0lBQXhCLHVDQUF3Qiw4Q0FBQTs7O0lBSXBFLHdCQUtrQjs7Ozs7O0lBckJwQiw4QkFBcUcsYUFBQTtJQUNoRSxZQUNqQztJQUFBLDRCQUFtRDtJQUF2QiwwTkFBUyxlQUFBLHVCQUFZLENBQUEsSUFBQztJQUFDLGlCQUFJLEVBQUE7SUFFekQsNkVBV007SUFDTiwrRkFLa0I7SUFDcEIsaUJBQU07Ozs7O0lBckIrQixlQUNqQztJQURpQyxxRUFDakM7SUFFZ0IsZUFBNkQ7SUFBN0Qsb0ZBQTZEO0lBWWhFLGVBQWtDO0lBQWxDLHdEQUFrQyxnTkFBQTs7OztJQVluRCxrQ0FBa0g7SUFBcEIsdUtBQVMsZUFBQSxpQkFBUyxDQUFBLElBQUM7SUFBQyxZQUF1QjtJQUFBLGlCQUFTOzs7SUFBaEMsZUFBdUI7SUFBdkIseUNBQXVCOztBRHZCN0ksTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQUw5RDs7UUFNa0IsVUFBSyxHQUFHLEVBQUUsQ0FBQTtRQUNWLGdCQUFXLEdBQUcsUUFBUSxDQUFBO1FBQ3RCLGlCQUFZLEdBQUcsVUFBVSxDQUFBO1FBQ3pCLGlCQUFZLEdBQUcsVUFBVSxDQUFBO1FBRXpCLGdCQUFXLEdBQUcsSUFBSSxDQUFBO1FBRWpCLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUNsRCxjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUE7UUFHaEUsbUJBQWMsR0FBNEIsSUFBSSxDQUFBO0tBb0J0RDtJQWxCUSxHQUFHO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVNLE1BQU0sQ0FBRSxJQUFTO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQTtJQUNyQixDQUFDO0lBRU0sWUFBWSxDQUFFLEtBQWEsRUFBRSxHQUFRO1FBQzFDLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQzs7aVFBL0JVLHFCQUFxQixTQUFyQixxQkFBcUI7d0VBQXJCLHFCQUFxQjtvQ0FXbEIsV0FBVyxLQUFVLFdBQVc7Ozs7O1FDbkJoRCw4QkFBaUIsYUFBQSxlQUFBO1FBRWtCLFlBQVc7UUFBQSxpQkFBUTtRQUNsRCx1RUFzQk07UUFDUixpQkFBTSxFQUFBO1FBRVIsOEJBQTZCLGFBQUEsZ0JBQUE7UUFFNEMsa0dBQVMsU0FBSyxJQUFDO1FBQUMsWUFBdUI7UUFBQSxpQkFBUztRQUNySCw0RUFBa0o7UUFDcEosaUJBQU0sRUFBQTs7UUE5QjJCLGVBQVc7UUFBWCwrQkFBVztRQUNPLGVBQVU7UUFBVixtQ0FBVSxrQ0FBQTtRQTJCMEIsZUFBdUI7UUFBdkIsc0NBQXVCO1FBQ2pDLGVBQWlCO1FBQWpCLHNDQUFpQjs7dUZEdkJuRixxQkFBcUI7Y0FMakMsU0FBUzsyQkFDRSxlQUFlO2dCQUtULEtBQUs7a0JBQXBCLEtBQUs7WUFDVSxXQUFXO2tCQUExQixLQUFLO1lBQ1UsWUFBWTtrQkFBM0IsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUFFVSxXQUFXO2tCQUExQixLQUFLO1lBRVcsS0FBSztrQkFBckIsTUFBTTtZQUNVLFNBQVM7a0JBQXpCLE1BQU07WUFHQSxjQUFjO2tCQURwQixZQUFZO21CQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEJhc2VTY2hlbWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYXNlLXNjaGVtYS5jb21wb25lbnQnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FycmF5LXNlc3Npb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnYXJyYXktc2Vzc2lvbi5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnYXJyYXktc2Vzc2lvbi5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFycmF5U2Vzc2lvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VTY2hlbWFDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWwgPSAnJ1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZW1vdmVMYWJlbCA9ICdSZW1vdmUnXHJcbiAgQElucHV0KCkgcHVibGljIGFkZEl0ZW1MYWJlbCA9ICdBZGQgSXRlbSdcclxuICBASW5wdXQoKSBwdWJsaWMgYWRkTG9vcExhYmVsID0gJ0FkZCBMb29wJ1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2hvd0FkZExvb3AgPSB0cnVlXHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25BZGQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcclxuICBAT3V0cHV0KCkgcHVibGljIG9uQWRkTG9vcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxyXG5cclxuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgcHVibGljIHN1YnNlY3Rpb25JdGVtOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGxcclxuXHJcbiAgcHVibGljIGFkZCAoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWRkLm5leHQoKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZExvb3AgKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkFkZExvb3AubmV4dCgpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlIChpdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5tb2RlbFxyXG4gICAgY29uc3QgaW5kZXggPSB2YWx1ZXMuaW5kZXhPZihpdGVtKVxyXG4gICAgdmFsdWVzLnNwbGljZShpbmRleCwgMSlcclxuICAgIHRoaXMubW9kZWwgPSB2YWx1ZXNcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFja0J5SW5kZXggKGluZGV4OiBudW1iZXIsIG9iajogYW55KTogYW55IHtcclxuICAgIHJldHVybiBpbmRleFxyXG4gIH1cbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cImluZm8tbGFiZWwgYm9sZFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzZWN0aW9uLWVsZW1lbnRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbDsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6dHJhY2tCeUluZGV4O1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3Vic2VjdGlvbi1pdGVtLXRpdGxlXCI+e3sgcmVtb3ZlTGFiZWwgfX0ge3sgaW5kZXggKyAxIH19XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdHJhc2gtYWx0XCIgKGNsaWNrKT1cInJlbW92ZShpdGVtKVwiPjwvaT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cIml0ZW0ubWFwcGluZ0F0dHJpYnV0ZXMgfHwgaXRlbS5tYXBwaW5nQXR0cmlidXRlcyA9PT0gJydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImluZm8tbGFiZWxcIj5Mb29wPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJpdGVtLmxvb3BcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgICBkbmREcm9wem9uZSAoZG5kRHJvcCk9XCJpdGVtLmxvb3AgPSB0aGlzLm9uRHJvcCgkZXZlbnQsIGl0ZW0ubG9vcClcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1sYWJlbFwiPkFsaWFzPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJpdGVtLmFsaWFzXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgZG5kRHJvcHpvbmUgKGRuZERyb3ApPVwiaXRlbS5hbGlhcyA9IHRoaXMub25Ecm9wKCRldmVudCwgaXRlbS5hbGlhcylcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1YnNlY3Rpb25JdGVtLCBjb250ZXh0OiB7XHJcbiAgICAgICAgJGltcGxpY2l0OiB7XHJcbiAgICAgICAgICBpdGVtczogbW9kZWwsIGluZGV4OiBpbmRleCxcclxuICAgICAgICAgIG1hcHBpbmdBdHRyaWJ1dGVzOiAoaXRlbS5tYXBwaW5nQXR0cmlidXRlcyB8fCBpdGVtLm1hcHBpbmdBdHRyaWJ1dGVzID09PSAnJykgPyBpdGVtLm1hcHBpbmdBdHRyaWJ1dGVzIDogaXRlbVxyXG4gICAgICAgICB9XHJcbiAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInJvdyBhZGQtYnV0dG9uc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBmbG9hdC1sZWZ0IGJ0bi1wZXJzb25hbC1lZGl0XCIgKGNsaWNrKT1cImFkZCgpXCI+e3sgdGhpcy5hZGRJdGVtTGFiZWwgfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBmbG9hdC1sZWZ0IGJ0bi1wZXJzb25hbC1lZGl0IG1sLTJcIiAqbmdJZj1cInNob3dBZGRMb29wXCIgKGNsaWNrKT1cImFkZExvb3AoKVwiPnt7IHRoaXMuYWRkTG9vcExhYmVsIH19PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=