@apipass/inputs 1.0.167 → 1.0.170

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.
@@ -0,0 +1,45 @@
1
+ import { AfterContentInit } from '@angular/core';
2
+ import { DndDropEvent } from 'ngx-drag-drop';
3
+ import { AceEditorComponent } from '../ace-editor/component';
4
+ import { ValueAccessorBase } from '../value-acessor-base';
5
+ import * as i0 from "@angular/core";
6
+ export declare class AceEditorInputComponent extends ValueAccessorBase<string> implements AfterContentInit {
7
+ editor: AceEditorComponent;
8
+ title: string | undefined;
9
+ description: string | undefined;
10
+ previousStepsOutputAttributes: Record<string, {
11
+ type: string;
12
+ attributes: Record<string, any>;
13
+ }>;
14
+ mode: 'json' | 'html' | 'sql' | 'xml' | 'text';
15
+ ngAfterContentInit(): void;
16
+ private createAceEditorCustomCompletions;
17
+ beautify(): void;
18
+ setEditorCustomCompletions(editor: any, includeBrackets: boolean): void;
19
+ protected getOutputAttributesCodeCompletions(props: {
20
+ prefixIdentifier: string;
21
+ outputAttributes: Record<string, {
22
+ type: string;
23
+ attributes: Record<string, any>;
24
+ }>;
25
+ includeArrayMethods?: boolean;
26
+ includeBrackets?: boolean;
27
+ }): Array<{
28
+ caption: string;
29
+ value: string;
30
+ meta: string;
31
+ score: number;
32
+ }>;
33
+ private createCompletion;
34
+ parseItem(props: {
35
+ currentPath: string;
36
+ attributes: any;
37
+ includeArrayMethods?: boolean;
38
+ includeBrackets?: boolean;
39
+ }): string[];
40
+ private parseArrayItem;
41
+ private getArrayMethodsCodeCompletions;
42
+ onDropOnEditor(editor: AceEditorComponent, $event: DndDropEvent, addBrackets?: boolean): void;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<AceEditorInputComponent, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<AceEditorInputComponent, "ace-editor-input", never, { "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "previousStepsOutputAttributes": { "alias": "previousStepsOutputAttributes"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, false, never>;
45
+ }
@@ -0,0 +1,162 @@
1
+ import { Component, forwardRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { AceEditorComponent } from '../ace-editor/component';
3
+ import { ValueAccessorBase } from '../value-acessor-base';
4
+ import { beautifyRawDataContent } from '@apipass/frontend-utils';
5
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "ngx-drag-drop";
9
+ import * as i3 from "@apipass/buttons";
10
+ import * as i4 from "../ace-editor/component";
11
+ class AceEditorInputComponent extends ValueAccessorBase {
12
+ editor;
13
+ title;
14
+ description;
15
+ previousStepsOutputAttributes = {};
16
+ mode;
17
+ ngAfterContentInit() {
18
+ this.createAceEditorCustomCompletions();
19
+ }
20
+ createAceEditorCustomCompletions() {
21
+ setTimeout(() => {
22
+ if (this.editor?.setCustomCompletions) {
23
+ this.setEditorCustomCompletions(this.editor, true);
24
+ }
25
+ }, 500);
26
+ }
27
+ beautify() {
28
+ const rawDataContent = this.editor.getEditor().getSession().getValue();
29
+ if (rawDataContent) {
30
+ const formattedContent = beautifyRawDataContent(rawDataContent);
31
+ this.editor.getEditor().getSession().setValue(formattedContent);
32
+ }
33
+ }
34
+ setEditorCustomCompletions(editor, includeBrackets) {
35
+ editor.setCustomCompletions(this.getOutputAttributesCodeCompletions({
36
+ prefixIdentifier: '$',
37
+ outputAttributes: this.previousStepsOutputAttributes,
38
+ includeBrackets
39
+ }));
40
+ }
41
+ getOutputAttributesCodeCompletions(props) {
42
+ let attributesPaths = [];
43
+ for (const outputAttributesKey in props.outputAttributes) {
44
+ const outputAttribute = props.outputAttributes[outputAttributesKey];
45
+ const currentPath = `${props.prefixIdentifier}.${outputAttributesKey}`;
46
+ attributesPaths.push(this.createCompletion(currentPath, props.includeBrackets));
47
+ attributesPaths = attributesPaths.concat(this.parseItem({
48
+ ...props,
49
+ currentPath,
50
+ attributes: outputAttribute.attributes
51
+ }));
52
+ }
53
+ return attributesPaths.map(value => {
54
+ return {
55
+ caption: value,
56
+ value,
57
+ meta: 'Step attribute',
58
+ score: 0
59
+ };
60
+ });
61
+ }
62
+ createCompletion(completion, includeBrackets) {
63
+ return includeBrackets ? `{{${completion}}}` : completion;
64
+ }
65
+ parseItem(props) {
66
+ let attributesPaths = [];
67
+ const currentPath = props.currentPath;
68
+ for (const attributeName in props.attributes) {
69
+ const attributeValue = props.attributes[attributeName];
70
+ const attributeTypeIsInvalid = typeof attributeValue?.type !== 'string' && !(attributeValue?.type instanceof String);
71
+ if (attributeValue?.type && attributeTypeIsInvalid) {
72
+ continue;
73
+ }
74
+ const attributeType = attributeValue?.type?.toUpperCase();
75
+ if (['STRING', 'NUMBER', 'BOOLEAN', 'AUTHORIZATION'].includes(attributeType)) {
76
+ attributesPaths.push(this.createCompletion(`${currentPath}.${attributeName}`, props.includeBrackets));
77
+ }
78
+ else if (attributeType === 'OBJECT') {
79
+ attributesPaths.push(this.createCompletion(`${currentPath}.${attributeName}`, props.includeBrackets));
80
+ attributesPaths = attributesPaths.concat(this.parseItem({
81
+ ...props,
82
+ currentPath: `${currentPath}.${attributeName}`,
83
+ attributes: attributeValue.child ?? attributeValue.properties
84
+ }));
85
+ }
86
+ else if (attributeType === 'ARRAY') {
87
+ const arrayPaths = this.parseArrayItem(currentPath, attributeName, attributesPaths, props, attributeValue);
88
+ attributesPaths = attributesPaths.concat(arrayPaths);
89
+ }
90
+ else if (!attributeValue?.type) {
91
+ attributesPaths = attributesPaths.concat(this.parseItem({
92
+ ...props,
93
+ currentPath,
94
+ attributes: { [attributeName]: { type: attributeValue } }
95
+ }));
96
+ }
97
+ }
98
+ return attributesPaths;
99
+ }
100
+ parseArrayItem(currentPath, attributeName, attributesPaths, props, attributeValue) {
101
+ attributesPaths.push(this.createCompletion(`${currentPath}.${attributeName}`, props.includeBrackets));
102
+ if (props.includeArrayMethods) {
103
+ attributesPaths = attributesPaths.concat(this.getArrayMethodsCodeCompletions(`${currentPath}.${attributeName}`));
104
+ }
105
+ attributesPaths.push(this.createCompletion(`${currentPath}.${attributeName}[0]`, props.includeBrackets));
106
+ attributesPaths = attributesPaths.concat(this.parseItem({
107
+ ...props,
108
+ currentPath: `${currentPath}.${attributeName}[0]`,
109
+ attributes: attributeValue.child ?? attributeValue.properties
110
+ }));
111
+ return attributesPaths;
112
+ }
113
+ getArrayMethodsCodeCompletions(currentPath) {
114
+ return [
115
+ `${currentPath}.concat()`,
116
+ `${currentPath}.filter((element) => )`,
117
+ `${currentPath}.find((element) => )`,
118
+ `${currentPath}.forEach((element) => )`,
119
+ `${currentPath}.includes()`,
120
+ `${currentPath}.indexOf()`,
121
+ `${currentPath}.map((element) => )`,
122
+ `${currentPath}.push()`,
123
+ `${currentPath}.sort()`
124
+ ];
125
+ }
126
+ onDropOnEditor(editor, $event, addBrackets) {
127
+ if ($event.data) {
128
+ let dropText = $event.data;
129
+ if (addBrackets) {
130
+ dropText = `{{${dropText}}}`;
131
+ }
132
+ editor.draggedText = dropText;
133
+ }
134
+ }
135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AceEditorInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: AceEditorInputComponent, selector: "ace-editor-input", inputs: { title: "title", description: "description", previousStepsOutputAttributes: "previousStepsOutputAttributes", mode: "mode" }, providers: [{
137
+ provide: NG_VALUE_ACCESSOR,
138
+ useExisting: forwardRef(() => AceEditorInputComponent),
139
+ multi: true
140
+ }], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ace-editor-input\">\n <div class=\"code-header\">\n <label class=\"info-label bold\">\n <div *ngIf=\"title\">{{ title }}</div>\n <small>{{ description }}</small>\n </label>\n <primary-button [size]=\"'slim'\"\n [label]=\"'Beautify'\"\n (onClick)=\"beautify()\">\n </primary-button>\n </div>\n <ace-editor\n #editor\n [(text)]=\"value\"\n [options]=\"{enableBasicAutocompletion: true, enableSnippets: true, enableLiveAutocompletion: true, keyboardHandler: 'ace/keyboard/vscode'}\"\n dndDropzone [dndAllowExternal]=\"true\" (dndDrop)=\"onDropOnEditor(editor, $event, true)\"\n [mode]=\"mode\"\n [autoUpdateContent]=\"true\"\n class=\"ace-editor\"\n ></ace-editor>\n</div>\n", styles: [".ace-editor-input{width:100%}.ace-editor-input .ace-editor{height:530px;min-height:200px}.ace-editor-input .code-header{justify-content:space-between;display:flex;width:100%;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DndDropzoneDirective, selector: "[dndDropzone]", inputs: ["dndDropzone", "dndEffectAllowed", "dndAllowExternal", "dndHorizontal", "dndDragoverClass", "dndDropzoneDisabledClass", "dndDisableIf", "dndDisableDropIf"], outputs: ["dndDragover", "dndDrop"] }, { kind: "component", type: i3.PrimaryButtonComponent, selector: "primary-button", inputs: ["label", "btnDisabled", "icon", "suffixIcon", "selected", "btnClass", "size"], outputs: ["onClick"] }, { kind: "component", type: i4.AceEditorComponent, selector: "ace-editor", inputs: ["style", "options", "readOnly", "theme", "mode", "value", "text", "autoUpdateContent", "durationBeforeCallback"], outputs: ["textChanged", "textChange", "beforeDropEvent", "afterDropEvent"] }], encapsulation: i0.ViewEncapsulation.None });
141
+ }
142
+ export { AceEditorInputComponent };
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AceEditorInputComponent, decorators: [{
144
+ type: Component,
145
+ args: [{ selector: 'ace-editor-input', providers: [{
146
+ provide: NG_VALUE_ACCESSOR,
147
+ useExisting: forwardRef(() => AceEditorInputComponent),
148
+ multi: true
149
+ }], encapsulation: ViewEncapsulation.None, template: "<div class=\"ace-editor-input\">\n <div class=\"code-header\">\n <label class=\"info-label bold\">\n <div *ngIf=\"title\">{{ title }}</div>\n <small>{{ description }}</small>\n </label>\n <primary-button [size]=\"'slim'\"\n [label]=\"'Beautify'\"\n (onClick)=\"beautify()\">\n </primary-button>\n </div>\n <ace-editor\n #editor\n [(text)]=\"value\"\n [options]=\"{enableBasicAutocompletion: true, enableSnippets: true, enableLiveAutocompletion: true, keyboardHandler: 'ace/keyboard/vscode'}\"\n dndDropzone [dndAllowExternal]=\"true\" (dndDrop)=\"onDropOnEditor(editor, $event, true)\"\n [mode]=\"mode\"\n [autoUpdateContent]=\"true\"\n class=\"ace-editor\"\n ></ace-editor>\n</div>\n", styles: [".ace-editor-input{width:100%}.ace-editor-input .ace-editor{height:530px;min-height:200px}.ace-editor-input .code-header{justify-content:space-between;display:flex;width:100%;margin-bottom:5px}\n"] }]
150
+ }], propDecorators: { editor: [{
151
+ type: ViewChild,
152
+ args: ['editor']
153
+ }], title: [{
154
+ type: Input
155
+ }], description: [{
156
+ type: Input
157
+ }], previousStepsOutputAttributes: [{
158
+ type: Input
159
+ }], mode: [{
160
+ type: Input
161
+ }] } });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNlLWVkaXRvci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2FjZS1lZGl0b3ItaW5wdXQvYWNlLWVkaXRvci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2FjZS1lZGl0b3ItaW5wdXQvYWNlLWVkaXRvci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUU1RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRW5ELE1BV2EsdUJBQXdCLFNBQVEsaUJBQXlCO0lBRzdELE1BQU0sQ0FBcUI7SUFFekIsS0FBSyxDQUFvQjtJQUN6QixXQUFXLENBQW9CO0lBQy9CLDZCQUE2QixHQUFzRSxFQUFFLENBQUE7SUFDckcsSUFBSSxDQUEwQztJQUV2RCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUE7SUFDekMsQ0FBQztJQUVPLGdDQUFnQztRQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFFO2dCQUNyQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNwRDtRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJ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QVcsRUFBRTtnQkFDZixRQUFRLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQTthQUM3QjtZQUNELE1BQU0sQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFBO1NBQzlCO0lBQ0gsQ0FBQzt1R0EvSVUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsaUxBUHZCLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLG1KQ2ZKLG13QkFxQkE7O1NESGEsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBWG5DLFNBQVM7K0JBQ0Usa0JBQWtCLGFBR2pCLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMsaUJBQ2EsaUJBQWlCLENBQUMsSUFBSTs4QkFLOUIsTUFBTTtzQkFEWixTQUFTO3VCQUFDLFFBQVE7Z0JBR1YsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRG5kRHJvcEV2ZW50IH0gZnJvbSAnbmd4LWRyYWctZHJvcCdcbmltcG9ydCB7IEFjZUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2FjZS1lZGl0b3IvY29tcG9uZW50J1xuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvckJhc2UgfSBmcm9tICcuLi92YWx1ZS1hY2Vzc29yLWJhc2UnXG5pbXBvcnQgeyBiZWF1dGlmeVJhd0RhdGFDb250ZW50IH0gZnJvbSAnQGFwaXBhc3MvZnJvbnRlbmQtdXRpbHMnXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNlLWVkaXRvci1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnYWNlLWVkaXRvci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydhY2UtZWRpdG9yLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBY2VFZGl0b3JJbnB1dENvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWNlRWRpdG9ySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yQmFzZTxzdHJpbmc+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnZWRpdG9yJylcbiAgcHVibGljIGVkaXRvcjogQWNlRWRpdG9yQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBwcmV2aW91c1N0ZXBzT3V0cHV0QXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgeyB0eXBlOiBzdHJpbmcsIGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4gPSB7fVxuICBASW5wdXQoKSBtb2RlOiAnanNvbicgfCAnaHRtbCcgfCAnc3FsJyB8ICd4bWwnIHwgJ3RleHQnXG5cbiAgbmdBZnRlckNvbnRlbnRJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZUFjZUVkaXRvckN1c3RvbUNvbXBsZXRpb25zKClcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQWNlRWRpdG9yQ3VzdG9tQ29tcGxldGlvbnMoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5lZGl0b3I/LnNldEN1c3RvbUNvbXBsZXRpb25zKSB7XG4gICAgICAgIHRoaXMuc2V0RWRpdG9yQ3VzdG9tQ29tcGxldGlvbnModGhpcy5lZGl0b3IsIHRydWUpO1xuICAgICAgfVxuICAgIH0sIDUwMClcbiAgfVxuXG4gIHB1YmxpYyBiZWF1dGlmeSgpOiB2b2lkIHtcbiAgICBjb25zdCByYXdEYXRhQ29udGVudCA9IHRoaXMuZWRpdG9yLmdldEVkaXRvcigpLmdldFNlc3Npb24oKS5nZXRWYWx1ZSgpO1xuICAgIGlmIChyYXdEYXRhQ29udGVudCkge1xuICAgICAgY29uc3QgZm9ybWF0dGVkQ29udGVudCA9IGJlYXV0aWZ5UmF3RGF0YUNvbnRlbnQocmF3RGF0YUNvbnRlbnQpO1xuICAgICAgdGhpcy5lZGl0b3IuZ2V0RWRpdG9yKCkuZ2V0U2Vzc2lvbigpLnNldFZhbHVlKGZvcm1hdHRlZENvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRFZGl0b3JDdXN0b21Db21wbGV0aW9ucyhlZGl0b3I6IGFueSwgaW5jbHVkZUJyYWNrZXRzOiBib29sZWFuKTogdm9pZCB7XG4gICAgZWRpdG9yLnNldEN1c3RvbUNvbXBsZXRpb25zKHRoaXMuZ2V0T3V0cHV0QXR0cmlidXRlc0NvZGVDb21wbGV0aW9ucyh7XG4gICAgICBwcmVmaXhJZGVudGlmaWVyOiAnJCcsXG4gICAgICBvdXRwdXRBdHRyaWJ1dGVzOiB0aGlzLnByZXZpb3VzU3RlcHNPdXRwdXRBdHRyaWJ1dGVzLFxuICAgICAgaW5jbHVkZUJyYWNrZXRzXG4gICAgfSkpXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0T3V0cHV0QXR0cmlidXRlc0NvZGVDb21wbGV0aW9ucyhwcm9wczoge1xuICAgIHByZWZpeElkZW50aWZpZXI6IHN0cmluZ1xuICAgIG91dHB1dEF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHsgdHlwZTogc3RyaW5nLCBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+XG4gICAgaW5jbHVkZUFycmF5TWV0aG9kcz86IGJvb2xlYW5cbiAgICBpbmNsdWRlQnJhY2tldHM/OiBib29sZWFuXG4gIH0pOiBBcnJheTx7IGNhcHRpb246IHN0cmluZywgdmFsdWU6IHN0cmluZywgbWV0YTogc3RyaW5nLCBzY29yZTogbnVtYmVyIH0+IHtcbiAgICBsZXQgYXR0cmlidXRlc1BhdGhzOiBzdHJpbmdbXSA9IFtdXG4gICAgZm9yIChjb25zdCBvdXRwdXRBdHRyaWJ1dGVzS2V5IGluIHByb3BzLm91dHB1dEF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IG91dHB1dEF0dHJpYnV0ZSA9IHByb3BzLm91dHB1dEF0dHJpYnV0ZXNbb3V0cHV0QXR0cmlidXRlc0tleV1cbiAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gYCR7cHJvcHMucHJlZml4SWRlbnRpZmllcn0uJHtvdXRwdXRBdHRyaWJ1dGVzS2V5fWA7XG4gICAgICBhdHRyaWJ1dGVzUGF0aHMucHVzaCh0aGlzLmNyZWF0ZUNvbXBsZXRpb24oY3VycmVudFBhdGgsIHByb3BzLmluY2x1ZGVCcmFja2V0cykpXG4gICAgICBhdHRyaWJ1dGVzUGF0aHMgPSBhdHRyaWJ1dGVzUGF0aHMuY29uY2F0KHRoaXMucGFyc2VJdGVtKHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGN1cnJlbnRQYXRoLFxuICAgICAgICBhdHRyaWJ1dGVzOiBvdXRwdXRBdHRyaWJ1dGUuYXR0cmlidXRlc1xuICAgICAgfSkpXG4gICAgfVxuICAgIHJldHVybiBhdHRyaWJ1dGVzUGF0aHMubWFwKHZhbHVlID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNhcHRpb246IHZhbHVlLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbWV0YTogJ1N0ZXAgYXR0cmlidXRlJyxcbiAgICAgICAgc2NvcmU6IDBcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21wbGV0aW9uKGNvbXBsZXRpb246IHN0cmluZywgaW5jbHVkZUJyYWNrZXRzOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaW5jbHVkZUJyYWNrZXRzID8gYHt7JHtjb21wbGV0aW9ufX19YCA6IGNvbXBsZXRpb25cbiAgfVxuXG4gIHB1YmxpYyBwYXJzZUl0ZW0ocHJvcHM6IHsgY3VycmVudFBhdGg6IHN0cmluZywgYXR0cmlidXRlcywgaW5jbHVkZUFycmF5TWV0aG9kcz86IGJvb2xlYW4sIGluY2x1ZGVCcmFja2V0cz86IGJvb2xlYW4gfSk6IHN0cmluZ1tdIHtcbiAgICBsZXQgYXR0cmlidXRlc1BhdGhzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgY3VycmVudFBhdGggPSBwcm9wcy5jdXJyZW50UGF0aFxuICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBpbiBwcm9wcy5hdHRyaWJ1dGVzKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZSA9IHByb3BzLmF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV1cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGVJc0ludmFsaWQgPSB0eXBlb2YgYXR0cmlidXRlVmFsdWU/LnR5cGUgIT09ICdzdHJpbmcnICYmICEoYXR0cmlidXRlVmFsdWU/LnR5cGUgaW5zdGFuY2VvZiBTdHJpbmcpO1xuICAgICAgaWYgKGF0dHJpYnV0ZVZhbHVlPy50eXBlICYmIGF0dHJpYnV0ZVR5cGVJc0ludmFsaWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGUgPSBhdHRyaWJ1dGVWYWx1ZT8udHlwZT8udG9VcHBlckNhc2UoKTtcbiAgICAgIGlmIChbJ1NUUklORycsICdOVU1CRVInLCAnQk9PTEVBTicsICdBVVRIT1JJWkFUSU9OJ10uaW5jbHVkZXMoYXR0cmlidXRlVHlwZSkpIHtcbiAgICAgICAgYXR0cmlidXRlc1BhdGhzLnB1c2godGhpcy5jcmVhdGVDb21wbGV0aW9uKGAke2N1cnJlbnRQYXRofS4ke2F0dHJpYnV0ZU5hbWV9YCwgcHJvcHMuaW5jbHVkZUJyYWNrZXRzKSlcbiAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlVHlwZSA9PT0gJ09CSkVDVCcpIHtcbiAgICAgICAgYXR0cmlidXRlc1BhdGhzLnB1c2godGhpcy5jcmVhdGVDb21wbGV0aW9uKGAke2N1cnJlbnRQYXRofS4ke2F0dHJpYnV0ZU5hbWV9YCwgcHJvcHMuaW5jbHVkZUJyYWNrZXRzKSlcbiAgICAgICAgYXR0cmlidXRlc1BhdGhzID0gYXR0cmlidXRlc1BhdGhzLmNvbmNhdCh0aGlzLnBhcnNlSXRlbSh7XG4gICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgY3VycmVudFBhdGg6IGAke2N1cnJlbnRQYXRofS4ke2F0dHJpYnV0ZU5hbWV9YCxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVWYWx1ZS5jaGlsZCA/PyBhdHRyaWJ1dGVWYWx1ZS5wcm9wZXJ0aWVzXG4gICAgICAgIH0pKVxuICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVUeXBlID09PSAnQVJSQVknKSB7XG4gICAgICAgIGNvbnN0IGFycmF5UGF0aHMgPSB0aGlzLnBhcnNlQXJyYXlJdGVtKGN1cnJlbnRQYXRoLCBhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVzUGF0aHMsIHByb3BzLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgIGF0dHJpYnV0ZXNQYXRocyA9IGF0dHJpYnV0ZXNQYXRocy5jb25jYXQoYXJyYXlQYXRocyk7XG4gICAgICB9IGVsc2UgaWYgKCFhdHRyaWJ1dGVWYWx1ZT8udHlwZSkge1xuICAgICAgICBhdHRyaWJ1dGVzUGF0aHMgPSBhdHRyaWJ1dGVzUGF0aHMuY29uY2F0KHRoaXMucGFyc2VJdGVtKHtcbiAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICBjdXJyZW50UGF0aCxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7IFthdHRyaWJ1dGVOYW1lXTogeyB0eXBlOiBhdHRyaWJ1dGVWYWx1ZSB9IH1cbiAgICAgICAgfSkpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhdHRyaWJ1dGVzUGF0aHNcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VBcnJheUl0ZW0oY3VycmVudFBhdGg6IHN0cmluZywgYXR0cmlidXRlTmFtZTogc3RyaW5nLCBhdHRyaWJ1dGVzUGF0aHM6IHN0cmluZ1tdLCBwcm9wczoge1xuICAgIGN1cnJlbnRQYXRoOiBzdHJpbmdcbiAgICBhdHRyaWJ1dGVzXG4gICAgaW5jbHVkZUFycmF5TWV0aG9kcz86IGJvb2xlYW5cbiAgICBpbmNsdWRlQnJhY2tldHM/OiBib29sZWFuXG4gIH0sIGF0dHJpYnV0ZVZhbHVlKTogc3RyaW5nW10ge1xuICAgIGF0dHJpYnV0ZXNQYXRocy5wdXNoKHRoaXMuY3JlYXRlQ29tcGxldGlvbihgJHtjdXJyZW50UGF0aH0uJHthdHRyaWJ1dGVOYW1lfWAsIHByb3BzLmluY2x1ZGVCcmFja2V0cykpXG4gICAgaWYgKHByb3BzLmluY2x1ZGVBcnJheU1ldGhvZHMpIHtcbiAgICAgIGF0dHJpYnV0ZXNQYXRocyA9IGF0dHJpYnV0ZXNQYXRocy5jb25jYXQodGhpcy5nZXRBcnJheU1ldGhvZHNDb2RlQ29tcGxldGlvbnMoYCR7Y3VycmVudFBhdGh9LiR7YXR0cmlidXRlTmFtZX1gKSlcbiAgICB9XG4gICAgYXR0cmlidXRlc1BhdGhzLnB1c2godGhpcy5jcmVhdGVDb21wbGV0aW9uKGAke2N1cnJlbnRQYXRofS4ke2F0dHJpYnV0ZU5hbWV9WzBdYCwgcHJvcHMuaW5jbHVkZUJyYWNrZXRzKSlcbiAgICBhdHRyaWJ1dGVzUGF0aHMgPSBhdHRyaWJ1dGVzUGF0aHMuY29uY2F0KHRoaXMucGFyc2VJdGVtKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY3VycmVudFBhdGg6IGAke2N1cnJlbnRQYXRofS4ke2F0dHJpYnV0ZU5hbWV9WzBdYCxcbiAgICAgIGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZVZhbHVlLmNoaWxkID8/IGF0dHJpYnV0ZVZhbHVlLnByb3BlcnRpZXNcbiAgICB9KSlcbiAgICByZXR1cm4gYXR0cmlidXRlc1BhdGhzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBcnJheU1ldGhvZHNDb2RlQ29tcGxldGlvbnMoY3VycmVudFBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgYCR7Y3VycmVudFBhdGh9LmNvbmNhdCgpYCxcbiAgICAgIGAke2N1cnJlbnRQYXRofS5maWx0ZXIoKGVsZW1lbnQpID0+IClgLFxuICAgICAgYCR7Y3VycmVudFBhdGh9LmZpbmQoKGVsZW1lbnQpID0+IClgLFxuICAgICAgYCR7Y3VycmVudFBhdGh9LmZvckVhY2goKGVsZW1lbnQpID0+IClgLFxuICAgICAgYCR7Y3VycmVudFBhdGh9LmluY2x1ZGVzKClgLFxuICAgICAgYCR7Y3VycmVudFBhdGh9LmluZGV4T2YoKWAsXG4gICAgICBgJHtjdXJyZW50UGF0aH0ubWFwKChlbGVtZW50KSA9PiApYCxcbiAgICAgIGAke2N1cnJlbnRQYXRofS5wdXNoKClgLFxuICAgICAgYCR7Y3VycmVudFBhdGh9LnNvcnQoKWBcbiAgICBdXG4gIH1cblxuICBwdWJsaWMgb25Ecm9wT25FZGl0b3IoZWRpdG9yOiBBY2VFZGl0b3JDb21wb25lbnQsICRldmVudDogRG5kRHJvcEV2ZW50LCBhZGRCcmFja2V0cz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LmRhdGEpIHtcbiAgICAgIGxldCBkcm9wVGV4dCA9ICRldmVudC5kYXRhXG4gICAgICBpZiAoYWRkQnJhY2tldHMpIHtcbiAgICAgICAgZHJvcFRleHQgPSBge3ske2Ryb3BUZXh0fX19YFxuICAgICAgfVxuICAgICAgZWRpdG9yLmRyYWdnZWRUZXh0ID0gZHJvcFRleHRcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImFjZS1lZGl0b3ItaW5wdXRcIj5cbiAgPGRpdiBjbGFzcz1cImNvZGUtaGVhZGVyXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiaW5mby1sYWJlbCBib2xkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwidGl0bGVcIj57eyB0aXRsZSB9fTwvZGl2PlxuICAgICAgPHNtYWxsPnt7IGRlc2NyaXB0aW9uIH19PC9zbWFsbD5cbiAgICA8L2xhYmVsPlxuICAgIDxwcmltYXJ5LWJ1dHRvbiBbc2l6ZV09XCInc2xpbSdcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0JlYXV0aWZ5J1wiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImJlYXV0aWZ5KClcIj5cbiAgICA8L3ByaW1hcnktYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGFjZS1lZGl0b3JcbiAgICAjZWRpdG9yXG4gICAgWyh0ZXh0KV09XCJ2YWx1ZVwiXG4gICAgW29wdGlvbnNdPVwie2VuYWJsZUJhc2ljQXV0b2NvbXBsZXRpb246IHRydWUsIGVuYWJsZVNuaXBwZXRzOiB0cnVlLCBlbmFibGVMaXZlQXV0b2NvbXBsZXRpb246IHRydWUsIGtleWJvYXJkSGFuZGxlcjogJ2FjZS9rZXlib2FyZC92c2NvZGUnfVwiXG4gICAgZG5kRHJvcHpvbmUgW2RuZEFsbG93RXh0ZXJuYWxdPVwidHJ1ZVwiIChkbmREcm9wKT1cIm9uRHJvcE9uRWRpdG9yKGVkaXRvciwgJGV2ZW50LCB0cnVlKVwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gICAgW2F1dG9VcGRhdGVDb250ZW50XT1cInRydWVcIlxuICAgIGNsYXNzPVwiYWNlLWVkaXRvclwiXG4gID48L2FjZS1lZGl0b3I+XG48L2Rpdj5cbiJdfQ==
@@ -36,6 +36,7 @@ import { NgScrollbarModule } from 'ngx-scrollbar';
36
36
  import { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';
37
37
  import { KeyValueInputComponent } from './input-key-value/key-value-input.component';
38
38
  import { MatCheckboxModule } from '@angular/material/checkbox';
39
+ import { AceEditorInputComponent } from './ace-editor-input/ace-editor-input.component';
39
40
  import * as i0 from "@angular/core";
40
41
  class InputsModule {
41
42
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -55,7 +56,8 @@ class InputsModule {
55
56
  AceEditorDirective,
56
57
  DebouceInputDirective,
57
58
  InputDateTimeIntervalComponent,
58
- KeyValueInputComponent], imports: [RouterModule,
59
+ KeyValueInputComponent,
60
+ AceEditorInputComponent], imports: [RouterModule,
59
61
  CommonModule,
60
62
  FormsModule,
61
63
  MatFormFieldModule,
@@ -92,7 +94,8 @@ class InputsModule {
92
94
  InputDateTimeIntervalComponent,
93
95
  NgxMaskDirective,
94
96
  NgxMaskPipe,
95
- KeyValueInputComponent] });
97
+ KeyValueInputComponent,
98
+ AceEditorInputComponent] });
96
99
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, providers: [
97
100
  {
98
101
  provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
@@ -170,7 +173,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
170
173
  AceEditorDirective,
171
174
  DebouceInputDirective,
172
175
  InputDateTimeIntervalComponent,
173
- KeyValueInputComponent
176
+ KeyValueInputComponent,
177
+ AceEditorInputComponent
174
178
  ],
175
179
  exports: [
176
180
  SelectBoxComponent,
@@ -190,7 +194,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
190
194
  InputDateTimeIntervalComponent,
191
195
  NgxMaskDirective,
192
196
  NgxMaskPipe,
193
- KeyValueInputComponent
197
+ KeyValueInputComponent,
198
+ AceEditorInputComponent
194
199
  ],
195
200
  providers: [
196
201
  {
@@ -208,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
208
213
  ]
209
214
  }]
210
215
  }] });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDakcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pDLE9B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QixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsNEJBQTRCO3dCQUM1QixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLDhCQUE4Qjt3QkFDOUIsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLHNCQUFzQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw4QkFBOEI7NEJBQ3ZDLFFBQVEsRUFBRTtnQ0FDUixVQUFVLEVBQUUsU0FBUztnQ0FDckIsZUFBZSxFQUFFLFNBQVM7NkJBQzNCO3lCQUNGO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxpQ0FBaUM7NEJBQzFDLFFBQVEsRUFBRSwrQkFBK0I7eUJBQzFDO3dCQUNELGNBQWMsRUFBRTtxQkFDakI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgU2VsZWN0RW51bUNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWVudW0vc2VsZWN0LWVudW0uY29tcG9uZW50J1xuaW1wb3J0IHsgTUFUX0ZPUk1fRklFTERfREVGQVVMVF9PUFRJT05TLCBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJ1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCdcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtYXZhdGFyL2lucHV0LWF2YXRhci5jb21wb25lbnQnXG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZmllbGQvZmllbGQuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtYm94L3NlbGVjdC1ib3guY29tcG9uZW50J1xuaW1wb3J0IHsgTWF0U2VsZWN0SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC1ib3gvbWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCdcbmltcG9ydCB7IEN1c3RvbVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IERuZE1vZHVsZSB9IGZyb20gJ25neC1kcmFnLWRyb3AnXG5pbXBvcnQgeyBJY29uc01vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL2ljb25zJ1xuaW1wb3J0IHsgUGlwZU1vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL3BpcGVzJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgSW5wdXRGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50J1xuaW1wb3J0IHsgQWNlRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9hY2UtZWRpdG9yL2NvbXBvbmVudCdcbmltcG9ydCB7IEFjZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vYWNlLWVkaXRvci9kaXJlY3RpdmUnXG5pbXBvcnQgeyBJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW5Db21wb25lbnQgfSBmcm9tICcuL2lucHV0LWJvb2xlYW4vaW5wdXQtYm9vbGVhbi5jb21wb25lbnQnXG5pbXBvcnQgeyBCdXR0b25zTW9kdWxlIH0gZnJvbSAnQGFwaXBhc3MvYnV0dG9ucydcbmltcG9ydCB7IERlYm91Y2VJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGVib3VuY2UtbW9kZWwtZGlyZWN0aXZlL2RlYm91Y2VJbnB1dC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBTZWxlY3RJbnRlcnBvbGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtaW50ZXJwb2xhdGlvbi9zZWxlY3QtaW50ZXJwb2xhdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1pbWFnZS9pbnB1dC1pbWFnZS5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dERhdGVUaW1lSW50ZXJ2YWxDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbC9pbnB1dC1kYXRlLXRpbWUtaW50ZXJ2YWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERlZmF1bHRNYXRDYWxlbmRhclJhbmdlU3RyYXRlZ3ksXG4gIE1BVF9EQVRFX1JBTkdFX1NFTEVDVElPTl9TVFJBVEVHWSxcbiAgTWF0RGF0ZXBpY2tlck1vZHVsZVxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSwgcHJvdmlkZU5neE1hc2sgfSBmcm9tICduZ3gtbWFzayc7XG5pbXBvcnQgeyBLZXlWYWx1ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1rZXktdmFsdWUva2V5LXZhbHVlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBQaXBlTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgSWNvbnNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBEbmRNb2R1bGUsXG4gICAgQnV0dG9uc01vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE5nU2Nyb2xsYmFyTW9kdWxlLFxuICAgIE5neE1hc2tEaXJlY3RpdmUsXG4gICAgTmd4TWFza1BpcGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWF0U2VsZWN0SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsXG4gICAgU2VsZWN0Qm94Q29tcG9uZW50LFxuICAgIFNlbGVjdEVudW1Db21wb25lbnQsXG4gICAgSW5wdXRUZXh0Q29tcG9uZW50LFxuICAgIElucHV0TnVtYmVyQ29tcG9uZW50LFxuICAgIElucHV0Qm9vbGVhbkNvbXBvbmVudCxcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcbiAgICBJbnB1dEltYWdlQ29tcG9uZW50LFxuICAgIElucHV0RmlsZUNvbXBvbmVudCxcbiAgICBDdXN0b21TZWxlY3RDb21wb25lbnQsXG4gICAgU2VsZWN0SW50ZXJwb2xhdGlvbkNvbXBvbmVudCxcbiAgICBGaWVsZENvbXBvbmVudCxcbiAgICBBY2VFZGl0b3JDb21wb25lbnQsXG4gICAgQWNlRWRpdG9yRGlyZWN0aXZlLFxuICAgIERlYm91Y2VJbnB1dERpcmVjdGl2ZSxcbiAgICBJbnB1dERhdGVUaW1lSW50ZXJ2YWxDb21wb25lbnQsXG4gICAgS2V5VmFsdWVJbnB1dENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2VsZWN0Qm94Q29tcG9uZW50LFxuICAgIFNlbGVjdEVudW1Db21wb25lbnQsXG4gICAgSW5wdXRUZXh0Q29tcG9uZW50LFxuICAgIElucHV0TnVtYmVyQ29tcG9uZW50LFxuICAgIElucHV0Qm9vbGVhbkNvbXBvbmVudCxcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcbiAgICBJbnB1dEltYWdlQ29tcG9uZW50LFxuICAgIElucHV0RmlsZUNvbXBvbmVudCxcbiAgICBDdXN0b21TZWxlY3RDb21wb25lbnQsXG4gICAgU2VsZWN0SW50ZXJwb2xhdGlvbkNvbXBvbmVudCxcbiAgICBGaWVsZENvbXBvbmVudCxcbiAgICBBY2VFZGl0b3JDb21wb25lbnQsXG4gICAgQWNlRWRpdG9yRGlyZWN0aXZlLFxuICAgIERlYm91Y2VJbnB1dERpcmVjdGl2ZSxcbiAgICBJbnB1dERhdGVUaW1lSW50ZXJ2YWxDb21wb25lbnQsXG4gICAgTmd4TWFza0RpcmVjdGl2ZSxcbiAgICBOZ3hNYXNrUGlwZSxcbiAgICBLZXlWYWx1ZUlucHV0Q29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1BVF9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIGFwcGVhcmFuY2U6ICdvdXRsaW5lJyxcbiAgICAgICAgc3Vic2NyaXB0U2l6aW5nOiAnZHluYW1pYydcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1BVF9EQVRFX1JBTkdFX1NFTEVDVElPTl9TVFJBVEVHWSxcbiAgICAgIHVzZUNsYXNzOiBEZWZhdWx0TWF0Q2FsZW5kYXJSYW5nZVN0cmF0ZWd5XG4gICAgfSxcbiAgICBwcm92aWRlTmd4TWFzaygpXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRzTW9kdWxlIHtcbn1cbiJdfQ==
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDakcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pDLE9B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Qjt3QkFDckIsOEJBQThCO3dCQUM5QixzQkFBc0I7d0JBQ3RCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQiw4QkFBOEI7d0JBQzlCLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw4QkFBOEI7NEJBQ3ZDLFFBQVEsRUFBRTtnQ0FDUixVQUFVLEVBQUUsU0FBUztnQ0FDckIsZUFBZSxFQUFFLFNBQVM7NkJBQzNCO3lCQUNGO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxpQ0FBaUM7NEJBQzFDLFFBQVEsRUFBRSwrQkFBK0I7eUJBQzFDO3dCQUNELGNBQWMsRUFBRTtxQkFDakI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgU2VsZWN0RW51bUNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWVudW0vc2VsZWN0LWVudW0uY29tcG9uZW50J1xuaW1wb3J0IHsgTUFUX0ZPUk1fRklFTERfREVGQVVMVF9PUFRJT05TLCBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJ1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCdcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtYXZhdGFyL2lucHV0LWF2YXRhci5jb21wb25lbnQnXG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZmllbGQvZmllbGQuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtYm94L3NlbGVjdC1ib3guY29tcG9uZW50J1xuaW1wb3J0IHsgTWF0U2VsZWN0SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC1ib3gvbWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCdcbmltcG9ydCB7IEN1c3RvbVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IERuZE1vZHVsZSB9IGZyb20gJ25neC1kcmFnLWRyb3AnXG5pbXBvcnQgeyBJY29uc01vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL2ljb25zJ1xuaW1wb3J0IHsgUGlwZU1vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL3BpcGVzJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgSW5wdXRGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50J1xuaW1wb3J0IHsgQWNlRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9hY2UtZWRpdG9yL2NvbXBvbmVudCdcbmltcG9ydCB7IEFjZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vYWNlLWVkaXRvci9kaXJlY3RpdmUnXG5pbXBvcnQgeyBJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW5Db21wb25lbnQgfSBmcm9tICcuL2lucHV0LWJvb2xlYW4vaW5wdXQtYm9vbGVhbi5jb21wb25lbnQnXG5pbXBvcnQgeyBCdXR0b25zTW9kdWxlIH0gZnJvbSAnQGFwaXBhc3MvYnV0dG9ucydcbmltcG9ydCB7IERlYm91Y2VJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGVib3VuY2UtbW9kZWwtZGlyZWN0aXZlL2RlYm91Y2VJbnB1dC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBTZWxlY3RJbnRlcnBvbGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtaW50ZXJwb2xhdGlvbi9zZWxlY3QtaW50ZXJwb2xhdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1pbWFnZS9pbnB1dC1pbWFnZS5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dERhdGVUaW1lSW50ZXJ2YWxDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbC9pbnB1dC1kYXRlLXRpbWUtaW50ZXJ2YWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERlZmF1bHRNYXRDYWxlbmRhclJhbmdlU3RyYXRlZ3ksXG4gIE1BVF9EQVRFX1JBTkdFX1NFTEVDVElPTl9TVFJBVEVHWSxcbiAgTWF0RGF0ZXBpY2tlck1vZHVsZVxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSwgcHJvdmlkZU5neE1hc2sgfSBmcm9tICduZ3gtbWFzayc7XG5pbXBvcnQgeyBLZXlWYWx1ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1rZXktdmFsdWUva2V5LXZhbHVlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IEFjZUVkaXRvcklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9hY2UtZWRpdG9yLWlucHV0L2FjZS1lZGl0b3ItaW5wdXQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBQaXBlTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgSWNvbnNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBEbmRNb2R1bGUsXG4gICAgQnV0dG9uc01vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE5nU2Nyb2xsYmFyTW9kdWxlLFxuICAgIE5neE1hc2tEaXJlY3RpdmUsXG4gICAgTmd4TWFza1BpcGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWF0U2VsZWN0SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsXG4gICAgU2VsZWN0Qm94Q29tcG9uZW50LFxuICAgIFNlbGVjdEVudW1Db21wb25lbnQsXG4gICAgSW5wdXRUZXh0Q29tcG9uZW50LFxuICAgIElucHV0TnVtYmVyQ29tcG9uZW50LFxuICAgIElucHV0Qm9vbGVhbkNvbXBvbmVudCxcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcbiAgICBJbnB1dEltYWdlQ29tcG9uZW50LFxuICAgIElucHV0RmlsZUNvbXBvbmVudCxcbiAgICBDdXN0b21TZWxlY3RDb21wb25lbnQsXG4gICAgU2VsZWN0SW50ZXJwb2xhdGlvbkNvbXBvbmVudCxcbiAgICBGaWVsZENvbXBvbmVudCxcbiAgICBBY2VFZGl0b3JDb21wb25lbnQsXG4gICAgQWNlRWRpdG9yRGlyZWN0aXZlLFxuICAgIERlYm91Y2VJbnB1dERpcmVjdGl2ZSxcbiAgICBJbnB1dERhdGVUaW1lSW50ZXJ2YWxDb21wb25lbnQsXG4gICAgS2V5VmFsdWVJbnB1dENvbXBvbmVudCxcbiAgICBBY2VFZGl0b3JJbnB1dENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2VsZWN0Qm94Q29tcG9uZW50LFxuICAgIFNlbGVjdEVudW1Db21wb25lbnQsXG4gICAgSW5wdXRUZXh0Q29tcG9uZW50LFxuICAgIElucHV0TnVtYmVyQ29tcG9uZW50LFxuICAgIElucHV0Qm9vbGVhbkNvbXBvbmVudCxcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcbiAgICBJbnB1dEltYWdlQ29tcG9uZW50LFxuICAgIElucHV0RmlsZUNvbXBvbmVudCxcbiAgICBDdXN0b21TZWxlY3RDb21wb25lbnQsXG4gICAgU2VsZWN0SW50ZXJwb2xhdGlvbkNvbXBvbmVudCxcbiAgICBGaWVsZENvbXBvbmVudCxcbiAgICBBY2VFZGl0b3JDb21wb25lbnQsXG4gICAgQWNlRWRpdG9yRGlyZWN0aXZlLFxuICAgIERlYm91Y2VJbnB1dERpcmVjdGl2ZSxcbiAgICBJbnB1dERhdGVUaW1lSW50ZXJ2YWxDb21wb25lbnQsXG4gICAgTmd4TWFza0RpcmVjdGl2ZSxcbiAgICBOZ3hNYXNrUGlwZSxcbiAgICBLZXlWYWx1ZUlucHV0Q29tcG9uZW50LFxuICAgIEFjZUVkaXRvcklucHV0Q29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1BVF9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIGFwcGVhcmFuY2U6ICdvdXRsaW5lJyxcbiAgICAgICAgc3Vic2NyaXB0U2l6aW5nOiAnZHluYW1pYydcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1BVF9EQVRFX1JBTkdFX1NFTEVDVElPTl9TVFJBVEVHWSxcbiAgICAgIHVzZUNsYXNzOiBEZWZhdWx0TWF0Q2FsZW5kYXJSYW5nZVN0cmF0ZWd5XG4gICAgfSxcbiAgICBwcm92aWRlTmd4TWFzaygpXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRzTW9kdWxlIHtcbn1cbiJdfQ==
@@ -20,5 +20,6 @@ export * from './input-number/input-number.component';
20
20
  export * from './input-boolean/input-boolean.component';
21
21
  export * from './input-date-time-interval/public-api';
22
22
  export * from './input-key-value/key-value-input.component';
23
+ export * from './ace-editor-input/ace-editor-input.component';
23
24
  export * from 'ngx-mask';
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsOENBQThDLENBQUE7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQTtBQUUzRCxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLHlCQUF5QixDQUFBO0FBRXZDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQTtBQUV0QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyx1REFBdUQsQ0FBQTtBQUNyRSxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsb0NBQW9DLENBQUE7QUFFbEQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLDZDQUE2QyxDQUFBO0FBRTNELGNBQWMsVUFBVSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnQGFuZ3VsYXItbWF0ZXJpYWwtY29tcG9uZW50cy9jb2xvci1waWNrZXInXG5leHBvcnQgKiBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlcidcbmV4cG9ydCAqIGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWNvbXBvbmVudHMvbW9tZW50LWFkYXB0ZXInXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5wdXRzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vdmFsdWUtYWNlc3Nvci1iYXNlJ1xuZXhwb3J0ICogZnJvbSAnLi9kZWJvdW5jZS1tb2RlbC1kaXJlY3RpdmUvZGVib3VjZUlucHV0LmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQvZmllbGQuY29tcG9uZW50J1xuXG5leHBvcnQgKiBmcm9tICcuL2FjZS1lZGl0b3IvZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9hY2UtZWRpdG9yL2NvbXBvbmVudCdcblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtYm94L3NlbGVjdC1ib3guY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1pbnRlcnBvbGF0aW9uL3NlbGVjdC1pbnRlcnBvbGF0aW9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LWl0ZW0nXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtYXZhdGFyL2lucHV0LWF2YXRhci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWltYWdlL2lucHV0LWltYWdlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWJvb2xlYW4vaW5wdXQtYm9vbGVhbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbC9wdWJsaWMtYXBpJ1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1rZXktdmFsdWUva2V5LXZhbHVlLWlucHV0LmNvbXBvbmVudCdcblxuZXhwb3J0ICogZnJvbSAnbmd4LW1hc2snXG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsOENBQThDLENBQUE7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQTtBQUUzRCxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLHlCQUF5QixDQUFBO0FBRXZDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQTtBQUV0QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyx1REFBdUQsQ0FBQTtBQUNyRSxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsb0NBQW9DLENBQUE7QUFFbEQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsK0NBQStDLENBQUE7QUFFN0QsY0FBYyxVQUFVLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzL2NvbG9yLXBpY2tlcidcbmV4cG9ydCAqIGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyJ1xuZXhwb3J0ICogZnJvbSAnQGFuZ3VsYXItbWF0ZXJpYWwtY29tcG9uZW50cy9tb21lbnQtYWRhcHRlcidcblxuZXhwb3J0ICogZnJvbSAnLi9pbnB1dHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi92YWx1ZS1hY2Vzc29yLWJhc2UnXG5leHBvcnQgKiBmcm9tICcuL2RlYm91bmNlLW1vZGVsLWRpcmVjdGl2ZS9kZWJvdWNlSW5wdXQuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZC9maWVsZC5jb21wb25lbnQnXG5cbmV4cG9ydCAqIGZyb20gJy4vYWNlLWVkaXRvci9kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2FjZS1lZGl0b3IvY29tcG9uZW50J1xuXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1ib3gvc2VsZWN0LWJveC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1lbnVtL3NlbGVjdC1lbnVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWludGVycG9sYXRpb24vc2VsZWN0LWludGVycG9sYXRpb24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QtaXRlbSdcblxuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1hdmF0YXIvaW5wdXQtYXZhdGFyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtaW1hZ2UvaW5wdXQtaW1hZ2UuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtYm9vbGVhbi9pbnB1dC1ib29sZWFuLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtZGF0ZS10aW1lLWludGVydmFsL3B1YmxpYy1hcGknXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWtleS12YWx1ZS9rZXktdmFsdWUtaW5wdXQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9hY2UtZWRpdG9yLWlucHV0L2FjZS1lZGl0b3ItaW5wdXQuY29tcG9uZW50J1xuXG5leHBvcnQgKiBmcm9tICduZ3gtbWFzaydcbiJdfQ==
@@ -47,6 +47,7 @@ import { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';
47
47
  export * from 'ngx-mask';
48
48
  import { MatCardModule } from '@angular/material/card';
49
49
  import { MatCheckboxModule } from '@angular/material/checkbox';
50
+ import { beautifyRawDataContent } from '@apipass/frontend-utils';
50
51
  import moment$1 from 'moment';
51
52
 
52
53
  class ValueAccessorBase {
@@ -2302,6 +2303,157 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2302
2303
  type: Output
2303
2304
  }] } });
2304
2305
 
2306
+ class AceEditorInputComponent extends ValueAccessorBase {
2307
+ editor;
2308
+ title;
2309
+ description;
2310
+ previousStepsOutputAttributes = {};
2311
+ mode;
2312
+ ngAfterContentInit() {
2313
+ this.createAceEditorCustomCompletions();
2314
+ }
2315
+ createAceEditorCustomCompletions() {
2316
+ setTimeout(() => {
2317
+ if (this.editor?.setCustomCompletions) {
2318
+ this.setEditorCustomCompletions(this.editor, true);
2319
+ }
2320
+ }, 500);
2321
+ }
2322
+ beautify() {
2323
+ const rawDataContent = this.editor.getEditor().getSession().getValue();
2324
+ if (rawDataContent) {
2325
+ const formattedContent = beautifyRawDataContent(rawDataContent);
2326
+ this.editor.getEditor().getSession().setValue(formattedContent);
2327
+ }
2328
+ }
2329
+ setEditorCustomCompletions(editor, includeBrackets) {
2330
+ editor.setCustomCompletions(this.getOutputAttributesCodeCompletions({
2331
+ prefixIdentifier: '$',
2332
+ outputAttributes: this.previousStepsOutputAttributes,
2333
+ includeBrackets
2334
+ }));
2335
+ }
2336
+ getOutputAttributesCodeCompletions(props) {
2337
+ let attributesPaths = [];
2338
+ for (const outputAttributesKey in props.outputAttributes) {
2339
+ const outputAttribute = props.outputAttributes[outputAttributesKey];
2340
+ const currentPath = `${props.prefixIdentifier}.${outputAttributesKey}`;
2341
+ attributesPaths.push(this.createCompletion(currentPath, props.includeBrackets));
2342
+ attributesPaths = attributesPaths.concat(this.parseItem({
2343
+ ...props,
2344
+ currentPath,
2345
+ attributes: outputAttribute.attributes
2346
+ }));
2347
+ }
2348
+ return attributesPaths.map(value => {
2349
+ return {
2350
+ caption: value,
2351
+ value,
2352
+ meta: 'Step attribute',
2353
+ score: 0
2354
+ };
2355
+ });
2356
+ }
2357
+ createCompletion(completion, includeBrackets) {
2358
+ return includeBrackets ? `{{${completion}}}` : completion;
2359
+ }
2360
+ parseItem(props) {
2361
+ let attributesPaths = [];
2362
+ const currentPath = props.currentPath;
2363
+ for (const attributeName in props.attributes) {
2364
+ const attributeValue = props.attributes[attributeName];
2365
+ const attributeTypeIsInvalid = typeof attributeValue?.type !== 'string' && !(attributeValue?.type instanceof String);
2366
+ if (attributeValue?.type && attributeTypeIsInvalid) {
2367
+ continue;
2368
+ }
2369
+ const attributeType = attributeValue?.type?.toUpperCase();
2370
+ if (['STRING', 'NUMBER', 'BOOLEAN', 'AUTHORIZATION'].includes(attributeType)) {
2371
+ attributesPaths.push(this.createCompletion(`${currentPath}.${attributeName}`, props.includeBrackets));
2372
+ }
2373
+ else if (attributeType === 'OBJECT') {
2374
+ attributesPaths.push(this.createCompletion(`${currentPath}.${attributeName}`, props.includeBrackets));
2375
+ attributesPaths = attributesPaths.concat(this.parseItem({
2376
+ ...props,
2377
+ currentPath: `${currentPath}.${attributeName}`,
2378
+ attributes: attributeValue.child ?? attributeValue.properties
2379
+ }));
2380
+ }
2381
+ else if (attributeType === 'ARRAY') {
2382
+ const arrayPaths = this.parseArrayItem(currentPath, attributeName, attributesPaths, props, attributeValue);
2383
+ attributesPaths = attributesPaths.concat(arrayPaths);
2384
+ }
2385
+ else if (!attributeValue?.type) {
2386
+ attributesPaths = attributesPaths.concat(this.parseItem({
2387
+ ...props,
2388
+ currentPath,
2389
+ attributes: { [attributeName]: { type: attributeValue } }
2390
+ }));
2391
+ }
2392
+ }
2393
+ return attributesPaths;
2394
+ }
2395
+ parseArrayItem(currentPath, attributeName, attributesPaths, props, attributeValue) {
2396
+ attributesPaths.push(this.createCompletion(`${currentPath}.${attributeName}`, props.includeBrackets));
2397
+ if (props.includeArrayMethods) {
2398
+ attributesPaths = attributesPaths.concat(this.getArrayMethodsCodeCompletions(`${currentPath}.${attributeName}`));
2399
+ }
2400
+ attributesPaths.push(this.createCompletion(`${currentPath}.${attributeName}[0]`, props.includeBrackets));
2401
+ attributesPaths = attributesPaths.concat(this.parseItem({
2402
+ ...props,
2403
+ currentPath: `${currentPath}.${attributeName}[0]`,
2404
+ attributes: attributeValue.child ?? attributeValue.properties
2405
+ }));
2406
+ return attributesPaths;
2407
+ }
2408
+ getArrayMethodsCodeCompletions(currentPath) {
2409
+ return [
2410
+ `${currentPath}.concat()`,
2411
+ `${currentPath}.filter((element) => )`,
2412
+ `${currentPath}.find((element) => )`,
2413
+ `${currentPath}.forEach((element) => )`,
2414
+ `${currentPath}.includes()`,
2415
+ `${currentPath}.indexOf()`,
2416
+ `${currentPath}.map((element) => )`,
2417
+ `${currentPath}.push()`,
2418
+ `${currentPath}.sort()`
2419
+ ];
2420
+ }
2421
+ onDropOnEditor(editor, $event, addBrackets) {
2422
+ if ($event.data) {
2423
+ let dropText = $event.data;
2424
+ if (addBrackets) {
2425
+ dropText = `{{${dropText}}}`;
2426
+ }
2427
+ editor.draggedText = dropText;
2428
+ }
2429
+ }
2430
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AceEditorInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2431
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: AceEditorInputComponent, selector: "ace-editor-input", inputs: { title: "title", description: "description", previousStepsOutputAttributes: "previousStepsOutputAttributes", mode: "mode" }, providers: [{
2432
+ provide: NG_VALUE_ACCESSOR,
2433
+ useExisting: forwardRef(() => AceEditorInputComponent),
2434
+ multi: true
2435
+ }], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ace-editor-input\">\n <div class=\"code-header\">\n <label class=\"info-label bold\">\n <div *ngIf=\"title\">{{ title }}</div>\n <small>{{ description }}</small>\n </label>\n <primary-button [size]=\"'slim'\"\n [label]=\"'Beautify'\"\n (onClick)=\"beautify()\">\n </primary-button>\n </div>\n <ace-editor\n #editor\n [(text)]=\"value\"\n [options]=\"{enableBasicAutocompletion: true, enableSnippets: true, enableLiveAutocompletion: true, keyboardHandler: 'ace/keyboard/vscode'}\"\n dndDropzone [dndAllowExternal]=\"true\" (dndDrop)=\"onDropOnEditor(editor, $event, true)\"\n [mode]=\"mode\"\n [autoUpdateContent]=\"true\"\n class=\"ace-editor\"\n ></ace-editor>\n</div>\n", styles: [".ace-editor-input{width:100%}.ace-editor-input .ace-editor{height:530px;min-height:200px}.ace-editor-input .code-header{justify-content:space-between;display:flex;width:100%;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6$1.DndDropzoneDirective, selector: "[dndDropzone]", inputs: ["dndDropzone", "dndEffectAllowed", "dndAllowExternal", "dndHorizontal", "dndDragoverClass", "dndDropzoneDisabledClass", "dndDisableIf", "dndDisableDropIf"], outputs: ["dndDragover", "dndDrop"] }, { kind: "component", type: i3$3.PrimaryButtonComponent, selector: "primary-button", inputs: ["label", "btnDisabled", "icon", "suffixIcon", "selected", "btnClass", "size"], outputs: ["onClick"] }, { kind: "component", type: AceEditorComponent, selector: "ace-editor", inputs: ["style", "options", "readOnly", "theme", "mode", "value", "text", "autoUpdateContent", "durationBeforeCallback"], outputs: ["textChanged", "textChange", "beforeDropEvent", "afterDropEvent"] }], encapsulation: i0.ViewEncapsulation.None });
2436
+ }
2437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AceEditorInputComponent, decorators: [{
2438
+ type: Component,
2439
+ args: [{ selector: 'ace-editor-input', providers: [{
2440
+ provide: NG_VALUE_ACCESSOR,
2441
+ useExisting: forwardRef(() => AceEditorInputComponent),
2442
+ multi: true
2443
+ }], encapsulation: ViewEncapsulation.None, template: "<div class=\"ace-editor-input\">\n <div class=\"code-header\">\n <label class=\"info-label bold\">\n <div *ngIf=\"title\">{{ title }}</div>\n <small>{{ description }}</small>\n </label>\n <primary-button [size]=\"'slim'\"\n [label]=\"'Beautify'\"\n (onClick)=\"beautify()\">\n </primary-button>\n </div>\n <ace-editor\n #editor\n [(text)]=\"value\"\n [options]=\"{enableBasicAutocompletion: true, enableSnippets: true, enableLiveAutocompletion: true, keyboardHandler: 'ace/keyboard/vscode'}\"\n dndDropzone [dndAllowExternal]=\"true\" (dndDrop)=\"onDropOnEditor(editor, $event, true)\"\n [mode]=\"mode\"\n [autoUpdateContent]=\"true\"\n class=\"ace-editor\"\n ></ace-editor>\n</div>\n", styles: [".ace-editor-input{width:100%}.ace-editor-input .ace-editor{height:530px;min-height:200px}.ace-editor-input .code-header{justify-content:space-between;display:flex;width:100%;margin-bottom:5px}\n"] }]
2444
+ }], propDecorators: { editor: [{
2445
+ type: ViewChild,
2446
+ args: ['editor']
2447
+ }], title: [{
2448
+ type: Input
2449
+ }], description: [{
2450
+ type: Input
2451
+ }], previousStepsOutputAttributes: [{
2452
+ type: Input
2453
+ }], mode: [{
2454
+ type: Input
2455
+ }] } });
2456
+
2305
2457
  class InputsModule {
2306
2458
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2307
2459
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, declarations: [MatSelectInfiniteScrollDirective,
@@ -2320,7 +2472,8 @@ class InputsModule {
2320
2472
  AceEditorDirective,
2321
2473
  DebouceInputDirective,
2322
2474
  InputDateTimeIntervalComponent,
2323
- KeyValueInputComponent], imports: [RouterModule,
2475
+ KeyValueInputComponent,
2476
+ AceEditorInputComponent], imports: [RouterModule,
2324
2477
  CommonModule,
2325
2478
  FormsModule,
2326
2479
  MatFormFieldModule,
@@ -2357,7 +2510,8 @@ class InputsModule {
2357
2510
  InputDateTimeIntervalComponent,
2358
2511
  NgxMaskDirective,
2359
2512
  NgxMaskPipe,
2360
- KeyValueInputComponent] });
2513
+ KeyValueInputComponent,
2514
+ AceEditorInputComponent] });
2361
2515
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, providers: [
2362
2516
  {
2363
2517
  provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
@@ -2434,7 +2588,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2434
2588
  AceEditorDirective,
2435
2589
  DebouceInputDirective,
2436
2590
  InputDateTimeIntervalComponent,
2437
- KeyValueInputComponent
2591
+ KeyValueInputComponent,
2592
+ AceEditorInputComponent
2438
2593
  ],
2439
2594
  exports: [
2440
2595
  SelectBoxComponent,
@@ -2454,7 +2609,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2454
2609
  InputDateTimeIntervalComponent,
2455
2610
  NgxMaskDirective,
2456
2611
  NgxMaskPipe,
2457
- KeyValueInputComponent
2612
+ KeyValueInputComponent,
2613
+ AceEditorInputComponent
2458
2614
  ],
2459
2615
  providers: [
2460
2616
  {
@@ -2907,5 +3063,5 @@ class TimeIntervalValueBuilder {
2907
3063
  * Generated bundle index. Do not edit.
2908
3064
  */
2909
3065
 
2910
- export { AceEditorComponent, AceEditorDirective, CurrentMonthInterval, CustomSelectComponent, CustomSelectItem, DebouceInputDirective, DefaultIntervalsBuilder, FieldComponent, InputAvatarComponent, InputBooleanComponent, InputDateTimeIntervalComponent, InputFileComponent, InputImageComponent, InputNumberComponent, InputTextComponent, InputsModule, KeyValueInputComponent, LastFiveMinutesInterval, LastHourInterval, LastMinuteInterval, LastMonthInterval, LastOneWeekInterval, LastQuarterInterval, LastTenMinutesInterval, LastThirtyMinutesInterval, LastThreeHoursInterval, LastTwoHoursInterval, LastYearInterval, SelectBoxComponent, SelectEnumComponent, SelectInterpolationComponent, ThisQuarterInterval, ThisWeekInterval, ThisYearInterval, TimeIntervalValue, TimeIntervalValueBuilder, TimeIntervalsBuilder, TodayInterval, ValueAccessorBase, YesterdayInterval };
3066
+ export { AceEditorComponent, AceEditorDirective, AceEditorInputComponent, CurrentMonthInterval, CustomSelectComponent, CustomSelectItem, DebouceInputDirective, DefaultIntervalsBuilder, FieldComponent, InputAvatarComponent, InputBooleanComponent, InputDateTimeIntervalComponent, InputFileComponent, InputImageComponent, InputNumberComponent, InputTextComponent, InputsModule, KeyValueInputComponent, LastFiveMinutesInterval, LastHourInterval, LastMinuteInterval, LastMonthInterval, LastOneWeekInterval, LastQuarterInterval, LastTenMinutesInterval, LastThirtyMinutesInterval, LastThreeHoursInterval, LastTwoHoursInterval, LastYearInterval, SelectBoxComponent, SelectEnumComponent, SelectInterpolationComponent, ThisQuarterInterval, ThisWeekInterval, ThisYearInterval, TimeIntervalValue, TimeIntervalValueBuilder, TimeIntervalsBuilder, TodayInterval, ValueAccessorBase, YesterdayInterval };
2911
3067
  //# sourceMappingURL=apipass-inputs.mjs.map