@covalent/markdown-navigator 6.3.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/markdown-navigator-window/markdown-navigator-window.component.mjs +90 -0
- package/esm2022/markdown-navigator-window-directive/markdown-navigator-window.directive.mjs +34 -0
- package/esm2022/markdown-navigator-window-service/markdown-navigator-window.service.mjs +137 -0
- package/esm2022/markdown-navigator.component.mjs +436 -0
- package/{esm2020 → esm2022}/markdown-navigator.module.mjs +29 -29
- package/{fesm2020 → fesm2022}/covalent-markdown-navigator.mjs +121 -70
- package/{fesm2020 → fesm2022}/covalent-markdown-navigator.mjs.map +1 -1
- package/markdown-navigator-window/markdown-navigator-window.component.d.ts +1 -1
- package/markdown-navigator-window-directive/markdown-navigator-window.directive.d.ts +1 -1
- package/markdown-navigator.component.d.ts +1 -1
- package/package.json +13 -21
- package/esm2020/markdown-navigator-window/markdown-navigator-window.component.mjs +0 -87
- package/esm2020/markdown-navigator-window-directive/markdown-navigator-window.directive.mjs +0 -32
- package/esm2020/markdown-navigator-window-service/markdown-navigator-window.service.mjs +0 -130
- package/esm2020/markdown-navigator.component.mjs +0 -397
- package/fesm2015/covalent-markdown-navigator.mjs +0 -720
- package/fesm2015/covalent-markdown-navigator.mjs.map +0 -1
- /package/{esm2020 → esm2022}/covalent-markdown-navigator.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Component, Output, EventEmitter, Input, ChangeDetectionStrategy, Type, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@covalent/core/dialogs";
|
|
4
|
+
import * as i2 from "../markdown-navigator.component";
|
|
5
|
+
export const DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS = {
|
|
6
|
+
title: 'Help',
|
|
7
|
+
close: 'Close',
|
|
8
|
+
dock: 'Dock',
|
|
9
|
+
unDock: 'Undock',
|
|
10
|
+
};
|
|
11
|
+
export class TdMarkdownNavigatorWindowComponent {
|
|
12
|
+
items;
|
|
13
|
+
labels;
|
|
14
|
+
toolbarColor = 'primary';
|
|
15
|
+
startAt;
|
|
16
|
+
compareWith;
|
|
17
|
+
docked = false;
|
|
18
|
+
copyCodeToClipboard = false;
|
|
19
|
+
copyCodeTooltips = {};
|
|
20
|
+
footer;
|
|
21
|
+
closed = new EventEmitter();
|
|
22
|
+
dockToggled = new EventEmitter();
|
|
23
|
+
buttonClicked = new EventEmitter();
|
|
24
|
+
itemSelected = new EventEmitter();
|
|
25
|
+
get markdownNavigatorLabels() {
|
|
26
|
+
if (!this.labels) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const { goHome, goBack, emptyState } = this.labels;
|
|
30
|
+
return {
|
|
31
|
+
goHome,
|
|
32
|
+
goBack,
|
|
33
|
+
emptyState,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
get titleLabel() {
|
|
37
|
+
return ((this.labels && this.labels.title) ||
|
|
38
|
+
DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.title);
|
|
39
|
+
}
|
|
40
|
+
get closeLabel() {
|
|
41
|
+
return ((this.labels && this.labels.close) ||
|
|
42
|
+
DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.close);
|
|
43
|
+
}
|
|
44
|
+
get toggleDockedStateLabel() {
|
|
45
|
+
if (this.docked) {
|
|
46
|
+
return ((this.labels && this.labels.unDock) ||
|
|
47
|
+
DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.unDock);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
return ((this.labels && this.labels.dock) ||
|
|
51
|
+
DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.dock);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
toggleDockedState() {
|
|
55
|
+
this.dockToggled.emit(this.docked);
|
|
56
|
+
}
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TdMarkdownNavigatorWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: TdMarkdownNavigatorWindowComponent, selector: "td-markdown-navigator-window", inputs: { items: "items", labels: "labels", toolbarColor: "toolbarColor", startAt: "startAt", compareWith: "compareWith", docked: "docked", copyCodeToClipboard: "copyCodeToClipboard", copyCodeTooltips: "copyCodeTooltips", footer: "footer" }, outputs: { closed: "closed", dockToggled: "dockToggled", buttonClicked: "buttonClicked", itemSelected: "itemSelected" }, ngImport: i0, template: "<td-window-dialog\n [toolbarColor]=\"toolbarColor\"\n [docked]=\"docked\"\n [title]=\"titleLabel\"\n [toggleDockedStateLabel]=\"toggleDockedStateLabel\"\n [closeLabel]=\"closeLabel\"\n (dockToggled)=\"toggleDockedState()\"\n (closed)=\"closed.emit()\"\n>\n <td-markdown-navigator\n [items]=\"items\"\n [labels]=\"markdownNavigatorLabels\"\n [style.display]=\"docked ? 'none' : 'inherit'\"\n [startAt]=\"startAt\"\n [compareWith]=\"compareWith\"\n [footer]=\"footer\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\"\n ></td-markdown-navigator>\n</td-window-dialog>\n", styles: [":host{height:100%;display:flex;flex-direction:column}td-markdown-navigator{height:calc(100% - 56px)}\n"], dependencies: [{ kind: "component", type: i1.TdWindowDialogComponent, selector: "td-window-dialog", inputs: ["toolbarColor", "docked", "title", "toggleDockedStateLabel", "closeLabel"], outputs: ["dockToggled", "closed"] }, { kind: "component", type: i2.TdMarkdownNavigatorComponent, selector: "td-markdown-navigator", inputs: ["items", "labels", "startAt", "copyCodeToClipboard", "copyCodeTooltips", "footer", "compareWith"], outputs: ["buttonClicked", "itemSelected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TdMarkdownNavigatorWindowComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ selector: 'td-markdown-navigator-window', changeDetection: ChangeDetectionStrategy.OnPush, template: "<td-window-dialog\n [toolbarColor]=\"toolbarColor\"\n [docked]=\"docked\"\n [title]=\"titleLabel\"\n [toggleDockedStateLabel]=\"toggleDockedStateLabel\"\n [closeLabel]=\"closeLabel\"\n (dockToggled)=\"toggleDockedState()\"\n (closed)=\"closed.emit()\"\n>\n <td-markdown-navigator\n [items]=\"items\"\n [labels]=\"markdownNavigatorLabels\"\n [style.display]=\"docked ? 'none' : 'inherit'\"\n [startAt]=\"startAt\"\n [compareWith]=\"compareWith\"\n [footer]=\"footer\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\"\n ></td-markdown-navigator>\n</td-window-dialog>\n", styles: [":host{height:100%;display:flex;flex-direction:column}td-markdown-navigator{height:calc(100% - 56px)}\n"] }]
|
|
63
|
+
}], propDecorators: { items: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], labels: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], toolbarColor: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], startAt: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], compareWith: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], docked: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], copyCodeToClipboard: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], copyCodeTooltips: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], footer: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], closed: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}], dockToggled: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}], buttonClicked: [{
|
|
86
|
+
type: Output
|
|
87
|
+
}], itemSelected: [{
|
|
88
|
+
type: Output
|
|
89
|
+
}] } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duLW5hdmlnYXRvci9zcmMvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tbmF2aWdhdG9yL3NyYy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93L21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDOzs7O0FBaUJ2QixNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FDbkQ7SUFDRSxLQUFLLEVBQUUsTUFBTTtJQUNiLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsUUFBUTtDQUNqQixDQUFDO0FBUUosTUFBTSxPQUFPLGtDQUFrQztJQUNwQyxLQUFLLENBQTRCO0lBQ2pDLE1BQU0sQ0FBa0M7SUFDeEMsWUFBWSxHQUFpQixTQUFTLENBQUM7SUFDdkMsT0FBTyxDQUFxRDtJQUM1RCxXQUFXLENBQWlDO0lBQzVDLE1BQU0sR0FBSSxLQUFLLENBQUM7SUFDaEIsbUJBQW1CLEdBQUksS0FBSyxDQUFDO0lBQzdCLGdCQUFnQixHQUF1QixFQUFFLENBQUM7SUFDMUMsTUFBTSxDQUFhO0lBRWxCLE1BQU0sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNoRCxXQUFXLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDeEQsYUFBYSxHQUNyQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ1gsWUFBWSxHQUNwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXJCLElBQUksdUJBQXVCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDZCxPQUFPO1lBQ0wsTUFBTTtZQUNOLE1BQU07WUFDTixVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2xDLHdDQUF3QyxDQUFDLEtBQUssQ0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2xDLHdDQUF3QyxDQUFDLEtBQUssQ0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNuQyx3Q0FBd0MsQ0FBQyxNQUFNLENBQ2hELENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDakMsd0NBQXdDLENBQUMsSUFBSSxDQUM5QyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7dUdBN0RVLGtDQUFrQzsyRkFBbEMsa0NBQWtDLCthQ3RDL0Msd3VCQXNCQTs7MkZEZ0JhLGtDQUFrQztrQkFOOUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtcbiAgSU1hcmtkb3duTmF2aWdhdG9ySXRlbSxcbiAgSU1hcmtkb3duTmF2aWdhdG9yTGFiZWxzLFxuICBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJ0Bjb3ZhbGVudC9mbGF2b3JlZC1tYXJrZG93bic7XG5pbXBvcnQgeyBJQ29weUNvZGVUb29sdGlwcyB9IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVsc1xuICBleHRlbmRzIElNYXJrZG93bk5hdmlnYXRvckxhYmVscyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjbG9zZT86IHN0cmluZztcbiAgZG9jaz86IHN0cmluZztcbiAgdW5Eb2NrPzogc3RyaW5nO1xufVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX1dJTkRPV19MQUJFTFM6IElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVscyA9XG4gIHtcbiAgICB0aXRsZTogJ0hlbHAnLFxuICAgIGNsb3NlOiAnQ2xvc2UnLFxuICAgIGRvY2s6ICdEb2NrJyxcbiAgICB1bkRvY2s6ICdVbmRvY2snLFxuICB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50IHtcbiAgQElucHV0KCkgaXRlbXM/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW107XG4gIEBJbnB1dCgpIGxhYmVscz86IElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVscztcbiAgQElucHV0KCkgdG9vbGJhckNvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHN0YXJ0QXQ/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBASW5wdXQoKSBjb21wYXJlV2l0aD86IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoO1xuICBASW5wdXQoKSBkb2NrZWQ/ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9DbGlwYm9hcmQ/ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwcyA9IHt9O1xuICBASW5wdXQoKSBmb290ZXI/OiBUeXBlPGFueT47XG5cbiAgQE91dHB1dCgpIGNsb3NlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZG9ja1RvZ2dsZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGl0ZW1TZWxlY3RlZDogRXZlbnRFbWl0dGVyPElNYXJrZG93bk5hdmlnYXRvckl0ZW0+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ2V0IG1hcmtkb3duTmF2aWdhdG9yTGFiZWxzKCk6IElNYXJrZG93bk5hdmlnYXRvckxhYmVscyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmxhYmVscykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCB7IGdvSG9tZSwgZ29CYWNrLCBlbXB0eVN0YXRlIH06IElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVscyA9XG4gICAgICB0aGlzLmxhYmVscztcbiAgICByZXR1cm4ge1xuICAgICAgZ29Ib21lLFxuICAgICAgZ29CYWNrLFxuICAgICAgZW1wdHlTdGF0ZSxcbiAgICB9O1xuICB9XG4gIGdldCB0aXRsZUxhYmVsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVscy50aXRsZSkgfHxcbiAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX1dJTkRPV19MQUJFTFMudGl0bGVcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsb3NlTGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubGFiZWxzICYmIHRoaXMubGFiZWxzLmNsb3NlKSB8fFxuICAgICAgREVGQVVMVF9NQVJLRE9XTl9OQVZJR0FUT1JfV0lORE9XX0xBQkVMUy5jbG9zZVxuICAgICk7XG4gIH1cblxuICBnZXQgdG9nZ2xlRG9ja2VkU3RhdGVMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmRvY2tlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKHRoaXMubGFiZWxzICYmIHRoaXMubGFiZWxzLnVuRG9jaykgfHxcbiAgICAgICAgREVGQVVMVF9NQVJLRE9XTl9OQVZJR0FUT1JfV0lORE9XX0xBQkVMUy51bkRvY2tcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVscy5kb2NrKSB8fFxuICAgICAgICBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLmRvY2tcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRG9ja2VkU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5kb2NrVG9nZ2xlZC5lbWl0KHRoaXMuZG9ja2VkKTtcbiAgfVxufVxuIiwiPHRkLXdpbmRvdy1kaWFsb2dcbiAgW3Rvb2xiYXJDb2xvcl09XCJ0b29sYmFyQ29sb3JcIlxuICBbZG9ja2VkXT1cImRvY2tlZFwiXG4gIFt0aXRsZV09XCJ0aXRsZUxhYmVsXCJcbiAgW3RvZ2dsZURvY2tlZFN0YXRlTGFiZWxdPVwidG9nZ2xlRG9ja2VkU3RhdGVMYWJlbFwiXG4gIFtjbG9zZUxhYmVsXT1cImNsb3NlTGFiZWxcIlxuICAoZG9ja1RvZ2dsZWQpPVwidG9nZ2xlRG9ja2VkU3RhdGUoKVwiXG4gIChjbG9zZWQpPVwiY2xvc2VkLmVtaXQoKVwiXG4+XG4gIDx0ZC1tYXJrZG93bi1uYXZpZ2F0b3JcbiAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgIFtsYWJlbHNdPVwibWFya2Rvd25OYXZpZ2F0b3JMYWJlbHNcIlxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImRvY2tlZCA/ICdub25lJyA6ICdpbmhlcml0J1wiXG4gICAgW3N0YXJ0QXRdPVwic3RhcnRBdFwiXG4gICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVXaXRoXCJcbiAgICBbZm9vdGVyXT1cImZvb3RlclwiXG4gICAgW2NvcHlDb2RlVG9DbGlwYm9hcmRdPVwiY29weUNvZGVUb0NsaXBib2FyZFwiXG4gICAgW2NvcHlDb2RlVG9vbHRpcHNdPVwiY29weUNvZGVUb29sdGlwc1wiXG4gICAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuICAgIChpdGVtU2VsZWN0ZWQpPVwiaXRlbVNlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXG4gID48L3RkLW1hcmtkb3duLW5hdmlnYXRvcj5cbjwvdGQtd2luZG93LWRpYWxvZz5cbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import { TdMarkdownNavigatorWindowService, } from '../markdown-navigator-window-service/markdown-navigator-window.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../markdown-navigator-window-service/markdown-navigator-window.service";
|
|
5
|
+
export class TdMarkdownNavigatorWindowDirective {
|
|
6
|
+
_markdownNavigatorWindowService;
|
|
7
|
+
config;
|
|
8
|
+
disabled = false;
|
|
9
|
+
constructor(_markdownNavigatorWindowService) {
|
|
10
|
+
this._markdownNavigatorWindowService = _markdownNavigatorWindowService;
|
|
11
|
+
}
|
|
12
|
+
click() {
|
|
13
|
+
if (!this.disabled && this.config) {
|
|
14
|
+
this._markdownNavigatorWindowService.open(this.config);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TdMarkdownNavigatorWindowDirective, deps: [{ token: i1.TdMarkdownNavigatorWindowService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: TdMarkdownNavigatorWindowDirective, selector: "[tdMarkdownNavigatorWindow]", inputs: { config: ["tdMarkdownNavigatorWindow", "config"], disabled: "disabled" }, host: { listeners: { "click": "click()" } }, ngImport: i0 });
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TdMarkdownNavigatorWindowDirective, decorators: [{
|
|
21
|
+
type: Directive,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: '[tdMarkdownNavigatorWindow]',
|
|
24
|
+
}]
|
|
25
|
+
}], ctorParameters: function () { return [{ type: i1.TdMarkdownNavigatorWindowService }]; }, propDecorators: { config: [{
|
|
26
|
+
type: Input,
|
|
27
|
+
args: ['tdMarkdownNavigatorWindow']
|
|
28
|
+
}], disabled: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], click: [{
|
|
31
|
+
type: HostListener,
|
|
32
|
+
args: ['click']
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duLW5hdmlnYXRvci9zcmMvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy1kaXJlY3RpdmUvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFDTCxnQ0FBZ0MsR0FFakMsTUFBTSx3RUFBd0UsQ0FBQzs7O0FBS2hGLE1BQU0sT0FBTyxrQ0FBa0M7SUFJbkM7SUFIMEIsTUFBTSxDQUFrQztJQUNuRSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLFlBQ1UsK0JBQWlFO1FBQWpFLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBa0M7SUFDeEUsQ0FBQztJQUVtQixLQUFLO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO3VHQVhVLGtDQUFrQzsyRkFBbEMsa0NBQWtDOzsyRkFBbEMsa0NBQWtDO2tCQUg5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7aUJBQ3hDO3VIQUVxQyxNQUFNO3NCQUF6QyxLQUFLO3VCQUFDLDJCQUEyQjtnQkFDekIsUUFBUTtzQkFBaEIsS0FBSztnQkFLaUIsS0FBSztzQkFBM0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZSxcbiAgSU1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29uZmlnLFxufSBmcm9tICcuLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LXNlcnZpY2UvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3ddJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpcmVjdGl2ZSB7XG4gIEBJbnB1dCgndGRNYXJrZG93bk5hdmlnYXRvcldpbmRvdycpIGNvbmZpZz86IElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbmZpZztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dTZXJ2aWNlOiBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZVxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBjbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jb25maWcpIHtcbiAgICAgIHRoaXMuX21hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZS5vcGVuKHRoaXMuY29uZmlnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Injectable, Inject, RendererFactory2, } from '@angular/core';
|
|
2
|
+
import { TdMarkdownNavigatorWindowComponent, } from '../markdown-navigator-window/markdown-navigator-window.component';
|
|
3
|
+
import { TdDialogService, ResizableDraggableDialog, } from '@covalent/core/dialogs';
|
|
4
|
+
import { DOCUMENT } from '@angular/common';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@covalent/core/dialogs";
|
|
7
|
+
const CDK_OVERLAY_CUSTOM_CLASS = 'td-window-dialog';
|
|
8
|
+
const DEFAULT_POSITION = { bottom: '0px', right: '0px' };
|
|
9
|
+
const DEFAULT_WIDTH = '360px';
|
|
10
|
+
const DEFAULT_HEIGHT = '75vh';
|
|
11
|
+
const MIN_HEIGHT = '56px';
|
|
12
|
+
const MAX_WIDTH = '100vw';
|
|
13
|
+
const DEFAULT_DRAGGABLE_DIALOG_CONFIG = {
|
|
14
|
+
hasBackdrop: false,
|
|
15
|
+
closeOnNavigation: true,
|
|
16
|
+
panelClass: [CDK_OVERLAY_CUSTOM_CLASS],
|
|
17
|
+
position: DEFAULT_POSITION,
|
|
18
|
+
height: DEFAULT_HEIGHT,
|
|
19
|
+
width: DEFAULT_WIDTH,
|
|
20
|
+
maxWidth: MAX_WIDTH,
|
|
21
|
+
};
|
|
22
|
+
export class TdMarkdownNavigatorWindowService {
|
|
23
|
+
_tdDialogService;
|
|
24
|
+
_document;
|
|
25
|
+
rendererFactory;
|
|
26
|
+
_renderer2;
|
|
27
|
+
dragRef;
|
|
28
|
+
resizableDraggableDialog;
|
|
29
|
+
markdownNavigatorWindowDialog;
|
|
30
|
+
markdownNavigatorWindowDialogsOpen = 0;
|
|
31
|
+
constructor(_tdDialogService, _document, rendererFactory) {
|
|
32
|
+
this._tdDialogService = _tdDialogService;
|
|
33
|
+
this._document = _document;
|
|
34
|
+
this.rendererFactory = rendererFactory;
|
|
35
|
+
this._renderer2 = rendererFactory.createRenderer(undefined, null);
|
|
36
|
+
}
|
|
37
|
+
open(config) {
|
|
38
|
+
this.close();
|
|
39
|
+
const configClass = config?.dialogConfig?.panelClass;
|
|
40
|
+
const panelClass = configClass && !Array.isArray(configClass) ? [configClass] : [];
|
|
41
|
+
const draggableConfig = {
|
|
42
|
+
...DEFAULT_DRAGGABLE_DIALOG_CONFIG,
|
|
43
|
+
...config.dialogConfig,
|
|
44
|
+
...panelClass,
|
|
45
|
+
};
|
|
46
|
+
const { matDialogRef, dragRefSubject, } = this._tdDialogService.openDraggable({
|
|
47
|
+
component: TdMarkdownNavigatorWindowComponent,
|
|
48
|
+
config: draggableConfig,
|
|
49
|
+
dragHandleSelectors: ['.td-window-dialog-toolbar'],
|
|
50
|
+
draggableClass: 'td-draggable-markdown-navigator-window',
|
|
51
|
+
});
|
|
52
|
+
this.markdownNavigatorWindowDialog = matDialogRef;
|
|
53
|
+
this.markdownNavigatorWindowDialog.componentInstance.items = config.items;
|
|
54
|
+
this.markdownNavigatorWindowDialog.componentInstance.labels = config.labels;
|
|
55
|
+
this.markdownNavigatorWindowDialog.componentInstance.startAt =
|
|
56
|
+
config.startAt;
|
|
57
|
+
this.markdownNavigatorWindowDialog.componentInstance.copyCodeToClipboard =
|
|
58
|
+
config.copyCodeToClipboard;
|
|
59
|
+
this.markdownNavigatorWindowDialog.componentInstance.copyCodeTooltips =
|
|
60
|
+
config.copyCodeTooltips;
|
|
61
|
+
this.markdownNavigatorWindowDialog.componentInstance.compareWith =
|
|
62
|
+
config.compareWith;
|
|
63
|
+
this.markdownNavigatorWindowDialog.componentInstance.toolbarColor =
|
|
64
|
+
'toolbarColor' in config ? config.toolbarColor : 'primary';
|
|
65
|
+
this.markdownNavigatorWindowDialogsOpen++;
|
|
66
|
+
this.markdownNavigatorWindowDialog.componentInstance.footer = config.footer;
|
|
67
|
+
dragRefSubject.subscribe((dragRf) => {
|
|
68
|
+
this.dragRef = dragRf;
|
|
69
|
+
this.resizableDraggableDialog = new ResizableDraggableDialog(this._document, this._renderer2, this.markdownNavigatorWindowDialog, this.dragRef);
|
|
70
|
+
});
|
|
71
|
+
this._handleEvents();
|
|
72
|
+
return this.markdownNavigatorWindowDialog;
|
|
73
|
+
}
|
|
74
|
+
close() {
|
|
75
|
+
if (this.markdownNavigatorWindowDialog) {
|
|
76
|
+
if (this.resizableDraggableDialog) {
|
|
77
|
+
this.resizableDraggableDialog.detach();
|
|
78
|
+
}
|
|
79
|
+
this.markdownNavigatorWindowDialog.close();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
get isOpen() {
|
|
83
|
+
return this.markdownNavigatorWindowDialogsOpen > 0;
|
|
84
|
+
}
|
|
85
|
+
_handleEvents() {
|
|
86
|
+
let position;
|
|
87
|
+
let dimensions;
|
|
88
|
+
this.markdownNavigatorWindowDialog.componentInstance.closed.subscribe(() => this.close());
|
|
89
|
+
this.markdownNavigatorWindowDialog.componentInstance.dockToggled.subscribe((docked) => {
|
|
90
|
+
if (docked) {
|
|
91
|
+
this.markdownNavigatorWindowDialog.componentInstance.docked = false;
|
|
92
|
+
this.markdownNavigatorWindowDialog.updateSize(dimensions.width, dimensions.height);
|
|
93
|
+
this.markdownNavigatorWindowDialog.updatePosition({
|
|
94
|
+
top: '0px',
|
|
95
|
+
right: '0px',
|
|
96
|
+
bottom: '0px',
|
|
97
|
+
left: '0px',
|
|
98
|
+
});
|
|
99
|
+
this.dragRef.setFreeDragPosition(position);
|
|
100
|
+
this.dragRef.disabled = false;
|
|
101
|
+
this.resizableDraggableDialog.attach();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
dimensions = this._getDialogSize(this.markdownNavigatorWindowDialog);
|
|
105
|
+
position = this.dragRef.getFreeDragPosition();
|
|
106
|
+
this.markdownNavigatorWindowDialog.componentInstance.docked = true;
|
|
107
|
+
this.markdownNavigatorWindowDialog.updateSize(DEFAULT_WIDTH, MIN_HEIGHT);
|
|
108
|
+
this.markdownNavigatorWindowDialog.updatePosition(DEFAULT_POSITION);
|
|
109
|
+
this.dragRef.reset();
|
|
110
|
+
this.dragRef.disabled = true;
|
|
111
|
+
this.resizableDraggableDialog.detach();
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
this.markdownNavigatorWindowDialog
|
|
115
|
+
.afterClosed()
|
|
116
|
+
.toPromise()
|
|
117
|
+
.then(() => {
|
|
118
|
+
this.markdownNavigatorWindowDialogsOpen--;
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
_getDialogSize(dialogRef) {
|
|
122
|
+
const { width, height } = getComputedStyle(this._document.getElementById(dialogRef.id).parentElement);
|
|
123
|
+
return {
|
|
124
|
+
width,
|
|
125
|
+
height,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TdMarkdownNavigatorWindowService, deps: [{ token: i1.TdDialogService }, { token: DOCUMENT }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
129
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TdMarkdownNavigatorWindowService });
|
|
130
|
+
}
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TdMarkdownNavigatorWindowService, decorators: [{
|
|
132
|
+
type: Injectable
|
|
133
|
+
}], ctorParameters: function () { return [{ type: i1.TdDialogService }, { type: undefined, decorators: [{
|
|
134
|
+
type: Inject,
|
|
135
|
+
args: [DOCUMENT]
|
|
136
|
+
}] }, { type: i0.RendererFactory2 }]; } });
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1uYXZpZ2F0b3Ivc3JjL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3ctc2VydmljZS9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sZ0JBQWdCLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFDTCxrQ0FBa0MsR0FFbkMsTUFBTSxrRUFBa0UsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsZUFBZSxFQUVmLHdCQUF3QixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBbUIzQyxNQUFNLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0FBRXBELE1BQU0sZ0JBQWdCLEdBQW1CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDekUsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDO0FBQzlCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQztBQUM5QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFDMUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDO0FBRTFCLE1BQU0sK0JBQStCLEdBQW9CO0lBQ3ZELFdBQVcsRUFBRSxLQUFLO0lBQ2xCLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsVUFBVSxFQUFFLENBQUMsd0JBQXdCLENBQUM7SUFDdEMsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixNQUFNLEVBQUUsY0FBYztJQUN0QixLQUFLLEVBQUUsYUFBYTtJQUNwQixRQUFRLEVBQUUsU0FBUztDQUNwQixDQUFDO0FBUUYsTUFBTSxPQUFPLGdDQUFnQztJQVFqQztJQUNr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Z0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVOzswQkFVTixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBJbmplY3QsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG4gIFJlbmRlcmVyMixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNYXREaWFsb2dSZWYsXG4gIE1hdERpYWxvZ0NvbmZpZyxcbiAgRGlhbG9nUG9zaXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG4gIFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb21wb25lbnQsXG4gIElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVscyxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBUZERpYWxvZ1NlcnZpY2UsXG4gIElEcmFnZ2FibGVSZWZzLFxuICBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2csXG59IGZyb20gJ0Bjb3ZhbGVudC9jb3JlL2RpYWxvZ3MnO1xuaW1wb3J0IHsgRHJhZ1JlZiwgUG9pbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gIElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoLFxufSBmcm9tICcuLi9tYXJrZG93bi1uYXZpZ2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IElDb3B5Q29kZVRvb2x0aXBzIH0gZnJvbSAnQGNvdmFsZW50L2hpZ2hsaWdodCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29uZmlnIHtcbiAgaXRlbXM6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgZGlhbG9nQ29uZmlnPzogTWF0RGlhbG9nQ29uZmlnO1xuICBsYWJlbHM/OiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHM7XG4gIHRvb2xiYXJDb2xvcj86IFRoZW1lUGFsZXR0ZTtcbiAgc3RhcnRBdD86IElNYXJrZG93bk5hdmlnYXRvckl0ZW0gfCBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW107XG4gIGNvbXBhcmVXaXRoPzogSU1hcmtkb3duTmF2aWdhdG9yQ29tcGFyZVdpdGg7XG4gIGNvcHlDb2RlVG9DbGlwYm9hcmQ/OiBib29sZWFuO1xuICBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHM7XG4gIGZvb3Rlcj86IFR5cGU8YW55Pjtcbn1cblxuY29uc3QgQ0RLX09WRVJMQVlfQ1VTVE9NX0NMQVNTID0gJ3RkLXdpbmRvdy1kaWFsb2cnO1xuXG5jb25zdCBERUZBVUxUX1BPU0lUSU9OOiBEaWFsb2dQb3NpdGlvbiA9IHsgYm90dG9tOiAnMHB4JywgcmlnaHQ6ICcwcHgnIH07XG5jb25zdCBERUZBVUxUX1dJRFRIID0gJzM2MHB4JztcbmNvbnN0IERFRkFVTFRfSEVJR0hUID0gJzc1dmgnO1xuY29uc3QgTUlOX0hFSUdIVCA9ICc1NnB4JztcbmNvbnN0IE1BWF9XSURUSCA9ICcxMDB2dyc7XG5cbmNvbnN0IERFRkFVTFRfRFJBR0dBQkxFX0RJQUxPR19DT05GSUc6IE1hdERpYWxvZ0NvbmZpZyA9IHtcbiAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgcGFuZWxDbGFzczogW0NES19PVkVSTEFZX0NVU1RPTV9DTEFTU10sXG4gIHBvc2l0aW9uOiBERUZBVUxUX1BPU0lUSU9OLFxuICBoZWlnaHQ6IERFRkFVTFRfSEVJR0hULFxuICB3aWR0aDogREVGQVVMVF9XSURUSCxcbiAgbWF4V2lkdGg6IE1BWF9XSURUSCxcbn07XG5cbmludGVyZmFjZSBJRGlhbG9nRGltZW5zaW9ucyB7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIGhlaWdodDogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2Uge1xuICBwcml2YXRlIF9yZW5kZXJlcjI6IFJlbmRlcmVyMjtcbiAgcHJpdmF0ZSBkcmFnUmVmITogRHJhZ1JlZjtcbiAgcHJpdmF0ZSByZXNpemFibGVEcmFnZ2FibGVEaWFsb2chOiBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2c7XG4gIHByaXZhdGUgbWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2chOiBNYXREaWFsb2dSZWY8VGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudD47XG4gIHByaXZhdGUgbWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2dzT3BlbiA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdGREaWFsb2dTZXJ2aWNlOiBUZERpYWxvZ1NlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLl9yZW5kZXJlcjIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKFxuICAgIGNvbmZpZzogSU1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29uZmlnXG4gICk6IE1hdERpYWxvZ1JlZjxUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50PiB7XG4gICAgdGhpcy5jbG9zZSgpO1xuXG4gICAgY29uc3QgY29uZmlnQ2xhc3MgPSBjb25maWc/LmRpYWxvZ0NvbmZpZz8ucGFuZWxDbGFzcztcbiAgICBjb25zdCBwYW5lbENsYXNzID1cbiAgICAgIGNvbmZpZ0NsYXNzICYmICFBcnJheS5pc0FycmF5KGNvbmZpZ0NsYXNzKSA/IFtjb25maWdDbGFzc10gOiBbXTtcblxuICAgIGNvbnN0IGRyYWdnYWJsZUNvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9EUkFHR0FCTEVfRElBTE9HX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZy5kaWFsb2dDb25maWcsXG4gICAgICAuLi5wYW5lbENsYXNzLFxuICAgIH07XG4gICAgY29uc3Qge1xuICAgICAgbWF0RGlhbG9nUmVmLFxuICAgICAgZHJhZ1JlZlN1YmplY3QsXG4gICAgfTogSURyYWdnYWJsZVJlZnM8VGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudD4gPVxuICAgICAgdGhpcy5fdGREaWFsb2dTZXJ2aWNlLm9wZW5EcmFnZ2FibGUoe1xuICAgICAgICBjb21wb25lbnQ6IFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb21wb25lbnQsXG4gICAgICAgIGNvbmZpZzogZHJhZ2dhYmxlQ29uZmlnLFxuICAgICAgICBkcmFnSGFuZGxlU2VsZWN0b3JzOiBbJy50ZC13aW5kb3ctZGlhbG9nLXRvb2xiYXInXSxcbiAgICAgICAgZHJhZ2dhYmxlQ2xhc3M6ICd0ZC1kcmFnZ2FibGUtbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdycsXG4gICAgICB9KTtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nID0gbWF0RGlhbG9nUmVmO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuaXRlbXMgPSBjb25maWcuaXRlbXM7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5sYWJlbHMgPSBjb25maWcubGFiZWxzO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2Uuc3RhcnRBdCA9XG4gICAgICBjb25maWcuc3RhcnRBdDtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvcHlDb2RlVG9DbGlwYm9hcmQgPVxuICAgICAgY29uZmlnLmNvcHlDb2RlVG9DbGlwYm9hcmQ7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5jb3B5Q29kZVRvb2x0aXBzID1cbiAgICAgIGNvbmZpZy5jb3B5Q29kZVRvb2x0aXBzO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuY29tcGFyZVdpdGggPVxuICAgICAgY29uZmlnLmNvbXBhcmVXaXRoO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UudG9vbGJhckNvbG9yID1cbiAgICAgICd0b29sYmFyQ29sb3InIGluIGNvbmZpZyA/IGNvbmZpZy50b29sYmFyQ29sb3IgOiAncHJpbWFyeSc7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuKys7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5mb290ZXIgPSBjb25maWcuZm9vdGVyO1xuICAgIGRyYWdSZWZTdWJqZWN0LnN1YnNjcmliZSgoZHJhZ1JmOiBEcmFnUmVmKSA9PiB7XG4gICAgICB0aGlzLmRyYWdSZWYgPSBkcmFnUmY7XG4gICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyA9IG5ldyBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2coXG4gICAgICAgIHRoaXMuX2RvY3VtZW50LFxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIsXG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2csXG4gICAgICAgIHRoaXMuZHJhZ1JlZlxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLl9oYW5kbGVFdmVudHMoKTtcbiAgICByZXR1cm4gdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZztcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZykge1xuICAgICAgaWYgKHRoaXMucmVzaXphYmxlRHJhZ2dhYmxlRGlhbG9nKSB7XG4gICAgICAgIHRoaXMucmVzaXphYmxlRHJhZ2dhYmxlRGlhbG9nLmRldGFjaCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nc09wZW4gPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlRXZlbnRzKCk6IHZvaWQge1xuICAgIGxldCBwb3NpdGlvbjogUG9pbnQ7XG4gICAgbGV0IGRpbWVuc2lvbnM6IElEaWFsb2dEaW1lbnNpb25zO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuY2xvc2VkLnN1YnNjcmliZSgoKSA9PlxuICAgICAgdGhpcy5jbG9zZSgpXG4gICAgKTtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmRvY2tUb2dnbGVkLnN1YnNjcmliZShcbiAgICAgIChkb2NrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKGRvY2tlZCkge1xuICAgICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuZG9ja2VkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy51cGRhdGVTaXplKFxuICAgICAgICAgICAgZGltZW5zaW9ucy53aWR0aCxcbiAgICAgICAgICAgIGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLnVwZGF0ZVBvc2l0aW9uKHtcbiAgICAgICAgICAgIHRvcDogJzBweCcsXG4gICAgICAgICAgICByaWdodDogJzBweCcsXG4gICAgICAgICAgICBib3R0b206ICcwcHgnLFxuICAgICAgICAgICAgbGVmdDogJzBweCcsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5kcmFnUmVmLnNldEZyZWVEcmFnUG9zaXRpb24ocG9zaXRpb24pO1xuICAgICAgICAgIHRoaXMuZHJhZ1JlZi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucmVzaXphYmxlRHJhZ2dhYmxlRGlhbG9nLmF0dGFjaCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRpbWVuc2lvbnMgPSB0aGlzLl9nZXREaWFsb2dTaXplKHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cpO1xuICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy5kcmFnUmVmLmdldEZyZWVEcmFnUG9zaXRpb24oKTtcbiAgICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmRvY2tlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy51cGRhdGVTaXplKFxuICAgICAgICAgICAgREVGQVVMVF9XSURUSCxcbiAgICAgICAgICAgIE1JTl9IRUlHSFRcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cudXBkYXRlUG9zaXRpb24oREVGQVVMVF9QT1NJVElPTik7XG4gICAgICAgICAgdGhpcy5kcmFnUmVmLnJlc2V0KCk7XG4gICAgICAgICAgdGhpcy5kcmFnUmVmLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZy5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ1xuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nc09wZW4tLTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlhbG9nU2l6ZShcbiAgICBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50PlxuICApOiBJRGlhbG9nRGltZW5zaW9ucyB7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRDb21wdXRlZFN0eWxlKFxuICAgICAgdGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGlhbG9nUmVmLmlkKS5wYXJlbnRFbGVtZW50XG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgfTtcbiAgfVxufVxuIl19
|