myrta-ui 17.0.1 → 17.0.3
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.
- package/esm2022/lib/components/form/editor/editor.component.mjs +10 -2
- package/esm2022/lib/components/form/editor/editor.enum.mjs +7 -2
- package/esm2022/lib/components/table/table.component.mjs +4 -11
- package/fesm2022/myrta-ui.mjs +18 -11
- package/fesm2022/myrta-ui.mjs.map +1 -1
- package/lib/components/form/editor/editor.component.d.ts +3 -2
- package/lib/components/form/editor/editor.enum.d.ts +5 -0
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ import 'jodit/esm/plugins/line-height/line-height.js';
|
|
|
12
12
|
import 'jodit/esm/plugins/indent/indent.js';
|
|
13
13
|
import 'jodit/esm/plugins/video/video.js';
|
|
14
14
|
import 'jodit/esm/plugins/search/search.js';
|
|
15
|
+
import { InputEditorModeEnum } from './editor.enum';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
import * as i1 from "@angular/common";
|
|
17
18
|
import * as i2 from "@angular/forms";
|
|
@@ -32,6 +33,7 @@ export class EditorComponent {
|
|
|
32
33
|
defaultConfig = {
|
|
33
34
|
...defaultToolbar,
|
|
34
35
|
popup: popupToolbars,
|
|
36
|
+
defaultMode: InputEditorModeEnum.MODE_WYSIWYG,
|
|
35
37
|
language: 'ru',
|
|
36
38
|
showCharsCounter: false,
|
|
37
39
|
showWordsCounter: false,
|
|
@@ -92,6 +94,7 @@ export class EditorComponent {
|
|
|
92
94
|
defaultInlineStyle = false;
|
|
93
95
|
config = this.defaultConfig;
|
|
94
96
|
editHTMLDocumentMode = false;
|
|
97
|
+
defaultMode = InputEditorModeEnum.MODE_WYSIWYG;
|
|
95
98
|
invalid = false;
|
|
96
99
|
invalidMessage = '';
|
|
97
100
|
checkInvalid = null;
|
|
@@ -141,6 +144,9 @@ export class EditorComponent {
|
|
|
141
144
|
askBeforePasteFromWord: changes['askBeforePasteFromWord'].currentValue
|
|
142
145
|
};
|
|
143
146
|
}
|
|
147
|
+
if (changes['defaultMode']) {
|
|
148
|
+
this.defaultConfig = { ...this.defaultConfig, defaultMode: changes['defaultMode'].currentValue };
|
|
149
|
+
}
|
|
144
150
|
if (changes['defaultActionOnPaste']) {
|
|
145
151
|
this.defaultConfig = {
|
|
146
152
|
...this.defaultConfig,
|
|
@@ -210,7 +216,7 @@ export class EditorComponent {
|
|
|
210
216
|
this.valueLength = this.editorElementRef.editor.text.replace(/\s+/g, '').length;
|
|
211
217
|
}
|
|
212
218
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
213
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: EditorComponent, selector: "mrx-editor", inputs: { fields: "fields", toolbar: "toolbar", maxLength: "maxLength", minHeight: "minHeight", customClasses: "customClasses", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", iframe: "iframe", defaultInlineStyle: "defaultInlineStyle", config: "config", editHTMLDocumentMode: "editHTMLDocumentMode", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
|
|
219
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: EditorComponent, selector: "mrx-editor", inputs: { fields: "fields", toolbar: "toolbar", maxLength: "maxLength", minHeight: "minHeight", customClasses: "customClasses", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", iframe: "iframe", defaultInlineStyle: "defaultInlineStyle", config: "config", editHTMLDocumentMode: "editHTMLDocumentMode", defaultMode: "defaultMode", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
|
|
214
220
|
{
|
|
215
221
|
provide: NG_VALUE_ACCESSOR,
|
|
216
222
|
useExisting: forwardRef(() => EditorComponent),
|
|
@@ -251,6 +257,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
251
257
|
type: Input
|
|
252
258
|
}], editHTMLDocumentMode: [{
|
|
253
259
|
type: Input
|
|
260
|
+
}], defaultMode: [{
|
|
261
|
+
type: Input
|
|
254
262
|
}], invalid: [{
|
|
255
263
|
type: Input
|
|
256
264
|
}], invalidMessage: [{
|
|
@@ -265,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
265
273
|
}], modelChange: [{
|
|
266
274
|
type: Output
|
|
267
275
|
}] } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRzlCLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZDLE9BQU8sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7QUFHNUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBcUJu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QUE3QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRXlCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRVosT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjaGFuZ2VJY29uc0Z1bmN0aW9uIH0gZnJvbSAnLi9tb2R1bGVzL2NoYW5nZS1pY29uLW1vZHVsZSc7XHJcbmltcG9ydCB7IGRlZmF1bHRUb29sYmFyIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHBvcHVwVG9vbGJhcnMgfSBmcm9tICcuL2NvbmZpZy9wb3B1cHMtdG9vbGJhcic7XHJcbmltcG9ydCB7IFRvb2xiYXJDb25maWcgfSBmcm9tICcuL21vZGVscy90b29sYmFyLm1vZGVsJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SW5saW5lU3R5bGVDb25zdGFudCB9IGZyb20gJy4vY29uZmlnL2RlZmF1bHQtaW5saW5lLXN0eWxlJztcclxuXHJcbmltcG9ydCB7IEpvZGl0IH0gZnJvbSAnam9kaXQnO1xyXG5pbXBvcnQgeyBKb2RpdENvbmZpZyB9IGZyb20gJ25neC1qb2RpdCc7XHJcblxyXG5pbXBvcnQgcnUgZnJvbSAnam9kaXQvZXNtL2xhbmdzL3J1LmpzJztcclxuXHJcbmltcG9ydCAnam9kaXQvZXNtL3BsdWdpbnMvc291cmNlL3NvdXJjZS5qcyc7XHJcbmltcG9ydCAnam9kaXQvZXNtL3BsdWdpbnMvbGluZS1oZWlnaHQvbGluZS1oZWlnaHQuanMnO1xyXG5pbXBvcnQgJ2pvZGl0L2VzbS9wbHVnaW5zL2luZGVudC9pbmRlbnQuanMnO1xyXG5pbXBvcnQgJ2pvZGl0L2VzbS9wbHVnaW5zL3ZpZGVvL3ZpZGVvLmpzJztcclxuaW1wb3J0ICdqb2RpdC9lc20vcGx1Z2lucy9zZWFyY2gvc2VhcmNoLmpzJztcclxuaW1wb3J0IHsgSW5wdXRFZGl0b3JWYWx1ZVdpdGhJZCB9IGZyb20gJy4vZWRpdG9yLmVudW0nO1xyXG5cclxuSm9kaXQubGFuZy5kZSA9IHJ1O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Kb2RpdENvbmZpZyBleHRlbmRzIEpvZGl0Q29uZmlnIHtcclxuICBnZXRJY29uOiAoYTogYW55KSA9PiB2b2lkLFxyXG4gIGxpbms6IGFueSxcclxuICBjbGVhbkhUTUw6IGFueSxcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRvckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcclxuICBwcml2YXRlIF9pc0luaXQgPSBmYWxzZTtcclxuICBwdWJsaWMgdmFsdWUgPSAnJztcclxuICBwdWJsaWMgdmFsdWVMZW5ndGggPSAwO1xyXG4gIHB1YmxpYyBpc0ZvY3VzZWQ6IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBvcHRpb25zID0ge1xyXG4gICAgbGFuZ3VhZ2U6ICdydSdcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZGVmYXVsdENvbmZpZzogQ3VzdG9tSm9kaXRDb25maWcgPSB7XHJcbiAgICAuLi5kZWZhdWx0VG9vbGJhcixcclxuICAgIHBvcHVwOiBwb3B1cFRvb2xiYXJzLFxyXG4gICAgbGFuZ3VhZ2U6ICdydScsXHJcbiAgICBzaG93Q2hhcnNDb3VudGVyOiBmYWxzZSxcclxuICAgIHNob3dXb3Jkc0NvdW50ZXI6IGZhbHNlLFxyXG4gICAgc2hvd1hQYXRoSW5TdGF0dXNiYXI6IGZhbHNlLFxyXG4gICAgbGluazoge1xyXG4gICAgICBub0ZvbGxvd0NoZWNrYm94OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG1pbkhlaWdodDogMTEwLFxyXG4gICAgaWZyYW1lOiBmYWxzZSxcclxuICAgIGltYWdlRGVmYXVsdFdpZHRoOiAyMDAsXHJcbiAgICBlZGl0SFRNTERvY3VtZW50TW9kZTogdHJ1ZSxcclxuICAgIGNsZWFuSFRNTDoge1xyXG4gICAgICBmaWxsRW1wdHlQYXJhZ3JhcGg6IHRydWVcclxuICAgIH0sXHJcbiAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICB0b29sYmFyQWRhcHRpdmU6IGZhbHNlLFxyXG4gICAgdG9vbGJhcklubGluZTogdHJ1ZSxcclxuICAgIHRvb2xiYXJJbmxpbmVGb3JTZWxlY3Rpb246IGZhbHNlLFxyXG4gICAgdG9vbGJhcklubGluZURpc2FibGVGb3I6IFtdLFxyXG4gICAgdG9vbGJhcklubGluZURpc2FibGVkQnV0dG9uczogWydzb3VyY2UnXSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIHJlYWRvbmx5OiBmYWxzZSxcclxuICAgIGFza0JlZm9yZVBhc3RlSFRNTDogZmFsc2UsXHJcbiAgICBkZWZhdWx0QWN0aW9uT25QYXN0ZTogJ2luc2VydF9vbmx5X3RleHQnLFxyXG4gICAgYXNrQmVmb3JlUGFzdGVGcm9tV29yZDogZmFsc2UsXHJcbiAgICBoaWRlUG93ZXJlZEJ5Sm9kaXQ6IHRydWUsXHJcbiAgICBiZWF1dGlmeUhUTUw6IHRydWUsXHJcbiAgICBhZGROZXdMaW5lOiB0cnVlLFxyXG4gICAgY3JlYXRlQXR0cmlidXRlczoge30sXHJcbiAgICBnZXRJY29uOiAoaWNvbk5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gY2hhbmdlSWNvbnNGdW5jdGlvbihpY29uTmFtZSk7XHJcbiAgICB9LFxyXG4gICAgZXZlbnRzOiB7XHJcbiAgICAgIGZvY3VzOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkKHRydWUpO1xyXG4gICAgICB9LFxyXG4gICAgICBibHVyOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdXBsb2FkZXI6IHtcclxuICAgIC8vICAgaW5zZXJ0SW1hZ2VBc0Jhc2U2NFVSSTogdHJ1ZVxyXG4gICAgLy8gfSxcclxuICAgIC8vIGxpbWl0Q2hhcnM6IDEwLFxyXG4gICAgLy8gbGltaXRIVE1MOiAxNzAsXHJcbiAgfTtcclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sYmFyITogVG9vbGJhckNvbmZpZztcclxuICBASW5wdXQoKSBwdWJsaWMgbWF4TGVuZ3RoID0gMDtcclxuICBASW5wdXQoKSBwdWJsaWMgbWluSGVpZ2h0ID0gMTEwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGlmcmFtZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0SW5saW5lU3R5bGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBhbnkgPSB0aGlzLmRlZmF1bHRDb25maWc7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBlZGl0SFRNTERvY3VtZW50TW9kZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yRWxlbWVudFJlZicpIGVkaXRvckVsZW1lbnRSZWYhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SW5wdXRFZGl0b3JWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0RWRpdG9yVmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3Rvb2xiYXInXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jaGFuZ2VzWyd0b29sYmFyJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydtYXhMZW5ndGgnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCBsaW1pdENoYXJzOiBjaGFuZ2VzWydtYXhMZW5ndGgnXS5jdXJyZW50VmFsdWV9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0gey4uLnRoaXMuZGVmYXVsdENvbmZpZywgcGxhY2Vob2xkZXI6IGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsuLi50aGlzLmRlZmF1bHRDb25maWcsIGRpc2FibGVkOiBjaGFuZ2VzWydkaXNhYmxlZCddLmN1cnJlbnRWYWx1ZX07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1sncmVhZG9ubHknXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCByZWFkb25seTogY2hhbmdlc1sncmVhZG9ubHknXS5jdXJyZW50VmFsdWV9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2lmcmFtZSddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsuLi50aGlzLmRlZmF1bHRDb25maWcsIGlmcmFtZTogY2hhbmdlc1snaWZyYW1lJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydkZWZhdWx0SW5saW5lU3R5bGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0Q29uZmlnLFxyXG4gICAgICAgIGNyZWF0ZUF0dHJpYnV0ZXM6IHsuLi50aGlzLmRlZmF1bHRDb25maWcuY3JlYXRlQXR0cmlidXRlcywgLi4uZGVmYXVsdElubGluZVN0eWxlQ29uc3RhbnR9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snZWRpdEhUTUxEb2N1bWVudE1vZGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0Q29uZmlnLFxyXG4gICAgICAgIGVkaXRIVE1MRG9jdW1lbnRNb2RlOiBjaGFuZ2VzWydlZGl0SFRNTERvY3VtZW50TW9kZSddLmN1cnJlbnRWYWx1ZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2Fza0JlZm9yZVBhc3RlSFRNTCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsuLi50aGlzLmRlZmF1bHRDb25maWcsIGFza0JlZm9yZVBhc3RlSFRNTDogY2hhbmdlc1snYXNrQmVmb3JlUGFzdGVIVE1MJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZGVmYXVsdENvbmZpZyxcclxuICAgICAgICBhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkOiBjaGFuZ2VzWydhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkJ10uY3VycmVudFZhbHVlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snZGVmYXVsdEFjdGlvbk9uUGFzdGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0Q29uZmlnLFxyXG4gICAgICAgIGRlZmF1bHRBY3Rpb25PblBhc3RlOiBjaGFuZ2VzWydkZWZhdWx0QWN0aW9uT25QYXN0ZSddLmN1cnJlbnRWYWx1ZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ21pbkhlaWdodCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsuLi50aGlzLmRlZmF1bHRDb25maWcsIG1pbkhlaWdodDogY2hhbmdlc1snbWluSGVpZ2h0J10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydjb25maWcnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWV9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSW52YWxpZE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmludmFsaWRNZXNzYWdlIHx8ICEhdGhpcy5pbnZhbGlkTWVzc2FnZT8ubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja1ZhbGlkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6IHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5jdXN0b21DbGFzc2VzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRQb3NpdGlvblRleHQodGV4dDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmVkaXRvckVsZW1lbnRSZWYuZWRpdG9yLnMuaW5zZXJ0SFRNTCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VGb2N1c2VkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb24uZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUob3V0c2lkZVZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLl9zYW5pdGl6ZVZhbHVlKG91dHNpZGVWYWx1ZSk7XHJcbiAgICBpZiAob3V0c2lkZVZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2lzSW5pdCA9IHRydWU7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoaW5zaWRlVmFsdWU6IHN0cmluZykge1xyXG5cclxuICAgIGlmICh0aGlzLm1heExlbmd0aCkge1xyXG4gICAgICB0aGlzLl9jYWxjdWxhdGVDaGFydHNDb3VudCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2lzSW5pdCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gaW5zaWRlVmFsdWU7XHJcbiAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KGluc2lkZVZhbHVlKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHt2YWx1ZTogaW5zaWRlVmFsdWUsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgICAgdGhpcy5vbkNoYW5nZShpbnNpZGVWYWx1ZSk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zYW5pdGl6ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHZhbHVlID8gdmFsdWUucmVwbGFjZSgvPHNjcmlwdFxcYltePF0qKD86KD8hPFxcL3NjcmlwdD4pPFtePF0qKSo8XFwvc2NyaXB0Pi9naSwgJycpIDogdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jYWxjdWxhdGVDaGFydHNDb3VudCgpIHtcclxuICAgIHRoaXMudmFsdWVMZW5ndGggPSB0aGlzLmVkaXRvckVsZW1lbnRSZWYuZWRpdG9yLnRleHQucmVwbGFjZSgvXFxzKy9nLCAnJykubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJtcngtZWRpdG9yXCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWZvY3VzZWRdPVwiaXNGb2N1c2VkXCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cIiFpc1ZhbGlkIHx8IGludmFsaWRcIlxyXG4gIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuPlxyXG4gIDxuZ3gtam9kaXRcclxuICAgICNlZGl0b3JFbGVtZW50UmVmXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIFtvcHRpb25zXT1cImRlZmF1bHRDb25maWdcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgPjwvbmd4LWpvZGl0PlxyXG5cclxuICA8bXJ4LWVycm9yLW1lc3NhZ2VcclxuICAgICpuZ0lmPVwiKCFpc1ZhbGlkIHx8IGludmFsaWQpICYmIGlzSW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgW2ludmFsaWRNZXNzYWdlXT1cImludmFsaWRNZXNzYWdlXCJcclxuICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgPG1yeC1jaGFycy1sZWZ0IFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCIgW3ZhbHVlTGVuZ3RoXT1cInZhbHVlTGVuZ3RoXCI+PC9tcngtY2hhcnMtbGVmdD5cclxuXHJcbiAgPG1yeC1zYXZlLXN0YXRlIHR5cGU9XCJlZGl0b3JcIiBbaWRdPVwidXVpZFwiIFtmaWVsZHNdPVwiZmllbGRzXCI+PC9tcngtc2F2ZS1zdGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRzlCLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZDLE9BQU8sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQTBCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQUU1RSxL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QUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBRVUsb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBRVUsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRXlCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRVosT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjaGFuZ2VJY29uc0Z1bmN0aW9uIH0gZnJvbSAnLi9tb2R1bGVzL2NoYW5nZS1pY29uLW1vZHVsZSc7XHJcbmltcG9ydCB7IGRlZmF1bHRUb29sYmFyIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHBvcHVwVG9vbGJhcnMgfSBmcm9tICcuL2NvbmZpZy9wb3B1cHMtdG9vbGJhcic7XHJcbmltcG9ydCB7IFRvb2xiYXJDb25maWcgfSBmcm9tICcuL21vZGVscy90b29sYmFyLm1vZGVsJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SW5saW5lU3R5bGVDb25zdGFudCB9IGZyb20gJy4vY29uZmlnL2RlZmF1bHQtaW5saW5lLXN0eWxlJztcclxuXHJcbmltcG9ydCB7IEpvZGl0IH0gZnJvbSAnam9kaXQnO1xyXG5pbXBvcnQgeyBKb2RpdENvbmZpZyB9IGZyb20gJ25neC1qb2RpdCc7XHJcblxyXG5pbXBvcnQgcnUgZnJvbSAnam9kaXQvZXNtL2xhbmdzL3J1LmpzJztcclxuXHJcbmltcG9ydCAnam9kaXQvZXNtL3BsdWdpbnMvc291cmNlL3NvdXJjZS5qcyc7XHJcbmltcG9ydCAnam9kaXQvZXNtL3BsdWdpbnMvbGluZS1oZWlnaHQvbGluZS1oZWlnaHQuanMnO1xyXG5pbXBvcnQgJ2pvZGl0L2VzbS9wbHVnaW5zL2luZGVudC9pbmRlbnQuanMnO1xyXG5pbXBvcnQgJ2pvZGl0L2VzbS9wbHVnaW5zL3ZpZGVvL3ZpZGVvLmpzJztcclxuaW1wb3J0ICdqb2RpdC9lc20vcGx1Z2lucy9zZWFyY2gvc2VhcmNoLmpzJztcclxuaW1wb3J0IHsgSW5wdXRFZGl0b3JNb2RlRW51bSwgSW5wdXRFZGl0b3JWYWx1ZVdpdGhJZCB9IGZyb20gJy4vZWRpdG9yLmVudW0nO1xyXG5cclxuSm9kaXQubGFuZy5kZSA9IHJ1O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Kb2RpdENvbmZpZyBleHRlbmRzIEpvZGl0Q29uZmlnIHtcclxuICBnZXRJY29uOiAoYTogYW55KSA9PiB2b2lkLFxyXG4gIGxpbms6IGFueSxcclxuICBjbGVhbkhUTUw6IGFueSxcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRvckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcclxuICBwcml2YXRlIF9pc0luaXQgPSBmYWxzZTtcclxuICBwdWJsaWMgdmFsdWUgPSAnJztcclxuICBwdWJsaWMgdmFsdWVMZW5ndGggPSAwO1xyXG4gIHB1YmxpYyBpc0ZvY3VzZWQ6IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBvcHRpb25zID0ge1xyXG4gICAgbGFuZ3VhZ2U6ICdydSdcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZGVmYXVsdENvbmZpZzogQ3VzdG9tSm9kaXRDb25maWcgPSB7XHJcbiAgICAuLi5kZWZhdWx0VG9vbGJhcixcclxuICAgIHBvcHVwOiBwb3B1cFRvb2xiYXJzLFxyXG4gICAgZGVmYXVsdE1vZGU6IElucHV0RWRpdG9yTW9kZUVudW0uTU9ERV9XWVNJV1lHLFxyXG4gICAgbGFuZ3VhZ2U6ICdydScsXHJcbiAgICBzaG93Q2hhcnNDb3VudGVyOiBmYWxzZSxcclxuICAgIHNob3dXb3Jkc0NvdW50ZXI6IGZhbHNlLFxyXG4gICAgc2hvd1hQYXRoSW5TdGF0dXNiYXI6IGZhbHNlLFxyXG4gICAgbGluazoge1xyXG4gICAgICBub0ZvbGxvd0NoZWNrYm94OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG1pbkhlaWdodDogMTEwLFxyXG4gICAgaWZyYW1lOiBmYWxzZSxcclxuICAgIGltYWdlRGVmYXVsdFdpZHRoOiAyMDAsXHJcbiAgICBlZGl0SFRNTERvY3VtZW50TW9kZTogdHJ1ZSxcclxuICAgIGNsZWFuSFRNTDoge1xyXG4gICAgICBmaWxsRW1wdHlQYXJhZ3JhcGg6IHRydWVcclxuICAgIH0sXHJcbiAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICB0b29sYmFyQWRhcHRpdmU6IGZhbHNlLFxyXG4gICAgdG9vbGJhcklubGluZTogdHJ1ZSxcclxuICAgIHRvb2xiYXJJbmxpbmVGb3JTZWxlY3Rpb246IGZhbHNlLFxyXG4gICAgdG9vbGJhcklubGluZURpc2FibGVGb3I6IFtdLFxyXG4gICAgdG9vbGJhcklubGluZURpc2FibGVkQnV0dG9uczogWydzb3VyY2UnXSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIHJlYWRvbmx5OiBmYWxzZSxcclxuICAgIGFza0JlZm9yZVBhc3RlSFRNTDogZmFsc2UsXHJcbiAgICBkZWZhdWx0QWN0aW9uT25QYXN0ZTogJ2luc2VydF9vbmx5X3RleHQnLFxyXG4gICAgYXNrQmVmb3JlUGFzdGVGcm9tV29yZDogZmFsc2UsXHJcbiAgICBoaWRlUG93ZXJlZEJ5Sm9kaXQ6IHRydWUsXHJcbiAgICBiZWF1dGlmeUhUTUw6IHRydWUsXHJcbiAgICBhZGROZXdMaW5lOiB0cnVlLFxyXG4gICAgY3JlYXRlQXR0cmlidXRlczoge30sXHJcbiAgICBnZXRJY29uOiAoaWNvbk5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gY2hhbmdlSWNvbnNGdW5jdGlvbihpY29uTmFtZSk7XHJcbiAgICB9LFxyXG4gICAgZXZlbnRzOiB7XHJcbiAgICAgIGZvY3VzOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkKHRydWUpO1xyXG4gICAgICB9LFxyXG4gICAgICBibHVyOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdXBsb2FkZXI6IHtcclxuICAgIC8vICAgaW5zZXJ0SW1hZ2VBc0Jhc2U2NFVSSTogdHJ1ZVxyXG4gICAgLy8gfSxcclxuICAgIC8vIGxpbWl0Q2hhcnM6IDEwLFxyXG4gICAgLy8gbGltaXRIVE1MOiAxNzAsXHJcbiAgfTtcclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sYmFyITogVG9vbGJhckNvbmZpZztcclxuICBASW5wdXQoKSBwdWJsaWMgbWF4TGVuZ3RoID0gMDtcclxuICBASW5wdXQoKSBwdWJsaWMgbWluSGVpZ2h0ID0gMTEwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGlmcmFtZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0SW5saW5lU3R5bGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBhbnkgPSB0aGlzLmRlZmF1bHRDb25maWc7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBlZGl0SFRNTERvY3VtZW50TW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0TW9kZTogSW5wdXRFZGl0b3JNb2RlRW51bSA9IElucHV0RWRpdG9yTW9kZUVudW0uTU9ERV9XWVNJV1lHO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yRWxlbWVudFJlZicpIGVkaXRvckVsZW1lbnRSZWYhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SW5wdXRFZGl0b3JWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0RWRpdG9yVmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3Rvb2xiYXInXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jaGFuZ2VzWyd0b29sYmFyJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydtYXhMZW5ndGgnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCBsaW1pdENoYXJzOiBjaGFuZ2VzWydtYXhMZW5ndGgnXS5jdXJyZW50VmFsdWV9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0gey4uLnRoaXMuZGVmYXVsdENvbmZpZywgcGxhY2Vob2xkZXI6IGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsuLi50aGlzLmRlZmF1bHRDb25maWcsIGRpc2FibGVkOiBjaGFuZ2VzWydkaXNhYmxlZCddLmN1cnJlbnRWYWx1ZX07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1sncmVhZG9ubHknXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCByZWFkb25seTogY2hhbmdlc1sncmVhZG9ubHknXS5jdXJyZW50VmFsdWV9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2lmcmFtZSddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsuLi50aGlzLmRlZmF1bHRDb25maWcsIGlmcmFtZTogY2hhbmdlc1snaWZyYW1lJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydkZWZhdWx0SW5saW5lU3R5bGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0Q29uZmlnLFxyXG4gICAgICAgIGNyZWF0ZUF0dHJpYnV0ZXM6IHsuLi50aGlzLmRlZmF1bHRDb25maWcuY3JlYXRlQXR0cmlidXRlcywgLi4uZGVmYXVsdElubGluZVN0eWxlQ29uc3RhbnR9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snZWRpdEhUTUxEb2N1bWVudE1vZGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0Q29uZmlnLFxyXG4gICAgICAgIGVkaXRIVE1MRG9jdW1lbnRNb2RlOiBjaGFuZ2VzWydlZGl0SFRNTERvY3VtZW50TW9kZSddLmN1cnJlbnRWYWx1ZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2Fza0JlZm9yZVBhc3RlSFRNTCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsuLi50aGlzLmRlZmF1bHRDb25maWcsIGFza0JlZm9yZVBhc3RlSFRNTDogY2hhbmdlc1snYXNrQmVmb3JlUGFzdGVIVE1MJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZGVmYXVsdENvbmZpZyxcclxuICAgICAgICBhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkOiBjaGFuZ2VzWydhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkJ10uY3VycmVudFZhbHVlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snZGVmYXVsdE1vZGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCBkZWZhdWx0TW9kZTogY2hhbmdlc1snZGVmYXVsdE1vZGUnXS5jdXJyZW50VmFsdWV9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2RlZmF1bHRBY3Rpb25PblBhc3RlJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZGVmYXVsdENvbmZpZyxcclxuICAgICAgICBkZWZhdWx0QWN0aW9uT25QYXN0ZTogY2hhbmdlc1snZGVmYXVsdEFjdGlvbk9uUGFzdGUnXS5jdXJyZW50VmFsdWVcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydtaW5IZWlnaHQnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7Li4udGhpcy5kZWZhdWx0Q29uZmlnLCBtaW5IZWlnaHQ6IGNoYW5nZXNbJ21pbkhlaWdodCddLmN1cnJlbnRWYWx1ZX07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0gey4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0ludmFsaWRNZXNzYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5pbnZhbGlkTWVzc2FnZSB8fCAhIXRoaXMuaW52YWxpZE1lc3NhZ2U/Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gZmFsc2UgPyAnbXJ4LWlucHV0LWNoZWNrZWQtc3VjY2VzcycgOiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuY3VzdG9tQ2xhc3Nlc30gJHt0aGlzLmNoZWNrVmFsaWRDbGFzc2VzfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0UG9zaXRpb25UZXh0KHRleHQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5lZGl0b3JFbGVtZW50UmVmLmVkaXRvci5zLmluc2VydEhUTUwodGV4dCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlRm9jdXNlZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gIH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG91dHNpZGVWYWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5fc2FuaXRpemVWYWx1ZShvdXRzaWRlVmFsdWUpO1xyXG4gICAgaWYgKG91dHNpZGVWYWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLl9pc0luaXQgPSB0cnVlO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVZhbHVlKGluc2lkZVZhbHVlOiBzdHJpbmcpIHtcclxuXHJcbiAgICBpZiAodGhpcy5tYXhMZW5ndGgpIHtcclxuICAgICAgdGhpcy5fY2FsY3VsYXRlQ2hhcnRzQ291bnQoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pc0luaXQpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGluc2lkZVZhbHVlO1xyXG4gICAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh7dmFsdWU6IGluc2lkZVZhbHVlLCBpZDogdGhpcy51dWlkfSk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UoaW5zaWRlVmFsdWUpO1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2FuaXRpemVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnJlcGxhY2UoLzxzY3JpcHRcXGJbXjxdKig/Oig/ITxcXC9zY3JpcHQ+KTxbXjxdKikqPFxcL3NjcmlwdD4vZ2ksICcnKSA6IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQ2hhcnRzQ291bnQoKSB7XHJcbiAgICB0aGlzLnZhbHVlTGVuZ3RoID0gdGhpcy5lZGl0b3JFbGVtZW50UmVmLmVkaXRvci50ZXh0LnJlcGxhY2UoL1xccysvZywgJycpLmxlbmd0aDtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibXJ4LWVkaXRvclwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC1mb2N1c2VkXT1cImlzRm9jdXNlZFwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC1lcnJvcl09XCIhaXNWYWxpZCB8fCBpbnZhbGlkXCJcclxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbj5cclxuICA8bmd4LWpvZGl0XHJcbiAgICAjZWRpdG9yRWxlbWVudFJlZlxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICBbb3B0aW9uc109XCJkZWZhdWx0Q29uZmlnXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gID48L25neC1qb2RpdD5cclxuXHJcbiAgPG1yeC1lcnJvci1tZXNzYWdlXHJcbiAgICAqbmdJZj1cIighaXNWYWxpZCB8fCBpbnZhbGlkKSAmJiBpc0ludmFsaWRNZXNzYWdlXCJcclxuICAgIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiXHJcbiAgPjwvbXJ4LWVycm9yLW1lc3NhZ2U+XHJcblxyXG4gIDxtcngtY2hhcnMtbGVmdCBbbWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiIFt2YWx1ZUxlbmd0aF09XCJ2YWx1ZUxlbmd0aFwiPjwvbXJ4LWNoYXJzLWxlZnQ+XHJcblxyXG4gIDxtcngtc2F2ZS1zdGF0ZSB0eXBlPVwiZWRpdG9yXCIgW2lkXT1cInV1aWRcIiBbZmllbGRzXT1cImZpZWxkc1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
1
|
+
export var InputEditorModeEnum;
|
|
2
|
+
(function (InputEditorModeEnum) {
|
|
3
|
+
InputEditorModeEnum[InputEditorModeEnum["MODE_WYSIWYG"] = 1] = "MODE_WYSIWYG";
|
|
4
|
+
InputEditorModeEnum[InputEditorModeEnum["MODE_SOURCE"] = 2] = "MODE_SOURCE";
|
|
5
|
+
InputEditorModeEnum[InputEditorModeEnum["MODE_SPLIT"] = 3] = "MODE_SPLIT";
|
|
6
|
+
})(InputEditorModeEnum || (InputEditorModeEnum = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9lZGl0b3IvZWRpdG9yLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3Qiw2RUFBZ0IsQ0FBQTtJQUNoQiwyRUFBZSxDQUFBO0lBQ2YseUVBQWMsQ0FBQTtBQUNoQixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElucHV0RWRpdG9yVmFsdWVUeXBlcyA9IHN0cmluZztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRFZGl0b3JWYWx1ZVdpdGhJZCB7XHJcbiAgdmFsdWU6IElucHV0RWRpdG9yVmFsdWVUeXBlcyxcclxuICBpZDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIElucHV0RWRpdG9yTW9kZUVudW0ge1xyXG4gIE1PREVfV1lTSVdZRyA9IDEsXHJcbiAgTU9ERV9TT1VSQ0UgPSAyLFxyXG4gIE1PREVfU1BMSVQgPSAzXHJcbn1cclxuIl19
|
|
@@ -32,7 +32,7 @@ export class TableComponent {
|
|
|
32
32
|
customClasses = '';
|
|
33
33
|
emptyResultMsg = '';
|
|
34
34
|
hovered = true;
|
|
35
|
-
autoHeight = true;
|
|
35
|
+
autoHeight = true; // deprecated
|
|
36
36
|
headerSettings;
|
|
37
37
|
contentSettings = {
|
|
38
38
|
substrate: false
|
|
@@ -72,13 +72,6 @@ export class TableComponent {
|
|
|
72
72
|
});
|
|
73
73
|
this.changeDetector.detectChanges();
|
|
74
74
|
this.init = true;
|
|
75
|
-
if (this.autoHeight) {
|
|
76
|
-
document.querySelectorAll('.td-content-wrapper').forEach((wrapper) => {
|
|
77
|
-
const tdHeight = wrapper.closest('td')?.scrollHeight;
|
|
78
|
-
const link = wrapper;
|
|
79
|
-
link.style.height = tdHeight + 'px';
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
75
|
}
|
|
83
76
|
get getClasses() {
|
|
84
77
|
return `${TableTypeEnum[this.type]} ${this.customClasses}`;
|
|
@@ -190,7 +183,7 @@ export class TableComponent {
|
|
|
190
183
|
this.changeTypeTable.emit(type);
|
|
191
184
|
}
|
|
192
185
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
193
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TableComponent, selector: "mrx-table", inputs: { type: "type", data: "data", pageSize: "pageSize", currentPage: "currentPage", total: "total", link: "link", isLoading: "isLoading", sort: "sort", trackById: "trackById", sortable: "sortable", striped: "striped", customClasses: "customClasses", emptyResultMsg: "emptyResultMsg", hovered: "hovered", autoHeight: "autoHeight", headerSettings: "headerSettings", contentSettings: "contentSettings", paginatorSettings: "paginatorSettings", setPageable: ["pageable", "setPageable"] }, outputs: { dataStateChanged: "dataStateChanged", downloadData: "downloadData", changeTypeTable: "changeTypeTable", change: "change" }, queries: [{ propertyName: "templateCard", first: true, predicate: ["templateCard"], descendants: true }, { propertyName: "emptyResultMsgTemplate", first: true, predicate: ["emptyResultMsgTemplate"], descendants: true }, { propertyName: "contentChildren", predicate: ColumnComponent }], ngImport: i0, template: "<div class=\"mrx-table\" [class]=\"getClasses\" [class.mb-3]=\"pageable\">\r\n <ng-container *ngIf=\"headerSettings\">\r\n <div\r\n class=\"mrx-table-card-header pt-2 pb-2 mb-3\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'default'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-md-6 mb-1 mb-md-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"counterTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-md-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n <div class=\"ml-4\" *ngIf=\"headerSettings.toggle\">\r\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"mrx-table-card-header mb-3 pt-2 pb-2\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'second'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-sm-6 mb-1 mb-sm-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-sm-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"downloadTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container [ngSwitch]=\"type\">\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'default'\"\r\n [class.mrx-table__wrapper--substrate]=\"contentSettings.substrate\">\r\n <table\r\n [class.table-striped]=\"striped\"\r\n [class.table-solid]=\"!striped\"\r\n [class.mt-2]=\"contentSettings.substrate\"\r\n [class.mb-3]=\"contentSettings.substrate && data.length\"\r\n >\r\n <thead [class.table-head-gray]=\"!headerSettings || headerSettings.background\">\r\n <tr>\r\n <th *ngFor=\"let col of contentChildren; let index = index; let first = first; let last = last; trackBy: trackByFn\" [class]=\"col.customClasses\">\r\n <ng-container *ngIf=\"!col.templateHead; else headerItemTemplate\">\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <span>{{ col.label }}</span>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <div><span>{{ col.label }}</span></div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #headerItemTemplate>\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col }\"></ng-container>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let dataItem of data; let index = index; let first = first; let last = last\" [class.-hovered]=\"hovered\">\r\n <td\r\n #tableTD\r\n class=\"p-0\"\r\n *ngFor=\"let col of contentChildren\"\r\n [class]=\"col.customClasses\"\r\n >\r\n <a\r\n class=\"link-wrapper td-content-wrapper\"\r\n [href]=\"getLinkForStroke(link, dataItem)\"\r\n *ngIf=\"link && col['isLink']; else defaultTemplate\"\r\n >\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"p-2\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </a>\r\n\r\n <ng-template #defaultTemplate>\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"p-2 td-content-wrapper\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <div class=\"td-content-wrapper\">\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <div class=\"mrx-table__result-message\" *ngIf=\"!data.length\">\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\" >\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'cards'\">\r\n <ng-container *ngFor=\"let item of data; let index = index; let first = first; let last = last\">\r\n <ng-container *ngTemplateOutlet=\"templateCard; context: { $implicit: item, index, first, last }\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"mrx-table__result-message--substrate\" *ngIf=\"!data.length\" >\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\" >\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<div class=\"mrx-table__paginator pt-2 pb-2\" [class.mrx-table__paginator--substrate]=\"paginatorSettings.substrate\" *ngIf=\"total\">\r\n <mrx-paginator\r\n *ngIf=\"pageable\"\r\n [total]=\"total\"\r\n [pageSize]=\"pageSize\"\r\n [position]=\"pageable.position\"\r\n [pageSizes]=\"pageable.pageSizes\"\r\n [currentPage]=\"currentPage\"\r\n [withPageSize]=\"pageable.withPageSize\"\r\n (dataStateChanged)=\"onDataStatePaginatorChanged($event)\">\r\n </mrx-paginator>\r\n</div>\r\n\r\n<ng-template #counterTemplate>\r\n <span class=\"d-flex align-items-center\" *ngIf=\"headerSettings?.count\">\r\n {{ total }} {{headerSettings?.countText || '\u043D\u043E\u0432\u043E\u0441\u0442\u0435\u0439'}}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #sortTemplate>\r\n <div class=\"d-flex mrx-table-sort\" *ngIf=\"headerSettings?.sort\">\r\n <div class=\"mrx-table-sort-scale\" (click)=\"changeSort()\">\r\n <span class=\"mrx-table-sort-scale__title\">\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E:</span>\r\n <div class=\"mrx-table-sort-scale__icon\">\r\n <span *ngIf=\"sort?.dir === 'desc'\" class=\"mrx-icon icon-sorting-down icon-font-16\"></span>\r\n <span *ngIf=\"sort?.dir === 'asc'\" class=\"mrx-icon icon-sorting-up icon-font-16\"></span>\r\n </div>\r\n </div>\r\n <ng-select\r\n bindLabel=\"sortLabel\"\r\n bindValue=\"name\"\r\n [items]=\"colArray\"\r\n [ngModel]=\"selectedSort\"\r\n (change)=\"updateSortSelect($event)\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n ></ng-select>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #downloadTemplate>\r\n <div class=\"mrx-table-download\" (click)=\"clickToDownload($event)\" *ngIf=\"headerSettings?.download\">\r\n <span class=\"desktop\">\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435</span>\r\n <span class=\"mrx-icon icon-download icon-font-24\"></span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #toggleTemplate>\r\n <div class=\"mrx-table-toggle\">\r\n <div class=\"mrx-table-toggle--item mr-1\" (click)=\"onChangeTypeTable('cards')\" [class.active]=\"type === 'cards'\">\r\n <span class=\"mrx-icon icon-cards-view icon-font-24\"></span>\r\n </div>\r\n <div class=\"mrx-table-toggle--item\" (click)=\"onChangeTypeTable('default')\" [class.active]=\"type === 'default'\">\r\n <span class=\"mrx-icon icon-table-view icon-font-24\"></span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #emptyResultMsgTemplateDefault>\r\n {{emptyResultMsg}}\r\n</ng-template>\r\n", styles: [".mrx-table.mrx-table{display:block;width:100%}.mrx-table.mrx-table .th-wrapper{display:flex;cursor:pointer;word-break:inherit;justify-content:space-between;align-items:flex-end}.mrx-table.mrx-table .th-wrapper span{word-break:inherit}.mrx-table.mrx-table .mrx-table__sort-icon.asc path:last-child{fill:var(--brand-bg-primary-default)}.mrx-table.mrx-table .mrx-table__sort-icon.desc path:first-child{fill:var(--brand-bg-primary-default)}.mrx-table__wrapper.mrx-table__wrapper{overflow-x:auto;overflow-y:hidden;position:relative}.mrx-table__wrapper.mrx-table__wrapper .mrx-table__wrapper--substrate{padding-top:8px}.mrx-table.mrx-table.type-default table{width:100%;text-align:left;background-color:transparent;border-spacing:0}.mrx-table.mrx-table.type-default table thead.table-head-gray{background:var(--neutral-bg-island-default)}.mrx-table.mrx-table.type-default table thead .sort-asc .custom-table__sort path:nth-child(2){fill:var(--brand-bg-primary-default)}.mrx-table.mrx-table.type-default table thead .sort-desc .custom-table__sort path:nth-child(1){fill:var(--brand-bg-primary-default)}.mrx-table.mrx-table.type-default table td{max-width:340px;vertical-align:top}.mrx-table.mrx-table.type-default table td .link-wrapper{display:block;color:initial;height:100%}.mrx-table.mrx-table.type-default table td .link-wrapper:active{color:var(--neutral-text-primary)}.mrx-table.mrx-table.type-default table td .left-border{border-left:4px solid var(--brand-bg-primary-default)}.mrx-table.mrx-table.type-default table td .light-border{border-left:4px solid transparent}.mrx-table.mrx-table.type-default table td .warning-back{background-color:#ffece7}.mrx-table.mrx-table.type-default table td .disabled-back{background-color:#fafafa}.mrx-table.mrx-table.type-default table td .link-colored,.mrx-table.mrx-table.type-default table td .link-colored:active{color:var(--brand-bg-primary-default)}.mrx-table.mrx-table.type-default table th{padding:8px;vertical-align:bottom;word-break:inherit;font-weight:700}.mrx-table.mrx-table.type-default table th svg{margin-left:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-card-header{position:relative}.mrx-table.mrx-table .mrx-table-card-header--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table__wrapper--substrate{background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table-toggle{display:flex}.mrx-table.mrx-table .mrx-table-toggle--item{display:flex;align-items:center;justify-content:center;cursor:pointer}.mrx-table.mrx-table .mrx-table-toggle--item .mrx-icon{color:#e5e5e5}.mrx-table.mrx-table .mrx-table-toggle--item.active .mrx-icon{color:var(--brand-bg-primary-default)}.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-card,.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-table{justify-content:flex-start}.mrx-table.mrx-table .mrx-table-sort-scale{display:flex;align-items:center;margin-right:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-sort-scale__title{font-family:PT Sans;font-style:normal;font-weight:400;font-size:14px;line-height:143%;color:var(--Main1);margin-right:12px}.mrx-table.mrx-table .mrx-table-sort-scale__icon{display:flex;align-items:center;justify-content:center}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select{max-width:215px;margin-bottom:0}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-select-container.ng-select-container{min-height:auto!important;border:none;cursor:pointer;align-items:center;height:100%!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-value-container.ng-value-container{padding-left:0!important;margin-right:8px}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-arrow-wrapper.ng-arrow-wrapper{min-height:auto;width:auto!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-dropdown-panel.ng-dropdown-panel{width:100vw;max-width:215px;left:auto;right:0}.mrx-table__paginator.mrx-table__paginator.mrx-table__paginator--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .table-striped tbody tr:nth-child(2n){background-color:var(--neutral-bg-island-default)}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n){transition:.2s}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n).-hovered:hover{background-color:var(--brand-bg-tertiary-hover)}.mrx-table.mrx-table .table-solid{border-collapse:collapse}.mrx-table.mrx-table .table-solid thead tr{border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr:not(:last-child){border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr.-hovered:hover{box-shadow:0 1px 4px #3a3a3a4d}.mrx-table.mrx-table .mrx-table__wrapper .mrx-table__overlay{position:absolute;inset:0;background:#ffffffb3;display:flex;align-items:flex-start;justify-content:center;padding-top:12px;border-radius:4px}.mrx-table.mrx-table .mrx-table__result-message{display:flex;justify-content:center;width:100%;padding:16px;font-weight:400;font-size:14px;line-height:16px;color:var(--neutral-text-primary)}.mrx-table.mrx-table .mrx-table__result-message--substrate{display:flex;justify-content:center;width:100%;font-weight:400;font-size:16px;line-height:24px;color:var(--neutral-text-primary);padding:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px;position:relative}.mrx-table.mrx-table .mrx-table-download{display:flex;align-items:center;justify-content:flex-end;cursor:pointer}.mrx-table.mrx-table .mrx-table-download span{margin-right:8px;color:var(--brand-bg-primary-default)}.mrx-table.mrx-table .mrx-table-download svg path{stroke:var(--brand-bg-primary-default)}.mrx-table.mrx-table .mrx-table-counter{font-family:var(--body-lg-font-family);font-size:var(--body-lg-font-size);font-weight:var(--body-lg-font-weight);line-height:var(--body-lg-line-height)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.PaginatorComponent, selector: "mrx-paginator", inputs: ["pageSizes", "currentPage", "pageSize", "total", "customClasses", "isEmptyPaginator", "isPaginatorText", "paginatorText", "position", "withPageSize"], outputs: ["dataStateChanged"] }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }], animations: [
|
|
186
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TableComponent, selector: "mrx-table", inputs: { type: "type", data: "data", pageSize: "pageSize", currentPage: "currentPage", total: "total", link: "link", isLoading: "isLoading", sort: "sort", trackById: "trackById", sortable: "sortable", striped: "striped", customClasses: "customClasses", emptyResultMsg: "emptyResultMsg", hovered: "hovered", autoHeight: "autoHeight", headerSettings: "headerSettings", contentSettings: "contentSettings", paginatorSettings: "paginatorSettings", setPageable: ["pageable", "setPageable"] }, outputs: { dataStateChanged: "dataStateChanged", downloadData: "downloadData", changeTypeTable: "changeTypeTable", change: "change" }, queries: [{ propertyName: "templateCard", first: true, predicate: ["templateCard"], descendants: true }, { propertyName: "emptyResultMsgTemplate", first: true, predicate: ["emptyResultMsgTemplate"], descendants: true }, { propertyName: "contentChildren", predicate: ColumnComponent }], ngImport: i0, template: "<div class=\"mrx-table\" [class]=\"getClasses\" [class.mb-3]=\"pageable\">\r\n <ng-container *ngIf=\"headerSettings\">\r\n <div\r\n class=\"mrx-table-card-header pt-2 pb-2 mb-3\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'default'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-md-6 mb-1 mb-md-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"counterTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-md-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n <div class=\"ml-4\" *ngIf=\"headerSettings.toggle\">\r\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"mrx-table-card-header mb-3 pt-2 pb-2\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'second'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-sm-6 mb-1 mb-sm-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-sm-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"downloadTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container [ngSwitch]=\"type\">\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'default'\"\r\n [class.mrx-table__wrapper--substrate]=\"contentSettings.substrate\">\r\n <table\r\n [class.table-striped]=\"striped\"\r\n [class.table-solid]=\"!striped\"\r\n [class.mt-2]=\"contentSettings.substrate\"\r\n [class.mb-3]=\"contentSettings.substrate && data.length\"\r\n >\r\n <thead [class.table-head-gray]=\"!headerSettings || headerSettings.background\">\r\n <tr>\r\n <th *ngFor=\"let col of contentChildren; let index = index; let first = first; let last = last; trackBy: trackByFn\" [class]=\"col.customClasses\">\r\n <ng-container *ngIf=\"!col.templateHead; else headerItemTemplate\">\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <span>{{ col.label }}</span>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <div><span>{{ col.label }}</span></div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #headerItemTemplate>\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col }\"></ng-container>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let dataItem of data; let index = index; let first = first; let last = last\" [class.-hovered]=\"hovered\">\r\n <td\r\n #tableTD\r\n class=\"p-0\"\r\n *ngFor=\"let col of contentChildren\"\r\n [class]=\"col.customClasses\"\r\n >\r\n <a\r\n class=\"link-wrapper td-content-wrapper\"\r\n [href]=\"getLinkForStroke(link, dataItem)\"\r\n *ngIf=\"link && col['isLink']; else defaultTemplate\"\r\n >\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"p-2 h-100\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </a>\r\n\r\n <ng-template #defaultTemplate>\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"td-content-wrapper p-2 h-100\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <div class=\"td-content-wrapper h-100\">\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <div class=\"mrx-table__result-message\" *ngIf=\"!data.length\">\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\" >\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'cards'\">\r\n <ng-container *ngFor=\"let item of data; let index = index; let first = first; let last = last\">\r\n <ng-container *ngTemplateOutlet=\"templateCard; context: { $implicit: item, index, first, last }\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"mrx-table__result-message--substrate\" *ngIf=\"!data.length\" >\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\" >\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<div class=\"mrx-table__paginator pt-2 pb-2\" [class.mrx-table__paginator--substrate]=\"paginatorSettings.substrate\" *ngIf=\"total\">\r\n <mrx-paginator\r\n *ngIf=\"pageable\"\r\n [total]=\"total\"\r\n [pageSize]=\"pageSize\"\r\n [position]=\"pageable.position\"\r\n [pageSizes]=\"pageable.pageSizes\"\r\n [currentPage]=\"currentPage\"\r\n [withPageSize]=\"pageable.withPageSize\"\r\n (dataStateChanged)=\"onDataStatePaginatorChanged($event)\">\r\n </mrx-paginator>\r\n</div>\r\n\r\n<ng-template #counterTemplate>\r\n <span class=\"d-flex align-items-center\" *ngIf=\"headerSettings?.count\">\r\n {{ total }} {{headerSettings?.countText || '\u043D\u043E\u0432\u043E\u0441\u0442\u0435\u0439'}}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #sortTemplate>\r\n <div class=\"d-flex mrx-table-sort\" *ngIf=\"headerSettings?.sort\">\r\n <div class=\"mrx-table-sort-scale\" (click)=\"changeSort()\">\r\n <span class=\"mrx-table-sort-scale__title\">\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E:</span>\r\n <div class=\"mrx-table-sort-scale__icon\">\r\n <span *ngIf=\"sort?.dir === 'desc'\" class=\"mrx-icon icon-sorting-down icon-font-16\"></span>\r\n <span *ngIf=\"sort?.dir === 'asc'\" class=\"mrx-icon icon-sorting-up icon-font-16\"></span>\r\n </div>\r\n </div>\r\n <ng-select\r\n bindLabel=\"sortLabel\"\r\n bindValue=\"name\"\r\n [items]=\"colArray\"\r\n [ngModel]=\"selectedSort\"\r\n (change)=\"updateSortSelect($event)\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n ></ng-select>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #downloadTemplate>\r\n <div class=\"mrx-table-download\" (click)=\"clickToDownload($event)\" *ngIf=\"headerSettings?.download\">\r\n <span class=\"desktop\">\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435</span>\r\n <span class=\"mrx-icon icon-download icon-font-24\"></span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #toggleTemplate>\r\n <div class=\"mrx-table-toggle\">\r\n <div class=\"mrx-table-toggle--item mr-1\" (click)=\"onChangeTypeTable('cards')\" [class.active]=\"type === 'cards'\">\r\n <span class=\"mrx-icon icon-cards-view icon-font-24\"></span>\r\n </div>\r\n <div class=\"mrx-table-toggle--item\" (click)=\"onChangeTypeTable('default')\" [class.active]=\"type === 'default'\">\r\n <span class=\"mrx-icon icon-table-view icon-font-24\"></span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #emptyResultMsgTemplateDefault>\r\n {{emptyResultMsg}}\r\n</ng-template>\r\n", styles: [".mrx-table.mrx-table{display:block;width:100%}.mrx-table.mrx-table table td{height:1px}.mrx-table.mrx-table .th-wrapper{display:flex;cursor:pointer;word-break:inherit;justify-content:space-between;align-items:flex-end}.mrx-table.mrx-table .th-wrapper span{word-break:inherit}.mrx-table.mrx-table .mrx-table__sort-icon.asc path:last-child{fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table__sort-icon.desc path:first-child{fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table__wrapper.mrx-table__wrapper{overflow-x:auto;overflow-y:hidden;position:relative}.mrx-table__wrapper.mrx-table__wrapper .mrx-table__wrapper--substrate{padding-top:8px}.mrx-table.mrx-table.type-default table{width:100%;text-align:left;background-color:transparent;border-spacing:0}.mrx-table.mrx-table.type-default table thead.table-head-gray{background:var(--neutral-bg-island-default, #F8F9FA)}.mrx-table.mrx-table.type-default table thead .sort-asc .custom-table__sort path:nth-child(2){fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table thead .sort-desc .custom-table__sort path:nth-child(1){fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table td{max-width:340px;vertical-align:top}.mrx-table.mrx-table.type-default table td .link-wrapper{display:block;color:initial;height:100%}.mrx-table.mrx-table.type-default table td .link-wrapper:active{color:var(--neutral-text-primary, #262626)}.mrx-table.mrx-table.type-default table td .left-border{border-left:4px solid var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table td .light-border{border-left:4px solid transparent}.mrx-table.mrx-table.type-default table td .warning-back{background-color:#ffece7}.mrx-table.mrx-table.type-default table td .disabled-back{background-color:#fafafa}.mrx-table.mrx-table.type-default table td .link-colored,.mrx-table.mrx-table.type-default table td .link-colored:active{color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table th{padding:8px;vertical-align:bottom;word-break:inherit;font-weight:700}.mrx-table.mrx-table.type-default table th svg{margin-left:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-card-header{position:relative}.mrx-table.mrx-table .mrx-table-card-header--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table__wrapper--substrate{background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table-toggle{display:flex}.mrx-table.mrx-table .mrx-table-toggle--item{display:flex;align-items:center;justify-content:center;cursor:pointer}.mrx-table.mrx-table .mrx-table-toggle--item .mrx-icon{color:#e5e5e5}.mrx-table.mrx-table .mrx-table-toggle--item.active .mrx-icon{color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-card,.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-table{justify-content:flex-start}.mrx-table.mrx-table .mrx-table-sort-scale{display:flex;align-items:center;margin-right:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-sort-scale__title{font-family:PT Sans;font-style:normal;font-weight:400;font-size:14px;line-height:143%;color:var(--neutral-text-primary, #262626);margin-right:12px}.mrx-table.mrx-table .mrx-table-sort-scale__icon{display:flex;align-items:center;justify-content:center}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select{max-width:215px;margin-bottom:0}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-select-container.ng-select-container{min-height:auto!important;border:none;cursor:pointer;align-items:center;height:100%!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-value-container.ng-value-container{padding-left:0!important;margin-right:8px}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-arrow-wrapper.ng-arrow-wrapper{min-height:auto;width:auto!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-dropdown-panel.ng-dropdown-panel{width:100vw;max-width:215px;left:auto;right:0}.mrx-table__paginator.mrx-table__paginator.mrx-table__paginator--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .table-striped tbody tr:nth-child(2n){background-color:var(--neutral-bg-island-default, #F8F9FA)}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n){transition:.2s}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n).-hovered:hover{background-color:var(--brand-bg-tertiary-hover, #edf5ff)}.mrx-table.mrx-table .table-solid{border-collapse:collapse}.mrx-table.mrx-table .table-solid thead tr{border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr:not(:last-child){border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr.-hovered:hover{box-shadow:0 1px 4px #3a3a3a4d}.mrx-table.mrx-table .mrx-table__wrapper .mrx-table__overlay{position:absolute;inset:0;background:#ffffffb3;display:flex;align-items:flex-start;justify-content:center;padding-top:12px;border-radius:4px}.mrx-table .mrx-table__result-message{display:flex;justify-content:center;width:100%;padding:var(--spacing-4);font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);font-size:var(--body-md-font-size);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary)}.mrx-table .mrx-table__result-message *{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);font-size:var(--body-md-font-size);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary)}.mrx-table .mrx-table__result-message--substrate{display:flex;justify-content:center;width:100%;font-weight:400;font-size:16px;line-height:24px;color:var(--neutral-text-primary, #262626);padding:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px;position:relative}.mrx-table.mrx-table .mrx-table-download{display:flex;align-items:center;justify-content:flex-end;cursor:pointer}.mrx-table.mrx-table .mrx-table-download span{margin-right:8px;color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-download svg path{stroke:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-counter{font-family:var(--body-lg-font-family);font-size:var(--body-lg-font-size);font-weight:var(--body-lg-font-weight);line-height:var(--body-lg-line-height)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.PaginatorComponent, selector: "mrx-paginator", inputs: ["pageSizes", "currentPage", "pageSize", "total", "customClasses", "isEmptyPaginator", "isPaginatorText", "paginatorText", "position", "withPageSize"], outputs: ["dataStateChanged"] }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }], animations: [
|
|
194
187
|
trigger('visibleLoading', [
|
|
195
188
|
state('in', style({ opacity: 1, visibility: 'visible' })),
|
|
196
189
|
state('out', style({ opacity: 0, visibility: 'hidden' })),
|
|
@@ -220,7 +213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
220
213
|
animate('300ms ease-in-out', style({ opacity: 1 }))
|
|
221
214
|
])])
|
|
222
215
|
])
|
|
223
|
-
], template: "<div class=\"mrx-table\" [class]=\"getClasses\" [class.mb-3]=\"pageable\">\r\n <ng-container *ngIf=\"headerSettings\">\r\n <div\r\n class=\"mrx-table-card-header pt-2 pb-2 mb-3\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'default'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-md-6 mb-1 mb-md-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"counterTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-md-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n <div class=\"ml-4\" *ngIf=\"headerSettings.toggle\">\r\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"mrx-table-card-header mb-3 pt-2 pb-2\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'second'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-sm-6 mb-1 mb-sm-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-sm-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"downloadTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container [ngSwitch]=\"type\">\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'default'\"\r\n [class.mrx-table__wrapper--substrate]=\"contentSettings.substrate\">\r\n <table\r\n [class.table-striped]=\"striped\"\r\n [class.table-solid]=\"!striped\"\r\n [class.mt-2]=\"contentSettings.substrate\"\r\n [class.mb-3]=\"contentSettings.substrate && data.length\"\r\n >\r\n <thead [class.table-head-gray]=\"!headerSettings || headerSettings.background\">\r\n <tr>\r\n <th *ngFor=\"let col of contentChildren; let index = index; let first = first; let last = last; trackBy: trackByFn\" [class]=\"col.customClasses\">\r\n <ng-container *ngIf=\"!col.templateHead; else headerItemTemplate\">\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <span>{{ col.label }}</span>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <div><span>{{ col.label }}</span></div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #headerItemTemplate>\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col }\"></ng-container>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let dataItem of data; let index = index; let first = first; let last = last\" [class.-hovered]=\"hovered\">\r\n <td\r\n #tableTD\r\n class=\"p-0\"\r\n *ngFor=\"let col of contentChildren\"\r\n [class]=\"col.customClasses\"\r\n >\r\n <a\r\n class=\"link-wrapper td-content-wrapper\"\r\n [href]=\"getLinkForStroke(link, dataItem)\"\r\n *ngIf=\"link && col['isLink']; else defaultTemplate\"\r\n >\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"p-2\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </a>\r\n\r\n <ng-template #defaultTemplate>\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"p-2 td-content-wrapper\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <div class=\"td-content-wrapper\">\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <div class=\"mrx-table__result-message\" *ngIf=\"!data.length\">\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\" >\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'cards'\">\r\n <ng-container *ngFor=\"let item of data; let index = index; let first = first; let last = last\">\r\n <ng-container *ngTemplateOutlet=\"templateCard; context: { $implicit: item, index, first, last }\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"mrx-table__result-message--substrate\" *ngIf=\"!data.length\" >\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\" >\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<div class=\"mrx-table__paginator pt-2 pb-2\" [class.mrx-table__paginator--substrate]=\"paginatorSettings.substrate\" *ngIf=\"total\">\r\n <mrx-paginator\r\n *ngIf=\"pageable\"\r\n [total]=\"total\"\r\n [pageSize]=\"pageSize\"\r\n [position]=\"pageable.position\"\r\n [pageSizes]=\"pageable.pageSizes\"\r\n [currentPage]=\"currentPage\"\r\n [withPageSize]=\"pageable.withPageSize\"\r\n (dataStateChanged)=\"onDataStatePaginatorChanged($event)\">\r\n </mrx-paginator>\r\n</div>\r\n\r\n<ng-template #counterTemplate>\r\n <span class=\"d-flex align-items-center\" *ngIf=\"headerSettings?.count\">\r\n {{ total }} {{headerSettings?.countText || '\u043D\u043E\u0432\u043E\u0441\u0442\u0435\u0439'}}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #sortTemplate>\r\n <div class=\"d-flex mrx-table-sort\" *ngIf=\"headerSettings?.sort\">\r\n <div class=\"mrx-table-sort-scale\" (click)=\"changeSort()\">\r\n <span class=\"mrx-table-sort-scale__title\">\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E:</span>\r\n <div class=\"mrx-table-sort-scale__icon\">\r\n <span *ngIf=\"sort?.dir === 'desc'\" class=\"mrx-icon icon-sorting-down icon-font-16\"></span>\r\n <span *ngIf=\"sort?.dir === 'asc'\" class=\"mrx-icon icon-sorting-up icon-font-16\"></span>\r\n </div>\r\n </div>\r\n <ng-select\r\n bindLabel=\"sortLabel\"\r\n bindValue=\"name\"\r\n [items]=\"colArray\"\r\n [ngModel]=\"selectedSort\"\r\n (change)=\"updateSortSelect($event)\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n ></ng-select>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #downloadTemplate>\r\n <div class=\"mrx-table-download\" (click)=\"clickToDownload($event)\" *ngIf=\"headerSettings?.download\">\r\n <span class=\"desktop\">\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435</span>\r\n <span class=\"mrx-icon icon-download icon-font-24\"></span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #toggleTemplate>\r\n <div class=\"mrx-table-toggle\">\r\n <div class=\"mrx-table-toggle--item mr-1\" (click)=\"onChangeTypeTable('cards')\" [class.active]=\"type === 'cards'\">\r\n <span class=\"mrx-icon icon-cards-view icon-font-24\"></span>\r\n </div>\r\n <div class=\"mrx-table-toggle--item\" (click)=\"onChangeTypeTable('default')\" [class.active]=\"type === 'default'\">\r\n <span class=\"mrx-icon icon-table-view icon-font-24\"></span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #emptyResultMsgTemplateDefault>\r\n {{emptyResultMsg}}\r\n</ng-template>\r\n", styles: [".mrx-table.mrx-table{display:block;width:100%}.mrx-table.mrx-table .th-wrapper{display:flex;cursor:pointer;word-break:inherit;justify-content:space-between;align-items:flex-end}.mrx-table.mrx-table .th-wrapper span{word-break:inherit}.mrx-table.mrx-table .mrx-table__sort-icon.asc path:last-child{fill:var(--brand-bg-primary-default)}.mrx-table.mrx-table .mrx-table__sort-icon.desc path:first-child{fill:var(--brand-bg-primary-default)}.mrx-table__wrapper.mrx-table__wrapper{overflow-x:auto;overflow-y:hidden;position:relative}.mrx-table__wrapper.mrx-table__wrapper .mrx-table__wrapper--substrate{padding-top:8px}.mrx-table.mrx-table.type-default table{width:100%;text-align:left;background-color:transparent;border-spacing:0}.mrx-table.mrx-table.type-default table thead.table-head-gray{background:var(--neutral-bg-island-default)}.mrx-table.mrx-table.type-default table thead .sort-asc .custom-table__sort path:nth-child(2){fill:var(--brand-bg-primary-default)}.mrx-table.mrx-table.type-default table thead .sort-desc .custom-table__sort path:nth-child(1){fill:var(--brand-bg-primary-default)}.mrx-table.mrx-table.type-default table td{max-width:340px;vertical-align:top}.mrx-table.mrx-table.type-default table td .link-wrapper{display:block;color:initial;height:100%}.mrx-table.mrx-table.type-default table td .link-wrapper:active{color:var(--neutral-text-primary)}.mrx-table.mrx-table.type-default table td .left-border{border-left:4px solid var(--brand-bg-primary-default)}.mrx-table.mrx-table.type-default table td .light-border{border-left:4px solid transparent}.mrx-table.mrx-table.type-default table td .warning-back{background-color:#ffece7}.mrx-table.mrx-table.type-default table td .disabled-back{background-color:#fafafa}.mrx-table.mrx-table.type-default table td .link-colored,.mrx-table.mrx-table.type-default table td .link-colored:active{color:var(--brand-bg-primary-default)}.mrx-table.mrx-table.type-default table th{padding:8px;vertical-align:bottom;word-break:inherit;font-weight:700}.mrx-table.mrx-table.type-default table th svg{margin-left:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-card-header{position:relative}.mrx-table.mrx-table .mrx-table-card-header--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table__wrapper--substrate{background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table-toggle{display:flex}.mrx-table.mrx-table .mrx-table-toggle--item{display:flex;align-items:center;justify-content:center;cursor:pointer}.mrx-table.mrx-table .mrx-table-toggle--item .mrx-icon{color:#e5e5e5}.mrx-table.mrx-table .mrx-table-toggle--item.active .mrx-icon{color:var(--brand-bg-primary-default)}.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-card,.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-table{justify-content:flex-start}.mrx-table.mrx-table .mrx-table-sort-scale{display:flex;align-items:center;margin-right:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-sort-scale__title{font-family:PT Sans;font-style:normal;font-weight:400;font-size:14px;line-height:143%;color:var(--Main1);margin-right:12px}.mrx-table.mrx-table .mrx-table-sort-scale__icon{display:flex;align-items:center;justify-content:center}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select{max-width:215px;margin-bottom:0}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-select-container.ng-select-container{min-height:auto!important;border:none;cursor:pointer;align-items:center;height:100%!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-value-container.ng-value-container{padding-left:0!important;margin-right:8px}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-arrow-wrapper.ng-arrow-wrapper{min-height:auto;width:auto!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-dropdown-panel.ng-dropdown-panel{width:100vw;max-width:215px;left:auto;right:0}.mrx-table__paginator.mrx-table__paginator.mrx-table__paginator--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .table-striped tbody tr:nth-child(2n){background-color:var(--neutral-bg-island-default)}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n){transition:.2s}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n).-hovered:hover{background-color:var(--brand-bg-tertiary-hover)}.mrx-table.mrx-table .table-solid{border-collapse:collapse}.mrx-table.mrx-table .table-solid thead tr{border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr:not(:last-child){border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr.-hovered:hover{box-shadow:0 1px 4px #3a3a3a4d}.mrx-table.mrx-table .mrx-table__wrapper .mrx-table__overlay{position:absolute;inset:0;background:#ffffffb3;display:flex;align-items:flex-start;justify-content:center;padding-top:12px;border-radius:4px}.mrx-table.mrx-table .mrx-table__result-message{display:flex;justify-content:center;width:100%;padding:16px;font-weight:400;font-size:14px;line-height:16px;color:var(--neutral-text-primary)}.mrx-table.mrx-table .mrx-table__result-message--substrate{display:flex;justify-content:center;width:100%;font-weight:400;font-size:16px;line-height:24px;color:var(--neutral-text-primary);padding:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px;position:relative}.mrx-table.mrx-table .mrx-table-download{display:flex;align-items:center;justify-content:flex-end;cursor:pointer}.mrx-table.mrx-table .mrx-table-download span{margin-right:8px;color:var(--brand-bg-primary-default)}.mrx-table.mrx-table .mrx-table-download svg path{stroke:var(--brand-bg-primary-default)}.mrx-table.mrx-table .mrx-table-counter{font-family:var(--body-lg-font-family);font-size:var(--body-lg-font-size);font-weight:var(--body-lg-font-weight);line-height:var(--body-lg-line-height)}\n"] }]
|
|
216
|
+
], template: "<div class=\"mrx-table\" [class]=\"getClasses\" [class.mb-3]=\"pageable\">\r\n <ng-container *ngIf=\"headerSettings\">\r\n <div\r\n class=\"mrx-table-card-header pt-2 pb-2 mb-3\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'default'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-md-6 mb-1 mb-md-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"counterTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-md-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n <div class=\"ml-4\" *ngIf=\"headerSettings.toggle\">\r\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"mrx-table-card-header mb-3 pt-2 pb-2\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'second'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-sm-6 mb-1 mb-sm-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-sm-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"downloadTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container [ngSwitch]=\"type\">\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'default'\"\r\n [class.mrx-table__wrapper--substrate]=\"contentSettings.substrate\">\r\n <table\r\n [class.table-striped]=\"striped\"\r\n [class.table-solid]=\"!striped\"\r\n [class.mt-2]=\"contentSettings.substrate\"\r\n [class.mb-3]=\"contentSettings.substrate && data.length\"\r\n >\r\n <thead [class.table-head-gray]=\"!headerSettings || headerSettings.background\">\r\n <tr>\r\n <th *ngFor=\"let col of contentChildren; let index = index; let first = first; let last = last; trackBy: trackByFn\" [class]=\"col.customClasses\">\r\n <ng-container *ngIf=\"!col.templateHead; else headerItemTemplate\">\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <span>{{ col.label }}</span>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <div><span>{{ col.label }}</span></div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #headerItemTemplate>\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col }\"></ng-container>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let dataItem of data; let index = index; let first = first; let last = last\" [class.-hovered]=\"hovered\">\r\n <td\r\n #tableTD\r\n class=\"p-0\"\r\n *ngFor=\"let col of contentChildren\"\r\n [class]=\"col.customClasses\"\r\n >\r\n <a\r\n class=\"link-wrapper td-content-wrapper\"\r\n [href]=\"getLinkForStroke(link, dataItem)\"\r\n *ngIf=\"link && col['isLink']; else defaultTemplate\"\r\n >\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"p-2 h-100\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </a>\r\n\r\n <ng-template #defaultTemplate>\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"td-content-wrapper p-2 h-100\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <div class=\"td-content-wrapper h-100\">\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <div class=\"mrx-table__result-message\" *ngIf=\"!data.length\">\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\" >\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'cards'\">\r\n <ng-container *ngFor=\"let item of data; let index = index; let first = first; let last = last\">\r\n <ng-container *ngTemplateOutlet=\"templateCard; context: { $implicit: item, index, first, last }\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"mrx-table__result-message--substrate\" *ngIf=\"!data.length\" >\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\" >\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<div class=\"mrx-table__paginator pt-2 pb-2\" [class.mrx-table__paginator--substrate]=\"paginatorSettings.substrate\" *ngIf=\"total\">\r\n <mrx-paginator\r\n *ngIf=\"pageable\"\r\n [total]=\"total\"\r\n [pageSize]=\"pageSize\"\r\n [position]=\"pageable.position\"\r\n [pageSizes]=\"pageable.pageSizes\"\r\n [currentPage]=\"currentPage\"\r\n [withPageSize]=\"pageable.withPageSize\"\r\n (dataStateChanged)=\"onDataStatePaginatorChanged($event)\">\r\n </mrx-paginator>\r\n</div>\r\n\r\n<ng-template #counterTemplate>\r\n <span class=\"d-flex align-items-center\" *ngIf=\"headerSettings?.count\">\r\n {{ total }} {{headerSettings?.countText || '\u043D\u043E\u0432\u043E\u0441\u0442\u0435\u0439'}}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #sortTemplate>\r\n <div class=\"d-flex mrx-table-sort\" *ngIf=\"headerSettings?.sort\">\r\n <div class=\"mrx-table-sort-scale\" (click)=\"changeSort()\">\r\n <span class=\"mrx-table-sort-scale__title\">\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E:</span>\r\n <div class=\"mrx-table-sort-scale__icon\">\r\n <span *ngIf=\"sort?.dir === 'desc'\" class=\"mrx-icon icon-sorting-down icon-font-16\"></span>\r\n <span *ngIf=\"sort?.dir === 'asc'\" class=\"mrx-icon icon-sorting-up icon-font-16\"></span>\r\n </div>\r\n </div>\r\n <ng-select\r\n bindLabel=\"sortLabel\"\r\n bindValue=\"name\"\r\n [items]=\"colArray\"\r\n [ngModel]=\"selectedSort\"\r\n (change)=\"updateSortSelect($event)\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n ></ng-select>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #downloadTemplate>\r\n <div class=\"mrx-table-download\" (click)=\"clickToDownload($event)\" *ngIf=\"headerSettings?.download\">\r\n <span class=\"desktop\">\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435</span>\r\n <span class=\"mrx-icon icon-download icon-font-24\"></span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #toggleTemplate>\r\n <div class=\"mrx-table-toggle\">\r\n <div class=\"mrx-table-toggle--item mr-1\" (click)=\"onChangeTypeTable('cards')\" [class.active]=\"type === 'cards'\">\r\n <span class=\"mrx-icon icon-cards-view icon-font-24\"></span>\r\n </div>\r\n <div class=\"mrx-table-toggle--item\" (click)=\"onChangeTypeTable('default')\" [class.active]=\"type === 'default'\">\r\n <span class=\"mrx-icon icon-table-view icon-font-24\"></span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #emptyResultMsgTemplateDefault>\r\n {{emptyResultMsg}}\r\n</ng-template>\r\n", styles: [".mrx-table.mrx-table{display:block;width:100%}.mrx-table.mrx-table table td{height:1px}.mrx-table.mrx-table .th-wrapper{display:flex;cursor:pointer;word-break:inherit;justify-content:space-between;align-items:flex-end}.mrx-table.mrx-table .th-wrapper span{word-break:inherit}.mrx-table.mrx-table .mrx-table__sort-icon.asc path:last-child{fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table__sort-icon.desc path:first-child{fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table__wrapper.mrx-table__wrapper{overflow-x:auto;overflow-y:hidden;position:relative}.mrx-table__wrapper.mrx-table__wrapper .mrx-table__wrapper--substrate{padding-top:8px}.mrx-table.mrx-table.type-default table{width:100%;text-align:left;background-color:transparent;border-spacing:0}.mrx-table.mrx-table.type-default table thead.table-head-gray{background:var(--neutral-bg-island-default, #F8F9FA)}.mrx-table.mrx-table.type-default table thead .sort-asc .custom-table__sort path:nth-child(2){fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table thead .sort-desc .custom-table__sort path:nth-child(1){fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table td{max-width:340px;vertical-align:top}.mrx-table.mrx-table.type-default table td .link-wrapper{display:block;color:initial;height:100%}.mrx-table.mrx-table.type-default table td .link-wrapper:active{color:var(--neutral-text-primary, #262626)}.mrx-table.mrx-table.type-default table td .left-border{border-left:4px solid var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table td .light-border{border-left:4px solid transparent}.mrx-table.mrx-table.type-default table td .warning-back{background-color:#ffece7}.mrx-table.mrx-table.type-default table td .disabled-back{background-color:#fafafa}.mrx-table.mrx-table.type-default table td .link-colored,.mrx-table.mrx-table.type-default table td .link-colored:active{color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table th{padding:8px;vertical-align:bottom;word-break:inherit;font-weight:700}.mrx-table.mrx-table.type-default table th svg{margin-left:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-card-header{position:relative}.mrx-table.mrx-table .mrx-table-card-header--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table__wrapper--substrate{background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table-toggle{display:flex}.mrx-table.mrx-table .mrx-table-toggle--item{display:flex;align-items:center;justify-content:center;cursor:pointer}.mrx-table.mrx-table .mrx-table-toggle--item .mrx-icon{color:#e5e5e5}.mrx-table.mrx-table .mrx-table-toggle--item.active .mrx-icon{color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-card,.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-table{justify-content:flex-start}.mrx-table.mrx-table .mrx-table-sort-scale{display:flex;align-items:center;margin-right:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-sort-scale__title{font-family:PT Sans;font-style:normal;font-weight:400;font-size:14px;line-height:143%;color:var(--neutral-text-primary, #262626);margin-right:12px}.mrx-table.mrx-table .mrx-table-sort-scale__icon{display:flex;align-items:center;justify-content:center}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select{max-width:215px;margin-bottom:0}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-select-container.ng-select-container{min-height:auto!important;border:none;cursor:pointer;align-items:center;height:100%!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-value-container.ng-value-container{padding-left:0!important;margin-right:8px}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-arrow-wrapper.ng-arrow-wrapper{min-height:auto;width:auto!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-dropdown-panel.ng-dropdown-panel{width:100vw;max-width:215px;left:auto;right:0}.mrx-table__paginator.mrx-table__paginator.mrx-table__paginator--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .table-striped tbody tr:nth-child(2n){background-color:var(--neutral-bg-island-default, #F8F9FA)}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n){transition:.2s}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n).-hovered:hover{background-color:var(--brand-bg-tertiary-hover, #edf5ff)}.mrx-table.mrx-table .table-solid{border-collapse:collapse}.mrx-table.mrx-table .table-solid thead tr{border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr:not(:last-child){border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr.-hovered:hover{box-shadow:0 1px 4px #3a3a3a4d}.mrx-table.mrx-table .mrx-table__wrapper .mrx-table__overlay{position:absolute;inset:0;background:#ffffffb3;display:flex;align-items:flex-start;justify-content:center;padding-top:12px;border-radius:4px}.mrx-table .mrx-table__result-message{display:flex;justify-content:center;width:100%;padding:var(--spacing-4);font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);font-size:var(--body-md-font-size);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary)}.mrx-table .mrx-table__result-message *{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);font-size:var(--body-md-font-size);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary)}.mrx-table .mrx-table__result-message--substrate{display:flex;justify-content:center;width:100%;font-weight:400;font-size:16px;line-height:24px;color:var(--neutral-text-primary, #262626);padding:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px;position:relative}.mrx-table.mrx-table .mrx-table-download{display:flex;align-items:center;justify-content:flex-end;cursor:pointer}.mrx-table.mrx-table .mrx-table-download span{margin-right:8px;color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-download svg path{stroke:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-counter{font-family:var(--body-lg-font-family);font-size:var(--body-lg-font-size);font-weight:var(--body-lg-font-weight);line-height:var(--body-lg-line-height)}\n"] }]
|
|
224
217
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { contentChildren: [{
|
|
225
218
|
type: ContentChildren,
|
|
226
219
|
args: [ColumnComponent]
|
|
@@ -278,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
278
271
|
}], change: [{
|
|
279
272
|
type: Output
|
|
280
273
|
}] } });
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnRyxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBdUJ4RixNQUFNLE9BQU8sY0FBYztJQTBETDtJQXpEYixRQUFRLEdBQXNCLEVBQUUsQ0FBQztJQUNqQyxRQUFRLEdBQXlCLG9CQUFvQixDQUFDO0lBQ3RELFlBQVksR0FBRyxFQUFFLENBQUE7SUFDakIsSUFBSSxHQUFHLEtBQUssQ0FBQTtJQUVlLGVBQWUsQ0FBOEI7SUFDakQsWUFBWSxDQUFvQjtJQUN0QixzQkFBc0IsQ0FBb0I7SUFFekUsSUFBSSxHQUFjLFNBQVMsQ0FBQztJQUM1QixJQUFJLENBQW1CO0lBQ3ZCLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixJQUFJLEdBQUcs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c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBUUssV0FBVztzQkFEckIsS0FBSzt1QkFBQyxVQUFVO2dCQVdQLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250ZW50U2V0dGluZ3MsIEhlYWRlclNldHRpbmdzLCBQYWdpbmF0b3JTZXR0aW5ncywgU29ydERlc2NyaXB0b3IsIFRhYmxlQm9keUl0ZW0sIFRhYmxlVHlwZSwgVGFibGVUeXBlRW51bSB9IGZyb20gJy4vdGFibGUuZW51bSc7XHJcbmltcG9ydCB7IENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4vY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VyU2V0dGluZ3MgfSBmcm9tICcuL21vZGVscy9wYWdlci1zZXR0aW5ncyc7XHJcbmltcG9ydCB7IERlZmF1bHRQYWdlclNldHRpbmdzIH0gZnJvbSAnLi9kZWZhdWx0L2RlZmF1bHQtcGFnZXItc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBEYXRhU3RhdGVDaGFuZ2VFdmVudCB9IGZyb20gJy4vbW9kZWxzL2RhdGEtc3RhdGUtY2hhbmdlLmV2ZW50JztcclxuaW1wb3J0IHsgUGFnaW5hdGVPdXRwdXRPYmplY3QgfSBmcm9tICcuLi9wYWdpbmF0b3IvcGFnaW5hdG9yLmVudW0nO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBncm91cCwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQubGVzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3Zpc2libGVMb2FkaW5nJywgW1xyXG4gICAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXHJcbiAgICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignaW4gPT4gb3V0JywgW2dyb3VwKFtcclxuICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXHJcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKVxyXG4gICAgICBdXHJcbiAgICAgICldKSxcclxuICAgICAgdHJhbnNpdGlvbignb3V0ID0+IGluJywgW2dyb3VwKFtcclxuICAgICAgICBhbmltYXRlKCcxbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXHJcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXHJcbiAgICAgIF1cclxuICAgICAgKV0pXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHVibGljIGNvbEFycmF5OiBDb2x1bW5Db21wb25lbnRbXSA9IFtdO1xyXG4gIHB1YmxpYyBwYWdlYWJsZTogUGFnZXJTZXR0aW5ncyB8IG51bGwgPSBEZWZhdWx0UGFnZXJTZXR0aW5ncztcclxuICBwdWJsaWMgc2VsZWN0ZWRTb3J0ID0gJydcclxuICBwdWJsaWMgaW5pdCA9IGZhbHNlXHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQ29sdW1uQ29tcG9uZW50KSBjb250ZW50Q2hpbGRyZW4hOiBRdWVyeUxpc3Q8Q29sdW1uQ29tcG9uZW50PjtcclxuICBAQ29udGVudENoaWxkKCd0ZW1wbGF0ZUNhcmQnKSB0ZW1wbGF0ZUNhcmQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2VtcHR5UmVzdWx0TXNnVGVtcGxhdGUnKSBlbXB0eVJlc3VsdE1zZ1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KCkgdHlwZTogVGFibGVUeXBlID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIGRhdGEhOiBUYWJsZUJvZHlJdGVtW107XHJcbiAgQElucHV0KCkgcGFnZVNpemUgPSAyMDtcclxuICBASW5wdXQoKSBjdXJyZW50UGFnZSA9IDE7XHJcbiAgQElucHV0KCkgdG90YWwgPSAwO1xyXG4gIEBJbnB1dCgpIGxpbmsgPSAnJztcclxuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc29ydDogU29ydERlc2NyaXB0b3IgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgdHJhY2tCeUlkID0gJ2lkJztcclxuICBASW5wdXQoKSBzb3J0YWJsZSA9IHRydWU7XHJcbiAgQElucHV0KCkgc3RyaXBlZCA9IHRydWU7XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3NlcyA9ICcnXHJcbiAgQElucHV0KCkgZW1wdHlSZXN1bHRNc2cgPSAnJ1xyXG4gIEBJbnB1dCgpIGhvdmVyZWQgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBhdXRvSGVpZ2h0ID0gdHJ1ZVxyXG5cclxuICBASW5wdXQoKSBoZWFkZXJTZXR0aW5nczogSGVhZGVyU2V0dGluZ3MgfCB1bmRlZmluZWRcclxuXHJcbiAgQElucHV0KCkgY29udGVudFNldHRpbmdzOiBDb250ZW50U2V0dGluZ3MgPSB7XHJcbiAgICBzdWJzdHJhdGU6IGZhbHNlXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBwYWdpbmF0b3JTZXR0aW5nczogUGFnaW5hdG9yU2V0dGluZ3MgPSB7XHJcbiAgICBzdWJzdHJhdGU6IGZhbHNlXHJcbiAgfVxyXG5cclxuICAvLyDQn9GA0L7QstC10YDQuNGC0Ywg0Lgg0LLRi9GA0LXQt9Cw0YLRjFxyXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW0gPSAxXHJcblxyXG4gIEBJbnB1dCgncGFnZWFibGUnKVxyXG4gIHB1YmxpYyBzZXQgc2V0UGFnZWFibGUodmFsdWU6IFBhZ2VyU2V0dGluZ3MgfCBib29sZWFuKSB7XHJcbiAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5wYWdlYWJsZSA9IERlZmF1bHRQYWdlclNldHRpbmdzO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5wYWdlYWJsZSA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2VhYmxlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgZGF0YVN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPERhdGFTdGF0ZUNoYW5nZUV2ZW50PiA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPERhdGFTdGF0ZUNoYW5nZUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBkb3dubG9hZERhdGE6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpXHJcbiAgQE91dHB1dCgpIGNoYW5nZVR5cGVUYWJsZTogRXZlbnRFbWl0dGVyPFRhYmxlVHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlVHlwZT4oKVxyXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNvbEFycmF5ID0gdGhpcy5jb250ZW50Q2hpbGRyZW4udG9BcnJheSgpO1xyXG5cclxuICAgIHRoaXMuY29sQXJyYXkuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKHRoaXMuc29ydCAmJiB0aGlzLnNvcnQuY29sID09PSBpdGVtLm5hbWUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU29ydCA9IGl0ZW0ubmFtZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuY29sQXJyYXkgPSB0aGlzLmNvbEFycmF5LmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgcmV0dXJuIGl0ZW0ubmFtZSAhPT0gJycgJiYgaXRlbS5zb3J0TGFiZWxcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcclxuICAgIHRoaXMuaW5pdCA9IHRydWVcclxuXHJcbiAgICBpZiAodGhpcy5hdXRvSGVpZ2h0KSB7XHJcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50ZC1jb250ZW50LXdyYXBwZXInKS5mb3JFYWNoKCh3cmFwcGVyOiBFbGVtZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGRIZWlnaHQgPSB3cmFwcGVyLmNsb3Nlc3QoJ3RkJyk/LnNjcm9sbEhlaWdodFxyXG4gICAgICAgIGNvbnN0IGxpbmsgPSB3cmFwcGVyIGFzIEhUTUxFbGVtZW50XHJcbiAgICAgICAgbGluay5zdHlsZS5oZWlnaHQgPSB0ZEhlaWdodCArICdweCdcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAkeyBUYWJsZVR5cGVFbnVtW3RoaXMudHlwZV0gfSAkeyB0aGlzLmN1c3RvbUNsYXNzZXMgfWA7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpdGVtW3RoaXMudHJhY2tCeUlkXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VTb3J0KCkge1xyXG4gICAgY29uc3QgbmV3RXZlbnREYXRhOiBEYXRhU3RhdGVDaGFuZ2VFdmVudCA9IHsgcGFnZTogdGhpcy5jdXJyZW50UGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUgfTtcclxuXHJcbiAgICBpZiAoIXRoaXMuY29sQXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNvcnQpIHtcclxuICAgICAgbmV3RXZlbnREYXRhLnNvcnQgPSB7XHJcbiAgICAgICAgZGlyOiB0aGlzLnNvcnQuZGlyID09PSAnZGVzYycgPyAnYXNjJyA6ICdkZXNjJyxcclxuICAgICAgICBjb2w6IHRoaXMuc29ydC5jb2xcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0V2ZW50RGF0YS5zb3J0ID0ge1xyXG4gICAgICAgIGRpcjogJ2FzYycsXHJcbiAgICAgICAgY29sOiB0aGlzLmNvbEFycmF5WzBdLm5hbWVcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGFTdGF0ZUNoYW5nZWQuZW1pdChuZXdFdmVudERhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbHVtblNvcnRlZERpcihjb2x1bW46IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5zb3J0ICYmIHRoaXMuc29ydC5jb2wgPT0gY29sdW1uICYmIHRoaXMuc29ydC5kaXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc29ydC5kaXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Tb3J0Q29sdW1uKGNvbHVtbjogc3RyaW5nLCBzb3J0YWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKCFzb3J0YWJsZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbmV3RXZlbnREYXRhOiBEYXRhU3RhdGVDaGFuZ2VFdmVudCA9IHsgcGFnZTogdGhpcy5jdXJyZW50UGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUgfTtcclxuXHJcbiAgICBpZiAodGhpcy5zb3J0ICYmIHRoaXMuc29ydC5jb2wgPT0gY29sdW1uKSB7XHJcbiAgICAgIGlmICh0aGlzLnNvcnQuZGlyICYmIHRoaXMuc29ydC5kaXIgPT09ICdhc2MnKSB7XHJcbiAgICAgICAgbmV3RXZlbnREYXRhLnNvcnQgPSB7IGRpcjogJ2Rlc2MnLCBjb2w6IGNvbHVtbiB9O1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdFdmVudERhdGEuc29ydCA9IHsgZGlyOiAnYXNjJywgY29sOiBjb2x1bW4gfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGFTdGF0ZUNoYW5nZWQuZW1pdChuZXdFdmVudERhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrVG9Eb3dubG9hZChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZG93bmxvYWREYXRhLmVtaXQoZXZlbnQpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlU29ydFNlbGVjdCh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBuZXdFdmVudERhdGE6IERhdGFTdGF0ZUNoYW5nZUV2ZW50ID0ge1xyXG4gICAgICBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlLFxyXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgc29ydDoge1xyXG4gICAgICAgIGNvbDogdmFsdWUubmFtZSxcclxuICAgICAgICBkaXI6IHRoaXMuc29ydD8uZGlyXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5kYXRhU3RhdGVDaGFuZ2VkLmVtaXQobmV3RXZlbnREYXRhKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRGF0YVN0YXRlUGFnaW5hdG9yQ2hhbmdlZChwYWdpbmF0aW9uOiBQYWdpbmF0ZU91dHB1dE9iamVjdCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmV3RXZlbnREYXRhOiBEYXRhU3RhdGVDaGFuZ2VFdmVudCA9IHtcclxuICAgICAgcGFnZTogcGFnaW5hdGlvbi5jdXJyZW50UGFnZSxcclxuICAgICAgcGFnZVNpemU6IHBhZ2luYXRpb24ucGFnZVNpemVcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydCAmJiB0aGlzLnNvcnQuY29sICYmIHRoaXMuc29ydC5kaXIpIHtcclxuICAgICAgbmV3RXZlbnREYXRhLnNvcnQgPSB7IGRpcjogdGhpcy5zb3J0LmRpciwgY29sOiB0aGlzLnNvcnQuY29sIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhU3RhdGVDaGFuZ2VkLmVtaXQobmV3RXZlbnREYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRMaW5rRm9yU3Ryb2tlKGxpbms6IHN0cmluZywgZGF0YUl0ZW06IFRhYmxlQm9keUl0ZW0pIHtcclxuICAgIC8vINGA0LXQs9GD0LvRj9GA0LrQuFxyXG4gICAgY29uc3QgcmVnRXhwUGFyYW1zID0gLyg/PD1cXFspW15cXHNcXFtcXF1dKyg/PV0pL2dpO1xyXG4gICAgLy8g0L7RgdC90L7QstC90L7QuSDQvNCw0YHRgdC40LJcclxuICAgIGNvbnN0IGxpbmtBcnJheSA9IGxpbmsuc3BsaXQoJz8nKVxyXG4gICAgLy8g0LzQsNGB0YHQuNCy0Ysg0YHRgtGA0L7QuiB1cmwg0Lgg0L/QsNGA0LDQvNC10YLRgNC+0LJcclxuICAgIGNvbnN0IGFycmF5VXJsID0gbGlua0FycmF5WzBdPy5zcGxpdCgnLycpXHJcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBsaW5rQXJyYXlbMV0/LnNwbGl0KCcmJylcclxuICAgIGNvbnN0IHNlYXJjaFBhcmFtc09iaiA9IHNlYXJjaFBhcmFtcz8ubWFwKChzdHIpID0+IHtcclxuICAgICAgY29uc3Qgc3RyUGFyYW1EYXRhID0gc3RyLnNwbGl0KCc9JylbMV0ubWF0Y2gocmVnRXhwUGFyYW1zKVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IHN0ci5zcGxpdCgnPScpWzBdLFxyXG4gICAgICAgIGRhdGE6IHN0clBhcmFtRGF0YSA/IHN0clBhcmFtRGF0YVswXSA6IHN0ci5zcGxpdCgnPScpWzBdLFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgLy8gY29uc3QgYXJyYXlQYXJhbXMgPSBsaW5rQXJyYXlbMV0/Lm1hdGNoKHJlZ0V4cFBhcmFtcylcclxuXHJcbiAgICAvLyDQvtCx0YDQsNCx0L7RgtC60LAg0YLQtdC70LAgdXJsXHJcbiAgICBjb25zdCBzdHJVcmwgPSBhcnJheVVybC5tYXAoKHN0cikgPT4ge1xyXG4gICAgICBpZiAoc3RyLm1hdGNoKHJlZ0V4cFBhcmFtcykpIHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgcmV0dXJuIGRhdGFJdGVtW3N0ci5tYXRjaChyZWdFeHBQYXJhbXMpWzBdXVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBzdHJcclxuICAgICAgfVxyXG4gICAgfSkuam9pbignLycpXHJcbiAgICAvLyDQvtCx0YDQsNCx0L7RgtC60LAg0L/QsNGA0LDQvNC10YLRgNC+0LJcclxuICAgIC8vINC10YHQu9C4INC10YHRgtGMINC/0LDRgNCw0LzQtdGC0YDRiyAtINCy0L7Qt9Cy0YDQsNGJ0LDQtdC8INC40YUg0YHRgtGA0L7QutC+0Lkg0YEg0LTQuNC90LDQvNC40YfQtdGB0LrQuNC80Lgg0L/QsNGA0LDQvNC10YLRgNCw0LzQuFxyXG5cclxuICAgIGNvbnN0IHN0clBhcmFtcyA9IHNlYXJjaFBhcmFtc09iaiA/IHNlYXJjaFBhcmFtc09iai5tYXAoKHBhcmFtLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiBgJHsgaW5kZXggPiAwID8gJycgOiAnPycgfSR7IHBhcmFtLm5hbWUgfT0keyBkYXRhSXRlbVtwYXJhbS5kYXRhXSB9YFxyXG4gICAgfSkuam9pbignJicpIDogJydcclxuXHJcbiAgICAvLyBjb25zdCBzdHJQYXJhbXMgPSBhcnJheVBhcmFtcyA/IGFycmF5UGFyYW1zLm1hcCgoc3RyLCBpbmRleCkgPT4ge1xyXG4gICAgLy8gICByZXR1cm4gYCR7aW5kZXggPiAwID8gJycgOiAnPyd9JHtzdHJ9PSR7ZGF0YUl0ZW1bc3RyXX1gXHJcbiAgICAvLyB9KS5qb2luKCcmJykgOiAnJ1xyXG5cclxuICAgIHJldHVybiBgJHsgc3RyVXJsIH0keyBzdHJQYXJhbXMgfWBcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZVR5cGVUYWJsZSh0eXBlOiBUYWJsZVR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlVHlwZVRhYmxlLmVtaXQodHlwZSlcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBnZXRIZWlnaHRGb3JURCh0YWJsZVREOiBIVE1MRWxlbWVudCkge1xyXG4gIC8vICAgcmV0dXJuIHRhYmxlVEQuc2Nyb2xsSGVpZ2h0XHJcbiAgLy8gfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtcngtdGFibGVcIiBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiIFtjbGFzcy5tYi0zXT1cInBhZ2VhYmxlXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRlclNldHRpbmdzXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibXJ4LXRhYmxlLWNhcmQtaGVhZGVyIHB0LTIgcGItMiBtYi0zXCJcclxuICAgICAgW2NsYXNzLm1yeC10YWJsZS1jYXJkLWhlYWRlci0tc3Vic3RyYXRlXT1cImhlYWRlclNldHRpbmdzLnN1YnN0cmF0ZVwiXHJcbiAgICAgICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3MudHlwZSA9PT0gJ2RlZmF1bHQnXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LXRhYmxlLWNhcmQtaGVhZGVyLS1sZWZ0IGNvbCBjb2wtMTIgY29sLW1kLTYgbWItMSBtYi1tZC0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24tY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb3VudGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS1jYXJkLWhlYWRlci0tcmlnaHQgY29sIGNvbC0xMiBjb2wtbWQtNiBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvcnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTRcIiAqbmdJZj1cImhlYWRlclNldHRpbmdzLnRvZ2dsZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9nZ2xlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXIgbWItMyBwdC0yIHBiLTJcIlxyXG4gICAgICBbY2xhc3MubXJ4LXRhYmxlLWNhcmQtaGVhZGVyLS1zdWJzdHJhdGVdPVwiaGVhZGVyU2V0dGluZ3Muc3Vic3RyYXRlXCJcclxuICAgICAgKm5nSWY9XCJoZWFkZXJTZXR0aW5ncy50eXBlID09PSAnc2Vjb25kJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC10YWJsZS1jYXJkLWhlYWRlci0tbGVmdCBjb2wgY29sLTEyIGNvbC1zbS02IG1iLTEgbWItc20tMCBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29ydFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXItLXJpZ2h0IGNvbCBjb2wtMTIgY29sLXNtLTYgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24tY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkb3dubG9hZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX3dyYXBwZXJcIiAqbmdTd2l0Y2hDYXNlPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgW2NsYXNzLm1yeC10YWJsZV9fd3JhcHBlci0tc3Vic3RyYXRlXT1cImNvbnRlbnRTZXR0aW5ncy5zdWJzdHJhdGVcIj5cclxuICAgICAgPHRhYmxlXHJcbiAgICAgICAgW2NsYXNzLnRhYmxlLXN0cmlwZWRdPVwic3RyaXBlZFwiXHJcbiAgICAgICAgW2NsYXNzLnRhYmxlLXNvbGlkXT1cIiFzdHJpcGVkXCJcclxuICAgICAgICBbY2xhc3MubXQtMl09XCJjb250ZW50U2V0dGluZ3Muc3Vic3RyYXRlXCJcclxuICAgICAgICBbY2xhc3MubWItM109XCJjb250ZW50U2V0dGluZ3Muc3Vic3RyYXRlICYmIGRhdGEubGVuZ3RoXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx0aGVhZCBbY2xhc3MudGFibGUtaGVhZC1ncmF5XT1cIiFoZWFkZXJTZXR0aW5ncyB8fCBoZWFkZXJTZXR0aW5ncy5iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29udGVudENoaWxkcmVuOyBsZXQgaW5kZXggPSBpbmRleDsgbGV0IGZpcnN0ID0gZmlyc3Q7IGxldCBsYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCIgW2NsYXNzXT1cImNvbC5jdXN0b21DbGFzc2VzXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sLnRlbXBsYXRlSGVhZDsgZWxzZSBoZWFkZXJJdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sLnNvcnRhYmxlOyBlbHNlIGRlZmF1bHRIZWFkQ29sXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy50aC13cmFwcGVyXT1cInNvcnRhYmxlXCIgKGNsaWNrKT1cIm9uU29ydENvbHVtbihjb2wubmFtZSwgY29sLnNvcnRhYmxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb2wubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sdW1uU29ydGVkRGlyKGNvbC5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcngtdGFibGVfX3NvcnQtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00IDlMOCAxM0wxMiA5XCIgZmlsbD1cIiNEQUQ1Q0VcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyIDdMOCAzTDQgN1wiIGZpbGw9XCIjREFENUNFXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRDb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuPnt7IGNvbC5sYWJlbCB9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVySXRlbVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wuc29ydGFibGU7IGVsc2UgZGVmYXVsdEhlYWRDb2xcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzLnRoLXdyYXBwZXJdPVwic29ydGFibGVcIiAoY2xpY2spPVwib25Tb3J0Q29sdW1uKGNvbC5uYW1lLCBjb2wuc29ydGFibGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudGVtcGxhdGVIZWFkOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2x1bW5Tb3J0ZWREaXIoY29sLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1yeC10YWJsZV9fc29ydC1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQgOUw4IDEzTDEyIDlcIiBmaWxsPVwiI0RBRDVDRVwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIgN0w4IDNMNCA3XCIgZmlsbD1cIiNEQUQ1Q0VcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZENvbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudGVtcGxhdGVIZWFkOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sLCBpbmRleCwgZmlyc3QsIGxhc3QgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90aGVhZD5cclxuXHJcbiAgICAgICAgPHRib2R5PlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YUl0ZW0gb2YgZGF0YTsgbGV0IGluZGV4ID0gaW5kZXg7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIiBbY2xhc3MuLWhvdmVyZWRdPVwiaG92ZXJlZFwiPlxyXG4gICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICN0YWJsZVREXHJcbiAgICAgICAgICAgIGNsYXNzPVwicC0wXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBjb250ZW50Q2hpbGRyZW5cIlxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiY29sLmN1c3RvbUNsYXNzZXNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibGluay13cmFwcGVyIHRkLWNvbnRlbnQtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgW2hyZWZdPVwiZ2V0TGlua0ZvclN0cm9rZShsaW5rLCBkYXRhSXRlbSlcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibGluayAmJiBjb2xbJ2lzTGluayddOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbC50ZW1wbGF0ZUNlbGw7IGVsc2UgYm9keUl0ZW1UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMlwiPnt7IGRhdGFJdGVtW2NvbC5uYW1lXSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHlJdGVtVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnRlbXBsYXRlQ2VsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbCwgcm93OiBkYXRhSXRlbSwgaW5kZXgsIGZpcnN0LCBsYXN0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbC50ZW1wbGF0ZUNlbGw7IGVsc2UgYm9keUl0ZW1UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMiB0ZC1jb250ZW50LXdyYXBwZXJcIj57eyBkYXRhSXRlbVtjb2wubmFtZV0gfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNib2R5SXRlbVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRkLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudGVtcGxhdGVDZWxsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sLCByb3c6IGRhdGFJdGVtLCBpbmRleCwgZmlyc3QsIGxhc3QgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICA8L3Rib2R5PlxyXG4gICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fcmVzdWx0LW1lc3NhZ2VcIiAqbmdJZj1cIiFkYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVJlc3VsdE1zZyA/IGVtcHR5UmVzdWx0TXNnVGVtcGxhdGVEZWZhdWx0IDogZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX292ZXJsYXlcIiBbQHZpc2libGVMb2FkaW5nXT1cImlzTG9hZGluZyA/ICdpbicgOiAnb3V0J1wiIFtuZ0NsYXNzXT1cInsnb3Blbic6IGlzTG9hZGluZ31cIiA+XHJcbiAgICAgICAgPG1yeC1sb2FkZXIgc2l6ZT1cImxhcmdlXCIgY29sb3I9XCJicmFuZFwiPjwvbXJ4LWxvYWRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlX193cmFwcGVyXCIgKm5nU3dpdGNoQ2FzZT1cIidjYXJkcydcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhOyBsZXQgaW5kZXggPSBpbmRleDsgbGV0IGZpcnN0ID0gZmlyc3Q7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZUNhcmQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpbmRleCwgZmlyc3QsIGxhc3QgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX3Jlc3VsdC1tZXNzYWdlLS1zdWJzdHJhdGVcIiAqbmdJZj1cIiFkYXRhLmxlbmd0aFwiID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlSZXN1bHRNc2cgPyBlbXB0eVJlc3VsdE1zZ1RlbXBsYXRlRGVmYXVsdCA6IGVtcHR5UmVzdWx0TXNnVGVtcGxhdGVcIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlX19vdmVybGF5XCIgW0B2aXNpYmxlTG9hZGluZ109XCJpc0xvYWRpbmcgPyAnaW4nIDogJ291dCdcIiBbbmdDbGFzc109XCJ7J29wZW4nOiBpc0xvYWRpbmd9XCIgPlxyXG4gICAgICAgIDxtcngtbG9hZGVyIHNpemU9XCJsYXJnZVwiIGNvbG9yPVwiYnJhbmRcIj48L21yeC1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fcGFnaW5hdG9yIHB0LTIgcGItMlwiIFtjbGFzcy5tcngtdGFibGVfX3BhZ2luYXRvci0tc3Vic3RyYXRlXT1cInBhZ2luYXRvclNldHRpbmdzLnN1YnN0cmF0ZVwiICpuZ0lmPVwidG90YWxcIj5cclxuICA8bXJ4LXBhZ2luYXRvclxyXG4gICAgKm5nSWY9XCJwYWdlYWJsZVwiXHJcbiAgICBbdG90YWxdPVwidG90YWxcIlxyXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgIFtwb3NpdGlvbl09XCJwYWdlYWJsZS5wb3NpdGlvblwiXHJcbiAgICBbcGFnZVNpemVzXT1cInBhZ2VhYmxlLnBhZ2VTaXplc1wiXHJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2VcIlxyXG4gICAgW3dpdGhQYWdlU2l6ZV09XCJwYWdlYWJsZS53aXRoUGFnZVNpemVcIlxyXG4gICAgKGRhdGFTdGF0ZUNoYW5nZWQpPVwib25EYXRhU3RhdGVQYWdpbmF0b3JDaGFuZ2VkKCRldmVudClcIj5cclxuICA8L21yeC1wYWdpbmF0b3I+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb3VudGVyVGVtcGxhdGU+XHJcbiAgPHNwYW4gY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJoZWFkZXJTZXR0aW5ncz8uY291bnRcIj5cclxuICAgIHt7IHRvdGFsIH19IHt7aGVhZGVyU2V0dGluZ3M/LmNvdW50VGV4dCB8fCAn0L3QvtCy0L7RgdGC0LXQuSd9fVxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjc29ydFRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggbXJ4LXRhYmxlLXNvcnRcIiAqbmdJZj1cImhlYWRlclNldHRpbmdzPy5zb3J0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLXNvcnQtc2NhbGVcIiAoY2xpY2spPVwiY2hhbmdlU29ydCgpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LXRhYmxlLXNvcnQtc2NhbGVfX3RpdGxlXCI+0KHQvtGA0YLQuNGA0L7QstCw0YLRjCDQv9C+Ojwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS1zb3J0LXNjYWxlX19pY29uXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Py5kaXIgPT09ICdkZXNjJ1wiIGNsYXNzPVwibXJ4LWljb24gaWNvbi1zb3J0aW5nLWRvd24gaWNvbi1mb250LTE2XCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwic29ydD8uZGlyID09PSAnYXNjJ1wiIGNsYXNzPVwibXJ4LWljb24gaWNvbi1zb3J0aW5nLXVwIGljb24tZm9udC0xNlwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1zZWxlY3RcclxuICAgICAgYmluZExhYmVsPVwic29ydExhYmVsXCJcclxuICAgICAgYmluZFZhbHVlPVwibmFtZVwiXHJcbiAgICAgIFtpdGVtc109XCJjb2xBcnJheVwiXHJcbiAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkU29ydFwiXHJcbiAgICAgIChjaGFuZ2UpPVwidXBkYXRlU29ydFNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcclxuICAgICAgW2Nsb3NlT25TZWxlY3RdPVwidHJ1ZVwiXHJcbiAgICA+PC9uZy1zZWxlY3Q+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Rvd25sb2FkVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS1kb3dubG9hZFwiIChjbGljayk9XCJjbGlja1RvRG93bmxvYWQoJGV2ZW50KVwiICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3M/LmRvd25sb2FkXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImRlc2t0b3BcIj7QodC60LDRh9Cw0YLRjCDQtNCw0L3QvdGL0LU8L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZG93bmxvYWQgaWNvbi1mb250LTI0XCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0b2dnbGVUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLXRvZ2dsZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS10b2dnbGUtLWl0ZW0gbXItMVwiIChjbGljayk9XCJvbkNoYW5nZVR5cGVUYWJsZSgnY2FyZHMnKVwiIFtjbGFzcy5hY3RpdmVdPVwidHlwZSA9PT0gJ2NhcmRzJ1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2FyZHMtdmlldyBpY29uLWZvbnQtMjRcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtdG9nZ2xlLS1pdGVtXCIgKGNsaWNrKT1cIm9uQ2hhbmdlVHlwZVRhYmxlKCdkZWZhdWx0JylcIiBbY2xhc3MuYWN0aXZlXT1cInR5cGUgPT09ICdkZWZhdWx0J1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tdGFibGUtdmlldyBpY29uLWZvbnQtMjRcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZURlZmF1bHQ+XHJcbiAge3tlbXB0eVJlc3VsdE1zZ319XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnRyxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBdUJ4RixNQUFNLE9BQU8sY0FBYztJQTBETDtJQXpEYixRQUFRLEdBQXNCLEVBQUUsQ0FBQztJQUNqQyxRQUFRLEdBQXlCLG9CQUFvQixDQUFDO0lBQ3RELFlBQVksR0FBRyxFQUFFLENBQUE7SUFDakIsSUFBSSxHQUFHLEtBQUssQ0FBQTtJQUVlLGVBQWUsQ0FBOEI7SUFDakQsWUFBWSxDQUFvQjtJQUN0QixzQkFBc0IsQ0FBb0I7SUFFekUsSUFBSSxHQUFjLFNBQVMsQ0FBQztJQUM1QixJQUFJLENBQW1CO0lBQ3ZCLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixJQUFJLEdBQUcs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c0JBQXJCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRlbnRTZXR0aW5ncywgSGVhZGVyU2V0dGluZ3MsIFBhZ2luYXRvclNldHRpbmdzLCBTb3J0RGVzY3JpcHRvciwgVGFibGVCb2R5SXRlbSwgVGFibGVUeXBlLCBUYWJsZVR5cGVFbnVtIH0gZnJvbSAnLi90YWJsZS5lbnVtJztcclxuaW1wb3J0IHsgQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbHVtbi9jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZXJTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWxzL3BhZ2VyLXNldHRpbmdzJztcclxuaW1wb3J0IHsgRGVmYXVsdFBhZ2VyU2V0dGluZ3MgfSBmcm9tICcuL2RlZmF1bHQvZGVmYXVsdC1wYWdlci1zZXR0aW5ncyc7XHJcbmltcG9ydCB7IERhdGFTdGF0ZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1zdGF0ZS1jaGFuZ2UuZXZlbnQnO1xyXG5pbXBvcnQgeyBQYWdpbmF0ZU91dHB1dE9iamVjdCB9IGZyb20gJy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuZW51bSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIGdyb3VwLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcigndmlzaWJsZUxvYWRpbmcnLCBbXHJcbiAgICAgIHN0YXRlKCdpbicsIHN0eWxlKHsgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pKSxcclxuICAgICAgc3RhdGUoJ291dCcsIHN0eWxlKHsgb3BhY2l0eTogMCwgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdpbiA9PiBvdXQnLCBbZ3JvdXAoW1xyXG4gICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcclxuICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpXHJcbiAgICAgIF1cclxuICAgICAgKV0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCdvdXQgPT4gaW4nLCBbZ3JvdXAoW1xyXG4gICAgICAgIGFuaW1hdGUoJzFtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pKSxcclxuICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSlcclxuICAgICAgXVxyXG4gICAgICApXSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBwdWJsaWMgY29sQXJyYXk6IENvbHVtbkNvbXBvbmVudFtdID0gW107XHJcbiAgcHVibGljIHBhZ2VhYmxlOiBQYWdlclNldHRpbmdzIHwgbnVsbCA9IERlZmF1bHRQYWdlclNldHRpbmdzO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFNvcnQgPSAnJ1xyXG4gIHB1YmxpYyBpbml0ID0gZmFsc2VcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihDb2x1bW5Db21wb25lbnQpIGNvbnRlbnRDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxDb2x1bW5Db21wb25lbnQ+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RlbXBsYXRlQ2FyZCcpIHRlbXBsYXRlQ2FyZCE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZCgnZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZScpIGVtcHR5UmVzdWx0TXNnVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKSB0eXBlOiBUYWJsZVR5cGUgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgZGF0YSE6IFRhYmxlQm9keUl0ZW1bXTtcclxuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDIwO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlID0gMTtcclxuICBASW5wdXQoKSB0b3RhbCA9IDA7XHJcbiAgQElucHV0KCkgbGluayA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvciB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSB0cmFja0J5SWQgPSAnaWQnO1xyXG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzdHJpcGVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzc2VzID0gJydcclxuICBASW5wdXQoKSBlbXB0eVJlc3VsdE1zZyA9ICcnXHJcbiAgQElucHV0KCkgaG92ZXJlZCA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGF1dG9IZWlnaHQgPSB0cnVlIC8vIGRlcHJlY2F0ZWRcclxuXHJcbiAgQElucHV0KCkgaGVhZGVyU2V0dGluZ3M6IEhlYWRlclNldHRpbmdzIHwgdW5kZWZpbmVkXHJcblxyXG4gIEBJbnB1dCgpIGNvbnRlbnRTZXR0aW5nczogQ29udGVudFNldHRpbmdzID0ge1xyXG4gICAgc3Vic3RyYXRlOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcGFnaW5hdG9yU2V0dGluZ3M6IFBhZ2luYXRvclNldHRpbmdzID0ge1xyXG4gICAgc3Vic3RyYXRlOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgLy8g0J/RgNC+0LLQtdGA0LjRgtGMINC4INCy0YvRgNC10LfQsNGC0YxcclxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtID0gMVxyXG5cclxuICBASW5wdXQoJ3BhZ2VhYmxlJylcclxuICBwdWJsaWMgc2V0IHNldFBhZ2VhYmxlKHZhbHVlOiBQYWdlclNldHRpbmdzIHwgYm9vbGVhbikge1xyXG4gICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMucGFnZWFibGUgPSBEZWZhdWx0UGFnZXJTZXR0aW5ncztcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMucGFnZWFibGUgPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYWdlYWJsZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGRhdGFTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxEYXRhU3RhdGVDaGFuZ2VFdmVudD4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxEYXRhU3RhdGVDaGFuZ2VFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZG93bmxvYWREYXRhOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKVxyXG4gIEBPdXRwdXQoKSBjaGFuZ2VUeXBlVGFibGU6IEV2ZW50RW1pdHRlcjxUYWJsZVR5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVR5cGU+KClcclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb2xBcnJheSA9IHRoaXMuY29udGVudENoaWxkcmVuLnRvQXJyYXkoKTtcclxuXHJcbiAgICB0aGlzLmNvbEFycmF5LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnNvcnQgJiYgdGhpcy5zb3J0LmNvbCA9PT0gaXRlbS5uYW1lKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNvcnQgPSBpdGVtLm5hbWVcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmNvbEFycmF5ID0gdGhpcy5jb2xBcnJheS5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIHJldHVybiBpdGVtLm5hbWUgIT09ICcnICYmIGl0ZW0uc29ydExhYmVsXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICB0aGlzLmluaXQgPSB0cnVlXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHsgVGFibGVUeXBlRW51bVt0aGlzLnR5cGVdIH0gJHsgdGhpcy5jdXN0b21DbGFzc2VzIH1gO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXRlbVt0aGlzLnRyYWNrQnlJZF07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlU29ydCgpIHtcclxuICAgIGNvbnN0IG5ld0V2ZW50RGF0YTogRGF0YVN0YXRlQ2hhbmdlRXZlbnQgPSB7IHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplIH07XHJcblxyXG4gICAgaWYgKCF0aGlzLmNvbEFycmF5Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zb3J0KSB7XHJcbiAgICAgIG5ld0V2ZW50RGF0YS5zb3J0ID0ge1xyXG4gICAgICAgIGRpcjogdGhpcy5zb3J0LmRpciA9PT0gJ2Rlc2MnID8gJ2FzYycgOiAnZGVzYycsXHJcbiAgICAgICAgY29sOiB0aGlzLnNvcnQuY29sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdFdmVudERhdGEuc29ydCA9IHtcclxuICAgICAgICBkaXI6ICdhc2MnLFxyXG4gICAgICAgIGNvbDogdGhpcy5jb2xBcnJheVswXS5uYW1lXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhU3RhdGVDaGFuZ2VkLmVtaXQobmV3RXZlbnREYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb2x1bW5Tb3J0ZWREaXIoY29sdW1uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuc29ydCAmJiB0aGlzLnNvcnQuY29sID09IGNvbHVtbiAmJiB0aGlzLnNvcnQuZGlyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNvcnQuZGlyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU29ydENvbHVtbihjb2x1bW46IHN0cmluZywgc29ydGFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICghc29ydGFibGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld0V2ZW50RGF0YTogRGF0YVN0YXRlQ2hhbmdlRXZlbnQgPSB7IHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplIH07XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydCAmJiB0aGlzLnNvcnQuY29sID09IGNvbHVtbikge1xyXG4gICAgICBpZiAodGhpcy5zb3J0LmRpciAmJiB0aGlzLnNvcnQuZGlyID09PSAnYXNjJykge1xyXG4gICAgICAgIG5ld0V2ZW50RGF0YS5zb3J0ID0geyBkaXI6ICdkZXNjJywgY29sOiBjb2x1bW4gfTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3RXZlbnREYXRhLnNvcnQgPSB7IGRpcjogJ2FzYycsIGNvbDogY29sdW1uIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhU3RhdGVDaGFuZ2VkLmVtaXQobmV3RXZlbnREYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGlja1RvRG93bmxvYWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmRvd25sb2FkRGF0YS5lbWl0KGV2ZW50KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVNvcnRTZWxlY3QodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgbmV3RXZlbnREYXRhOiBEYXRhU3RhdGVDaGFuZ2VFdmVudCA9IHtcclxuICAgICAgcGFnZTogdGhpcy5jdXJyZW50UGFnZSxcclxuICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgIHNvcnQ6IHtcclxuICAgICAgICBjb2w6IHZhbHVlLm5hbWUsXHJcbiAgICAgICAgZGlyOiB0aGlzLnNvcnQ/LmRpclxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlZC5lbWl0KG5ld0V2ZW50RGF0YSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkRhdGFTdGF0ZVBhZ2luYXRvckNoYW5nZWQocGFnaW5hdGlvbjogUGFnaW5hdGVPdXRwdXRPYmplY3QpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld0V2ZW50RGF0YTogRGF0YVN0YXRlQ2hhbmdlRXZlbnQgPSB7XHJcbiAgICAgIHBhZ2U6IHBhZ2luYXRpb24uY3VycmVudFBhZ2UsXHJcbiAgICAgIHBhZ2VTaXplOiBwYWdpbmF0aW9uLnBhZ2VTaXplXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnNvcnQgJiYgdGhpcy5zb3J0LmNvbCAmJiB0aGlzLnNvcnQuZGlyKSB7XHJcbiAgICAgIG5ld0V2ZW50RGF0YS5zb3J0ID0geyBkaXI6IHRoaXMuc29ydC5kaXIsIGNvbDogdGhpcy5zb3J0LmNvbCB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlZC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TGlua0ZvclN0cm9rZShsaW5rOiBzdHJpbmcsIGRhdGFJdGVtOiBUYWJsZUJvZHlJdGVtKSB7XHJcbiAgICAvLyDRgNC10LPRg9C70Y/RgNC60LhcclxuICAgIGNvbnN0IHJlZ0V4cFBhcmFtcyA9IC8oPzw9XFxbKVteXFxzXFxbXFxdXSsoPz1dKS9naTtcclxuICAgIC8vINC+0YHQvdC+0LLQvdC+0Lkg0LzQsNGB0YHQuNCyXHJcbiAgICBjb25zdCBsaW5rQXJyYXkgPSBsaW5rLnNwbGl0KCc/JylcclxuICAgIC8vINC80LDRgdGB0LjQstGLINGB0YLRgNC+0LogdXJsINC4INC/0LDRgNCw0LzQtdGC0YDQvtCyXHJcbiAgICBjb25zdCBhcnJheVVybCA9IGxpbmtBcnJheVswXT8uc3BsaXQoJy8nKVxyXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbGlua0FycmF5WzFdPy5zcGxpdCgnJicpXHJcbiAgICBjb25zdCBzZWFyY2hQYXJhbXNPYmogPSBzZWFyY2hQYXJhbXM/Lm1hcCgoc3RyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHN0clBhcmFtRGF0YSA9IHN0ci5zcGxpdCgnPScpWzFdLm1hdGNoKHJlZ0V4cFBhcmFtcylcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBzdHIuc3BsaXQoJz0nKVswXSxcclxuICAgICAgICBkYXRhOiBzdHJQYXJhbURhdGEgPyBzdHJQYXJhbURhdGFbMF0gOiBzdHIuc3BsaXQoJz0nKVswXSxcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIC8vIGNvbnN0IGFycmF5UGFyYW1zID0gbGlua0FycmF5WzFdPy5tYXRjaChyZWdFeHBQYXJhbXMpXHJcblxyXG4gICAgLy8g0L7QsdGA0LDQsdC+0YLQutCwINGC0LXQu9CwIHVybFxyXG4gICAgY29uc3Qgc3RyVXJsID0gYXJyYXlVcmwubWFwKChzdHIpID0+IHtcclxuICAgICAgaWYgKHN0ci5tYXRjaChyZWdFeHBQYXJhbXMpKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiBkYXRhSXRlbVtzdHIubWF0Y2gocmVnRXhwUGFyYW1zKVswXV1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gc3RyXHJcbiAgICAgIH1cclxuICAgIH0pLmpvaW4oJy8nKVxyXG4gICAgLy8g0L7QsdGA0LDQsdC+0YLQutCwINC/0LDRgNCw0LzQtdGC0YDQvtCyXHJcbiAgICAvLyDQtdGB0LvQuCDQtdGB0YLRjCDQv9Cw0YDQsNC80LXRgtGA0YsgLSDQstC+0LfQstGA0LDRidCw0LXQvCDQuNGFINGB0YLRgNC+0LrQvtC5INGBINC00LjQvdCw0LzQuNGH0LXRgdC60LjQvNC4INC/0LDRgNCw0LzQtdGC0YDQsNC80LhcclxuXHJcbiAgICBjb25zdCBzdHJQYXJhbXMgPSBzZWFyY2hQYXJhbXNPYmogPyBzZWFyY2hQYXJhbXNPYmoubWFwKChwYXJhbSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gYCR7IGluZGV4ID4gMCA/ICcnIDogJz8nIH0keyBwYXJhbS5uYW1lIH09JHsgZGF0YUl0ZW1bcGFyYW0uZGF0YV0gfWBcclxuICAgIH0pLmpvaW4oJyYnKSA6ICcnXHJcblxyXG4gICAgLy8gY29uc3Qgc3RyUGFyYW1zID0gYXJyYXlQYXJhbXMgPyBhcnJheVBhcmFtcy5tYXAoKHN0ciwgaW5kZXgpID0+IHtcclxuICAgIC8vICAgcmV0dXJuIGAke2luZGV4ID4gMCA/ICcnIDogJz8nfSR7c3RyfT0ke2RhdGFJdGVtW3N0cl19YFxyXG4gICAgLy8gfSkuam9pbignJicpIDogJydcclxuXHJcbiAgICByZXR1cm4gYCR7IHN0clVybCB9JHsgc3RyUGFyYW1zIH1gXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VUeXBlVGFibGUodHlwZTogVGFibGVUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZVR5cGVUYWJsZS5lbWl0KHR5cGUpXHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgZ2V0SGVpZ2h0Rm9yVEQodGFibGVURDogSFRNTEVsZW1lbnQpIHtcclxuICAvLyAgIHJldHVybiB0YWJsZVRELnNjcm9sbEhlaWdodFxyXG4gIC8vIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlXCIgW2NsYXNzXT1cImdldENsYXNzZXNcIiBbY2xhc3MubWItM109XCJwYWdlYWJsZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJTZXR0aW5nc1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIm1yeC10YWJsZS1jYXJkLWhlYWRlciBwdC0yIHBiLTIgbWItM1wiXHJcbiAgICAgIFtjbGFzcy5tcngtdGFibGUtY2FyZC1oZWFkZXItLXN1YnN0cmF0ZV09XCJoZWFkZXJTZXR0aW5ncy5zdWJzdHJhdGVcIlxyXG4gICAgICAqbmdJZj1cImhlYWRlclNldHRpbmdzLnR5cGUgPT09ICdkZWZhdWx0J1wiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC10YWJsZS1jYXJkLWhlYWRlci0tbGVmdCBjb2wgY29sLTEyIGNvbC1tZC02IG1iLTEgbWItbWQtMCBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY291bnRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXItLXJpZ2h0IGNvbCBjb2wtMTIgY29sLW1kLTYgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24tY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3J0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC00XCIgKm5nSWY9XCJoZWFkZXJTZXR0aW5ncy50b2dnbGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvZ2dsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibXJ4LXRhYmxlLWNhcmQtaGVhZGVyIG1iLTMgcHQtMiBwYi0yXCJcclxuICAgICAgW2NsYXNzLm1yeC10YWJsZS1jYXJkLWhlYWRlci0tc3Vic3RyYXRlXT1cImhlYWRlclNldHRpbmdzLnN1YnN0cmF0ZVwiXHJcbiAgICAgICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3MudHlwZSA9PT0gJ3NlY29uZCdcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXItLWxlZnQgY29sIGNvbC0xMiBjb2wtc20tNiBtYi0xIG1iLXNtLTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvcnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLWNhcmQtaGVhZGVyLS1yaWdodCBjb2wgY29sLTEyIGNvbC1zbS02IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZG93bmxvYWRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlX193cmFwcGVyXCIgKm5nU3dpdGNoQ2FzZT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgIFtjbGFzcy5tcngtdGFibGVfX3dyYXBwZXItLXN1YnN0cmF0ZV09XCJjb250ZW50U2V0dGluZ3Muc3Vic3RyYXRlXCI+XHJcbiAgICAgIDx0YWJsZVxyXG4gICAgICAgIFtjbGFzcy50YWJsZS1zdHJpcGVkXT1cInN0cmlwZWRcIlxyXG4gICAgICAgIFtjbGFzcy50YWJsZS1zb2xpZF09XCIhc3RyaXBlZFwiXHJcbiAgICAgICAgW2NsYXNzLm10LTJdPVwiY29udGVudFNldHRpbmdzLnN1YnN0cmF0ZVwiXHJcbiAgICAgICAgW2NsYXNzLm1iLTNdPVwiY29udGVudFNldHRpbmdzLnN1YnN0cmF0ZSAmJiBkYXRhLmxlbmd0aFwiXHJcbiAgICAgID5cclxuICAgICAgICA8dGhlYWQgW2NsYXNzLnRhYmxlLWhlYWQtZ3JheV09XCIhaGVhZGVyU2V0dGluZ3MgfHwgaGVhZGVyU2V0dGluZ3MuYmFja2dyb3VuZFwiPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbnRlbnRDaGlsZHJlbjsgbGV0IGluZGV4ID0gaW5kZXg7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3Q7IHRyYWNrQnk6IHRyYWNrQnlGblwiIFtjbGFzc109XCJjb2wuY3VzdG9tQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbC50ZW1wbGF0ZUhlYWQ7IGVsc2UgaGVhZGVySXRlbVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbC5zb3J0YWJsZTsgZWxzZSBkZWZhdWx0SGVhZENvbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbY2xhc3MudGgtd3JhcHBlcl09XCJzb3J0YWJsZVwiIChjbGljayk9XCJvblNvcnRDb2x1bW4oY29sLm5hbWUsIGNvbC5zb3J0YWJsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29sLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbHVtblNvcnRlZERpcihjb2wubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXJ4LXRhYmxlX19zb3J0LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNCA5TDggMTNMMTIgOVwiIGZpbGw9XCIjREFENUNFXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMiA3TDggM0w0IDdcIiBmaWxsPVwiI0RBRDVDRVwiLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRIZWFkQ29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdj48c3Bhbj57eyBjb2wubGFiZWwgfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlckl0ZW1UZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sLnNvcnRhYmxlOyBlbHNlIGRlZmF1bHRIZWFkQ29sXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy50aC13cmFwcGVyXT1cInNvcnRhYmxlXCIgKGNsaWNrKT1cIm9uU29ydENvbHVtbihjb2wubmFtZSwgY29sLnNvcnRhYmxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnRlbXBsYXRlSGVhZDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sdW1uU29ydGVkRGlyKGNvbC5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcngtdGFibGVfX3NvcnQtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00IDlMOCAxM0wxMiA5XCIgZmlsbD1cIiNEQUQ1Q0VcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyIDdMOCAzTDQgN1wiIGZpbGw9XCIjREFENUNFXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRDb2w+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnRlbXBsYXRlSGVhZDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbCwgaW5kZXgsIGZpcnN0LCBsYXN0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcblxyXG4gICAgICAgIDx0Ym9keT5cclxuICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGFJdGVtIG9mIGRhdGE7IGxldCBpbmRleCA9IGluZGV4OyBsZXQgZmlyc3QgPSBmaXJzdDsgbGV0IGxhc3QgPSBsYXN0XCIgW2NsYXNzLi1ob3ZlcmVkXT1cImhvdmVyZWRcIj5cclxuICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAjdGFibGVURFxyXG4gICAgICAgICAgICBjbGFzcz1cInAtMFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2YgY29udGVudENoaWxkcmVuXCJcclxuICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5jdXN0b21DbGFzc2VzXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpbmstd3JhcHBlciB0ZC1jb250ZW50LXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgIFtocmVmXT1cImdldExpbmtGb3JTdHJva2UobGluaywgZGF0YUl0ZW0pXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxpbmsgJiYgY29sWydpc0xpbmsnXTsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2wudGVtcGxhdGVDZWxsOyBlbHNlIGJvZHlJdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTIgaC0xMDBcIj57eyBkYXRhSXRlbVtjb2wubmFtZV0gfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNib2R5SXRlbVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbC50ZW1wbGF0ZUNlbGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2wsIHJvdzogZGF0YUl0ZW0sIGluZGV4LCBmaXJzdCwgbGFzdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2wudGVtcGxhdGVDZWxsOyBlbHNlIGJvZHlJdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1jb250ZW50LXdyYXBwZXIgcC0yIGgtMTAwXCI+e3sgZGF0YUl0ZW1bY29sLm5hbWVdIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keUl0ZW1UZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1jb250ZW50LXdyYXBwZXIgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnRlbXBsYXRlQ2VsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbCwgcm93OiBkYXRhSXRlbSwgaW5kZXgsIGZpcnN0LCBsYXN0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX3Jlc3VsdC1tZXNzYWdlXCIgKm5nSWY9XCIhZGF0YS5sZW5ndGhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlSZXN1bHRNc2cgPyBlbXB0eVJlc3VsdE1zZ1RlbXBsYXRlRGVmYXVsdCA6IGVtcHR5UmVzdWx0TXNnVGVtcGxhdGVcIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlX19vdmVybGF5XCIgW0B2aXNpYmxlTG9hZGluZ109XCJpc0xvYWRpbmcgPyAnaW4nIDogJ291dCdcIiBbbmdDbGFzc109XCJ7J29wZW4nOiBpc0xvYWRpbmd9XCIgPlxyXG4gICAgICAgIDxtcngtbG9hZGVyIHNpemU9XCJsYXJnZVwiIGNvbG9yPVwiYnJhbmRcIj48L21yeC1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fd3JhcHBlclwiICpuZ1N3aXRjaENhc2U9XCInY2FyZHMnXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YTsgbGV0IGluZGV4ID0gaW5kZXg7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVDYXJkOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgaW5kZXgsIGZpcnN0LCBsYXN0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlX19yZXN1bHQtbWVzc2FnZS0tc3Vic3RyYXRlXCIgKm5nSWY9XCIhZGF0YS5sZW5ndGhcIiA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5UmVzdWx0TXNnID8gZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZURlZmF1bHQgOiBlbXB0eVJlc3VsdE1zZ1RlbXBsYXRlXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fb3ZlcmxheVwiIFtAdmlzaWJsZUxvYWRpbmddPVwiaXNMb2FkaW5nID8gJ2luJyA6ICdvdXQnXCIgW25nQ2xhc3NdPVwieydvcGVuJzogaXNMb2FkaW5nfVwiID5cclxuICAgICAgICA8bXJ4LWxvYWRlciBzaXplPVwibGFyZ2VcIiBjb2xvcj1cImJyYW5kXCI+PC9tcngtbG9hZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJtcngtdGFibGVfX3BhZ2luYXRvciBwdC0yIHBiLTJcIiBbY2xhc3MubXJ4LXRhYmxlX19wYWdpbmF0b3ItLXN1YnN0cmF0ZV09XCJwYWdpbmF0b3JTZXR0aW5ncy5zdWJzdHJhdGVcIiAqbmdJZj1cInRvdGFsXCI+XHJcbiAgPG1yeC1wYWdpbmF0b3JcclxuICAgICpuZ0lmPVwicGFnZWFibGVcIlxyXG4gICAgW3RvdGFsXT1cInRvdGFsXCJcclxuICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXHJcbiAgICBbcG9zaXRpb25dPVwicGFnZWFibGUucG9zaXRpb25cIlxyXG4gICAgW3BhZ2VTaXplc109XCJwYWdlYWJsZS5wYWdlU2l6ZXNcIlxyXG4gICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcclxuICAgIFt3aXRoUGFnZVNpemVdPVwicGFnZWFibGUud2l0aFBhZ2VTaXplXCJcclxuICAgIChkYXRhU3RhdGVDaGFuZ2VkKT1cIm9uRGF0YVN0YXRlUGFnaW5hdG9yQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgPC9tcngtcGFnaW5hdG9yPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY291bnRlclRlbXBsYXRlPlxyXG4gIDxzcGFuIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3M/LmNvdW50XCI+XHJcbiAgICB7eyB0b3RhbCB9fSB7e2hlYWRlclNldHRpbmdzPy5jb3VudFRleHQgfHwgJ9C90L7QstC+0YHRgtC10LknfX1cclxuICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvcnRUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1yeC10YWJsZS1zb3J0XCIgKm5nSWY9XCJoZWFkZXJTZXR0aW5ncz8uc29ydFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS1zb3J0LXNjYWxlXCIgKGNsaWNrKT1cImNoYW5nZVNvcnQoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1yeC10YWJsZS1zb3J0LXNjYWxlX190aXRsZVwiPtCh0L7RgNGC0LjRgNC+0LLQsNGC0Ywg0L/Qvjo8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtc29ydC1zY2FsZV9faWNvblwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwic29ydD8uZGlyID09PSAnZGVzYydcIiBjbGFzcz1cIm1yeC1pY29uIGljb24tc29ydGluZy1kb3duIGljb24tZm9udC0xNlwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnQ/LmRpciA9PT0gJ2FzYydcIiBjbGFzcz1cIm1yeC1pY29uIGljb24tc29ydGluZy11cCBpY29uLWZvbnQtMTZcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctc2VsZWN0XHJcbiAgICAgIGJpbmRMYWJlbD1cInNvcnRMYWJlbFwiXHJcbiAgICAgIGJpbmRWYWx1ZT1cIm5hbWVcIlxyXG4gICAgICBbaXRlbXNdPVwiY29sQXJyYXlcIlxyXG4gICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFNvcnRcIlxyXG4gICAgICAoY2hhbmdlKT1cInVwZGF0ZVNvcnRTZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAgIFtjbGVhcmFibGVdPVwiZmFsc2VcIlxyXG4gICAgICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgIFtjbG9zZU9uU2VsZWN0XT1cInRydWVcIlxyXG4gICAgPjwvbmctc2VsZWN0PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkb3dubG9hZFRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtZG93bmxvYWRcIiAoY2xpY2spPVwiY2xpY2tUb0Rvd25sb2FkKCRldmVudClcIiAqbmdJZj1cImhlYWRlclNldHRpbmdzPy5kb3dubG9hZFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wXCI+0KHQutCw0YfQsNGC0Ywg0LTQsNC90L3Ri9C1PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWRvd25sb2FkIGljb24tZm9udC0yNFwiPjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdG9nZ2xlVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS10b2dnbGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtdG9nZ2xlLS1pdGVtIG1yLTFcIiAoY2xpY2spPVwib25DaGFuZ2VUeXBlVGFibGUoJ2NhcmRzJylcIiBbY2xhc3MuYWN0aXZlXT1cInR5cGUgPT09ICdjYXJkcydcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNhcmRzLXZpZXcgaWNvbi1mb250LTI0XCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLXRvZ2dsZS0taXRlbVwiIChjbGljayk9XCJvbkNoYW5nZVR5cGVUYWJsZSgnZGVmYXVsdCcpXCIgW2NsYXNzLmFjdGl2ZV09XCJ0eXBlID09PSAnZGVmYXVsdCdcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLXRhYmxlLXZpZXcgaWNvbi1mb250LTI0XCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2VtcHR5UmVzdWx0TXNnVGVtcGxhdGVEZWZhdWx0PlxyXG4gIHt7ZW1wdHlSZXN1bHRNc2d9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|