@plait/mind 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base/image-base.component.d.ts +16 -0
- package/base/index.d.ts +1 -0
- package/constants/node-style.d.ts +9 -4
- package/drawer/node-image.drawer.d.ts +16 -0
- package/esm2020/base/image-base.component.mjs +28 -0
- package/esm2020/base/index.mjs +2 -1
- package/esm2020/constants/node-style.mjs +11 -6
- package/esm2020/drawer/node-active.drawer.mjs +10 -9
- package/esm2020/drawer/node-image.drawer.mjs +61 -0
- package/esm2020/interfaces/element-data.mjs +1 -1
- package/esm2020/interfaces/element.mjs +9 -1
- package/esm2020/interfaces/options.mjs +1 -1
- package/esm2020/node.component.mjs +12 -1
- package/esm2020/plugins/with-mind-image.mjs +49 -0
- package/esm2020/plugins/with-mind.mjs +4 -11
- package/esm2020/transforms/emoji.mjs +2 -2
- package/esm2020/transforms/image.mjs +10 -0
- package/esm2020/transforms/index.mjs +4 -2
- package/esm2020/transforms/node.mjs +2 -6
- package/esm2020/utils/draw/abstract-outline.mjs +44 -2
- package/esm2020/utils/draw/node-dnd.mjs +8 -1
- package/esm2020/utils/draw/node-link/logic-link.mjs +2 -2
- package/esm2020/utils/draw/node-shape.mjs +5 -5
- package/esm2020/utils/mind.mjs +2 -2
- package/esm2020/utils/node-style/shape.mjs +8 -4
- package/esm2020/utils/position/emoji.mjs +8 -8
- package/esm2020/utils/position/image.mjs +21 -0
- package/esm2020/utils/position/index.mjs +2 -1
- package/esm2020/utils/space/node-space.mjs +23 -5
- package/fesm2015/plait-mind.mjs +283 -42
- package/fesm2015/plait-mind.mjs.map +1 -1
- package/fesm2020/plait-mind.mjs +280 -42
- package/fesm2020/plait-mind.mjs.map +1 -1
- package/interfaces/element-data.d.ts +9 -0
- package/interfaces/element.d.ts +2 -1
- package/interfaces/options.d.ts +3 -1
- package/node.component.d.ts +3 -0
- package/package.json +1 -1
- package/plugins/with-mind-image.d.ts +2 -0
- package/transforms/image.d.ts +3 -0
- package/transforms/index.d.ts +1 -0
- package/utils/draw/abstract-outline.d.ts +2 -0
- package/utils/node-style/shape.d.ts +1 -0
- package/utils/position/emoji.d.ts +4 -4
- package/utils/position/image.d.ts +6 -0
- package/utils/position/index.d.ts +1 -0
- package/utils/space/node-space.d.ts +1 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ElementRef, OnInit } from '@angular/core';
|
|
2
|
+
import { ImageItem, ImageData } from '../interfaces/element-data';
|
|
3
|
+
import { PlaitBoard } from '@plait/core';
|
|
4
|
+
import { MindElement } from '../interfaces';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class MindImageBaseComponent implements OnInit {
|
|
7
|
+
protected elementRef: ElementRef<HTMLElement>;
|
|
8
|
+
imageItem: ImageItem;
|
|
9
|
+
board: PlaitBoard;
|
|
10
|
+
element: MindElement<ImageData>;
|
|
11
|
+
get nativeElement(): HTMLElement;
|
|
12
|
+
constructor(elementRef: ElementRef<HTMLElement>);
|
|
13
|
+
ngOnInit(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MindImageBaseComponent, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MindImageBaseComponent, never, never, { "imageItem": "imageItem"; "board": "board"; "element": "element"; }, {}, never, never, false, never>;
|
|
16
|
+
}
|
package/base/index.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
export declare const DefaultAbstractNodeStyle: {
|
|
2
|
-
strokeColor: string;
|
|
3
|
-
strokeWidth: number;
|
|
4
2
|
branchColor: string;
|
|
5
3
|
branchWidth: number;
|
|
4
|
+
shape: {
|
|
5
|
+
strokeColor: string;
|
|
6
|
+
strokeWidth: number;
|
|
7
|
+
};
|
|
6
8
|
};
|
|
7
9
|
export declare const DefaultNodeStyle: {
|
|
8
|
-
strokeWidth: number;
|
|
9
10
|
branchWidth: number;
|
|
10
|
-
|
|
11
|
+
shape: {
|
|
12
|
+
rectangleRadius: number;
|
|
13
|
+
strokeWidth: number;
|
|
14
|
+
fill: string;
|
|
15
|
+
};
|
|
11
16
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ImageData, MindElement } from '../interfaces';
|
|
2
|
+
import { PlaitMindBoard } from '../plugins/with-mind.board';
|
|
3
|
+
import { ComponentRef, ViewContainerRef } from '@angular/core';
|
|
4
|
+
import { MindImageBaseComponent } from '../base/image-base.component';
|
|
5
|
+
export declare class NodeImageDrawer {
|
|
6
|
+
private board;
|
|
7
|
+
private viewContainerRef;
|
|
8
|
+
componentRef: ComponentRef<MindImageBaseComponent> | null;
|
|
9
|
+
g?: SVGGElement;
|
|
10
|
+
activeG?: SVGGElement;
|
|
11
|
+
constructor(board: PlaitMindBoard, viewContainerRef: ViewContainerRef);
|
|
12
|
+
drawImage(element: MindElement): SVGGElement | undefined;
|
|
13
|
+
drawActive(element: MindElement<ImageData>): void;
|
|
14
|
+
destroyActive(): void;
|
|
15
|
+
destroy(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class MindImageBaseComponent {
|
|
4
|
+
get nativeElement() {
|
|
5
|
+
return this.elementRef.nativeElement;
|
|
6
|
+
}
|
|
7
|
+
constructor(elementRef) {
|
|
8
|
+
this.elementRef = elementRef;
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() { }
|
|
11
|
+
}
|
|
12
|
+
MindImageBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MindImageBaseComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
13
|
+
MindImageBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: MindImageBaseComponent, inputs: { imageItem: "imageItem", board: "board", element: "element" }, host: { classAttribute: "mind-node-image" }, ngImport: i0 });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MindImageBaseComponent, decorators: [{
|
|
15
|
+
type: Directive,
|
|
16
|
+
args: [{
|
|
17
|
+
host: {
|
|
18
|
+
class: 'mind-node-image'
|
|
19
|
+
}
|
|
20
|
+
}]
|
|
21
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { imageItem: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], board: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], element: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9iYXNlL2ltYWdlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVVyRSxNQUFNLE9BQU8sc0JBQXNCO0lBVS9CLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQXNCLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO0lBQUcsQ0FBQztJQUU3RCxRQUFRLEtBQVUsQ0FBQzs7bUhBaEJWLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1AsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxpQkFBaUI7cUJBQzNCO2lCQUNKO2lHQUdHLFNBQVM7c0JBRFIsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWFnZUl0ZW0sIEltYWdlRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWluZC1ub2RlLWltYWdlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTWluZEltYWdlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBpbWFnZUl0ZW0hOiBJbWFnZUl0ZW07XG5cbiAgICBASW5wdXQoKVxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIEBJbnB1dCgpXG4gICAgZWxlbWVudCE6IE1pbmRFbGVtZW50PEltYWdlRGF0YT47XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiJdfQ==
|
package/esm2020/base/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './base.drawer';
|
|
2
2
|
export * from './emoji-base.component';
|
|
3
|
-
|
|
3
|
+
export * from './image-base.component';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9iYXNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS5kcmF3ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lbW9qaS1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLWJhc2UuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { GRAY_COLOR } from './default';
|
|
2
2
|
export const DefaultAbstractNodeStyle = {
|
|
3
|
-
strokeColor: GRAY_COLOR,
|
|
4
|
-
strokeWidth: 2,
|
|
5
3
|
branchColor: GRAY_COLOR,
|
|
6
|
-
branchWidth: 2
|
|
4
|
+
branchWidth: 2,
|
|
5
|
+
shape: {
|
|
6
|
+
strokeColor: GRAY_COLOR,
|
|
7
|
+
strokeWidth: 2
|
|
8
|
+
}
|
|
7
9
|
};
|
|
8
10
|
export const DefaultNodeStyle = {
|
|
9
|
-
strokeWidth: 3,
|
|
10
11
|
branchWidth: 3,
|
|
11
|
-
|
|
12
|
+
shape: {
|
|
13
|
+
rectangleRadius: 4,
|
|
14
|
+
strokeWidth: 3,
|
|
15
|
+
fill: 'none'
|
|
16
|
+
}
|
|
12
17
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9ub2RlLXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDcEMsV0FBVyxFQUFFLFVBQVU7SUFDdkIsV0FBVyxFQUFFLENBQUM7SUFDZCxLQUFLLEVBQUU7UUFDSCxXQUFXLEVBQUUsVUFBVTtRQUN2QixXQUFXLEVBQUUsQ0FBQztLQUNqQjtDQUVKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixXQUFXLEVBQUUsQ0FBQztJQUNkLEtBQUssRUFBRTtRQUNILGVBQWUsRUFBRSxDQUFDO1FBQ2xCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLE1BQU07S0FDZjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHUkFZX0NPTE9SIH0gZnJvbSAnLi9kZWZhdWx0JztcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRBYnN0cmFjdE5vZGVTdHlsZSA9IHtcbiAgICBicmFuY2hDb2xvcjogR1JBWV9DT0xPUixcbiAgICBicmFuY2hXaWR0aDogMixcbiAgICBzaGFwZToge1xuICAgICAgICBzdHJva2VDb2xvcjogR1JBWV9DT0xPUixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDJcbiAgICB9XG4gXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdE5vZGVTdHlsZSA9IHtcbiAgICBicmFuY2hXaWR0aDogMyxcbiAgICBzaGFwZToge1xuICAgICAgICByZWN0YW5nbGVSYWRpdXM6IDQsXG4gICAgICAgIHN0cm9rZVdpZHRoOiAzLFxuICAgICAgICBmaWxsOiAnbm9uZSdcbiAgICB9XG59O1xuIl19
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { PlaitBoard, createG, drawRoundRectangle } from '@plait/core';
|
|
1
|
+
import { PlaitBoard, RectangleClient, createG, drawRoundRectangle } from '@plait/core';
|
|
2
2
|
import { MindElement } from '../interfaces';
|
|
3
3
|
import { BaseDrawer } from '../base/base.drawer';
|
|
4
4
|
import { getRectangleByNode } from '../utils/position/node';
|
|
5
5
|
import { PRIMARY_COLOR } from '../constants/default';
|
|
6
6
|
import { AbstractNode } from '@plait/layouts';
|
|
7
7
|
import { drawAbstractIncludedOutline } from '../utils/draw/abstract-outline';
|
|
8
|
+
import { DefaultNodeStyle } from '../constants/node-style';
|
|
9
|
+
import { getStrokeWidthByElement } from '../utils/node-style/shape';
|
|
8
10
|
export class NodeActiveDrawer extends BaseDrawer {
|
|
9
11
|
canDraw(element, data) {
|
|
10
12
|
if (data.selected) {
|
|
@@ -22,14 +24,13 @@ export class NodeActiveDrawer extends BaseDrawer {
|
|
|
22
24
|
activeG.append(this.abstractOutlineG);
|
|
23
25
|
}
|
|
24
26
|
const node = MindElement.getNode(element);
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
+
const rectangle = getRectangleByNode(node);
|
|
28
|
+
const activeStrokeWidth = 2;
|
|
29
|
+
// add 0.1 to avoid white gap
|
|
30
|
+
const offset = (getStrokeWidthByElement(this.board, element) + activeStrokeWidth) / 2 - 0.1;
|
|
31
|
+
const activeRectangle = RectangleClient.getOutlineRectangle(rectangle, -offset);
|
|
32
|
+
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 + offset);
|
|
27
33
|
this.g.appendChild(strokeG);
|
|
28
|
-
if (!data.isEditing) {
|
|
29
|
-
const fillG = drawRoundRectangle(PlaitBoard.getRoughSVG(this.board), x - 2, y - 2, x + width + 2, y + height + 2, { stroke: PRIMARY_COLOR, fill: PRIMARY_COLOR, fillStyle: 'solid' }, true);
|
|
30
|
-
fillG.style.opacity = '0.15';
|
|
31
|
-
this.g.appendChild(fillG);
|
|
32
|
-
}
|
|
33
34
|
return activeG;
|
|
34
35
|
}
|
|
35
36
|
updateAbstractOutline(element, activeHandlePosition, resizingLocation) {
|
|
@@ -40,4 +41,4 @@ export class NodeActiveDrawer extends BaseDrawer {
|
|
|
40
41
|
this.g.append(this.abstractOutlineG);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3RpdmUuZHJhd2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvZHJhd2VyL25vZGUtYWN0aXZlLmRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU9wRSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsVUFBc0I7SUFHeEQsT0FBTyxDQUFDLE9BQThCLEVBQUUsSUFBZ0I7UUFDcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDZjthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQThCLEVBQUUsSUFBZ0I7UUFDckQsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7UUFFakIsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDekM7UUFDRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLDZCQUE2QjtRQUM3QixNQUFNLE1BQU0sR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzVGLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRixNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FDOUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQ2xDLGVBQWUsQ0FBQyxDQUFDLEVBQ2pCLGVBQWUsQ0FBQyxDQUFDLEVBQ2pCLGVBQWUsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLEtBQUssRUFDekMsZUFBZSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxFQUMxQyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFDbkUsSUFBSSxFQUNKLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUNsRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsb0JBQTZDLEVBQUUsZ0JBQXlCO1FBQ2hILElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRywyQkFBMkIsQ0FDL0MsSUFBSSxDQUFDLEtBQUssRUFDVixVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDbEMsT0FBTyxFQUNQLG9CQUFvQixFQUNwQixnQkFBZ0IsQ0FDbkIsQ0FBQztRQUNGLElBQUksQ0FBQyxDQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCwgY3JlYXRlRywgZHJhd1JvdW5kUmVjdGFuZ2xlIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIEJhc2VEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYXNlRHJhd2VyIH0gZnJvbSAnLi4vYmFzZS9iYXNlLmRyYXdlcic7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9ub2RlJztcbmltcG9ydCB7IFBSSU1BUllfQ09MT1IgfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBkcmF3QWJzdHJhY3RJbmNsdWRlZE91dGxpbmUgfSBmcm9tICcuLi91dGlscy9kcmF3L2Fic3RyYWN0LW91dGxpbmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1hYnN0cmFjdC1yZXNpemUuYm9hcmQnO1xuaW1wb3J0IHsgRGVmYXVsdE5vZGVTdHlsZSB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcbmltcG9ydCB7IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS1zdHlsZS9zaGFwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlRGF0YSB7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgaXNFZGl0aW5nOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTm9kZUFjdGl2ZURyYXdlciBleHRlbmRzIEJhc2VEcmF3ZXI8QWN0aXZlRGF0YT4ge1xuICAgIGFic3RyYWN0T3V0bGluZUc/OiBTVkdHRWxlbWVudDtcblxuICAgIGNhbkRyYXcoZWxlbWVudDogTWluZEVsZW1lbnQ8QmFzZURhdGE+LCBkYXRhOiBBY3RpdmVEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJhc2VEcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50PEJhc2VEYXRhPiwgZGF0YTogQWN0aXZlRGF0YSk6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgY29uc3QgYWN0aXZlRyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgdGhpcy5nID0gYWN0aXZlRztcblxuICAgICAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWJzdHJhY3RPdXRsaW5lRyA9IGRyYXdBYnN0cmFjdEluY2x1ZGVkT3V0bGluZSh0aGlzLmJvYXJkLCBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLCBlbGVtZW50KTtcbiAgICAgICAgICAgIGFjdGl2ZUcuYXBwZW5kKHRoaXMuYWJzdHJhY3RPdXRsaW5lRyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgbm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShub2RlKTtcbiAgICAgICAgY29uc3QgYWN0aXZlU3Ryb2tlV2lkdGggPSAyO1xuICAgICAgICAvLyBhZGQgMC4xIHRvIGF2b2lkIHdoaXRlIGdhcFxuICAgICAgICBjb25zdCBvZmZzZXQgPSAoZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCkgKyBhY3RpdmVTdHJva2VXaWR0aCkgLyAyIC0gMC4xO1xuICAgICAgICBjb25zdCBhY3RpdmVSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0T3V0bGluZVJlY3RhbmdsZShyZWN0YW5nbGUsIC1vZmZzZXQpO1xuICAgICAgICBjb25zdCBzdHJva2VHID0gZHJhd1JvdW5kUmVjdGFuZ2xlKFxuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKSxcbiAgICAgICAgICAgIGFjdGl2ZVJlY3RhbmdsZS54LFxuICAgICAgICAgICAgYWN0aXZlUmVjdGFuZ2xlLnksXG4gICAgICAgICAgICBhY3RpdmVSZWN0YW5nbGUueCArIGFjdGl2ZVJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgIGFjdGl2ZVJlY3RhbmdsZS55ICsgYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCxcbiAgICAgICAgICAgIHsgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLCBzdHJva2VXaWR0aDogYWN0aXZlU3Ryb2tlV2lkdGgsIGZpbGw6ICcnIH0sXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgRGVmYXVsdE5vZGVTdHlsZS5zaGFwZS5yZWN0YW5nbGVSYWRpdXMgKyBvZmZzZXRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5nLmFwcGVuZENoaWxkKHN0cm9rZUcpO1xuICAgICAgICByZXR1cm4gYWN0aXZlRztcbiAgICB9XG5cbiAgICB1cGRhdGVBYnN0cmFjdE91dGxpbmUoZWxlbWVudDogTWluZEVsZW1lbnQsIGFjdGl2ZUhhbmRsZVBvc2l0aW9uPzogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiwgcmVzaXppbmdMb2NhdGlvbj86IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5hYnN0cmFjdE91dGxpbmVHKSB7XG4gICAgICAgICAgICB0aGlzLmFic3RyYWN0T3V0bGluZUcucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hYnN0cmFjdE91dGxpbmVHID0gZHJhd0Fic3RyYWN0SW5jbHVkZWRPdXRsaW5lKFxuICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCksXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgYWN0aXZlSGFuZGxlUG9zaXRpb24sXG4gICAgICAgICAgICByZXNpemluZ0xvY2F0aW9uXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZyEuYXBwZW5kKHRoaXMuYWJzdHJhY3RPdXRsaW5lRyk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, createForeignObject, createG } from '@plait/core';
|
|
2
|
+
import { MindElement } from '../interfaces';
|
|
3
|
+
import { getImageForeignRectangle } from '../utils';
|
|
4
|
+
import { MindImageBaseComponent } from '../base/image-base.component';
|
|
5
|
+
import { PRIMARY_COLOR, WithMindPluginKey } from '../constants';
|
|
6
|
+
export class NodeImageDrawer {
|
|
7
|
+
constructor(board, viewContainerRef) {
|
|
8
|
+
this.board = board;
|
|
9
|
+
this.viewContainerRef = viewContainerRef;
|
|
10
|
+
this.componentRef = null;
|
|
11
|
+
}
|
|
12
|
+
drawImage(element) {
|
|
13
|
+
this.destroy();
|
|
14
|
+
if (MindElement.hasImage(element)) {
|
|
15
|
+
this.g = createG();
|
|
16
|
+
const foreignRectangle = getImageForeignRectangle(this.board, element);
|
|
17
|
+
const foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
|
|
18
|
+
this.g.append(foreignObject);
|
|
19
|
+
if (this.componentRef) {
|
|
20
|
+
this.componentRef.destroy();
|
|
21
|
+
this.componentRef = null;
|
|
22
|
+
}
|
|
23
|
+
const componentType = this.board.getPluginOptions(WithMindPluginKey).imageComponentType || MindImageBaseComponent;
|
|
24
|
+
if (!componentType) {
|
|
25
|
+
throw new Error('Not implement drawEmoji method error.');
|
|
26
|
+
}
|
|
27
|
+
this.componentRef = this.viewContainerRef.createComponent(componentType);
|
|
28
|
+
this.componentRef.instance.board = this.board;
|
|
29
|
+
this.componentRef.instance.element = element;
|
|
30
|
+
this.componentRef.instance.imageItem = element.data.image;
|
|
31
|
+
foreignObject.append(this.componentRef.instance.nativeElement);
|
|
32
|
+
return this.g;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
drawActive(element) {
|
|
37
|
+
this.destroyActive();
|
|
38
|
+
const imageRectangle = getImageForeignRectangle(this.board, element);
|
|
39
|
+
const rectangle = RectangleClient.getOutlineRectangle(imageRectangle, -1);
|
|
40
|
+
const roughSVG = PlaitBoard.getRoughSVG(this.board);
|
|
41
|
+
this.activeG = roughSVG.rectangle(rectangle.x, rectangle.y, rectangle.width, rectangle.height, {
|
|
42
|
+
stroke: PRIMARY_COLOR,
|
|
43
|
+
fill: '',
|
|
44
|
+
fillStyle: 'solid'
|
|
45
|
+
});
|
|
46
|
+
this.g?.append(this.activeG);
|
|
47
|
+
}
|
|
48
|
+
destroyActive() {
|
|
49
|
+
this.activeG?.remove();
|
|
50
|
+
}
|
|
51
|
+
destroy() {
|
|
52
|
+
if (this.g) {
|
|
53
|
+
this.g.remove();
|
|
54
|
+
}
|
|
55
|
+
if (this.componentRef) {
|
|
56
|
+
this.componentRef.destroy();
|
|
57
|
+
this.componentRef = null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pbWFnZS5kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9kcmF3ZXIvbm9kZS1pbWFnZS5kcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hGLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXBELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFaEUsTUFBTSxPQUFPLGVBQWU7SUFPeEIsWUFBb0IsS0FBcUIsRUFBVSxnQkFBa0M7UUFBakUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTnJGLGlCQUFZLEdBQWdELElBQUksQ0FBQztJQU11QixDQUFDO0lBRXpGLFNBQVMsQ0FBQyxPQUFvQjtRQUMxQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUNuQixNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkUsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQ3JDLGdCQUFnQixDQUFDLENBQUMsRUFDbEIsZ0JBQWdCLENBQUMsQ0FBQyxFQUNsQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQ3RCLGdCQUFnQixDQUFDLE1BQU0sQ0FDMUIsQ0FBQztZQUVGLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTdCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDNUI7WUFDRCxNQUFNLGFBQWEsR0FDZixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFrQixpQkFBaUIsQ0FBQyxDQUFDLGtCQUFrQixJQUFJLHNCQUFzQixDQUFDO1lBQ2pILElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQzthQUM1RDtZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUUxRCxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNqQjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBK0I7UUFDdEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLE1BQU0sY0FBYyxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckUsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzNGLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLE9BQU87U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCwgY3JlYXRlRm9yZWlnbk9iamVjdCwgY3JlYXRlRyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEltYWdlRGF0YSwgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgZ2V0SW1hZ2VGb3JlaWduUmVjdGFuZ2xlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaW5kSW1hZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9pbWFnZS1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXRoTWluZE9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wdGlvbnMnO1xuaW1wb3J0IHsgUFJJTUFSWV9DT0xPUiwgV2l0aE1pbmRQbHVnaW5LZXkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgTm9kZUltYWdlRHJhd2VyIHtcbiAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxNaW5kSW1hZ2VCYXNlQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuXG4gICAgZz86IFNWR0dFbGVtZW50O1xuXG4gICAgYWN0aXZlRz86IFNWR0dFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBib2FyZDogUGxhaXRNaW5kQm9hcmQsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICAgIGRyYXdJbWFnZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmcgPSBjcmVhdGVHKCk7XG4gICAgICAgICAgICBjb25zdCBmb3JlaWduUmVjdGFuZ2xlID0gZ2V0SW1hZ2VGb3JlaWduUmVjdGFuZ2xlKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgZm9yZWlnbk9iamVjdCA9IGNyZWF0ZUZvcmVpZ25PYmplY3QoXG4gICAgICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS54LFxuICAgICAgICAgICAgICAgIGZvcmVpZ25SZWN0YW5nbGUueSxcbiAgICAgICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLndpZHRoLFxuICAgICAgICAgICAgICAgIGZvcmVpZ25SZWN0YW5nbGUuaGVpZ2h0XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLmcuYXBwZW5kKGZvcmVpZ25PYmplY3QpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50VHlwZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5nZXRQbHVnaW5PcHRpb25zPFdpdGhNaW5kT3B0aW9ucz4oV2l0aE1pbmRQbHVnaW5LZXkpLmltYWdlQ29tcG9uZW50VHlwZSB8fCBNaW5kSW1hZ2VCYXNlQ29tcG9uZW50O1xuICAgICAgICAgICAgaWYgKCFjb21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50IGRyYXdFbW9qaSBtZXRob2QgZXJyb3IuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5ib2FyZCA9IHRoaXMuYm9hcmQ7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmltYWdlSXRlbSA9IGVsZW1lbnQuZGF0YS5pbWFnZTtcblxuICAgICAgICAgICAgZm9yZWlnbk9iamVjdC5hcHBlbmQodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZHJhd0FjdGl2ZShlbGVtZW50OiBNaW5kRWxlbWVudDxJbWFnZURhdGE+KSB7XG4gICAgICAgIHRoaXMuZGVzdHJveUFjdGl2ZSgpO1xuXG4gICAgICAgIGNvbnN0IGltYWdlUmVjdGFuZ2xlID0gZ2V0SW1hZ2VGb3JlaWduUmVjdGFuZ2xlKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0T3V0bGluZVJlY3RhbmdsZShpbWFnZVJlY3RhbmdsZSwgLTEpO1xuICAgICAgICBjb25zdCByb3VnaFNWRyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuYWN0aXZlRyA9IHJvdWdoU1ZHLnJlY3RhbmdsZShyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnksIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLmhlaWdodCwge1xuICAgICAgICAgICAgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgZmlsbDogJycsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZz8uYXBwZW5kKHRoaXMuYWN0aXZlRyk7XG4gICAgfVxuXG4gICAgZGVzdHJveUFjdGl2ZSgpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVHPy5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5nKSB7XG4gICAgICAgICAgICB0aGlzLmcucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1vamlJdGVtIHtcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEltYWdlSXRlbSB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRGF0YSB7XG4gICAgdG9waWM6IEVsZW1lbnQ7XG4gICAgZW1vamlzPzogRW1vamlJdGVtW107XG4gICAgaW1hZ2U/OiBJbWFnZUl0ZW07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1vamlEYXRhIGV4dGVuZHMgQmFzZURhdGEge1xuICAgIGVtb2ppczogRW1vamlJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VEYXRhIGV4dGVuZHMgQmFzZURhdGEge1xuICAgIGltYWdlOiBJbWFnZUl0ZW07XG59XG4iXX0=
|
|
@@ -77,6 +77,14 @@ export const MindElement = {
|
|
|
77
77
|
return false;
|
|
78
78
|
}
|
|
79
79
|
},
|
|
80
|
+
hasImage(element) {
|
|
81
|
+
if (element.data.image) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
},
|
|
80
88
|
getEmojis(element) {
|
|
81
89
|
return element.data.emojis;
|
|
82
90
|
},
|
|
@@ -102,4 +110,4 @@ export var BranchShape;
|
|
|
102
110
|
BranchShape["bight"] = "bight";
|
|
103
111
|
BranchShape["polyline"] = "polyline";
|
|
104
112
|
})(BranchShape || (BranchShape = {}));
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2ludGVyZmFjZXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBb0MzQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFzQixFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsU0FBUyxDQUFDLEtBQWtCLEVBQUUsTUFBc0I7UUFDaEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBa0I7UUFDL0IsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBbUIsQ0FBQztRQUN4RSxPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBaUIsRUFBRSxPQUFxQjtRQUNsRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBaUI7UUFDdkIsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUN4RDtRQUNELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDO1FBQ3ZELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBaUI7UUFDeEIsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQWdCLENBQUM7UUFDdkQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNELE9BQU8sQ0FBQyxLQUFpQixFQUFFLE9BQW9CO1FBQzNDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQWMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQWlCLEVBQUUsT0FBb0I7UUFDaEQsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUNuQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDckQsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25CO1NBQ0o7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxDQUFDLE9BQW9CO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELGNBQWMsQ0FBQyxPQUFvQjtRQUMvQixJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsU0FBUyxDQUFDLE9BQW9CO1FBQzFCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUM7U0FDZjthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLE9BQStCO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFvQjtRQUMzQixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBc0IsQ0FBQztRQUMxRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUNELGFBQWEsQ0FBQyxPQUFvQjtRQUM5QixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBc0IsQ0FBQztRQUMxRSxJQUFJLFNBQVMsRUFBRTtZQUNYLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztTQUM1RDtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDeEIsc0RBQWtDLENBQUE7SUFDbEMsMkNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ25CLDhCQUFlLENBQUE7SUFDZixvQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0luZGVudGVkTGF5b3V0LCBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE5PREVfVE9fUEFSRU5ULCBQYXRoLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0Tm9kZSwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19OT0RFIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQmFzZURhdGEsIEVtb2ppRGF0YSB9IGZyb20gJy4vZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vbm9kZS5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1pbmRFbGVtZW50PFQgPSBCYXNlRGF0YT4gZXh0ZW5kcyBQbGFpdEVsZW1lbnQge1xuICAgIGRhdGE6IFQ7XG4gICAgY2hpbGRyZW46IE1pbmRFbGVtZW50W107XG4gICAgcmlnaHROb2RlQ291bnQ/OiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICBpc1Jvb3Q/OiBib29sZWFuO1xuXG4gICAgLy8gbm9kZSBzdHlsZSBhdHRyaWJ1dGVzXG4gICAgZmlsbD86IHN0cmluZztcbiAgICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgICBzdHJva2VXaWR0aD86IG51bWJlcjtcbiAgICBzaGFwZT86IE1pbmRFbGVtZW50U2hhcGU7XG5cbiAgICAvLyBsaW5rIHN0eWxlIGF0dHJpYnV0ZXNcbiAgICBicmFuY2hDb2xvcj86IHN0cmluZztcbiAgICBicmFuY2hXaWR0aD86IG51bWJlcjtcbiAgICBicmFuY2hTaGFwZT86IEJyYW5jaFNoYXBlO1xuXG4gICAgLy8gbGF5b3V0XG4gICAgbGF5b3V0PzogTWluZExheW91dFR5cGU7XG4gICAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xuXG4gICAgc3RhcnQ/OiBudW1iZXI7XG4gICAgZW5kPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0TWluZCBleHRlbmRzIE1pbmRFbGVtZW50IHtcbiAgICB0eXBlOiAnbWluZG1hcCc7XG4gICAgcG9pbnRzOiBQb2ludFtdO1xufVxuXG5leHBvcnQgY29uc3QgUGxhaXRNaW5kID0ge1xuICAgIGlzTWluZDogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdE1pbmQgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ21pbmRtYXAnO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBNaW5kRWxlbWVudCA9IHtcbiAgICBoYXNMYXlvdXQodmFsdWU6IE1pbmRFbGVtZW50LCBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlKSB7XG4gICAgICAgIGNvbnN0IF9sYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQodmFsdWUpO1xuICAgICAgICByZXR1cm4gX2xheW91dCA9PT0gbGF5b3V0O1xuICAgIH0sXG4gICAgaXNJbmRlbnRlZExheW91dCh2YWx1ZTogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgX2xheW91dCA9IE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudCh2YWx1ZSkgYXMgTWluZExheW91dFR5cGU7XG4gICAgICAgIHJldHVybiBpc0luZGVudGVkTGF5b3V0KF9sYXlvdXQpO1xuICAgIH0sXG4gICAgaXNNaW5kRWxlbWVudChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KTogZWxlbWVudCBpcyBNaW5kRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXRoLnNsaWNlKDAsIDEpKTtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQocm9vdEVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0UGFyZW50KG5vZGU6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKG5vZGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbmQgcm9vdCBub2RlIGNhbiBub3QgZ2V0IHBhcmVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IE5PREVfVE9fUEFSRU5ULmdldChub2RlKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9LFxuICAgIGZpbmRQYXJlbnQobm9kZTogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQobm9kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50ID0gTk9ERV9UT19QQVJFTlQuZ2V0KG5vZGUpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgIH0sXG4gICAgZ2V0Um9vdChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aC5zbGljZSgwLCAxKSkgYXMgUGxhaXRNaW5kO1xuICAgIH0sXG4gICAgZ2V0QW5jZXN0b3JzKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHBhcmVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBQYXRoLmFuY2VzdG9ycyhwYXRoLCB7IHJldmVyc2U6IHRydWUgfSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwKTtcbiAgICAgICAgICAgIGlmIChuICYmICFQbGFpdEJvYXJkLmlzQm9hcmQobikpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRzLnB1c2gobik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmVudHM7XG4gICAgfSxcbiAgICBnZXROb2RlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBFTEVNRU5UX1RPX05PREUuZ2V0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBnZXQgbm9kZSBmcm9tICR7SlNPTi5zdHJpbmdpZnkoZWxlbWVudCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSxcbiAgICBmaW5kUGFyZW50Tm9kZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBNaW5kRWxlbWVudC5nZXROb2RlKHBhcmVudCk7XG4gICAgfSxcbiAgICBoYXNFbW9qaXMoZWxlbWVudDogTWluZEVsZW1lbnQpOiBlbGVtZW50IGlzIE1pbmRFbGVtZW50PEVtb2ppRGF0YT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5kYXRhLmVtb2ppcykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldEVtb2ppcyhlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmRhdGEuZW1vamlzO1xuICAgIH0sXG4gICAgaGFzTW91bnRlZChlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGVsZW1lbnQpIGFzIE1pbmROb2RlQ29tcG9uZW50O1xuICAgICAgICByZXR1cm4gISFjb21wb25lbnQ7XG4gICAgfSwgXG4gICAgZ2V0VGV4dEVkaXRvcihlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGVsZW1lbnQpIGFzIE1pbmROb2RlQ29tcG9uZW50O1xuICAgICAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50LnRleHRNYW5hZ2UuY29tcG9uZW50UmVmLmluc3RhbmNlLmVkaXRvcjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3QgZ2V0IGNvcnJlY3RseSBjb21wb25lbnQgaW4gZ2V0IHRleHQgZWRpdG9yJyk7XG4gICAgfVxufTtcblxuZXhwb3J0IGVudW0gTWluZEVsZW1lbnRTaGFwZSB7XG4gICAgcm91bmRSZWN0YW5nbGUgPSAncm91bmQtcmVjdGFuZ2xlJyxcbiAgICB1bmRlcmxpbmUgPSAndW5kZXJsaW5lJ1xufVxuXG5leHBvcnQgZW51bSBCcmFuY2hTaGFwZSB7XG4gICAgYmlnaHQgPSAnYmlnaHQnLFxuICAgIHBvbHlsaW5lID0gJ3BvbHlsaW5lJ1xufVxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2ludGVyZmFjZXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBb0MzQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFzQixFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsU0FBUyxDQUFDLEtBQWtCLEVBQUUsTUFBc0I7UUFDaEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBa0I7UUFDL0IsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBbUIsQ0FBQztRQUN4RSxPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBaUIsRUFBRSxPQUFxQjtRQUNsRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMs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Q0FBQyxLQUFLLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUM7U0FDZjthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLE9BQStCO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFvQjtRQUMzQixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBc0IsQ0FBQztRQUMxRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUNELGFBQWEsQ0FBQyxPQUFvQjtRQUM5QixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBc0IsQ0FBQztRQUMxRSxJQUFJLFNBQVMsRUFBRTtZQUNYLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztTQUM1RDtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDeEIsc0RBQWtDLENBQUE7SUFDbEMsMkNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ25CLDhCQUFlLENBQUE7SUFDZixvQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0luZGVudGVkTGF5b3V0LCBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE5PREVfVE9fUEFSRU5ULCBQYXRoLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0Tm9kZSwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19OT0RFIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQmFzZURhdGEsIEVtb2ppRGF0YSwgSW1hZ2VEYXRhIH0gZnJvbSAnLi9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9ub2RlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluZEVsZW1lbnQ8VCA9IEJhc2VEYXRhPiBleHRlbmRzIFBsYWl0RWxlbWVudCB7XG4gICAgZGF0YTogVDtcbiAgICBjaGlsZHJlbjogTWluZEVsZW1lbnRbXTtcbiAgICByaWdodE5vZGVDb3VudD86IG51bWJlcjtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xuICAgIGlzUm9vdD86IGJvb2xlYW47XG5cbiAgICAvLyBub2RlIHN0eWxlIGF0dHJpYnV0ZXNcbiAgICBmaWxsPzogc3RyaW5nO1xuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyO1xuICAgIHNoYXBlPzogTWluZEVsZW1lbnRTaGFwZTtcblxuICAgIC8vIGxpbmsgc3R5bGUgYXR0cmlidXRlc1xuICAgIGJyYW5jaENvbG9yPzogc3RyaW5nO1xuICAgIGJyYW5jaFdpZHRoPzogbnVtYmVyO1xuICAgIGJyYW5jaFNoYXBlPzogQnJhbmNoU2hhcGU7XG5cbiAgICAvLyBsYXlvdXRcbiAgICBsYXlvdXQ/OiBNaW5kTGF5b3V0VHlwZTtcbiAgICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG5cbiAgICBzdGFydD86IG51bWJlcjtcbiAgICBlbmQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaXRNaW5kIGV4dGVuZHMgTWluZEVsZW1lbnQge1xuICAgIHR5cGU6ICdtaW5kbWFwJztcbiAgICBwb2ludHM6IFBvaW50W107XG59XG5cbmV4cG9ydCBjb25zdCBQbGFpdE1pbmQgPSB7XG4gICAgaXNNaW5kOiAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFBsYWl0TWluZCA9PiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50eXBlID09PSAnbWluZG1hcCc7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IE1pbmRFbGVtZW50ID0ge1xuICAgIGhhc0xheW91dCh2YWx1ZTogTWluZEVsZW1lbnQsIGxheW91dDogTWluZExheW91dFR5cGUpIHtcbiAgICAgICAgY29uc3QgX2xheW91dCA9IE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBfbGF5b3V0ID09PSBsYXlvdXQ7XG4gICAgfSxcbiAgICBpc0luZGVudGVkTGF5b3V0KHZhbHVlOiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBfbGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KHZhbHVlKSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICAgICAgcmV0dXJuIGlzSW5kZW50ZWRMYXlvdXQoX2xheW91dCk7XG4gICAgfSxcbiAgICBpc01pbmRFbGVtZW50KGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQpOiBlbGVtZW50IGlzIE1pbmRFbGVtZW50IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBjb25zdCByb290RWxlbWVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGguc2xpY2UoMCwgMSkpO1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChyb290RWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRQYXJlbnQobm9kZTogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQobm9kZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbWluZCByb290IG5vZGUgY2FuIG5vdCBnZXQgcGFyZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50ID0gTk9ERV9UT19QQVJFTlQuZ2V0KG5vZGUpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgIH0sXG4gICAgZmluZFBhcmVudChub2RlOiBNaW5kRWxlbWVudCkge1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChub2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJlbnQgPSBOT0RFX1RPX1BBUkVOVC5nZXQobm9kZSkgYXMgTWluZEVsZW1lbnQ7XG4gICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfSxcbiAgICBnZXRSb290KGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXRoLnNsaWNlKDAsIDEpKSBhcyBQbGFpdE1pbmQ7XG4gICAgfSxcbiAgICBnZXRBbmNlc3RvcnMoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgY29uc3QgcGFyZW50czogUGxhaXRFbGVtZW50W10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIFBhdGguYW5jZXN0b3JzKHBhdGgsIHsgcmV2ZXJzZTogdHJ1ZSB9KSkge1xuICAgICAgICAgICAgY29uc3QgbiA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHApO1xuICAgICAgICAgICAgaWYgKG4gJiYgIVBsYWl0Qm9hcmQuaXNCb2FyZChuKSkge1xuICAgICAgICAgICAgICAgIHBhcmVudHMucHVzaChuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyZW50cztcbiAgICB9LFxuICAgIGdldE5vZGUoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IEVMRU1FTlRfVE9fTk9ERS5nZXQoZWxlbWVudCk7XG4gICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW4gbm90IGdldCBub2RlIGZyb20gJHtKU09OLnN0cmluZ2lmeShlbGVtZW50KX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9LFxuICAgIGZpbmRQYXJlbnROb2RlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IE1pbmRFbGVtZW50LmdldFBhcmVudChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIE1pbmRFbGVtZW50LmdldE5vZGUocGFyZW50KTtcbiAgICB9LFxuICAgIGhhc0Vtb2ppcyhlbGVtZW50OiBNaW5kRWxlbWVudCk6IGVsZW1lbnQgaXMgTWluZEVsZW1lbnQ8RW1vamlEYXRhPiB7XG4gICAgICAgIGlmIChlbGVtZW50LmRhdGEuZW1vamlzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaGFzSW1hZ2UoZWxlbWVudDogTWluZEVsZW1lbnQpOiBlbGVtZW50IGlzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5kYXRhLmltYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0RW1vamlzKGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuZGF0YS5lbW9qaXM7XG4gICAgfSxcbiAgICBoYXNNb3VudGVkKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoZWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgIHJldHVybiAhIWNvbXBvbmVudDtcbiAgICB9LFxuICAgIGdldFRleHRFZGl0b3IoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gUGxhaXRFbGVtZW50LmdldENvbXBvbmVudChlbGVtZW50KSBhcyBNaW5kTm9kZUNvbXBvbmVudDtcbiAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudC50ZXh0TWFuYWdlLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5lZGl0b3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW4gbm90IGdldCBjb3JyZWN0bHkgY29tcG9uZW50IGluIGdldCB0ZXh0IGVkaXRvcicpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBlbnVtIE1pbmRFbGVtZW50U2hhcGUge1xuICAgIHJvdW5kUmVjdGFuZ2xlID0gJ3JvdW5kLXJlY3RhbmdsZScsXG4gICAgdW5kZXJsaW5lID0gJ3VuZGVybGluZSdcbn1cblxuZXhwb3J0IGVudW0gQnJhbmNoU2hhcGUge1xuICAgIGJpZ2h0ID0gJ2JpZ2h0JyxcbiAgICBwb2x5bGluZSA9ICdwb2x5bGluZSdcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2ludGVyZmFjZXMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSwgV2l0aFBsdWdpbk9wdGlvbnMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBUZXh0UGx1Z2luIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgTWluZEltYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhNaW5kT3B0aW9ucyBleHRlbmRzIFdpdGhQbHVnaW5PcHRpb25zIHtcbiAgICBlbW9qaVBhZGRpbmc6IG51bWJlcjtcbiAgICBzcGFjZUJldHdlZW5FbW9qaXM6IG51bWJlcjtcbiAgICB0ZXh0UGx1Z2lucz86IFRleHRQbHVnaW5bXTtcbiAgICBpbWFnZUNvbXBvbmVudFR5cGU/OiBDb21wb25lbnRUeXBlPE1pbmRJbWFnZUJhc2VDb21wb25lbnQ+O1xufVxuIl19
|
|
@@ -19,6 +19,7 @@ import { getTopicRectangleByNode } from './utils/position/topic';
|
|
|
19
19
|
import { NodeActiveDrawer } from './drawer/node-active.drawer';
|
|
20
20
|
import { CollapseDrawer } from './drawer/node-collapse.drawer';
|
|
21
21
|
import { WithMindPluginKey } from './constants/default';
|
|
22
|
+
import { NodeImageDrawer } from './drawer/node-image.drawer';
|
|
22
23
|
import * as i0 from "@angular/core";
|
|
23
24
|
import * as i1 from "@angular/common";
|
|
24
25
|
import * as i2 from "@plait/core";
|
|
@@ -41,6 +42,7 @@ export class MindNodeComponent extends PlaitPluginElementComponent {
|
|
|
41
42
|
this.nodeInsertDrawer = new NodeInsertDrawer(this.board);
|
|
42
43
|
this.activeDrawer = new NodeActiveDrawer(this.board);
|
|
43
44
|
this.collapseDrawer = new CollapseDrawer(this.board);
|
|
45
|
+
this.imageDrawer = new NodeImageDrawer(this.board, this.viewContainerRef);
|
|
44
46
|
const plugins = this.board.getPluginOptions(WithMindPluginKey).textPlugins;
|
|
45
47
|
this.textManage = new TextManage(this.board, this.viewContainerRef, () => {
|
|
46
48
|
const rect = getTopicRectangleByNode(this.board, this.node);
|
|
@@ -71,6 +73,7 @@ export class MindNodeComponent extends PlaitPluginElementComponent {
|
|
|
71
73
|
this.activeDrawer.draw(this.element, this.g, { selected: this.selected, isEditing: this.textManage.isEditing });
|
|
72
74
|
this.drawEmojis();
|
|
73
75
|
this.drawExtend();
|
|
76
|
+
this.drawImage();
|
|
74
77
|
if (PlaitMind.isMind(this.context.parent)) {
|
|
75
78
|
this.g.classList.add('branch');
|
|
76
79
|
}
|
|
@@ -93,6 +96,7 @@ export class MindNodeComponent extends PlaitPluginElementComponent {
|
|
|
93
96
|
this.drawShape();
|
|
94
97
|
this.drawLink();
|
|
95
98
|
this.drawEmojis();
|
|
99
|
+
this.drawImage();
|
|
96
100
|
this.drawExtend();
|
|
97
101
|
this.textManage.updateText(this.element.data.topic);
|
|
98
102
|
this.textManage.updateRectangle();
|
|
@@ -114,6 +118,12 @@ export class MindNodeComponent extends PlaitPluginElementComponent {
|
|
|
114
118
|
this.g.append(g);
|
|
115
119
|
}
|
|
116
120
|
}
|
|
121
|
+
drawImage() {
|
|
122
|
+
const image = this.imageDrawer.drawImage(this.element);
|
|
123
|
+
if (image) {
|
|
124
|
+
this.g.append(image);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
117
127
|
drawShape() {
|
|
118
128
|
this.destroyShape();
|
|
119
129
|
const shape = getShapeByElement(this.board, this.node.origin);
|
|
@@ -182,6 +192,7 @@ export class MindNodeComponent extends PlaitPluginElementComponent {
|
|
|
182
192
|
super.ngOnDestroy();
|
|
183
193
|
this.textManage.destroy();
|
|
184
194
|
this.nodeEmojisDrawer.destroy();
|
|
195
|
+
this.imageDrawer.destroy();
|
|
185
196
|
this.destroy$.next();
|
|
186
197
|
this.destroy$.complete();
|
|
187
198
|
if (ELEMENT_TO_NODE.get(this.element) === this.node) {
|
|
@@ -215,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
215
226
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
216
227
|
}]
|
|
217
228
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLFlBQVksRUFDWixhQUFhLEVBR2IsZUFBZSxFQUdsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBaUIsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdC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QUM7SUFDMUQsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFNRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakQsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDOzs4R0F0TlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsOEVBWGhCOzs7Ozs7OztLQVFUOzJGQUdRLGlCQUFpQjtrQkFiN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7Ozs7Ozs7O0tBUVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIGNyZWF0ZUcsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb21wb25lbnQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIE5PREVfVE9fSU5ERVgsXG4gICAgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCxcbiAgICBPbkNvbnRleHRDaGFuZ2VkLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBQb2ludCxcbiAgICBQbGFpdE9wdGlvbnNCb2FyZFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBpc0hvcml6b250YWxMYXlvdXQsIEFic3RyYWN0Tm9kZSwgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBUZXh0TWFuYWdlUmVmLCBUZXh0TWFuYWdlLCBFeGl0T3JpZ2luIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgUm91Z2hTVkcgfSBmcm9tICdyb3VnaGpzL2Jpbi9zdmcnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZHJhd1JvdW5kUmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi91dGlscy9kcmF3L25vZGUtc2hhcGUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIFBsYWl0TWluZCB9IGZyb20gJy4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgTWluZFF1ZXJpZXMgfSBmcm9tICcuL3F1ZXJpZXMnO1xuaW1wb3J0IHsgaXNIaXRNaW5kRWxlbWVudCB9IGZyb20gJy4vdXRpbHMvcG9zaXRpb24vbm9kZSc7XG5pbXBvcnQgeyBnZXRTaGFwZUJ5RWxlbWVudCB9IGZyb20gJy4vdXRpbHMvbm9kZS1zdHlsZS9zaGFwZSc7XG5pbXBvcnQgeyBFTEVNRU5UX1RPX05PREUgfSBmcm9tICcuL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBkcmF3QWJzdHJhY3RMaW5rIH0gZnJvbSAnLi91dGlscy9kcmF3L25vZGUtbGluay9hYnN0cmFjdC1saW5rJztcbmltcG9ydCB7IE5vZGVFbW9qaXNEcmF3ZXIgfSBmcm9tICcuL2RyYXdlci9ub2RlLWVtb2ppcy5kcmF3ZXInO1xuaW1wb3J0IHsgTWluZFRyYW5zZm9ybXMgfSBmcm9tICcuL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnRTaGFwZSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOb2RlSW5zZXJ0RHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1pbnNlcnQuZHJhd2VyJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBkcmF3TGluayB9IGZyb20gJy4vdXRpbHMvZHJhdy9ub2RlLWxpbmsvZHJhdy1saW5rJztcbmltcG9ydCB7IGdldFRvcGljUmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi91dGlscy9wb3NpdGlvbi90b3BpYyc7XG5pbXBvcnQgeyBOb2RlQWN0aXZlRHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1hY3RpdmUuZHJhd2VyJztcbmltcG9ydCB7IENvbGxhcHNlRHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1jb2xsYXBzZS5kcmF3ZXInO1xuaW1wb3J0IHsgV2l0aE1pbmRPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL29wdGlvbnMnO1xuaW1wb3J0IHsgV2l0aE1pbmRQbHVnaW5LZXkgfSBmcm9tICcuL2NvbnN0YW50cy9kZWZhdWx0JztcblxuLy8gMS4gV2hlbiB0aGUgdGV4dCBhdCB0aGUgZW5kIGhhcyBhbiBpdGFsaWMgYXR0cmlidXRlLCB0aGUgdGV4dCBpcyBwYXJ0aWFsbHkgY292ZXJlZFxuLy8gMi4gVGhlcmUgd2lsbCBiZSBzb21lIGRpZmZlcmVuY2VzIGluIHRoZSB3aWR0aCBtZWFzdXJlZCBieSBkaWZmZXJlbnQgYnJvd3NlcnNcbmNvbnN0IFdJRFRIX0JVRkZFUiA9IDQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtbWluZC1ub2RlJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8cGxhaXQtY2hpbGRyZW5cbiAgICAgICAgICAgICpuZ0lmPVwiIWVsZW1lbnQuaXNDb2xsYXBzZWRcIlxuICAgICAgICAgICAgW2JvYXJkXT1cImJvYXJkXCJcbiAgICAgICAgICAgIFtwYXJlbnRdPVwiZWxlbWVudFwiXG4gICAgICAgICAgICBbZWZmZWN0XT1cImVmZmVjdFwiXG4gICAgICAgICAgICBbcGFyZW50R109XCJwYXJlbnRHXCJcbiAgICAgICAgPjwvcGxhaXQtY2hpbGRyZW4+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNaW5kTm9kZUNvbXBvbmVudCBleHRlbmRzIFBsYWl0UGx1Z2luRWxlbWVudENvbXBvbmVudDxNaW5kRWxlbWVudCwgUGxhaXRNaW5kQm9hcmQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25Db250ZXh0Q2hhbmdlZDxNaW5kRWxlbWVudCwgUGxhaXRNaW5kQm9hcmQ+IHtcbiAgICByb3VnaFNWRyE6IFJvdWdoU1ZHO1xuXG4gICAgbm9kZSE6IE1pbmROb2RlO1xuXG4gICAgaW5kZXghOiBudW1iZXI7XG5cbiAgICBwYXJlbnRHITogU1ZHR0VsZW1lbnQ7XG5cbiAgICBzaGFwZUc6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBsaW5rRz86IFNWR0dFbGVtZW50O1xuXG4gICAgZXh0ZW5kRz86IFNWR0dFbGVtZW50O1xuXG4gICAgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgbm9kZUVtb2ppc0RyYXdlciE6IE5vZGVFbW9qaXNEcmF3ZXI7XG5cbiAgICBub2RlSW5zZXJ0RHJhd2VyITogTm9kZUluc2VydERyYXdlcjtcblxuICAgIHRleHRNYW5hZ2UhOiBUZXh0TWFuYWdlO1xuXG4gICAgYWN0aXZlRHJhd2VyITogTm9kZUFjdGl2ZURyYXdlcjtcblxuICAgIGNvbGxhcHNlRHJhd2VyITogQ29sbGFwc2VEcmF3ZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKGNkcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZURyYXdlcigpIHtcbiAgICAgICAgdGhpcy5ub2RlRW1vamlzRHJhd2VyID0gbmV3IE5vZGVFbW9qaXNEcmF3ZXIodGhpcy5ib2FyZCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5ub2RlSW5zZXJ0RHJhd2VyID0gbmV3IE5vZGVJbnNlcnREcmF3ZXIodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuYWN0aXZlRHJhd2VyID0gbmV3IE5vZGVBY3RpdmVEcmF3ZXIodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VEcmF3ZXIgPSBuZXcgQ29sbGFwc2VEcmF3ZXIodGhpcy5ib2FyZCk7XG4gICAgICAgIGNvbnN0IHBsdWdpbnMgPSB0aGlzLmJvYXJkLmdldFBsdWdpbk9wdGlvbnM8V2l0aE1pbmRPcHRpb25zPihXaXRoTWluZFBsdWdpbktleSkudGV4dFBsdWdpbnM7XG5cbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlID0gbmV3IFRleHRNYW5hZ2UoXG4gICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBnZXRUb3BpY1JlY3RhbmdsZUJ5Tm9kZSh0aGlzLmJvYXJkLCB0aGlzLm5vZGUpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZWN0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChwb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNIaXRNaW5kRWxlbWVudCh0aGlzLmJvYXJkLCBwb2ludCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAodGV4dE1hbmFnZVJlZjogVGV4dE1hbmFnZVJlZikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGV4dE1hbmFnZVJlZi53aWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0ZXh0TWFuYWdlUmVmLmhlaWdodDtcbiAgICAgICAgICAgICAgICBpZiAodGV4dE1hbmFnZVJlZi5uZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRUb3BpYyh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHRleHRNYW5hZ2VSZWYubmV3VmFsdWUgYXMgTWluZEVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldFRvcGljU2l6ZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwbHVnaW5zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZURyYXdlcigpO1xuICAgICAgICB0aGlzLm5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuaW5kZXggPSBOT0RFX1RPX0lOREVYLmdldCh0aGlzLmVsZW1lbnQpIHx8IDA7XG4gICAgICAgIHRoaXMucm91Z2hTVkcgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLnBhcmVudEcgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KE1pbmRFbGVtZW50LmdldFJvb3QodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KSkucm9vdEcgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgICAgIHRoaXMuZHJhd1NoYXBlKCk7XG4gICAgICAgIHRoaXMuZHJhd0xpbmsoKTtcbiAgICAgICAgdGhpcy5kcmF3VGV4dCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZURyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLCBpc0VkaXRpbmc6IHRoaXMudGV4dE1hbmFnZS5pc0VkaXRpbmcgfSk7XG4gICAgICAgIHRoaXMuZHJhd0Vtb2ppcygpO1xuICAgICAgICB0aGlzLmRyYXdFeHRlbmQoKTtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQodGhpcy5jb250ZXh0LnBhcmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuZy5jbGFzc0xpc3QuYWRkKCdicmFuY2gnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVkaXRUb3BpYygpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZywgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgaXNFZGl0aW5nOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UuZWRpdCgob3JpZ2luOiBFeGl0T3JpZ2luKSA9PiB7XG4gICAgICAgICAgICBpZiAob3JpZ2luID09PSBFeGl0T3JpZ2luLmRlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLCBpc0VkaXRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxNaW5kRWxlbWVudCwgUGxhaXRNaW5kQm9hcmQ+LFxuICAgICAgICBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxNaW5kRWxlbWVudCwgUGxhaXRNaW5kQm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG5ld05vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHZhbHVlLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBpc0VxdWFsTm9kZSA9IFJlY3RhbmdsZUNsaWVudC5pc0VxdWFsKHRoaXMubm9kZSwgbmV3Tm9kZSk7XG4gICAgICAgIHRoaXMubm9kZSA9IG5ld05vZGU7XG5cbiAgICAgICAgY29uc3QgaXNDaGFuZ2VUaGVtZSA9IHRoaXMuYm9hcmQub3BlcmF0aW9ucy5maW5kKG9wID0+IG9wLnR5cGUgPT09ICdzZXRfdGhlbWUnKTtcblxuICAgICAgICBpZiAoIWlzRXF1YWxOb2RlIHx8IHZhbHVlLmVsZW1lbnQgIT09IHByZXZpb3VzLmVsZW1lbnQgfHwgaXNDaGFuZ2VUaGVtZSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZywgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgaXNFZGl0aW5nOiB0aGlzLnRleHRNYW5hZ2UuaXNFZGl0aW5nIH0pO1xuICAgICAgICAgICAgdGhpcy5kcmF3U2hhcGUoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhd0xpbmsoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhd0Vtb2ppcygpO1xuICAgICAgICAgICAgdGhpcy5kcmF3RXh0ZW5kKCk7XG4gICAgICAgICAgICB0aGlzLnRleHRNYW5hZ2UudXBkYXRlVGV4dCh0aGlzLmVsZW1lbnQuZGF0YS50b3BpYyk7XG4gICAgICAgICAgICB0aGlzLnRleHRNYW5hZ2UudXBkYXRlUmVjdGFuZ2xlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lU2VsZWN0ZWQgPSB2YWx1ZS5zZWxlY3RlZCA9PT0gcHJldmlvdXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lUGFyZW50ID0gdmFsdWUucGFyZW50ID09PSBwcmV2aW91cy5wYXJlbnQ7XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRHJhd2VyLmRyYXcodGhpcy5lbGVtZW50LCB0aGlzLmcsIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsIGlzRWRpdGluZzogdGhpcy50ZXh0TWFuYWdlLmlzRWRpdGluZyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaGFzU2FtZVBhcmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0xpbmsoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXdFbW9qaXMoKSB7XG4gICAgICAgIGNvbnN0IGcgPSB0aGlzLm5vZGVFbW9qaXNEcmF3ZXIuZHJhd0Vtb2ppcyh0aGlzLmVsZW1lbnQpO1xuICAgICAgICBpZiAoZykge1xuICAgICAgICAgICAgdGhpcy5nLmFwcGVuZChnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXdTaGFwZSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U2hhcGUoKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBnZXRTaGFwZUJ5RWxlbWVudCh0aGlzLmJvYXJkLCB0aGlzLm5vZGUub3JpZ2luKSBhcyBNaW5kRWxlbWVudFNoYXBlO1xuICAgICAgICBzd2l0Y2ggKHNoYXBlKSB7XG4gICAgICAgICAgICBjYXNlIE1pbmRFbGVtZW50U2hhcGUucm91bmRSZWN0YW5nbGU6XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFwZUcgPSBkcmF3Um91bmRSZWN0YW5nbGVCeU5vZGUodGhpcy5ib2FyZCwgdGhpcy5ub2RlIGFzIE1pbmROb2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmcucHJlcGVuZCh0aGlzLnNoYXBlRyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveVNoYXBlKCkge1xuICAgICAgICBpZiAodGhpcy5zaGFwZUcpIHtcbiAgICAgICAgICAgIHRoaXMuc2hhcGVHLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5zaGFwZUcgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhd0xpbmsoKSB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IE1pbmRFbGVtZW50LmdldFBhcmVudCh0aGlzLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShwYXJlbnQpO1xuXG4gICAgICAgIGlmICh0aGlzLmxpbmtHKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtHLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KHBhcmVudCkgYXMgTWluZExheW91dFR5cGU7XG4gICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdCh0aGlzLm5vZGUub3JpZ2luKSkge1xuICAgICAgICAgICAgdGhpcy5saW5rRyA9IGRyYXdBYnN0cmFjdExpbmsodGhpcy5ib2FyZCwgdGhpcy5ub2RlLCBpc0hvcml6b250YWxMYXlvdXQobGF5b3V0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtHID0gZHJhd0xpbmsodGhpcy5ib2FyZCwgcGFyZW50Tm9kZSwgdGhpcy5ub2RlLCBpc0hvcml6b250YWxMYXlvdXQobGF5b3V0KSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nLmFwcGVuZCh0aGlzLmxpbmtHKTtcbiAgICB9XG5cbiAgICBkZXN0cm95TGluZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubGlua0cpIHtcbiAgICAgICAgICAgIHRoaXMubGlua0cucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3RXh0ZW5kKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lFeHRlbmQoKTtcblxuICAgICAgICB0aGlzLmV4dGVuZEcgPSBjcmVhdGVHKCk7XG4gICAgICAgIHRoaXMuZXh0ZW5kRy5jbGFzc0xpc3QuYWRkKCdleHRlbmQnKTtcbiAgICAgICAgdGhpcy5nLmFwcGVuZCh0aGlzLmV4dGVuZEcpO1xuXG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnQuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZy5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZy5jbGFzc0xpc3QucmVtb3ZlKCdjb2xsYXBzZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubm9kZUluc2VydERyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5leHRlbmRHISk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZXh0ZW5kRyEpO1xuICAgIH1cblxuICAgIGRlc3Ryb3lFeHRlbmQoKSB7XG4gICAgICAgIGlmICh0aGlzLmV4dGVuZEcpIHtcbiAgICAgICAgICAgIHRoaXMuZXh0ZW5kRy5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXdUZXh0KCkge1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UuZHJhdyh0aGlzLmVsZW1lbnQuZGF0YS50b3BpYyk7XG4gICAgICAgIHRoaXMuZy5hcHBlbmQodGhpcy50ZXh0TWFuYWdlLmcpO1xuICAgIH1cblxuICAgIHRyYWNrQnkgPSAoaW5kZXg6IG51bWJlciwgbm9kZTogTWluZE5vZGUpID0+IHtcbiAgICAgICAgcmV0dXJuIG5vZGUub3JpZ2luLmlkO1xuICAgIH07XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5ub2RlRW1vamlzRHJhd2VyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKEVMRU1FTlRfVE9fTk9ERS5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcy5ub2RlKSB7XG4gICAgICAgICAgICBFTEVNRU5UX1RPX05PREUuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLFlBQVksRUFDWixhQUFhLEVBR2IsZUFBZSxFQUVsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBaUIsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdC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SUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pELGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQzs7OEdBbk9RLGlCQUFpQjtrR0FBakIsaUJBQWlCLDhFQVhoQjs7Ozs7Ozs7S0FRVDsyRkFHUSxpQkFBaUI7a0JBYjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7Ozs7OztLQVFUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBjcmVhdGVHLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRQbHVnaW5FbGVtZW50Q29tcG9uZW50LFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBOT0RFX1RPX0lOREVYLFxuICAgIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsXG4gICAgT25Db250ZXh0Q2hhbmdlZCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgUG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgaXNIb3Jpem9udGFsTGF5b3V0LCBBYnN0cmFjdE5vZGUsIE1pbmRMYXlvdXRUeXBlIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgVGV4dE1hbmFnZVJlZiwgVGV4dE1hbmFnZSwgRXhpdE9yaWdpbiB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRyYXdSb3VuZFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4vdXRpbHMvZHJhdy9ub2RlLXNoYXBlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50LCBQbGFpdE1pbmQgfSBmcm9tICcuL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi9xdWVyaWVzJztcbmltcG9ydCB7IGlzSGl0TWluZEVsZW1lbnQgfSBmcm9tICcuL3V0aWxzL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgZ2V0U2hhcGVCeUVsZW1lbnQgfSBmcm9tICcuL3V0aWxzL25vZGUtc3R5bGUvc2hhcGUnO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19OT0RFIH0gZnJvbSAnLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgZHJhd0Fic3RyYWN0TGluayB9IGZyb20gJy4vdXRpbHMvZHJhdy9ub2RlLWxpbmsvYWJzdHJhY3QtbGluayc7XG5pbXBvcnQgeyBOb2RlRW1vamlzRHJhd2VyIH0gZnJvbSAnLi9kcmF3ZXIvbm9kZS1lbW9qaXMuZHJhd2VyJztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTm9kZUluc2VydERyYXdlciB9IGZyb20gJy4vZHJhd2VyL25vZGUtaW5zZXJ0LmRyYXdlcic7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgZHJhd0xpbmsgfSBmcm9tICcuL3V0aWxzL2RyYXcvbm9kZS1saW5rL2RyYXctbGluayc7XG5pbXBvcnQgeyBnZXRUb3BpY1JlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4vdXRpbHMvcG9zaXRpb24vdG9waWMnO1xuaW1wb3J0IHsgTm9kZUFjdGl2ZURyYXdlciB9IGZyb20gJy4vZHJhd2VyL25vZGUtYWN0aXZlLmRyYXdlcic7XG5pbXBvcnQgeyBDb2xsYXBzZURyYXdlciB9IGZyb20gJy4vZHJhd2VyL25vZGUtY29sbGFwc2UuZHJhd2VyJztcbmltcG9ydCB7IFdpdGhNaW5kT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9vcHRpb25zJztcbmltcG9ydCB7IFdpdGhNaW5kUGx1Z2luS2V5IH0gZnJvbSAnLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBOb2RlSW1hZ2VEcmF3ZXIgfSBmcm9tICcuL2RyYXdlci9ub2RlLWltYWdlLmRyYXdlcic7XG5cbi8vIDEuIFdoZW4gdGhlIHRleHQgYXQgdGhlIGVuZCBoYXMgYW4gaXRhbGljIGF0dHJpYnV0ZSwgdGhlIHRleHQgaXMgcGFydGlhbGx5IGNvdmVyZWRcbi8vIDIuIFRoZXJlIHdpbGwgYmUgc29tZSBkaWZmZXJlbmNlcyBpbiB0aGUgd2lkdGggbWVhc3VyZWQgYnkgZGlmZmVyZW50IGJyb3dzZXJzXG5jb25zdCBXSURUSF9CVUZGRVIgPSA0O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BsYWl0LW1pbmQtbm9kZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHBsYWl0LWNoaWxkcmVuXG4gICAgICAgICAgICAqbmdJZj1cIiFlbGVtZW50LmlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgIFtib2FyZF09XCJib2FyZFwiXG4gICAgICAgICAgICBbcGFyZW50XT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgW2VmZmVjdF09XCJlZmZlY3RcIlxuICAgICAgICAgICAgW3BhcmVudEddPVwicGFyZW50R1wiXG4gICAgICAgID48L3BsYWl0LWNoaWxkcmVuPlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWluZE5vZGVDb21wb25lbnQgZXh0ZW5kcyBQbGFpdFBsdWdpbkVsZW1lbnRDb21wb25lbnQ8TWluZEVsZW1lbnQsIFBsYWl0TWluZEJvYXJkPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ29udGV4dENoYW5nZWQ8TWluZEVsZW1lbnQsIFBsYWl0TWluZEJvYXJkPiB7XG4gICAgcm91Z2hTVkchOiBSb3VnaFNWRztcblxuICAgIG5vZGUhOiBNaW5kTm9kZTtcblxuICAgIGluZGV4ITogbnVtYmVyO1xuXG4gICAgcGFyZW50RyE6IFNWR0dFbGVtZW50O1xuXG4gICAgc2hhcGVHOiBTVkdHRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgbGlua0c/OiBTVkdHRWxlbWVudDtcblxuICAgIGV4dGVuZEc/OiBTVkdHRWxlbWVudDtcblxuICAgIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIG5vZGVFbW9qaXNEcmF3ZXIhOiBOb2RlRW1vamlzRHJhd2VyO1xuXG4gICAgbm9kZUluc2VydERyYXdlciE6IE5vZGVJbnNlcnREcmF3ZXI7XG5cbiAgICBpbWFnZURyYXdlciE6IE5vZGVJbWFnZURyYXdlcjtcblxuICAgIHRleHRNYW5hZ2UhOiBUZXh0TWFuYWdlO1xuXG4gICAgYWN0aXZlRHJhd2VyITogTm9kZUFjdGl2ZURyYXdlcjtcblxuICAgIGNvbGxhcHNlRHJhd2VyITogQ29sbGFwc2VEcmF3ZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKGNkcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZURyYXdlcigpIHtcbiAgICAgICAgdGhpcy5ub2RlRW1vamlzRHJhd2VyID0gbmV3IE5vZGVFbW9qaXNEcmF3ZXIodGhpcy5ib2FyZCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5ub2RlSW5zZXJ0RHJhd2VyID0gbmV3IE5vZGVJbnNlcnREcmF3ZXIodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuYWN0aXZlRHJhd2VyID0gbmV3IE5vZGVBY3RpdmVEcmF3ZXIodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VEcmF3ZXIgPSBuZXcgQ29sbGFwc2VEcmF3ZXIodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuaW1hZ2VEcmF3ZXIgPSBuZXcgTm9kZUltYWdlRHJhd2VyKHRoaXMuYm9hcmQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIGNvbnN0IHBsdWdpbnMgPSB0aGlzLmJvYXJkLmdldFBsdWdpbk9wdGlvbnM8V2l0aE1pbmRPcHRpb25zPihXaXRoTWluZFBsdWdpbktleSkudGV4dFBsdWdpbnM7XG5cbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlID0gbmV3IFRleHRNYW5hZ2UoXG4gICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBnZXRUb3BpY1JlY3RhbmdsZUJ5Tm9kZSh0aGlzLmJvYXJkLCB0aGlzLm5vZGUpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZWN0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChwb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNIaXRNaW5kRWxlbWVudCh0aGlzLmJvYXJkLCBwb2ludCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAodGV4dE1hbmFnZVJlZjogVGV4dE1hbmFnZVJlZikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGV4dE1hbmFnZVJlZi53aWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0ZXh0TWFuYWdlUmVmLmhlaWdodDtcbiAgICAgICAgICAgICAgICBpZiAodGV4dE1hbmFnZVJlZi5uZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRUb3BpYyh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHRleHRNYW5hZ2VSZWYubmV3VmFsdWUgYXMgTWluZEVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldFRvcGljU2l6ZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwbHVnaW5zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZURyYXdlcigpO1xuICAgICAgICB0aGlzLm5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuaW5kZXggPSBOT0RFX1RPX0lOREVYLmdldCh0aGlzLmVsZW1lbnQpIHx8IDA7XG4gICAgICAgIHRoaXMucm91Z2hTVkcgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLnBhcmVudEcgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KE1pbmRFbGVtZW50LmdldFJvb3QodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KSkucm9vdEcgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgICAgIHRoaXMuZHJhd1NoYXBlKCk7XG4gICAgICAgIHRoaXMuZHJhd0xpbmsoKTtcbiAgICAgICAgdGhpcy5kcmF3VGV4dCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZURyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLCBpc0VkaXRpbmc6IHRoaXMudGV4dE1hbmFnZS5pc0VkaXRpbmcgfSk7XG4gICAgICAgIHRoaXMuZHJhd0Vtb2ppcygpO1xuICAgICAgICB0aGlzLmRyYXdFeHRlbmQoKTtcbiAgICAgICAgdGhpcy5kcmF3SW1hZ2UoKTtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQodGhpcy5jb250ZXh0LnBhcmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuZy5jbGFzc0xpc3QuYWRkKCdicmFuY2gnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVkaXRUb3BpYygpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZywgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgaXNFZGl0aW5nOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UuZWRpdCgob3JpZ2luOiBFeGl0T3JpZ2luKSA9PiB7XG4gICAgICAgICAgICBpZiAob3JpZ2luID09PSBFeGl0T3JpZ2luLmRlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLCBpc0VkaXRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxNaW5kRWxlbWVudCwgUGxhaXRNaW5kQm9hcmQ+LFxuICAgICAgICBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxNaW5kRWxlbWVudCwgUGxhaXRNaW5kQm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG5ld05vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHZhbHVlLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBpc0VxdWFsTm9kZSA9IFJlY3RhbmdsZUNsaWVudC5pc0VxdWFsKHRoaXMubm9kZSwgbmV3Tm9kZSk7XG4gICAgICAgIHRoaXMubm9kZSA9IG5ld05vZGU7XG5cbiAgICAgICAgY29uc3QgaXNDaGFuZ2VUaGVtZSA9IHRoaXMuYm9hcmQub3BlcmF0aW9ucy5maW5kKG9wID0+IG9wLnR5cGUgPT09ICdzZXRfdGhlbWUnKTtcblxuICAgICAgICBpZiAoIWlzRXF1YWxOb2RlIHx8IHZhbHVlLmVsZW1lbnQgIT09IHByZXZpb3VzLmVsZW1lbnQgfHwgaXNDaGFuZ2VUaGVtZSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZywgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgaXNFZGl0aW5nOiB0aGlzLnRleHRNYW5hZ2UuaXNFZGl0aW5nIH0pO1xuICAgICAgICAgICAgdGhpcy5kcmF3U2hhcGUoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhd0xpbmsoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhd0Vtb2ppcygpO1xuICAgICAgICAgICAgdGhpcy5kcmF3SW1hZ2UoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhd0V4dGVuZCgpO1xuICAgICAgICAgICAgdGhpcy50ZXh0TWFuYWdlLnVwZGF0ZVRleHQodGhpcy5lbGVtZW50LmRhdGEudG9waWMpO1xuICAgICAgICAgICAgdGhpcy50ZXh0TWFuYWdlLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZVNlbGVjdGVkID0gdmFsdWUuc2VsZWN0ZWQgPT09IHByZXZpb3VzLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZVBhcmVudCA9IHZhbHVlLnBhcmVudCA9PT0gcHJldmlvdXMucGFyZW50O1xuICAgICAgICAgICAgaWYgKCFoYXNTYW1lU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5nLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLCBpc0VkaXRpbmc6IHRoaXMudGV4dE1hbmFnZS5pc0VkaXRpbmcgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVQYXJlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYXdMaW5rKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3RW1vamlzKCkge1xuICAgICAgICBjb25zdCBnID0gdGhpcy5ub2RlRW1vamlzRHJhd2VyLmRyYXdFbW9qaXModGhpcy5lbGVtZW50KTtcbiAgICAgICAgaWYgKGcpIHtcbiAgICAgICAgICAgIHRoaXMuZy5hcHBlbmQoZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3SW1hZ2UoKSB7XG4gICAgICAgIGNvbnN0IGltYWdlID0gdGhpcy5pbWFnZURyYXdlci5kcmF3SW1hZ2UodGhpcy5lbGVtZW50KTtcbiAgICAgICAgaWYgKGltYWdlKSB7XG4gICAgICAgICAgICB0aGlzLmcuYXBwZW5kKGltYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXdTaGFwZSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U2hhcGUoKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBnZXRTaGFwZUJ5RWxlbWVudCh0aGlzLmJvYXJkLCB0aGlzLm5vZGUub3JpZ2luKSBhcyBNaW5kRWxlbWVudFNoYXBlO1xuICAgICAgICBzd2l0Y2ggKHNoYXBlKSB7XG4gICAgICAgICAgICBjYXNlIE1pbmRFbGVtZW50U2hhcGUucm91bmRSZWN0YW5nbGU6XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFwZUcgPSBkcmF3Um91bmRSZWN0YW5nbGVCeU5vZGUodGhpcy5ib2FyZCwgdGhpcy5ub2RlIGFzIE1pbmROb2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmcucHJlcGVuZCh0aGlzLnNoYXBlRyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveVNoYXBlKCkge1xuICAgICAgICBpZiAodGhpcy5zaGFwZUcpIHtcbiAgICAgICAgICAgIHRoaXMuc2hhcGVHLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5zaGFwZUcgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhd0xpbmsoKSB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IE1pbmRFbGVtZW50LmdldFBhcmVudCh0aGlzLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShwYXJlbnQpO1xuXG4gICAgICAgIGlmICh0aGlzLmxpbmtHKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtHLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KHBhcmVudCkgYXMgTWluZExheW91dFR5cGU7XG4gICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdCh0aGlzLm5vZGUub3JpZ2luKSkge1xuICAgICAgICAgICAgdGhpcy5saW5rRyA9IGRyYXdBYnN0cmFjdExpbmsodGhpcy5ib2FyZCwgdGhpcy5ub2RlLCBpc0hvcml6b250YWxMYXlvdXQobGF5b3V0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtHID0gZHJhd0xpbmsodGhpcy5ib2FyZCwgcGFyZW50Tm9kZSwgdGhpcy5ub2RlLCBpc0hvcml6b250YWxMYXlvdXQobGF5b3V0KSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nLmFwcGVuZCh0aGlzLmxpbmtHKTtcbiAgICB9XG5cbiAgICBkZXN0cm95TGluZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubGlua0cpIHtcbiAgICAgICAgICAgIHRoaXMubGlua0cucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3RXh0ZW5kKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lFeHRlbmQoKTtcblxuICAgICAgICB0aGlzLmV4dGVuZEcgPSBjcmVhdGVHKCk7XG4gICAgICAgIHRoaXMuZXh0ZW5kRy5jbGFzc0xpc3QuYWRkKCdleHRlbmQnKTtcbiAgICAgICAgdGhpcy5nLmFwcGVuZCh0aGlzLmV4dGVuZEcpO1xuXG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnQuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZy5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZy5jbGFzc0xpc3QucmVtb3ZlKCdjb2xsYXBzZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubm9kZUluc2VydERyYXdlci5kcmF3KHRoaXMuZWxlbWVudCwgdGhpcy5leHRlbmRHISk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VEcmF3ZXIuZHJhdyh0aGlzLmVsZW1lbnQsIHRoaXMuZXh0ZW5kRyEpO1xuICAgIH1cblxuICAgIGRlc3Ryb3lFeHRlbmQoKSB7XG4gICAgICAgIGlmICh0aGlzLmV4dGVuZEcpIHtcbiAgICAgICAgICAgIHRoaXMuZXh0ZW5kRy5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXdUZXh0KCkge1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UuZHJhdyh0aGlzLmVsZW1lbnQuZGF0YS50b3BpYyk7XG4gICAgICAgIHRoaXMuZy5hcHBlbmQodGhpcy50ZXh0TWFuYWdlLmcpO1xuICAgIH1cblxuICAgIHRyYWNrQnkgPSAoaW5kZXg6IG51bWJlciwgbm9kZTogTWluZE5vZGUpID0+IHtcbiAgICAgICAgcmV0dXJuIG5vZGUub3JpZ2luLmlkO1xuICAgIH07XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5ub2RlRW1vamlzRHJhd2VyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5pbWFnZURyYXdlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIGlmIChFTEVNRU5UX1RPX05PREUuZ2V0KHRoaXMuZWxlbWVudCkgPT09IHRoaXMubm9kZSkge1xuICAgICAgICAgICAgRUxFTUVOVF9UT19OT0RFLmRlbGV0ZSh0aGlzLmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { PlaitBoard, getHitElements, isMainPointer, toPoint, transformPoint, PlaitPluginKey, PlaitElement, hotkeys, clearSelectedElement, PlaitPointerType } from '@plait/core';
|
|
2
|
+
import { MindElement } from '../interfaces';
|
|
3
|
+
import { MindTransforms, isHitImage } from '../public-api';
|
|
4
|
+
export const withMindImage = (board) => {
|
|
5
|
+
let selectedImageElement = null;
|
|
6
|
+
const { keydown, mousedown } = board;
|
|
7
|
+
board.mousedown = (event) => {
|
|
8
|
+
if (PlaitBoard.isReadonly(board) || !isMainPointer(event) || !PlaitBoard.isPointer(board, PlaitPointerType.selection)) {
|
|
9
|
+
mousedown(event);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
13
|
+
const range = { anchor: point, focus: point };
|
|
14
|
+
const hitElements = getHitElements(board, { ranges: [range] });
|
|
15
|
+
const hasImage = hitElements.length && MindElement.hasImage(hitElements[0]);
|
|
16
|
+
const hitImage = hasImage && isHitImage(board, hitElements[0], range);
|
|
17
|
+
if (hitImage) {
|
|
18
|
+
const currentOptions = board.getPluginOptions(PlaitPluginKey.withSelection);
|
|
19
|
+
board.setPluginOptions(PlaitPluginKey.withSelection, {
|
|
20
|
+
isDisabledSelect: true
|
|
21
|
+
});
|
|
22
|
+
setTimeout(() => {
|
|
23
|
+
board.setPluginOptions(PlaitPluginKey.withSelection, { ...currentOptions });
|
|
24
|
+
}, 0);
|
|
25
|
+
selectedImageElement = hitElements[0];
|
|
26
|
+
const component = PlaitElement.getComponent(selectedImageElement);
|
|
27
|
+
component.imageDrawer.drawActive(selectedImageElement);
|
|
28
|
+
clearSelectedElement(board);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if (selectedImageElement) {
|
|
32
|
+
const component = PlaitElement.getComponent(selectedImageElement);
|
|
33
|
+
component && component.imageDrawer.destroyActive();
|
|
34
|
+
}
|
|
35
|
+
selectedImageElement = null;
|
|
36
|
+
}
|
|
37
|
+
mousedown(event);
|
|
38
|
+
};
|
|
39
|
+
board.keydown = (event) => {
|
|
40
|
+
if (!PlaitBoard.isReadonly(board) && selectedImageElement && (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event))) {
|
|
41
|
+
MindTransforms.removeImage(board, selectedImageElement);
|
|
42
|
+
selectedImageElement = null;
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
keydown(event);
|
|
46
|
+
};
|
|
47
|
+
return board;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1taW5kLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW1pbmQtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixjQUFjLEVBQ2QsYUFBYSxFQUNiLE9BQU8sRUFDUCxjQUFjLEVBR2QsY0FBYyxFQUNkLFlBQVksRUFDWixPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBcUIsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDL0MsSUFBSSxvQkFBb0IsR0FBa0MsSUFBSSxDQUFDO0lBRS9ELE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXJDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDcEMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbkgsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE9BQU87U0FDVjtRQUNELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRixNQUFNLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzlDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQWdCLENBQUMsQ0FBQztRQUMzRixNQUFNLFFBQVEsR0FBRyxRQUFRLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWhHLElBQUksUUFBUSxFQUFFO1lBQ1YsTUFBTSxjQUFjLEdBQUksS0FBMkIsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEcsS0FBMkIsQ0FBQyxnQkFBZ0IsQ0FBb0IsY0FBYyxDQUFDLGFBQWEsRUFBRTtnQkFDM0YsZ0JBQWdCLEVBQUUsSUFBSTthQUN6QixDQUFDLENBQUM7WUFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNYLEtBQTJCLENBQUMsZ0JBQWdCLENBQW9CLGNBQWMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDMUgsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRU4sb0JBQW9CLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBMkIsQ0FBQztZQUNoRSxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFzQixDQUFDO1lBQ3ZGLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDdkQsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7YUFBTTtZQUNILElBQUksb0JBQW9CLEVBQUU7Z0JBQ3RCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQXNCLENBQUM7Z0JBQ3ZGLFNBQVMsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3REO1lBQ0Qsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1NBQy9CO1FBRUQsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksb0JBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzlILGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDeEQsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQzVCLE9BQU87U0FDVjtRQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgZ2V0SGl0RWxlbWVudHMsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICB0b1BvaW50LFxuICAgIHRyYW5zZm9ybVBvaW50LFxuICAgIFBsYWl0T3B0aW9uc0JvYXJkLFxuICAgIFdpdGhQbHVnaW5PcHRpb25zLFxuICAgIFBsYWl0UGx1Z2luS2V5LFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBob3RrZXlzLFxuICAgIGNsZWFyU2VsZWN0ZWRFbGVtZW50LFxuICAgIFBsYWl0UG9pbnRlclR5cGVcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50LCBNaW5kVHJhbnNmb3JtcywgaXNIaXRJbWFnZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgSW1hZ2VEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuXG5leHBvcnQgY29uc3Qgd2l0aE1pbmRJbWFnZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGxldCBzZWxlY3RlZEltYWdlRWxlbWVudDogTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPiB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3QgeyBrZXlkb3duLCBtb3VzZWRvd24gfSA9IGJvYXJkO1xuXG4gICAgYm9hcmQubW91c2Vkb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpIHx8ICFpc01haW5Qb2ludGVyKGV2ZW50KSB8fCAhUGxhaXRCb2FyZC5pc1BvaW50ZXIoYm9hcmQsIFBsYWl0UG9pbnRlclR5cGUuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgbW91c2Vkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSB7IGFuY2hvcjogcG9pbnQsIGZvY3VzOiBwb2ludCB9O1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50cyA9IGdldEhpdEVsZW1lbnRzKGJvYXJkLCB7IHJhbmdlczogW3JhbmdlXSB9KTtcbiAgICAgICAgY29uc3QgaGFzSW1hZ2UgPSBoaXRFbGVtZW50cy5sZW5ndGggJiYgTWluZEVsZW1lbnQuaGFzSW1hZ2UoaGl0RWxlbWVudHNbMF0gYXMgTWluZEVsZW1lbnQpO1xuICAgICAgICBjb25zdCBoaXRJbWFnZSA9IGhhc0ltYWdlICYmIGlzSGl0SW1hZ2UoYm9hcmQsIGhpdEVsZW1lbnRzWzBdIGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4sIHJhbmdlKTtcblxuICAgICAgICBpZiAoaGl0SW1hZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gKGJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5nZXRQbHVnaW5PcHRpb25zKFBsYWl0UGx1Z2luS2V5LndpdGhTZWxlY3Rpb24pO1xuICAgICAgICAgICAgKGJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5zZXRQbHVnaW5PcHRpb25zPFdpdGhQbHVnaW5PcHRpb25zPihQbGFpdFBsdWdpbktleS53aXRoU2VsZWN0aW9uLCB7XG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZFNlbGVjdDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAoYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLnNldFBsdWdpbk9wdGlvbnM8V2l0aFBsdWdpbk9wdGlvbnM+KFBsYWl0UGx1Z2luS2V5LndpdGhTZWxlY3Rpb24sIHsgLi4uY3VycmVudE9wdGlvbnMgfSk7XG4gICAgICAgICAgICB9LCAwKTtcblxuICAgICAgICAgICAgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBoaXRFbGVtZW50c1swXSBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+O1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gUGxhaXRFbGVtZW50LmdldENvbXBvbmVudChzZWxlY3RlZEltYWdlRWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgICAgICBjb21wb25lbnQuaW1hZ2VEcmF3ZXIuZHJhd0FjdGl2ZShzZWxlY3RlZEltYWdlRWxlbWVudCk7XG4gICAgICAgICAgICBjbGVhclNlbGVjdGVkRWxlbWVudChib2FyZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KHNlbGVjdGVkSW1hZ2VFbGVtZW50KSBhcyBNaW5kTm9kZUNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQgJiYgY29tcG9uZW50LmltYWdlRHJhd2VyLmRlc3Ryb3lBY3RpdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlbGVjdGVkSW1hZ2VFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIG1vdXNlZG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmIHNlbGVjdGVkSW1hZ2VFbGVtZW50ICYmIChob3RrZXlzLmlzRGVsZXRlQmFja3dhcmQoZXZlbnQpIHx8IGhvdGtleXMuaXNEZWxldGVGb3J3YXJkKGV2ZW50KSkpIHtcbiAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnJlbW92ZUltYWdlKGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCk7XG4gICAgICAgICAgICBzZWxlY3RlZEltYWdlRWxlbWVudCA9IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBrZXlkb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcbiJdfQ==
|