@plait/core 0.0.40 → 0.0.42
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/board/board.component.d.ts +6 -9
- package/esm2020/board/board.component.mjs +22 -66
- package/esm2020/interfaces/board.mjs +1 -1
- package/esm2020/plugins/with-history.mjs +2 -2
- package/esm2020/plugins/with-move.mjs +70 -0
- package/esm2020/utils/board.mjs +2 -2
- package/esm2020/utils/weak-maps.mjs +2 -1
- package/fesm2015/plait-core.mjs +85 -63
- package/fesm2015/plait-core.mjs.map +1 -1
- package/fesm2020/plait-core.mjs +89 -66
- package/fesm2020/plait-core.mjs.map +1 -1
- package/interfaces/board.d.ts +0 -1
- package/package.json +1 -1
- package/plugins/with-history.d.ts +1 -1
- package/plugins/with-move.d.ts +2 -0
- package/utils/weak-maps.d.ts +2 -0
|
@@ -2,14 +2,13 @@ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges,
|
|
|
2
2
|
import { RoughSVG } from 'roughjs/bin/svg';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { BaseCursorStatus } from '../interfaces';
|
|
5
|
-
import {
|
|
5
|
+
import { PlaitBoard, PlaitBoardChangeEvent } from '../interfaces/board';
|
|
6
6
|
import { PlaitElement } from '../interfaces/element';
|
|
7
7
|
import { PlaitPlugin } from '../interfaces/plugin';
|
|
8
8
|
import { Viewport } from '../interfaces/viewport';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export declare class PlaitBoardComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {
|
|
11
|
-
|
|
12
|
-
private elementRef;
|
|
11
|
+
cdr: ChangeDetectorRef;
|
|
13
12
|
private renderer2;
|
|
14
13
|
hasInitialized: boolean;
|
|
15
14
|
get hostClass(): string;
|
|
@@ -20,7 +19,7 @@ export declare class PlaitBoardComponent implements OnInit, OnChanges, AfterView
|
|
|
20
19
|
toolbarTemplateRef: TemplateRef<any>;
|
|
21
20
|
private _viewZoom;
|
|
22
21
|
get viewZoom(): number;
|
|
23
|
-
|
|
22
|
+
isMoving: boolean;
|
|
24
23
|
get isMoveMode(): boolean;
|
|
25
24
|
get host(): SVGElement;
|
|
26
25
|
get isFocused(): import("../interfaces").Selection | null;
|
|
@@ -32,8 +31,9 @@ export declare class PlaitBoardComponent implements OnInit, OnChanges, AfterView
|
|
|
32
31
|
plaitChange: EventEmitter<PlaitBoardChangeEvent>;
|
|
33
32
|
plaitBoardInitialized: EventEmitter<PlaitBoard>;
|
|
34
33
|
get readonly(): boolean;
|
|
34
|
+
get moving(): boolean;
|
|
35
35
|
get focused(): import("../interfaces").Selection | null;
|
|
36
|
-
constructor(cdr: ChangeDetectorRef,
|
|
36
|
+
constructor(cdr: ChangeDetectorRef, renderer2: Renderer2);
|
|
37
37
|
ngOnInit(): void;
|
|
38
38
|
ngOnChanges(changes: SimpleChanges): void;
|
|
39
39
|
ngAfterViewInit(): void;
|
|
@@ -42,10 +42,6 @@ export declare class PlaitBoardComponent implements OnInit, OnChanges, AfterView
|
|
|
42
42
|
refreshViewport(): void;
|
|
43
43
|
updateViewport(): void;
|
|
44
44
|
trackBy: (index: number, element: PlaitElement) => number;
|
|
45
|
-
setCursorStatus(): void;
|
|
46
|
-
initMove(e: MouseEvent): void;
|
|
47
|
-
moving(e: MouseEvent): void;
|
|
48
|
-
moveEnd(): void;
|
|
49
45
|
changeMoveMode(cursorStatus: BaseCursorStatus): void;
|
|
50
46
|
adaptHandle(): void;
|
|
51
47
|
zoomInHandle(): void;
|
|
@@ -53,6 +49,7 @@ export declare class PlaitBoardComponent implements OnInit, OnChanges, AfterView
|
|
|
53
49
|
resetZoomHandel(): void;
|
|
54
50
|
zoomChange(): void;
|
|
55
51
|
ngOnDestroy(): void;
|
|
52
|
+
movingChange(isMoving: boolean): void;
|
|
56
53
|
static ɵfac: i0.ɵɵFactoryDeclaration<PlaitBoardComponent, never>;
|
|
57
54
|
static ɵcmp: i0.ɵɵComponentDeclaration<PlaitBoardComponent, "plait-board", never, { "plaitValue": "plaitValue"; "plaitViewport": "plaitViewport"; "plaitPlugins": "plaitPlugins"; "plaitReadonly": "plaitReadonly"; "plaitAllowClearBoard": "plaitAllowClearBoard"; }, { "plaitChange": "plaitChange"; "plaitBoardInitialized": "plaitBoardInitialized"; }, ["toolbarTemplateRef"], ["*"]>;
|
|
58
55
|
}
|
|
@@ -6,28 +6,24 @@ import { BaseCursorStatus } from '../interfaces';
|
|
|
6
6
|
import { PlaitOperation } from '../interfaces/operation';
|
|
7
7
|
import { createBoard } from '../plugins/create-board';
|
|
8
8
|
import { withBoard } from '../plugins/with-board';
|
|
9
|
-
import {
|
|
9
|
+
import { withHistory } from '../plugins/with-history';
|
|
10
|
+
import { withMove } from '../plugins/with-move';
|
|
10
11
|
import { withSelection } from '../plugins/with-selection';
|
|
11
12
|
import { Transforms } from '../transfroms';
|
|
12
13
|
import { getViewBox, transformViewZoom, transformZoom, updateCursorStatus } from '../utils/board';
|
|
13
|
-
import { BOARD_TO_ON_CHANGE, HOST_TO_ROUGH_SVG, IS_TEXT_EDITABLE } from '../utils/weak-maps';
|
|
14
|
+
import { BOARD_TO_ON_CHANGE, HOST_TO_ROUGH_SVG, IS_TEXT_EDITABLE, PLAIT_BOARD_TO_COMPONENT } from '../utils/weak-maps';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
import * as i1 from "../core/toolbar/toolbar.component";
|
|
16
17
|
import * as i2 from "../core/element/element.component";
|
|
17
18
|
import * as i3 from "@angular/common";
|
|
18
19
|
export class PlaitBoardComponent {
|
|
19
|
-
constructor(cdr,
|
|
20
|
+
constructor(cdr, renderer2) {
|
|
20
21
|
this.cdr = cdr;
|
|
21
|
-
this.elementRef = elementRef;
|
|
22
22
|
this.renderer2 = renderer2;
|
|
23
23
|
this.hasInitialized = false;
|
|
24
24
|
this.destroy$ = new Subject();
|
|
25
25
|
this._viewZoom = 100;
|
|
26
|
-
this.
|
|
27
|
-
isMoving: false,
|
|
28
|
-
x: 0,
|
|
29
|
-
y: 0
|
|
30
|
-
};
|
|
26
|
+
this.isMoving = false;
|
|
31
27
|
this.plaitValue = [];
|
|
32
28
|
this.plaitPlugins = [];
|
|
33
29
|
this.plaitReadonly = false;
|
|
@@ -60,6 +56,9 @@ export class PlaitBoardComponent {
|
|
|
60
56
|
get readonly() {
|
|
61
57
|
return this.plaitReadonly;
|
|
62
58
|
}
|
|
59
|
+
get moving() {
|
|
60
|
+
return this.board.cursor === BaseCursorStatus.move && this.isMoving;
|
|
61
|
+
}
|
|
63
62
|
get focused() {
|
|
64
63
|
return this.isFocused;
|
|
65
64
|
}
|
|
@@ -69,6 +68,7 @@ export class PlaitBoardComponent {
|
|
|
69
68
|
this.initializePlugins();
|
|
70
69
|
this.initializeEvents();
|
|
71
70
|
this.updateViewport();
|
|
71
|
+
PLAIT_BOARD_TO_COMPONENT.set(this.board, this);
|
|
72
72
|
BOARD_TO_ON_CHANGE.set(this.board, () => {
|
|
73
73
|
this.cdr.detectChanges();
|
|
74
74
|
const changeEvent = {
|
|
@@ -97,7 +97,7 @@ export class PlaitBoardComponent {
|
|
|
97
97
|
}
|
|
98
98
|
initializePlugins() {
|
|
99
99
|
const options = { readonly: this.plaitReadonly, allowClearBoard: this.plaitAllowClearBoard };
|
|
100
|
-
let board =
|
|
100
|
+
let board = withMove(withHistory(withSelection(withBoard(createBoard(this.host, this.plaitValue, options)))));
|
|
101
101
|
this.plaitPlugins.forEach(plugin => {
|
|
102
102
|
board = plugin(board);
|
|
103
103
|
});
|
|
@@ -111,20 +111,16 @@ export class PlaitBoardComponent {
|
|
|
111
111
|
.pipe(takeUntil(this.destroy$))
|
|
112
112
|
.subscribe((event) => {
|
|
113
113
|
this.board.mousedown(event);
|
|
114
|
-
this.setCursorStatus();
|
|
115
|
-
this.isFocused && this.isMoveMode && this.initMove(event);
|
|
116
114
|
});
|
|
117
115
|
fromEvent(this.host, 'mousemove')
|
|
118
116
|
.pipe(takeUntil(this.destroy$))
|
|
119
117
|
.subscribe((event) => {
|
|
120
118
|
this.board.mousemove(event);
|
|
121
|
-
this.isFocused && this.isMoveMode && this.plaitBoardMove.isMoving && this.moving(event);
|
|
122
119
|
});
|
|
123
120
|
fromEvent(document, 'mouseup')
|
|
124
121
|
.pipe(takeUntil(this.destroy$))
|
|
125
122
|
.subscribe((event) => {
|
|
126
123
|
this.board.globalMouseup(event);
|
|
127
|
-
this.isFocused && this.moveEnd();
|
|
128
124
|
});
|
|
129
125
|
fromEvent(this.host, 'dblclick')
|
|
130
126
|
.pipe(takeUntil(this.destroy$))
|
|
@@ -150,10 +146,6 @@ export class PlaitBoardComponent {
|
|
|
150
146
|
}))
|
|
151
147
|
.subscribe((event) => {
|
|
152
148
|
this.board?.keydown(event);
|
|
153
|
-
if (this.isFocused && event.code === 'Space') {
|
|
154
|
-
this.changeMoveMode(BaseCursorStatus.move);
|
|
155
|
-
event.preventDefault();
|
|
156
|
-
}
|
|
157
149
|
});
|
|
158
150
|
fromEvent(document, 'keyup')
|
|
159
151
|
.pipe(takeUntil(this.destroy$), filter(() => {
|
|
@@ -161,7 +153,6 @@ export class PlaitBoardComponent {
|
|
|
161
153
|
}))
|
|
162
154
|
.subscribe((event) => {
|
|
163
155
|
this.board?.keyup(event);
|
|
164
|
-
this.isFocused && !this.plaitReadonly && event.code === 'Space' && this.changeMoveMode(BaseCursorStatus.select);
|
|
165
156
|
});
|
|
166
157
|
fromEvent(document, 'copy')
|
|
167
158
|
.pipe(takeUntil(this.destroy$), filter(() => {
|
|
@@ -200,35 +191,6 @@ export class PlaitBoardComponent {
|
|
|
200
191
|
const viewBox = getViewBox(this.board);
|
|
201
192
|
this.renderer2.setAttribute(this.host, 'viewBox', `${viewBox.minX}, ${viewBox.minY}, ${viewBox.width}, ${viewBox.height}`);
|
|
202
193
|
}
|
|
203
|
-
setCursorStatus() {
|
|
204
|
-
if (this.plaitReadonly) {
|
|
205
|
-
this.changeMoveMode(BaseCursorStatus.move);
|
|
206
|
-
}
|
|
207
|
-
else if (!this.isFocused) {
|
|
208
|
-
this.changeMoveMode(BaseCursorStatus.select);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
initMove(e) {
|
|
212
|
-
this.plaitBoardMove.isMoving = true;
|
|
213
|
-
this.plaitBoardMove.x = e.x;
|
|
214
|
-
this.plaitBoardMove.y = e.y;
|
|
215
|
-
this.cdr.detectChanges();
|
|
216
|
-
}
|
|
217
|
-
moving(e) {
|
|
218
|
-
const viewport = this.board?.viewport;
|
|
219
|
-
Transforms.setViewport(this.board, {
|
|
220
|
-
...viewport,
|
|
221
|
-
offsetX: viewport.offsetX + ((e.x - this.plaitBoardMove.x) * 100) / this._viewZoom,
|
|
222
|
-
offsetY: viewport.offsetY + ((e.y - this.plaitBoardMove.y) * 100) / this._viewZoom
|
|
223
|
-
});
|
|
224
|
-
this.plaitBoardMove.x = e.x;
|
|
225
|
-
this.plaitBoardMove.y = e.y;
|
|
226
|
-
}
|
|
227
|
-
moveEnd() {
|
|
228
|
-
this.plaitBoardMove.isMoving = false;
|
|
229
|
-
this.plaitBoardMove.x = 0;
|
|
230
|
-
this.plaitBoardMove.y = 0;
|
|
231
|
-
}
|
|
232
194
|
// 拖拽模式
|
|
233
195
|
changeMoveMode(cursorStatus) {
|
|
234
196
|
updateCursorStatus(this.board, cursorStatus);
|
|
@@ -276,16 +238,13 @@ export class PlaitBoardComponent {
|
|
|
276
238
|
this.destroy$.complete();
|
|
277
239
|
HOST_TO_ROUGH_SVG.delete(this.host);
|
|
278
240
|
}
|
|
241
|
+
movingChange(isMoving) {
|
|
242
|
+
this.isMoving = isMoving;
|
|
243
|
+
}
|
|
279
244
|
}
|
|
280
|
-
PlaitBoardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PlaitBoardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.
|
|
281
|
-
PlaitBoardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PlaitBoardComponent, selector: "plait-board", inputs: { plaitValue: "plaitValue", plaitViewport: "plaitViewport", plaitPlugins: "plaitPlugins", plaitReadonly: "plaitReadonly", plaitAllowClearBoard: "plaitAllowClearBoard" }, outputs: { plaitChange: "plaitChange", plaitBoardInitialized: "plaitBoardInitialized" }, host: { properties: { "class": "this.hostClass", "class.readonly": "this.readonly", "class.focused": "this.focused" } }, queries: [{ propertyName: "toolbarTemplateRef", first: true, predicate: ["plaitToolbar"], descendants: true }], viewQueries: [{ propertyName: "svg", first: true, predicate: ["svg"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
282
|
-
<svg
|
|
283
|
-
#svg
|
|
284
|
-
width="100%"
|
|
285
|
-
height="100%"
|
|
286
|
-
style="position: relative"
|
|
287
|
-
[style.cursor]="isMoveMode ? (plaitBoardMove.isMoving ? 'grabbing' : 'grab') : 'auto'"
|
|
288
|
-
></svg>
|
|
245
|
+
PlaitBoardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PlaitBoardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
246
|
+
PlaitBoardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PlaitBoardComponent, selector: "plait-board", inputs: { plaitValue: "plaitValue", plaitViewport: "plaitViewport", plaitPlugins: "plaitPlugins", plaitReadonly: "plaitReadonly", plaitAllowClearBoard: "plaitAllowClearBoard" }, outputs: { plaitChange: "plaitChange", plaitBoardInitialized: "plaitBoardInitialized" }, host: { properties: { "class": "this.hostClass", "class.readonly": "this.readonly", "class.moving": "this.moving", "class.focused": "this.focused" } }, queries: [{ propertyName: "toolbarTemplateRef", first: true, predicate: ["plaitToolbar"], descendants: true }], viewQueries: [{ propertyName: "svg", first: true, predicate: ["svg"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
247
|
+
<svg #svg width="100%" height="100%" style="position: relative"></svg>
|
|
289
248
|
<plait-toolbar
|
|
290
249
|
*ngIf="isFocused && !toolbarTemplateRef"
|
|
291
250
|
[cursorStatus]="board.cursor"
|
|
@@ -312,13 +271,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
312
271
|
args: [{
|
|
313
272
|
selector: 'plait-board',
|
|
314
273
|
template: `
|
|
315
|
-
<svg
|
|
316
|
-
#svg
|
|
317
|
-
width="100%"
|
|
318
|
-
height="100%"
|
|
319
|
-
style="position: relative"
|
|
320
|
-
[style.cursor]="isMoveMode ? (plaitBoardMove.isMoving ? 'grabbing' : 'grab') : 'auto'"
|
|
321
|
-
></svg>
|
|
274
|
+
<svg #svg width="100%" height="100%" style="position: relative"></svg>
|
|
322
275
|
<plait-toolbar
|
|
323
276
|
*ngIf="isFocused && !toolbarTemplateRef"
|
|
324
277
|
[cursorStatus]="board.cursor"
|
|
@@ -342,7 +295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
342
295
|
`,
|
|
343
296
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
344
297
|
}]
|
|
345
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.
|
|
298
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { hostClass: [{
|
|
346
299
|
type: HostBinding,
|
|
347
300
|
args: ['class']
|
|
348
301
|
}], svg: [{
|
|
@@ -368,8 +321,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
368
321
|
}], readonly: [{
|
|
369
322
|
type: HostBinding,
|
|
370
323
|
args: ['class.readonly']
|
|
324
|
+
}], moving: [{
|
|
325
|
+
type: HostBinding,
|
|
326
|
+
args: ['class.moving']
|
|
371
327
|
}], focused: [{
|
|
372
328
|
type: HostBinding,
|
|
373
329
|
args: ['class.focused']
|
|
374
330
|
}] } });
|
|
375
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2JvYXJkL2JvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUlOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxtQkFBbUIsQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFtQzdGLE1BQU0sT0FBTyxtQkFBbUI7SUF3RTVCLFlBQW9CLEdBQXNCLEVBQVUsVUFB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QUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFHSCxRQUFRO3NCQURYLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU16QixPQUFPO3NCQURWLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgcm91Z2ggZnJvbSAncm91Z2hqcy9iaW4vcm91Z2gnO1xuaW1wb3J0IHsgUm91Z2hTVkcgfSBmcm9tICdyb3VnaGpzL2Jpbi9zdmcnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhc2VDdXJzb3JTdGF0dXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0Qm9hcmRNb3ZlLCBQbGFpdEJvYXJkLCBQbGFpdEJvYXJkQ2hhbmdlRXZlbnQsIFBsYWl0Qm9hcmRPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wZXJhdGlvbic7XG5pbXBvcnQgeyBQbGFpdFBsdWdpbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGx1Z2luJztcbmltcG9ydCB7IFZpZXdwb3J0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy92aWV3cG9ydCc7XG5pbXBvcnQgeyBjcmVhdGVCb2FyZCB9IGZyb20gJy4uL3BsdWdpbnMvY3JlYXRlLWJvYXJkJztcbmltcG9ydCB7IHdpdGhCb2FyZCB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1ib2FyZCc7XG5pbXBvcnQgeyB3aXRoSGlzdHJveSB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1oaXN0b3J5JztcbmltcG9ydCB7IHdpdGhTZWxlY3Rpb24gfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtc2VsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zZm9ybXMgfSBmcm9tICcuLi90cmFuc2Zyb21zJztcbmltcG9ydCB7IGdldFZpZXdCb3gsIHRyYW5zZm9ybVZpZXdab29tLCB0cmFuc2Zvcm1ab29tLCB1cGRhdGVDdXJzb3JTdGF0dXMgfSBmcm9tICcuLi91dGlscy9ib2FyZCc7XG5pbXBvcnQgeyBCT0FSRF9UT19PTl9DSEFOR0UsIEhPU1RfVE9fUk9VR0hfU1ZHLCBJU19URVhUX0VESVRBQkxFIH0gZnJvbSAnLi4vdXRpbHMvd2Vhay1tYXBzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwbGFpdC1ib2FyZCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHN2Z1xuICAgICAgICAgICAgI3N2Z1xuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIlxuICAgICAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJpc01vdmVNb2RlID8gKHBsYWl0Qm9hcmRNb3ZlLmlzTW92aW5nID8gJ2dyYWJiaW5nJyA6ICdncmFiJykgOiAnYXV0bydcIlxuICAgICAgICA+PC9zdmc+XG4gICAgICAgIDxwbGFpdC10b29sYmFyXG4gICAgICAgICAgICAqbmdJZj1cImlzRm9jdXNlZCAmJiAhdG9vbGJhclRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgIFtjdXJzb3JTdGF0dXNdPVwiYm9hcmQuY3Vyc29yXCJcbiAgICAgICAgICAgIFt2aWV3Wm9vbV09XCJ2aWV3Wm9vbVwiXG4gICAgICAgICAgICAobW92ZUhhbmRsZSk9XCJjaGFuZ2VNb3ZlTW9kZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChhZGFwdEhhbmRsZSk9XCJhZGFwdEhhbmRsZSgpXCJcbiAgICAgICAgICAgICh6b29tSW5IYW5kbGUpPVwiem9vbUluSGFuZGxlKClcIlxuICAgICAgICAgICAgKHpvb21PdXRIYW5kbGUpPVwiem9vbU91dEhhbmRsZSgpXCJcbiAgICAgICAgICAgIChyZXNldFpvb21IYW5kZWwpPVwicmVzZXRab29tSGFuZGVsKClcIlxuICAgICAgICA+PC9wbGFpdC10b29sYmFyPlxuICAgICAgICA8cGxhaXQtZWxlbWVudFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYm9hcmQuY2hpbGRyZW47IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICBbZWxlbWVudF09XCJpdGVtXCJcbiAgICAgICAgICAgIFtib2FyZF09XCJib2FyZFwiXG4gICAgICAgICAgICBbdmlld3BvcnRdPVwiYm9hcmQudmlld3BvcnRcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJib2FyZC5zZWxlY3Rpb25cIlxuICAgICAgICAgICAgW2hvc3RdPVwiaG9zdFwiXG4gICAgICAgID48L3BsYWl0LWVsZW1lbnQ+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBsYWl0Qm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBoYXNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGhvc3RDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGBwbGFpdC1ib2FyZC1jb250YWluZXIgJHt0aGlzLmJvYXJkLmN1cnNvcn1gO1xuICAgIH1cblxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIHJvdWdoU1ZHITogUm91Z2hTVkc7XG5cbiAgICBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3N2ZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgc3ZnITogRWxlbWVudFJlZjtcblxuICAgIEBDb250ZW50Q2hpbGQoJ3BsYWl0VG9vbGJhcicpXG4gICAgcHVibGljIHRvb2xiYXJUZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcml2YXRlIF92aWV3Wm9vbTogbnVtYmVyID0gMTAwO1xuXG4gICAgcHVibGljIGdldCB2aWV3Wm9vbSgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2Wm9vbSA9IHRyYW5zZm9ybVpvb20odGhpcy5ib2FyZC52aWV3cG9ydC56b29tKTtcbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdab29tICE9PSB2Wm9vbSkge1xuICAgICAgICAgICAgdGhpcy5fdmlld1pvb20gPSB2Wm9vbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdlpvb207XG4gICAgfVxuXG4gICAgcHVibGljIHBsYWl0Qm9hcmRNb3ZlOiBQbGFpdEJvYXJkTW92ZSA9IHtcbiAgICAgICAgaXNNb3Zpbmc6IGZhbHNlLFxuICAgICAgICB4OiAwLFxuICAgICAgICB5OiAwXG4gICAgfTtcblxuICAgIHB1YmxpYyBnZXQgaXNNb3ZlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm9hcmQuY3Vyc29yID09PSBCYXNlQ3Vyc29yU3RhdHVzLm1vdmU7XG4gICAgfVxuXG4gICAgZ2V0IGhvc3QoKTogU1ZHRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnN2Zy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBpc0ZvY3VzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkPy5zZWxlY3Rpb247XG4gICAgfVxuXG4gICAgQElucHV0KCkgcGxhaXRWYWx1ZTogUGxhaXRFbGVtZW50W10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHBsYWl0Vmlld3BvcnQhOiBWaWV3cG9ydDtcblxuICAgIEBJbnB1dCgpIHBsYWl0UGx1Z2luczogUGxhaXRQbHVnaW5bXSA9IFtdO1xuXG4gICAgQElucHV0KCkgcGxhaXRSZWFkb25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgcGxhaXRBbGxvd0NsZWFyQm9hcmQgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBwbGFpdENoYW5nZTogRXZlbnRFbWl0dGVyPFBsYWl0Qm9hcmRDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgcGxhaXRCb2FyZEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8UGxhaXRCb2FyZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlYWRvbmx5JylcbiAgICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYWl0UmVhZG9ubHk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb2N1c2VkJylcbiAgICBnZXQgZm9jdXNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGb2N1c2VkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJvdWdoU1ZHID0gcm91Z2guc3ZnKHRoaXMuaG9zdCBhcyBTVkdTVkdFbGVtZW50LCB7IG9wdGlvbnM6IHsgcm91Z2huZXNzOiAwLCBzdHJva2VXaWR0aDogMSB9IH0pO1xuICAgICAgICBIT1NUX1RPX1JPVUdIX1NWRy5zZXQodGhpcy5ob3N0LCByb3VnaFNWRyk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBsdWdpbnMoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRXZlbnRzKCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnQoKTtcbiAgICAgICAgQk9BUkRfVE9fT05fQ0hBTkdFLnNldCh0aGlzLmJvYXJkLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogUGxhaXRCb2FyZENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLmJvYXJkLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbnM6IHRoaXMuYm9hcmQub3BlcmF0aW9ucyxcbiAgICAgICAgICAgICAgICB2aWV3cG9ydDogdGhpcy5ib2FyZC52aWV3cG9ydCxcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb246IHRoaXMuYm9hcmQuc2VsZWN0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gdXBkYXRlIHZpZXdCb3hcbiAgICAgICAgICAgIGlmICh0aGlzLmJvYXJkLm9wZXJhdGlvbnMuc29tZShvcCA9PiBQbGFpdE9wZXJhdGlvbi5pc1NldFZpZXdwb3J0T3BlcmF0aW9uKG9wKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBsYWl0Q2hhbmdlLmVtaXQoY2hhbmdlRXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5oYXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZSA9IGNoYW5nZXNbJ3BsYWl0VmFsdWUnXTtcbiAgICAgICAgaWYgKHZhbHVlQ2hhbmdlICYmIHRoaXMuaGFzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYm9hcmQuY2hpbGRyZW4gPSB2YWx1ZUNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wbGFpdEJvYXJkSW5pdGlhbGl6ZWQuZW1pdCh0aGlzLmJvYXJkKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplUGx1Z2lucygpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUGxhaXRCb2FyZE9wdGlvbnMgPSB7IHJlYWRvbmx5OiB0aGlzLnBsYWl0UmVhZG9ubHksIGFsbG93Q2xlYXJCb2FyZDogdGhpcy5wbGFpdEFsbG93Q2xlYXJCb2FyZCB9O1xuICAgICAgICBsZXQgYm9hcmQgPSB3aXRoSGlzdHJveSh3aXRoU2VsZWN0aW9uKHdpdGhCb2FyZChjcmVhdGVCb2FyZCh0aGlzLmhvc3QsIHRoaXMucGxhaXRWYWx1ZSwgb3B0aW9ucykpKSk7XG4gICAgICAgIHRoaXMucGxhaXRQbHVnaW5zLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgICAgIGJvYXJkID0gcGx1Z2luKGJvYXJkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYm9hcmQgPSBib2FyZDtcbiAgICAgICAgaWYgKHRoaXMucGxhaXRWaWV3cG9ydCkge1xuICAgICAgICAgICAgdGhpcy5ib2FyZC52aWV3cG9ydCA9IHRoaXMucGxhaXRWaWV3cG9ydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRpYWxpemVFdmVudHMoKSB7XG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmhvc3QsICdtb3VzZWRvd24nKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLm1vdXNlZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDdXJzb3JTdGF0dXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRm9jdXNlZCAmJiB0aGlzLmlzTW92ZU1vZGUgJiYgdGhpcy5pbml0TW92ZShldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5ob3N0LCAnbW91c2Vtb3ZlJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5tb3VzZW1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkICYmIHRoaXMuaXNNb3ZlTW9kZSAmJiB0aGlzLnBsYWl0Qm9hcmRNb3ZlLmlzTW92aW5nICYmIHRoaXMubW92aW5nKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLmdsb2JhbE1vdXNldXAoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkICYmIHRoaXMubW92ZUVuZCgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ2RibGNsaWNrJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5kYmxjbGljayhldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8V2hlZWxFdmVudD4odGhpcy5ob3N0LCAnd2hlZWwnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLmJvYXJkLnZpZXdwb3J0O1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldFZpZXdwb3J0KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnZpZXdwb3J0LFxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogdmlld3BvcnQ/Lm9mZnNldFggLSBldmVudC5kZWx0YVgsXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRZOiB2aWV3cG9ydD8ub2Zmc2V0WSAtIGV2ZW50LmRlbHRhWVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8ua2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkICYmIGV2ZW50LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VNb3ZlTW9kZShCYXNlQ3Vyc29yU3RhdHVzLm1vdmUpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleXVwJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8ua2V5dXAoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkICYmICF0aGlzLnBsYWl0UmVhZG9ubHkgJiYgZXZlbnQuY29kZSA9PT0gJ1NwYWNlJyAmJiB0aGlzLmNoYW5nZU1vdmVNb2RlKEJhc2VDdXJzb3JTdGF0dXMuc2VsZWN0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxDbGlwYm9hcmRFdmVudD4oZG9jdW1lbnQsICdjb3B5JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uc2V0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAncGFzdGUnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhSVNfVEVYVF9FRElUQUJMRS5nZXQodGhpcy5ib2FyZCkgJiYgISF0aGlzLmJvYXJkLnNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uaW5zZXJ0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAnY3V0JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uc2V0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uZGVsZXRlRnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB3aW5kb3cub25yZXNpemUgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hWaWV3cG9ydCgpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJlZnJlc2hWaWV3cG9ydCgpIHtcbiAgICAgICAgY29uc3Qgdmlld0JveE1vZGVsID0gZ2V0Vmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgY29uc3Qgdmlld0JveFZhbHVlcyA9IHRoaXMuaG9zdC5nZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnKT8uc3BsaXQoJywnKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgdGhpcy5ob3N0LFxuICAgICAgICAgICAgJ3ZpZXdCb3gnLFxuICAgICAgICAgICAgYCR7dmlld0JveFZhbHVlc1swXS50cmltKCl9LCAke3ZpZXdCb3hWYWx1ZXNbMV0udHJpbSgpfSwgJHt2aWV3Qm94TW9kZWwud2lkdGh9LCAke3ZpZXdCb3hNb2RlbC5oZWlnaHR9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpZXdwb3J0KCkge1xuICAgICAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0QXR0cmlidXRlKHRoaXMuaG9zdCwgJ3ZpZXdCb3gnLCBgJHt2aWV3Qm94Lm1pblh9LCAke3ZpZXdCb3gubWluWX0sICR7dmlld0JveC53aWR0aH0sICR7dmlld0JveC5oZWlnaHR9YCk7XG4gICAgfVxuXG4gICAgdHJhY2tCeSA9IChpbmRleDogbnVtYmVyLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH07XG5cbiAgICBzZXRDdXJzb3JTdGF0dXMoKSB7XG4gICAgICAgIGlmICh0aGlzLnBsYWl0UmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlTW92ZU1vZGUoQmFzZUN1cnNvclN0YXR1cy5tb3ZlKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlTW92ZU1vZGUoQmFzZUN1cnNvclN0YXR1cy5zZWxlY3QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdE1vdmUoZTogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnBsYWl0Qm9hcmRNb3ZlLmlzTW92aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wbGFpdEJvYXJkTW92ZS54ID0gZS54O1xuICAgICAgICB0aGlzLnBsYWl0Qm9hcmRNb3ZlLnkgPSBlLnk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBtb3ZpbmcoZTogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuYm9hcmQ/LnZpZXdwb3J0IGFzIFZpZXdwb3J0O1xuICAgICAgICBUcmFuc2Zvcm1zLnNldFZpZXdwb3J0KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIC4uLnZpZXdwb3J0LFxuICAgICAgICAgICAgb2Zmc2V0WDogdmlld3BvcnQub2Zmc2V0WCArICgoZS54IC0gdGhpcy5wbGFpdEJvYXJkTW92ZS54KSAqIDEwMCkgLyB0aGlzLl92aWV3Wm9vbSxcbiAgICAgICAgICAgIG9mZnNldFk6IHZpZXdwb3J0Lm9mZnNldFkgKyAoKGUueSAtIHRoaXMucGxhaXRCb2FyZE1vdmUueSkgKiAxMDApIC8gdGhpcy5fdmlld1pvb21cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGxhaXRCb2FyZE1vdmUueCA9IGUueDtcbiAgICAgICAgdGhpcy5wbGFpdEJvYXJkTW92ZS55ID0gZS55O1xuICAgIH1cblxuICAgIG1vdmVFbmQoKSB7XG4gICAgICAgIHRoaXMucGxhaXRCb2FyZE1vdmUuaXNNb3ZpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wbGFpdEJvYXJkTW92ZS54ID0gMDtcbiAgICAgICAgdGhpcy5wbGFpdEJvYXJkTW92ZS55ID0gMDtcbiAgICB9XG5cbiAgICAvLyDmi5bmi73mqKHlvI9cbiAgICBjaGFuZ2VNb3ZlTW9kZShjdXJzb3JTdGF0dXM6IEJhc2VDdXJzb3JTdGF0dXMpIHtcbiAgICAgICAgdXBkYXRlQ3Vyc29yU3RhdHVzKHRoaXMuYm9hcmQsIGN1cnNvclN0YXR1cyk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIOmAguW6lOeUu+W4g1xuICAgIGFkYXB0SGFuZGxlKCkge1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuYm9hcmQ/LnZpZXdwb3J0IGFzIFZpZXdwb3J0O1xuICAgICAgICBUcmFuc2Zvcm1zLnNldFZpZXdwb3J0KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIC4uLnZpZXdwb3J0LFxuICAgICAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgICAgIG9mZnNldFk6IDBcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVzZXRab29tSGFuZGVsKCk7XG4gICAgfVxuXG4gICAgLy8g5pS+5aSnXG4gICAgem9vbUluSGFuZGxlKCkge1xuICAgICAgICBpZiAodGhpcy5fdmlld1pvb20gPj0gNDAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdmlld1pvb20gKz0gMTA7XG4gICAgICAgIHRoaXMuem9vbUNoYW5nZSgpO1xuICAgIH1cblxuICAgIC8vIOe8qeWwj1xuICAgIHpvb21PdXRIYW5kbGUoKSB7XG4gICAgICAgIGlmICh0aGlzLl92aWV3Wm9vbSA8PSAyMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ZpZXdab29tIC09IDEwO1xuICAgICAgICB0aGlzLnpvb21DaGFuZ2UoKTtcbiAgICB9XG5cbiAgICByZXNldFpvb21IYW5kZWwoKSB7XG4gICAgICAgIHRoaXMuX3ZpZXdab29tID0gMTAwO1xuICAgICAgICB0aGlzLnpvb21DaGFuZ2UoKTtcbiAgICB9XG5cbiAgICB6b29tQ2hhbmdlKCkge1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuYm9hcmQ/LnZpZXdwb3J0IGFzIFZpZXdwb3J0O1xuICAgICAgICBUcmFuc2Zvcm1zLnNldFZpZXdwb3J0KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIC4uLnZpZXdwb3J0LFxuICAgICAgICAgICAgem9vbTogdHJhbnNmb3JtVmlld1pvb20odGhpcy5fdmlld1pvb20pXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICBIT1NUX1RPX1JPVUdIX1NWRy5kZWxldGUodGhpcy5ob3N0KTtcbiAgICB9XG59XG4iXX0=
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2JvYXJkL2JvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUlOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxtQkFBbUIsQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7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QVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FzQlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEO2dJQUtPLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPO2dCQVlwQixHQUFHO3NCQURGLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJM0Isa0JBQWtCO3NCQUR4QixZQUFZO3VCQUFDLGNBQWM7Z0JBMkJuQixVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFHSCxRQUFRO3NCQURYLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU16QixNQUFNO3NCQURULFdBQVc7dUJBQUMsY0FBYztnQkFNdkIsT0FBTztzQkFEVixXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHJvdWdoIGZyb20gJ3JvdWdoanMvYmluL3JvdWdoJztcbmltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNlQ3Vyc29yU3RhdHVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEJvYXJkQ2hhbmdlRXZlbnQsIFBsYWl0Qm9hcmRPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wZXJhdGlvbic7XG5pbXBvcnQgeyBQbGFpdFBsdWdpbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGx1Z2luJztcbmltcG9ydCB7IFZpZXdwb3J0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy92aWV3cG9ydCc7XG5pbXBvcnQgeyBjcmVhdGVCb2FyZCB9IGZyb20gJy4uL3BsdWdpbnMvY3JlYXRlLWJvYXJkJztcbmltcG9ydCB7IHdpdGhCb2FyZCB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1ib2FyZCc7XG5pbXBvcnQgeyB3aXRoSGlzdG9yeSB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1oaXN0b3J5JztcbmltcG9ydCB7IHdpdGhNb3ZlIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1vdmUnO1xuaW1wb3J0IHsgd2l0aFNlbGVjdGlvbiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZnJvbXMnO1xuaW1wb3J0IHsgZ2V0Vmlld0JveCwgdHJhbnNmb3JtVmlld1pvb20sIHRyYW5zZm9ybVpvb20sIHVwZGF0ZUN1cnNvclN0YXR1cyB9IGZyb20gJy4uL3V0aWxzL2JvYXJkJztcbmltcG9ydCB7IEJPQVJEX1RPX09OX0NIQU5HRSwgSE9TVF9UT19ST1VHSF9TVkcsIElTX1RFWFRfRURJVEFCTEUsIFBMQUlUX0JPQVJEX1RPX0NPTVBPTkVOVCB9IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtYm9hcmQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxzdmcgI3N2ZyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj48L3N2Zz5cbiAgICAgICAgPHBsYWl0LXRvb2xiYXJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNGb2N1c2VkICYmICF0b29sYmFyVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgW2N1cnNvclN0YXR1c109XCJib2FyZC5jdXJzb3JcIlxuICAgICAgICAgICAgW3ZpZXdab29tXT1cInZpZXdab29tXCJcbiAgICAgICAgICAgIChtb3ZlSGFuZGxlKT1cImNoYW5nZU1vdmVNb2RlKCRldmVudClcIlxuICAgICAgICAgICAgKGFkYXB0SGFuZGxlKT1cImFkYXB0SGFuZGxlKClcIlxuICAgICAgICAgICAgKHpvb21JbkhhbmRsZSk9XCJ6b29tSW5IYW5kbGUoKVwiXG4gICAgICAgICAgICAoem9vbU91dEhhbmRsZSk9XCJ6b29tT3V0SGFuZGxlKClcIlxuICAgICAgICAgICAgKHJlc2V0Wm9vbUhhbmRlbCk9XCJyZXNldFpvb21IYW5kZWwoKVwiXG4gICAgICAgID48L3BsYWl0LXRvb2xiYXI+XG4gICAgICAgIDxwbGFpdC1lbGVtZW50XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBib2FyZC5jaGlsZHJlbjsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgIFtlbGVtZW50XT1cIml0ZW1cIlxuICAgICAgICAgICAgW2JvYXJkXT1cImJvYXJkXCJcbiAgICAgICAgICAgIFt2aWV3cG9ydF09XCJib2FyZC52aWV3cG9ydFwiXG4gICAgICAgICAgICBbc2VsZWN0aW9uXT1cImJvYXJkLnNlbGVjdGlvblwiXG4gICAgICAgICAgICBbaG9zdF09XCJob3N0XCJcbiAgICAgICAgPjwvcGxhaXQtZWxlbWVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGxhaXRCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIGhhc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgaG9zdENsYXNzKCkge1xuICAgICAgICByZXR1cm4gYHBsYWl0LWJvYXJkLWNvbnRhaW5lciAke3RoaXMuYm9hcmQuY3Vyc29yfWA7XG4gICAgfVxuXG4gICAgYm9hcmQhOiBQbGFpdEJvYXJkO1xuXG4gICAgcm91Z2hTVkchOiBSb3VnaFNWRztcblxuICAgIGRlc3Ryb3kkOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgQFZpZXdDaGlsZCgnc3ZnJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBzdmchOiBFbGVtZW50UmVmO1xuXG4gICAgQENvbnRlbnRDaGlsZCgncGxhaXRUb29sYmFyJylcbiAgICBwdWJsaWMgdG9vbGJhclRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHByaXZhdGUgX3ZpZXdab29tOiBudW1iZXIgPSAxMDA7XG5cbiAgICBwdWJsaWMgZ2V0IHZpZXdab29tKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZab29tID0gdHJhbnNmb3JtWm9vbSh0aGlzLmJvYXJkLnZpZXdwb3J0Lnpvb20pO1xuICAgICAgICBpZiAodGhpcy5fdmlld1pvb20gIT09IHZab29tKSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Wm9vbSA9IHZab29tO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2Wm9vbTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNNb3Zpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgaXNNb3ZlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm9hcmQuY3Vyc29yID09PSBCYXNlQ3Vyc29yU3RhdHVzLm1vdmU7XG4gICAgfVxuXG4gICAgZ2V0IGhvc3QoKTogU1ZHRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnN2Zy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBpc0ZvY3VzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkPy5zZWxlY3Rpb247XG4gICAgfVxuXG4gICAgQElucHV0KCkgcGxhaXRWYWx1ZTogUGxhaXRFbGVtZW50W10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHBsYWl0Vmlld3BvcnQhOiBWaWV3cG9ydDtcblxuICAgIEBJbnB1dCgpIHBsYWl0UGx1Z2luczogUGxhaXRQbHVnaW5bXSA9IFtdO1xuXG4gICAgQElucHV0KCkgcGxhaXRSZWFkb25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgcGxhaXRBbGxvd0NsZWFyQm9hcmQgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBwbGFpdENoYW5nZTogRXZlbnRFbWl0dGVyPFBsYWl0Qm9hcmRDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgcGxhaXRCb2FyZEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8UGxhaXRCb2FyZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlYWRvbmx5JylcbiAgICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYWl0UmVhZG9ubHk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tb3ZpbmcnKVxuICAgIGdldCBtb3ZpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkLmN1cnNvciA9PT0gQmFzZUN1cnNvclN0YXR1cy5tb3ZlICYmIHRoaXMuaXNNb3Zpbmc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb2N1c2VkJylcbiAgICBnZXQgZm9jdXNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGb2N1c2VkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJvdWdoU1ZHID0gcm91Z2guc3ZnKHRoaXMuaG9zdCBhcyBTVkdTVkdFbGVtZW50LCB7IG9wdGlvbnM6IHsgcm91Z2huZXNzOiAwLCBzdHJva2VXaWR0aDogMSB9IH0pO1xuICAgICAgICBIT1NUX1RPX1JPVUdIX1NWRy5zZXQodGhpcy5ob3N0LCByb3VnaFNWRyk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBsdWdpbnMoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRXZlbnRzKCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnQoKTtcbiAgICAgICAgUExBSVRfQk9BUkRfVE9fQ09NUE9ORU5ULnNldCh0aGlzLmJvYXJkLCB0aGlzKTtcbiAgICAgICAgQk9BUkRfVE9fT05fQ0hBTkdFLnNldCh0aGlzLmJvYXJkLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogUGxhaXRCb2FyZENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLmJvYXJkLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbnM6IHRoaXMuYm9hcmQub3BlcmF0aW9ucyxcbiAgICAgICAgICAgICAgICB2aWV3cG9ydDogdGhpcy5ib2FyZC52aWV3cG9ydCxcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb246IHRoaXMuYm9hcmQuc2VsZWN0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gdXBkYXRlIHZpZXdCb3hcbiAgICAgICAgICAgIGlmICh0aGlzLmJvYXJkLm9wZXJhdGlvbnMuc29tZShvcCA9PiBQbGFpdE9wZXJhdGlvbi5pc1NldFZpZXdwb3J0T3BlcmF0aW9uKG9wKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBsYWl0Q2hhbmdlLmVtaXQoY2hhbmdlRXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5oYXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZSA9IGNoYW5nZXNbJ3BsYWl0VmFsdWUnXTtcbiAgICAgICAgaWYgKHZhbHVlQ2hhbmdlICYmIHRoaXMuaGFzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYm9hcmQuY2hpbGRyZW4gPSB2YWx1ZUNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wbGFpdEJvYXJkSW5pdGlhbGl6ZWQuZW1pdCh0aGlzLmJvYXJkKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplUGx1Z2lucygpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUGxhaXRCb2FyZE9wdGlvbnMgPSB7IHJlYWRvbmx5OiB0aGlzLnBsYWl0UmVhZG9ubHksIGFsbG93Q2xlYXJCb2FyZDogdGhpcy5wbGFpdEFsbG93Q2xlYXJCb2FyZCB9O1xuICAgICAgICBsZXQgYm9hcmQgPSB3aXRoTW92ZSh3aXRoSGlzdG9yeSh3aXRoU2VsZWN0aW9uKHdpdGhCb2FyZChjcmVhdGVCb2FyZCh0aGlzLmhvc3QsIHRoaXMucGxhaXRWYWx1ZSwgb3B0aW9ucykpKSkpO1xuICAgICAgICB0aGlzLnBsYWl0UGx1Z2lucy5mb3JFYWNoKHBsdWdpbiA9PiB7XG4gICAgICAgICAgICBib2FyZCA9IHBsdWdpbihib2FyZCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmJvYXJkID0gYm9hcmQ7XG4gICAgICAgIGlmICh0aGlzLnBsYWl0Vmlld3BvcnQpIHtcbiAgICAgICAgICAgIHRoaXMuYm9hcmQudmlld3BvcnQgPSB0aGlzLnBsYWl0Vmlld3BvcnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0aWFsaXplRXZlbnRzKCkge1xuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5ob3N0LCAnbW91c2Vkb3duJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5tb3VzZWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQubW91c2Vtb3ZlKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLmdsb2JhbE1vdXNldXAoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ2RibGNsaWNrJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5kYmxjbGljayhldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8V2hlZWxFdmVudD4odGhpcy5ob3N0LCAnd2hlZWwnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLmJvYXJkLnZpZXdwb3J0O1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldFZpZXdwb3J0KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnZpZXdwb3J0LFxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogdmlld3BvcnQ/Lm9mZnNldFggLSBldmVudC5kZWx0YVgsXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRZOiB2aWV3cG9ydD8ub2Zmc2V0WSAtIGV2ZW50LmRlbHRhWVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8ua2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXl1cCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFJU19URVhUX0VESVRBQkxFLmdldCh0aGlzLmJvYXJkKSAmJiAhIXRoaXMuYm9hcmQuc2VsZWN0aW9uO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LmtleXVwKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxDbGlwYm9hcmRFdmVudD4oZG9jdW1lbnQsICdjb3B5JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uc2V0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAncGFzdGUnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhSVNfVEVYVF9FRElUQUJMRS5nZXQodGhpcy5ib2FyZCkgJiYgISF0aGlzLmJvYXJkLnNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uaW5zZXJ0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAnY3V0JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uc2V0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uZGVsZXRlRnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB3aW5kb3cub25yZXNpemUgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hWaWV3cG9ydCgpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJlZnJlc2hWaWV3cG9ydCgpIHtcbiAgICAgICAgY29uc3Qgdmlld0JveE1vZGVsID0gZ2V0Vmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgY29uc3Qgdmlld0JveFZhbHVlcyA9IHRoaXMuaG9zdC5nZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnKT8uc3BsaXQoJywnKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgdGhpcy5ob3N0LFxuICAgICAgICAgICAgJ3ZpZXdCb3gnLFxuICAgICAgICAgICAgYCR7dmlld0JveFZhbHVlc1swXS50cmltKCl9LCAke3ZpZXdCb3hWYWx1ZXNbMV0udHJpbSgpfSwgJHt2aWV3Qm94TW9kZWwud2lkdGh9LCAke3ZpZXdCb3hNb2RlbC5oZWlnaHR9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpZXdwb3J0KCkge1xuICAgICAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0QXR0cmlidXRlKHRoaXMuaG9zdCwgJ3ZpZXdCb3gnLCBgJHt2aWV3Qm94Lm1pblh9LCAke3ZpZXdCb3gubWluWX0sICR7dmlld0JveC53aWR0aH0sICR7dmlld0JveC5oZWlnaHR9YCk7XG4gICAgfVxuXG4gICAgdHJhY2tCeSA9IChpbmRleDogbnVtYmVyLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH07XG5cbiAgICAvLyDmi5bmi73mqKHlvI9cbiAgICBjaGFuZ2VNb3ZlTW9kZShjdXJzb3JTdGF0dXM6IEJhc2VDdXJzb3JTdGF0dXMpIHtcbiAgICAgICAgdXBkYXRlQ3Vyc29yU3RhdHVzKHRoaXMuYm9hcmQsIGN1cnNvclN0YXR1cyk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIOmAguW6lOeUu+W4g1xuICAgIGFkYXB0SGFuZGxlKCkge1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuYm9hcmQ/LnZpZXdwb3J0IGFzIFZpZXdwb3J0O1xuICAgICAgICBUcmFuc2Zvcm1zLnNldFZpZXdwb3J0KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIC4uLnZpZXdwb3J0LFxuICAgICAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgICAgIG9mZnNldFk6IDBcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVzZXRab29tSGFuZGVsKCk7XG4gICAgfVxuXG4gICAgLy8g5pS+5aSnXG4gICAgem9vbUluSGFuZGxlKCkge1xuICAgICAgICBpZiAodGhpcy5fdmlld1pvb20gPj0gNDAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdmlld1pvb20gKz0gMTA7XG4gICAgICAgIHRoaXMuem9vbUNoYW5nZSgpO1xuICAgIH1cblxuICAgIC8vIOe8qeWwj1xuICAgIHpvb21PdXRIYW5kbGUoKSB7XG4gICAgICAgIGlmICh0aGlzLl92aWV3Wm9vbSA8PSAyMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ZpZXdab29tIC09IDEwO1xuICAgICAgICB0aGlzLnpvb21DaGFuZ2UoKTtcbiAgICB9XG5cbiAgICByZXNldFpvb21IYW5kZWwoKSB7XG4gICAgICAgIHRoaXMuX3ZpZXdab29tID0gMTAwO1xuICAgICAgICB0aGlzLnpvb21DaGFuZ2UoKTtcbiAgICB9XG5cbiAgICB6b29tQ2hhbmdlKCkge1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuYm9hcmQ/LnZpZXdwb3J0IGFzIFZpZXdwb3J0O1xuICAgICAgICBUcmFuc2Zvcm1zLnNldFZpZXdwb3J0KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIC4uLnZpZXdwb3J0LFxuICAgICAgICAgICAgem9vbTogdHJhbnNmb3JtVmlld1pvb20odGhpcy5fdmlld1pvb20pXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICBIT1NUX1RPX1JPVUdIX1NWRy5kZWxldGUodGhpcy5ob3N0KTtcbiAgICB9XG5cbiAgICBtb3ZpbmdDaGFuZ2UoaXNNb3Zpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc01vdmluZyA9IGlzTW92aW5nO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvaW50ZXJmYWNlcy9ib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3Vyc29yU3RhdHVzIH0gZnJvbSAnLi9jdXJzb3InO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0RWxlbWVudENvbnRleHQgfSBmcm9tICcuL2VsZW1lbnQtY29udGV4dCc7XG5pbXBvcnQgeyBQbGFpdEhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnknO1xuaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBWaWV3cG9ydCB9IGZyb20gJy4vdmlld3BvcnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0Qm9hcmQge1xuICAgIGhvc3Q6IFNWR0VsZW1lbnQ7XG4gICAgdmlld3BvcnQ6IFZpZXdwb3J0O1xuICAgIGNoaWxkcmVuOiBQbGFpdEVsZW1lbnRbXTtcbiAgICBvcGVyYXRpb25zOiBQbGFpdE9wZXJhdGlvbltdO1xuICAgIHNlbGVjdGlvbjogU2VsZWN0aW9uIHwgbnVsbDtcbiAgICBjdXJzb3I6IEN1cnNvclN0YXR1cztcbiAgICByZWFkb25seTogYm9vbGVhbjtcbiAgICBhbGxvd0NsZWFyQm9hcmQ6IGJvb2xlYW47XG4gICAgaGlzdG9yeTogUGxhaXRIaXN0b3J5O1xuICAgIHVuZG86ICgpID0+IHZvaWQ7XG4gICAgcmVkbzogKCkgPT4gdm9pZDtcbiAgICBhcHBseTogKG9wZXJhdGlvbjogUGxhaXRPcGVyYXRpb24pID0+IHZvaWQ7XG4gICAgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG4gICAgbW91c2Vkb3duOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZ2xvYmFsTW91c2V1cDogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG1vdXNlbW92ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIGtleWRvd246IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgICBrZXl1cDogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICAgIHNldEZyYWdtZW50OiAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCkgPT4gdm9pZDtcbiAgICBpbnNlcnRGcmFnbWVudDogKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHZvaWQ7XG4gICAgZGVsZXRlRnJhZ21lbnQ6IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsKSA9PiB2b2lkO1xuICAgIGRibGNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvaW50ZXJmYWNlcy9ib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3Vyc29yU3RhdHVzIH0gZnJvbSAnLi9jdXJzb3InO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0RWxlbWVudENvbnRleHQgfSBmcm9tICcuL2VsZW1lbnQtY29udGV4dCc7XG5pbXBvcnQgeyBQbGFpdEhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnknO1xuaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBWaWV3cG9ydCB9IGZyb20gJy4vdmlld3BvcnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0Qm9hcmQge1xuICAgIGhvc3Q6IFNWR0VsZW1lbnQ7XG4gICAgdmlld3BvcnQ6IFZpZXdwb3J0O1xuICAgIGNoaWxkcmVuOiBQbGFpdEVsZW1lbnRbXTtcbiAgICBvcGVyYXRpb25zOiBQbGFpdE9wZXJhdGlvbltdO1xuICAgIHNlbGVjdGlvbjogU2VsZWN0aW9uIHwgbnVsbDtcbiAgICBjdXJzb3I6IEN1cnNvclN0YXR1cztcbiAgICByZWFkb25seTogYm9vbGVhbjtcbiAgICBhbGxvd0NsZWFyQm9hcmQ6IGJvb2xlYW47XG4gICAgaGlzdG9yeTogUGxhaXRIaXN0b3J5O1xuICAgIHVuZG86ICgpID0+IHZvaWQ7XG4gICAgcmVkbzogKCkgPT4gdm9pZDtcbiAgICBhcHBseTogKG9wZXJhdGlvbjogUGxhaXRPcGVyYXRpb24pID0+IHZvaWQ7XG4gICAgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG4gICAgbW91c2Vkb3duOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZ2xvYmFsTW91c2V1cDogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG1vdXNlbW92ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIGtleWRvd246IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgICBrZXl1cDogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICAgIHNldEZyYWdtZW50OiAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCkgPT4gdm9pZDtcbiAgICBpbnNlcnRGcmFnbWVudDogKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHZvaWQ7XG4gICAgZGVsZXRlRnJhZ21lbnQ6IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsKSA9PiB2b2lkO1xuICAgIGRibGNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgZHJhd0VsZW1lbnQ6IChjb250ZXh0OiBQbGFpdEVsZW1lbnRDb250ZXh0KSA9PiBTVkdHRWxlbWVudFtdO1xuICAgIHJlZHJhd0VsZW1lbnQ6IChjb250ZXh0OiBQbGFpdEVsZW1lbnRDb250ZXh0LCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSA9PiBTVkdHRWxlbWVudFtdO1xuICAgIGRlc3Ryb3lFbGVtZW50OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0Qm9hcmRDaGFuZ2VFdmVudCB7XG4gICAgY2hpbGRyZW46IFBsYWl0RWxlbWVudFtdO1xuICAgIG9wZXJhdGlvbnM6IFBsYWl0T3BlcmF0aW9uW107XG4gICAgdmlld3BvcnQ6IFZpZXdwb3J0O1xuICAgIHNlbGVjdGlvbjogU2VsZWN0aW9uIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdEJvYXJkT3B0aW9ucyB7XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgYWxsb3dDbGVhckJvYXJkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0Qm9hcmRNb3ZlIHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PlaitOperation } from '../interfaces';
|
|
2
2
|
import { isHotkey } from 'is-hotkey';
|
|
3
3
|
import { PlaitHistoryBoard, shouldClear, shouldMerge, shouldSave } from '../utils';
|
|
4
|
-
export function
|
|
4
|
+
export function withHistory(board) {
|
|
5
5
|
const { apply, keydown } = board;
|
|
6
6
|
board.history = { undos: [], redos: [] };
|
|
7
7
|
board.redo = () => {
|
|
@@ -84,4 +84,4 @@ export function withHistroy(board) {
|
|
|
84
84
|
};
|
|
85
85
|
return board;
|
|
86
86
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oaXN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3BsdWdpbnMvd2l0aC1oaXN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbkYsTUFBTSxVQUFVLFdBQVcsQ0FBdUIsS0FBUTtJQUN0RCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNqQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFFekMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7UUFDZCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFMUIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV0QyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDeEMsS0FBSyxNQUFNLEVBQUUsSUFBSSxLQUFLLEVBQUU7b0JBQ3BCLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ25CO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENB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QUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQzFCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNiLE9BQU87U0FDVjtRQUNELElBQUksUUFBUSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNoQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDYixPQUFPO1NBQ1Y7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0T3BlcmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBpc0hvdGtleSB9IGZyb20gJ2lzLWhvdGtleSc7XG5pbXBvcnQgeyBQbGFpdEhpc3RvcnlCb2FyZCwgc2hvdWxkQ2xlYXIsIHNob3VsZE1lcmdlLCBzaG91bGRTYXZlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEhpc3Rvcnk8VCBleHRlbmRzIFBsYWl0Qm9hcmQ+KGJvYXJkOiBUKSB7XG4gICAgY29uc3QgeyBhcHBseSwga2V5ZG93biB9ID0gYm9hcmQ7XG4gICAgYm9hcmQuaGlzdG9yeSA9IHsgdW5kb3M6IFtdLCByZWRvczogW10gfTtcblxuICAgIGJvYXJkLnJlZG8gPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgaGlzdG9yeSB9ID0gYm9hcmQ7XG4gICAgICAgIGNvbnN0IHsgcmVkb3MgfSA9IGhpc3Rvcnk7XG5cbiAgICAgICAgaWYgKHJlZG9zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJhdGNoID0gcmVkb3NbcmVkb3MubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIFBsYWl0SGlzdG9yeUJvYXJkLndpdGhvdXRTYXZpbmcoYm9hcmQsICgpID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9wIG9mIGJhdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvYXJkLmFwcGx5KG9wKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaGlzdG9yeS5yZWRvcy5wb3AoKTtcbiAgICAgICAgICAgIGhpc3RvcnkudW5kb3MucHVzaChiYXRjaCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgYm9hcmQudW5kbyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBoaXN0b3J5IH0gPSBib2FyZDtcbiAgICAgICAgY29uc3QgeyB1bmRvcyB9ID0gaGlzdG9yeTtcblxuICAgICAgICBpZiAodW5kb3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYmF0Y2ggPSB1bmRvc1t1bmRvcy5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgUGxhaXRIaXN0b3J5Qm9hcmQud2l0aG91dFNhdmluZyhib2FyZCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGludmVyc2VPcHMgPSBiYXRjaC5tYXAoUGxhaXRPcGVyYXRpb24uaW52ZXJzZSkucmV2ZXJzZSgpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgb3Agb2YgaW52ZXJzZU9wcykge1xuICAgICAgICAgICAgICAgICAgICBib2FyZC5hcHBseShvcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGhpc3RvcnkucmVkb3MucHVzaChiYXRjaCk7XG4gICAgICAgICAgICBoaXN0b3J5LnVuZG9zLnBvcCgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGJvYXJkLmFwcGx5ID0gKG9wOiBQbGFpdE9wZXJhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCB7IG9wZXJhdGlvbnMsIGhpc3RvcnkgfSA9IGJvYXJkO1xuICAgICAgICBjb25zdCB7IHVuZG9zIH0gPSBoaXN0b3J5O1xuICAgICAgICBjb25zdCBsYXN0QmF0Y2ggPSB1bmRvc1t1bmRvcy5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgbGFzdE9wID0gbGFzdEJhdGNoICYmIGxhc3RCYXRjaFtsYXN0QmF0Y2gubGVuZ3RoIC0gMV07XG4gICAgICAgIGxldCBzYXZlID0gUGxhaXRIaXN0b3J5Qm9hcmQuaXNTYXZpbmcoYm9hcmQpO1xuICAgICAgICBsZXQgbWVyZ2UgPSBQbGFpdEhpc3RvcnlCb2FyZC5pc01lcmdpbmcoYm9hcmQpO1xuXG4gICAgICAgIGlmIChzYXZlID09IG51bGwpIHtcbiAgICAgICAgICAgIHNhdmUgPSBzaG91bGRTYXZlKG9wLCBsYXN0T3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNhdmUpIHtcbiAgICAgICAgICAgIGlmICghbWVyZ2UpIHtcbiAgICAgICAgICAgICAgICBpZiAobGFzdEJhdGNoID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtZXJnZSA9IHNob3VsZE1lcmdlKG9wLCBsYXN0T3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxhc3RCYXRjaCAmJiBtZXJnZSkge1xuICAgICAgICAgICAgICAgIGxhc3RCYXRjaC5wdXNoKG9wKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmF0Y2ggPSBbb3BdO1xuICAgICAgICAgICAgICAgIHVuZG9zLnB1c2goYmF0Y2gpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3aGlsZSAodW5kb3MubGVuZ3RoID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgdW5kb3Muc2hpZnQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNob3VsZENsZWFyKG9wKSkge1xuICAgICAgICAgICAgICAgIGhpc3RvcnkucmVkb3MgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhcHBseShvcCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGlzSG90a2V5KCdtb2QreicsIGV2ZW50KSkge1xuICAgICAgICAgICAgYm9hcmQudW5kbygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0hvdGtleSgnbW9kK3NoaWZ0K3onLCBldmVudCkpIHtcbiAgICAgICAgICAgIGJvYXJkLnJlZG8oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBrZXlkb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufVxuIl19
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { BaseCursorStatus } from '../interfaces';
|
|
2
|
+
import { Transforms } from '../transfroms';
|
|
3
|
+
import { PLAIT_BOARD_TO_COMPONENT, transformZoom, updateCursorStatus } from '../utils';
|
|
4
|
+
export function withMove(board) {
|
|
5
|
+
const { mousedown, mousemove, globalMouseup, keydown, keyup } = board;
|
|
6
|
+
const plaitBoardMove = {
|
|
7
|
+
x: 0,
|
|
8
|
+
y: 0
|
|
9
|
+
};
|
|
10
|
+
board.mousedown = (event) => {
|
|
11
|
+
if (board.readonly) {
|
|
12
|
+
updateCursorStatus(board, BaseCursorStatus.move);
|
|
13
|
+
}
|
|
14
|
+
else if (!board.selection) {
|
|
15
|
+
updateCursorStatus(board, BaseCursorStatus.select);
|
|
16
|
+
}
|
|
17
|
+
if (board.cursor === BaseCursorStatus.move && board.selection) {
|
|
18
|
+
const boardComponent = PLAIT_BOARD_TO_COMPONENT.get(board);
|
|
19
|
+
boardComponent.movingChange(true);
|
|
20
|
+
plaitBoardMove.x = event.x;
|
|
21
|
+
plaitBoardMove.y = event.y;
|
|
22
|
+
boardComponent.cdr.markForCheck();
|
|
23
|
+
}
|
|
24
|
+
mousedown(event);
|
|
25
|
+
};
|
|
26
|
+
board.mousemove = (event) => {
|
|
27
|
+
const boardComponent = PLAIT_BOARD_TO_COMPONENT.get(board);
|
|
28
|
+
if (board.cursor === BaseCursorStatus.move && board.selection && boardComponent.isMoving) {
|
|
29
|
+
const viewport = board?.viewport;
|
|
30
|
+
Transforms.setViewport(board, {
|
|
31
|
+
...viewport,
|
|
32
|
+
offsetX: viewport.offsetX + ((event.x - plaitBoardMove.x) * 100) / transformZoom(board.viewport.zoom),
|
|
33
|
+
offsetY: viewport.offsetY + ((event.y - plaitBoardMove.y) * 100) / transformZoom(board.viewport.zoom)
|
|
34
|
+
});
|
|
35
|
+
plaitBoardMove.x = event.x;
|
|
36
|
+
plaitBoardMove.y = event.y;
|
|
37
|
+
}
|
|
38
|
+
mousemove(event);
|
|
39
|
+
};
|
|
40
|
+
board.globalMouseup = (event) => {
|
|
41
|
+
if (board.selection) {
|
|
42
|
+
const boardComponent = PLAIT_BOARD_TO_COMPONENT.get(board);
|
|
43
|
+
boardComponent.movingChange(false);
|
|
44
|
+
plaitBoardMove.x = 0;
|
|
45
|
+
plaitBoardMove.y = 0;
|
|
46
|
+
}
|
|
47
|
+
globalMouseup(event);
|
|
48
|
+
};
|
|
49
|
+
board.keydown = (event) => {
|
|
50
|
+
if (board.selection && event.code === 'Space') {
|
|
51
|
+
if (board.cursor !== BaseCursorStatus.move) {
|
|
52
|
+
updateCursorStatus(board, BaseCursorStatus.move);
|
|
53
|
+
const boardComponent = PLAIT_BOARD_TO_COMPONENT.get(board);
|
|
54
|
+
boardComponent.cdr.markForCheck();
|
|
55
|
+
}
|
|
56
|
+
event.preventDefault();
|
|
57
|
+
}
|
|
58
|
+
keydown(event);
|
|
59
|
+
};
|
|
60
|
+
board.keyup = (event) => {
|
|
61
|
+
if (board.selection && !board.readonly && event.code === 'Space') {
|
|
62
|
+
updateCursorStatus(board, BaseCursorStatus.select);
|
|
63
|
+
const boardComponent = PLAIT_BOARD_TO_COMPONENT.get(board);
|
|
64
|
+
boardComponent.cdr.markForCheck();
|
|
65
|
+
}
|
|
66
|
+
keyup(event);
|
|
67
|
+
};
|
|
68
|
+
return board;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1tb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3BsdWdpbnMvd2l0aC1tb3ZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZGLE1BQU0sVUFBVSxRQUFRLENBQXVCLEtBQVE7SUFDbkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFdEUsTUFBTSxjQUFjLEdBQW1CO1FBQ25DLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDUCxDQUFDO0lBRUYsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtRQUNwQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDaEIsa0JBQWtCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BEO2FBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDekIsa0JBQWtCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQzNELE1BQU0sY0FBYyxHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQXdCLENBQUM7WUFDbEYsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxjQUFjLENBQUMsQ0FB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Q0FBQztZQUNuRCxNQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUF3QixDQUFDO1lBQ2xGLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckM7UUFDRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmRDb21wb25lbnQgfSBmcm9tICcuLi9ib2FyZC9ib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZUN1cnNvclN0YXR1cywgUGxhaXRCb2FyZCwgUGxhaXRCb2FyZE1vdmUsIFZpZXdwb3J0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmcm9tcyc7XG5pbXBvcnQgeyBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQsIHRyYW5zZm9ybVpvb20sIHVwZGF0ZUN1cnNvclN0YXR1cyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhNb3ZlPFQgZXh0ZW5kcyBQbGFpdEJvYXJkPihib2FyZDogVCkge1xuICAgIGNvbnN0IHsgbW91c2Vkb3duLCBtb3VzZW1vdmUsIGdsb2JhbE1vdXNldXAsIGtleWRvd24sIGtleXVwIH0gPSBib2FyZDtcblxuICAgIGNvbnN0IHBsYWl0Qm9hcmRNb3ZlOiBQbGFpdEJvYXJkTW92ZSA9IHtcbiAgICAgICAgeDogMCxcbiAgICAgICAgeTogMFxuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZWRvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGJvYXJkLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICB1cGRhdGVDdXJzb3JTdGF0dXMoYm9hcmQsIEJhc2VDdXJzb3JTdGF0dXMubW92ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWJvYXJkLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgdXBkYXRlQ3Vyc29yU3RhdHVzKGJvYXJkLCBCYXNlQ3Vyc29yU3RhdHVzLnNlbGVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJvYXJkLmN1cnNvciA9PT0gQmFzZUN1cnNvclN0YXR1cy5tb3ZlICYmIGJvYXJkLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgYm9hcmRDb21wb25lbnQgPSBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQuZ2V0KGJvYXJkKSBhcyBQbGFpdEJvYXJkQ29tcG9uZW50O1xuICAgICAgICAgICAgYm9hcmRDb21wb25lbnQubW92aW5nQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgcGxhaXRCb2FyZE1vdmUueCA9IGV2ZW50Lng7XG4gICAgICAgICAgICBwbGFpdEJvYXJkTW92ZS55ID0gZXZlbnQueTtcbiAgICAgICAgICAgIGJvYXJkQ29tcG9uZW50LmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgICBtb3VzZWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZW1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgYm9hcmRDb21wb25lbnQgPSBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQuZ2V0KGJvYXJkKSBhcyBQbGFpdEJvYXJkQ29tcG9uZW50O1xuICAgICAgICBpZiAoYm9hcmQuY3Vyc29yID09PSBCYXNlQ3Vyc29yU3RhdHVzLm1vdmUgJiYgYm9hcmQuc2VsZWN0aW9uICYmIGJvYXJkQ29tcG9uZW50LmlzTW92aW5nKSB7XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydCA9IGJvYXJkPy52aWV3cG9ydCBhcyBWaWV3cG9ydDtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Vmlld3BvcnQoYm9hcmQsIHtcbiAgICAgICAgICAgICAgICAuLi52aWV3cG9ydCxcbiAgICAgICAgICAgICAgICBvZmZzZXRYOiB2aWV3cG9ydC5vZmZzZXRYICsgKChldmVudC54IC0gcGxhaXRCb2FyZE1vdmUueCkgKiAxMDApIC8gdHJhbnNmb3JtWm9vbShib2FyZC52aWV3cG9ydC56b29tKSxcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiB2aWV3cG9ydC5vZmZzZXRZICsgKChldmVudC55IC0gcGxhaXRCb2FyZE1vdmUueSkgKiAxMDApIC8gdHJhbnNmb3JtWm9vbShib2FyZC52aWV3cG9ydC56b29tKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBwbGFpdEJvYXJkTW92ZS54ID0gZXZlbnQueDtcbiAgICAgICAgICAgIHBsYWl0Qm9hcmRNb3ZlLnkgPSBldmVudC55O1xuICAgICAgICB9XG4gICAgICAgIG1vdXNlbW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbE1vdXNldXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGJvYXJkLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgYm9hcmRDb21wb25lbnQgPSBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQuZ2V0KGJvYXJkKSBhcyBQbGFpdEJvYXJkQ29tcG9uZW50O1xuICAgICAgICAgICAgYm9hcmRDb21wb25lbnQubW92aW5nQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHBsYWl0Qm9hcmRNb3ZlLnggPSAwO1xuICAgICAgICAgICAgcGxhaXRCb2FyZE1vdmUueSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZ2xvYmFsTW91c2V1cChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGJvYXJkLnNlbGVjdGlvbiAmJiBldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAoYm9hcmQuY3Vyc29yICE9PSBCYXNlQ3Vyc29yU3RhdHVzLm1vdmUpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVDdXJzb3JTdGF0dXMoYm9hcmQsIEJhc2VDdXJzb3JTdGF0dXMubW92ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9hcmRDb21wb25lbnQgPSBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQuZ2V0KGJvYXJkKSBhcyBQbGFpdEJvYXJkQ29tcG9uZW50O1xuICAgICAgICAgICAgICAgIGJvYXJkQ29tcG9uZW50LmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAga2V5ZG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChib2FyZC5zZWxlY3Rpb24gJiYgIWJvYXJkLnJlYWRvbmx5ICYmIGV2ZW50LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgICAgIHVwZGF0ZUN1cnNvclN0YXR1cyhib2FyZCwgQmFzZUN1cnNvclN0YXR1cy5zZWxlY3QpO1xuICAgICAgICAgICAgY29uc3QgYm9hcmRDb21wb25lbnQgPSBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQuZ2V0KGJvYXJkKSBhcyBQbGFpdEJvYXJkQ29tcG9uZW50O1xuICAgICAgICAgICAgYm9hcmRDb21wb25lbnQuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgICAgIGtleXVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufVxuIl19
|
package/esm2020/utils/board.mjs
CHANGED
|
@@ -30,7 +30,7 @@ export function isNoSelectionElement(e) {
|
|
|
30
30
|
* @param viewZoom 视图上显示的 zoom 缩放级别 %
|
|
31
31
|
* @returns zoom 真实的 zoom
|
|
32
32
|
*/
|
|
33
|
-
export const transformViewZoom = (viewZoom) =>
|
|
33
|
+
export const transformViewZoom = (viewZoom) => 2 - 100 / viewZoom;
|
|
34
34
|
/**
|
|
35
35
|
* zoom 转 viewZoom
|
|
36
36
|
* @param zoom this.board.viewport.zoom
|
|
@@ -42,4 +42,4 @@ export const updateCursorStatus = (board, cursor) => {
|
|
|
42
42
|
board.cursor = cursor;
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvdXRpbHMvYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFpQixFQUFFLE1BQWU7SUFDOUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNqQyxPQUFPLGNBQWMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFpQixFQUFFLEtBQVk7SUFDMUQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDN0QsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDNUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFVLENBQUM7SUFDbkYsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBaUI7SUFDeEMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFhLENBQUM7SUFDeEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDckQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDdkQsTUFBTSxZQUFZLEdBQUcsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUN4QyxNQUFNLGFBQWEsR0FBRyxNQUFNLEdBQUcsV0FBVyxDQUFDO0lBQzNDLE1BQU0sSUFBSSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDNUIsTUFBTSxJQUFJLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUM3QixPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxDQUFRO0lBQ3pDLE9BQVEsQ0FBQyxDQUFDLE1BQXNCLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFFBQWdCLEVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO0FBRWxGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTdGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBRSxNQUF3QixFQUFFLEVBQUU7SUFDOUUsSUFBSSxNQUFNLEVBQUU7UUFDUixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztLQUN6QjtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDdXJzb3JTdGF0dXMsIFBsYWl0Qm9hcmQsIFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Qb2ludHMoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50czogUG9pbnRbXSkge1xuICAgIGNvbnN0IG5ld1BvaW50cyA9IHBvaW50cy5tYXAocG9pbnQgPT4ge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHBvaW50KTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3UG9pbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUG9pbnQoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50OiBQb2ludCkge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gYm9hcmQuaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveChib2FyZCk7XG4gICAgbGV0IHggPSAocG9pbnRbMF0gLyB3aWR0aCkgKiB2aWV3Qm94LndpZHRoICsgdmlld0JveC5taW5YO1xuICAgIGxldCB5ID0gKHBvaW50WzFdIC8gaGVpZ2h0KSAqIHZpZXdCb3guaGVpZ2h0ICsgdmlld0JveC5taW5ZO1xuICAgIGNvbnN0IG5ld1BvaW50ID0gW3ggLSBib2FyZC52aWV3cG9ydC5vZmZzZXRYLCB5IC0gYm9hcmQudmlld3BvcnQub2Zmc2V0WV0gYXMgUG9pbnQ7XG4gICAgcmV0dXJuIG5ld1BvaW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld0JveChib2FyZDogUGxhaXRCb2FyZCk6IFZpZXdCb3gge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gYm9hcmQuaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBhcyBET01SZWN0O1xuICAgIGNvbnN0IHNjYWxlV2lkdGggPSAoYm9hcmQudmlld3BvcnQuem9vbSAtIDEpICogd2lkdGg7XG4gICAgY29uc3Qgc2NhbGVIZWlnaHQgPSAoYm9hcmQudmlld3BvcnQuem9vbSAtIDEpICogaGVpZ2h0O1xuICAgIGNvbnN0IHZpZXdCb3hXaWR0aCA9IHdpZHRoIC0gc2NhbGVXaWR0aDtcbiAgICBjb25zdCB2aWV3Qm94SGVpZ2h0ID0gaGVpZ2h0IC0gc2NhbGVIZWlnaHQ7XG4gICAgY29uc3QgbWluWCA9IHNjYWxlV2lkdGggLyAyO1xuICAgIGNvbnN0IG1pblkgPSBzY2FsZUhlaWdodCAvIDI7XG4gICAgcmV0dXJuIHsgbWluWCwgbWluWTogbWluWSwgd2lkdGg6IHZpZXdCb3hXaWR0aCwgaGVpZ2h0OiB2aWV3Qm94SGVpZ2h0IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vU2VsZWN0aW9uRWxlbWVudChlOiBFdmVudCkge1xuICAgIHJldHVybiAoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5jbG9zZXN0KCcucGxhaXQtYm9hcmQtYXR0YWNoZWQnKTtcbn1cblxuLyoqXG4gKiB2aWV3Wm9vbSDovawgem9vbVxuICogQHBhcmFtIHZpZXdab29tIOinhuWbvuS4iuaYvuekuueahCB6b29tIOe8qeaUvue6p+WIqyAlXG4gKiBAcmV0dXJucyB6b29tIOecn+WunueahCB6b29tXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1WaWV3Wm9vbSA9ICh2aWV3Wm9vbTogbnVtYmVyKTogbnVtYmVyID0+IDIgLSAxMDAgLyB2aWV3Wm9vbTtcblxuLyoqXG4gKiB6b29tIOi9rCB2aWV3Wm9vbVxuICogQHBhcmFtIHpvb20gdGhpcy5ib2FyZC52aWV3cG9ydC56b29tXG4gKiBAcmV0dXJucyDop4blm77kuIrmmL7npLrnmoQgem9vbSDnvKnmlL7nuqfliKsgJVxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtWm9vbSA9ICh6b29tOiBudW1iZXIpOiBudW1iZXIgPT4gTnVtYmVyKCgxMDAgLyAoMiAtIHpvb20pKS50b0ZpeGVkKDApKTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUN1cnNvclN0YXR1cyA9IChib2FyZDogUGxhaXRCb2FyZCwgY3Vyc29yOiBCYXNlQ3Vyc29yU3RhdHVzKSA9PiB7XG4gICAgaWYgKGN1cnNvcikge1xuICAgICAgICBib2FyZC5jdXJzb3IgPSBjdXJzb3I7XG4gICAgfVxufTtcblxuZXhwb3J0IHR5cGUgVmlld0JveCA9IHtcbiAgICBtaW5YOiBudW1iZXI7XG4gICAgbWluWTogbnVtYmVyO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG59O1xuIl19
|
|
@@ -3,4 +3,5 @@ export const FLUSHING = new WeakMap();
|
|
|
3
3
|
export const IS_TEXT_EDITABLE = new WeakMap();
|
|
4
4
|
export const BOARD_TO_ON_CHANGE = new WeakMap();
|
|
5
5
|
export const HOST_TO_ROUGH_SVG = new WeakMap();
|
|
6
|
-
|
|
6
|
+
export const PLAIT_BOARD_TO_COMPONENT = new WeakMap();
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay1tYXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL3dlYWstbWFwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSw4QkFBOEI7QUFDOUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFpQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksT0FBTyxFQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91Z2hTVkcgfSBmcm9tICdyb3VnaGpzL2Jpbi9zdmcnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2JvYXJkL2JvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5cbi8vIHJlY29yZCByaWNodGV4dCB0eXBlIHN0YXR1c1xuZXhwb3J0IGNvbnN0IEZMVVNISU5HOiBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZXhwb3J0IGNvbnN0IElTX1RFWFRfRURJVEFCTEUgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBib29sZWFuPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fT05fQ0hBTkdFID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgKCkgPT4gdm9pZD4oKTtcblxuZXhwb3J0IGNvbnN0IEhPU1RfVE9fUk9VR0hfU1ZHID0gbmV3IFdlYWtNYXA8U1ZHRWxlbWVudCwgUm91Z2hTVkc+KCk7XG5cbmV4cG9ydCBjb25zdCBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQbGFpdEJvYXJkQ29tcG9uZW50PigpO1xuIl19
|