myrta-ui 17.1.10 → 17.1.11

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,238 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import { CodeEditorOptions } from "./utils/codeeditoroptions";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "ngx-monaco-editor-v2";
7
+ export class CodeEditorComponent {
8
+ _data = {};
9
+ _editor;
10
+ _debounceTimeout;
11
+ isFocused = false;
12
+ editorModel;
13
+ editorOptions;
14
+ uuid = uuidv4();
15
+ fields = [];
16
+ options = new CodeEditorOptions();
17
+ debug = false;
18
+ disabled = false;
19
+ set data(value) {
20
+ this._data = value;
21
+ if (this._editor) {
22
+ this._editor.destroy();
23
+ this.ngOnInit();
24
+ }
25
+ }
26
+ get data() {
27
+ return this._data;
28
+ }
29
+ changed = new EventEmitter();
30
+ modelChange = new EventEmitter();
31
+ jsonChange = new EventEmitter();
32
+ editorContainer;
33
+ ngOnInit() {
34
+ this._initializeEditor();
35
+ }
36
+ ngOnDestroy() {
37
+ this._destroyEditor();
38
+ this._clearDebounce();
39
+ }
40
+ onEditorInit(editor) {
41
+ this._editor = editor;
42
+ this.setDisabledState(this.disabled);
43
+ editor.onDidChangeModelContent(() => {
44
+ try {
45
+ const parsedValue = JSON.parse(editor.getValue());
46
+ this.updateValue(parsedValue);
47
+ this.jsonChange.emit(parsedValue);
48
+ }
49
+ catch (error) {
50
+ if (this.debug) {
51
+ console.log(error);
52
+ }
53
+ }
54
+ });
55
+ const debouncedUpdateHeight = this._debounce(() => this._updateEditorHeight(), 50);
56
+ editor.onDidChangeModelDecorations(() => {
57
+ debouncedUpdateHeight();
58
+ });
59
+ this._updateEditorHeight();
60
+ }
61
+ onChangeJSON = () => {
62
+ if (this._editor) {
63
+ try {
64
+ this.jsonChange.emit(this._editor.getValue());
65
+ }
66
+ catch (error) {
67
+ if (this.debug) {
68
+ console.log(error);
69
+ }
70
+ }
71
+ }
72
+ };
73
+ onChange = () => {
74
+ if (this._editor) {
75
+ try {
76
+ const json = this._editor.getValue();
77
+ this.updateValue(json);
78
+ }
79
+ catch (error) {
80
+ if (this.debug) {
81
+ console.log(error);
82
+ }
83
+ }
84
+ }
85
+ };
86
+ focus() {
87
+ this._editor?.focus();
88
+ }
89
+ get() {
90
+ return this._editor?.getValue();
91
+ }
92
+ getText() {
93
+ return this._editor?.getText();
94
+ }
95
+ set(json) {
96
+ this._editor.setValue(json);
97
+ this._updateEditorHeight();
98
+ }
99
+ setSelection(start, end) {
100
+ if (!this._editor)
101
+ return;
102
+ const monaco = window.monaco;
103
+ if (monaco) {
104
+ this._editor.setSelection(new monaco.Range(start.line, start.column, end.line, end.column));
105
+ }
106
+ }
107
+ getSelection() {
108
+ return this._editor.getSelection();
109
+ }
110
+ setOptions(newOptions) {
111
+ this._destroyEditor();
112
+ this.options = newOptions;
113
+ this._initializeEditor();
114
+ }
115
+ destroy() {
116
+ this._destroyEditor();
117
+ }
118
+ getEditor() {
119
+ return this._editor;
120
+ }
121
+ isValidJson() {
122
+ try {
123
+ JSON.parse(this.getText());
124
+ return true;
125
+ }
126
+ catch (e) {
127
+ return false;
128
+ }
129
+ }
130
+ setDisabledState(isDisabled) {
131
+ this.disabled = isDisabled;
132
+ this._editor?.updateOptions({ readOnly: isDisabled });
133
+ }
134
+ writeValue(value) {
135
+ this.data = value;
136
+ }
137
+ updateValue(insideValue) {
138
+ this.changed.emit(insideValue);
139
+ this.modelChange.emit({ value: insideValue, id: this.uuid });
140
+ this.onChangeFn(insideValue);
141
+ this.onTouchedFn();
142
+ }
143
+ registerOnChange(fn) {
144
+ this.onChangeFn = fn;
145
+ }
146
+ registerOnTouched(fn) {
147
+ this.onTouchedFn = fn;
148
+ }
149
+ _initializeEditor() {
150
+ this._updateEditorModel();
151
+ this._updateEditorOptions();
152
+ this.options.onChangeJSON = this.options.onChangeJSON || this.onChangeJSON;
153
+ this.options.onChange = this.options.onChange || this.onChange;
154
+ if (this.debug) {
155
+ console.log(this.options, this._data);
156
+ }
157
+ if (!this.editorContainer?.nativeElement) {
158
+ console.error(`Can't find the ElementRef reference for jsoneditor`);
159
+ }
160
+ }
161
+ _updateEditorModel() {
162
+ const value = typeof this._data === 'string' ? this._data : JSON.stringify(this._data, null, 2);
163
+ this.editorModel = {
164
+ value: value,
165
+ language: this.options.language,
166
+ };
167
+ }
168
+ _updateEditorOptions() {
169
+ this.editorOptions = { ...this.options };
170
+ }
171
+ _updateEditorHeight() {
172
+ if (!this._editor || !this.editorContainer)
173
+ return;
174
+ this.editorContainer.nativeElement.style.height = `${this._editor.getContentHeight()}px`;
175
+ this._editor.layout();
176
+ }
177
+ _debounce(func, wait) {
178
+ this._clearDebounce();
179
+ return (...args) => {
180
+ this._debounceTimeout = setTimeout(() => func(...args), wait);
181
+ };
182
+ }
183
+ _clearDebounce() {
184
+ if (this._debounceTimeout) {
185
+ clearTimeout(this._debounceTimeout);
186
+ this._debounceTimeout = null;
187
+ }
188
+ }
189
+ _destroyEditor() {
190
+ if (this._editor) {
191
+ this._editor.dispose();
192
+ this._editor = null;
193
+ }
194
+ }
195
+ onChangeFn = (value) => {
196
+ };
197
+ onTouchedFn = () => {
198
+ };
199
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CodeEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
200
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CodeEditorComponent, selector: "mrx-code-editor", inputs: { fields: "fields", options: "options", debug: "debug", disabled: "disabled", data: "data" }, outputs: { changed: "changed", modelChange: "modelChange", jsonChange: "jsonChange" }, providers: [
201
+ {
202
+ provide: NG_VALUE_ACCESSOR,
203
+ useExisting: forwardRef(() => CodeEditorComponent),
204
+ multi: true,
205
+ },
206
+ ], viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], ngImport: i0, template: "<div [id]=\"uuid\" #editorContainer class=\"editor-wrapper\">\r\n\t\t<ngx-monaco-editor\r\n\t\t\t\t\t\t[options]=\"editorOptions\"\r\n\t\t\t\t\t\t[model]=\"editorModel\"\r\n\t\t\t\t\t\t(onInit)=\"onEditorInit($event)\"\r\n\t\t></ngx-monaco-editor>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.editor-wrapper{width:100%;min-height:140px;height:auto}ngx-monaco-editor{height:100%!important;min-height:140px}.monaco-editor,.monaco-editor .overflow-guard{width:100%!important;height:auto!important}\n"], dependencies: [{ kind: "component", type: i1.EditorComponent, selector: "ngx-monaco-editor", inputs: ["options", "model"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
207
+ }
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CodeEditorComponent, decorators: [{
209
+ type: Component,
210
+ args: [{ selector: 'mrx-code-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
211
+ {
212
+ provide: NG_VALUE_ACCESSOR,
213
+ useExisting: forwardRef(() => CodeEditorComponent),
214
+ multi: true,
215
+ },
216
+ ], template: "<div [id]=\"uuid\" #editorContainer class=\"editor-wrapper\">\r\n\t\t<ngx-monaco-editor\r\n\t\t\t\t\t\t[options]=\"editorOptions\"\r\n\t\t\t\t\t\t[model]=\"editorModel\"\r\n\t\t\t\t\t\t(onInit)=\"onEditorInit($event)\"\r\n\t\t></ngx-monaco-editor>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.editor-wrapper{width:100%;min-height:140px;height:auto}ngx-monaco-editor{height:100%!important;min-height:140px}.monaco-editor,.monaco-editor .overflow-guard{width:100%!important;height:auto!important}\n"] }]
217
+ }], propDecorators: { fields: [{
218
+ type: Input
219
+ }], options: [{
220
+ type: Input
221
+ }], debug: [{
222
+ type: Input
223
+ }], disabled: [{
224
+ type: Input
225
+ }], data: [{
226
+ type: Input,
227
+ args: ['data']
228
+ }], changed: [{
229
+ type: Output
230
+ }], modelChange: [{
231
+ type: Output
232
+ }], jsonChange: [{
233
+ type: Output
234
+ }], editorContainer: [{
235
+ type: ViewChild,
236
+ args: ['editorContainer', { static: true }]
237
+ }] } });
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vY29kZS1lZGl0b3IvY29kZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vY29kZS1lZGl0b3IvY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQWlCOUQsTUFBTSxPQUFPLG1CQUFtQjtJQUN0QixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLE9BQU8sQ0FBTTtJQUNiLGdCQUFnQixDQUFNO0lBRXZCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsV0FBVyxDQUFrQjtJQUM3QixhQUFhLENBQXFCO0lBRWxDLElBQUksR0FBVyxNQUFNLEVBQUUsQ0FBQztJQUNmLE1BQU0sR0FBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFzQixJQUFJLGlCQUFpQixFQUFFLENBQUM7SUFDckQsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUN2QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRW5DLElBQW1CLElBQUksQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxD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dUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBWWUsTUFBTTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRWEsSUFBSTtzQkFBdEIsS0FBSzt1QkFBQyxNQUFNO2dCQVlILE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUV1QyxlQUFlO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBOZ3hFZGl0b3JNb2RlbCB9IGZyb20gJ25neC1tb25hY28tZWRpdG9yLXYyJztcclxuaW1wb3J0IHsgQ29kZUVkaXRvck9wdGlvbnMgfSBmcm9tIFwiLi91dGlscy9jb2RlZWRpdG9yb3B0aW9uc1wiO1xyXG5pbXBvcnQgeyBDb2RlRWRpdG9yVmFsdWVUeXBlcywgQ29kZUVkaXRvclZhbHVlV2l0aElkIH0gZnJvbSBcIi4vY29kZS1lZGl0b3IuZW51bVwiO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtY29kZS1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29kZS1lZGl0b3IuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvZGVFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2RhdGE6IE9iamVjdCA9IHt9O1xyXG4gIHByaXZhdGUgX2VkaXRvcjogYW55O1xyXG4gIHByaXZhdGUgX2RlYm91bmNlVGltZW91dDogYW55O1xyXG5cclxuICBwdWJsaWMgaXNGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGVkaXRvck1vZGVsITogTmd4RWRpdG9yTW9kZWw7XHJcbiAgcHVibGljIGVkaXRvck9wdGlvbnMhOiBDb2RlRWRpdG9yT3B0aW9ucztcclxuXHJcbiAgcHVibGljIHV1aWQ6IHN0cmluZyA9IHV1aWR2NCgpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuICBASW5wdXQoKSBvcHRpb25zOiBDb2RlRWRpdG9yT3B0aW9ucyA9IG5ldyBDb2RlRWRpdG9yT3B0aW9ucygpO1xyXG4gIEBJbnB1dCgpIGRlYnVnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCdkYXRhJykgc2V0IGRhdGEodmFsdWU6IE9iamVjdCkge1xyXG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xyXG4gICAgICB0aGlzLl9lZGl0b3IuZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZGF0YSgpOiBPYmplY3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlZDogRXZlbnRFbWl0dGVyPENvZGVFZGl0b3JWYWx1ZVR5cGVzPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29kZUVkaXRvclZhbHVlVHlwZXM+KCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q29kZUVkaXRvclZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29kZUVkaXRvclZhbHVlV2l0aElkPigpO1xyXG4gIEBPdXRwdXQoKSBqc29uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7c3RhdGljOiB0cnVlfSkgZWRpdG9yQ29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0aWFsaXplRWRpdG9yKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3lFZGl0b3IoKTtcclxuICAgIHRoaXMuX2NsZWFyRGVib3VuY2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkVkaXRvckluaXQoZWRpdG9yOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VkaXRvciA9IGVkaXRvcjtcclxuICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSh0aGlzLmRpc2FibGVkKTtcclxuXHJcbiAgICBlZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKCkgPT4ge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gSlNPTi5wYXJzZShlZGl0b3IuZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShwYXJzZWRWYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5qc29uQ2hhbmdlLmVtaXQocGFyc2VkVmFsdWUpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBkZWJvdW5jZWRVcGRhdGVIZWlnaHQgPSB0aGlzLl9kZWJvdW5jZSgoKSA9PiB0aGlzLl91cGRhdGVFZGl0b3JIZWlnaHQoKSwgNTApO1xyXG4gICAgZWRpdG9yLm9uRGlkQ2hhbmdlTW9kZWxEZWNvcmF0aW9ucygoKSA9PiB7XHJcbiAgICAgIGRlYm91bmNlZFVwZGF0ZUhlaWdodCgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlRWRpdG9ySGVpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VKU09OID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMuanNvbkNoYW5nZS5lbWl0KHRoaXMuX2VkaXRvci5nZXRWYWx1ZSgpKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZSA9ICgpOiB2b2lkID0+IHtcclxuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBqc29uID0gdGhpcy5fZWRpdG9yLmdldFZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShqc29uKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VkaXRvcj8uZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoKTogSlNPTiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZWRpdG9yPy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9lZGl0b3I/LmdldFRleHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQoanNvbjogSlNPTik6IHZvaWQge1xyXG4gICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKGpzb24pO1xyXG4gICAgdGhpcy5fdXBkYXRlRWRpdG9ySGVpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0U2VsZWN0aW9uKHN0YXJ0OiBhbnksIGVuZDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2VkaXRvcikgcmV0dXJuO1xyXG4gICAgY29uc3QgbW9uYWNvID0gKHdpbmRvdyBhcyBhbnkpLm1vbmFjbztcclxuICAgIGlmIChtb25hY28pIHtcclxuICAgICAgdGhpcy5fZWRpdG9yLnNldFNlbGVjdGlvbihuZXcgbW9uYWNvLlJhbmdlKHN0YXJ0LmxpbmUsIHN0YXJ0LmNvbHVtbiwgZW5kLmxpbmUsIGVuZC5jb2x1bW4pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3Rpb24oKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9lZGl0b3IuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0T3B0aW9ucyhuZXdPcHRpb25zOiBDb2RlRWRpdG9yT3B0aW9ucyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveUVkaXRvcigpO1xyXG4gICAgdGhpcy5vcHRpb25zID0gbmV3T3B0aW9ucztcclxuICAgIHRoaXMuX2luaXRpYWxpemVFZGl0b3IoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveUVkaXRvcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVkaXRvcigpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1ZhbGlkSnNvbigpOiBib29sZWFuIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIEpTT04ucGFyc2UodGhpcy5nZXRUZXh0KCkpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB0aGlzLl9lZGl0b3I/LnVwZGF0ZU9wdGlvbnMoe3JlYWRPbmx5OiBpc0Rpc2FibGVkfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGEgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShpbnNpZGVWYWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBpbnNpZGVWYWx1ZSwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZUZuKGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0aWFsaXplRWRpdG9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdXBkYXRlRWRpdG9yTW9kZWwoKTtcclxuICAgIHRoaXMuX3VwZGF0ZUVkaXRvck9wdGlvbnMoKTtcclxuXHJcbiAgICB0aGlzLm9wdGlvbnMub25DaGFuZ2VKU09OID0gdGhpcy5vcHRpb25zLm9uQ2hhbmdlSlNPTiB8fCB0aGlzLm9uQ2hhbmdlSlNPTjtcclxuICAgIHRoaXMub3B0aW9ucy5vbkNoYW5nZSA9IHRoaXMub3B0aW9ucy5vbkNoYW5nZSB8fCB0aGlzLm9uQ2hhbmdlO1xyXG5cclxuICAgIGlmICh0aGlzLmRlYnVnKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMub3B0aW9ucywgdGhpcy5fZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmVkaXRvckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBDYW4ndCBmaW5kIHRoZSBFbGVtZW50UmVmIHJlZmVyZW5jZSBmb3IganNvbmVkaXRvcmApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlRWRpdG9yTW9kZWwoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiB0aGlzLl9kYXRhID09PSAnc3RyaW5nJyA/IHRoaXMuX2RhdGEgOiBKU09OLnN0cmluZ2lmeSh0aGlzLl9kYXRhLCBudWxsLCAyKTtcclxuICAgIHRoaXMuZWRpdG9yTW9kZWwgPSB7XHJcbiAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgbGFuZ3VhZ2U6IHRoaXMub3B0aW9ucy5sYW5ndWFnZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVFZGl0b3JPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0b3JPcHRpb25zID0gey4uLnRoaXMub3B0aW9uc307XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVFZGl0b3JIZWlnaHQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2VkaXRvciB8fCAhdGhpcy5lZGl0b3JDb250YWluZXIpIHJldHVybjtcclxuICAgIHRoaXMuZWRpdG9yQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5fZWRpdG9yLmdldENvbnRlbnRIZWlnaHQoKX1weGA7XHJcbiAgICB0aGlzLl9lZGl0b3IubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZWJvdW5jZShmdW5jOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsIHdhaXQ6IG51bWJlcik6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCB7XHJcbiAgICB0aGlzLl9jbGVhckRlYm91bmNlKCk7XHJcbiAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuX2RlYm91bmNlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gZnVuYyguLi5hcmdzKSwgd2FpdCk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2xlYXJEZWJvdW5jZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9kZWJvdW5jZVRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2RlYm91bmNlVGltZW91dCk7XHJcbiAgICAgIHRoaXMuX2RlYm91bmNlVGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZXN0cm95RWRpdG9yKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xyXG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xyXG4gICAgICB0aGlzLl9lZGl0b3IgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZUZuID0gKHZhbHVlOiBhbnkpOiB2b2lkID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkRm4gPSAoKTogdm9pZCA9PiB7XHJcbiAgfTtcclxufSIsIjxkaXYgW2lkXT1cInV1aWRcIiAjZWRpdG9yQ29udGFpbmVyIGNsYXNzPVwiZWRpdG9yLXdyYXBwZXJcIj5cclxuXHRcdDxuZ3gtbW9uYWNvLWVkaXRvclxyXG5cdFx0XHRcdFx0XHRbb3B0aW9uc109XCJlZGl0b3JPcHRpb25zXCJcclxuXHRcdFx0XHRcdFx0W21vZGVsXT1cImVkaXRvck1vZGVsXCJcclxuXHRcdFx0XHRcdFx0KG9uSW5pdCk9XCJvbkVkaXRvckluaXQoJGV2ZW50KVwiXHJcblx0XHQ+PC9uZ3gtbW9uYWNvLWVkaXRvcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2NvZGUtZWRpdG9yL2NvZGUtZWRpdG9yLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIENvZGVFZGl0b3JWYWx1ZVR5cGVzID0gYW55O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2RlRWRpdG9yVmFsdWVXaXRoSWQge1xyXG4gIHZhbHVlOiBDb2RlRWRpdG9yVmFsdWVUeXBlcztcclxuICBpZDogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CodeEditorComponent } from "./code-editor.component";
4
+ import { FormsModule } from "@angular/forms";
5
+ import { MonacoEditorModule } from 'ngx-monaco-editor-v2';
6
+ import * as i0 from "@angular/core";
7
+ export class CodeEditorModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CodeEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: CodeEditorModule, declarations: [CodeEditorComponent], imports: [CommonModule,
10
+ FormsModule,
11
+ MonacoEditorModule], exports: [CodeEditorComponent] });
12
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CodeEditorModule, imports: [CommonModule,
13
+ FormsModule,
14
+ MonacoEditorModule] });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CodeEditorModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [CodeEditorComponent],
20
+ imports: [
21
+ CommonModule,
22
+ FormsModule,
23
+ MonacoEditorModule
24
+ ],
25
+ exports: [CodeEditorComponent]
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vY29kZS1lZGl0b3IvY29kZS1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFXMUQsTUFBTSxPQUFPLGdCQUFnQjt3R0FBaEIsZ0JBQWdCO3lHQUFoQixnQkFBZ0IsaUJBUlosbUJBQW1CLGFBRWhDLFlBQVk7WUFDWixXQUFXO1lBQ1gsa0JBQWtCLGFBRVYsbUJBQW1CO3lHQUVsQixnQkFBZ0IsWUFOekIsWUFBWTtZQUNaLFdBQVc7WUFDWCxrQkFBa0I7OzRGQUlULGdCQUFnQjtrQkFUNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvZGVFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb2RlLWVkaXRvci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTW9uYWNvRWRpdG9yTW9kdWxlIH0gZnJvbSAnbmd4LW1vbmFjby1lZGl0b3ItdjInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtDb2RlRWRpdG9yQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1vbmFjb0VkaXRvck1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0NvZGVFZGl0b3JDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2RlRWRpdG9yTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -0,0 +1,65 @@
1
+ export class CodeEditorOptions {
2
+ theme;
3
+ language;
4
+ automaticLayout;
5
+ minimap;
6
+ lineNumbers;
7
+ readOnly;
8
+ fontSize;
9
+ wordWrap;
10
+ folding;
11
+ renderWhitespace;
12
+ tabSize;
13
+ formatOnPaste;
14
+ formatOnType;
15
+ suggest;
16
+ scrollBeyondLastLine;
17
+ foldingHighlight;
18
+ foldingStrategy;
19
+ _enableSchemaValidation;
20
+ validateJson;
21
+ setSchemaValidation;
22
+ onChange;
23
+ onChangeJSON;
24
+ onError;
25
+ onValidate;
26
+ onInit;
27
+ constructor() {
28
+ this.theme = 'vs-light';
29
+ this.language = 'json';
30
+ this.automaticLayout = true;
31
+ this.minimap = { enabled: true };
32
+ this.lineNumbers = 'on';
33
+ this.readOnly = false;
34
+ this.fontSize = 14;
35
+ this.wordWrap = 'off';
36
+ this.folding = true;
37
+ this.renderWhitespace = 'none';
38
+ this.tabSize = 2;
39
+ this.scrollBeyondLastLine = false;
40
+ this.foldingHighlight = true;
41
+ this.foldingStrategy = 'auto';
42
+ this.formatOnPaste = true;
43
+ this.formatOnType = true;
44
+ this.suggest = {
45
+ showWords: true,
46
+ showSnippets: false,
47
+ };
48
+ this._enableSchemaValidation = true;
49
+ this.validateJson = true;
50
+ this.setSchemaValidation = (enabled) => {
51
+ this._enableSchemaValidation = enabled;
52
+ };
53
+ this.onChange = () => {
54
+ };
55
+ this.onChangeJSON = () => {
56
+ };
57
+ this.onError = () => {
58
+ };
59
+ this.onValidate = () => {
60
+ };
61
+ this.onInit = () => {
62
+ };
63
+ }
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWVkaXRvcm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9jb2RlLWVkaXRvci91dGlscy9jb2RlZWRpdG9yb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1QkEsTUFBTSxPQUFPLGlCQUFpQjtJQUNyQixLQUFLLENBQVU7SUFDZixRQUFRLENBQVU7SUFDbEIsZUFBZSxDQUFXO0lBQzFCLE9BQU8sQ0FBd0I7SUFDL0IsV0FBVyxDQUE2QjtJQUN4QyxRQUFRLENBQVc7SUFDbkIsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsQ0FBK0M7SUFDdkQsT0FBTyxDQUFXO0lBQ2xCLGdCQUFnQixDQUE2QztJQUM3RCxPQUFPLENBQVU7SUFDakIsYUFBYSxDQUFXO0lBQ3hCLFlBQVksQ0FBVztJQUN2QixPQUFPLENBQWtEO0lBQ3pELG9CQUFvQixDQUFXO0lBQy9CLGdCQUFnQixDQUFXO0lBQzNCLGVBQWUsQ0FBVTtJQUN6Qix1QkFBdUIsQ0FBVztJQUNsQyxZQUFZLENBQVc7SUFFdkIsbUJBQW1CLENBQThCO0lBQ2pELFFBQVEsQ0FBNkI7SUFDckMsWUFBWSxDQUF1QjtJQUNuQyxPQUFPLENBQXNDO0lBQzdDLFVBQVUsQ0FBeUM7SUFDbkQsTUFBTSxDQUFnQztJQUU3QztRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQUNGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxPQUFPLENBQUM7UUFDekMsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUU7UUFDckIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUU7UUFDekIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7UUFDcEIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7UUFDdkIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7UUFDbkIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29kZUVkaXRvck1vZGUgPSAnY29kZScgfCAndGV4dCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvZGVFZGl0b3JFcnJvciB7XHJcbiAgcGF0aDogKHN0cmluZyB8IG51bWJlcilbXTtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgc2V2ZXJpdHk/OiAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2luZm8nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvZGVFZGl0b3JNYXJrZXIge1xyXG4gIHN0YXJ0TGluZU51bWJlcjogbnVtYmVyO1xyXG4gIHN0YXJ0Q29sdW1uOiBudW1iZXI7XHJcbiAgZW5kTGluZU51bWJlcjogbnVtYmVyO1xyXG4gIGVuZENvbHVtbjogbnVtYmVyO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBzZXZlcml0eTogJ0Vycm9yJyB8ICdXYXJuaW5nJyB8ICdJbmZvJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2RlRWRpdG9yIHtcclxuICBnZXRWYWx1ZSgpOiBzdHJpbmc7XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvck9wdGlvbnMge1xyXG4gIHB1YmxpYyB0aGVtZT86IHN0cmluZztcclxuICBwdWJsaWMgbGFuZ3VhZ2U/OiBzdHJpbmc7XHJcbiAgcHVibGljIGF1dG9tYXRpY0xheW91dD86IGJvb2xlYW47XHJcbiAgcHVibGljIG1pbmltYXA/OiB7IGVuYWJsZWQ6IGJvb2xlYW4gfTtcclxuICBwdWJsaWMgbGluZU51bWJlcnM/OiAnb24nIHwgJ29mZicgfCAncmVsYXRpdmUnO1xyXG4gIHB1YmxpYyByZWFkT25seT86IGJvb2xlYW47XHJcbiAgcHVibGljIGZvbnRTaXplPzogbnVtYmVyO1xyXG4gIHB1YmxpYyB3b3JkV3JhcD86ICdvbicgfCAnb2ZmJyB8ICd3b3JkV3JhcENvbHVtbicgfCAnYm91bmRlZCc7XHJcbiAgcHVibGljIGZvbGRpbmc/OiBib29sZWFuO1xyXG4gIHB1YmxpYyByZW5kZXJXaGl0ZXNwYWNlPzogJ25vbmUnIHwgJ2JvdW5kYXJ5JyB8ICdzZWxlY3Rpb24nIHwgJ2FsbCc7XHJcbiAgcHVibGljIHRhYlNpemU/OiBudW1iZXI7XHJcbiAgcHVibGljIGZvcm1hdE9uUGFzdGU/OiBib29sZWFuO1xyXG4gIHB1YmxpYyBmb3JtYXRPblR5cGU/OiBib29sZWFuO1xyXG4gIHB1YmxpYyBzdWdnZXN0PzogeyBzaG93V29yZHM6IGJvb2xlYW47IHNob3dTbmlwcGV0czogYm9vbGVhbjsgfTtcclxuICBwdWJsaWMgc2Nyb2xsQmV5b25kTGFzdExpbmU/OiBib29sZWFuO1xyXG4gIHB1YmxpYyBmb2xkaW5nSGlnaGxpZ2h0PzogYm9vbGVhbjtcclxuICBwdWJsaWMgZm9sZGluZ1N0cmF0ZWd5Pzogc3RyaW5nO1xyXG4gIHB1YmxpYyBfZW5hYmxlU2NoZW1hVmFsaWRhdGlvbj86IGJvb2xlYW47XHJcbiAgcHVibGljIHZhbGlkYXRlSnNvbj86IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBzZXRTY2hlbWFWYWxpZGF0aW9uPzogKGVuYWJsZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XHJcbiAgcHVibGljIG9uQ2hhbmdlITogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZDtcclxuICBwdWJsaWMgb25DaGFuZ2VKU09OPzogKGpzb246IGFueSkgPT4gdm9pZDtcclxuICBwdWJsaWMgb25FcnJvciE6IChlcnJvcjogQ29kZUVkaXRvckVycm9yW10pID0+IHZvaWQ7XHJcbiAgcHVibGljIG9uVmFsaWRhdGUhOiAobWFya2VyczogQ29kZUVkaXRvck1hcmtlcltdKSA9PiB2b2lkO1xyXG4gIHB1YmxpYyBvbkluaXQhOiAoZWRpdG9yOiBDb2RlRWRpdG9yKSA9PiB2b2lkO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMudGhlbWUgPSAndnMtbGlnaHQnO1xyXG4gICAgdGhpcy5sYW5ndWFnZSA9ICdqc29uJztcclxuICAgIHRoaXMuYXV0b21hdGljTGF5b3V0ID0gdHJ1ZTtcclxuICAgIHRoaXMubWluaW1hcCA9IHtlbmFibGVkOiB0cnVlfTtcclxuICAgIHRoaXMubGluZU51bWJlcnMgPSAnb24nO1xyXG4gICAgdGhpcy5yZWFkT25seSA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb250U2l6ZSA9IDE0O1xyXG4gICAgdGhpcy53b3JkV3JhcCA9ICdvZmYnO1xyXG4gICAgdGhpcy5mb2xkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVuZGVyV2hpdGVzcGFjZSA9ICdub25lJztcclxuICAgIHRoaXMudGFiU2l6ZSA9IDI7XHJcbiAgICB0aGlzLnNjcm9sbEJleW9uZExhc3RMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvbGRpbmdIaWdobGlnaHQgPSB0cnVlO1xyXG4gICAgdGhpcy5mb2xkaW5nU3RyYXRlZ3kgPSAnYXV0byc7XHJcbiAgICB0aGlzLmZvcm1hdE9uUGFzdGUgPSB0cnVlO1xyXG4gICAgdGhpcy5mb3JtYXRPblR5cGUgPSB0cnVlO1xyXG4gICAgdGhpcy5zdWdnZXN0ID0ge1xyXG4gICAgICBzaG93V29yZHM6IHRydWUsXHJcbiAgICAgIHNob3dTbmlwcGV0czogZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fZW5hYmxlU2NoZW1hVmFsaWRhdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnZhbGlkYXRlSnNvbiA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5zZXRTY2hlbWFWYWxpZGF0aW9uID0gKGVuYWJsZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgdGhpcy5fZW5hYmxlU2NoZW1hVmFsaWRhdGlvbiA9IGVuYWJsZWQ7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgIH07XHJcbiAgICB0aGlzLm9uQ2hhbmdlSlNPTiA9ICgpID0+IHtcclxuICAgIH07XHJcbiAgICB0aGlzLm9uRXJyb3IgPSAoKSA9PiB7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5vblZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgfTtcclxuICAgIHRoaXMub25Jbml0ID0gKCkgPT4ge1xyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
@@ -59,14 +59,13 @@ export class ModalComponent {
59
59
  this.isEmbed = !this.isEmbed;
60
60
  }
61
61
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ModalComponent, selector: "mrx-modal", inputs: { title: "title", message: "message", alert: "alert", okText: "okText", closeText: "closeText", size: "size", color: "color", customClasses: "customClasses", expandable: "expandable", isEmbed: "isEmbed", isClose: "isClose", isBack: "isBack", backText: "backText", enableFooter: "enableFooter", alignButtons: "alignButtons", isLoading: "isLoading", iconPosition: "iconPosition" }, outputs: { ok: "ok", close: "close", back: "back" }, queries: [{ propertyName: "footerContent", first: true, predicate: ["footerContent"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-modal-content\" [class]=\"getClasses\" [@animateExpand]=\"isEmbed ? 'open' : 'closed'\">\r\n <div class=\"mrx-modal-header\">\r\n <div class=\"mrx-modal-title\" [innerHTML]=\"title\" [style]=\"{padding: expandable ? '0 56px' : '0 24px'}\"></div>\r\n\r\n @if (expandable) {\r\n <span\r\n class=\"mrx-icon icon-font-24\"\r\n [class]=\"isEmbed ? 'icon-arrow-collapse' : 'icon-arrow-expand'\"\r\n (click)=\"onExpanding()\"\r\n ></span>\r\n }\r\n\r\n @if (isClose) {\r\n <span class=\"mrx-icon icon-close icon-font-24\" (click)=\"onClose()\"></span>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-modal-body\">\r\n @if (isBack) {\r\n <div class=\"mrx-modal__back d-flex align-items-center mb-3 mt-2\" (click)=\"onBack()\">\r\n <span class=\"mrx-icon icon-arrow-left icon-font-16 mr-1\"></span>\r\n <span>{{ backText }}</span>\r\n </div>\r\n }\r\n\r\n @if (alert && (alert.title || alert.message)) {\r\n <mrx-alert\r\n [customClasses]=\"'mb-3'\"\r\n [title]=\"alert.title || ''\"\r\n [message]=\"alert.message || ''\"\r\n [color]=\"alert.color || 'default'\"\r\n ></mrx-alert>\r\n }\r\n\r\n <div class=\"mrx-modal-body__message\" [innerHTML]=\"message\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n @if (enableFooter) {\r\n <div class=\"mrx-modal-footer\" [class]=\"alignButtonsClass\">\r\n @if (!footerContent) {\r\n <mrx-button\r\n [type]=\"'secondary'\"\r\n [color]=\"getButtonColor\"\r\n [size]=\"'medium'\"\r\n (click)=\"onClose()\"\r\n >{{closeText}}</mrx-button>\r\n\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n [color]=\"getButtonColor\"\r\n [iconPosition]=\"iconPosition\"\r\n [isLoading]=\"isLoading\"\r\n (click)=\"onOk()\"\r\n >{{okText}}</mrx-button>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["::ng-deep .mrx-modal{overflow-y:auto}::ng-deep .mrx-modal>*{display:flex;align-items:center;justify-content:center;height:100%;width:100%}:host{margin:auto 0;width:100vw}.mrx-modal-content{margin:24px auto;background-color:#fff;border-radius:4px;position:relative;transition:opacity .5s ease-out;width:calc(100vw - 32px);will-change:opacity;display:flex;flex-direction:column;text-align:left}::ng-deep .mrx-modal-backdrop.cdk-overlay-backdrop{height:100%;inset:0;overflow-x:hidden;overflow-y:auto;padding:0 16px;position:absolute;text-align:center;z-index:1000;display:block}::ng-deep .mrx-modal-backdrop.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{background-color:var(--neutral-bg-modal)}::ng-deep .mrx-modal.fade-anim{transition:opacity .4s ease-in-out;will-change:opacity;opacity:0}::ng-deep .mrx-modal.fade-anim.in{opacity:1}.mrx-modal-body{padding:var(--spacing-6, 24px) var(--spacing-4, 16px) var(--spacing-4, 16px);flex-grow:1}.mrx-modal-body .mrx-modal__back{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-modal-body__message{color:var(--neutral-text-primary);font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-modal-content.type-default .mrx-modal-header{background:var(--brand-bg-primary-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-default .mrx-modal-header .icon-close,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content.type-info .mrx-modal-header{background:var(--neutral-bg-island-default);color:var(--neutral-text-primary)}.mrx-modal-content.type-info .mrx-modal-header .icon-close,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-default)}.mrx-modal-content.type-attention .mrx-modal-header{background:var(--system-bg-controls-attention-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-attention .mrx-modal-header .icon-close,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content.type-negative .mrx-modal-header{background:var(--system-bg-controls-negative-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-negative .mrx-modal-header .icon-close,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content .mrx-modal__back{cursor:pointer;color:var(--brand-text-controls-default)}.mrx-modal-content .mrx-modal__back .mrx-icon{color:var(--brand-text-controls-default)}.mrx-modal-content .mrx-modal__back:hover,.mrx-modal-content .mrx-modal__back:hover .mrx-icon{color:var(--brand-text-controls-hover)}.mrx-modal-footer{align-items:center;display:flex;gap:var(--spacing-4);padding:var(--spacing-6);padding-top:0}.mrx-modal-header{padding:16px;position:relative;border-top-left-radius:4px;border-top-right-radius:4px}.mrx-modal-header .mrx-modal-title{font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size);text-align:center;text-transform:uppercase}.mrx-modal-header .icon-arrow-expand,.mrx-modal-header .icon-arrow-collapse{position:absolute;top:16px;right:48px;cursor:pointer}.mrx-modal-header .icon-arrow-expand:hover,.mrx-modal-header .icon-arrow-collapse:hover{transform:scale(1.1)}.mrx-modal-header .icon-close{position:absolute;top:16px;right:16px;cursor:pointer}.mrx-modal-header .icon-close:hover{transform:scale(1.1)}.mrx-modal-content.mrx-modal-sm{max-width:440px}.mrx-modal-content.mrx-modal-md{max-width:670px}.mrx-modal-content.mrx-modal-lg{max-width:904px}.mrx-modal-content.mrx-modal-extra-lg{max-width:1024px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i3.AlertComponent, selector: "mrx-alert", inputs: ["customClasses", "color", "customColor", "message", "title", "closable"], outputs: ["close"] }], animations: [
62
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ModalComponent, selector: "mrx-modal", inputs: { title: "title", message: "message", alert: "alert", okText: "okText", closeText: "closeText", size: "size", color: "color", customClasses: "customClasses", expandable: "expandable", isEmbed: "isEmbed", isClose: "isClose", isBack: "isBack", backText: "backText", enableFooter: "enableFooter", alignButtons: "alignButtons", isLoading: "isLoading", iconPosition: "iconPosition" }, outputs: { ok: "ok", close: "close", back: "back" }, queries: [{ propertyName: "footerContent", first: true, predicate: ["footerContent"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-modal-content\" [class]=\"getClasses\" [@animateExpand]=\"isEmbed ? 'open' : 'closed'\">\r\n <div class=\"mrx-modal-header\">\r\n <div class=\"mrx-modal-title\" [innerHTML]=\"title\" [style]=\"{padding: expandable ? '0 56px' : '0 24px'}\"></div>\r\n\r\n @if (expandable) {\r\n <span\r\n class=\"mrx-icon icon-font-24\"\r\n [class]=\"isEmbed ? 'icon-arrow-collapse' : 'icon-arrow-expand'\"\r\n (click)=\"onExpanding()\"\r\n ></span>\r\n }\r\n\r\n @if (isClose) {\r\n <span class=\"mrx-icon icon-close icon-font-24\" (click)=\"onClose()\"></span>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-modal-body\">\r\n @if (isBack) {\r\n <div class=\"mrx-modal__back d-flex align-items-center mb-3 mt-2\" (click)=\"onBack()\">\r\n <span class=\"mrx-icon icon-arrow-left icon-font-16 mr-1\"></span>\r\n <span>{{ backText }}</span>\r\n </div>\r\n }\r\n\r\n @if (alert && (alert.title || alert.message)) {\r\n <mrx-alert\r\n [customClasses]=\"'mb-3'\"\r\n [title]=\"alert.title || ''\"\r\n [message]=\"alert.message || ''\"\r\n [color]=\"alert.color || 'default'\"\r\n ></mrx-alert>\r\n }\r\n\r\n <div class=\"mrx-modal-body__message\" [innerHTML]=\"message\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n @if (enableFooter) {\r\n <div class=\"mrx-modal-footer\" [class]=\"alignButtonsClass\">\r\n @if (!footerContent) {\r\n <mrx-button\r\n [type]=\"'secondary'\"\r\n [color]=\"getButtonColor\"\r\n [size]=\"'medium'\"\r\n (click)=\"onClose()\"\r\n >{{closeText}}</mrx-button>\r\n\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n [color]=\"getButtonColor\"\r\n [iconPosition]=\"iconPosition\"\r\n [isLoading]=\"isLoading\"\r\n (click)=\"onOk()\"\r\n >{{okText}}</mrx-button>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["::ng-deep .mrx-modal>*{display:flex;align-items:center;justify-content:center;height:100%;width:100%}:host{margin:auto 0;width:100vw}.mrx-modal-content{margin:24px auto;background-color:#fff;border-radius:4px;position:relative;transition:opacity .5s ease-out;width:calc(100vw - 32px);max-height:calc(100vh - 48px);will-change:opacity;display:flex;flex-direction:column;text-align:left;overflow:hidden}::ng-deep .mrx-modal-backdrop.cdk-overlay-backdrop{height:100%;inset:0;overflow-x:hidden;overflow-y:auto;padding:0 16px;position:absolute;text-align:center;z-index:1000;display:block}::ng-deep .mrx-modal-backdrop.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{background-color:var(--neutral-bg-modal)}::ng-deep .mrx-modal.fade-anim{transition:opacity .4s ease-in-out;will-change:opacity;opacity:0}::ng-deep .mrx-modal.fade-anim.in{opacity:1}.mrx-modal-body{padding:var(--spacing-6, 24px) var(--spacing-4, 16px) var(--spacing-4, 16px);flex-grow:1;overflow-y:auto;border-bottom:1px solid var(--neutral-bg-divider);margin-bottom:var(--spacing-4, 16px)}.mrx-modal-body .mrx-modal__back{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-modal-body__message{color:var(--neutral-text-primary);font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-modal-content.type-default .mrx-modal-header{background:var(--brand-bg-primary-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-default .mrx-modal-header .icon-close,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content.type-info .mrx-modal-header{background:var(--neutral-bg-island-default);color:var(--neutral-text-primary)}.mrx-modal-content.type-info .mrx-modal-header .icon-close,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-default)}.mrx-modal-content.type-attention .mrx-modal-header{background:var(--system-bg-controls-attention-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-attention .mrx-modal-header .icon-close,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content.type-negative .mrx-modal-header{background:var(--system-bg-controls-negative-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-negative .mrx-modal-header .icon-close,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content .mrx-modal__back{cursor:pointer;color:var(--brand-text-controls-default)}.mrx-modal-content .mrx-modal__back .mrx-icon{color:var(--brand-text-controls-default)}.mrx-modal-content .mrx-modal__back:hover,.mrx-modal-content .mrx-modal__back:hover .mrx-icon{color:var(--brand-text-controls-hover)}.mrx-modal-footer{align-items:center;display:flex;gap:var(--spacing-4);padding:var(--spacing-6);padding-top:0}.mrx-modal-header{padding:16px;position:relative;border-top-left-radius:4px;border-top-right-radius:4px}.mrx-modal-header .mrx-modal-title{font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size);text-align:center;text-transform:uppercase}.mrx-modal-header .icon-arrow-expand,.mrx-modal-header .icon-arrow-collapse{position:absolute;top:16px;right:48px;cursor:pointer}.mrx-modal-header .icon-arrow-expand:hover,.mrx-modal-header .icon-arrow-collapse:hover{transform:scale(1.1)}.mrx-modal-header .icon-close{position:absolute;top:16px;right:16px;cursor:pointer}.mrx-modal-header .icon-close:hover{transform:scale(1.1)}.mrx-modal-content.mrx-modal-sm{max-width:440px}.mrx-modal-content.mrx-modal-md{max-width:670px}.mrx-modal-content.mrx-modal-lg{max-width:904px}.mrx-modal-content.mrx-modal-extra-lg{max-width:1024px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i3.AlertComponent, selector: "mrx-alert", inputs: ["customClasses", "color", "customColor", "message", "title", "closable"], outputs: ["close"] }], animations: [
63
63
  trigger('animateExpand', [
64
64
  state('open', style({
65
- height: '100%',
65
+ height: '100vh',
66
66
  width: '100%',
67
67
  maxWidth: 'none',
68
68
  minHeight: '100vh',
69
- minWidth: '100vw',
70
69
  marginTop: '0',
71
70
  marginBottom: '0'
72
71
  })),
@@ -81,11 +80,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
81
80
  args: [{ selector: 'mrx-modal', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
82
81
  trigger('animateExpand', [
83
82
  state('open', style({
84
- height: '100%',
83
+ height: '100vh',
85
84
  width: '100%',
86
85
  maxWidth: 'none',
87
86
  minHeight: '100vh',
88
- minWidth: '100vw',
89
87
  marginTop: '0',
90
88
  marginBottom: '0'
91
89
  })),
@@ -93,7 +91,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
93
91
  transition('open => closed', [animate('0.5s ease')]),
94
92
  transition('closed => open', [animate('0.5s ease')]),
95
93
  ]),
96
- ], template: "<div class=\"mrx-modal-content\" [class]=\"getClasses\" [@animateExpand]=\"isEmbed ? 'open' : 'closed'\">\r\n <div class=\"mrx-modal-header\">\r\n <div class=\"mrx-modal-title\" [innerHTML]=\"title\" [style]=\"{padding: expandable ? '0 56px' : '0 24px'}\"></div>\r\n\r\n @if (expandable) {\r\n <span\r\n class=\"mrx-icon icon-font-24\"\r\n [class]=\"isEmbed ? 'icon-arrow-collapse' : 'icon-arrow-expand'\"\r\n (click)=\"onExpanding()\"\r\n ></span>\r\n }\r\n\r\n @if (isClose) {\r\n <span class=\"mrx-icon icon-close icon-font-24\" (click)=\"onClose()\"></span>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-modal-body\">\r\n @if (isBack) {\r\n <div class=\"mrx-modal__back d-flex align-items-center mb-3 mt-2\" (click)=\"onBack()\">\r\n <span class=\"mrx-icon icon-arrow-left icon-font-16 mr-1\"></span>\r\n <span>{{ backText }}</span>\r\n </div>\r\n }\r\n\r\n @if (alert && (alert.title || alert.message)) {\r\n <mrx-alert\r\n [customClasses]=\"'mb-3'\"\r\n [title]=\"alert.title || ''\"\r\n [message]=\"alert.message || ''\"\r\n [color]=\"alert.color || 'default'\"\r\n ></mrx-alert>\r\n }\r\n\r\n <div class=\"mrx-modal-body__message\" [innerHTML]=\"message\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n @if (enableFooter) {\r\n <div class=\"mrx-modal-footer\" [class]=\"alignButtonsClass\">\r\n @if (!footerContent) {\r\n <mrx-button\r\n [type]=\"'secondary'\"\r\n [color]=\"getButtonColor\"\r\n [size]=\"'medium'\"\r\n (click)=\"onClose()\"\r\n >{{closeText}}</mrx-button>\r\n\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n [color]=\"getButtonColor\"\r\n [iconPosition]=\"iconPosition\"\r\n [isLoading]=\"isLoading\"\r\n (click)=\"onOk()\"\r\n >{{okText}}</mrx-button>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["::ng-deep .mrx-modal{overflow-y:auto}::ng-deep .mrx-modal>*{display:flex;align-items:center;justify-content:center;height:100%;width:100%}:host{margin:auto 0;width:100vw}.mrx-modal-content{margin:24px auto;background-color:#fff;border-radius:4px;position:relative;transition:opacity .5s ease-out;width:calc(100vw - 32px);will-change:opacity;display:flex;flex-direction:column;text-align:left}::ng-deep .mrx-modal-backdrop.cdk-overlay-backdrop{height:100%;inset:0;overflow-x:hidden;overflow-y:auto;padding:0 16px;position:absolute;text-align:center;z-index:1000;display:block}::ng-deep .mrx-modal-backdrop.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{background-color:var(--neutral-bg-modal)}::ng-deep .mrx-modal.fade-anim{transition:opacity .4s ease-in-out;will-change:opacity;opacity:0}::ng-deep .mrx-modal.fade-anim.in{opacity:1}.mrx-modal-body{padding:var(--spacing-6, 24px) var(--spacing-4, 16px) var(--spacing-4, 16px);flex-grow:1}.mrx-modal-body .mrx-modal__back{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-modal-body__message{color:var(--neutral-text-primary);font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-modal-content.type-default .mrx-modal-header{background:var(--brand-bg-primary-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-default .mrx-modal-header .icon-close,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content.type-info .mrx-modal-header{background:var(--neutral-bg-island-default);color:var(--neutral-text-primary)}.mrx-modal-content.type-info .mrx-modal-header .icon-close,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-default)}.mrx-modal-content.type-attention .mrx-modal-header{background:var(--system-bg-controls-attention-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-attention .mrx-modal-header .icon-close,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content.type-negative .mrx-modal-header{background:var(--system-bg-controls-negative-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-negative .mrx-modal-header .icon-close,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content .mrx-modal__back{cursor:pointer;color:var(--brand-text-controls-default)}.mrx-modal-content .mrx-modal__back .mrx-icon{color:var(--brand-text-controls-default)}.mrx-modal-content .mrx-modal__back:hover,.mrx-modal-content .mrx-modal__back:hover .mrx-icon{color:var(--brand-text-controls-hover)}.mrx-modal-footer{align-items:center;display:flex;gap:var(--spacing-4);padding:var(--spacing-6);padding-top:0}.mrx-modal-header{padding:16px;position:relative;border-top-left-radius:4px;border-top-right-radius:4px}.mrx-modal-header .mrx-modal-title{font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size);text-align:center;text-transform:uppercase}.mrx-modal-header .icon-arrow-expand,.mrx-modal-header .icon-arrow-collapse{position:absolute;top:16px;right:48px;cursor:pointer}.mrx-modal-header .icon-arrow-expand:hover,.mrx-modal-header .icon-arrow-collapse:hover{transform:scale(1.1)}.mrx-modal-header .icon-close{position:absolute;top:16px;right:16px;cursor:pointer}.mrx-modal-header .icon-close:hover{transform:scale(1.1)}.mrx-modal-content.mrx-modal-sm{max-width:440px}.mrx-modal-content.mrx-modal-md{max-width:670px}.mrx-modal-content.mrx-modal-lg{max-width:904px}.mrx-modal-content.mrx-modal-extra-lg{max-width:1024px}\n"] }]
94
+ ], template: "<div class=\"mrx-modal-content\" [class]=\"getClasses\" [@animateExpand]=\"isEmbed ? 'open' : 'closed'\">\r\n <div class=\"mrx-modal-header\">\r\n <div class=\"mrx-modal-title\" [innerHTML]=\"title\" [style]=\"{padding: expandable ? '0 56px' : '0 24px'}\"></div>\r\n\r\n @if (expandable) {\r\n <span\r\n class=\"mrx-icon icon-font-24\"\r\n [class]=\"isEmbed ? 'icon-arrow-collapse' : 'icon-arrow-expand'\"\r\n (click)=\"onExpanding()\"\r\n ></span>\r\n }\r\n\r\n @if (isClose) {\r\n <span class=\"mrx-icon icon-close icon-font-24\" (click)=\"onClose()\"></span>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-modal-body\">\r\n @if (isBack) {\r\n <div class=\"mrx-modal__back d-flex align-items-center mb-3 mt-2\" (click)=\"onBack()\">\r\n <span class=\"mrx-icon icon-arrow-left icon-font-16 mr-1\"></span>\r\n <span>{{ backText }}</span>\r\n </div>\r\n }\r\n\r\n @if (alert && (alert.title || alert.message)) {\r\n <mrx-alert\r\n [customClasses]=\"'mb-3'\"\r\n [title]=\"alert.title || ''\"\r\n [message]=\"alert.message || ''\"\r\n [color]=\"alert.color || 'default'\"\r\n ></mrx-alert>\r\n }\r\n\r\n <div class=\"mrx-modal-body__message\" [innerHTML]=\"message\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n @if (enableFooter) {\r\n <div class=\"mrx-modal-footer\" [class]=\"alignButtonsClass\">\r\n @if (!footerContent) {\r\n <mrx-button\r\n [type]=\"'secondary'\"\r\n [color]=\"getButtonColor\"\r\n [size]=\"'medium'\"\r\n (click)=\"onClose()\"\r\n >{{closeText}}</mrx-button>\r\n\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n [color]=\"getButtonColor\"\r\n [iconPosition]=\"iconPosition\"\r\n [isLoading]=\"isLoading\"\r\n (click)=\"onOk()\"\r\n >{{okText}}</mrx-button>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["::ng-deep .mrx-modal>*{display:flex;align-items:center;justify-content:center;height:100%;width:100%}:host{margin:auto 0;width:100vw}.mrx-modal-content{margin:24px auto;background-color:#fff;border-radius:4px;position:relative;transition:opacity .5s ease-out;width:calc(100vw - 32px);max-height:calc(100vh - 48px);will-change:opacity;display:flex;flex-direction:column;text-align:left;overflow:hidden}::ng-deep .mrx-modal-backdrop.cdk-overlay-backdrop{height:100%;inset:0;overflow-x:hidden;overflow-y:auto;padding:0 16px;position:absolute;text-align:center;z-index:1000;display:block}::ng-deep .mrx-modal-backdrop.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{background-color:var(--neutral-bg-modal)}::ng-deep .mrx-modal.fade-anim{transition:opacity .4s ease-in-out;will-change:opacity;opacity:0}::ng-deep .mrx-modal.fade-anim.in{opacity:1}.mrx-modal-body{padding:var(--spacing-6, 24px) var(--spacing-4, 16px) var(--spacing-4, 16px);flex-grow:1;overflow-y:auto;border-bottom:1px solid var(--neutral-bg-divider);margin-bottom:var(--spacing-4, 16px)}.mrx-modal-body .mrx-modal__back{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-modal-body__message{color:var(--neutral-text-primary);font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-modal-content.type-default .mrx-modal-header{background:var(--brand-bg-primary-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-default .mrx-modal-header .icon-close,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-default .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content.type-info .mrx-modal-header{background:var(--neutral-bg-island-default);color:var(--neutral-text-primary)}.mrx-modal-content.type-info .mrx-modal-header .icon-close,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-info .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-default)}.mrx-modal-content.type-attention .mrx-modal-header{background:var(--system-bg-controls-attention-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-attention .mrx-modal-header .icon-close,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-attention .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content.type-negative .mrx-modal-header{background:var(--system-bg-controls-negative-default);color:var(--neutral-icon-inverse)}.mrx-modal-content.type-negative .mrx-modal-header .icon-close,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-expand,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-collapse,.mrx-modal-content.type-negative .mrx-modal-header .icon-arrow-left{color:var(--neutral-icon-inverse)}.mrx-modal-content .mrx-modal__back{cursor:pointer;color:var(--brand-text-controls-default)}.mrx-modal-content .mrx-modal__back .mrx-icon{color:var(--brand-text-controls-default)}.mrx-modal-content .mrx-modal__back:hover,.mrx-modal-content .mrx-modal__back:hover .mrx-icon{color:var(--brand-text-controls-hover)}.mrx-modal-footer{align-items:center;display:flex;gap:var(--spacing-4);padding:var(--spacing-6);padding-top:0}.mrx-modal-header{padding:16px;position:relative;border-top-left-radius:4px;border-top-right-radius:4px}.mrx-modal-header .mrx-modal-title{font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size);text-align:center;text-transform:uppercase}.mrx-modal-header .icon-arrow-expand,.mrx-modal-header .icon-arrow-collapse{position:absolute;top:16px;right:48px;cursor:pointer}.mrx-modal-header .icon-arrow-expand:hover,.mrx-modal-header .icon-arrow-collapse:hover{transform:scale(1.1)}.mrx-modal-header .icon-close{position:absolute;top:16px;right:16px;cursor:pointer}.mrx-modal-header .icon-close:hover{transform:scale(1.1)}.mrx-modal-content.mrx-modal-sm{max-width:440px}.mrx-modal-content.mrx-modal-md{max-width:670px}.mrx-modal-content.mrx-modal-lg{max-width:904px}.mrx-modal-content.mrx-modal-extra-lg{max-width:1024px}\n"] }]
97
95
  }], propDecorators: { title: [{
98
96
  type: Input
99
97
  }], message: [{
@@ -138,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
138
136
  }], back: [{
139
137
  type: Output
140
138
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVMLHFCQUFxQixFQUVyQixjQUFjLEVBRWQsY0FBYyxFQUVmLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBeUJqRixNQUFNLE9BQU8sY0FBYztJQUNoQixLQUFLLEdBQW1CLEVBQUUsQ0FBQTtJQUMxQixPQUFPLEdBQW1CLEVBQUUsQ0FBQTtJQUM1QixLQUFLLENBQWE7SUFDbEIsTUFBTSxHQUFHLGFBQWEsQ0FBQTtJQUN0QixTQUFTLEdBQUcsVUFBVSxDQUFBO0lBQ3RCLElBQUksR0FBb0IsT0FBTyxDQUFBO0lBQy9CLEtBQUssR0FBb0IsU0FBUyxDQUFBO0lBQ2xDLGFBQWEsR0FBRyxFQUFFLENBQUE7SUFDbEIsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUNsQixPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQTtJQUNkLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFDZCxRQUFRLEdBQUcsT0FBTyxDQUFBO0lBQ2xCLFlBQVksR0FBRyxJQUFJLENBQUE7SUFDbkIsWUFBWSxHQUEyQixRQUFRLENBQUE7SUFDL0MsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixZQUFZLEdBQTRCLE1BQU0sQ0FBQztJQUV6QixhQUFhLENBQTRCO0lBRTlELEVBQUUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUNsRCxLQUFLLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFDckQsSUFBSSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRTlELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNyRCxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sR0FBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxJQUFLLElBQUksQ0FBQyxhQUFjLElBQUssSUFBSSxDQUFDLGFBQWMsRUFBRSxDQUFDO0lBQzFGLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sVUFBVSxDQUFBO1lBQ25CLEtBQUssV0FBVztnQkFDZCxPQUFPLFdBQVcsQ0FBQTtZQUNwQjtnQkFDRSxPQUFPLFNBQVMsQ0FBQTtRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNoQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQzlCLENBQUM7d0dBOURVLGNBQWM7NEZBQWQsY0FBYyxzbEJDNUMzQiw4akVBOERBLCtnS0RuQ2M7WUFDVixPQUFPLENBQUMsZUFBZSxFQUFFO2dCQUN2QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztvQkFDbEIsTUFBTSxFQUFFLE1BQU07b0JBQ2QsS0FBSyxFQUFFLE1BQU07b0JBQ2IsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLFNBQVMsRUFBRSxPQUFPO29CQUNsQixRQUFRLEVBQUUsT0FBTztvQkFDakIsU0FBUyxFQUFFLEdBQUc7b0JBQ2QsWUFBWSxFQUFFLEdBQUc7aUJBQ2xCLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNyRCxDQUFDO1NBQ0g7OzRGQUVVLGNBQWM7a0JBdEIxQixTQUFTOytCQUNFLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxjQUNuQzt3QkFDVixPQUFPLENBQUMsZUFBZSxFQUFFOzRCQUN2QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQ0FDbEIsTUFBTSxFQUFFLE1BQU07Z0NBQ2QsS0FBSyxFQUFFLE1BQU07Z0NBQ2IsUUFBUSxFQUFFLE1BQU07Z0NBQ2hCLFNBQVMsRUFBRSxPQUFPO2dDQUNsQixRQUFRLEVBQUUsT0FBTztnQ0FDakIsU0FBUyxFQUFFLEdBQUc7Z0NBQ2QsWUFBWSxFQUFFLEdBQUc7NkJBQ2xCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7NEJBQ25ELFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDOzRCQUNwRCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzt5QkFDckQsQ0FBQztxQkFDSDs4QkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRXlCLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFFbkIsRUFBRTtzQkFBWCxNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBNb2RhbEFsZXJ0LFxyXG4gIE1vZGFsQWxpZ25CdXR0b25zRW51bSxcclxuICBNb2RhbEFsaWduQnV0dG9uc1R5cGVzLFxyXG4gIE1vZGFsQ29sb3JFbnVtLFxyXG4gIE1vZGFsQ29sb3JUeXBlcyxcclxuICBNb2RhbFNpemVzRW51bSxcclxuICBNb2RhbFNpemVzVHlwZXNcclxufSBmcm9tICcuL21vZGFsLmVtdW4nO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQnV0dG9uQ29sb3JzVHlwZXMsIEJ1dHRvbkljb25Qb3NpdGlvblR5cGVzIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignYW5pbWF0ZUV4cGFuZCcsIFtcclxuICAgICAgc3RhdGUoJ29wZW4nLCBzdHlsZSh7XHJcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXHJcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICBtYXhXaWR0aDogJ25vbmUnLFxyXG4gICAgICAgIG1pbkhlaWdodDogJzEwMHZoJyxcclxuICAgICAgICBtaW5XaWR0aDogJzEwMHZ3JyxcclxuICAgICAgICBtYXJnaW5Ub3A6ICcwJyxcclxuICAgICAgICBtYXJnaW5Cb3R0b206ICcwJ1xyXG4gICAgICB9KSksXHJcbiAgICAgIHN0YXRlKCdjbG9zZWQnLCBzdHlsZSh7IGhlaWdodDogJyonLCB3aWR0aDogJyonIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmcgfCBudWxsID0gJydcclxuICBASW5wdXQoKSBtZXNzYWdlPzogc3RyaW5nIHwgbnVsbCA9ICcnXHJcbiAgQElucHV0KCkgYWxlcnQ/OiBNb2RhbEFsZXJ0XHJcbiAgQElucHV0KCkgb2tUZXh0ID0gJ9Cf0L7QtNGC0LLQtdGA0LTQuNGC0YwnXHJcbiAgQElucHV0KCkgY2xvc2VUZXh0ID0gJ9Ce0YLQvNC10L3QuNGC0YwnXHJcbiAgQElucHV0KCkgc2l6ZTogTW9kYWxTaXplc1R5cGVzID0gJ3NtYWxsJ1xyXG4gIEBJbnB1dCgpIGNvbG9yOiBNb2RhbENvbG9yVHlwZXMgPSAnZGVmYXVsdCdcclxuICBASW5wdXQoKSBjdXN0b21DbGFzc2VzID0gJydcclxuICBASW5wdXQoKSBleHBhbmRhYmxlID0gZmFsc2VcclxuICBASW5wdXQoKSBpc0VtYmVkID0gZmFsc2VcclxuICBASW5wdXQoKSBpc0Nsb3NlID0gdHJ1ZVxyXG4gIEBJbnB1dCgpIGlzQmFjayA9IGZhbHNlXHJcbiAgQElucHV0KCkgYmFja1RleHQgPSAn0J3QsNC30LDQtCdcclxuICBASW5wdXQoKSBlbmFibGVGb290ZXIgPSB0cnVlXHJcbiAgQElucHV0KCkgYWxpZ25CdXR0b25zOiBNb2RhbEFsaWduQnV0dG9uc1R5cGVzID0gJ2NlbnRlcidcclxuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpY29uUG9zaXRpb246IEJ1dHRvbkljb25Qb3NpdGlvblR5cGVzID0gJ2xlZnQnO1xyXG5cclxuICBAQ29udGVudENoaWxkKCdmb290ZXJDb250ZW50JykgZm9vdGVyQ29udGVudCE6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgQE91dHB1dCgpIG9rOiBFdmVudEVtaXR0ZXI8bnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bGw+KCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlOiBFdmVudEVtaXR0ZXI8bnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bGw+KCk7XHJcbiAgQE91dHB1dCgpIGJhY2s6IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuXHJcbiAgcHVibGljIGdldCBnZXRDb2xvckNsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sb3IgPyBNb2RhbENvbG9yRW51bVt0aGlzLmNvbG9yXSA6ICcnXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHsgTW9kYWxTaXplc0VudW1bdGhpcy5zaXplXSB9ICR7IHRoaXMuZ2V0Q29sb3JDbGFzcyB9ICR7IHRoaXMuY3VzdG9tQ2xhc3NlcyB9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0QnV0dG9uQ29sb3IoKTogQnV0dG9uQ29sb3JzVHlwZXMge1xyXG4gICAgc3dpdGNoICh0aGlzLmNvbG9yKSB7XHJcbiAgICAgIGNhc2UgJ25lZ2F0aXZlJzpcclxuICAgICAgICByZXR1cm4gJ25lZ2F0aXZlJ1xyXG4gICAgICBjYXNlICdhdHRlbnRpb24nOlxyXG4gICAgICAgIHJldHVybiAnYXR0ZW50aW9uJ1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnZGVmYXVsdCdcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWxpZ25CdXR0b25zQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNb2RhbEFsaWduQnV0dG9uc0VudW1bdGhpcy5hbGlnbkJ1dHRvbnNdXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25PaygpOiB2b2lkIHtcclxuICAgIHRoaXMub2suZW1pdCgpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2UuZW1pdCgpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CYWNrKCkge1xyXG4gICAgdGhpcy5iYWNrLmVtaXQoKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRXhwYW5kaW5nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0VtYmVkID0gIXRoaXMuaXNFbWJlZFxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXJ4LW1vZGFsLWNvbnRlbnRcIiBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiIFtAYW5pbWF0ZUV4cGFuZF09XCJpc0VtYmVkID8gJ29wZW4nIDogJ2Nsb3NlZCdcIj5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LW1vZGFsLWhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1tb2RhbC10aXRsZVwiIFtpbm5lckhUTUxdPVwidGl0bGVcIiBbc3R5bGVdPVwie3BhZGRpbmc6IGV4cGFuZGFibGUgPyAnMCA1NnB4JyA6ICcwIDI0cHgnfVwiPjwvZGl2PlxyXG5cclxuICAgIEBpZiAoZXhwYW5kYWJsZSkge1xyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1mb250LTI0XCJcclxuICAgICAgICBbY2xhc3NdPVwiaXNFbWJlZCA/ICdpY29uLWFycm93LWNvbGxhcHNlJyA6ICdpY29uLWFycm93LWV4cGFuZCdcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkV4cGFuZGluZygpXCJcclxuICAgICAgPjwvc3Bhbj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKGlzQ2xvc2UpIHtcclxuICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0yNFwiIChjbGljayk9XCJvbkNsb3NlKClcIj48L3NwYW4+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJtcngtbW9kYWwtYm9keVwiPlxyXG4gICAgQGlmIChpc0JhY2spIHtcclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1tb2RhbF9fYmFjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTMgbXQtMlwiIChjbGljayk9XCJvbkJhY2soKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1hcnJvdy1sZWZ0IGljb24tZm9udC0xNiBtci0xXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPnt7IGJhY2tUZXh0IH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKGFsZXJ0ICYmIChhbGVydC50aXRsZSB8fCBhbGVydC5tZXNzYWdlKSkge1xyXG4gICAgICA8bXJ4LWFsZXJ0XHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ21iLTMnXCJcclxuICAgICAgICBbdGl0bGVdPVwiYWxlcnQudGl0bGUgfHwgJydcIlxyXG4gICAgICAgIFttZXNzYWdlXT1cImFsZXJ0Lm1lc3NhZ2UgfHwgJydcIlxyXG4gICAgICAgIFtjb2xvcl09XCJhbGVydC5jb2xvciB8fCAnZGVmYXVsdCdcIlxyXG4gICAgICA+PC9tcngtYWxlcnQ+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1tb2RhbC1ib2R5X19tZXNzYWdlXCIgW2lubmVySFRNTF09XCJtZXNzYWdlXCI+PC9kaXY+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIEBpZiAoZW5hYmxlRm9vdGVyKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LW1vZGFsLWZvb3RlclwiIFtjbGFzc109XCJhbGlnbkJ1dHRvbnNDbGFzc1wiPlxyXG4gICAgICBAaWYgKCFmb290ZXJDb250ZW50KSB7XHJcbiAgICAgICAgPG1yeC1idXR0b25cclxuICAgICAgICAgIFt0eXBlXT1cIidzZWNvbmRhcnknXCJcclxuICAgICAgICAgIFtjb2xvcl09XCJnZXRCdXR0b25Db2xvclwiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcclxuICAgICAgICA+e3tjbG9zZVRleHR9fTwvbXJ4LWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPG1yeC1idXR0b25cclxuICAgICAgICAgIFt0eXBlXT1cIidwcmltYXJ5J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbY29sb3JdPVwiZ2V0QnV0dG9uQ29sb3JcIlxyXG4gICAgICAgICAgW2ljb25Qb3NpdGlvbl09XCJpY29uUG9zaXRpb25cIlxyXG4gICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uT2soKVwiXHJcbiAgICAgICAgPnt7b2tUZXh0fX08L21yeC1idXR0b24+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVMLHFCQUFxQixFQUVyQixjQUFjLEVBRWQsY0FBYyxFQUVmLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBd0JqRixNQUFNLE9BQU8sY0FBYztJQUNoQixLQUFLLEdBQW1CLEVBQUUsQ0FBQTtJQUMxQixPQUFPLEdBQW1CLEVBQUUsQ0FBQTtJQUM1QixLQUFLLENBQWE7SUFDbEIsTUFBTSxHQUFHLGFBQWEsQ0FBQTtJQUN0QixTQUFTLEdBQUcsVUFBVSxDQUFBO0lBQ3RCLElBQUksR0FBb0IsT0FBTyxDQUFBO0lBQy9CLEtBQUssR0FBb0IsU0FBUyxDQUFBO0lBQ2xDLGFBQWEsR0FBRyxFQUFFLENBQUE7SUFDbEIsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUNsQixPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQTtJQUNkLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFDZCxRQUFRLEdBQUcsT0FBTyxDQUFBO0lBQ2xCLFlBQVksR0FBRyxJQUFJLENBQUE7SUFDbkIsWUFBWSxHQUEyQixRQUFR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QUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzs0QkFDcEQsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7eUJBQ3JELENBQUM7cUJBQ0g7OEJBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUV5QixhQUFhO3NCQUEzQyxZQUFZO3VCQUFDLGVBQWU7Z0JBRW5CLEVBQUU7c0JBQVgsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTW9kYWxBbGVydCxcclxuICBNb2RhbEFsaWduQnV0dG9uc0VudW0sXHJcbiAgTW9kYWxBbGlnbkJ1dHRvbnNUeXBlcyxcclxuICBNb2RhbENvbG9yRW51bSxcclxuICBNb2RhbENvbG9yVHlwZXMsXHJcbiAgTW9kYWxTaXplc0VudW0sXHJcbiAgTW9kYWxTaXplc1R5cGVzXHJcbn0gZnJvbSAnLi9tb2RhbC5lbXVuJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbG9yc1R5cGVzLCBCdXR0b25JY29uUG9zaXRpb25UeXBlcyB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2FuaW1hdGVFeHBhbmQnLCBbXHJcbiAgICAgIHN0YXRlKCdvcGVuJywgc3R5bGUoe1xyXG4gICAgICAgIGhlaWdodDogJzEwMHZoJyxcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIG1heFdpZHRoOiAnbm9uZScsXHJcbiAgICAgICAgbWluSGVpZ2h0OiAnMTAwdmgnLFxyXG4gICAgICAgIG1hcmdpblRvcDogJzAnLFxyXG4gICAgICAgIG1hcmdpbkJvdHRvbTogJzAnXHJcbiAgICAgIH0pKSxcclxuICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHdpZHRoOiAnKicgfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlZCcsIFthbmltYXRlKCcwLjVzIGVhc2UnKV0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCdjbG9zZWQgPT4gb3BlbicsIFthbmltYXRlKCcwLjVzIGVhc2UnKV0pLFxyXG4gICAgXSksXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZyB8IG51bGwgPSAnJ1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsID0gJydcclxuICBASW5wdXQoKSBhbGVydD86IE1vZGFsQWxlcnRcclxuICBASW5wdXQoKSBva1RleHQgPSAn0J/QvtC00YLQstC10YDQtNC40YLRjCdcclxuICBASW5wdXQoKSBjbG9zZVRleHQgPSAn0J7RgtC80LXQvdC40YLRjCdcclxuICBASW5wdXQoKSBzaXplOiBNb2RhbFNpemVzVHlwZXMgPSAnc21hbGwnXHJcbiAgQElucHV0KCkgY29sb3I6IE1vZGFsQ29sb3JUeXBlcyA9ICdkZWZhdWx0J1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzZXMgPSAnJ1xyXG4gIEBJbnB1dCgpIGV4cGFuZGFibGUgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIGlzRW1iZWQgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIGlzQ2xvc2UgPSB0cnVlXHJcbiAgQElucHV0KCkgaXNCYWNrID0gZmFsc2VcclxuICBASW5wdXQoKSBiYWNrVGV4dCA9ICfQndCw0LfQsNC0J1xyXG4gIEBJbnB1dCgpIGVuYWJsZUZvb3RlciA9IHRydWVcclxuICBASW5wdXQoKSBhbGlnbkJ1dHRvbnM6IE1vZGFsQWxpZ25CdXR0b25zVHlwZXMgPSAnY2VudGVyJ1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGljb25Qb3NpdGlvbjogQnV0dG9uSWNvblBvc2l0aW9uVHlwZXMgPSAnbGVmdCc7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ2Zvb3RlckNvbnRlbnQnKSBmb290ZXJDb250ZW50ITogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICBAT3V0cHV0KCkgb2s6IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuICBAT3V0cHV0KCkgYmFjazogRXZlbnRFbWl0dGVyPG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xyXG5cclxuICBwdWJsaWMgZ2V0IGdldENvbG9yQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xvciA/IE1vZGFsQ29sb3JFbnVtW3RoaXMuY29sb3JdIDogJydcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAkeyBNb2RhbFNpemVzRW51bVt0aGlzLnNpemVdIH0gJHsgdGhpcy5nZXRDb2xvckNsYXNzIH0gJHsgdGhpcy5jdXN0b21DbGFzc2VzIH1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRCdXR0b25Db2xvcigpOiBCdXR0b25Db2xvcnNUeXBlcyB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY29sb3IpIHtcclxuICAgICAgY2FzZSAnbmVnYXRpdmUnOlxyXG4gICAgICAgIHJldHVybiAnbmVnYXRpdmUnXHJcbiAgICAgIGNhc2UgJ2F0dGVudGlvbic6XHJcbiAgICAgICAgcmV0dXJuICdhdHRlbnRpb24nXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdkZWZhdWx0J1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbGlnbkJ1dHRvbnNDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE1vZGFsQWxpZ25CdXR0b25zRW51bVt0aGlzLmFsaWduQnV0dG9uc11cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9rKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vay5lbWl0KClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZS5lbWl0KClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkJhY2soKSB7XHJcbiAgICB0aGlzLmJhY2suZW1pdCgpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25FeHBhbmRpbmcoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRW1iZWQgPSAhdGhpcy5pc0VtYmVkXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtcngtbW9kYWwtY29udGVudFwiIFtjbGFzc109XCJnZXRDbGFzc2VzXCIgW0BhbmltYXRlRXhwYW5kXT1cImlzRW1iZWQgPyAnb3BlbicgOiAnY2xvc2VkJ1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtbW9kYWwtaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LW1vZGFsLXRpdGxlXCIgW2lubmVySFRNTF09XCJ0aXRsZVwiIFtzdHlsZV09XCJ7cGFkZGluZzogZXhwYW5kYWJsZSA/ICcwIDU2cHgnIDogJzAgMjRweCd9XCI+PC9kaXY+XHJcblxyXG4gICAgQGlmIChleHBhbmRhYmxlKSB7XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWZvbnQtMjRcIlxyXG4gICAgICAgIFtjbGFzc109XCJpc0VtYmVkID8gJ2ljb24tYXJyb3ctY29sbGFwc2UnIDogJ2ljb24tYXJyb3ctZXhwYW5kJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uRXhwYW5kaW5nKClcIlxyXG4gICAgICA+PC9zcGFuPlxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoaXNDbG9zZSkge1xyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgaWNvbi1mb250LTI0XCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPjwvc3Bhbj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1tb2RhbC1ib2R5XCI+XHJcbiAgICBAaWYgKGlzQmFjaykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LW1vZGFsX19iYWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMyBtdC0yXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWFycm93LWxlZnQgaWNvbi1mb250LTE2IG1yLTFcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4+e3sgYmFja1RleHQgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoYWxlcnQgJiYgKGFsZXJ0LnRpdGxlIHx8IGFsZXJ0Lm1lc3NhZ2UpKSB7XHJcbiAgICAgIDxtcngtYWxlcnRcclxuICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCInbWItMydcIlxyXG4gICAgICAgIFt0aXRsZV09XCJhbGVydC50aXRsZSB8fCAnJ1wiXHJcbiAgICAgICAgW21lc3NhZ2VdPVwiYWxlcnQubWVzc2FnZSB8fCAnJ1wiXHJcbiAgICAgICAgW2NvbG9yXT1cImFsZXJ0LmNvbG9yIHx8ICdkZWZhdWx0J1wiXHJcbiAgICAgID48L21yeC1hbGVydD5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LW1vZGFsLWJvZHlfX21lc3NhZ2VcIiBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VcIj48L2Rpdj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuXHJcbiAgQGlmIChlbmFibGVGb290ZXIpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJtcngtbW9kYWwtZm9vdGVyXCIgW2NsYXNzXT1cImFsaWduQnV0dG9uc0NsYXNzXCI+XHJcbiAgICAgIEBpZiAoIWZvb3RlckNvbnRlbnQpIHtcclxuICAgICAgICA8bXJ4LWJ1dHRvblxyXG4gICAgICAgICAgW3R5cGVdPVwiJ3NlY29uZGFyeSdcIlxyXG4gICAgICAgICAgW2NvbG9yXT1cImdldEJ1dHRvbkNvbG9yXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkNsb3NlKClcIlxyXG4gICAgICAgID57e2Nsb3NlVGV4dH19PC9tcngtYnV0dG9uPlxyXG5cclxuICAgICAgICA8bXJ4LWJ1dHRvblxyXG4gICAgICAgICAgW3R5cGVdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtjb2xvcl09XCJnZXRCdXR0b25Db2xvclwiXHJcbiAgICAgICAgICBbaWNvblBvc2l0aW9uXT1cImljb25Qb3NpdGlvblwiXHJcbiAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25PaygpXCJcclxuICAgICAgICA+e3tva1RleHR9fTwvbXJ4LWJ1dHRvbj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlckNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19