@covalent/markdown-navigator 3.1.2-beta.6 → 4.0.0-beta.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/covalent-markdown-navigator.d.ts +1 -1
- package/esm2020/covalent-markdown-navigator.mjs +5 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/markdown-navigator-window/markdown-navigator-window.component.mjs +91 -0
- package/esm2020/markdown-navigator-window-directive/markdown-navigator-window.directive.mjs +34 -0
- package/esm2020/markdown-navigator-window-service/markdown-navigator-window.service.mjs +129 -0
- package/esm2020/markdown-navigator.component.mjs +587 -0
- package/esm2020/markdown-navigator.module.mjs +62 -0
- package/esm2020/public-api.mjs +6 -0
- package/fesm2015/covalent-markdown-navigator.mjs +968 -0
- package/fesm2015/covalent-markdown-navigator.mjs.map +1 -0
- package/fesm2020/covalent-markdown-navigator.mjs +889 -0
- package/fesm2020/covalent-markdown-navigator.mjs.map +1 -0
- package/markdown-navigator-window/markdown-navigator-window.component.d.ts +3 -0
- package/markdown-navigator-window/markdown-navigator-window.component.scss +1 -0
- package/markdown-navigator-window-directive/markdown-navigator-window.directive.d.ts +3 -0
- package/markdown-navigator-window-service/markdown-navigator-window.service.d.ts +3 -0
- package/markdown-navigator.component.d.ts +3 -0
- package/markdown-navigator.component.scss +5 -0
- package/markdown-navigator.module.d.ts +16 -0
- package/package.json +30 -15
- package/public-api.d.ts +1 -0
- package/bundles/covalent-markdown-navigator.umd.js +0 -1650
- package/bundles/covalent-markdown-navigator.umd.js.map +0 -1
- package/bundles/covalent-markdown-navigator.umd.min.js +0 -16
- package/bundles/covalent-markdown-navigator.umd.min.js.map +0 -1
- package/covalent-markdown-navigator.metadata.json +0 -1
- package/esm2015/covalent-markdown-navigator.js +0 -11
- package/esm2015/index.js +0 -7
- package/esm2015/markdown-navigator-window/markdown-navigator-window.component.js +0 -129
- package/esm2015/markdown-navigator-window-directive/markdown-navigator-window.directive.js +0 -50
- package/esm2015/markdown-navigator-window-service/markdown-navigator-window.service.js +0 -254
- package/esm2015/markdown-navigator.component.js +0 -698
- package/esm2015/markdown-navigator.module.js +0 -41
- package/esm2015/public-api.js +0 -10
- package/fesm2015/covalent-markdown-navigator.js +0 -1181
- package/fesm2015/covalent-markdown-navigator.js.map +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtbWFya2Rvd24tbmF2aWdhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL21hcmtkb3duLW5hdmlnYXRvci9jb3ZhbGVudC1tYXJrZG93bi1uYXZpZ2F0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vbWFya2Rvd24tbmF2aWdhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
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
|
+
constructor() {
|
|
13
|
+
this.toolbarColor = 'primary';
|
|
14
|
+
this.docked = false;
|
|
15
|
+
this.copyCodeToClipboard = false;
|
|
16
|
+
this.copyCodeTooltips = {};
|
|
17
|
+
this.closed = new EventEmitter();
|
|
18
|
+
this.dockToggled = new EventEmitter();
|
|
19
|
+
this.buttonClicked = new EventEmitter();
|
|
20
|
+
}
|
|
21
|
+
get markdownNavigatorLabels() {
|
|
22
|
+
if (this.labels) {
|
|
23
|
+
const { goHome, goBack, emptyState } = this.labels;
|
|
24
|
+
return {
|
|
25
|
+
goHome,
|
|
26
|
+
goBack,
|
|
27
|
+
emptyState,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
get titleLabel() {
|
|
32
|
+
return (this.labels && this.labels.title) || DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.title;
|
|
33
|
+
}
|
|
34
|
+
get closeLabel() {
|
|
35
|
+
return (this.labels && this.labels.close) || DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.close;
|
|
36
|
+
}
|
|
37
|
+
get toggleDockedStateLabel() {
|
|
38
|
+
if (this.docked) {
|
|
39
|
+
return (this.labels && this.labels.unDock) || DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.unDock;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return (this.labels && this.labels.dock) || DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.dock;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
toggleDockedState() {
|
|
46
|
+
this.dockToggled.emit(this.docked);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** @nocollapse */ /** @nocollapse */ TdMarkdownNavigatorWindowComponent.ɵfac = function TdMarkdownNavigatorWindowComponent_Factory(t) { return new (t || TdMarkdownNavigatorWindowComponent)(); };
|
|
50
|
+
/** @nocollapse */ /** @nocollapse */ TdMarkdownNavigatorWindowComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdMarkdownNavigatorWindowComponent, selectors: [["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" }, decls: 2, vars: 14, consts: [[3, "toolbarColor", "docked", "title", "toggleDockedStateLabel", "closeLabel", "dockToggled", "closed"], [3, "items", "labels", "startAt", "compareWith", "footer", "copyCodeToClipboard", "copyCodeTooltips", "buttonClicked"]], template: function TdMarkdownNavigatorWindowComponent_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
i0.ɵɵelementStart(0, "td-window-dialog", 0);
|
|
52
|
+
i0.ɵɵlistener("dockToggled", function TdMarkdownNavigatorWindowComponent_Template_td_window_dialog_dockToggled_0_listener() { return ctx.toggleDockedState(); })("closed", function TdMarkdownNavigatorWindowComponent_Template_td_window_dialog_closed_0_listener() { return ctx.closed.emit(); });
|
|
53
|
+
i0.ɵɵelementStart(1, "td-markdown-navigator", 1);
|
|
54
|
+
i0.ɵɵlistener("buttonClicked", function TdMarkdownNavigatorWindowComponent_Template_td_markdown_navigator_buttonClicked_1_listener($event) { return ctx.buttonClicked.emit($event); });
|
|
55
|
+
i0.ɵɵelementEnd();
|
|
56
|
+
i0.ɵɵelementEnd();
|
|
57
|
+
} if (rf & 2) {
|
|
58
|
+
i0.ɵɵproperty("toolbarColor", ctx.toolbarColor)("docked", ctx.docked)("title", ctx.titleLabel)("toggleDockedStateLabel", ctx.toggleDockedStateLabel)("closeLabel", ctx.closeLabel);
|
|
59
|
+
i0.ɵɵadvance(1);
|
|
60
|
+
i0.ɵɵstyleProp("display", ctx.docked ? "none" : "inherit");
|
|
61
|
+
i0.ɵɵproperty("items", ctx.items)("labels", ctx.markdownNavigatorLabels)("startAt", ctx.startAt)("compareWith", ctx.compareWith)("footer", ctx.footer)("copyCodeToClipboard", ctx.copyCodeToClipboard)("copyCodeTooltips", ctx.copyCodeTooltips);
|
|
62
|
+
} }, directives: [i1.TdWindowDialogComponent, i2.TdMarkdownNavigatorComponent], styles: ["[_nghost-%COMP%]{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}td-markdown-navigator[_ngcontent-%COMP%]{height:calc(100% - 56px)}"], changeDetection: 0 });
|
|
63
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowComponent, [{
|
|
64
|
+
type: Component,
|
|
65
|
+
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 ></td-markdown-navigator>\n</td-window-dialog>\n", styles: [":host{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}td-markdown-navigator{height:calc(100% - 56px)}\n"] }]
|
|
66
|
+
}], null, { items: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], labels: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], toolbarColor: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], startAt: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], compareWith: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], docked: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], copyCodeToClipboard: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], copyCodeTooltips: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], footer: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], closed: [{
|
|
85
|
+
type: Output
|
|
86
|
+
}], dockToggled: [{
|
|
87
|
+
type: Output
|
|
88
|
+
}], buttonClicked: [{
|
|
89
|
+
type: Output
|
|
90
|
+
}] }); })();
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vbWFya2Rvd24tbmF2aWdhdG9yL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vbWFya2Rvd24tbmF2aWdhdG9yL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWdCdEcsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQW1DO0lBQ3RGLEtBQUssRUFBRSxNQUFNO0lBQ2IsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0NBQ2pCLENBQUM7QUFRRixNQUFNLE9BQU8sa0NBQWtDO0lBTi9DO1FBU1csaUJBQVksR0FBaUIsU0FBUyxDQUFDO1FBR3ZDLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHFCQUFnQixHQUFzQixFQUFFLENBQUM7UUFHeEMsV0FBTSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hELGdCQUFXLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsa0JBQWEsR0FBc0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQStCakc7SUE3QkMsSUFBSSx1QkFBdUI7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQW1DLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDbkYsT0FBTztnQkFDTCxNQUFNO2dCQUNOLE1BQU07Z0JBQ04sVUFBVTthQUNYLENBQUM7U0FDSDtJQUNILENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLHdDQUF3QyxDQUFDLEtBQUssQ0FBQztJQUM5RixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSx3Q0FBd0MsQ0FBQyxLQUFLLENBQUM7SUFDOUYsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksd0NBQXdDLENBQUMsTUFBTSxDQUFDO1NBQy9GO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLHdDQUF3QyxDQUFDLElBQUksQ0FBQztTQUMzRjtJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7MEpBM0NVLGtDQUFrQzt1SUFBbEMsa0NBQWtDO1FDN0IvQywyQ0FRQztRQUZDLHFJQUFlLHVCQUFtQixJQUFDLDhHQUN6QixpQkFBYSxJQURZO1FBR25DLGdEQVVDO1FBREMsb0pBQWlCLDhCQUEwQixJQUFDO1FBQzdDLGlCQUF3QjtRQUMzQixpQkFBbUI7O1FBbkJqQiwrQ0FBNkIsc0JBQUEseUJBQUEsc0RBQUEsOEJBQUE7UUFXM0IsZUFBNkM7UUFBN0MsMERBQTZDO1FBRjdDLGlDQUFlLHVDQUFBLHdCQUFBLGdDQUFBLHNCQUFBLGdEQUFBLDBDQUFBOzt1RkRtQk4sa0NBQWtDO2NBTjlDLFNBQVM7MkJBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNO2dCQUd0QyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUVJLE1BQU07a0JBQWYsTUFBTTtZQUNHLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG4gIElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gIElNYXJrZG93bk5hdmlnYXRvckxhYmVscyxcbiAgSU1hcmtkb3duTmF2aWdhdG9yQ29tcGFyZVdpdGgsXG59IGZyb20gJy4uL21hcmtkb3duLW5hdmlnYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQgfSBmcm9tICdAY292YWxlbnQvZmxhdm9yZWQtbWFya2Rvd24nO1xuaW1wb3J0IHsgSUNvcHlDb2RlVG9vbHRpcHMgfSBmcm9tICdAY292YWxlbnQvaGlnaGxpZ2h0JztcblxuZXhwb3J0IGludGVyZmFjZSBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgZXh0ZW5kcyBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMge1xuICB0aXRsZT86IHN0cmluZztcbiAgY2xvc2U/OiBzdHJpbmc7XG4gIGRvY2s/OiBzdHJpbmc7XG4gIHVuRG9jaz86IHN0cmluZztcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgPSB7XG4gIHRpdGxlOiAnSGVscCcsXG4gIGNsb3NlOiAnQ2xvc2UnLFxuICBkb2NrOiAnRG9jaycsXG4gIHVuRG9jazogJ1VuZG9jaycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50IHtcbiAgQElucHV0KCkgaXRlbXM6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgQElucHV0KCkgbGFiZWxzOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHM7XG4gIEBJbnB1dCgpIHRvb2xiYXJDb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBzdGFydEF0OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBASW5wdXQoKSBjb21wYXJlV2l0aDogSU1hcmtkb3duTmF2aWdhdG9yQ29tcGFyZVdpdGg7XG4gIEBJbnB1dCgpIGRvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb3B5Q29kZVRvQ2xpcGJvYXJkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM6IElDb3B5Q29kZVRvb2x0aXBzID0ge307XG4gIEBJbnB1dCgpIGZvb3RlcjogVHlwZTxhbnk+O1xuXG4gIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRvY2tUb2dnbGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdldCBtYXJrZG93bk5hdmlnYXRvckxhYmVscygpOiBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMge1xuICAgIGlmICh0aGlzLmxhYmVscykge1xuICAgICAgY29uc3QgeyBnb0hvbWUsIGdvQmFjaywgZW1wdHlTdGF0ZSB9OiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgPSB0aGlzLmxhYmVscztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdvSG9tZSxcbiAgICAgICAgZ29CYWNrLFxuICAgICAgICBlbXB0eVN0YXRlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgZ2V0IHRpdGxlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMubGFiZWxzICYmIHRoaXMubGFiZWxzLnRpdGxlKSB8fCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLnRpdGxlO1xuICB9XG5cbiAgZ2V0IGNsb3NlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMubGFiZWxzICYmIHRoaXMubGFiZWxzLmNsb3NlKSB8fCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLmNsb3NlO1xuICB9XG5cbiAgZ2V0IHRvZ2dsZURvY2tlZFN0YXRlTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kb2NrZWQpIHtcbiAgICAgIHJldHVybiAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMudW5Eb2NrKSB8fCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLnVuRG9jaztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVscy5kb2NrKSB8fCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLmRvY2s7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRG9ja2VkU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5kb2NrVG9nZ2xlZC5lbWl0KHRoaXMuZG9ja2VkKTtcbiAgfVxufVxuIiwiPHRkLXdpbmRvdy1kaWFsb2dcbiAgW3Rvb2xiYXJDb2xvcl09XCJ0b29sYmFyQ29sb3JcIlxuICBbZG9ja2VkXT1cImRvY2tlZFwiXG4gIFt0aXRsZV09XCJ0aXRsZUxhYmVsXCJcbiAgW3RvZ2dsZURvY2tlZFN0YXRlTGFiZWxdPVwidG9nZ2xlRG9ja2VkU3RhdGVMYWJlbFwiXG4gIFtjbG9zZUxhYmVsXT1cImNsb3NlTGFiZWxcIlxuICAoZG9ja1RvZ2dsZWQpPVwidG9nZ2xlRG9ja2VkU3RhdGUoKVwiXG4gIChjbG9zZWQpPVwiY2xvc2VkLmVtaXQoKVwiXG4+XG4gIDx0ZC1tYXJrZG93bi1uYXZpZ2F0b3JcbiAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgIFtsYWJlbHNdPVwibWFya2Rvd25OYXZpZ2F0b3JMYWJlbHNcIlxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImRvY2tlZCA/ICdub25lJyA6ICdpbmhlcml0J1wiXG4gICAgW3N0YXJ0QXRdPVwic3RhcnRBdFwiXG4gICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVXaXRoXCJcbiAgICBbZm9vdGVyXT1cImZvb3RlclwiXG4gICAgW2NvcHlDb2RlVG9DbGlwYm9hcmRdPVwiY29weUNvZGVUb0NsaXBib2FyZFwiXG4gICAgW2NvcHlDb2RlVG9vbHRpcHNdPVwiY29weUNvZGVUb29sdGlwc1wiXG4gICAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuICA+PC90ZC1tYXJrZG93bi1uYXZpZ2F0b3I+XG48L3RkLXdpbmRvdy1kaWFsb2c+XG4iXX0=
|
|
@@ -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
|
+
constructor(_markdownNavigatorWindowService) {
|
|
7
|
+
this._markdownNavigatorWindowService = _markdownNavigatorWindowService;
|
|
8
|
+
this.disabled = false;
|
|
9
|
+
}
|
|
10
|
+
click() {
|
|
11
|
+
if (!this.disabled) {
|
|
12
|
+
this._markdownNavigatorWindowService.open(this.config);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** @nocollapse */ /** @nocollapse */ TdMarkdownNavigatorWindowDirective.ɵfac = function TdMarkdownNavigatorWindowDirective_Factory(t) { return new (t || TdMarkdownNavigatorWindowDirective)(i0.ɵɵdirectiveInject(i1.TdMarkdownNavigatorWindowService)); };
|
|
17
|
+
/** @nocollapse */ /** @nocollapse */ TdMarkdownNavigatorWindowDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: TdMarkdownNavigatorWindowDirective, selectors: [["", "tdMarkdownNavigatorWindow", ""]], hostBindings: function TdMarkdownNavigatorWindowDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵlistener("click", function TdMarkdownNavigatorWindowDirective_click_HostBindingHandler() { return ctx.click(); });
|
|
19
|
+
} }, inputs: { config: ["tdMarkdownNavigatorWindow", "config"], disabled: "disabled" } });
|
|
20
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowDirective, [{
|
|
21
|
+
type: Directive,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: '[tdMarkdownNavigatorWindow]',
|
|
24
|
+
}]
|
|
25
|
+
}], function () { return [{ type: i1.TdMarkdownNavigatorWindowService }]; }, { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vbWFya2Rvd24tbmF2aWdhdG9yL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3ctZGlyZWN0aXZlL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsZ0NBQWdDLEdBRWpDLE1BQU0sd0VBQXdFLENBQUM7OztBQUtoRixNQUFNLE9BQU8sa0NBQWtDO0lBRzdDLFlBQW9CLCtCQUFpRTtRQUFqRSxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWtDO1FBRDVFLGFBQVEsR0FBWSxLQUFLLENBQUM7SUFDcUQsQ0FBQztJQUVsRSxLQUFLO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQzs7MEpBVFUsa0NBQWtDO3VJQUFsQyxrQ0FBa0M7K0dBQWxDLFdBQU87O3VGQUFQLGtDQUFrQztjQUg5QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjthQUN4QzttRkFFcUMsTUFBTTtrQkFBekMsS0FBSzttQkFBQywyQkFBMkI7WUFDekIsUUFBUTtrQkFBaEIsS0FBSztZQUdpQixLQUFLO2tCQUEzQixZQUFZO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dTZXJ2aWNlLFxuICBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb25maWcsXG59IGZyb20gJy4uL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3ctc2VydmljZS9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd10nLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlyZWN0aXZlIHtcbiAgQElucHV0KCd0ZE1hcmtkb3duTmF2aWdhdG9yV2luZG93JykgY29uZmlnOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb25maWc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX21hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZTogVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2UpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBjbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX21hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZS5vcGVuKHRoaXMuY29uZmlnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
constructor(_tdDialogService, _document, rendererFactory) {
|
|
24
|
+
this._tdDialogService = _tdDialogService;
|
|
25
|
+
this._document = _document;
|
|
26
|
+
this.rendererFactory = rendererFactory;
|
|
27
|
+
this.markdownNavigatorWindowDialog = undefined;
|
|
28
|
+
this.markdownNavigatorWindowDialogsOpen = 0;
|
|
29
|
+
this._renderer2 = rendererFactory.createRenderer(undefined, undefined);
|
|
30
|
+
}
|
|
31
|
+
open(config) {
|
|
32
|
+
this.close();
|
|
33
|
+
let panelClass = [...DEFAULT_DRAGGABLE_DIALOG_CONFIG.panelClass];
|
|
34
|
+
if (config.dialogConfig && config.dialogConfig.panelClass) {
|
|
35
|
+
if (Array.isArray(config.dialogConfig.panelClass)) {
|
|
36
|
+
panelClass = [...config.dialogConfig.panelClass];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
panelClass = [config.dialogConfig.panelClass];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const draggableConfig = {
|
|
43
|
+
...DEFAULT_DRAGGABLE_DIALOG_CONFIG,
|
|
44
|
+
...config.dialogConfig,
|
|
45
|
+
panelClass,
|
|
46
|
+
};
|
|
47
|
+
const { matDialogRef, dragRefSubject } = this._tdDialogService.openDraggable({
|
|
48
|
+
component: TdMarkdownNavigatorWindowComponent,
|
|
49
|
+
config: draggableConfig,
|
|
50
|
+
dragHandleSelectors: ['.td-window-dialog-toolbar'],
|
|
51
|
+
draggableClass: 'td-draggable-markdown-navigator-window',
|
|
52
|
+
});
|
|
53
|
+
this.markdownNavigatorWindowDialog = matDialogRef;
|
|
54
|
+
this.markdownNavigatorWindowDialog.componentInstance.items = config.items;
|
|
55
|
+
this.markdownNavigatorWindowDialog.componentInstance.labels = config.labels;
|
|
56
|
+
this.markdownNavigatorWindowDialog.componentInstance.startAt = config.startAt;
|
|
57
|
+
this.markdownNavigatorWindowDialog.componentInstance.copyCodeToClipboard = config.copyCodeToClipboard;
|
|
58
|
+
this.markdownNavigatorWindowDialog.componentInstance.copyCodeTooltips = config.copyCodeTooltips;
|
|
59
|
+
this.markdownNavigatorWindowDialog.componentInstance.compareWith = config.compareWith;
|
|
60
|
+
this.markdownNavigatorWindowDialog.componentInstance.toolbarColor =
|
|
61
|
+
'toolbarColor' in config ? config.toolbarColor : 'primary';
|
|
62
|
+
this.markdownNavigatorWindowDialogsOpen++;
|
|
63
|
+
this.markdownNavigatorWindowDialog.componentInstance.footer = config.footer;
|
|
64
|
+
dragRefSubject.subscribe((dragRf) => {
|
|
65
|
+
this.dragRef = dragRf;
|
|
66
|
+
this.resizableDraggableDialog = new ResizableDraggableDialog(this._document, this._renderer2, this.markdownNavigatorWindowDialog, this.dragRef);
|
|
67
|
+
});
|
|
68
|
+
this._handleEvents();
|
|
69
|
+
return this.markdownNavigatorWindowDialog;
|
|
70
|
+
}
|
|
71
|
+
close() {
|
|
72
|
+
if (this.markdownNavigatorWindowDialog) {
|
|
73
|
+
if (this.resizableDraggableDialog) {
|
|
74
|
+
this.resizableDraggableDialog.detach();
|
|
75
|
+
}
|
|
76
|
+
this.markdownNavigatorWindowDialog.close();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
get isOpen() {
|
|
80
|
+
return this.markdownNavigatorWindowDialogsOpen > 0;
|
|
81
|
+
}
|
|
82
|
+
_handleEvents() {
|
|
83
|
+
let position;
|
|
84
|
+
let dimensions;
|
|
85
|
+
this.markdownNavigatorWindowDialog.componentInstance.closed.subscribe(() => this.close());
|
|
86
|
+
this.markdownNavigatorWindowDialog.componentInstance.dockToggled.subscribe((docked) => {
|
|
87
|
+
if (docked) {
|
|
88
|
+
this.markdownNavigatorWindowDialog.componentInstance.docked = false;
|
|
89
|
+
this.markdownNavigatorWindowDialog.updateSize(dimensions.width, dimensions.height);
|
|
90
|
+
this.markdownNavigatorWindowDialog.updatePosition({ top: '0px', right: '0px', bottom: '0px', left: '0px' });
|
|
91
|
+
this.dragRef.setFreeDragPosition(position);
|
|
92
|
+
this.dragRef.disabled = false;
|
|
93
|
+
this.resizableDraggableDialog.attach();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
dimensions = this._getDialogSize(this.markdownNavigatorWindowDialog);
|
|
97
|
+
position = this.dragRef.getFreeDragPosition();
|
|
98
|
+
this.markdownNavigatorWindowDialog.componentInstance.docked = true;
|
|
99
|
+
this.markdownNavigatorWindowDialog.updateSize(DEFAULT_WIDTH, MIN_HEIGHT);
|
|
100
|
+
this.markdownNavigatorWindowDialog.updatePosition(DEFAULT_POSITION);
|
|
101
|
+
this.dragRef.reset();
|
|
102
|
+
this.dragRef.disabled = true;
|
|
103
|
+
this.resizableDraggableDialog.detach();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
this.markdownNavigatorWindowDialog
|
|
107
|
+
.afterClosed()
|
|
108
|
+
.toPromise()
|
|
109
|
+
.then(() => {
|
|
110
|
+
this.markdownNavigatorWindowDialogsOpen--;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
_getDialogSize(dialogRef) {
|
|
114
|
+
const { width, height } = getComputedStyle(this._document.getElementById(dialogRef.id).parentElement);
|
|
115
|
+
return {
|
|
116
|
+
width,
|
|
117
|
+
height,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** @nocollapse */ /** @nocollapse */ TdMarkdownNavigatorWindowService.ɵfac = function TdMarkdownNavigatorWindowService_Factory(t) { return new (t || TdMarkdownNavigatorWindowService)(i0.ɵɵinject(i1.TdDialogService), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i0.RendererFactory2)); };
|
|
122
|
+
/** @nocollapse */ /** @nocollapse */ TdMarkdownNavigatorWindowService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TdMarkdownNavigatorWindowService, factory: TdMarkdownNavigatorWindowService.ɵfac });
|
|
123
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowService, [{
|
|
124
|
+
type: Injectable
|
|
125
|
+
}], function () { return [{ type: i1.TdDialogService }, { type: undefined, decorators: [{
|
|
126
|
+
type: Inject,
|
|
127
|
+
args: [DOCUMENT]
|
|
128
|
+
}] }, { type: i0.RendererFactory2 }]; }, null); })();
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL21hcmtkb3duLW5hdmlnYXRvci9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LXNlcnZpY2UvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUd0RixPQUFPLEVBQ0wsa0NBQWtDLEdBRW5DLE1BQU0sa0VBQWtFLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBa0Isd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQWdCM0MsTUFBTSx3QkFBd0IsR0FBVyxrQkFBa0IsQ0FBQztBQUU1RCxNQUFNLGdCQUFnQixHQUFtQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ3pFLE1BQU0sYUFBYSxHQUFXLE9BQU8sQ0FBQztBQUN0QyxNQUFNLGNBQWMsR0FBVyxNQUFNLENBQUM7QUFDdEMsTUFBTSxVQUFVLEdBQVcsTUFBTSxDQUFDO0FBQ2xDLE1BQU0sU0FBUyxHQUFXLE9BQU8sQ0FBQztBQUVsQyxNQUFNLCtCQUErQixHQUFvQjtJQUN2RCxXQUFXLEVBQUUsS0FBSztJQUNsQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLFVBQVUsRUFBRSxDQUFDLHdCQUF3QixDQUFDO0lBQ3RDLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsUUFBUSxFQUFFLFNBQVM7Q0FDcEIsQ0FBQztBQVFGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFPM0Ms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UUFDRixPQUFPO1lBQ0wsS0FBSztZQUNMLE1BQU07U0FDUCxDQUFDO0lBQ0osQ0FBQzs7c0pBbEhVLGdDQUFnQywrQ0FTakMsUUFBUTt3SUFUUCxnQ0FBZ0MsV0FBaEMsZ0NBQWdDO3VGQUFoQyxnQ0FBZ0M7Y0FENUMsVUFBVTs7c0JBVU4sTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBSZW5kZXJlckZhY3RvcnkyLCBSZW5kZXJlcjIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nQ29uZmlnLCBEaWFsb2dQb3NpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG4gIFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb21wb25lbnQsXG4gIElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVscyxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZERpYWxvZ1NlcnZpY2UsIElEcmFnZ2FibGVSZWZzLCBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2cgfSBmcm9tICdAY292YWxlbnQvY29yZS9kaWFsb2dzJztcbmltcG9ydCB7IERyYWdSZWYsIFBvaW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcC9kcmFnLXJlZic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLCBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCB9IGZyb20gJy4uL21hcmtkb3duLW5hdmlnYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUNvcHlDb2RlVG9vbHRpcHMgfSBmcm9tICdAY292YWxlbnQvaGlnaGxpZ2h0JztcblxuZXhwb3J0IGludGVyZmFjZSBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb25maWcge1xuICBpdGVtczogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBkaWFsb2dDb25maWc/OiBNYXREaWFsb2dDb25maWc7XG4gIGxhYmVscz86IElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVscztcbiAgdG9vbGJhckNvbG9yPzogVGhlbWVQYWxldHRlO1xuICBzdGFydEF0PzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB8IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgY29tcGFyZVdpdGg/OiBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aDtcbiAgY29weUNvZGVUb0NsaXBib2FyZD86IGJvb2xlYW47XG4gIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwcztcbiAgZm9vdGVyPzogVHlwZTxhbnk+O1xufVxuXG5jb25zdCBDREtfT1ZFUkxBWV9DVVNUT01fQ0xBU1M6IHN0cmluZyA9ICd0ZC13aW5kb3ctZGlhbG9nJztcblxuY29uc3QgREVGQVVMVF9QT1NJVElPTjogRGlhbG9nUG9zaXRpb24gPSB7IGJvdHRvbTogJzBweCcsIHJpZ2h0OiAnMHB4JyB9O1xuY29uc3QgREVGQVVMVF9XSURUSDogc3RyaW5nID0gJzM2MHB4JztcbmNvbnN0IERFRkFVTFRfSEVJR0hUOiBzdHJpbmcgPSAnNzV2aCc7XG5jb25zdCBNSU5fSEVJR0hUOiBzdHJpbmcgPSAnNTZweCc7XG5jb25zdCBNQVhfV0lEVEg6IHN0cmluZyA9ICcxMDB2dyc7XG5cbmNvbnN0IERFRkFVTFRfRFJBR0dBQkxFX0RJQUxPR19DT05GSUc6IE1hdERpYWxvZ0NvbmZpZyA9IHtcbiAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgcGFuZWxDbGFzczogW0NES19PVkVSTEFZX0NVU1RPTV9DTEFTU10sXG4gIHBvc2l0aW9uOiBERUZBVUxUX1BPU0lUSU9OLFxuICBoZWlnaHQ6IERFRkFVTFRfSEVJR0hULFxuICB3aWR0aDogREVGQVVMVF9XSURUSCxcbiAgbWF4V2lkdGg6IE1BWF9XSURUSCxcbn07XG5cbmludGVyZmFjZSBJRGlhbG9nRGltZW5zaW9ucyB7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIGhlaWdodDogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2Uge1xuICBwcml2YXRlIF9yZW5kZXJlcjI6IFJlbmRlcmVyMjtcbiAgcHJpdmF0ZSBkcmFnUmVmOiBEcmFnUmVmO1xuICBwcml2YXRlIHJlc2l6YWJsZURyYWdnYWJsZURpYWxvZzogUmVzaXphYmxlRHJhZ2dhYmxlRGlhbG9nO1xuICBwcml2YXRlIG1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nOiBNYXREaWFsb2dSZWY8VGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudD4gPSB1bmRlZmluZWQ7XG4gIHByaXZhdGUgbWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2dzT3BlbjogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF90ZERpYWxvZ1NlcnZpY2U6IFRkRGlhbG9nU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxuICAgIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICApIHtcbiAgICB0aGlzLl9yZW5kZXJlcjIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oY29uZmlnOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb25maWcpOiBNYXREaWFsb2dSZWY8VGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudD4ge1xuICAgIHRoaXMuY2xvc2UoKTtcblxuICAgIGxldCBwYW5lbENsYXNzOiBzdHJpbmdbXSA9IFsuLi5ERUZBVUxUX0RSQUdHQUJMRV9ESUFMT0dfQ09ORklHLnBhbmVsQ2xhc3NdO1xuICAgIGlmIChjb25maWcuZGlhbG9nQ29uZmlnICYmIGNvbmZpZy5kaWFsb2dDb25maWcucGFuZWxDbGFzcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZmlnLmRpYWxvZ0NvbmZpZy5wYW5lbENsYXNzKSkge1xuICAgICAgICBwYW5lbENsYXNzID0gWy4uLmNvbmZpZy5kaWFsb2dDb25maWcucGFuZWxDbGFzc107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYW5lbENsYXNzID0gW2NvbmZpZy5kaWFsb2dDb25maWcucGFuZWxDbGFzc107XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGRyYWdnYWJsZUNvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9EUkFHR0FCTEVfRElBTE9HX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZy5kaWFsb2dDb25maWcsXG4gICAgICBwYW5lbENsYXNzLFxuICAgIH07XG4gICAgY29uc3QgeyBtYXREaWFsb2dSZWYsIGRyYWdSZWZTdWJqZWN0IH06IElEcmFnZ2FibGVSZWZzPFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb21wb25lbnQ+ID1cbiAgICAgIHRoaXMuX3RkRGlhbG9nU2VydmljZS5vcGVuRHJhZ2dhYmxlKHtcbiAgICAgICAgY29tcG9uZW50OiBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50LFxuICAgICAgICBjb25maWc6IGRyYWdnYWJsZUNvbmZpZyxcbiAgICAgICAgZHJhZ0hhbmRsZVNlbGVjdG9yczogWycudGQtd2luZG93LWRpYWxvZy10b29sYmFyJ10sXG4gICAgICAgIGRyYWdnYWJsZUNsYXNzOiAndGQtZHJhZ2dhYmxlLW1hcmtkb3duLW5hdmlnYXRvci13aW5kb3cnLFxuICAgICAgfSk7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZyA9IG1hdERpYWxvZ1JlZjtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLml0ZW1zID0gY29uZmlnLml0ZW1zO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UubGFiZWxzID0gY29uZmlnLmxhYmVscztcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLnN0YXJ0QXQgPSBjb25maWcuc3RhcnRBdDtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvcHlDb2RlVG9DbGlwYm9hcmQgPSBjb25maWcuY29weUNvZGVUb0NsaXBib2FyZDtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvcHlDb2RlVG9vbHRpcHMgPSBjb25maWcuY29weUNvZGVUb29sdGlwcztcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvbXBhcmVXaXRoID0gY29uZmlnLmNvbXBhcmVXaXRoO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UudG9vbGJhckNvbG9yID1cbiAgICAgICd0b29sYmFyQ29sb3InIGluIGNvbmZpZyA/IGNvbmZpZy50b29sYmFyQ29sb3IgOiAncHJpbWFyeSc7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuKys7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5mb290ZXIgPSBjb25maWcuZm9vdGVyO1xuICAgIGRyYWdSZWZTdWJqZWN0LnN1YnNjcmliZSgoZHJhZ1JmOiBEcmFnUmVmKSA9PiB7XG4gICAgICB0aGlzLmRyYWdSZWYgPSBkcmFnUmY7XG4gICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyA9IG5ldyBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2coXG4gICAgICAgIHRoaXMuX2RvY3VtZW50LFxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIsXG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2csXG4gICAgICAgIHRoaXMuZHJhZ1JlZixcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy5faGFuZGxlRXZlbnRzKCk7XG4gICAgcmV0dXJuIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2c7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cpIHtcbiAgICAgIGlmICh0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZykge1xuICAgICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZy5kZXRhY2goKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUV2ZW50cygpOiB2b2lkIHtcbiAgICBsZXQgcG9zaXRpb246IFBvaW50O1xuICAgIGxldCBkaW1lbnNpb25zOiBJRGlhbG9nRGltZW5zaW9ucztcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmRvY2tUb2dnbGVkLnN1YnNjcmliZSgoZG9ja2VkOiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoZG9ja2VkKSB7XG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuZG9ja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cudXBkYXRlU2l6ZShkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7XG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cudXBkYXRlUG9zaXRpb24oeyB0b3A6ICcwcHgnLCByaWdodDogJzBweCcsIGJvdHRvbTogJzBweCcsIGxlZnQ6ICcwcHgnIH0pO1xuICAgICAgICB0aGlzLmRyYWdSZWYuc2V0RnJlZURyYWdQb3NpdGlvbihwb3NpdGlvbik7XG4gICAgICAgIHRoaXMuZHJhZ1JlZi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZy5hdHRhY2goKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpbWVuc2lvbnMgPSB0aGlzLl9nZXREaWFsb2dTaXplKHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cpO1xuICAgICAgICBwb3NpdGlvbiA9IHRoaXMuZHJhZ1JlZi5nZXRGcmVlRHJhZ1Bvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuZG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy51cGRhdGVTaXplKERFRkFVTFRfV0lEVEgsIE1JTl9IRUlHSFQpO1xuICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLnVwZGF0ZVBvc2l0aW9uKERFRkFVTFRfUE9TSVRJT04pO1xuICAgICAgICB0aGlzLmRyYWdSZWYucmVzZXQoKTtcbiAgICAgICAgdGhpcy5kcmFnUmVmLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXNpemFibGVEcmFnZ2FibGVEaWFsb2cuZGV0YWNoKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ1xuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nc09wZW4tLTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlhbG9nU2l6ZShkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50Pik6IElEaWFsb2dEaW1lbnNpb25zIHtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGdldENvbXB1dGVkU3R5bGUoXG4gICAgICAoPEhUTUxFbGVtZW50PnRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpYWxvZ1JlZi5pZCkpLnBhcmVudEVsZW1lbnQsXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgfTtcbiAgfVxufVxuIl19
|