@worktile/theia 14.2.32 → 14.3.1
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/components/column-resize/column-resize.scss +4 -8
- package/components/listbox/listbox.d.ts +2 -1
- package/components/plugin-menu/plugin-menu.component.d.ts +1 -0
- package/components/plugin-menu/plugin-menu.component.scss +1 -1
- package/custom-types.d.ts +2 -3
- package/editor.component.d.ts +6 -1
- package/esm2020/components/listbox/listbox.mjs +10 -3
- package/esm2020/components/plugin-menu/plugin-menu.component.mjs +5 -3
- package/esm2020/custom-types.mjs +1 -1
- package/esm2020/editor.component.mjs +26 -10
- package/esm2020/interfaces/image.mjs +1 -1
- package/esm2020/plugins/image/image.component.mjs +11 -3
- package/esm2020/plugins/table/components/td/td.component.mjs +22 -4
- package/fesm2015/worktile-theia.mjs +85 -34
- package/fesm2015/worktile-theia.mjs.map +1 -1
- package/fesm2020/worktile-theia.mjs +84 -34
- package/fesm2020/worktile-theia.mjs.map +1 -1
- package/interfaces/image.d.ts +1 -0
- package/package.json +1 -1
- package/plugins/table/components/td/td.component.d.ts +1 -0
|
@@ -38,12 +38,8 @@ $resizable-active-divider: variables.$primary;
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
max-height: inherit;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
.the-row-resize-handle-panel{
|
|
41
|
+
|
|
42
|
+
.the-row-resize-handle-panel {
|
|
47
43
|
&.cdk-overlay-pane {
|
|
48
44
|
max-width: inherit;
|
|
49
45
|
}
|
|
@@ -64,9 +60,9 @@ $resizable-active-divider: variables.$primary;
|
|
|
64
60
|
}
|
|
65
61
|
}
|
|
66
62
|
}
|
|
67
|
-
.the-numbered-resize-handle-panel{
|
|
63
|
+
.the-numbered-resize-handle-panel {
|
|
68
64
|
.the-table-resize-overlay-thumb {
|
|
69
65
|
cursor: row-resize;
|
|
70
66
|
left: -55px;
|
|
71
67
|
}
|
|
72
|
-
}
|
|
68
|
+
}
|
|
@@ -54,6 +54,7 @@ export declare class TheListboxDirective implements OnInit, AfterContentInit, On
|
|
|
54
54
|
protected _groups: QueryList<TheListboxGroupDirective>;
|
|
55
55
|
protected _options: QueryList<TheListboxOptionDirective>;
|
|
56
56
|
keyboardContainer: HTMLElement;
|
|
57
|
+
autoActiveFirstItem: boolean;
|
|
57
58
|
theListboxChange: EventEmitter<TheListboxChangeEvent>;
|
|
58
59
|
constructor(ngZone: NgZone, elementRef: ElementRef<HTMLElement>);
|
|
59
60
|
ngOnInit(): void;
|
|
@@ -81,7 +82,7 @@ export declare class TheListboxDirective implements OnInit, AfterContentInit, On
|
|
|
81
82
|
setActiveItem(previous: TheListboxOptionDirective | null, option: TheListboxOptionDirective, type: TheListboxChangeEventType): void;
|
|
82
83
|
ngOnDestroy(): void;
|
|
83
84
|
static ɵfac: i0.ɵɵFactoryDeclaration<TheListboxDirective, never>;
|
|
84
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TheListboxDirective, "[theListBox]", ["theListBox"], { "keyboardContainer": "keyboardContainer"; }, { "theListboxChange": "theListboxChange"; }, ["_groups", "_options"], never, false>;
|
|
85
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TheListboxDirective, "[theListBox]", ["theListBox"], { "keyboardContainer": "keyboardContainer"; "autoActiveFirstItem": "autoActiveFirstItem"; }, { "theListboxChange": "theListboxChange"; }, ["_groups", "_options"], never, false>;
|
|
85
86
|
}
|
|
86
87
|
export interface TheListboxChangeEvent {
|
|
87
88
|
option: TheListboxOptionDirective;
|
|
@@ -22,6 +22,7 @@ export declare class ThePluginMenuComponent extends ThePluginMenuComponent_base
|
|
|
22
22
|
keyWords: string;
|
|
23
23
|
thyMessage: string;
|
|
24
24
|
scrollContainer: HTMLElement;
|
|
25
|
+
autoActiveFirstItem: boolean;
|
|
25
26
|
searchGroup: ThePluginMenuGroup;
|
|
26
27
|
expandPopoverOptions: {
|
|
27
28
|
placement: string;
|
package/custom-types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SafeUrl } from '@angular/platform-browser';
|
|
2
1
|
import { Descendant, Element } from 'slate';
|
|
3
2
|
import { Alignment, ElementKinds, LayoutTypes, VerticalAlignment } from './constants';
|
|
4
3
|
import { BlockElementKinds, InlineElementKinds, TheEditor } from './interfaces';
|
|
@@ -67,8 +66,8 @@ export interface ImageElement extends TheElement {
|
|
|
67
66
|
width?: number;
|
|
68
67
|
height?: number;
|
|
69
68
|
url?: string;
|
|
70
|
-
thumbUrl?:
|
|
71
|
-
originUrl?:
|
|
69
|
+
thumbUrl?: string;
|
|
70
|
+
originUrl?: string;
|
|
72
71
|
align?: Alignment;
|
|
73
72
|
layout?: LayoutTypes;
|
|
74
73
|
reSized?: boolean;
|
package/editor.component.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OnInit, OnDestroy, ViewContainerRef, ElementRef, EventEmitter, OnChanges, SimpleChanges, NgZone, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { CdkScrollable, ScrollDispatcher } from '@angular/cdk/scrolling';
|
|
2
3
|
import { MixinBase } from 'ngx-tethys/core';
|
|
3
4
|
import { Editor, Text, Element, Descendant, Range, NodeEntry } from 'slate';
|
|
4
5
|
import { SlateError } from 'slate-angular';
|
|
@@ -15,6 +16,7 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
|
|
|
15
16
|
private theContextService;
|
|
16
17
|
private viewContainerRef;
|
|
17
18
|
private elementRef;
|
|
19
|
+
private scrollDispatcher;
|
|
18
20
|
private ngZone;
|
|
19
21
|
private cdr;
|
|
20
22
|
private iconRegistry;
|
|
@@ -32,7 +34,9 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
|
|
|
32
34
|
theEditorCreated: EventEmitter<Editor>;
|
|
33
35
|
theUploadingStatus: EventEmitter<boolean>;
|
|
34
36
|
templateInstance: TheTemplateComponent;
|
|
37
|
+
theEditableContainer: ElementRef<HTMLElement>;
|
|
35
38
|
globalToolbarInstance: TheToolbarComponent;
|
|
39
|
+
cdkScrollable: CdkScrollable;
|
|
36
40
|
toolbarEntity: ToolbarEntity;
|
|
37
41
|
editor: TheEditor;
|
|
38
42
|
editorValue: Descendant[];
|
|
@@ -44,11 +48,12 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
|
|
|
44
48
|
elementToHtml: WeakMap<Element, string>;
|
|
45
49
|
private onChangeCallback;
|
|
46
50
|
private onTouchedCallback;
|
|
47
|
-
constructor(theContextService: TheContextService, viewContainerRef: ViewContainerRef, elementRef: ElementRef, ngZone: NgZone, cdr: ChangeDetectorRef, iconRegistry: ThyIconRegistry);
|
|
51
|
+
constructor(theContextService: TheContextService, viewContainerRef: ViewContainerRef, elementRef: ElementRef, scrollDispatcher: ScrollDispatcher, ngZone: NgZone, cdr: ChangeDetectorRef, iconRegistry: ThyIconRegistry);
|
|
48
52
|
ngOnInit(): void;
|
|
49
53
|
ngOnChanges(changes: SimpleChanges): void;
|
|
50
54
|
ngOnDestroy(): void;
|
|
51
55
|
initialize(): void;
|
|
56
|
+
initCdkScroll(): void;
|
|
52
57
|
initializeOptions(): void;
|
|
53
58
|
applyAutoFocus(): void;
|
|
54
59
|
toolbarCalculate(): void;
|
|
@@ -170,12 +170,13 @@ export class TheListboxDirective {
|
|
|
170
170
|
this.elementRef = elementRef;
|
|
171
171
|
this.className = 'the-listbox-container';
|
|
172
172
|
this.groups = [];
|
|
173
|
+
this.autoActiveFirstItem = true;
|
|
173
174
|
this.theListboxChange = new EventEmitter();
|
|
174
175
|
}
|
|
175
176
|
ngOnInit() { }
|
|
176
177
|
ngAfterContentInit() {
|
|
177
178
|
this.filterGroups();
|
|
178
|
-
if (this.groups.length > 0) {
|
|
179
|
+
if (this.groups.length > 0 && this.autoActiveFirstItem) {
|
|
179
180
|
this.setActiveItem(null, this.groups[0].getFirst(), 'init');
|
|
180
181
|
}
|
|
181
182
|
this._optionChangesSubscription = this._options.changes.pipe(debounceTime(20)).subscribe(() => {
|
|
@@ -201,6 +202,10 @@ export class TheListboxDirective {
|
|
|
201
202
|
}
|
|
202
203
|
handleKeydown(event) {
|
|
203
204
|
const { keyCode } = event;
|
|
205
|
+
if (!this.activeOption && (keyCode === DOWN_ARROW || keyCode === UP_ARROW || keyCode === RIGHT_ARROW || keyCode === LEFT_ARROW)) {
|
|
206
|
+
this.setActiveItem(null, this.groups[0].getFirst(), 'init');
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
204
209
|
switch (keyCode) {
|
|
205
210
|
case DOWN_ARROW:
|
|
206
211
|
this.setNextLineActive();
|
|
@@ -333,7 +338,7 @@ export class TheListboxDirective {
|
|
|
333
338
|
}
|
|
334
339
|
}
|
|
335
340
|
TheListboxDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TheListboxDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
336
|
-
TheListboxDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: TheListboxDirective, selector: "[theListBox]", inputs: { keyboardContainer: "keyboardContainer" }, outputs: { theListboxChange: "theListboxChange" }, host: { properties: { "class": "this.className" } }, providers: [
|
|
341
|
+
TheListboxDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: TheListboxDirective, selector: "[theListBox]", inputs: { keyboardContainer: "keyboardContainer", autoActiveFirstItem: "autoActiveFirstItem" }, outputs: { theListboxChange: "theListboxChange" }, host: { properties: { "class": "this.className" } }, providers: [
|
|
337
342
|
{
|
|
338
343
|
provide: THE_LISTBOX_TOKEN,
|
|
339
344
|
useExisting: TheListboxDirective
|
|
@@ -362,7 +367,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
362
367
|
args: [TheListboxOptionDirective, { descendants: true }]
|
|
363
368
|
}], keyboardContainer: [{
|
|
364
369
|
type: Input
|
|
370
|
+
}], autoActiveFirstItem: [{
|
|
371
|
+
type: Input
|
|
365
372
|
}], theListboxChange: [{
|
|
366
373
|
type: Output
|
|
367
374
|
}] } });
|
|
368
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb21wb25lbnRzL2xpc3Rib3gvbGlzdGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBSyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hHLE9BQU8sRUFBVSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFFSCxlQUFlLEVBQ2YsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUVILGlCQUFpQixFQUNqQiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQ2pDLE1BQU0sZ0JBQWdCLENBQUM7O0FBWXhCLE1BQU0sT0FBTyx5QkFBeUI7SUFtQmxDLFlBQzRFLFlBQXVDLEVBQ2hFLFdBQXFDLEVBQzdFLFVBQW1DO1FBRjhCLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQUNoRSxnQkFBVyxHQUFYLFdBQVcsQ0FBMEI7UUFDN0UsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFyQnRDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFRixjQUFTLEdBQUcsb0JBQW9CLENBQUM7SUFvQnBELENBQUM7SUFoQkosSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQVlELFFB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OERBRXhCLHlCQUF5QjsyRkFiakMsbUJBQW1CO2tCQVYvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcscUJBQXFCO3lCQUNuQztxQkFDSjtpQkFDSjtzSEFFeUIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQVV3RCxPQUFPO3NCQUFsRixlQUFlO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFFYSxRQUFRO3NCQUFwRixlQUFlO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFFeEQsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPV05fQVJST1csIExFRlRfQVJST1csIEVOVEVSLCBSSUdIVF9BUlJPVywgVVBfQVJST1csIFQgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgTmdab25lLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMvaW50ZXJuYWwvU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgVGhlTGlzdGJveENoYW5nZUV2ZW50VHlwZSxcbiAgICBUSEVfTElTVEJPWF9UT0tFTixcbiAgICBUSEVfTElTVEJPWF9QQVJFTlRfT1BUSU9OX1RPS0VOLFxuICAgIFRIRV9MSVNUQk9YX1BBUkVOVF9HUk9VUF9UT0tFTlxufSBmcm9tICcuL2xpc3Rib3gudHlwZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoZUxpc3Rib3hPcHRpb25dJyxcbiAgICBleHBvcnRBczogJ3RoZUxpc3Rib3hPcHRpb24nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSEVfTElTVEJPWF9QQVJFTlRfT1BUSU9OX1RPS0VOLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gJ3RoZS1saXN0Ym94LW9wdGlvbic7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcHVibGljIF9vcHRpb25zOiBRdWVyeUxpc3Q8VGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZT47XG5cbiAgICBnZXQgaGFzQ2hpbGQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0Q2hpbGQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmZpcnN0O1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHRoZU9wdGlvblZhbHVlOiB1bmtub3duO1xuXG4gICAgQElucHV0KCkgdGhlT3B0aW9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUSEVfTElTVEJPWF9QQVJFTlRfT1BUSU9OX1RPS0VOKSBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwdWJsaWMgcGFyZW50T3B0aW9uOiBUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRIRV9MSVNUQk9YX1BBUkVOVF9HUk9VUF9UT0tFTikgcHVibGljIHBhcmVudEdyb3VwOiBUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmUsXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHt9XG5cbiAgICBnZXRHcm91cHMoKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwczogVGhlTGlzdGJveEdyb3VwRGlyZWN0aXZlW10gPSBbXTtcbiAgICAgICAgdGhpcy5fb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9uLnBhcmVudE9wdGlvbiAmJiBvcHRpb24ucGFyZW50T3B0aW9uID09PSB0aGlzICYmICFncm91cHMuaW5jbHVkZXMob3B0aW9uLnBhcmVudEdyb3VwKSkge1xuICAgICAgICAgICAgICAgIGdyb3Vwcy5wdXNoKG9wdGlvbi5wYXJlbnRHcm91cCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZ3JvdXBzO1xuICAgIH1cblxuICAgIHNldEFjdGl2ZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlID0gYWN0aXZlO1xuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdmb2N1cycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZm9jdXMnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFjdGl2ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoZUxpc3Rib3hHcm91cF0nLFxuICAgIGV4cG9ydEFzOiAndGhlTGlzdGJveEdyb3VwJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVEhFX0xJU1RCT1hfUEFSRU5UX0dST1VQX1RPS0VOLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSAndGhlLWxpc3Rib3gtZ3JvdXAnO1xuXG4gICAgb3B0aW9uczogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZVtdID0gW107XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcHVibGljIF9vcHRpb25zOiBRdWVyeUxpc3Q8VGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZT47XG5cbiAgICAvKipcbiAgICAgKiDlpKfkuo4gMSDooajnpLrmsLTlubPliIbnu4TvvIzlsI/kuo7nrYnkuo4gMSDooajnpLrlnoLnm7TliIbnu4RcbiAgICAgKi9cbiAgICBASW5wdXQoKSBob3Jpem9udGFsQ29sdW1uID0gMTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRIRV9MSVNUQk9YX1BBUkVOVF9PUFRJT05fVE9LRU4pIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHB1YmxpYyBwYXJlbnRPcHRpb246IFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVEhFX0xJU1RCT1hfVE9LRU4pIHB1YmxpYyB0aGVMaXN0Qm94OiBUaGVMaXN0Ym94RGlyZWN0aXZlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBmaWx0ZXJPcHRpb25zKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmZpbHRlcihfb3B0aW9uID0+IHtcbiAgICAgICAgICAgIGlmIChfb3B0aW9uLnBhcmVudEdyb3VwICYmIF9vcHRpb24ucGFyZW50R3JvdXAgPT09IHRoaXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRTaWJsaW5nR3JvdXBzKCkge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnRPcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmVudE9wdGlvbi5nZXRHcm91cHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoZUxpc3RCb3guZ3JvdXBzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzQ2hpbGQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXRGaXJzdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1swXTtcbiAgICB9XG5cbiAgICBnZXRMYXN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMub3B0aW9ucy5sZW5ndGggLSAxXTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoZUxpc3RCb3hdJyxcbiAgICBleHBvcnRBczogJ3RoZUxpc3RCb3gnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSEVfTElTVEJPWF9UT0tFTixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUaGVMaXN0Ym94RGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUxpc3Rib3hEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9ICd0aGUtbGlzdGJveC1jb250YWluZXInO1xuXG4gICAgcHJpdmF0ZSBfb3B0aW9uQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBfa2V5Ym9hcmRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHB1YmxpYyBhY3RpdmVPcHRpb246IFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmU7XG5cbiAgICBwdWJsaWMgZ3JvdXBzOiBUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmVbXSA9IFtdO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcHJvdGVjdGVkIF9ncm91cHM6IFF1ZXJ5TGlzdDxUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHByb3RlY3RlZCBfb3B0aW9uczogUXVlcnlMaXN0PFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmU+O1xuXG4gICAgQElucHV0KCkga2V5Ym9hcmRDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gICAgQE91dHB1dCgpIHRoZUxpc3Rib3hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRoZUxpc3Rib3hDaGFuZ2VFdmVudD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyR3JvdXBzKCk7XG4gICAgICAgIGlmICh0aGlzLmdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0obnVsbCwgdGhpcy5ncm91cHNbMF0uZ2V0Rmlyc3QoKSwgJ2luaXQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9vcHRpb25DaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5fb3B0aW9ucy5jaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyR3JvdXBzKCk7XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5hY3RpdmVPcHRpb24sIHRoaXMuZ3JvdXBzWzBdLmdldEZpcnN0KCksICdpbml0Jyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9rZXlib2FyZFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxLZXlib2FyZEV2ZW50PihcbiAgICAgICAgICAgICAgICB0aGlzLmtleWJvYXJkQ29udGFpbmVyIHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdrZXlkb3duJ1xuICAgICAgICAgICAgKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmlsdGVyR3JvdXBzKCkge1xuICAgICAgICB0aGlzLmdyb3VwcyA9IHRoaXMuX2dyb3Vwcy5maWx0ZXIoZ3JvdXAgPT4ge1xuICAgICAgICAgICAgZ3JvdXAuZmlsdGVyT3B0aW9ucygpO1xuICAgICAgICAgICAgaWYgKCFncm91cC5wYXJlbnRPcHRpb24gJiYgZ3JvdXAuaGFzQ2hpbGQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBrZXlDb2RlIH0gPSBldmVudDtcbiAgICAgICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICAgICAgICBjYXNlIERPV05fQVJST1c6XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROZXh0TGluZUFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFVQX0FSUk9XOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJldmlvdXNMaW5lQWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUklHSFRfQVJST1c6XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROZXh0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIExFRlRfQVJST1c6XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFTlRFUjpcbiAgICAgICAgICAgICAgICB0aGlzLnRoZUxpc3Rib3hDaGFuZ2UuZW1pdCh7IG9wdGlvbjogdGhpcy5hY3RpdmVPcHRpb24sIHR5cGU6ICdzZWxlY3QnIH0pO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDihpBcbiAgICAgKi9cbiAgICBzZXRQcmV2aW91c0l0ZW1BY3RpdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLmFjdGl2ZU9wdGlvbiwgdGhpcy5hY3RpdmVPcHRpb24ucGFyZW50T3B0aW9uLCAncGFyZW50Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBncm91cE9wdGlvbnMgPSB0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cC5vcHRpb25zO1xuICAgICAgICAgICAgbGV0IG9wdGlvbkluZGV4ID0gZ3JvdXBPcHRpb25zLmluZGV4T2YodGhpcy5hY3RpdmVPcHRpb24pO1xuICAgICAgICAgICAgbGV0IG5ld09wdGlvbkluZGV4ID0gb3B0aW9uSW5kZXggLSAxO1xuICAgICAgICAgICAgaWYgKG5ld09wdGlvbkluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5hY3RpdmVPcHRpb24sIGdyb3VwT3B0aW9uc1tuZXdPcHRpb25JbmRleF0sICd0dXJuJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50ZXJQcmV2aW91c0dyb3VwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDihpMg6ZSuXG4gICAgICovXG4gICAgc2V0TmV4dExpbmVBY3RpdmUoYWN0aXZlT3B0aW9uPzogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSkge1xuICAgICAgICBjb25zdCBfYWN0aXZlT3B0aW9uID0gYWN0aXZlT3B0aW9uID8gYWN0aXZlT3B0aW9uIDogdGhpcy5hY3RpdmVPcHRpb247XG4gICAgICAgIGNvbnN0IGdyb3VwT3B0aW9ucyA9IF9hY3RpdmVPcHRpb24ucGFyZW50R3JvdXAub3B0aW9ucztcbiAgICAgICAgbGV0IG9wdGlvbkluZGV4ID0gZ3JvdXBPcHRpb25zLmluZGV4T2YoX2FjdGl2ZU9wdGlvbik7XG4gICAgICAgIGxldCBuZXdPcHRpb25JbmRleCA9IG9wdGlvbkluZGV4ICsgX2FjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cC5ob3Jpem9udGFsQ29sdW1uO1xuICAgICAgICBjb25zdCBsYXN0TGluZUxlbmd0aCA9IGdyb3VwT3B0aW9ucy5sZW5ndGggJSBfYWN0aXZlT3B0aW9uLnBhcmVudEdyb3VwLmhvcml6b250YWxDb2x1bW47XG4gICAgICAgIGNvbnN0IGxhc3RMaW5lU3RhcnRJbmRleCA9IGdyb3VwT3B0aW9ucy5sZW5ndGggLSAobGFzdExpbmVMZW5ndGggPiAwID8gbGFzdExpbmVMZW5ndGggOiAxKTtcbiAgICAgICAgbGV0IG5ld09wdGlvbiA9IG51bGw7XG4gICAgICAgIGlmIChuZXdPcHRpb25JbmRleCA8PSBncm91cE9wdGlvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgbmV3T3B0aW9uID0gZ3JvdXBPcHRpb25zW25ld09wdGlvbkluZGV4XTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25JbmRleCA8IGxhc3RMaW5lU3RhcnRJbmRleCkge1xuICAgICAgICAgICAgbmV3T3B0aW9uSW5kZXggPSBncm91cE9wdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIG5ld09wdGlvbiA9IGdyb3VwT3B0aW9uc1tuZXdPcHRpb25JbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5ld09wdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVJdGVtKHRoaXMuYWN0aXZlT3B0aW9uLCBuZXdPcHRpb24sICd0dXJuJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudGVyTmV4dEdyb3VwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDihpIg6ZSuXG4gICAgICovXG4gICAgc2V0TmV4dEl0ZW1BY3RpdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU9wdGlvbi5oYXNDaGlsZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVJdGVtKHRoaXMuYWN0aXZlT3B0aW9uLCB0aGlzLmFjdGl2ZU9wdGlvbi5maXJzdENoaWxkLCAnY2hpbGQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwT3B0aW9ucyA9IHRoaXMuYWN0aXZlT3B0aW9uLnBhcmVudEdyb3VwLm9wdGlvbnM7XG4gICAgICAgICAgICBsZXQgb3B0aW9uSW5kZXggPSBncm91cE9wdGlvbnMuaW5kZXhPZih0aGlzLmFjdGl2ZU9wdGlvbik7XG4gICAgICAgICAgICBsZXQgbmV3T3B0aW9uSW5kZXggPSBvcHRpb25JbmRleCArIDE7XG4gICAgICAgICAgICBpZiAobmV3T3B0aW9uSW5kZXggPD0gZ3JvdXBPcHRpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5hY3RpdmVPcHRpb24sIGdyb3VwT3B0aW9uc1tuZXdPcHRpb25JbmRleF0sICd0dXJuJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50ZXJOZXh0R3JvdXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOKGkSDplK5cbiAgICAgKi9cbiAgICBzZXRQcmV2aW91c0xpbmVBY3RpdmUoKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwT3B0aW9ucyA9IHRoaXMuYWN0aXZlT3B0aW9uLnBhcmVudEdyb3VwLm9wdGlvbnM7XG4gICAgICAgIGxldCBvcHRpb25JbmRleCA9IGdyb3VwT3B0aW9ucy5pbmRleE9mKHRoaXMuYWN0aXZlT3B0aW9uKTtcbiAgICAgICAgbGV0IG5ld09wdGlvbkluZGV4ID0gb3B0aW9uSW5kZXggLSB0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cC5ob3Jpem9udGFsQ29sdW1uO1xuICAgICAgICBpZiAobmV3T3B0aW9uSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVJdGVtKHRoaXMuYWN0aXZlT3B0aW9uLCBncm91cE9wdGlvbnNbbmV3T3B0aW9uSW5kZXhdLCAndHVybicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbnRlclByZXZpb3VzR3JvdXAoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVudGVyTmV4dEdyb3VwKCkge1xuICAgICAgICBjb25zdCBncm91cHMgPSB0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cC5nZXRTaWJsaW5nR3JvdXBzKCk7XG4gICAgICAgIGNvbnN0IGdyb3VwSW5kZXggPSBncm91cHMuaW5kZXhPZih0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cCk7XG4gICAgICAgIGxldCBuZXdHcm91cEluZGV4ID0gZ3JvdXBJbmRleCArIDE7XG4gICAgICAgIGlmIChuZXdHcm91cEluZGV4ID4gZ3JvdXBzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5ld0dyb3VwSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLmFjdGl2ZU9wdGlvbiwgZ3JvdXBzW25ld0dyb3VwSW5kZXhdLmdldEZpcnN0KCksICd0dXJuJyk7XG4gICAgfVxuXG4gICAgZW50ZXJQcmV2aW91c0dyb3VwKCkge1xuICAgICAgICBjb25zdCBncm91cHMgPSB0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cC5nZXRTaWJsaW5nR3JvdXBzKCk7XG4gICAgICAgIGNvbnN0IGdyb3VwSW5kZXggPSBncm91cHMuaW5kZXhPZih0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cCk7XG4gICAgICAgIGxldCBuZXdHcm91cEluZGV4ID0gZ3JvdXBJbmRleCAtIDE7XG4gICAgICAgIGlmIChuZXdHcm91cEluZGV4IDwgMCkge1xuICAgICAgICAgICAgbmV3R3JvdXBJbmRleCA9IGdyb3Vwcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLmFjdGl2ZU9wdGlvbiwgZ3JvdXBzW25ld0dyb3VwSW5kZXhdLmdldExhc3QoKSwgJ3R1cm4nKTtcbiAgICB9XG5cbiAgICBzZXRBY3RpdmVJdGVtKHByZXZpb3VzOiBUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlIHwgbnVsbCwgb3B0aW9uOiBUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlLCB0eXBlOiBUaGVMaXN0Ym94Q2hhbmdlRXZlbnRUeXBlKSB7XG4gICAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICAgICAgcHJldmlvdXMuc2V0QWN0aXZlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBvcHRpb24uc2V0QWN0aXZlKHRydWUpO1xuICAgICAgICB0aGlzLmFjdGl2ZU9wdGlvbiA9IG9wdGlvbjtcbiAgICAgICAgdGhpcy50aGVMaXN0Ym94Q2hhbmdlLmVtaXQoeyBvcHRpb24sIHR5cGUgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29wdGlvbkNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlTGlzdGJveENoYW5nZUV2ZW50IHtcbiAgICBvcHRpb246IFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmU7XG4gICAgdHlwZTogVGhlTGlzdGJveENoYW5nZUV2ZW50VHlwZTtcbn1cbiJdfQ==
|
|
375
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb21wb25lbnRzL2xpc3Rib3gvbGlzdGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBSyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hHLE9BQU8sRUFBVSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFFSCxlQUFlLEVBQ2YsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUVILGlCQUFpQixFQUNqQiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQ2pDLE1BQU0sZ0JBQWdCLENBQUM7O0FBWXhCLE1BQU0sT0FBTyx5QkFBeUI7SUFtQmxDLFlBQzRFLFlBQXVDLEVBQ2hFLFdBQXFDLEVBQzdFLFVBQW1DO1FBRjhCLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQUNoRSxnQkFBVyxHQUFYLFdBQVcsQ0FBMEI7UUFDN0UsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFyQnRDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFRixjQUFTLEdBQUcsb0JBQW9CLENBQUM7SUFvQnBELENBQUM7SUFoQkosSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQVlELFFB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SSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDOztnSEFoTVEsbUJBQW1CO29HQUFuQixtQkFBbUIsK09BUGpCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxtQkFBbUI7U0FDbkM7S0FDSixrREFhZ0Isd0JBQXdCLDhEQUV4Qix5QkFBeUI7MkZBYmpDLG1CQUFtQjtrQkFWL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHFCQUFxQjt5QkFDbkM7cUJBQ0o7aUJBQ0o7c0hBRXlCLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTztnQkFVd0QsT0FBTztzQkFBbEYsZUFBZTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBRWEsUUFBUTtzQkFBcEYsZUFBZTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBRXhELGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9XTl9BUlJPVywgTEVGVF9BUlJPVywgRU5URVIsIFJJR0hUX0FSUk9XLCBVUF9BUlJPVywgVCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBOZ1pvbmUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBUaGVMaXN0Ym94Q2hhbmdlRXZlbnRUeXBlLFxuICAgIFRIRV9MSVNUQk9YX1RPS0VOLFxuICAgIFRIRV9MSVNUQk9YX1BBUkVOVF9PUFRJT05fVE9LRU4sXG4gICAgVEhFX0xJU1RCT1hfUEFSRU5UX0dST1VQX1RPS0VOXG59IGZyb20gJy4vbGlzdGJveC50eXBlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGhlTGlzdGJveE9wdGlvbl0nLFxuICAgIGV4cG9ydEFzOiAndGhlTGlzdGJveE9wdGlvbicsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRIRV9MSVNUQk9YX1BBUkVOVF9PUFRJT05fVE9LRU4sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwcml2YXRlIF9hY3RpdmUgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSAndGhlLWxpc3Rib3gtb3B0aW9uJztcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBwdWJsaWMgX29wdGlvbnM6IFF1ZXJ5TGlzdDxUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlPjtcblxuICAgIGdldCBoYXNDaGlsZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RDaGlsZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMuZmlyc3Q7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdGhlT3B0aW9uVmFsdWU6IHVua25vd247XG5cbiAgICBASW5wdXQoKSB0aGVPcHRpb25EaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRIRV9MSVNUQk9YX1BBUkVOVF9PUFRJT05fVE9LRU4pIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHB1YmxpYyBwYXJlbnRPcHRpb246IFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVEhFX0xJU1RCT1hfUEFSRU5UX0dST1VQX1RPS0VOKSBwdWJsaWMgcGFyZW50R3JvdXA6IFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge31cblxuICAgIGdldEdyb3VwcygpIHtcbiAgICAgICAgY29uc3QgZ3JvdXBzOiBUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmVbXSA9IFtdO1xuICAgICAgICB0aGlzLl9vcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgIGlmIChvcHRpb24ucGFyZW50T3B0aW9uICYmIG9wdGlvbi5wYXJlbnRPcHRpb24gPT09IHRoaXMgJiYgIWdyb3Vwcy5pbmNsdWRlcyhvcHRpb24ucGFyZW50R3JvdXApKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzLnB1c2gob3B0aW9uLnBhcmVudEdyb3VwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBncm91cHM7XG4gICAgfVxuXG4gICAgc2V0QWN0aXZlKGFjdGl2ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgICAgIGlmIChhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ZvY3VzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmb2N1cycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWN0aXZlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGhlTGlzdGJveEdyb3VwXScsXG4gICAgZXhwb3J0QXM6ICd0aGVMaXN0Ym94R3JvdXAnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSEVfTElTVEJPWF9QQVJFTlRfR1JPVVBfVE9LRU4sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGhlTGlzdGJveEdyb3VwRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9ICd0aGUtbGlzdGJveC1ncm91cCc7XG5cbiAgICBvcHRpb25zOiBUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlW10gPSBbXTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBwdWJsaWMgX29wdGlvbnM6IFF1ZXJ5TGlzdDxUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIOWkp+S6jiAxIOihqOekuuawtOW5s+WIhue7hO+8jOWwj+S6juetieS6jiAxIOihqOekuuWeguebtOWIhue7hFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGhvcml6b250YWxDb2x1bW4gPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVEhFX0xJU1RCT1hfUEFSRU5UX09QVElPTl9UT0tFTikgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHVibGljIHBhcmVudE9wdGlvbjogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUSEVfTElTVEJPWF9UT0tFTikgcHVibGljIHRoZUxpc3RCb3g6IFRoZUxpc3Rib3hEaXJlY3RpdmVcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucygpO1xuICAgIH1cblxuICAgIGZpbHRlck9wdGlvbnMoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuZmlsdGVyKF9vcHRpb24gPT4ge1xuICAgICAgICAgICAgaWYgKF9vcHRpb24ucGFyZW50R3JvdXAgJiYgX29wdGlvbi5wYXJlbnRHcm91cCA9PT0gdGhpcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFNpYmxpbmdHcm91cHMoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhcmVudE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50T3B0aW9uLmdldEdyb3VwcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhlTGlzdEJveC5ncm91cHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYXNDaGlsZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldEZpcnN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zWzBdO1xuICAgIH1cblxuICAgIGdldExhc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNbdGhpcy5vcHRpb25zLmxlbmd0aCAtIDFdO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGhlTGlzdEJveF0nLFxuICAgIGV4cG9ydEFzOiAndGhlTGlzdEJveCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRIRV9MSVNUQk9YX1RPS0VOLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRoZUxpc3Rib3hEaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlTGlzdGJveERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gJ3RoZS1saXN0Ym94LWNvbnRhaW5lcic7XG5cbiAgICBwcml2YXRlIF9vcHRpb25DaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIF9rZXlib2FyZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHVibGljIGFjdGl2ZU9wdGlvbjogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZTtcblxuICAgIHB1YmxpYyBncm91cHM6IFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZVtdID0gW107XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBwcm90ZWN0ZWQgX2dyb3VwczogUXVlcnlMaXN0PFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcHJvdGVjdGVkIF9vcHRpb25zOiBRdWVyeUxpc3Q8VGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZT47XG5cbiAgICBASW5wdXQoKSBrZXlib2FyZENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBASW5wdXQoKSBhdXRvQWN0aXZlRmlyc3RJdGVtID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKSB0aGVMaXN0Ym94Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaGVMaXN0Ym94Q2hhbmdlRXZlbnQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlckdyb3VwcygpO1xuICAgICAgICBpZiAodGhpcy5ncm91cHMubGVuZ3RoID4gMCAmJiB0aGlzLmF1dG9BY3RpdmVGaXJzdEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbShudWxsLCB0aGlzLmdyb3Vwc1swXS5nZXRGaXJzdCgpLCAnaW5pdCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29wdGlvbkNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLl9vcHRpb25zLmNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJHcm91cHMoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLmFjdGl2ZU9wdGlvbiwgdGhpcy5ncm91cHNbMF0uZ2V0Rmlyc3QoKSwgJ2luaXQnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICAgICAgICAgIHRoaXMua2V5Ym9hcmRDb250YWluZXIgfHwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ2tleWRvd24nXG4gICAgICAgICAgICApLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVLZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmaWx0ZXJHcm91cHMoKSB7XG4gICAgICAgIHRoaXMuZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLmZpbHRlcihncm91cCA9PiB7XG4gICAgICAgICAgICBncm91cC5maWx0ZXJPcHRpb25zKCk7XG4gICAgICAgICAgICBpZiAoIWdyb3VwLnBhcmVudE9wdGlvbiAmJiBncm91cC5oYXNDaGlsZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50O1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlT3B0aW9uICYmIChrZXlDb2RlID09PSBET1dOX0FSUk9XIHx8IGtleUNvZGUgPT09IFVQX0FSUk9XIHx8IGtleUNvZGUgPT09IFJJR0hUX0FSUk9XIHx8IGtleUNvZGUgPT09IExFRlRfQVJST1cpKSB7XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0obnVsbCwgdGhpcy5ncm91cHNbMF0uZ2V0Rmlyc3QoKSwgJ2luaXQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoa2V5Q29kZSkge1xuICAgICAgICAgICAgY2FzZSBET1dOX0FSUk9XOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TmV4dExpbmVBY3RpdmUoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBVUF9BUlJPVzpcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByZXZpb3VzTGluZUFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFJJR0hUX0FSUk9XOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBMRUZUX0FSUk9XOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRU5URVI6XG4gICAgICAgICAgICAgICAgdGhpcy50aGVMaXN0Ym94Q2hhbmdlLmVtaXQoeyBvcHRpb246IHRoaXMuYWN0aXZlT3B0aW9uLCB0eXBlOiAnc2VsZWN0JyB9KTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog4oaQXG4gICAgICovXG4gICAgc2V0UHJldmlvdXNJdGVtQWN0aXZlKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVPcHRpb24ucGFyZW50T3B0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5hY3RpdmVPcHRpb24sIHRoaXMuYWN0aXZlT3B0aW9uLnBhcmVudE9wdGlvbiwgJ3BhcmVudCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBPcHRpb25zID0gdGhpcy5hY3RpdmVPcHRpb24ucGFyZW50R3JvdXAub3B0aW9ucztcbiAgICAgICAgICAgIGxldCBvcHRpb25JbmRleCA9IGdyb3VwT3B0aW9ucy5pbmRleE9mKHRoaXMuYWN0aXZlT3B0aW9uKTtcbiAgICAgICAgICAgIGxldCBuZXdPcHRpb25JbmRleCA9IG9wdGlvbkluZGV4IC0gMTtcbiAgICAgICAgICAgIGlmIChuZXdPcHRpb25JbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVJdGVtKHRoaXMuYWN0aXZlT3B0aW9uLCBncm91cE9wdGlvbnNbbmV3T3B0aW9uSW5kZXhdLCAndHVybicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVudGVyUHJldmlvdXNHcm91cCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog4oaTIOmUrlxuICAgICAqL1xuICAgIHNldE5leHRMaW5lQWN0aXZlKGFjdGl2ZU9wdGlvbj86IFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUpIHtcbiAgICAgICAgY29uc3QgX2FjdGl2ZU9wdGlvbiA9IGFjdGl2ZU9wdGlvbiA/IGFjdGl2ZU9wdGlvbiA6IHRoaXMuYWN0aXZlT3B0aW9uO1xuICAgICAgICBjb25zdCBncm91cE9wdGlvbnMgPSBfYWN0aXZlT3B0aW9uLnBhcmVudEdyb3VwLm9wdGlvbnM7XG4gICAgICAgIGxldCBvcHRpb25JbmRleCA9IGdyb3VwT3B0aW9ucy5pbmRleE9mKF9hY3RpdmVPcHRpb24pO1xuICAgICAgICBsZXQgbmV3T3B0aW9uSW5kZXggPSBvcHRpb25JbmRleCArIF9hY3RpdmVPcHRpb24ucGFyZW50R3JvdXAuaG9yaXpvbnRhbENvbHVtbjtcbiAgICAgICAgY29uc3QgbGFzdExpbmVMZW5ndGggPSBncm91cE9wdGlvbnMubGVuZ3RoICUgX2FjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cC5ob3Jpem9udGFsQ29sdW1uO1xuICAgICAgICBjb25zdCBsYXN0TGluZVN0YXJ0SW5kZXggPSBncm91cE9wdGlvbnMubGVuZ3RoIC0gKGxhc3RMaW5lTGVuZ3RoID4gMCA/IGxhc3RMaW5lTGVuZ3RoIDogMSk7XG4gICAgICAgIGxldCBuZXdPcHRpb24gPSBudWxsO1xuICAgICAgICBpZiAobmV3T3B0aW9uSW5kZXggPD0gZ3JvdXBPcHRpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5ld09wdGlvbiA9IGdyb3VwT3B0aW9uc1tuZXdPcHRpb25JbmRleF07XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9uSW5kZXggPCBsYXN0TGluZVN0YXJ0SW5kZXgpIHtcbiAgICAgICAgICAgIG5ld09wdGlvbkluZGV4ID0gZ3JvdXBPcHRpb25zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBuZXdPcHRpb24gPSBncm91cE9wdGlvbnNbbmV3T3B0aW9uSW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLmFjdGl2ZU9wdGlvbiwgbmV3T3B0aW9uLCAndHVybicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbnRlck5leHRHcm91cCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog4oaSIOmUrlxuICAgICAqL1xuICAgIHNldE5leHRJdGVtQWN0aXZlKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVPcHRpb24uaGFzQ2hpbGQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLmFjdGl2ZU9wdGlvbiwgdGhpcy5hY3RpdmVPcHRpb24uZmlyc3RDaGlsZCwgJ2NoaWxkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBncm91cE9wdGlvbnMgPSB0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cC5vcHRpb25zO1xuICAgICAgICAgICAgbGV0IG9wdGlvbkluZGV4ID0gZ3JvdXBPcHRpb25zLmluZGV4T2YodGhpcy5hY3RpdmVPcHRpb24pO1xuICAgICAgICAgICAgbGV0IG5ld09wdGlvbkluZGV4ID0gb3B0aW9uSW5kZXggKyAxO1xuICAgICAgICAgICAgaWYgKG5ld09wdGlvbkluZGV4IDw9IGdyb3VwT3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVJdGVtKHRoaXMuYWN0aXZlT3B0aW9uLCBncm91cE9wdGlvbnNbbmV3T3B0aW9uSW5kZXhdLCAndHVybicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVudGVyTmV4dEdyb3VwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDihpEg6ZSuXG4gICAgICovXG4gICAgc2V0UHJldmlvdXNMaW5lQWN0aXZlKCkge1xuICAgICAgICBjb25zdCBncm91cE9wdGlvbnMgPSB0aGlzLmFjdGl2ZU9wdGlvbi5wYXJlbnRHcm91cC5vcHRpb25zO1xuICAgICAgICBsZXQgb3B0aW9uSW5kZXggPSBncm91cE9wdGlvbnMuaW5kZXhPZih0aGlzLmFjdGl2ZU9wdGlvbik7XG4gICAgICAgIGxldCBuZXdPcHRpb25JbmRleCA9IG9wdGlvbkluZGV4IC0gdGhpcy5hY3RpdmVPcHRpb24ucGFyZW50R3JvdXAuaG9yaXpvbnRhbENvbHVtbjtcbiAgICAgICAgaWYgKG5ld09wdGlvbkluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLmFjdGl2ZU9wdGlvbiwgZ3JvdXBPcHRpb25zW25ld09wdGlvbkluZGV4XSwgJ3R1cm4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW50ZXJQcmV2aW91c0dyb3VwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbnRlck5leHRHcm91cCgpIHtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gdGhpcy5hY3RpdmVPcHRpb24ucGFyZW50R3JvdXAuZ2V0U2libGluZ0dyb3VwcygpO1xuICAgICAgICBjb25zdCBncm91cEluZGV4ID0gZ3JvdXBzLmluZGV4T2YodGhpcy5hY3RpdmVPcHRpb24ucGFyZW50R3JvdXApO1xuICAgICAgICBsZXQgbmV3R3JvdXBJbmRleCA9IGdyb3VwSW5kZXggKyAxO1xuICAgICAgICBpZiAobmV3R3JvdXBJbmRleCA+IGdyb3Vwcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBuZXdHcm91cEluZGV4ID0gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5hY3RpdmVPcHRpb24sIGdyb3Vwc1tuZXdHcm91cEluZGV4XS5nZXRGaXJzdCgpLCAndHVybicpO1xuICAgIH1cblxuICAgIGVudGVyUHJldmlvdXNHcm91cCgpIHtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gdGhpcy5hY3RpdmVPcHRpb24ucGFyZW50R3JvdXAuZ2V0U2libGluZ0dyb3VwcygpO1xuICAgICAgICBjb25zdCBncm91cEluZGV4ID0gZ3JvdXBzLmluZGV4T2YodGhpcy5hY3RpdmVPcHRpb24ucGFyZW50R3JvdXApO1xuICAgICAgICBsZXQgbmV3R3JvdXBJbmRleCA9IGdyb3VwSW5kZXggLSAxO1xuICAgICAgICBpZiAobmV3R3JvdXBJbmRleCA8IDApIHtcbiAgICAgICAgICAgIG5ld0dyb3VwSW5kZXggPSBncm91cHMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5hY3RpdmVPcHRpb24sIGdyb3Vwc1tuZXdHcm91cEluZGV4XS5nZXRMYXN0KCksICd0dXJuJyk7XG4gICAgfVxuXG4gICAgc2V0QWN0aXZlSXRlbShwcmV2aW91czogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSB8IG51bGwsIG9wdGlvbjogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSwgdHlwZTogVGhlTGlzdGJveENoYW5nZUV2ZW50VHlwZSkge1xuICAgICAgICBpZiAocHJldmlvdXMpIHtcbiAgICAgICAgICAgIHByZXZpb3VzLnNldEFjdGl2ZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9uLnNldEFjdGl2ZSh0cnVlKTtcbiAgICAgICAgdGhpcy5hY3RpdmVPcHRpb24gPSBvcHRpb247XG4gICAgICAgIHRoaXMudGhlTGlzdGJveENoYW5nZS5lbWl0KHsgb3B0aW9uLCB0eXBlIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcHRpb25DaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRoZUxpc3Rib3hDaGFuZ2VFdmVudCB7XG4gICAgb3B0aW9uOiBUaGVMaXN0Ym94T3B0aW9uRGlyZWN0aXZlO1xuICAgIHR5cGU6IFRoZUxpc3Rib3hDaGFuZ2VFdmVudFR5cGU7XG59XG4iXX0=
|
|
@@ -56,6 +56,7 @@ export class ThePluginMenuComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
ngOnInit() {
|
|
59
|
+
this.autoActiveFirstItem = !this.theDisplaySearch;
|
|
59
60
|
this.initializeSearch();
|
|
60
61
|
this.initializePluginMenu();
|
|
61
62
|
this.buildMenus();
|
|
@@ -139,6 +140,7 @@ export class ThePluginMenuComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
139
140
|
QuickInsertEditor.updatePluginMenuRef(this.editor, null);
|
|
140
141
|
}
|
|
141
142
|
updateKeywords(keywords) {
|
|
143
|
+
this.autoActiveFirstItem = true;
|
|
142
144
|
this.keyWords = keywords.toLowerCase().trim();
|
|
143
145
|
this.buildMenus();
|
|
144
146
|
if (this.scrollContainer) {
|
|
@@ -177,10 +179,10 @@ export class ThePluginMenuComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
177
179
|
}
|
|
178
180
|
}
|
|
179
181
|
ThePluginMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ThePluginMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
-
ThePluginMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ThePluginMenuComponent, selector: "the-plugin-menu", inputs: { editor: "editor", theDisplaySearch: "theDisplaySearch", thePluginMenu: "thePluginMenu" }, host: { properties: { "class": "this.containerClassName" } }, viewQueries: [{ propertyName: "dropdownTriggers", predicate: ["dropdownTriggers"], descendants: true, read: ThyDropdownDirective }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"theDisplaySearch\" class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search [(ngModel)]=\"keyWords\" placeholder=\"\u641C\u7D22\" thyIconPosition=\"after\" (ngModelChange)=\"updateKeywords(keyWords)\">\n </thy-input-search>\n</div>\n\n<div\n *ngIf=\"groupMenu.length > 0; else thyEmpty\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n (theListboxChange)=\"theListboxChange($event)\"\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n>\n <div *ngIf=\"iconMenu?.length > 0\" theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n <ng-container *ngFor=\"let item of iconMenu; trackBy: trackByFn\">\n <a\n *ngIf=\"item.type === ThePluginMenuItemType.icon\"\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n ></a>\n </ng-container>\n </div>\n\n <thy-divider *ngIf=\"this.iconMenu?.length\" class=\"my-2\"></thy-divider>\n <div theListboxGroup>\n <ng-container *ngFor=\"let item of groupMenu; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.isMenuItem && !(item.children?.length > 0) && item.key !== 'table'\">\n <div\n thyDropdownMenuItem\n theListboxOption\n [theOptionValue]=\"item\"\n class=\"py-0\"\n thePreventDefault\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n [thyDropdown]=\"expand\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n [thyDisabled]=\"item.disabled\"\n theListboxOption\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n class=\"py-0\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div *ngIf=\"item.children?.length > 0\">\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n <div\n *ngFor=\"let child of item.children\"\n thyDropdownMenuItem\n theListboxOption\n class=\"py-0\"\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n (click)=\"handleItemSelection(child)\"\n [theOptionValue]=\"child\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ child.name }}\n </div>\n </div>\n </div>\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n [thyPopover]=\"tableSelect\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n [thyConfig]=\"tableSelectPopoverConfig\"\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n class=\"py-0\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n\n <ng-template #tableSelect>\n <table-select\n class=\"plugin-menu-table the-table-selector-panel\"\n [editor]=\"editor\"\n [beforeInsert]=\"removeKeywords\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.isMenuItem\" #menuGroup>\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #thyEmpty>\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i5.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i6.ThyInputSearchComponent, selector: "thy-input-search", inputs: ["name", "placeholder", "thyTheme", "thySearchFocus", "thyIconPosition", "thySize"], outputs: ["clear", "thyClear"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i8.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: i9.ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyActiveClass", "thyPopoverOptions"], outputs: ["thyActiveChange"] }, { kind: "component", type: i9.ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth"] }, { kind: "component", type: i9.ThyDropdownMenuGroupComponent, selector: "thy-dropdown-menu-group", inputs: ["thyTitle"] }, { kind: "directive", type: i9.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: i10.ThyEmptyComponent, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: i1.ThyPopoverDirective, selector: "[thyPopover]", inputs: ["thyPopover", "thyTrigger", "thyPlacement", "thyOffset", "thyConfig", "thyShowDelay", "thyHideDelay", "thyAutoAdaptive", "thyDisabled"] }, { kind: "component", type: i11.TheTableSelectComponent, selector: "table-select", inputs: ["optionsParam", "editor", "beforeInsert"] }, { kind: "directive", type: i12.TheListboxOptionDirective, selector: "[theListboxOption]", inputs: ["theOptionValue", "theOptionDisabled"], exportAs: ["theListboxOption"] }, { kind: "directive", type: i12.TheListboxGroupDirective, selector: "[theListboxGroup]", inputs: ["horizontalColumn"], exportAs: ["theListboxGroup"] }, { kind: "directive", type: i12.TheListboxDirective, selector: "[theListBox]", inputs: ["keyboardContainer"], outputs: ["theListboxChange"], exportAs: ["theListBox"] }, { kind: "directive", type: i13.ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }] });
|
|
182
|
+
ThePluginMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ThePluginMenuComponent, selector: "the-plugin-menu", inputs: { editor: "editor", theDisplaySearch: "theDisplaySearch", thePluginMenu: "thePluginMenu" }, host: { properties: { "class": "this.containerClassName" } }, viewQueries: [{ propertyName: "dropdownTriggers", predicate: ["dropdownTriggers"], descendants: true, read: ThyDropdownDirective }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"theDisplaySearch\" class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search [(ngModel)]=\"keyWords\" placeholder=\"\u641C\u7D22\" thyIconPosition=\"after\" (ngModelChange)=\"updateKeywords(keyWords)\">\n </thy-input-search>\n</div>\n\n<div\n *ngIf=\"groupMenu.length > 0; else thyEmpty\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"autoActiveFirstItem\"\n (theListboxChange)=\"theListboxChange($event)\"\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n>\n <div *ngIf=\"iconMenu?.length > 0\" theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n <ng-container *ngFor=\"let item of iconMenu; trackBy: trackByFn\">\n <a\n *ngIf=\"item.type === ThePluginMenuItemType.icon\"\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n ></a>\n </ng-container>\n </div>\n\n <thy-divider *ngIf=\"this.iconMenu?.length\" class=\"my-2\"></thy-divider>\n <div theListboxGroup>\n <ng-container *ngFor=\"let item of groupMenu; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.isMenuItem && !(item.children?.length > 0) && item.key !== 'table'\">\n <div\n thyDropdownMenuItem\n theListboxOption\n [theOptionValue]=\"item\"\n class=\"py-0\"\n thePreventDefault\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n [thyDropdown]=\"expand\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n [thyDisabled]=\"item.disabled\"\n theListboxOption\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n class=\"py-0\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div *ngIf=\"item.children?.length > 0\">\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n <div\n *ngFor=\"let child of item.children\"\n thyDropdownMenuItem\n theListboxOption\n class=\"py-0\"\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n (click)=\"handleItemSelection(child)\"\n [theOptionValue]=\"child\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ child.name }}\n </div>\n </div>\n </div>\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n [thyPopover]=\"tableSelect\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n [thyConfig]=\"tableSelectPopoverConfig\"\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n class=\"py-0\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n\n <ng-template #tableSelect>\n <table-select\n class=\"plugin-menu-table the-table-selector-panel\"\n [editor]=\"editor\"\n [beforeInsert]=\"removeKeywords\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.isMenuItem\" #menuGroup>\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #thyEmpty>\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i5.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i6.ThyInputSearchComponent, selector: "thy-input-search", inputs: ["name", "placeholder", "thyTheme", "thySearchFocus", "thyIconPosition", "thySize"], outputs: ["clear", "thyClear"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i8.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: i9.ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyActiveClass", "thyPopoverOptions"], outputs: ["thyActiveChange"] }, { kind: "component", type: i9.ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth"] }, { kind: "component", type: i9.ThyDropdownMenuGroupComponent, selector: "thy-dropdown-menu-group", inputs: ["thyTitle"] }, { kind: "directive", type: i9.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: i10.ThyEmptyComponent, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: i1.ThyPopoverDirective, selector: "[thyPopover]", inputs: ["thyPopover", "thyTrigger", "thyPlacement", "thyOffset", "thyConfig", "thyShowDelay", "thyHideDelay", "thyAutoAdaptive", "thyDisabled"] }, { kind: "component", type: i11.TheTableSelectComponent, selector: "table-select", inputs: ["optionsParam", "editor", "beforeInsert"] }, { kind: "directive", type: i12.TheListboxOptionDirective, selector: "[theListboxOption]", inputs: ["theOptionValue", "theOptionDisabled"], exportAs: ["theListboxOption"] }, { kind: "directive", type: i12.TheListboxGroupDirective, selector: "[theListboxGroup]", inputs: ["horizontalColumn"], exportAs: ["theListboxGroup"] }, { kind: "directive", type: i12.TheListboxDirective, selector: "[theListBox]", inputs: ["keyboardContainer", "autoActiveFirstItem"], outputs: ["theListboxChange"], exportAs: ["theListBox"] }, { kind: "directive", type: i13.ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }] });
|
|
181
183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ThePluginMenuComponent, decorators: [{
|
|
182
184
|
type: Component,
|
|
183
|
-
args: [{ selector: 'the-plugin-menu', template: "<div *ngIf=\"theDisplaySearch\" class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search [(ngModel)]=\"keyWords\" placeholder=\"\u641C\u7D22\" thyIconPosition=\"after\" (ngModelChange)=\"updateKeywords(keyWords)\">\n </thy-input-search>\n</div>\n\n<div\n *ngIf=\"groupMenu.length > 0; else thyEmpty\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n (theListboxChange)=\"theListboxChange($event)\"\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n>\n <div *ngIf=\"iconMenu?.length > 0\" theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n <ng-container *ngFor=\"let item of iconMenu; trackBy: trackByFn\">\n <a\n *ngIf=\"item.type === ThePluginMenuItemType.icon\"\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n ></a>\n </ng-container>\n </div>\n\n <thy-divider *ngIf=\"this.iconMenu?.length\" class=\"my-2\"></thy-divider>\n <div theListboxGroup>\n <ng-container *ngFor=\"let item of groupMenu; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.isMenuItem && !(item.children?.length > 0) && item.key !== 'table'\">\n <div\n thyDropdownMenuItem\n theListboxOption\n [theOptionValue]=\"item\"\n class=\"py-0\"\n thePreventDefault\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n [thyDropdown]=\"expand\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n [thyDisabled]=\"item.disabled\"\n theListboxOption\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n class=\"py-0\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div *ngIf=\"item.children?.length > 0\">\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n <div\n *ngFor=\"let child of item.children\"\n thyDropdownMenuItem\n theListboxOption\n class=\"py-0\"\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n (click)=\"handleItemSelection(child)\"\n [theOptionValue]=\"child\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ child.name }}\n </div>\n </div>\n </div>\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n [thyPopover]=\"tableSelect\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n [thyConfig]=\"tableSelectPopoverConfig\"\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n class=\"py-0\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n\n <ng-template #tableSelect>\n <table-select\n class=\"plugin-menu-table the-table-selector-panel\"\n [editor]=\"editor\"\n [beforeInsert]=\"removeKeywords\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.isMenuItem\" #menuGroup>\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #thyEmpty>\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n</ng-template>\n" }]
|
|
185
|
+
args: [{ selector: 'the-plugin-menu', template: "<div *ngIf=\"theDisplaySearch\" class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search [(ngModel)]=\"keyWords\" placeholder=\"\u641C\u7D22\" thyIconPosition=\"after\" (ngModelChange)=\"updateKeywords(keyWords)\">\n </thy-input-search>\n</div>\n\n<div\n *ngIf=\"groupMenu.length > 0; else thyEmpty\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"autoActiveFirstItem\"\n (theListboxChange)=\"theListboxChange($event)\"\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n>\n <div *ngIf=\"iconMenu?.length > 0\" theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n <ng-container *ngFor=\"let item of iconMenu; trackBy: trackByFn\">\n <a\n *ngIf=\"item.type === ThePluginMenuItemType.icon\"\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n ></a>\n </ng-container>\n </div>\n\n <thy-divider *ngIf=\"this.iconMenu?.length\" class=\"my-2\"></thy-divider>\n <div theListboxGroup>\n <ng-container *ngFor=\"let item of groupMenu; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.isMenuItem && !(item.children?.length > 0) && item.key !== 'table'\">\n <div\n thyDropdownMenuItem\n theListboxOption\n [theOptionValue]=\"item\"\n class=\"py-0\"\n thePreventDefault\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n [thyDropdown]=\"expand\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n [thyDisabled]=\"item.disabled\"\n theListboxOption\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n class=\"py-0\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div *ngIf=\"item.children?.length > 0\">\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n <div\n *ngFor=\"let child of item.children\"\n thyDropdownMenuItem\n theListboxOption\n class=\"py-0\"\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n (click)=\"handleItemSelection(child)\"\n [theOptionValue]=\"child\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ child.name }}\n </div>\n </div>\n </div>\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n [thyPopover]=\"tableSelect\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n [thyConfig]=\"tableSelectPopoverConfig\"\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n class=\"py-0\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n\n <ng-template #tableSelect>\n <table-select\n class=\"plugin-menu-table the-table-selector-panel\"\n [editor]=\"editor\"\n [beforeInsert]=\"removeKeywords\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.isMenuItem\" #menuGroup>\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #thyEmpty>\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n</ng-template>\n" }]
|
|
184
186
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.ThyPopoverRef }]; }, propDecorators: { dropdownTriggers: [{
|
|
185
187
|
type: ViewChildren,
|
|
186
188
|
args: ['dropdownTriggers', { read: ThyDropdownDirective }]
|
|
@@ -194,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
194
196
|
}], thePluginMenu: [{
|
|
195
197
|
type: Input
|
|
196
198
|
}] } });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvcGx1Z2luLW1lbnUvcGx1Z2luLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvcGx1Z2luLW1lbnUvcGx1Z2luLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQTRDLFdBQVcsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBNkIsTUFBTSxPQUFPLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUNILGFBQWEsRUFLaEIsTUFBTSxzQ0FBc0MsQ0FBQztBQUk5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU05QyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO0lBNkNuRSxZQUNXLFVBQW1DLEVBQ25DLEdBQXNCLEVBQ3JCLE1BQWMsRUFDZCxhQUFvRDtRQUU1RCxLQUFL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RixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFO2dCQUUxQyxrQkFBa0I7c0JBQXZDLFdBQVc7dUJBQUMsT0FBTztnQkFFWCxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEhvc3RCaW5kaW5nLCBWaWV3Q2hpbGRyZW4sIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWl4aW5VbnN1YnNjcmliZSwgTWl4aW5CYXNlLCBTY3JvbGxUb1NlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBQYXRoUmVmLCBUZXh0LCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgYnVpbGRQbHVnaW5NZW51LCBidWlsZFBsdWdpbk1lbnVJdGVtTWFwIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9wbHVnaW4tbWVudSc7XG5pbXBvcnQgeyBEZWZhdWx0UGx1Z2luTWVudSwgVGhlUGx1Z2luTWVudUl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3BsdWdpbi1tZW51JztcbmltcG9ydCB7XG4gICAgVGhlUGx1Z2luTWVudSxcbiAgICBUaGVQbHVnaW5NZW51R3JvdXAsXG4gICAgVGhlUGx1Z2luTWVudUl0ZW0sXG4gICAgVGhlUGx1Z2luTWVudUl0ZW1Db25maWcsXG4gICAgVGhlUGx1Z2luTWVudUl0ZW1XcmFwXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGx1Z2lucy9wbHVnaW4tbWVudSc7XG5pbXBvcnQgeyBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBRdWlja0luc2VydFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQucGx1Z2luJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFF1aWNrSW5zZXJ0RWRpdG9yIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRoZUxpc3Rib3hDaGFuZ2VFdmVudCwgVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2xpc3Rib3gvbGlzdGJveCc7XG5pbXBvcnQgeyBUaHlEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvZHJvcGRvd24nO1xuaW1wb3J0IHsgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyByZWZvY3VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmb2N1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLXBsdWdpbi1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BsdWdpbi1tZW51LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVQbHVnaW5NZW51Q29tcG9uZW50IGV4dGVuZHMgbWl4aW5VbnN1YnNjcmliZShNaXhpbkJhc2UpIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHBhdGhSZWY6IFBhdGhSZWY7XG5cbiAgICBrZXlib2FyZENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBfcGx1Z2luTWVudTogVGhlUGx1Z2luTWVudTtcblxuICAgIGdyb3VwTWVudTogVGhlUGx1Z2luTWVudSA9IFtdO1xuXG4gICAgaWNvbk1lbnU6IFRoZVBsdWdpbk1lbnUgPSBbXTtcblxuICAgIFRoZVBsdWdpbk1lbnVJdGVtVHlwZSA9IFRoZVBsdWdpbk1lbnVJdGVtVHlwZTtcblxuICAgIGtleVdvcmRzOiBzdHJpbmc7XG5cbiAgICB0aHlNZXNzYWdlID0gJ+aaguaXoOaVsOaNric7XG5cbiAgICBzY3JvbGxDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gICAgc2VhcmNoR3JvdXA6IFRoZVBsdWdpbk1lbnVHcm91cCA9IHtcbiAgICAgICAgZ3JvdXBOYW1lOiAn5pCc57Si57uT5p6cJ1xuICAgIH07XG5cbiAgICBleHBhbmRQb3BvdmVyT3B0aW9ucyA9IHtcbiAgICAgICAgcGxhY2VtZW50OiAncmlnaHRUb3AnLFxuICAgICAgICB3aWR0aDogJzI2NnB4J1xuICAgIH07XG5cbiAgICB0YWJsZVNlbGVjdFBvcG92ZXJDb25maWcgPSB7XG4gICAgICAgIHBhbmVsQ2xhc3M6ICdwbHVnaW4tbWVudS10YWJsZS1zZWxlY3QtY29udGFpbmVyJyxcbiAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgIC8vICDpgb/lhY3ph43lhplcbiAgICAgICAgb3JpZ2luQWN0aXZlQ2xhc3M6ICd0aHktcG9wb3Zlci1vcmlnaW4tYWN0aXZlJ1xuICAgIH07XG5cbiAgICBAVmlld0NoaWxkcmVuKCdkcm9wZG93blRyaWdnZXJzJywgeyByZWFkOiBUaHlEcm9wZG93bkRpcmVjdGl2ZSB9KSBkcm9wZG93blRyaWdnZXJzOiBUaHlEcm9wZG93bkRpcmVjdGl2ZVtdO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNvbnRhaW5lckNsYXNzTmFtZSA9IGB0aGUtcGx1Z2luLW1lbnUtY29udGFpbmVyYDtcblxuICAgIEBJbnB1dCgpIGVkaXRvcjogRWRpdG9yO1xuXG4gICAgQElucHV0KCkgdGhlRGlzcGxheVNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGhlUGx1Z2luTWVudTogVGhlUGx1Z2luTWVudUl0ZW1Db25maWdbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHRoeVBvcG92ZXJSZWY6IFRoeVBvcG92ZXJSZWY8VGhlUGx1Z2luTWVudUNvbXBvbmVudD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplU2VhcmNoKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBsdWdpbk1lbnUoKTtcbiAgICAgICAgdGhpcy5idWlsZE1lbnVzKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGhlLXBsdWdpbi1tZW51LXNjcm9sbC1jb250YWluZXInKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVNlYXJjaCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGhlRGlzcGxheVNlYXJjaCkge1xuICAgICAgICAgICAgdGhpcy5rZXlib2FyZENvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8g6K6w5L2P5L2N572uXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGhSZWYgPSBFZGl0b3IucGF0aFJlZih0aGlzLmVkaXRvciwgdGhpcy5lZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmtleWJvYXJkQ29udGFpbmVyID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRpYWxpemVQbHVnaW5NZW51KCkge1xuICAgICAgICBjb25zdCBjdXJyZW50TWVudSA9IHRoaXMudGhlUGx1Z2luTWVudSB8fCBEZWZhdWx0UGx1Z2luTWVudTtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1zTWFwID0gYnVpbGRQbHVnaW5NZW51SXRlbU1hcCh0aGlzLmVkaXRvcik7XG4gICAgICAgIHRoaXMuX3BsdWdpbk1lbnUgPSBidWlsZFBsdWdpbk1lbnUobWVudUl0ZW1zTWFwLCBjdXJyZW50TWVudSk7XG4gICAgfVxuXG4gICAgYnVpbGRNZW51cygpIHtcbiAgICAgICAgdGhpcy5pY29uTWVudSA9IFtdO1xuICAgICAgICB0aGlzLmdyb3VwTWVudSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5rZXlXb3Jkcykge1xuICAgICAgICAgICAgdGhpcy5fcGx1Z2luTWVudS5mb3JFYWNoKChpdGVtOiBUaGVQbHVnaW5NZW51SXRlbVdyYXApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoVGhlUGx1Z2luTWVudS5pc01lbnVJdGVtKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNNZW51SXRlbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSBpdGVtLmlzRGlzYWJsZWQgJiYgaXRlbS5pc0Rpc2FibGVkKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ua2V5d29yZHMgJiYgaXRlbS5rZXl3b3Jkcz8uaW5jbHVkZXModGhpcy5rZXlXb3JkcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBNZW51LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZDogVGhlUGx1Z2luTWVudUl0ZW1XcmFwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuaXNNZW51SXRlbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuZGlzYWJsZWQgPSBjaGlsZC5pc0Rpc2FibGVkICYmIGNoaWxkLmlzRGlzYWJsZWQodGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5rZXl3b3JkcyAmJiBjaGlsZC5rZXl3b3Jkcz8uaW5jbHVkZXModGhpcy5rZXlXb3JkcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZ3JvdXBNZW51Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwTWVudS51bnNoaWZ0KHRoaXMuc2VhcmNoR3JvdXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcGx1Z2luTWVudS5mb3JFYWNoKChpdGVtOiBUaGVQbHVnaW5NZW51SXRlbVdyYXApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoVGhlUGx1Z2luTWVudS5pc01lbnVJdGVtKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNNZW51SXRlbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSBpdGVtLmlzRGlzYWJsZWQgJiYgaXRlbS5pc0Rpc2FibGVkKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQ6IFRoZVBsdWdpbk1lbnVJdGVtV3JhcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuaXNNZW51SXRlbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5kaXNhYmxlZCA9IGNoaWxkLmlzRGlzYWJsZWQgJiYgY2hpbGQuaXNEaXNhYmxlZCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpdGVtPy50eXBlID09PSBUaGVQbHVnaW5NZW51SXRlbVR5cGUuaWNvbiA/IHRoaXMuaWNvbk1lbnUucHVzaChpdGVtKSA6IHRoaXMuZ3JvdXBNZW51LnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGhhbmRsZUl0ZW1TZWxlY3Rpb24obWVudUl0ZW06IFRoZVBsdWdpbk1lbnVJdGVtKSB7XG4gICAgICAgIGlmIChtZW51SXRlbS5pc0Rpc2FibGVkICYmIG1lbnVJdGVtLmlzRGlzYWJsZWQodGhpcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJlZm9jdXModGhpcy5lZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50aGVEaXNwbGF5U2VhcmNoKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUtleXdvcmRzKCk7XG4gICAgICAgIH1cbiAgICAgICAgbWVudUl0ZW0uZXhlY3V0ZSh0aGlzLmVkaXRvcik7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICBRdWlja0luc2VydEVkaXRvci51cGRhdGVQbHVnaW5NZW51UmVmKHRoaXMuZWRpdG9yLCBudWxsKTtcbiAgICB9XG5cbiAgICByZW1vdmVLZXl3b3JkcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IE5vZGUuZ2V0KHRoaXMuZWRpdG9yLCB0aGlzLmVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpIGFzIFRleHQ7XG4gICAgICAgIGlmIChub2RlICYmIE5vZGUuc3RyaW5nKG5vZGUpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIEVkaXRvci5kZWxldGVCYWNrd2FyZCh0aGlzLmVkaXRvciwgeyB1bml0OiAnYmxvY2snIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHVwZGF0ZUtleXdvcmRzKGtleXdvcmRzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5rZXlXb3JkcyA9IGtleXdvcmRzLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgICAgICB0aGlzLmJ1aWxkTWVudXMoKTtcbiAgICAgICAgaWYgKHRoaXMuc2Nyb2xsQ29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhlTGlzdGJveENoYW5nZShldmVudDogVGhlTGlzdGJveENoYW5nZUV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVJdGVtU2VsZWN0aW9uKGV2ZW50Lm9wdGlvbi50aGVPcHRpb25WYWx1ZSBhcyBUaGVQbHVnaW5NZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjaGlsZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5maW5kRHJvcGRvd25UcmlnZ2VyKGV2ZW50Lm9wdGlvbi5wYXJlbnRPcHRpb24pO1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBkcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3BhcmVudCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5maW5kRHJvcGRvd25UcmlnZ2VyKGV2ZW50Lm9wdGlvbik7XG4gICAgICAgICAgICBkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0dXJuJyAmJiAhZXZlbnQub3B0aW9uLnBhcmVudE9wdGlvbikge1xuICAgICAgICAgICAgU2Nyb2xsVG9TZXJ2aWNlLnNjcm9sbFRvRWxlbWVudChldmVudC5vcHRpb24uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnNjcm9sbENvbnRhaW5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kRHJvcGRvd25UcmlnZ2VyKG9wdGlvbjogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSkge1xuICAgICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuZHJvcGRvd25UcmlnZ2Vycy5maW5kKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZVsnZWxlbWVudFJlZiddLm5hdGl2ZUVsZW1lbnQgPT09IG9wdGlvbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZHJvcGRvd247XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBUaGVQbHVnaW5NZW51SXRlbSwgaXRlbTogYW55KSB7XG4gICAgICAgIHJldHVybiBpdGVtPy5rZXkgPz8gaW5kZXg7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInRoZURpc3BsYXlTZWFyY2hcIiBjbGFzcz1cIm1lbnUtc2VhcmNoIHB4LTUgcHQtNSBwYi0yXCI+XG4gICAgPHRoeS1pbnB1dC1zZWFyY2ggWyhuZ01vZGVsKV09XCJrZXlXb3Jkc1wiIHBsYWNlaG9sZGVyPVwi5pCc57SiXCIgdGh5SWNvblBvc2l0aW9uPVwiYWZ0ZXJcIiAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVLZXl3b3JkcyhrZXlXb3JkcylcIj5cbiAgICA8L3RoeS1pbnB1dC1zZWFyY2g+XG48L2Rpdj5cblxuPGRpdlxuICAgICpuZ0lmPVwiZ3JvdXBNZW51Lmxlbmd0aCA+IDA7IGVsc2UgdGh5RW1wdHlcIlxuICAgIHRoZUxpc3RCb3hcbiAgICBba2V5Ym9hcmRDb250YWluZXJdPVwia2V5Ym9hcmRDb250YWluZXJcIlxuICAgICh0aGVMaXN0Ym94Q2hhbmdlKT1cInRoZUxpc3Rib3hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgY2xhc3M9XCJ0aHktZHJvcGRvd24tbWVudSB0aGUtcGx1Z2luLW1lbnUtc2Nyb2xsLWNvbnRhaW5lciBwYi0yIHB0LTBcIlxuPlxuICAgIDxkaXYgKm5nSWY9XCJpY29uTWVudT8ubGVuZ3RoID4gMFwiIHRoZUxpc3Rib3hHcm91cCBbaG9yaXpvbnRhbENvbHVtbl09XCI2XCIgY2xhc3M9XCJpY29uLW1lbnUgZC1mbGV4IHBsLTUgcHktMVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGljb25NZW51OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09IFRoZVBsdWdpbk1lbnVJdGVtVHlwZS5pY29uXCJcbiAgICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTJcIlxuICAgICAgICAgICAgICAgIHRoeUFjdGlvblxuICAgICAgICAgICAgICAgIHRoZUxpc3Rib3hPcHRpb25cbiAgICAgICAgICAgICAgICBbdGhlT3B0aW9uVmFsdWVdPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgW3RoeUFjdGlvbkljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICBbdGh5VG9vbHRpcF09XCJpdGVtPy5uYW1lXCJcbiAgICAgICAgICAgICAgICBbdGh5RGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW3RoZU9wdGlvbkRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIHRoZVByZXZlbnREZWZhdWx0XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3Rpb24oaXRlbSlcIlxuICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8dGh5LWRpdmlkZXIgKm5nSWY9XCJ0aGlzLmljb25NZW51Py5sZW5ndGhcIiBjbGFzcz1cIm15LTJcIj48L3RoeS1kaXZpZGVyPlxuICAgIDxkaXYgdGhlTGlzdGJveEdyb3VwPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwTWVudTsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pc01lbnVJdGVtICYmICEoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMCkgJiYgaXRlbS5rZXkgIT09ICd0YWJsZSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgdGhlTGlzdGJveE9wdGlvblxuICAgICAgICAgICAgICAgICAgICBbdGhlT3B0aW9uVmFsdWVdPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHktMFwiXG4gICAgICAgICAgICAgICAgICAgIHRoZVByZXZlbnREZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIFt0aHlEaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3RoZU9wdGlvbkRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlSXRlbVNlbGVjdGlvbihpdGVtKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pY29uIG1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5tZW51SWNvblwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250ZW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0tdGl0bGUgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNNZW51SXRlbSAmJiBpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwXCIgI2hhc0V4cGFuZGVkPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2Ryb3Bkb3duVHJpZ2dlcnNcbiAgICAgICAgICAgICAgICAgICAgW3RoeURyb3Bkb3duXT1cImV4cGFuZFwiXG4gICAgICAgICAgICAgICAgICAgIHRoeVRyaWdnZXI9XCJob3ZlclwiXG4gICAgICAgICAgICAgICAgICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW3RoeURpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICB0aGVMaXN0Ym94T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIFt0aGVPcHRpb25WYWx1ZV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW3RoZU9wdGlvbkRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbdGh5UG9wb3Zlck9wdGlvbnNdPVwiZXhwYW5kUG9wb3Zlck9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInB5LTBcIlxuICAgICAgICAgICAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlSXRlbVNlbGVjdGlvbihpdGVtKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pY29uIG1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5tZW51SWNvblwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250ZW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0tdGl0bGUgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktaWNvbiBjbGFzcz1cInRleHQtbXV0ZWRcIiB0aHlJY29uTmFtZT1cImFuZ2xlLXJpZ2h0XCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDx0aHktZHJvcGRvd24tbWVudSAjZXhwYW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRoZS1wbHVnaW4tbWVudS1jb250YWluZXIgZXhwYW5kLW1lbnVcIiB0aGVMaXN0Ym94R3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGlzdGJveE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInB5LTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhlT3B0aW9uRGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aHlEaXNhYmxlZF09XCJjaGlsZC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVJdGVtU2VsZWN0aW9uKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVPcHRpb25WYWx1ZV09XCJjaGlsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pY29uIG1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiY2hpbGQubWVudUljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXRpdGxlIHctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hpbGQubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdGh5LWRyb3Bkb3duLW1lbnU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmlzTWVudUl0ZW0gJiYgaXRlbS5rZXkgPT09ICd0YWJsZSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICNkcm9wZG93blRyaWdnZXJzXG4gICAgICAgICAgICAgICAgICAgIFt0aHlQb3BvdmVyXT1cInRhYmxlU2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgdGh5UGxhY2VtZW50PVwicmlnaHRUb3BcIlxuICAgICAgICAgICAgICAgICAgICB0aHlUcmlnZ2VyPVwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgICB0aHlEcm9wZG93bk1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgIHRoZUxpc3Rib3hPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgW3RoeUNvbmZpZ109XCJ0YWJsZVNlbGVjdFBvcG92ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICBbdGhlT3B0aW9uVmFsdWVdPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aGVPcHRpb25EaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3RoeURpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInB5LTBcIlxuICAgICAgICAgICAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlSXRlbVNlbGVjdGlvbihpdGVtKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pY29uIG1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5tZW51SWNvblwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250ZW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0tdGl0bGUgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktaWNvbiBjbGFzcz1cInRleHQtbXV0ZWRcIiB0aHlJY29uTmFtZT1cImFuZ2xlLXJpZ2h0XCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0YWJsZVNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBsdWdpbi1tZW51LXRhYmxlIHRoZS10YWJsZS1zZWxlY3Rvci1wYW5lbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtiZWZvcmVJbnNlcnRdPVwicmVtb3ZlS2V5d29yZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdGFibGUtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uaXNNZW51SXRlbVwiICNtZW51R3JvdXA+XG4gICAgICAgICAgICAgICAgPHRoeS1kcm9wZG93bi1tZW51LWdyb3VwIGNsYXNzPVwiZm9udC1zaXplLXNtXCIgW3RoeVRpdGxlXT1cIml0ZW0uZ3JvdXBOYW1lXCI+PC90aHktZHJvcGRvd24tbWVudS1ncm91cD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RoeUVtcHR5PlxuICAgIDxkaXYgY2xhc3M9XCJlbXB0eSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgPHRoeS1lbXB0eSBbdGh5TWVzc2FnZV09XCJ0aHlNZXNzYWdlXCI+PC90aHktZW1wdHk+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvcGx1Z2luLW1lbnUvcGx1Z2luLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvcGx1Z2luLW1lbnUvcGx1Z2luLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQTRDLFdBQVcsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBNkIsTUFBTSxPQUFPLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUNILGFBQWEsRUFLaEIsTUFBTSxzQ0FBc0MsQ0FBQztBQUk5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU05QyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO0lBK0NuRSxZQUNXLFVBQW1DLEVBQ25DLEdBQXNCLEVBQ3JCLE1BQWMsRUFDZCxhQUFvRDtRQUU1RCxLQUFL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QXNCLDZTQXFDVyxvQkFBb0Isb0RDL0RsRSxzdE9BNkpBOzJGRG5JYSxzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0ksaUJBQWlCO2tMQXdDdUMsZ0JBQWdCO3NCQUFqRixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFO2dCQUUxQyxrQkFBa0I7c0JBQXZDLFdBQVc7dUJBQUMsT0FBTztnQkFFWCxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEhvc3RCaW5kaW5nLCBWaWV3Q2hpbGRyZW4sIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWl4aW5VbnN1YnNjcmliZSwgTWl4aW5CYXNlLCBTY3JvbGxUb1NlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBQYXRoUmVmLCBUZXh0LCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgYnVpbGRQbHVnaW5NZW51LCBidWlsZFBsdWdpbk1lbnVJdGVtTWFwIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9wbHVnaW4tbWVudSc7XG5pbXBvcnQgeyBEZWZhdWx0UGx1Z2luTWVudSwgVGhlUGx1Z2luTWVudUl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3BsdWdpbi1tZW51JztcbmltcG9ydCB7XG4gICAgVGhlUGx1Z2luTWVudSxcbiAgICBUaGVQbHVnaW5NZW51R3JvdXAsXG4gICAgVGhlUGx1Z2luTWVudUl0ZW0sXG4gICAgVGhlUGx1Z2luTWVudUl0ZW1Db25maWcsXG4gICAgVGhlUGx1Z2luTWVudUl0ZW1XcmFwXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGx1Z2lucy9wbHVnaW4tbWVudSc7XG5pbXBvcnQgeyBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBRdWlja0luc2VydFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQucGx1Z2luJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFF1aWNrSW5zZXJ0RWRpdG9yIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRoZUxpc3Rib3hDaGFuZ2VFdmVudCwgVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2xpc3Rib3gvbGlzdGJveCc7XG5pbXBvcnQgeyBUaHlEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvZHJvcGRvd24nO1xuaW1wb3J0IHsgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyByZWZvY3VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmb2N1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLXBsdWdpbi1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BsdWdpbi1tZW51LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVQbHVnaW5NZW51Q29tcG9uZW50IGV4dGVuZHMgbWl4aW5VbnN1YnNjcmliZShNaXhpbkJhc2UpIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHBhdGhSZWY6IFBhdGhSZWY7XG5cbiAgICBrZXlib2FyZENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBfcGx1Z2luTWVudTogVGhlUGx1Z2luTWVudTtcblxuICAgIGdyb3VwTWVudTogVGhlUGx1Z2luTWVudSA9IFtdO1xuXG4gICAgaWNvbk1lbnU6IFRoZVBsdWdpbk1lbnUgPSBbXTtcblxuICAgIFRoZVBsdWdpbk1lbnVJdGVtVHlwZSA9IFRoZVBsdWdpbk1lbnVJdGVtVHlwZTtcblxuICAgIGtleVdvcmRzOiBzdHJpbmc7XG5cbiAgICB0aHlNZXNzYWdlID0gJ+aaguaXoOaVsOaNric7XG5cbiAgICBzY3JvbGxDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gICAgYXV0b0FjdGl2ZUZpcnN0SXRlbTogYm9vbGVhbjtcblxuICAgIHNlYXJjaEdyb3VwOiBUaGVQbHVnaW5NZW51R3JvdXAgPSB7XG4gICAgICAgIGdyb3VwTmFtZTogJ+aQnOe0oue7k+aenCdcbiAgICB9O1xuXG4gICAgZXhwYW5kUG9wb3Zlck9wdGlvbnMgPSB7XG4gICAgICAgIHBsYWNlbWVudDogJ3JpZ2h0VG9wJyxcbiAgICAgICAgd2lkdGg6ICcyNjZweCdcbiAgICB9O1xuXG4gICAgdGFibGVTZWxlY3RQb3BvdmVyQ29uZmlnID0ge1xuICAgICAgICBwYW5lbENsYXNzOiAncGx1Z2luLW1lbnUtdGFibGUtc2VsZWN0LWNvbnRhaW5lcicsXG4gICAgICAgIG1pbldpZHRoOiAwLFxuICAgICAgICAvLyAg6YG/5YWN6YeN5YaZXG4gICAgICAgIG9yaWdpbkFjdGl2ZUNsYXNzOiAndGh5LXBvcG92ZXItb3JpZ2luLWFjdGl2ZSdcbiAgICB9O1xuXG4gICAgQFZpZXdDaGlsZHJlbignZHJvcGRvd25UcmlnZ2VycycsIHsgcmVhZDogVGh5RHJvcGRvd25EaXJlY3RpdmUgfSkgZHJvcGRvd25UcmlnZ2VyczogVGh5RHJvcGRvd25EaXJlY3RpdmVbXTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjb250YWluZXJDbGFzc05hbWUgPSBgdGhlLXBsdWdpbi1tZW51LWNvbnRhaW5lcmA7XG5cbiAgICBASW5wdXQoKSBlZGl0b3I6IEVkaXRvcjtcblxuICAgIEBJbnB1dCgpIHRoZURpc3BsYXlTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHRoZVBsdWdpbk1lbnU6IFRoZVBsdWdpbk1lbnVJdGVtQ29uZmlnW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlQb3BvdmVyUmVmOiBUaHlQb3BvdmVyUmVmPFRoZVBsdWdpbk1lbnVDb21wb25lbnQ+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXV0b0FjdGl2ZUZpcnN0SXRlbSA9ICF0aGlzLnRoZURpc3BsYXlTZWFyY2g7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVNlYXJjaCgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVQbHVnaW5NZW51KCk7XG4gICAgICAgIHRoaXMuYnVpbGRNZW51cygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRoZS1wbHVnaW4tbWVudS1zY3JvbGwtY29udGFpbmVyJyk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVTZWFyY2goKSB7XG4gICAgICAgIGlmICh0aGlzLnRoZURpc3BsYXlTZWFyY2gpIHtcbiAgICAgICAgICAgIHRoaXMua2V5Ym9hcmRDb250YWluZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIOiusOS9j+S9jee9rlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRoUmVmID0gRWRpdG9yLnBhdGhSZWYodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5rZXlib2FyZENvbnRhaW5lciA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKHRoaXMuZWRpdG9yLCB0aGlzLmVkaXRvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0aWFsaXplUGx1Z2luTWVudSgpIHtcbiAgICAgICAgY29uc3QgY3VycmVudE1lbnUgPSB0aGlzLnRoZVBsdWdpbk1lbnUgfHwgRGVmYXVsdFBsdWdpbk1lbnU7XG4gICAgICAgIGNvbnN0IG1lbnVJdGVtc01hcCA9IGJ1aWxkUGx1Z2luTWVudUl0ZW1NYXAodGhpcy5lZGl0b3IpO1xuICAgICAgICB0aGlzLl9wbHVnaW5NZW51ID0gYnVpbGRQbHVnaW5NZW51KG1lbnVJdGVtc01hcCwgY3VycmVudE1lbnUpO1xuICAgIH1cblxuICAgIGJ1aWxkTWVudXMoKSB7XG4gICAgICAgIHRoaXMuaWNvbk1lbnUgPSBbXTtcbiAgICAgICAgdGhpcy5ncm91cE1lbnUgPSBbXTtcbiAgICAgICAgaWYgKHRoaXMua2V5V29yZHMpIHtcbiAgICAgICAgICAgIHRoaXMuX3BsdWdpbk1lbnUuZm9yRWFjaCgoaXRlbTogVGhlUGx1Z2luTWVudUl0ZW1XcmFwKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFRoZVBsdWdpbk1lbnUuaXNNZW51SXRlbShpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmlzTWVudUl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVkID0gaXRlbS5pc0Rpc2FibGVkICYmIGl0ZW0uaXNEaXNhYmxlZCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmtleXdvcmRzICYmIGl0ZW0ua2V5d29yZHM/LmluY2x1ZGVzKHRoaXMua2V5V29yZHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwTWVudS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQ6IFRoZVBsdWdpbk1lbnVJdGVtV3JhcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLmlzTWVudUl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLmRpc2FibGVkID0gY2hpbGQuaXNEaXNhYmxlZCAmJiBjaGlsZC5pc0Rpc2FibGVkKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQua2V5d29yZHMgJiYgY2hpbGQua2V5d29yZHM/LmluY2x1ZGVzKHRoaXMua2V5V29yZHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBNZW51LnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwTWVudS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUudW5zaGlmdCh0aGlzLnNlYXJjaEdyb3VwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3BsdWdpbk1lbnUuZm9yRWFjaCgoaXRlbTogVGhlUGx1Z2luTWVudUl0ZW1XcmFwKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFRoZVBsdWdpbk1lbnUuaXNNZW51SXRlbShpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmlzTWVudUl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVkID0gaXRlbS5pc0Rpc2FibGVkICYmIGl0ZW0uaXNEaXNhYmxlZCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkOiBUaGVQbHVnaW5NZW51SXRlbVdyYXApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLmlzTWVudUl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuZGlzYWJsZWQgPSBjaGlsZC5pc0Rpc2FibGVkICYmIGNoaWxkLmlzRGlzYWJsZWQodGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXRlbT8udHlwZSA9PT0gVGhlUGx1Z2luTWVudUl0ZW1UeXBlLmljb24gPyB0aGlzLmljb25NZW51LnB1c2goaXRlbSkgOiB0aGlzLmdyb3VwTWVudS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBoYW5kbGVJdGVtU2VsZWN0aW9uKG1lbnVJdGVtOiBUaGVQbHVnaW5NZW51SXRlbSkge1xuICAgICAgICBpZiAobWVudUl0ZW0uaXNEaXNhYmxlZCAmJiBtZW51SXRlbS5pc0Rpc2FibGVkKHRoaXMuZWRpdG9yKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5lZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICByZWZvY3VzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMudGhlRGlzcGxheVNlYXJjaCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVLZXl3b3JkcygpO1xuICAgICAgICB9XG4gICAgICAgIG1lbnVJdGVtLmV4ZWN1dGUodGhpcy5lZGl0b3IpO1xuICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgUXVpY2tJbnNlcnRFZGl0b3IudXBkYXRlUGx1Z2luTWVudVJlZih0aGlzLmVkaXRvciwgbnVsbCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlS2V5d29yZHMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBOb2RlLmdldCh0aGlzLmVkaXRvciwgdGhpcy5lZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKSBhcyBUZXh0O1xuICAgICAgICBpZiAobm9kZSAmJiBOb2RlLnN0cmluZyhub2RlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBFZGl0b3IuZGVsZXRlQmFja3dhcmQodGhpcy5lZGl0b3IsIHsgdW5pdDogJ2Jsb2NrJyB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB1cGRhdGVLZXl3b3JkcyhrZXl3b3Jkczogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXV0b0FjdGl2ZUZpcnN0SXRlbSA9IHRydWU7XG4gICAgICAgIHRoaXMua2V5V29yZHMgPSBrZXl3b3Jkcy50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICAgICAgdGhpcy5idWlsZE1lbnVzKCk7XG4gICAgICAgIGlmICh0aGlzLnNjcm9sbENvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoZUxpc3Rib3hDaGFuZ2UoZXZlbnQ6IFRoZUxpc3Rib3hDaGFuZ2VFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlSXRlbVNlbGVjdGlvbihldmVudC5vcHRpb24udGhlT3B0aW9uVmFsdWUgYXMgVGhlUGx1Z2luTWVudUl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAnY2hpbGQnKSB7XG4gICAgICAgICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuZmluZERyb3Bkb3duVHJpZ2dlcihldmVudC5vcHRpb24ucGFyZW50T3B0aW9uKTtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgZHJvcGRvd24uc2hvdygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdwYXJlbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuZmluZERyb3Bkb3duVHJpZ2dlcihldmVudC5vcHRpb24pO1xuICAgICAgICAgICAgZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAndHVybicgJiYgIWV2ZW50Lm9wdGlvbi5wYXJlbnRPcHRpb24pIHtcbiAgICAgICAgICAgIFNjcm9sbFRvU2VydmljZS5zY3JvbGxUb0VsZW1lbnQoZXZlbnQub3B0aW9uLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5zY3JvbGxDb250YWluZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmluZERyb3Bkb3duVHJpZ2dlcihvcHRpb246IFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duVHJpZ2dlcnMuZmluZCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVbJ2VsZW1lbnRSZWYnXS5uYXRpdmVFbGVtZW50ID09PSBvcHRpb24uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGRyb3Bkb3duO1xuICAgIH1cblxuICAgIHRyYWNrQnlGbihpbmRleDogVGhlUGx1Z2luTWVudUl0ZW0sIGl0ZW06IGFueSkge1xuICAgICAgICByZXR1cm4gaXRlbT8ua2V5ID8/IGluZGV4O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJ0aGVEaXNwbGF5U2VhcmNoXCIgY2xhc3M9XCJtZW51LXNlYXJjaCBweC01IHB0LTUgcGItMlwiPlxuICAgIDx0aHktaW5wdXQtc2VhcmNoIFsobmdNb2RlbCldPVwia2V5V29yZHNcIiBwbGFjZWhvbGRlcj1cIuaQnOe0olwiIHRoeUljb25Qb3NpdGlvbj1cImFmdGVyXCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlS2V5d29yZHMoa2V5V29yZHMpXCI+XG4gICAgPC90aHktaW5wdXQtc2VhcmNoPlxuPC9kaXY+XG5cbjxkaXZcbiAgICAqbmdJZj1cImdyb3VwTWVudS5sZW5ndGggPiAwOyBlbHNlIHRoeUVtcHR5XCJcbiAgICB0aGVMaXN0Qm94XG4gICAgW2tleWJvYXJkQ29udGFpbmVyXT1cImtleWJvYXJkQ29udGFpbmVyXCJcbiAgICBbYXV0b0FjdGl2ZUZpcnN0SXRlbV09XCJhdXRvQWN0aXZlRmlyc3RJdGVtXCJcbiAgICAodGhlTGlzdGJveENoYW5nZSk9XCJ0aGVMaXN0Ym94Q2hhbmdlKCRldmVudClcIlxuICAgIGNsYXNzPVwidGh5LWRyb3Bkb3duLW1lbnUgdGhlLXBsdWdpbi1tZW51LXNjcm9sbC1jb250YWluZXIgcGItMiBwdC0wXCJcbj5cbiAgICA8ZGl2ICpuZ0lmPVwiaWNvbk1lbnU/Lmxlbmd0aCA+IDBcIiB0aGVMaXN0Ym94R3JvdXAgW2hvcml6b250YWxDb2x1bW5dPVwiNlwiIGNsYXNzPVwiaWNvbi1tZW51IGQtZmxleCBwbC01IHB5LTFcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpY29uTWVudTsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSBUaGVQbHVnaW5NZW51SXRlbVR5cGUuaWNvblwiXG4gICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yXCJcbiAgICAgICAgICAgICAgICB0aHlBY3Rpb25cbiAgICAgICAgICAgICAgICB0aGVMaXN0Ym94T3B0aW9uXG4gICAgICAgICAgICAgICAgW3RoZU9wdGlvblZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFt0aHlBY3Rpb25JY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgW3RoeVRvb2x0aXBdPVwiaXRlbT8ubmFtZVwiXG4gICAgICAgICAgICAgICAgW3RoeURpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFt0aGVPcHRpb25EaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVJdGVtU2VsZWN0aW9uKGl0ZW0pXCJcbiAgICAgICAgICAgID48L2E+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPHRoeS1kaXZpZGVyICpuZ0lmPVwidGhpcy5pY29uTWVudT8ubGVuZ3RoXCIgY2xhc3M9XCJteS0yXCI+PC90aHktZGl2aWRlcj5cbiAgICA8ZGl2IHRoZUxpc3Rib3hHcm91cD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cE1lbnU7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNNZW51SXRlbSAmJiAhKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA+IDApICYmIGl0ZW0ua2V5ICE9PSAndGFibGUnXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICB0aHlEcm9wZG93bk1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgIHRoZUxpc3Rib3hPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgW3RoZU9wdGlvblZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInB5LTBcIlxuICAgICAgICAgICAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICBbdGh5RGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFt0aGVPcHRpb25EaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3Rpb24oaXRlbSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvbiBtci0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIml0ZW0ubWVudUljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXRpdGxlIHctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmlzTWVudUl0ZW0gJiYgaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMFwiICNoYXNFeHBhbmRlZD5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICNkcm9wZG93blRyaWdnZXJzXG4gICAgICAgICAgICAgICAgICAgIFt0aHlEcm9wZG93bl09XCJleHBhbmRcIlxuICAgICAgICAgICAgICAgICAgICB0aHlUcmlnZ2VyPVwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgICB0aHlEcm9wZG93bk1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgIFt0aHlEaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgdGhlTGlzdGJveE9wdGlvblxuICAgICAgICAgICAgICAgICAgICBbdGhlT3B0aW9uVmFsdWVdPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aGVPcHRpb25EaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3RoeVBvcG92ZXJPcHRpb25zXT1cImV4cGFuZFBvcG92ZXJPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJweS0wXCJcbiAgICAgICAgICAgICAgICAgICAgdGhlUHJldmVudERlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3Rpb24oaXRlbSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvbiBtci0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIml0ZW0ubWVudUljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXRpdGxlIHctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gY2xhc3M9XCJ0ZXh0LW11dGVkXCIgdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8dGh5LWRyb3Bkb3duLW1lbnUgI2V4cGFuZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aGUtcGx1Z2luLW1lbnUtY29udGFpbmVyIGV4cGFuZC1tZW51XCIgdGhlTGlzdGJveEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHlEcm9wZG93bk1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZUxpc3Rib3hPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJweS0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlUHJldmVudERlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZU9wdGlvbkRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGh5RGlzYWJsZWRdPVwiY2hpbGQuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlSXRlbVNlbGVjdGlvbihjaGlsZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhlT3B0aW9uVmFsdWVdPVwiY2hpbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvbiBtci0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImNoaWxkLm1lbnVJY29uXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWNvbnRlbnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbS10aXRsZSB3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNoaWxkLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3RoeS1kcm9wZG93bi1tZW51PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pc01lbnVJdGVtICYmIGl0ZW0ua2V5ID09PSAndGFibGUnXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAjZHJvcGRvd25UcmlnZ2Vyc1xuICAgICAgICAgICAgICAgICAgICBbdGh5UG9wb3Zlcl09XCJ0YWJsZVNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIHRoeVBsYWNlbWVudD1cInJpZ2h0VG9wXCJcbiAgICAgICAgICAgICAgICAgICAgdGh5VHJpZ2dlcj1cImhvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgdGh5RHJvcGRvd25NZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICB0aGVMaXN0Ym94T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIFt0aHlDb25maWddPVwidGFibGVTZWxlY3RQb3BvdmVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgW3RoZU9wdGlvblZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbdGhlT3B0aW9uRGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFt0aHlEaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJweS0wXCJcbiAgICAgICAgICAgICAgICAgICAgdGhlUHJldmVudERlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3Rpb24oaXRlbSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvbiBtci0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIml0ZW0ubWVudUljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXRpdGxlIHctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gY2xhc3M9XCJ0ZXh0LW11dGVkXCIgdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGFibGVTZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwbHVnaW4tbWVudS10YWJsZSB0aGUtdGFibGUtc2VsZWN0b3ItcGFuZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYmVmb3JlSW5zZXJ0XT1cInJlbW92ZUtleXdvcmRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3RhYmxlLXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzTWVudUl0ZW1cIiAjbWVudUdyb3VwPlxuICAgICAgICAgICAgICAgIDx0aHktZHJvcGRvd24tbWVudS1ncm91cCBjbGFzcz1cImZvbnQtc2l6ZS1zbVwiIFt0aHlUaXRsZV09XCJpdGVtLmdyb3VwTmFtZVwiPjwvdGh5LWRyb3Bkb3duLW1lbnUtZ3JvdXA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0aHlFbXB0eT5cbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHkgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgIDx0aHktZW1wdHkgW3RoeU1lc3NhZ2VdPVwidGh5TWVzc2FnZVwiPjwvdGh5LWVtcHR5PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
package/esm2020/custom-types.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2N1c3RvbS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGVzY2VuZGFudCwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFsaWdubWVudCwgRWxlbWVudEtpbmRzLCBMYXlvdXRUeXBlcywgVmVydGljYWxBbGlnbm1lbnQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCbG9ja0VsZW1lbnRLaW5kcywgSW5saW5lRWxlbWVudEtpbmRzLCBUaGVFZGl0b3IgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlVGFibGVDb2x1bW4sIFRoZVRhYmxlT3B0aW9ucyB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS90YWJsZS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlRWxlbWVudDxUID0gQmxvY2tFbGVtZW50S2luZHMgfCBJbmxpbmVFbGVtZW50S2luZHM+IHtcbiAgICB0eXBlOiBUO1xuICAgIGNoaWxkcmVuOiBEZXNjZW5kYW50W107XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIF9pZD86IHN0cmluZztcbiAgICB2b2lkcz86IGJvb2xlYW47XG4gICAgYWxpZ24/OiBBbGlnbm1lbnQ7XG4gICAgaW5kZW50PzogbnVtYmVyO1xuICAgIHRleHRJbmRlbnQ/OiBudW1iZXI7XG4gICAgdmVydGljYWxBbGlnbj86IFZlcnRpY2FsQWxpZ25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFncmFwaEVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJsb2NrUXVvdGVFbGVtZW50IGV4dGVuZHMgVGhlRWxlbWVudCB7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLmJsb2NrcXVvdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVsbGV0ZWRMaXN0RWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3Q7XG4gICAgc3RhcnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTnVtYmVyZWRMaXN0RWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3Q7XG4gICAgc3RhcnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEl0ZW1FbGVtZW50IGV4dGVuZHMgVGhlRWxlbWVudCB7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLmxpc3RJdGVtO1xuICAgIHN0YXJ0PzogbnVtYmVyO1xuICAgIGNoaWxkcmVuOiBFbGVtZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua0VsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMubGluaztcbiAgICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2RvSXRlbUVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuY2hlY2tJdGVtO1xuICAgIGNoZWNrZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGluZ09uZUVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuaGVhZGluZ18xO1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nVHdvRWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5oZWFkaW5nXzI7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhlYWRpbmdUaHJlZUVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuaGVhZGluZ18zO1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nRm91ckVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuaGVhZGluZ180O1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nRml2ZUVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuaGVhZGluZ181O1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nU2l4RWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5oZWFkaW5nXzY7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VFbGVtZW50IGV4dGVuZHMgVGhlRWxlbWVudCB7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLmltYWdlO1xuICAgIGNoaWxkcmVuOiBFbXB0eVRleHRbXTtcbiAgICBmaWxlPzogRmlsZTtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgdGh1bWJVcmw/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2N1c3RvbS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGVzY2VuZGFudCwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFsaWdubWVudCwgRWxlbWVudEtpbmRzLCBMYXlvdXRUeXBlcywgVmVydGljYWxBbGlnbm1lbnQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCbG9ja0VsZW1lbnRLaW5kcywgSW5saW5lRWxlbWVudEtpbmRzLCBUaGVFZGl0b3IgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlVGFibGVDb2x1bW4sIFRoZVRhYmxlT3B0aW9ucyB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS90YWJsZS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlRWxlbWVudDxUID0gQmxvY2tFbGVtZW50S2luZHMgfCBJbmxpbmVFbGVtZW50S2luZHM+IHtcbiAgICB0eXBlOiBUO1xuICAgIGNoaWxkcmVuOiBEZXNjZW5kYW50W107XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIF9pZD86IHN0cmluZztcbiAgICB2b2lkcz86IGJvb2xlYW47XG4gICAgYWxpZ24/OiBBbGlnbm1lbnQ7XG4gICAgaW5kZW50PzogbnVtYmVyO1xuICAgIHRleHRJbmRlbnQ/OiBudW1iZXI7XG4gICAgdmVydGljYWxBbGlnbj86IFZlcnRpY2FsQWxpZ25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFncmFwaEVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJsb2NrUXVvdGVFbGVtZW50IGV4dGVuZHMgVGhlRWxlbWVudCB7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLmJsb2NrcXVvdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVsbGV0ZWRMaXN0RWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3Q7XG4gICAgc3RhcnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTnVtYmVyZWRMaXN0RWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3Q7XG4gICAgc3RhcnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEl0ZW1FbGVtZW50IGV4dGVuZHMgVGhlRWxlbWVudCB7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLmxpc3RJdGVtO1xuICAgIHN0YXJ0PzogbnVtYmVyO1xuICAgIGNoaWxkcmVuOiBFbGVtZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua0VsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMubGluaztcbiAgICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2RvSXRlbUVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuY2hlY2tJdGVtO1xuICAgIGNoZWNrZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGluZ09uZUVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuaGVhZGluZ18xO1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nVHdvRWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5oZWFkaW5nXzI7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhlYWRpbmdUaHJlZUVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuaGVhZGluZ18zO1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nRm91ckVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuaGVhZGluZ180O1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nRml2ZUVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICB0eXBlOiBFbGVtZW50S2luZHMuaGVhZGluZ181O1xufVxuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nU2l4RWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5oZWFkaW5nXzY7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VFbGVtZW50IGV4dGVuZHMgVGhlRWxlbWVudCB7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLmltYWdlO1xuICAgIGNoaWxkcmVuOiBFbXB0eVRleHRbXTtcbiAgICBmaWxlPzogRmlsZTtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgdGh1bWJVcmw/OiBzdHJpbmc7XG4gICAgb3JpZ2luVXJsPzogc3RyaW5nO1xuICAgIGFsaWduPzogQWxpZ25tZW50O1xuICAgIGxheW91dD86IExheW91dFR5cGVzO1xuICAgIHJlU2l6ZWQ/OiBib29sZWFuO1xuICAgIHNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVFbGVtZW50IGV4dGVuZHMgVGhlRWxlbWVudCB7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLnRhYmxlO1xuICAgIGNoaWxkcmVuOiBUYWJsZVJvd0VsZW1lbnRbXTtcbiAgICBjb2x1bW5zPzogVGhlVGFibGVDb2x1bW5bXTtcbiAgICBvcHRpb25zPzogVGhlVGFibGVPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUm93RWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy50YWJsZVJvdztcbiAgICBjaGlsZHJlbjogVGFibGVDZWxsRWxlbWVudFtdO1xuICAgIGhlYWRlcj86IGJvb2xlYW47XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ2VsbEVsZW1lbnQgZXh0ZW5kcyBUaGVFbGVtZW50IHtcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLnRhYmxlQ2VsbDtcbiAgICBjb2xzcGFuPzogbnVtYmVyO1xuICAgIHJvd3NwYW4/OiBudW1iZXI7XG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHJFbGVtZW50IGV4dGVuZHMgVGhlRWxlbWVudCB7XG4gICAgdHlwZTogRWxlbWVudEtpbmRzLmhyO1xuICAgIGNoaWxkcmVuOiBFbXB0eVRleHRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2RlRWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5jb2RlO1xuICAgIGNoaWxkcmVuOiBFbXB0eVRleHRbXTtcbiAgICBjb250ZW50Pzogc3RyaW5nO1xuICAgIGxhbmd1YWdlPzogc3RyaW5nO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBhdXRvV3JhcD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdGFibGVWb2lkRWxlbWVudCB7XG4gICAgdHlwZTogJ2VkaXRhYmxlLXZvaWQnO1xuICAgIGNoaWxkcmVuOiBFbXB0eVRleHRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmxpbmVDb2RlRWxlbWVudCBleHRlbmRzIFRoZUVsZW1lbnQge1xuICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlO1xufVxuXG5leHBvcnQgdHlwZSBDdXN0b21FbGVtZW50ID1cbiAgICB8IEJsb2NrUXVvdGVFbGVtZW50XG4gICAgfCBOdW1iZXJlZExpc3RFbGVtZW50XG4gICAgfCBCdWxsZXRlZExpc3RFbGVtZW50XG4gICAgfCBUb2RvSXRlbUVsZW1lbnRcbiAgICB8IEhlYWRpbmdPbmVFbGVtZW50XG4gICAgfCBIZWFkaW5nVHdvRWxlbWVudFxuICAgIHwgSGVhZGluZ1RocmVlRWxlbWVudFxuICAgIHwgSGVhZGluZ0ZvdXJFbGVtZW50XG4gICAgfCBIZWFkaW5nRml2ZUVsZW1lbnRcbiAgICB8IEhlYWRpbmdTaXhFbGVtZW50XG4gICAgfCBJbWFnZUVsZW1lbnRcbiAgICB8IExpbmtFbGVtZW50XG4gICAgfCBMaXN0SXRlbUVsZW1lbnRcbiAgICB8IFBhcmFncmFwaEVsZW1lbnRcbiAgICB8IFRhYmxlRWxlbWVudFxuICAgIHwgVGFibGVSb3dFbGVtZW50XG4gICAgfCBUYWJsZUNlbGxFbGVtZW50XG4gICAgfCBIckVsZW1lbnRcbiAgICB8IElubGluZUNvZGVFbGVtZW50XG4gICAgfCBDb2RlRWxlbWVudDtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tVGV4dCA9IHtcbiAgICBib2xkPzogYm9vbGVhbjtcbiAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgIGNvZGU/OiBib29sZWFuO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICB1bmRlcmxpbmVkPzogYm9vbGVhbjtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBbYGJhY2tncm91bmQtY29sb3JgXT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEVtcHR5VGV4dCA9IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21FZGl0b3IgPSBUaGVFZGl0b3I7XG5cbnR5cGUgR2V0PFQsIFAgZXh0ZW5kcyBrZXlvZiBUPiA9IFRbUF07XG5leHBvcnQgdHlwZSBDdXN0b21FbGVtZW50S2luZHMgPSBHZXQ8RWxlbWVudCwgJ3R5cGUnPjtcbiJdfQ==
|