@plait/mind 0.27.0-next.6 → 0.27.0-next.8
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/drawer/{node-active.drawer.d.ts → node-active.generator.d.ts} +2 -2
- package/drawer/node-shape.generator.d.ts +10 -0
- package/esm2022/base/image-base.component.mjs +4 -1
- package/esm2022/drawer/node-active.generator.mjs +42 -0
- package/esm2022/drawer/node-shape.generator.mjs +19 -0
- package/esm2022/mind-node.component.mjs +12 -31
- package/esm2022/plugins/with-abstract-resize.mjs +3 -3
- package/esm2022/plugins/with-mind-fragment.mjs +3 -3
- package/esm2022/plugins/with-node-dnd.mjs +2 -2
- package/esm2022/plugins/with-node-image.mjs +3 -3
- package/esm2022/utils/abstract/resize.mjs +3 -3
- package/esm2022/utils/clipboard.mjs +3 -3
- package/esm2022/utils/draw/node-shape.mjs +4 -3
- package/esm2022/utils/space/layout-options.mjs +7 -10
- package/esm2022/utils/space/node-space.mjs +8 -13
- package/fesm2022/plait-mind.mjs +412 -421
- package/fesm2022/plait-mind.mjs.map +1 -1
- package/mind-node.component.d.ts +4 -4
- package/package.json +1 -1
- package/utils/space/node-space.d.ts +1 -5
- package/esm2022/drawer/node-active.drawer.mjs +0 -44
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { MindElement, BaseData } from '../interfaces';
|
|
2
|
-
import { BaseDrawer } from '../base/base.drawer';
|
|
3
2
|
import { AbstractHandlePosition } from '../plugins/with-abstract-resize.board';
|
|
3
|
+
import { Generator } from '@plait/common';
|
|
4
4
|
export interface ActiveData {
|
|
5
5
|
selected: boolean;
|
|
6
6
|
isEditing: boolean;
|
|
7
7
|
}
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class NodeActiveGenerator extends Generator<MindElement, ActiveData> {
|
|
9
9
|
abstractOutlineG?: SVGGElement;
|
|
10
10
|
canDraw(element: MindElement<BaseData>, data: ActiveData): boolean;
|
|
11
11
|
baseDraw(element: MindElement<BaseData>, data: ActiveData): SVGGElement;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Generator } from '@plait/common';
|
|
2
|
+
import { MindElement } from '../interfaces/element';
|
|
3
|
+
import { MindNode } from '../interfaces/node';
|
|
4
|
+
export interface ShapeData {
|
|
5
|
+
node: MindNode;
|
|
6
|
+
}
|
|
7
|
+
export declare class NodeShapeGenerator extends Generator<MindElement, ShapeData> {
|
|
8
|
+
canDraw(element: MindElement, data: ShapeData): boolean;
|
|
9
|
+
baseDraw(element: MindElement, data: ShapeData): SVGGElement;
|
|
10
|
+
}
|
|
@@ -32,6 +32,9 @@ export class MindImageBaseComponent {
|
|
|
32
32
|
getStrokeWidth: () => {
|
|
33
33
|
return 1;
|
|
34
34
|
},
|
|
35
|
+
getStrokeOpacity: () => {
|
|
36
|
+
return 1;
|
|
37
|
+
},
|
|
35
38
|
getRectangle: (element) => {
|
|
36
39
|
return getImageForeignRectangle(this.board, this.element);
|
|
37
40
|
},
|
|
@@ -69,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
|
|
|
69
72
|
}], isFocus: [{
|
|
70
73
|
type: Input
|
|
71
74
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9iYXNlL2ltYWdlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFbkcsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQVFuRSxNQUFNLE9BQWdCLHNCQUFzQjtJQU94QyxJQUNJLFNBQVMsQ0FBQyxLQUFnQjtRQUMxQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBUUQsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBSUQsWUFBc0IsVUFBbUMsRUFBUyxHQUFzQjtRQUFsRSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBckN4RixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQXFDdUUsQ0FBQztJQUU1RixRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hFLGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQztZQUNELGdCQUFnQixFQUFFLEdBQUcsRUFBRTtnQkFDcEIsT0FBTyxDQUFDLENBQUM7WUFDWixDQUFDO1lBQ0QsWUFBWSxFQUFFLENBQUMsT0FBb0IsRUFBRSxFQUFFO2dCQUNuQyxPQUFPLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUF1QixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoRixDQUFDO1lBQ0QsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQy9FO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNsQztJQUNMLENBQUM7OEdBckVpQixzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFMM0MsU0FBUzttQkFBQztvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGlCQUFpQjtxQkFDM0I7aUJBQ0o7aUlBU08sU0FBUztzQkFEWixLQUFLO2dCQVlOLEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWFnZUl0ZW0sIEltYWdlRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldEltYWdlRm9yZWlnblJlY3RhbmdsZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL2ltYWdlJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWluZC1ub2RlLWltYWdlJ1xuICAgIH1cbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWluZEltYWdlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBfaW1hZ2VJdGVtITogSW1hZ2VJdGVtO1xuICAgIF9pc0ZvY3VzITogYm9vbGVhbjtcbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgYWN0aXZlR2VuZXJhdG9yITogQWN0aXZlR2VuZXJhdG9yPE1pbmRFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGltYWdlSXRlbSh2YWx1ZTogSW1hZ2VJdGVtKSB7XG4gICAgICAgIHRoaXMuYWZ0ZXJJbWFnZUl0ZW1DaGFuZ2UodGhpcy5faW1hZ2VJdGVtLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2ltYWdlSXRlbSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmRyYXdGb2N1cygpO1xuICAgIH1cblxuICAgIGdldCBpbWFnZUl0ZW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbWFnZUl0ZW07XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBib2FyZCE6IFBsYWl0Qm9hcmQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGVsZW1lbnQhOiBNaW5kRWxlbWVudDxJbWFnZURhdGE+O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgaXNGb2N1cyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0ZvY3VzID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZHJhd0ZvY3VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ZvY3VzO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgYWZ0ZXJJbWFnZUl0ZW1DaGFuZ2UocHJldmlvdXM6IEltYWdlSXRlbSwgY3VycmVudDogSW1hZ2VJdGVtKTogdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IgPSBuZXcgQWN0aXZlR2VuZXJhdG9yPE1pbmRFbGVtZW50Pih0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRTdHJva2VXaWR0aDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFN0cm9rZU9wYWNpdHk6ICgpID0+IHtcbiAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEltYWdlRm9yZWlnblJlY3RhbmdsZSh0aGlzLmJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhc1Jlc2l6ZUhhbmRsZTogKCkgPT4gdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZHJhd0ZvY3VzKCkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgY29tID0gUGxhaXRFbGVtZW50LmdldENvbXBvbmVudCh0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IuZHJhdyh0aGlzLmVsZW1lbnQsIGNvbS5nLCB7IHNlbGVjdGVkOiB0aGlzLl9pc0ZvY3VzIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUdlbmVyYXRvcikge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ACTIVE_STROKE_WIDTH, PlaitBoard, RectangleClient, createG, drawRoundRectangle } from '@plait/core';
|
|
2
|
+
import { MindElement } from '../interfaces';
|
|
3
|
+
import { getRectangleByNode } from '../utils/position/node';
|
|
4
|
+
import { PRIMARY_COLOR } from '../constants/default';
|
|
5
|
+
import { AbstractNode } from '@plait/layouts';
|
|
6
|
+
import { drawAbstractIncludedOutline } from '../utils/draw/abstract-outline';
|
|
7
|
+
import { DefaultNodeStyle } from '../constants/node-style';
|
|
8
|
+
import { getStrokeWidthByElement } from '../utils/node-style/shape';
|
|
9
|
+
import { Generator } from '@plait/common';
|
|
10
|
+
export class NodeActiveGenerator extends Generator {
|
|
11
|
+
canDraw(element, data) {
|
|
12
|
+
if (data.selected) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
baseDraw(element, data) {
|
|
20
|
+
const activeG = createG();
|
|
21
|
+
if (AbstractNode.isAbstract(element)) {
|
|
22
|
+
this.abstractOutlineG = drawAbstractIncludedOutline(this.board, PlaitBoard.getRoughSVG(this.board), element);
|
|
23
|
+
activeG.append(this.abstractOutlineG);
|
|
24
|
+
}
|
|
25
|
+
const node = MindElement.getNode(element);
|
|
26
|
+
const rectangle = getRectangleByNode(node);
|
|
27
|
+
const strokeWidth = getStrokeWidthByElement(this.board, element);
|
|
28
|
+
const activeStrokeWidth = ACTIVE_STROKE_WIDTH;
|
|
29
|
+
const activeRectangle = RectangleClient.inflate(rectangle, activeStrokeWidth);
|
|
30
|
+
const strokeG = drawRoundRectangle(PlaitBoard.getRoughSVG(this.board), activeRectangle.x, activeRectangle.y, activeRectangle.x + activeRectangle.width, activeRectangle.y + activeRectangle.height, { stroke: PRIMARY_COLOR, strokeWidth: activeStrokeWidth, fill: '' }, true, DefaultNodeStyle.shape.rectangleRadius + (activeStrokeWidth + strokeWidth) / 2);
|
|
31
|
+
activeG.appendChild(strokeG);
|
|
32
|
+
return activeG;
|
|
33
|
+
}
|
|
34
|
+
updateAbstractOutline(element, activeHandlePosition, resizingLocation) {
|
|
35
|
+
if (this.abstractOutlineG) {
|
|
36
|
+
this.abstractOutlineG.remove();
|
|
37
|
+
}
|
|
38
|
+
this.abstractOutlineG = drawAbstractIncludedOutline(this.board, PlaitBoard.getRoughSVG(this.board), element, activeHandlePosition, resizingLocation);
|
|
39
|
+
this.g.append(this.abstractOutlineG);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3RpdmUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvZHJhd2VyL25vZGUtYWN0aXZlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixlQUFlLEVBQ2YsT0FBTyxFQUNQLGtCQUFrQixFQUdyQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8xQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBa0M7SUFHdkUsT0FBTyxDQUFDLE9BQThCLEVBQUUsSUFBZ0I7UUFDcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDZjthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQThCLEVBQUUsSUFBZ0I7UUFDckQsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDekM7UUFDRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakUsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztRQUM5QyxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUM5QixVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDbEMsZUFBZSxDQUFDLENBQUMsRUFDakIsZUFBZSxDQUFDLENBQUMsRUFDakIsZUFBZSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsS0FBSyxFQUN6QyxlQUFlLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQzFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUNuRSxJQUFJLEVBQ0osZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FDakYsQ0FBQztRQUNGLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsb0JBQTZDLEVBQUUsZ0JBQXlCO1FBQ2hILElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRywyQkFBMkIsQ0FDL0MsSUFBSSxDQUFDLEtBQUssRUFDVixVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDbEMsT0FBTyxFQUNQLG9CQUFvQixFQUNwQixnQkFBZ0IsQ0FDbkIsQ0FBQztRQUNGLElBQUksQ0FBQyxDQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQUNUSVZFX1NUUk9LRV9XSURUSCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBjcmVhdGVHLFxuICAgIGRyYXdSb3VuZFJlY3RhbmdsZSxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzLFxuICAgIGlzU2VsZWN0aW9uTW92aW5nXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50LCBCYXNlRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi4vdXRpbHMvcG9zaXRpb24vbm9kZSc7XG5pbXBvcnQgeyBQUklNQVJZX0NPTE9SIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgQWJzdHJhY3ROb2RlIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgZHJhd0Fic3RyYWN0SW5jbHVkZWRPdXRsaW5lIH0gZnJvbSAnLi4vdXRpbHMvZHJhdy9hYnN0cmFjdC1vdXRsaW5lJztcbmltcG9ydCB7IEFic3RyYWN0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtYWJzdHJhY3QtcmVzaXplLmJvYXJkJztcbmltcG9ydCB7IERlZmF1bHROb2RlU3R5bGUgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS1zdHlsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL25vZGUtc3R5bGUvc2hhcGUnO1xuaW1wb3J0IHsgR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlRGF0YSB7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgaXNFZGl0aW5nOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTm9kZUFjdGl2ZUdlbmVyYXRvciBleHRlbmRzIEdlbmVyYXRvcjxNaW5kRWxlbWVudCwgQWN0aXZlRGF0YT4ge1xuICAgIGFic3RyYWN0T3V0bGluZUc/OiBTVkdHRWxlbWVudDtcblxuICAgIGNhbkRyYXcoZWxlbWVudDogTWluZEVsZW1lbnQ8QmFzZURhdGE+LCBkYXRhOiBBY3RpdmVEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJhc2VEcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50PEJhc2VEYXRhPiwgZGF0YTogQWN0aXZlRGF0YSk6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgY29uc3QgYWN0aXZlRyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgaWYgKEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmFic3RyYWN0T3V0bGluZUcgPSBkcmF3QWJzdHJhY3RJbmNsdWRlZE91dGxpbmUodGhpcy5ib2FyZCwgUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKSwgZWxlbWVudCk7XG4gICAgICAgICAgICBhY3RpdmVHLmFwcGVuZCh0aGlzLmFic3RyYWN0T3V0bGluZUcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVN0cm9rZVdpZHRoID0gQUNUSVZFX1NUUk9LRV9XSURUSDtcbiAgICAgICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUocmVjdGFuZ2xlLCBhY3RpdmVTdHJva2VXaWR0aCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZUcgPSBkcmF3Um91bmRSZWN0YW5nbGUoXG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLFxuICAgICAgICAgICAgYWN0aXZlUmVjdGFuZ2xlLngsXG4gICAgICAgICAgICBhY3RpdmVSZWN0YW5nbGUueSxcbiAgICAgICAgICAgIGFjdGl2ZVJlY3RhbmdsZS54ICsgYWN0aXZlUmVjdGFuZ2xlLndpZHRoLFxuICAgICAgICAgICAgYWN0aXZlUmVjdGFuZ2xlLnkgKyBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0LFxuICAgICAgICAgICAgeyBzdHJva2U6IFBSSU1BUllfQ09MT1IsIHN0cm9rZVdpZHRoOiBhY3RpdmVTdHJva2VXaWR0aCwgZmlsbDogJycgfSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICBEZWZhdWx0Tm9kZVN0eWxlLnNoYXBlLnJlY3RhbmdsZVJhZGl1cyArIChhY3RpdmVTdHJva2VXaWR0aCArIHN0cm9rZVdpZHRoKSAvIDJcbiAgICAgICAgKTtcbiAgICAgICAgYWN0aXZlRy5hcHBlbmRDaGlsZChzdHJva2VHKTtcbiAgICAgICAgcmV0dXJuIGFjdGl2ZUc7XG4gICAgfVxuXG4gICAgdXBkYXRlQWJzdHJhY3RPdXRsaW5lKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBhY3RpdmVIYW5kbGVQb3NpdGlvbj86IEFic3RyYWN0SGFuZGxlUG9zaXRpb24sIHJlc2l6aW5nTG9jYXRpb24/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuYWJzdHJhY3RPdXRsaW5lRykge1xuICAgICAgICAgICAgdGhpcy5hYnN0cmFjdE91dGxpbmVHLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWJzdHJhY3RPdXRsaW5lRyA9IGRyYXdBYnN0cmFjdEluY2x1ZGVkT3V0bGluZShcbiAgICAgICAgICAgIHRoaXMuYm9hcmQsXG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLFxuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIGFjdGl2ZUhhbmRsZVBvc2l0aW9uLFxuICAgICAgICAgICAgcmVzaXppbmdMb2NhdGlvblxuICAgICAgICApO1xuICAgICAgICB0aGlzLmchLmFwcGVuZCh0aGlzLmFic3RyYWN0T3V0bGluZUcpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Generator } from '@plait/common';
|
|
2
|
+
import { MindElementShape } from '../interfaces/element';
|
|
3
|
+
import { getRectangleByNode } from '../utils/position/node';
|
|
4
|
+
import { drawRoundRectangleByElement } from '../utils/draw/node-shape';
|
|
5
|
+
import { getShapeByElement } from '../utils/node-style/shape';
|
|
6
|
+
export class NodeShapeGenerator extends Generator {
|
|
7
|
+
canDraw(element, data) {
|
|
8
|
+
const shape = getShapeByElement(this.board, element);
|
|
9
|
+
if (shape === MindElementShape.roundRectangle) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
baseDraw(element, data) {
|
|
15
|
+
const rectangle = getRectangleByNode(data.node);
|
|
16
|
+
return drawRoundRectangleByElement(this.board, rectangle, data.node.origin);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zaGFwZS5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9kcmF3ZXIvbm9kZS1zaGFwZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU05RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBaUM7SUFDckUsT0FBTyxDQUFDLE9BQW9CLEVBQUUsSUFBZTtRQUN6QyxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksS0FBSyxLQUFLLGdCQUFnQixDQUFDLGNBQWMsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFvQixFQUFFLElBQWU7UUFDMUMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELE9BQU8sMkJBQTJCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmF0b3IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IE1pbmRFbGVtZW50LCBNaW5kRWxlbWVudFNoYXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgZHJhd1JvdW5kUmVjdGFuZ2xlQnlFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvZHJhdy9ub2RlLXNoYXBlJztcbmltcG9ydCB7IGdldFNoYXBlQnlFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS1zdHlsZS9zaGFwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcGVEYXRhIHtcbiAgICBub2RlOiBNaW5kTm9kZTtcbn1cblxuZXhwb3J0IGNsYXNzIE5vZGVTaGFwZUdlbmVyYXRvciBleHRlbmRzIEdlbmVyYXRvcjxNaW5kRWxlbWVudCwgU2hhcGVEYXRhPiB7XG4gICAgY2FuRHJhdyhlbGVtZW50OiBNaW5kRWxlbWVudCwgZGF0YTogU2hhcGVEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gZ2V0U2hhcGVCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChzaGFwZSA9PT0gTWluZEVsZW1lbnRTaGFwZS5yb3VuZFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGJhc2VEcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBkYXRhOiBTaGFwZURhdGEpIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKGRhdGEubm9kZSk7XG4gICAgICAgIHJldHVybiBkcmF3Um91bmRSZWN0YW5nbGVCeUVsZW1lbnQodGhpcy5ib2FyZCwgcmVjdGFuZ2xlLCBkYXRhLm5vZGUub3JpZ2luKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -3,24 +3,22 @@ import { createG, PlaitBoard, PlaitElement, NODE_TO_INDEX, RectangleClient } fro
|
|
|
3
3
|
import { isHorizontalLayout, AbstractNode } from '@plait/layouts';
|
|
4
4
|
import { TextManage, ExitOrigin } from '@plait/text';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
|
-
import { drawRoundRectangleByNode } from './utils/draw/node-shape';
|
|
7
6
|
import { MindElement, PlaitMind } from './interfaces/element';
|
|
8
7
|
import { MindQueries } from './queries';
|
|
9
|
-
import { getShapeByElement } from './utils/node-style/shape';
|
|
10
8
|
import { ELEMENT_TO_NODE } from './utils/weak-maps';
|
|
11
9
|
import { drawAbstractLink } from './utils/draw/node-link/abstract-link';
|
|
12
10
|
import { NodeEmojisDrawer } from './drawer/node-emojis.drawer';
|
|
13
11
|
import { MindTransforms } from './transforms';
|
|
14
|
-
import { MindElementShape } from './interfaces';
|
|
15
12
|
import { NodeInsertDrawer } from './drawer/node-insert.drawer';
|
|
16
13
|
import { drawLink } from './utils/draw/node-link/draw-link';
|
|
17
14
|
import { getTopicRectangleByNode } from './utils/position/topic';
|
|
18
|
-
import {
|
|
15
|
+
import { NodeActiveGenerator } from './drawer/node-active.generator';
|
|
19
16
|
import { CollapseDrawer } from './drawer/node-collapse.drawer';
|
|
20
17
|
import { NodeImageDrawer } from './drawer/node-image.drawer';
|
|
21
18
|
import { NodeSpace } from './utils/space/node-space';
|
|
22
19
|
import { NodeTopicThreshold } from './constants/node-topic-style';
|
|
23
20
|
import { CommonPluginElement, WithTextPluginKey } from '@plait/common';
|
|
21
|
+
import { NodeShapeGenerator } from './drawer/node-shape.generator';
|
|
24
22
|
import * as i0 from "@angular/core";
|
|
25
23
|
import * as i1 from "@angular/common";
|
|
26
24
|
import * as i2 from "@plait/core";
|
|
@@ -39,9 +37,10 @@ export class MindNodeComponent extends CommonPluginElement {
|
|
|
39
37
|
};
|
|
40
38
|
}
|
|
41
39
|
initializeDrawer() {
|
|
40
|
+
this.nodeShapeGenerator = new NodeShapeGenerator(this.board);
|
|
42
41
|
this.nodeEmojisDrawer = new NodeEmojisDrawer(this.board, this.viewContainerRef);
|
|
43
42
|
this.nodeInsertDrawer = new NodeInsertDrawer(this.board);
|
|
44
|
-
this.
|
|
43
|
+
this.activeGenerator = new NodeActiveGenerator(this.board);
|
|
45
44
|
this.collapseDrawer = new CollapseDrawer(this.board);
|
|
46
45
|
this.imageDrawer = new NodeImageDrawer(this.board, this.viewContainerRef);
|
|
47
46
|
const plugins = this.board.getPluginOptions(WithTextPluginKey).textPlugins;
|
|
@@ -79,10 +78,10 @@ export class MindNodeComponent extends CommonPluginElement {
|
|
|
79
78
|
this.index = NODE_TO_INDEX.get(this.element) || 0;
|
|
80
79
|
this.roughSVG = PlaitBoard.getRoughSVG(this.board);
|
|
81
80
|
this.parentG = PlaitElement.getComponent(MindElement.getRoot(this.board, this.element)).rootG;
|
|
82
|
-
this.
|
|
81
|
+
this.nodeShapeGenerator.draw(this.element, this.g, { node: this.node });
|
|
83
82
|
this.drawLink();
|
|
84
83
|
this.drawTopic();
|
|
85
|
-
this.
|
|
84
|
+
this.activeGenerator.draw(this.element, this.g, { selected: this.selected, isEditing: this.textManage.isEditing });
|
|
86
85
|
this.drawEmojis();
|
|
87
86
|
this.drawExtend();
|
|
88
87
|
this.imageDrawer.drawImage(this.g, this.element);
|
|
@@ -96,8 +95,8 @@ export class MindNodeComponent extends CommonPluginElement {
|
|
|
96
95
|
this.node = newNode;
|
|
97
96
|
const isChangeTheme = this.board.operations.find(op => op.type === 'set_theme');
|
|
98
97
|
if (!isEqualNode || value.element !== previous.element || isChangeTheme) {
|
|
99
|
-
this.
|
|
100
|
-
this.
|
|
98
|
+
this.activeGenerator.draw(this.element, this.g, { selected: this.selected, isEditing: this.textManage.isEditing });
|
|
99
|
+
this.nodeShapeGenerator.draw(this.element, this.g, { node: this.node });
|
|
101
100
|
this.drawLink();
|
|
102
101
|
this.drawEmojis();
|
|
103
102
|
this.drawExtend();
|
|
@@ -108,7 +107,7 @@ export class MindNodeComponent extends CommonPluginElement {
|
|
|
108
107
|
const hasSameSelected = value.selected === previous.selected;
|
|
109
108
|
const hasSameParent = value.parent === previous.parent;
|
|
110
109
|
if (!hasSameSelected) {
|
|
111
|
-
this.
|
|
110
|
+
this.activeGenerator.draw(this.element, this.g, { selected: this.selected, isEditing: this.textManage.isEditing });
|
|
112
111
|
}
|
|
113
112
|
if (!hasSameParent) {
|
|
114
113
|
this.drawLink();
|
|
@@ -121,24 +120,6 @@ export class MindNodeComponent extends CommonPluginElement {
|
|
|
121
120
|
this.g.append(g);
|
|
122
121
|
}
|
|
123
122
|
}
|
|
124
|
-
drawShape() {
|
|
125
|
-
this.destroyShape();
|
|
126
|
-
const shape = getShapeByElement(this.board, this.node.origin);
|
|
127
|
-
switch (shape) {
|
|
128
|
-
case MindElementShape.roundRectangle:
|
|
129
|
-
this.shapeG = drawRoundRectangleByNode(this.board, this.node);
|
|
130
|
-
this.g.prepend(this.shapeG);
|
|
131
|
-
break;
|
|
132
|
-
default:
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
destroyShape() {
|
|
137
|
-
if (this.shapeG) {
|
|
138
|
-
this.shapeG.remove();
|
|
139
|
-
this.shapeG = null;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
123
|
drawLink() {
|
|
143
124
|
if (PlaitMind.isMind(this.element)) {
|
|
144
125
|
return;
|
|
@@ -190,10 +171,10 @@ export class MindNodeComponent extends CommonPluginElement {
|
|
|
190
171
|
this.textManage.updateRectangle();
|
|
191
172
|
}
|
|
192
173
|
editTopic() {
|
|
193
|
-
this.
|
|
174
|
+
this.activeGenerator.draw(this.element, this.g, { selected: this.selected, isEditing: true });
|
|
194
175
|
this.textManage.edit((origin) => {
|
|
195
176
|
if (origin === ExitOrigin.default) {
|
|
196
|
-
this.
|
|
177
|
+
this.activeGenerator.draw(this.element, this.g, { selected: this.selected, isEditing: false });
|
|
197
178
|
}
|
|
198
179
|
});
|
|
199
180
|
}
|
|
@@ -235,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
|
|
|
235
216
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
236
217
|
}]
|
|
237
218
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; } });
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL21pbmQtbm9kZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUVWLFlBQVksRUFDWixhQUFhLEVBR2IsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBaUIsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFFBQVEs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LEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDL0Y7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFNRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqRCxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QztJQUNMLENBQUM7OEdBck9RLGlCQUFpQjtrR0FBakIsaUJBQWlCLDhFQVhoQjs7Ozs7Ozs7S0FRVDs7MkZBR1EsaUJBQWlCO2tCQWI3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7S0FRVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgY3JlYXRlRyxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0UGx1Z2luRWxlbWVudENvbXBvbmVudCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgTk9ERV9UT19JTkRFWCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIE9uQ29udGV4dENoYW5nZWQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50XG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGlzSG9yaXpvbnRhbExheW91dCwgQWJzdHJhY3ROb2RlLCBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IFRleHRNYW5hZ2VSZWYsIFRleHRNYW5hZ2UsIEV4aXRPcmlnaW4gfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBSb3VnaFNWRyB9IGZyb20gJ3JvdWdoanMvYmluL3N2Zyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkcmF3Um91bmRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuL3V0aWxzL2RyYXcvbm9kZS1zaGFwZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgUGxhaXRNaW5kIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4vcXVlcmllcyc7XG5pbXBvcnQgeyBnZXRTaGFwZUJ5RWxlbWVudCB9IGZyb20gJy4vdXRpbHMvbm9kZS1zdHlsZS9zaGFwZSc7XG5pbXBvcnQgeyBFTEVNRU5UX1RPX05PREUgfSBmcm9tICcuL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBkcmF3QWJzdHJhY3RMaW5rIH0gZnJvbSAnLi91dGlscy9kcmF3L25vZGUtbGluay9hYnN0cmFjdC1saW5rJztcbmltcG9ydCB7IE5vZGVFbW9qaXNEcmF3ZXIgfSBmcm9tICcuL2RyYXdlci9ub2RlLWVtb2ppcy5kcmF3ZXInO1xuaW1wb3J0IHsgTWluZFRyYW5zZm9ybXMgfSBmcm9tICcuL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnRTaGFwZSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOb2RlSW5zZXJ0RHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1pbnNlcnQuZHJhd2VyJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBkcmF3TGluayB9IGZyb20gJy4vdXRpbHMvZHJhdy9ub2RlLWxpbmsvZHJhdy1saW5rJztcbmltcG9ydCB7IGdldFRvcGljUmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi91dGlscy9wb3NpdGlvbi90b3BpYyc7XG5pbXBvcnQgeyBOb2RlQWN0aXZlRHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1hY3RpdmUuZHJhd2VyJztcbmltcG9ydCB7IENvbGxhcHNlRHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1jb2xsYXBzZS5kcmF3ZXInO1xuaW1wb3J0IHsgTm9kZUltYWdlRHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1pbWFnZS5kcmF3ZXInO1xuaW1wb3J0IHsgTm9kZVNwYWNlIH0gZnJvbSAnLi91dGlscy9zcGFjZS9ub2RlLXNwYWNlJztcbmltcG9ydCB7IE5vZGVUb3BpY1RocmVzaG9sZCB9IGZyb20gJy4vY29uc3RhbnRzL25vZGUtdG9waWMtc3R5bGUnO1xuaW1wb3J0IHsgQ29tbW9uUGx1Z2luRWxlbWVudCwgV2l0aFRleHRPcHRpb25zLCBXaXRoVGV4dFBsdWdpbktleSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BsYWl0LW1pbmQtbm9kZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHBsYWl0LWNoaWxkcmVuXG4gICAgICAgICAgICAqbmdJZj1cIiFlbGVtZW50LmlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgIFtib2FyZF09XCJib2FyZFwiXG4gICAgICAgICAgICBbcGFyZW50XT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgW2VmZmVjdF09XCJlZmZlY3RcIlxuICAgICAgICAgICAgW3BhcmVudEddPVwicGFyZW50R1wiXG4gICAgICAgID48L3BsYWl0LWNoaWxkcmVuPlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWluZE5vZGVDb21wb25lbnQgZXh0ZW5kcyBDb21tb25QbHVnaW5FbGVtZW50PE1pbmRFbGVtZW50LCBQbGFpdE1pbmRCb2FyZD5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNvbnRleHRDaGFuZ2VkPE1pbmRFbGVtZW50LCBQbGFpdE1pbmRCb2FyZD4ge1xuICAgIHJvdWdoU1ZHITogUm91Z2hTVkc7XG5cbiAgICBub2RlITogTWluZE5vZGU7XG5cbiAgICBpbmRleCE6IG51bWJlcjtcblxuICAgIHBhcmVudEchOiBTVkdHRWxlbWVudDtcblxuICAgIHNoYXBlRzogU1ZHR0VsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGxpbmtHPzogU1ZHR0VsZW1lbnQ7XG5cbiAgICBleHRlbmRHPzogU1ZHR0VsZW1lbnQ7XG5cbiAgICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBub2RlRW1vamlzRHJhd2VyITogTm9kZUVtb2ppc0RyYXdlcjtcblxuICAgIG5vZGVJbnNlcnREcmF3ZXIhOiBOb2RlSW5zZXJ0RHJhd2VyO1xuXG4gICAgaW1hZ2VEcmF3ZXIhOiBOb2RlSW1hZ2VEcmF3ZXI7XG5cbiAgICBhY3RpdmVEcmF3ZXIhOiBOb2RlQWN0aXZlRHJhd2VyO1xuXG4gICAgY29sbGFwc2VEcmF3ZXIhOiBDb2xsYXBzZURyYXdlcjtcblxuICAgIGdldCB0ZXh0TWFuYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUZXh0TWFuYWdlcygpWzBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoY2RyKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplRHJhd2VyKCkge1xuICAgICAgICB0aGlzLm5vZGVFbW9qaXNEcmF3ZXIgPSBuZXcgTm9kZUVtb2ppc0RyYXdlcih0aGlzLmJvYXJkLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLm5vZGVJbnNlcnREcmF3ZXIgPSBuZXcgTm9kZUluc2VydERyYXdlcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEcmF3ZXIgPSBuZXcgTm9kZUFjdGl2ZURyYXdlcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZURyYXdlciA9IG5ldyBDb2xsYXBzZURyYXdlcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5pbWFnZURyYXdlciA9IG5ldyBOb2RlSW1hZ2VEcmF3ZXIodGhpcy5ib2FyZCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgY29uc3QgcGx1Z2lucyA9IHRoaXMuYm9hcmQuZ2V0UGx1Z2luT3B0aW9uczxXaXRoVGV4dE9wdGlvbnM+KFdpdGhUZXh0UGx1Z2luS2V5KS50ZXh0UGx1Z2lucztcblxuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gbmV3IFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gZ2V0VG9waWNSZWN0YW5nbGVCeU5vZGUodGhpcy5ib2FyZCwgdGhpcy5ub2RlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjdDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblZhbHVlQ2hhbmdlSGFuZGxlOiAodGV4dE1hbmFnZVJlZjogVGV4dE1hbmFnZVJlZikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGV4dE1hbmFnZVJlZi53aWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0ZXh0TWFuYWdlUmVmLmhlaWdodDtcbiAgICAgICAgICAgICAgICBpZiAodGV4dE1hbmFnZVJlZi5uZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRUb3BpYyh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHRleHRNYW5hZ2VSZWYubmV3VmFsdWUgYXMgTWluZEVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldFRvcGljU2l6ZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZXh0UGx1Z2luczogcGx1Z2lucyxcbiAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5tYW51YWxXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KSwgTm9kZVRvcGljVGhyZXNob2xkLmRlZmF1bHRUZXh0TWF4V2lkdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2VzKFt0ZXh0TWFuYWdlXSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZURyYXdlcigpO1xuICAgICAgICB0aGlzLm5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuaW5kZXggPSBOT0RFX1RPX0lOREVYLmdldCh0aGlzLmVsZW1lbnQpIHx8IDA7XG4gICAgICAgIHRoaXMucm91Z2hTVkcgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLnBhcmVudEcgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KE1pbmRFbGVtZW50LmdldFJvb3QodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KSkucm9vdEcgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgICAgIHRoaXMuZHJhd1NoYXBlKCk7XG4gICAgICAgIHRoaXMuZHJhd0xpbmsoKTtcbiAgICAgICAgdGhpcy5kcmF3VG9waWMoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZywgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgaXNFZGl0aW5nOiB0aGlzLnRleHRNYW5hZ2UuaXNFZGl0aW5nIH0pO1xuICAgICAgICB0aGlzLmRyYXdFbW9qaXMoKTtcbiAgICAgICAgdGhpcy5kcmF3RXh0ZW5kKCk7XG4gICAgICAgIHRoaXMuaW1hZ2VEcmF3ZXIuZHJhd0ltYWdlKHRoaXMuZywgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQodGhpcy5jb250ZXh0LnBhcmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuZy5jbGFzc0xpc3QuYWRkKCdicmFuY2gnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZWQoXG4gICAgICAgIHZhbHVlOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PE1pbmRFbGVtZW50LCBQbGFpdE1pbmRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PE1pbmRFbGVtZW50LCBQbGFpdE1pbmRCb2FyZD5cbiAgICApIHtcbiAgICAgICAgY29uc3QgbmV3Tm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUodmFsdWUuZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGlzRXF1YWxOb2RlID0gUmVjdGFuZ2xlQ2xpZW50LmlzRXF1YWwodGhpcy5ub2RlLCBuZXdOb2RlKTtcbiAgICAgICAgdGhpcy5ub2RlID0gbmV3Tm9kZTtcblxuICAgICAgICBjb25zdCBpc0NoYW5nZVRoZW1lID0gdGhpcy5ib2FyZC5vcGVyYXRpb25zLmZpbmQob3AgPT4gb3AudHlwZSA9PT0gJ3NldF90aGVtZScpO1xuXG4gICAgICAgIGlmICghaXNFcXVhbE5vZGUgfHwgdmFsdWUuZWxlbWVudCAhPT0gcHJldmlvdXMuZWxlbWVudCB8fCBpc0NoYW5nZVRoZW1lKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLCBpc0VkaXRpbmc6IHRoaXMudGV4dE1hbmFnZS5pc0VkaXRpbmcgfSk7XG4gICAgICAgICAgICB0aGlzLmRyYXdTaGFwZSgpO1xuICAgICAgICAgICAgdGhpcy5kcmF3TGluaygpO1xuICAgICAgICAgICAgdGhpcy5kcmF3RW1vamlzKCk7XG4gICAgICAgICAgICB0aGlzLmRyYXdFeHRlbmQoKTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VEcmF3ZXIudXBkYXRlSW1hZ2UodGhpcy5nLCBwcmV2aW91cy5lbGVtZW50LCB2YWx1ZS5lbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVG9waWMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1NhbWVTZWxlY3RlZCA9IHZhbHVlLnNlbGVjdGVkID09PSBwcmV2aW91cy5zZWxlY3RlZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc1NhbWVQYXJlbnQgPSB2YWx1ZS5wYXJlbnQgPT09IHByZXZpb3VzLnBhcmVudDtcbiAgICAgICAgICAgIGlmICghaGFzU2FtZVNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZywgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgaXNFZGl0aW5nOiB0aGlzLnRleHRNYW5hZ2UuaXNFZGl0aW5nIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFoYXNTYW1lUGFyZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmF3TGluaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhd0Vtb2ppcygpIHtcbiAgICAgICAgY29uc3QgZyA9IHRoaXMubm9kZUVtb2ppc0RyYXdlci5kcmF3RW1vamlzKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIGlmIChnKSB7XG4gICAgICAgICAgICB0aGlzLmcuYXBwZW5kKGcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhd1NoYXBlKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lTaGFwZSgpO1xuICAgICAgICBjb25zdCBzaGFwZSA9IGdldFNoYXBlQnlFbGVtZW50KHRoaXMuYm9hcmQsIHRoaXMubm9kZS5vcmlnaW4pIGFzIE1pbmRFbGVtZW50U2hhcGU7XG4gICAgICAgIHN3aXRjaCAoc2hhcGUpIHtcbiAgICAgICAgICAgIGNhc2UgTWluZEVsZW1lbnRTaGFwZS5yb3VuZFJlY3RhbmdsZTpcbiAgICAgICAgICAgICAgICB0aGlzLnNoYXBlRyA9IGRyYXdSb3VuZFJlY3RhbmdsZUJ5Tm9kZSh0aGlzLmJvYXJkLCB0aGlzLm5vZGUgYXMgTWluZE5vZGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuZy5wcmVwZW5kKHRoaXMuc2hhcGVHKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXN0cm95U2hhcGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnNoYXBlRykge1xuICAgICAgICAgICAgdGhpcy5zaGFwZUcucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLnNoYXBlRyA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3TGluaygpIHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KHRoaXMuZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHBhcmVudCk7XG5cbiAgICAgICAgaWYgKHRoaXMubGlua0cpIHtcbiAgICAgICAgICAgIHRoaXMubGlua0cucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQocGFyZW50KSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICAgICAgaWYgKEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KHRoaXMubm9kZS5vcmlnaW4pKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtHID0gZHJhd0Fic3RyYWN0TGluayh0aGlzLmJvYXJkLCB0aGlzLm5vZGUsIGlzSG9yaXpvbnRhbExheW91dChsYXlvdXQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGlua0cgPSBkcmF3TGluayh0aGlzLmJvYXJkLCBwYXJlbnROb2RlLCB0aGlzLm5vZGUsIGlzSG9yaXpvbnRhbExheW91dChsYXlvdXQpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmcuYXBwZW5kKHRoaXMubGlua0cpO1xuICAgIH1cblxuICAgIGRlc3Ryb3lMaW5lKCkge1xuICAgICAgICBpZiAodGhpcy5saW5rRykge1xuICAgICAgICAgICAgdGhpcy5saW5rRy5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXdFeHRlbmQoKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveUV4dGVuZCgpO1xuXG4gICAgICAgIHRoaXMuZXh0ZW5kRyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgdGhpcy5leHRlbmRHLmNsYXNzTGlzdC5hZGQoJ2V4dGVuZCcpO1xuICAgICAgICB0aGlzLmcuYXBwZW5kKHRoaXMuZXh0ZW5kRyk7XG5cbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5pc0NvbGxhcHNlZCkge1xuICAgICAgICAgICAgdGhpcy5nLmNsYXNzTGlzdC5hZGQoJ2NvbGxhcHNlZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nLmNsYXNzTGlzdC5yZW1vdmUoJ2NvbGxhcHNlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ub2RlSW5zZXJ0RHJhd2VyLmRyYXcodGhpcy5lbGVtZW50LCB0aGlzLmV4dGVuZEchKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZURyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5leHRlbmRHISk7XG4gICAgfVxuXG4gICAgZGVzdHJveUV4dGVuZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZXh0ZW5kRykge1xuICAgICAgICAgICAgdGhpcy5leHRlbmRHLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhd1RvcGljKCkge1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UuZHJhdyh0aGlzLmVsZW1lbnQuZGF0YS50b3BpYyk7XG4gICAgICAgIHRoaXMuZy5hcHBlbmQodGhpcy50ZXh0TWFuYWdlLmcpO1xuICAgIH1cblxuICAgIHVwZGF0ZVRvcGljKCkge1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UudXBkYXRlVGV4dCh0aGlzLmVsZW1lbnQuZGF0YS50b3BpYyk7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZS51cGRhdGVSZWN0YW5nbGUoKTtcbiAgICB9XG5cbiAgICBlZGl0VG9waWMoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlRHJhd2VyLmRyYXcodGhpcy5lbGVtZW50LCB0aGlzLmcsIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsIGlzRWRpdGluZzogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlLmVkaXQoKG9yaWdpbjogRXhpdE9yaWdpbikgPT4ge1xuICAgICAgICAgICAgaWYgKG9yaWdpbiA9PT0gRXhpdE9yaWdpbi5kZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZywgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgaXNFZGl0aW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdHJhY2tCeSA9IChpbmRleDogbnVtYmVyLCBub2RlOiBNaW5kTm9kZSkgPT4ge1xuICAgICAgICByZXR1cm4gbm9kZS5vcmlnaW4uaWQ7XG4gICAgfTtcblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLm5vZGVFbW9qaXNEcmF3ZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmltYWdlRHJhd2VyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKEVMRU1FTlRfVE9fTk9ERS5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcy5ub2RlKSB7XG4gICAgICAgICAgICBFTEVNRU5UX1RPX05PREUuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL21pbmQtbm9kZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBR2IsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBaUIsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMs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LFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqRCxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QztJQUNMLENBQUM7OEdBak5RLGlCQUFpQjtrR0FBakIsaUJBQWlCLDhFQVhoQjs7Ozs7Ozs7S0FRVDs7MkZBR1EsaUJBQWlCO2tCQWI3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7S0FRVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgY3JlYXRlRyxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBOT0RFX1RPX0lOREVYLFxuICAgIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsXG4gICAgT25Db250ZXh0Q2hhbmdlZCxcbiAgICBSZWN0YW5nbGVDbGllbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgaXNIb3Jpem9udGFsTGF5b3V0LCBBYnN0cmFjdE5vZGUsIE1pbmRMYXlvdXRUeXBlIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgVGV4dE1hbmFnZVJlZiwgVGV4dE1hbmFnZSwgRXhpdE9yaWdpbiB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1pbmRFbGVtZW50LCBQbGFpdE1pbmQgfSBmcm9tICcuL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi9xdWVyaWVzJztcbmltcG9ydCB7IEVMRU1FTlRfVE9fTk9ERSB9IGZyb20gJy4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IGRyYXdBYnN0cmFjdExpbmsgfSBmcm9tICcuL3V0aWxzL2RyYXcvbm9kZS1saW5rL2Fic3RyYWN0LWxpbmsnO1xuaW1wb3J0IHsgTm9kZUVtb2ppc0RyYXdlciB9IGZyb20gJy4vZHJhd2VyL25vZGUtZW1vamlzLmRyYXdlcic7XG5pbXBvcnQgeyBNaW5kVHJhbnNmb3JtcyB9IGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBOb2RlSW5zZXJ0RHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1pbnNlcnQuZHJhd2VyJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBkcmF3TGluayB9IGZyb20gJy4vdXRpbHMvZHJhdy9ub2RlLWxpbmsvZHJhdy1saW5rJztcbmltcG9ydCB7IGdldFRvcGljUmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi91dGlscy9wb3NpdGlvbi90b3BpYyc7XG5pbXBvcnQgeyBOb2RlQWN0aXZlR2VuZXJhdG9yIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1hY3RpdmUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IENvbGxhcHNlRHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1jb2xsYXBzZS5kcmF3ZXInO1xuaW1wb3J0IHsgTm9kZUltYWdlRHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1pbWFnZS5kcmF3ZXInO1xuaW1wb3J0IHsgTm9kZVNwYWNlIH0gZnJvbSAnLi91dGlscy9zcGFjZS9ub2RlLXNwYWNlJztcbmltcG9ydCB7IE5vZGVUb3BpY1RocmVzaG9sZCB9IGZyb20gJy4vY29uc3RhbnRzL25vZGUtdG9waWMtc3R5bGUnO1xuaW1wb3J0IHsgQ29tbW9uUGx1Z2luRWxlbWVudCwgV2l0aFRleHRPcHRpb25zLCBXaXRoVGV4dFBsdWdpbktleSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgTm9kZVNoYXBlR2VuZXJhdG9yIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1zaGFwZS5nZW5lcmF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BsYWl0LW1pbmQtbm9kZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHBsYWl0LWNoaWxkcmVuXG4gICAgICAgICAgICAqbmdJZj1cIiFlbGVtZW50LmlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgIFtib2FyZF09XCJib2FyZFwiXG4gICAgICAgICAgICBbcGFyZW50XT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgW2VmZmVjdF09XCJlZmZlY3RcIlxuICAgICAgICAgICAgW3BhcmVudEddPVwicGFyZW50R1wiXG4gICAgICAgID48L3BsYWl0LWNoaWxkcmVuPlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWluZE5vZGVDb21wb25lbnQgZXh0ZW5kcyBDb21tb25QbHVnaW5FbGVtZW50PE1pbmRFbGVtZW50LCBQbGFpdE1pbmRCb2FyZD5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNvbnRleHRDaGFuZ2VkPE1pbmRFbGVtZW50LCBQbGFpdE1pbmRCb2FyZD4ge1xuICAgIHJvdWdoU1ZHITogUm91Z2hTVkc7XG5cbiAgICBub2RlITogTWluZE5vZGU7XG5cbiAgICBpbmRleCE6IG51bWJlcjtcblxuICAgIHBhcmVudEchOiBTVkdHRWxlbWVudDtcblxuICAgIHNoYXBlRzogU1ZHR0VsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGxpbmtHPzogU1ZHR0VsZW1lbnQ7XG5cbiAgICBleHRlbmRHPzogU1ZHR0VsZW1lbnQ7XG5cbiAgICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBub2RlRW1vamlzRHJhd2VyITogTm9kZUVtb2ppc0RyYXdlcjtcblxuICAgIG5vZGVTaGFwZUdlbmVyYXRvciE6IE5vZGVTaGFwZUdlbmVyYXRvcjtcblxuICAgIG5vZGVJbnNlcnREcmF3ZXIhOiBOb2RlSW5zZXJ0RHJhd2VyO1xuXG4gICAgaW1hZ2VEcmF3ZXIhOiBOb2RlSW1hZ2VEcmF3ZXI7XG5cbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBOb2RlQWN0aXZlR2VuZXJhdG9yO1xuXG4gICAgY29sbGFwc2VEcmF3ZXIhOiBDb2xsYXBzZURyYXdlcjtcblxuICAgIGdldCB0ZXh0TWFuYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUZXh0TWFuYWdlcygpWzBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoY2RyKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplRHJhd2VyKCkge1xuICAgICAgICB0aGlzLm5vZGVTaGFwZUdlbmVyYXRvciA9IG5ldyBOb2RlU2hhcGVHZW5lcmF0b3IodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMubm9kZUVtb2ppc0RyYXdlciA9IG5ldyBOb2RlRW1vamlzRHJhd2VyKHRoaXMuYm9hcmQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMubm9kZUluc2VydERyYXdlciA9IG5ldyBOb2RlSW5zZXJ0RHJhd2VyKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBOb2RlQWN0aXZlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlRHJhd2VyID0gbmV3IENvbGxhcHNlRHJhd2VyKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmltYWdlRHJhd2VyID0gbmV3IE5vZGVJbWFnZURyYXdlcih0aGlzLmJvYXJkLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICBjb25zdCBwbHVnaW5zID0gdGhpcy5ib2FyZC5nZXRQbHVnaW5PcHRpb25zPFdpdGhUZXh0T3B0aW9ucz4oV2l0aFRleHRQbHVnaW5LZXkpLnRleHRQbHVnaW5zO1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gbmV3IFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gZ2V0VG9waWNSZWN0YW5nbGVCeU5vZGUodGhpcy5ib2FyZCwgdGhpcy5ub2RlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjdDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblZhbHVlQ2hhbmdlSGFuZGxlOiAodGV4dE1hbmFnZVJlZjogVGV4dE1hbmFnZVJlZikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGV4dE1hbmFnZVJlZi53aWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0ZXh0TWFuYWdlUmVmLmhlaWdodDtcbiAgICAgICAgICAgICAgICBpZiAodGV4dE1hbmFnZVJlZi5uZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRUb3BpYyh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHRleHRNYW5hZ2VSZWYubmV3VmFsdWUgYXMgTWluZEVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldFRvcGljU2l6ZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZXh0UGx1Z2luczogcGx1Z2lucyxcbiAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5tYW51YWxXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KSwgTm9kZVRvcGljVGhyZXNob2xkLmRlZmF1bHRUZXh0TWF4V2lkdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2VzKFt0ZXh0TWFuYWdlXSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZURyYXdlcigpO1xuICAgICAgICB0aGlzLm5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuaW5kZXggPSBOT0RFX1RPX0lOREVYLmdldCh0aGlzLmVsZW1lbnQpIHx8IDA7XG4gICAgICAgIHRoaXMucm91Z2hTVkcgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLnBhcmVudEcgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KE1pbmRFbGVtZW50LmdldFJvb3QodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KSkucm9vdEcgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgICAgIHRoaXMubm9kZVNoYXBlR2VuZXJhdG9yLmRyYXcodGhpcy5lbGVtZW50LCB0aGlzLmcsIHsgbm9kZTogdGhpcy5ub2RlIH0pO1xuICAgICAgICB0aGlzLmRyYXdMaW5rKCk7XG4gICAgICAgIHRoaXMuZHJhd1RvcGljKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLmRyYXcodGhpcy5lbGVtZW50LCB0aGlzLmcsIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsIGlzRWRpdGluZzogdGhpcy50ZXh0TWFuYWdlLmlzRWRpdGluZyB9KTtcbiAgICAgICAgdGhpcy5kcmF3RW1vamlzKCk7XG4gICAgICAgIHRoaXMuZHJhd0V4dGVuZCgpO1xuICAgICAgICB0aGlzLmltYWdlRHJhd2VyLmRyYXdJbWFnZSh0aGlzLmcsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKHRoaXMuY29udGV4dC5wYXJlbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmcuY2xhc3NMaXN0LmFkZCgnYnJhbmNoJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxNaW5kRWxlbWVudCwgUGxhaXRNaW5kQm9hcmQ+LFxuICAgICAgICBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxNaW5kRWxlbWVudCwgUGxhaXRNaW5kQm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG5ld05vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHZhbHVlLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBpc0VxdWFsTm9kZSA9IFJlY3RhbmdsZUNsaWVudC5pc0VxdWFsKHRoaXMubm9kZSwgbmV3Tm9kZSk7XG4gICAgICAgIHRoaXMubm9kZSA9IG5ld05vZGU7XG4gICAgICAgIGNvbnN0IGlzQ2hhbmdlVGhlbWUgPSB0aGlzLmJvYXJkLm9wZXJhdGlvbnMuZmluZChvcCA9PiBvcC50eXBlID09PSAnc2V0X3RoZW1lJyk7XG4gICAgICAgIGlmICghaXNFcXVhbE5vZGUgfHwgdmFsdWUuZWxlbWVudCAhPT0gcHJldmlvdXMuZWxlbWVudCB8fCBpc0NoYW5nZVRoZW1lKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLCBpc0VkaXRpbmc6IHRoaXMudGV4dE1hbmFnZS5pc0VkaXRpbmcgfSk7XG4gICAgICAgICAgICB0aGlzLm5vZGVTaGFwZUdlbmVyYXRvci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IG5vZGU6IHRoaXMubm9kZSB9KTtcbiAgICAgICAgICAgIHRoaXMuZHJhd0xpbmsoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhd0Vtb2ppcygpO1xuICAgICAgICAgICAgdGhpcy5kcmF3RXh0ZW5kKCk7XG4gICAgICAgICAgICB0aGlzLmltYWdlRHJhd2VyLnVwZGF0ZUltYWdlKHRoaXMuZywgcHJldmlvdXMuZWxlbWVudCwgdmFsdWUuZWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRvcGljKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lU2VsZWN0ZWQgPSB2YWx1ZS5zZWxlY3RlZCA9PT0gcHJldmlvdXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lUGFyZW50ID0gdmFsdWUucGFyZW50ID09PSBwcmV2aW91cy5wYXJlbnQ7XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLmRyYXcodGhpcy5lbGVtZW50LCB0aGlzLmcsIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsIGlzRWRpdGluZzogdGhpcy50ZXh0TWFuYWdlLmlzRWRpdGluZyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaGFzU2FtZVBhcmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0xpbmsoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXdFbW9qaXMoKSB7XG4gICAgICAgIGNvbnN0IGcgPSB0aGlzLm5vZGVFbW9qaXNEcmF3ZXIuZHJhd0Vtb2ppcyh0aGlzLmVsZW1lbnQpO1xuICAgICAgICBpZiAoZykge1xuICAgICAgICAgICAgdGhpcy5nLmFwcGVuZChnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXdMaW5rKCkge1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZCh0aGlzLmVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQodGhpcy5lbGVtZW50KTtcbiAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUocGFyZW50KTtcblxuICAgICAgICBpZiAodGhpcy5saW5rRykge1xuICAgICAgICAgICAgdGhpcy5saW5rRy5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxheW91dCA9IE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudChwYXJlbnQpIGFzIE1pbmRMYXlvdXRUeXBlO1xuICAgICAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QodGhpcy5ub2RlLm9yaWdpbikpIHtcbiAgICAgICAgICAgIHRoaXMubGlua0cgPSBkcmF3QWJzdHJhY3RMaW5rKHRoaXMuYm9hcmQsIHRoaXMubm9kZSwgaXNIb3Jpem9udGFsTGF5b3V0KGxheW91dCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5saW5rRyA9IGRyYXdMaW5rKHRoaXMuYm9hcmQsIHBhcmVudE5vZGUsIHRoaXMubm9kZSwgaXNIb3Jpem9udGFsTGF5b3V0KGxheW91dCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZy5hcHBlbmQodGhpcy5saW5rRyk7XG4gICAgfVxuXG4gICAgZGVzdHJveUxpbmUoKSB7XG4gICAgICAgIGlmICh0aGlzLmxpbmtHKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtHLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhd0V4dGVuZCgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95RXh0ZW5kKCk7XG5cbiAgICAgICAgdGhpcy5leHRlbmRHID0gY3JlYXRlRygpO1xuICAgICAgICB0aGlzLmV4dGVuZEcuY2xhc3NMaXN0LmFkZCgnZXh0ZW5kJyk7XG4gICAgICAgIHRoaXMuZy5hcHBlbmQodGhpcy5leHRlbmRHKTtcblxuICAgICAgICBpZiAodGhpcy5lbGVtZW50LmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmcuY2xhc3NMaXN0LmFkZCgnY29sbGFwc2VkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmcuY2xhc3NMaXN0LnJlbW92ZSgnY29sbGFwc2VkJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5vZGVJbnNlcnREcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZXh0ZW5kRyEpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlRHJhd2VyLmRyYXcodGhpcy5lbGVtZW50LCB0aGlzLmV4dGVuZEchKTtcbiAgICB9XG5cbiAgICBkZXN0cm95RXh0ZW5kKCkge1xuICAgICAgICBpZiAodGhpcy5leHRlbmRHKSB7XG4gICAgICAgICAgICB0aGlzLmV4dGVuZEcucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3VG9waWMoKSB7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZS5kcmF3KHRoaXMuZWxlbWVudC5kYXRhLnRvcGljKTtcbiAgICAgICAgdGhpcy5nLmFwcGVuZCh0aGlzLnRleHRNYW5hZ2UuZyk7XG4gICAgfVxuXG4gICAgdXBkYXRlVG9waWMoKSB7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZS51cGRhdGVUZXh0KHRoaXMuZWxlbWVudC5kYXRhLnRvcGljKTtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgIH1cblxuICAgIGVkaXRUb3BpYygpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZywgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgaXNFZGl0aW5nOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UuZWRpdCgob3JpZ2luOiBFeGl0T3JpZ2luKSA9PiB7XG4gICAgICAgICAgICBpZiAob3JpZ2luID09PSBFeGl0T3JpZ2luLmRlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLCBpc0VkaXRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFja0J5ID0gKGluZGV4OiBudW1iZXIsIG5vZGU6IE1pbmROb2RlKSA9PiB7XG4gICAgICAgIHJldHVybiBub2RlLm9yaWdpbi5pZDtcbiAgICB9O1xuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZS5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubm9kZUVtb2ppc0RyYXdlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuaW1hZ2VEcmF3ZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICBpZiAoRUxFTUVOVF9UT19OT0RFLmdldCh0aGlzLmVsZW1lbnQpID09PSB0aGlzLm5vZGUpIHtcbiAgICAgICAgICAgIEVMRU1FTlRfVE9fTk9ERS5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -84,7 +84,7 @@ export const withAbstract = (board) => {
|
|
|
84
84
|
newProperty =
|
|
85
85
|
abstractHandlePosition === AbstractHandlePosition.start ? { start: locationIndex + 1 } : { end: locationIndex };
|
|
86
86
|
}
|
|
87
|
-
abstractComponent.
|
|
87
|
+
abstractComponent.activeGenerator.updateAbstractOutline(activeAbstractElement, abstractHandlePosition, location);
|
|
88
88
|
}
|
|
89
89
|
mousemove(event);
|
|
90
90
|
};
|
|
@@ -101,7 +101,7 @@ export const withAbstract = (board) => {
|
|
|
101
101
|
}
|
|
102
102
|
else {
|
|
103
103
|
const abstractComponent = PlaitElement.getComponent(activeAbstractElement);
|
|
104
|
-
abstractComponent.
|
|
104
|
+
abstractComponent.activeGenerator.updateAbstractOutline(activeAbstractElement);
|
|
105
105
|
}
|
|
106
106
|
activeAbstractElement = undefined;
|
|
107
107
|
}
|
|
@@ -109,4 +109,4 @@ export const withAbstract = (board) => {
|
|
|
109
109
|
};
|
|
110
110
|
return board;
|
|
111
111
|
};
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hYnN0cmFjdC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9wbHVnaW5zL3dpdGgtYWJzdHJhY3QtcmVzaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFHWixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixPQUFPLEVBQ1AsY0FBYyxFQUNqQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsWUFBWSxFQUE4QixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFxQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFzQixNQUFNLDhCQUE4QixDQUFDO0FBRS9HLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZ0IsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDM0QsTUFBTSxRQUFRLEdBQUcsS0FBd0MsQ0FBQztJQUUxRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDaEQsSUFBSSxxQkFBOEMsQ0FBQztJQUNuRCxJQUFJLHNCQUEwRCxDQUFDO0lBQy9ELElBQUksZUFBd0MsQ0FBQztJQUM3QyxJQUFJLFVBQTZCLENBQUM7SUFDbEMsSUFBSSxXQUE0RCxDQUFDO0lBRWpFLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxL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LHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDaEY7WUFDRCxxQkFBcUIsR0FBRyxTQUFTLENBQUM7U0FDckM7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCT0FSRF9UT19IT1NULFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0UGx1Z2luLFxuICAgIFBvaW50LFxuICAgIFRyYW5zZm9ybXMsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc01haW5Qb2ludGVyLFxuICAgIHRvUG9pbnQsXG4gICAgdHJhbnNmb3JtUG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3ROb2RlLCBMYXlvdXROb2RlLCBNaW5kTGF5b3V0VHlwZSwgaXNIb3Jpem9udGFsTGF5b3V0LCBpc1N0YW5kYXJkTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50LCBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgZmluZExvY2F0aW9uTGVmdEluZGV4LCBnZXRIaXRBYnN0cmFjdEhhbmRsZSwgZ2V0TG9jYXRpb25TY29wZSwgaGFuZGxlVG91Y2hlZEFic3RyYWN0IH0gZnJvbSAnLi4vdXRpbHMvYWJzdHJhY3QvcmVzaXplJztcbmltcG9ydCB7IHNlcGFyYXRlQ2hpbGRyZW4gfSBmcm9tICcuLi91dGlscy9hYnN0cmFjdC9jb21tb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiwgQWJzdHJhY3RSZXNpemVTdGF0ZSwgUGxhaXRBYnN0cmFjdEJvYXJkIH0gZnJvbSAnLi93aXRoLWFic3RyYWN0LXJlc2l6ZS5ib2FyZCc7XG5cbmV4cG9ydCBjb25zdCB3aXRoQWJzdHJhY3Q6IFBsYWl0UGx1Z2luID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgbmV3Qm9hcmQgPSBib2FyZCBhcyBQbGFpdEJvYXJkICYgUGxhaXRBYnN0cmFjdEJvYXJkO1xuXG4gICAgY29uc3QgeyBtb3VzZWRvd24sIG1vdXNlbW92ZSwgbW91c2V1cCB9ID0gYm9hcmQ7XG4gICAgbGV0IGFjdGl2ZUFic3RyYWN0RWxlbWVudDogTWluZEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGFic3RyYWN0SGFuZGxlUG9zaXRpb246IEFic3RyYWN0SGFuZGxlUG9zaXRpb24gfCB1bmRlZmluZWQ7XG4gICAgbGV0IHRvdWNoZWRBYnN0cmFjdDogTWluZEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgbGV0IHN0YXJ0UG9pbnQ6IFBvaW50IHwgdW5kZWZpbmVkO1xuICAgIGxldCBuZXdQcm9wZXJ0eTogeyBlbmQ6IG51bWJlciB9IHwgeyBzdGFydDogbnVtYmVyIH0gfCB1bmRlZmluZWQ7XG5cbiAgICBib2FyZC5tb3VzZWRvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFpc01haW5Qb2ludGVyKGV2ZW50KSkge1xuICAgICAgICAgICAgbW91c2Vkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFjdGl2ZUFic3RyYWN0RWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKS5maWx0ZXIoZWxlbWVudCA9PiBBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSkgYXMgTWluZEVsZW1lbnRbXTtcbiAgICAgICAgY29uc3QgaG9zdCA9IEJPQVJEX1RPX0hPU1QuZ2V0KGJvYXJkKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBob3N0ISkpO1xuXG4gICAgICAgIGFjdGl2ZUFic3RyYWN0RWxlbWVudCA9IGFjdGl2ZUFic3RyYWN0RWxlbWVudHMuZmluZChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGFic3RyYWN0SGFuZGxlUG9zaXRpb24gPSBnZXRIaXRBYnN0cmFjdEhhbmRsZShib2FyZCwgZWxlbWVudCBhcyBNaW5kRWxlbWVudCwgcG9pbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGFic3RyYWN0SGFuZGxlUG9zaXRpb247XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChhY3RpdmVBYnN0cmFjdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChuZXdCb2FyZD8ub25BYnN0cmFjdFJlc2l6ZSkge1xuICAgICAgICAgICAgICAgIG5ld0JvYXJkLm9uQWJzdHJhY3RSZXNpemUoQWJzdHJhY3RSZXNpemVTdGF0ZS5zdGFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFydFBvaW50ID0gcG9pbnQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtb3VzZWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZW1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBCT0FSRF9UT19IT1NULmdldChib2FyZCk7XG4gICAgICAgIGNvbnN0IGVuZFBvaW50ID0gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHRvUG9pbnQoZXZlbnQueCwgZXZlbnQueSwgaG9zdCEpKTtcblxuICAgICAgICB0b3VjaGVkQWJzdHJhY3QgPSBoYW5kbGVUb3VjaGVkQWJzdHJhY3QoYm9hcmQsIHRvdWNoZWRBYnN0cmFjdCwgZW5kUG9pbnQpO1xuXG4gICAgICAgIGlmIChhYnN0cmFjdEhhbmRsZVBvc2l0aW9uICYmIGFjdGl2ZUFic3RyYWN0RWxlbWVudCkge1xuICAgICAgICAgICAgLy8gcHJldmVudCB0ZXh0IGZyb20gYmVpbmcgc2VsZWN0ZWRcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBhYnN0cmFjdENvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoYWN0aXZlQWJzdHJhY3RFbGVtZW50KSBhcyBNaW5kTm9kZUNvbXBvbmVudDtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBhYnN0cmFjdENvbXBvbmVudC5lbGVtZW50O1xuICAgICAgICAgICAgY29uc3Qgbm9kZUxheW91dCA9IE1pbmRRdWVyaWVzLmdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnQoYm9hcmQsIGFjdGl2ZUFic3RyYWN0RWxlbWVudCBhcyBNaW5kRWxlbWVudCkgYXMgTWluZExheW91dFR5cGU7XG4gICAgICAgICAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQobm9kZUxheW91dCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBwYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuXG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQocGFyZW50RWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaXNTdGFuZGFyZExheW91dChwYXJlbnRMYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHROb2RlQ291bnQgPSBwYXJlbnRFbGVtZW50LnJpZ2h0Tm9kZUNvdW50ITtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGxlZnRDaGlsZHJlbiwgcmlnaHRDaGlsZHJlbiB9ID0gc2VwYXJhdGVDaGlsZHJlbihwYXJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoKGFjdGl2ZUFic3RyYWN0RWxlbWVudCBhcyBNaW5kRWxlbWVudCkuZW5kISA8IHJpZ2h0Tm9kZUNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gcmlnaHRDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChhY3RpdmVBYnN0cmFjdEVsZW1lbnQgYXMgTWluZEVsZW1lbnQpLnN0YXJ0ISA+PSByaWdodE5vZGVDb3VudCkge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IGxlZnRDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXdCb2FyZD8ub25BYnN0cmFjdFJlc2l6ZSkge1xuICAgICAgICAgICAgICAgIG5ld0JvYXJkLm9uQWJzdHJhY3RSZXNpemUoQWJzdHJhY3RSZXNpemVTdGF0ZS5yZXNpemluZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc2l6aW5nTG9jYXRpb24gPSBpc0hvcml6b250YWwgPyBlbmRQb2ludFsxXSA6IGVuZFBvaW50WzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gKE1pbmRFbGVtZW50LmdldE5vZGUocGFyZW50RWxlbWVudCkgYXMgdW5rbm93bikgYXMgTGF5b3V0Tm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNjb3BlID0gZ2V0TG9jYXRpb25TY29wZShib2FyZCwgYWJzdHJhY3RIYW5kbGVQb3NpdGlvbiwgY2hpbGRyZW4sIGVsZW1lbnQsIHBhcmVudCwgaXNIb3Jpem9udGFsKTtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gTWF0aC5taW4oc2NvcGUubWF4LCBNYXRoLm1heChzY29wZS5taW4sIHJlc2l6aW5nTG9jYXRpb24pKTtcblxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uSW5kZXggPSBmaW5kTG9jYXRpb25MZWZ0SW5kZXgoYm9hcmQsIGNoaWxkcmVuLCBsb2NhdGlvbiwgaXNIb3Jpem9udGFsKTtcblxuICAgICAgICAgICAgY29uc3QgaXNQcm9wZXJ0eVVuY2hhbmdlZCA9XG4gICAgICAgICAgICAgICAgKGFic3RyYWN0SGFuZGxlUG9zaXRpb24gPT09IEFic3RyYWN0SGFuZGxlUG9zaXRpb24uc3RhcnQgJiZcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25JbmRleCArIDEgPT09IChhY3RpdmVBYnN0cmFjdEVsZW1lbnQgYXMgTWluZEVsZW1lbnQpLnN0YXJ0ISkgfHxcbiAgICAgICAgICAgICAgICAoYWJzdHJhY3RIYW5kbGVQb3NpdGlvbiA9PT0gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5lbmQgJiYgbG9jYXRpb25JbmRleCA9PT0gKGFjdGl2ZUFic3RyYWN0RWxlbWVudCBhcyBNaW5kRWxlbWVudCkuZW5kISk7XG5cbiAgICAgICAgICAgIGlmIChpc1Byb3BlcnR5VW5jaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgbmV3UHJvcGVydHkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0YW5kYXJkTGF5b3V0KHBhcmVudC5sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0Tm9kZUNvdW50ID0gcGFyZW50Lm9yaWdpbi5yaWdodE5vZGVDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0ID0gZWxlbWVudC5zdGFydCE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA+PSByaWdodE5vZGVDb3VudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25JbmRleCArPSByaWdodE5vZGVDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld1Byb3BlcnR5ID1cbiAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RIYW5kbGVQb3NpdGlvbiA9PT0gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5zdGFydCA/IHsgc3RhcnQ6IGxvY2F0aW9uSW5kZXggKyAxIH0gOiB7IGVuZDogbG9jYXRpb25JbmRleCB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhYnN0cmFjdENvbXBvbmVudCEuYWN0aXZlRHJhd2VyLnVwZGF0ZUFic3RyYWN0T3V0bGluZShhY3RpdmVBYnN0cmFjdEVsZW1lbnQsIGFic3RyYWN0SGFuZGxlUG9zaXRpb24sIGxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBtb3VzZW1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZXVwID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIHN0YXJ0UG9pbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGFic3RyYWN0SGFuZGxlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChhY3RpdmVBYnN0cmFjdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChuZXdCb2FyZD8ub25BYnN0cmFjdFJlc2l6ZSkge1xuICAgICAgICAgICAgICAgIG5ld0JvYXJkLm9uQWJzdHJhY3RSZXNpemUoQWJzdHJhY3RSZXNpemVTdGF0ZS5lbmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmV3UHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgYWN0aXZlQWJzdHJhY3RFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld1Byb3BlcnR5LCBwYXRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWJzdHJhY3RDb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGFjdGl2ZUFic3RyYWN0RWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgICAgICAgICAgYWJzdHJhY3RDb21wb25lbnQhLmFjdGl2ZURyYXdlci51cGRhdGVBYnN0cmFjdE91dGxpbmUoYWN0aXZlQWJzdHJhY3RFbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjdGl2ZUFic3RyYWN0RWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBtb3VzZXVwKGV2ZW50KTtcbiAgICB9O1xuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hYnN0cmFjdC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9wbHVnaW5zL3dpdGgtYWJzdHJhY3QtcmVzaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFHWixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixPQUFPLEVBQ1AsY0FBYyxFQUNqQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsWUFBWSxFQUE4QixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFxQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFzQixNQUFNLDhCQUE4QixDQUFDO0FBRS9HLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZ0IsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDM0QsTUFBTSxRQUFRLEdBQUcsS0FBd0MsQ0FBQztJQUUxRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDaEQsSUFBSSxxQkFBOEMsQ0FBQztJQUNuRCxJQUFJLHNCQUEwRCxDQUFDO0lBQy9ELElBQUksZUFBd0MsQ0FBQztJQUM3QyxJQUFJLFVBQTZCLENBQUM7SUFDbEMsSUFBSSxXQUE0RCxDQUFDO0lBRWpFLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxL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LHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDbkY7WUFDRCxxQkFBcUIsR0FBRyxTQUFTLENBQUM7U0FDckM7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCT0FSRF9UT19IT1NULFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0UGx1Z2luLFxuICAgIFBvaW50LFxuICAgIFRyYW5zZm9ybXMsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc01haW5Qb2ludGVyLFxuICAgIHRvUG9pbnQsXG4gICAgdHJhbnNmb3JtUG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3ROb2RlLCBMYXlvdXROb2RlLCBNaW5kTGF5b3V0VHlwZSwgaXNIb3Jpem9udGFsTGF5b3V0LCBpc1N0YW5kYXJkTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50LCBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgZmluZExvY2F0aW9uTGVmdEluZGV4LCBnZXRIaXRBYnN0cmFjdEhhbmRsZSwgZ2V0TG9jYXRpb25TY29wZSwgaGFuZGxlVG91Y2hlZEFic3RyYWN0IH0gZnJvbSAnLi4vdXRpbHMvYWJzdHJhY3QvcmVzaXplJztcbmltcG9ydCB7IHNlcGFyYXRlQ2hpbGRyZW4gfSBmcm9tICcuLi91dGlscy9hYnN0cmFjdC9jb21tb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiwgQWJzdHJhY3RSZXNpemVTdGF0ZSwgUGxhaXRBYnN0cmFjdEJvYXJkIH0gZnJvbSAnLi93aXRoLWFic3RyYWN0LXJlc2l6ZS5ib2FyZCc7XG5cbmV4cG9ydCBjb25zdCB3aXRoQWJzdHJhY3Q6IFBsYWl0UGx1Z2luID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgbmV3Qm9hcmQgPSBib2FyZCBhcyBQbGFpdEJvYXJkICYgUGxhaXRBYnN0cmFjdEJvYXJkO1xuXG4gICAgY29uc3QgeyBtb3VzZWRvd24sIG1vdXNlbW92ZSwgbW91c2V1cCB9ID0gYm9hcmQ7XG4gICAgbGV0IGFjdGl2ZUFic3RyYWN0RWxlbWVudDogTWluZEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGFic3RyYWN0SGFuZGxlUG9zaXRpb246IEFic3RyYWN0SGFuZGxlUG9zaXRpb24gfCB1bmRlZmluZWQ7XG4gICAgbGV0IHRvdWNoZWRBYnN0cmFjdDogTWluZEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgbGV0IHN0YXJ0UG9pbnQ6IFBvaW50IHwgdW5kZWZpbmVkO1xuICAgIGxldCBuZXdQcm9wZXJ0eTogeyBlbmQ6IG51bWJlciB9IHwgeyBzdGFydDogbnVtYmVyIH0gfCB1bmRlZmluZWQ7XG5cbiAgICBib2FyZC5tb3VzZWRvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFpc01haW5Qb2ludGVyKGV2ZW50KSkge1xuICAgICAgICAgICAgbW91c2Vkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFjdGl2ZUFic3RyYWN0RWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKS5maWx0ZXIoZWxlbWVudCA9PiBBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSkgYXMgTWluZEVsZW1lbnRbXTtcbiAgICAgICAgY29uc3QgaG9zdCA9IEJPQVJEX1RPX0hPU1QuZ2V0KGJvYXJkKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBob3N0ISkpO1xuXG4gICAgICAgIGFjdGl2ZUFic3RyYWN0RWxlbWVudCA9IGFjdGl2ZUFic3RyYWN0RWxlbWVudHMuZmluZChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGFic3RyYWN0SGFuZGxlUG9zaXRpb24gPSBnZXRIaXRBYnN0cmFjdEhhbmRsZShib2FyZCwgZWxlbWVudCBhcyBNaW5kRWxlbWVudCwgcG9pbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGFic3RyYWN0SGFuZGxlUG9zaXRpb247XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChhY3RpdmVBYnN0cmFjdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChuZXdCb2FyZD8ub25BYnN0cmFjdFJlc2l6ZSkge1xuICAgICAgICAgICAgICAgIG5ld0JvYXJkLm9uQWJzdHJhY3RSZXNpemUoQWJzdHJhY3RSZXNpemVTdGF0ZS5zdGFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFydFBvaW50ID0gcG9pbnQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtb3VzZWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZW1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBCT0FSRF9UT19IT1NULmdldChib2FyZCk7XG4gICAgICAgIGNvbnN0IGVuZFBvaW50ID0gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHRvUG9pbnQoZXZlbnQueCwgZXZlbnQueSwgaG9zdCEpKTtcblxuICAgICAgICB0b3VjaGVkQWJzdHJhY3QgPSBoYW5kbGVUb3VjaGVkQWJzdHJhY3QoYm9hcmQsIHRvdWNoZWRBYnN0cmFjdCwgZW5kUG9pbnQpO1xuXG4gICAgICAgIGlmIChhYnN0cmFjdEhhbmRsZVBvc2l0aW9uICYmIGFjdGl2ZUFic3RyYWN0RWxlbWVudCkge1xuICAgICAgICAgICAgLy8gcHJldmVudCB0ZXh0IGZyb20gYmVpbmcgc2VsZWN0ZWRcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBhYnN0cmFjdENvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoYWN0aXZlQWJzdHJhY3RFbGVtZW50KSBhcyBNaW5kTm9kZUNvbXBvbmVudDtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBhYnN0cmFjdENvbXBvbmVudC5lbGVtZW50O1xuICAgICAgICAgICAgY29uc3Qgbm9kZUxheW91dCA9IE1pbmRRdWVyaWVzLmdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnQoYm9hcmQsIGFjdGl2ZUFic3RyYWN0RWxlbWVudCBhcyBNaW5kRWxlbWVudCkgYXMgTWluZExheW91dFR5cGU7XG4gICAgICAgICAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQobm9kZUxheW91dCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBwYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuXG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQocGFyZW50RWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaXNTdGFuZGFyZExheW91dChwYXJlbnRMYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHROb2RlQ291bnQgPSBwYXJlbnRFbGVtZW50LnJpZ2h0Tm9kZUNvdW50ITtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGxlZnRDaGlsZHJlbiwgcmlnaHRDaGlsZHJlbiB9ID0gc2VwYXJhdGVDaGlsZHJlbihwYXJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoKGFjdGl2ZUFic3RyYWN0RWxlbWVudCBhcyBNaW5kRWxlbWVudCkuZW5kISA8IHJpZ2h0Tm9kZUNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gcmlnaHRDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChhY3RpdmVBYnN0cmFjdEVsZW1lbnQgYXMgTWluZEVsZW1lbnQpLnN0YXJ0ISA+PSByaWdodE5vZGVDb3VudCkge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IGxlZnRDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXdCb2FyZD8ub25BYnN0cmFjdFJlc2l6ZSkge1xuICAgICAgICAgICAgICAgIG5ld0JvYXJkLm9uQWJzdHJhY3RSZXNpemUoQWJzdHJhY3RSZXNpemVTdGF0ZS5yZXNpemluZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc2l6aW5nTG9jYXRpb24gPSBpc0hvcml6b250YWwgPyBlbmRQb2ludFsxXSA6IGVuZFBvaW50WzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gKE1pbmRFbGVtZW50LmdldE5vZGUocGFyZW50RWxlbWVudCkgYXMgdW5rbm93bikgYXMgTGF5b3V0Tm9kZTtcbiAgICAgICAgICAgIGNvbnN0IHNjb3BlID0gZ2V0TG9jYXRpb25TY29wZShib2FyZCwgYWJzdHJhY3RIYW5kbGVQb3NpdGlvbiwgY2hpbGRyZW4sIGVsZW1lbnQsIHBhcmVudCwgaXNIb3Jpem9udGFsKTtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gTWF0aC5taW4oc2NvcGUubWF4LCBNYXRoLm1heChzY29wZS5taW4sIHJlc2l6aW5nTG9jYXRpb24pKTtcblxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uSW5kZXggPSBmaW5kTG9jYXRpb25MZWZ0SW5kZXgoYm9hcmQsIGNoaWxkcmVuLCBsb2NhdGlvbiwgaXNIb3Jpem9udGFsKTtcblxuICAgICAgICAgICAgY29uc3QgaXNQcm9wZXJ0eVVuY2hhbmdlZCA9XG4gICAgICAgICAgICAgICAgKGFic3RyYWN0SGFuZGxlUG9zaXRpb24gPT09IEFic3RyYWN0SGFuZGxlUG9zaXRpb24uc3RhcnQgJiZcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25JbmRleCArIDEgPT09IChhY3RpdmVBYnN0cmFjdEVsZW1lbnQgYXMgTWluZEVsZW1lbnQpLnN0YXJ0ISkgfHxcbiAgICAgICAgICAgICAgICAoYWJzdHJhY3RIYW5kbGVQb3NpdGlvbiA9PT0gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5lbmQgJiYgbG9jYXRpb25JbmRleCA9PT0gKGFjdGl2ZUFic3RyYWN0RWxlbWVudCBhcyBNaW5kRWxlbWVudCkuZW5kISk7XG5cbiAgICAgICAgICAgIGlmIChpc1Byb3BlcnR5VW5jaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgbmV3UHJvcGVydHkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpc1N0YW5kYXJkTGF5b3V0KHBhcmVudC5sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0Tm9kZUNvdW50ID0gcGFyZW50Lm9yaWdpbi5yaWdodE5vZGVDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0ID0gZWxlbWVudC5zdGFydCE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA+PSByaWdodE5vZGVDb3VudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25JbmRleCArPSByaWdodE5vZGVDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld1Byb3BlcnR5ID1cbiAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RIYW5kbGVQb3NpdGlvbiA9PT0gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5zdGFydCA/IHsgc3RhcnQ6IGxvY2F0aW9uSW5kZXggKyAxIH0gOiB7IGVuZDogbG9jYXRpb25JbmRleCB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhYnN0cmFjdENvbXBvbmVudCEuYWN0aXZlR2VuZXJhdG9yLnVwZGF0ZUFic3RyYWN0T3V0bGluZShhY3RpdmVBYnN0cmFjdEVsZW1lbnQsIGFic3RyYWN0SGFuZGxlUG9zaXRpb24sIGxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBtb3VzZW1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZXVwID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIHN0YXJ0UG9pbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGFic3RyYWN0SGFuZGxlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChhY3RpdmVBYnN0cmFjdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChuZXdCb2FyZD8ub25BYnN0cmFjdFJlc2l6ZSkge1xuICAgICAgICAgICAgICAgIG5ld0JvYXJkLm9uQWJzdHJhY3RSZXNpemUoQWJzdHJhY3RSZXNpemVTdGF0ZS5lbmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmV3UHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgYWN0aXZlQWJzdHJhY3RFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld1Byb3BlcnR5LCBwYXRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWJzdHJhY3RDb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGFjdGl2ZUFic3RyYWN0RWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgICAgICAgICAgYWJzdHJhY3RDb21wb25lbnQhLmFjdGl2ZUdlbmVyYXRvci51cGRhdGVBYnN0cmFjdE91dGxpbmUoYWN0aXZlQWJzdHJhY3RFbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjdGl2ZUFic3RyYWN0RWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBtb3VzZXVwKGV2ZW50KTtcbiAgICB9O1xuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
|
|
@@ -28,14 +28,14 @@ export const withMindFragment = (baseBoard) => {
|
|
|
28
28
|
}
|
|
29
29
|
return getDeletedFragment(data);
|
|
30
30
|
};
|
|
31
|
-
board.setFragment = (data, rectangle) => {
|
|
31
|
+
board.setFragment = (data, rectangle, type) => {
|
|
32
32
|
const targetMindElements = getSelectedMindElements(board);
|
|
33
33
|
const firstLevelElements = getFirstLevelElement(targetMindElements);
|
|
34
34
|
if (firstLevelElements.length) {
|
|
35
35
|
const elements = buildClipboardData(board, firstLevelElements, rectangle ? [rectangle.x, rectangle.y] : [0, 0]);
|
|
36
36
|
setMindClipboardData(data, elements);
|
|
37
37
|
}
|
|
38
|
-
setFragment(data, rectangle);
|
|
38
|
+
setFragment(data, rectangle, type);
|
|
39
39
|
};
|
|
40
40
|
board.insertFragment = (data, targetPoint) => {
|
|
41
41
|
const elements = getDataFromClipboard(data);
|
|
@@ -87,4 +87,4 @@ export const getNextSelectedElement = (board, firstLevelElements) => {
|
|
|
87
87
|
}
|
|
88
88
|
return activeElement;
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1taW5kLWZyYWdtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW1pbmQtZnJhZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBMEIsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFNBQXFCLEVBQUUsRUFBRTtJQUN0RCxNQUFNLEtBQUssR0FBRyxTQUF3QyxDQUFDO0lBQ3ZELE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRWxFLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLElBQW9CLEVBQUUsRUFBRTtRQUNoRCxNQUFNLGtCQUFrQixHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUksa0JBQWtCLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sa0JBQWtCLEdBQUcsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5RSxNQUFNLFlBQVksR0FBRywyQkFBMkIsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUM1RSxjQUFjLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxHQUFHLGtDQUFrQyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQzNFLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEQsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1lBRWhDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksWUFBWSxFQUFFO2dCQUNkLGtCQUFrQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQzthQUMzQztTQUNKO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBeUIsRUFBRSxTQUFpQyxFQUFFLEVBQUU7UUFDakYsTUFBTSxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDcEUsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7WUFDM0IsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoSCxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDeEM7UUFDRCxXQUFXLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUF5QixFQUFFLFdBQWtCLEVBQUUsRUFBRTtRQUNyRSxNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RixJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hELG1CQUFtQixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDekQ7YUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzlCLE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLElBQUksRUFBRTtvQkFDTixtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUM3RCxPQUFPO2lCQUNWO2FBQ0o7U0FDSjtRQUNELGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLGtCQUFpQyxFQUFFLEVBQUU7SUFDM0YsSUFBSSxhQUFzQyxDQUFDO0lBQzNDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRTVFLElBQUksZ0JBQWdCLEdBQUcscUJBQXFCLENBQUM7SUFDN0MsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7UUFDekMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQzNEO0lBRUQsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDNUMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3hFLGFBQWEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVEO0tBQ0o7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoQixhQUFhLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBYyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUN2RTtLQUNKO0lBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTtJQUVsQixNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3JELE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxrQkFBa0IsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksa0JBQWtCLElBQUksYUFBYSxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ3ZELGFBQWEsR0FBRyxrQkFBa0IsQ0FBQztLQUN0QztJQUNELE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdGgsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUGxhaXROb2RlLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBhZGRTZWxlY3RlZEVsZW1lbnQsIGdldERhdGFGcm9tQ2xpcGJvYXJkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGdldEZpcnN0TGV2ZWxFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbWluZCc7XG5pbXBvcnQgeyBkZWxldGVFbGVtZW50c0hhbmRsZVJpZ2h0Tm9kZUNvdW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9yaWdodC1ub2RlLWNvdW50JztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBkZWxldGVFbGVtZW50SGFuZGxlQWJzdHJhY3QgfSBmcm9tICcuLi91dGlscy9hYnN0cmFjdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRNaW5kRWxlbWVudHMgfSBmcm9tICcuLi91dGlscy9ub2RlL2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IGJ1aWxkQ2xpcGJvYXJkRGF0YSwgaW5zZXJ0Q2xpcGJvYXJkRGF0YSwgaW5zZXJ0Q2xpcGJvYXJkVGV4dCwgc2V0TWluZENsaXBib2FyZERhdGEgfSBmcm9tICcuLi91dGlscy9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgYnVpbGRUZXh0LCBnZXRUZXh0RnJvbUNsaXBib2FyZCB9IGZyb20gJ0BwbGFpdC90ZXh0JztcblxuZXhwb3J0IGNvbnN0IHdpdGhNaW5kRnJhZ21lbnQgPSAoYmFzZUJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgYm9hcmQgPSBiYXNlQm9hcmQgYXMgUGxhaXRCb2FyZCAmIFBsYWl0TWluZEJvYXJkO1xuICAgIGNvbnN0IHsgZ2V0RGVsZXRlZEZyYWdtZW50LCBpbnNlcnRGcmFnbWVudCwgc2V0RnJhZ21lbnQgfSA9IGJvYXJkO1xuXG4gICAgYm9hcmQuZ2V0RGVsZXRlZEZyYWdtZW50ID0gKGRhdGE6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldE1pbmRFbGVtZW50cyA9IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgaWYgKHRhcmdldE1pbmRFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0TGV2ZWxFbGVtZW50cyA9IGdldEZpcnN0TGV2ZWxFbGVtZW50KHRhcmdldE1pbmRFbGVtZW50cykucmV2ZXJzZSgpO1xuICAgICAgICAgICAgY29uc3QgYWJzdHJhY3RSZWZzID0gZGVsZXRlRWxlbWVudEhhbmRsZUFic3RyYWN0KGJvYXJkLCBmaXJzdExldmVsRWxlbWVudHMpO1xuICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMuc2V0QWJzdHJhY3RzQnlSZWZzKGJvYXJkLCBhYnN0cmFjdFJlZnMpO1xuICAgICAgICAgICAgY29uc3QgcmVmcyA9IGRlbGV0ZUVsZW1lbnRzSGFuZGxlUmlnaHROb2RlQ291bnQoYm9hcmQsIHRhcmdldE1pbmRFbGVtZW50cyk7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRSaWdodE5vZGVDb3VudEJ5UmVmcyhib2FyZCwgcmVmcyk7XG4gICAgICAgICAgICBjb25zdCBkZWxldGFibGVFbGVtZW50cyA9IGdldEZpcnN0TGV2ZWxFbGVtZW50KHRhcmdldE1pbmRFbGVtZW50cyk7XG4gICAgICAgICAgICBkYXRhLnB1c2goLi4uZGVsZXRhYmxlRWxlbWVudHMpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBuZXh0U2VsZWN0ZWQgPSBnZXROZXh0U2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBmaXJzdExldmVsRWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKG5leHRTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGFkZFNlbGVjdGVkRWxlbWVudChib2FyZCwgbmV4dFNlbGVjdGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0RGVsZXRlZEZyYWdtZW50KGRhdGEpO1xuICAgIH07XG5cbiAgICBib2FyZC5zZXRGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCB8IG51bGwpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0TWluZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRNaW5kRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBjb25zdCBmaXJzdExldmVsRWxlbWVudHMgPSBnZXRGaXJzdExldmVsRWxlbWVudCh0YXJnZXRNaW5kRWxlbWVudHMpO1xuICAgICAgICBpZiAoZmlyc3RMZXZlbEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBidWlsZENsaXBib2FyZERhdGEoYm9hcmQsIGZpcnN0TGV2ZWxFbGVtZW50cywgcmVjdGFuZ2xlID8gW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueV0gOiBbMCwgMF0pO1xuICAgICAgICAgICAgc2V0TWluZENsaXBib2FyZERhdGEoZGF0YSwgZWxlbWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIHNldEZyYWdtZW50KGRhdGEsIHJlY3RhbmdsZSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmluc2VydEZyYWdtZW50ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwsIHRhcmdldFBvaW50OiBQb2ludCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IGdldERhdGFGcm9tQ2xpcGJvYXJkKGRhdGEpO1xuICAgICAgICBjb25zdCBtaW5kRWxlbWVudHMgPSBlbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgdmFsdWUpKTtcbiAgICAgICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgbWluZEVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGluc2VydENsaXBib2FyZERhdGEoYm9hcmQsIG1pbmRFbGVtZW50cywgdGFyZ2V0UG9pbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgbWluZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRNaW5kRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICAgICAgaWYgKG1pbmRFbGVtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gZ2V0VGV4dEZyb21DbGlwYm9hcmQoZGF0YSk7XG4gICAgICAgICAgICAgICAgaWYgKHRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0Q2xpcGJvYXJkVGV4dChib2FyZCwgbWluZEVsZW1lbnRzWzBdLCBidWlsZFRleHQodGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGluc2VydEZyYWdtZW50KGRhdGEsIHRhcmdldFBvaW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE5leHRTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGZpcnN0TGV2ZWxFbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGxldCBhY3RpdmVFbGVtZW50OiBNaW5kRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaXJzdExldmVsRWxlbWVudCA9IGZpcnN0TGV2ZWxFbGVtZW50c1swXTtcbiAgICBjb25zdCBmaXJzdExldmVsRWxlbWVudFBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBmaXJzdExldmVsRWxlbWVudCk7XG5cbiAgICBsZXQgbmV4dFNlbGVjdGVkUGF0aCA9IGZpcnN0TGV2ZWxFbGVtZW50UGF0aDtcbiAgICBpZiAoUGF0aC5oYXNQcmV2aW91cyhmaXJzdExldmVsRWxlbWVudFBhdGgpKSB7XG4gICAgICAgIG5leHRTZWxlY3RlZFBhdGggPSBQYXRoLnByZXZpb3VzKGZpcnN0TGV2ZWxFbGVtZW50UGF0aCk7XG4gICAgfVxuXG4gICAgaWYgKEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGZpcnN0TGV2ZWxFbGVtZW50KSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQoZmlyc3RMZXZlbEVsZW1lbnQpO1xuICAgICAgICBpZiAoIWZpcnN0TGV2ZWxFbGVtZW50cy5pbmNsdWRlcyhwYXJlbnQuY2hpbGRyZW5bZmlyc3RMZXZlbEVsZW1lbnQuc3RhcnRdKSkge1xuICAgICAgICAgICAgYWN0aXZlRWxlbWVudCA9IHBhcmVudC5jaGlsZHJlbltmaXJzdExldmVsRWxlbWVudC5zdGFydF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgICBpZiAoIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGFjdGl2ZUVsZW1lbnQgPSBQbGFpdE5vZGUuZ2V0PE1pbmRFbGVtZW50Pihib2FyZCwgbmV4dFNlbGVjdGVkUGF0aCk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge31cblxuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IGZpcnN0TGV2ZWxFbGVtZW50c1swXTtcbiAgICBjb25zdCBmaXJzdEVsZW1lbnRQYXJlbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KGZpcnN0RWxlbWVudCk7XG4gICAgY29uc3QgaGFzU2FtZVBhcmVudCA9IGZpcnN0TGV2ZWxFbGVtZW50cy5ldmVyeShlbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIE1pbmRFbGVtZW50LmZpbmRQYXJlbnQoZWxlbWVudCkgPT09IGZpcnN0RWxlbWVudFBhcmVudDtcbiAgICB9KTtcbiAgICBpZiAoZmlyc3RFbGVtZW50UGFyZW50ICYmIGhhc1NhbWVQYXJlbnQgJiYgIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgYWN0aXZlRWxlbWVudCA9IGZpcnN0RWxlbWVudFBhcmVudDtcbiAgICB9XG4gICAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQ7XG59O1xuIl19
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1taW5kLWZyYWdtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW1pbmQtZnJhZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBMEIsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFNBQXFCLEVBQUUsRUFBRTtJQUN0RCxNQUFNLEtBQUssR0FBRyxTQUF3QyxDQUFDO0lBQ3ZELE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRWxFLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLElBQW9CLEVBQUUsRUFBRTtRQUNoRCxNQUFNLGtCQUFrQixHQUFH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QUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3JELE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxrQkFBa0IsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksa0JBQWtCLElBQUksYUFBYSxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ3ZELGFBQWEsR0FBRyxrQkFBa0IsQ0FBQztLQUN0QztJQUNELE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdGgsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUGxhaXROb2RlLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBhZGRTZWxlY3RlZEVsZW1lbnQsIGdldERhdGFGcm9tQ2xpcGJvYXJkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGdldEZpcnN0TGV2ZWxFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbWluZCc7XG5pbXBvcnQgeyBkZWxldGVFbGVtZW50c0hhbmRsZVJpZ2h0Tm9kZUNvdW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9yaWdodC1ub2RlLWNvdW50JztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBkZWxldGVFbGVtZW50SGFuZGxlQWJzdHJhY3QgfSBmcm9tICcuLi91dGlscy9hYnN0cmFjdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRNaW5kRWxlbWVudHMgfSBmcm9tICcuLi91dGlscy9ub2RlL2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IGJ1aWxkQ2xpcGJvYXJkRGF0YSwgaW5zZXJ0Q2xpcGJvYXJkRGF0YSwgaW5zZXJ0Q2xpcGJvYXJkVGV4dCwgc2V0TWluZENsaXBib2FyZERhdGEgfSBmcm9tICcuLi91dGlscy9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgYnVpbGRUZXh0LCBnZXRUZXh0RnJvbUNsaXBib2FyZCB9IGZyb20gJ0BwbGFpdC90ZXh0JztcblxuZXhwb3J0IGNvbnN0IHdpdGhNaW5kRnJhZ21lbnQgPSAoYmFzZUJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgYm9hcmQgPSBiYXNlQm9hcmQgYXMgUGxhaXRCb2FyZCAmIFBsYWl0TWluZEJvYXJkO1xuICAgIGNvbnN0IHsgZ2V0RGVsZXRlZEZyYWdtZW50LCBpbnNlcnRGcmFnbWVudCwgc2V0RnJhZ21lbnQgfSA9IGJvYXJkO1xuXG4gICAgYm9hcmQuZ2V0RGVsZXRlZEZyYWdtZW50ID0gKGRhdGE6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldE1pbmRFbGVtZW50cyA9IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgaWYgKHRhcmdldE1pbmRFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0TGV2ZWxFbGVtZW50cyA9IGdldEZpcnN0TGV2ZWxFbGVtZW50KHRhcmdldE1pbmRFbGVtZW50cykucmV2ZXJzZSgpO1xuICAgICAgICAgICAgY29uc3QgYWJzdHJhY3RSZWZzID0gZGVsZXRlRWxlbWVudEhhbmRsZUFic3RyYWN0KGJvYXJkLCBmaXJzdExldmVsRWxlbWVudHMpO1xuICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMuc2V0QWJzdHJhY3RzQnlSZWZzKGJvYXJkLCBhYnN0cmFjdFJlZnMpO1xuICAgICAgICAgICAgY29uc3QgcmVmcyA9IGRlbGV0ZUVsZW1lbnRzSGFuZGxlUmlnaHROb2RlQ291bnQoYm9hcmQsIHRhcmdldE1pbmRFbGVtZW50cyk7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRSaWdodE5vZGVDb3VudEJ5UmVmcyhib2FyZCwgcmVmcyk7XG4gICAgICAgICAgICBjb25zdCBkZWxldGFibGVFbGVtZW50cyA9IGdldEZpcnN0TGV2ZWxFbGVtZW50KHRhcmdldE1pbmRFbGVtZW50cyk7XG4gICAgICAgICAgICBkYXRhLnB1c2goLi4uZGVsZXRhYmxlRWxlbWVudHMpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBuZXh0U2VsZWN0ZWQgPSBnZXROZXh0U2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBmaXJzdExldmVsRWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKG5leHRTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGFkZFNlbGVjdGVkRWxlbWVudChib2FyZCwgbmV4dFNlbGVjdGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0RGVsZXRlZEZyYWdtZW50KGRhdGEpO1xuICAgIH07XG5cbiAgICBib2FyZC5zZXRGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCB8IG51bGwsIHR5cGU6ICdjb3B5JyB8ICdjdXQnKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldE1pbmRFbGVtZW50cyA9IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgY29uc3QgZmlyc3RMZXZlbEVsZW1lbnRzID0gZ2V0Rmlyc3RMZXZlbEVsZW1lbnQodGFyZ2V0TWluZEVsZW1lbnRzKTtcbiAgICAgICAgaWYgKGZpcnN0TGV2ZWxFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gYnVpbGRDbGlwYm9hcmREYXRhKGJvYXJkLCBmaXJzdExldmVsRWxlbWVudHMsIHJlY3RhbmdsZSA/IFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnldIDogWzAsIDBdKTtcbiAgICAgICAgICAgIHNldE1pbmRDbGlwYm9hcmREYXRhKGRhdGEsIGVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRGcmFnbWVudChkYXRhLCByZWN0YW5nbGUsIHR5cGUpO1xuICAgIH07XG5cbiAgICBib2FyZC5pbnNlcnRGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLCB0YXJnZXRQb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBnZXREYXRhRnJvbUNsaXBib2FyZChkYXRhKTtcbiAgICAgICAgY29uc3QgbWluZEVsZW1lbnRzID0gZWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIHZhbHVlKSk7XG4gICAgICAgIGlmIChlbGVtZW50cy5sZW5ndGggPiAwICYmIG1pbmRFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpbnNlcnRDbGlwYm9hcmREYXRhKGJvYXJkLCBtaW5kRWxlbWVudHMsIHRhcmdldFBvaW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1pbmRFbGVtZW50cyA9IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgICAgIGlmIChtaW5kRWxlbWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IGdldFRleHRGcm9tQ2xpcGJvYXJkKGRhdGEpO1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydENsaXBib2FyZFRleHQoYm9hcmQsIG1pbmRFbGVtZW50c1swXSwgYnVpbGRUZXh0KHRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnNlcnRGcmFnbWVudChkYXRhLCB0YXJnZXRQb2ludCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXROZXh0U2VsZWN0ZWRFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBmaXJzdExldmVsRWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBsZXQgYWN0aXZlRWxlbWVudDogTWluZEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmlyc3RMZXZlbEVsZW1lbnQgPSBmaXJzdExldmVsRWxlbWVudHNbMF07XG4gICAgY29uc3QgZmlyc3RMZXZlbEVsZW1lbnRQYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZmlyc3RMZXZlbEVsZW1lbnQpO1xuXG4gICAgbGV0IG5leHRTZWxlY3RlZFBhdGggPSBmaXJzdExldmVsRWxlbWVudFBhdGg7XG4gICAgaWYgKFBhdGguaGFzUHJldmlvdXMoZmlyc3RMZXZlbEVsZW1lbnRQYXRoKSkge1xuICAgICAgICBuZXh0U2VsZWN0ZWRQYXRoID0gUGF0aC5wcmV2aW91cyhmaXJzdExldmVsRWxlbWVudFBhdGgpO1xuICAgIH1cblxuICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChmaXJzdExldmVsRWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGZpcnN0TGV2ZWxFbGVtZW50KTtcbiAgICAgICAgaWYgKCFmaXJzdExldmVsRWxlbWVudHMuaW5jbHVkZXMocGFyZW50LmNoaWxkcmVuW2ZpcnN0TGV2ZWxFbGVtZW50LnN0YXJ0XSkpIHtcbiAgICAgICAgICAgIGFjdGl2ZUVsZW1lbnQgPSBwYXJlbnQuY2hpbGRyZW5bZmlyc3RMZXZlbEVsZW1lbnQuc3RhcnRdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKCFhY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBhY3RpdmVFbGVtZW50ID0gUGxhaXROb2RlLmdldDxNaW5kRWxlbWVudD4oYm9hcmQsIG5leHRTZWxlY3RlZFBhdGgpO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XG5cbiAgICBjb25zdCBmaXJzdEVsZW1lbnQgPSBmaXJzdExldmVsRWxlbWVudHNbMF07XG4gICAgY29uc3QgZmlyc3RFbGVtZW50UGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChmaXJzdEVsZW1lbnQpO1xuICAgIGNvbnN0IGhhc1NhbWVQYXJlbnQgPSBmaXJzdExldmVsRWxlbWVudHMuZXZlcnkoZWxlbWVudCA9PiB7XG4gICAgICAgIHJldHVybiBNaW5kRWxlbWVudC5maW5kUGFyZW50KGVsZW1lbnQpID09PSBmaXJzdEVsZW1lbnRQYXJlbnQ7XG4gICAgfSk7XG4gICAgaWYgKGZpcnN0RWxlbWVudFBhcmVudCAmJiBoYXNTYW1lUGFyZW50ICYmICFhY3RpdmVFbGVtZW50KSB7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQgPSBmaXJzdEVsZW1lbnRQYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBhY3RpdmVFbGVtZW50O1xufTtcbiJdfQ==
|