@covalent/markdown-navigator 6.4.0 → 6.4.2

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.
@@ -1,137 +0,0 @@
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