@plait/mind 0.3.0 → 0.4.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/drawer/{emoji.drawer.d.ts → emojis.drawer.d.ts} +2 -1
- package/esm2020/base/emoji-base.component.mjs +3 -3
- package/esm2020/drawer/emojis.drawer.mjs +73 -0
- package/esm2020/interfaces/element.mjs +6 -1
- package/esm2020/mind.component.mjs +3 -3
- package/esm2020/mind.module.mjs +4 -4
- package/esm2020/node.component.mjs +11 -15
- package/esm2020/plugins/with-abstract-resize.mjs +6 -2
- package/esm2020/plugins/with-mind-create.mjs +5 -4
- package/esm2020/plugins/with-mind.mjs +9 -4
- package/esm2020/plugins/with-node-dnd.mjs +13 -12
- package/esm2020/transforms/index.mjs +4 -3
- package/esm2020/transforms/node.mjs +11 -8
- package/esm2020/utils/dnd/common.mjs +29 -1
- package/esm2020/utils/dnd/detector.mjs +1 -7
- package/esm2020/utils/draw/abstract-outline.mjs +75 -0
- package/esm2020/utils/draw/node-dnd.mjs +133 -0
- package/esm2020/utils/draw/node-link/abstract-link.mjs +54 -0
- package/esm2020/utils/draw/node-link/draw-link.mjs +9 -0
- package/esm2020/utils/draw/node-link/indented-link.mjs +54 -0
- package/esm2020/utils/draw/node-link/logic-link.mjs +67 -0
- package/esm2020/utils/draw/node-shape.mjs +21 -0
- package/esm2020/utils/draw/node-topic.mjs +32 -0
- package/esm2020/utils/index.mjs +4 -2
- package/esm2020/utils/mind.mjs +2 -27
- package/esm2020/utils/node/common.mjs +6 -0
- package/esm2020/utils/node/index.mjs +4 -0
- package/esm2020/utils/node/right-node-count.mjs +45 -0
- package/esm2020/utils/node-style/branch.mjs +6 -1
- package/fesm2015/plait-mind.mjs +985 -911
- package/fesm2015/plait-mind.mjs.map +1 -1
- package/fesm2020/plait-mind.mjs +1005 -931
- package/fesm2020/plait-mind.mjs.map +1 -1
- package/interfaces/element.d.ts +5 -0
- package/node.component.d.ts +1 -1
- package/package.json +1 -1
- package/transforms/index.d.ts +1 -0
- package/transforms/node.d.ts +2 -0
- package/utils/dnd/common.d.ts +5 -1
- package/utils/dnd/detector.d.ts +0 -6
- package/{draw/abstract.d.ts → utils/draw/abstract-outline.d.ts} +2 -2
- package/utils/{dnd/draw.d.ts → draw/node-dnd.d.ts} +1 -5
- package/{draw/link → utils/draw/node-link}/abstract-link.d.ts +1 -1
- package/utils/draw/node-link/draw-link.d.ts +3 -0
- package/{draw → utils/draw/node-link}/indented-link.d.ts +1 -1
- package/utils/draw/node-link/logic-link.d.ts +3 -0
- package/{draw/node.d.ts → utils/draw/node-shape.d.ts} +2 -2
- package/{draw/topic.d.ts → utils/draw/node-topic.d.ts} +3 -3
- package/utils/index.d.ts +3 -1
- package/utils/mind.d.ts +0 -2
- package/utils/{node.d.ts → node/common.d.ts} +1 -1
- package/utils/node/index.d.ts +3 -0
- package/utils/node/right-node-count.d.ts +9 -0
- package/utils/node-style/branch.d.ts +1 -0
- package/draw/link/logic-link.d.ts +0 -3
- package/esm2020/draw/abstract.mjs +0 -75
- package/esm2020/draw/indented-link.mjs +0 -45
- package/esm2020/draw/link/abstract-link.mjs +0 -38
- package/esm2020/draw/link/logic-link.mjs +0 -54
- package/esm2020/draw/node.mjs +0 -21
- package/esm2020/draw/topic.mjs +0 -32
- package/esm2020/drawer/emoji.drawer.mjs +0 -73
- package/esm2020/utils/dnd/draw.mjs +0 -161
- package/esm2020/utils/node.mjs +0 -6
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { MindElement } from '../interfaces';
|
|
2
|
-
import { createForeignObject } from '@plait/richtext';
|
|
3
|
-
import { createG } from '@plait/core';
|
|
4
|
-
import { getEmojiFontSize } from '../utils/space/emoji';
|
|
5
|
-
import { getEmojiForeignRectangle } from '../utils/position/emoji';
|
|
6
|
-
export class EmojiDrawer {
|
|
7
|
-
constructor(board, viewContainerRef) {
|
|
8
|
-
this.board = board;
|
|
9
|
-
this.viewContainerRef = viewContainerRef;
|
|
10
|
-
this.componentRef = null;
|
|
11
|
-
}
|
|
12
|
-
draw(emoji, element) {
|
|
13
|
-
this.destroy();
|
|
14
|
-
const componentType = this.board.drawEmoji(emoji, element);
|
|
15
|
-
this.componentRef = this.viewContainerRef.createComponent(componentType);
|
|
16
|
-
this.componentRef.instance.emojiItem = emoji;
|
|
17
|
-
this.componentRef.instance.board = this.board;
|
|
18
|
-
this.componentRef.instance.element = element;
|
|
19
|
-
this.componentRef.instance.fontSize = getEmojiFontSize(element);
|
|
20
|
-
}
|
|
21
|
-
get nativeElement() {
|
|
22
|
-
if (this.componentRef) {
|
|
23
|
-
return this.componentRef.instance.nativeElement;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
destroy() {
|
|
30
|
-
if (this.componentRef) {
|
|
31
|
-
this.componentRef.destroy();
|
|
32
|
-
this.componentRef = null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export class EmojisDrawer {
|
|
37
|
-
constructor(board, viewContainerRef) {
|
|
38
|
-
this.board = board;
|
|
39
|
-
this.viewContainerRef = viewContainerRef;
|
|
40
|
-
this.emojiDrawers = [];
|
|
41
|
-
}
|
|
42
|
-
drawEmojis(element) {
|
|
43
|
-
this.destroy();
|
|
44
|
-
if (MindElement.hasEmojis(element)) {
|
|
45
|
-
this.g = createG();
|
|
46
|
-
this.g.classList.add('emojis');
|
|
47
|
-
const foreignRectangle = getEmojiForeignRectangle(this.board, element);
|
|
48
|
-
const foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
|
|
49
|
-
this.g.append(foreignObject);
|
|
50
|
-
const container = document.createElement('div');
|
|
51
|
-
container.classList.add('node-emojis-container');
|
|
52
|
-
foreignObject.append(container);
|
|
53
|
-
this.emojiDrawers = element.data.emojis.map(emojiItem => {
|
|
54
|
-
const drawer = new EmojiDrawer(this.board, this.viewContainerRef);
|
|
55
|
-
drawer.draw(emojiItem, element);
|
|
56
|
-
return drawer;
|
|
57
|
-
});
|
|
58
|
-
this.emojiDrawers.forEach(drawer => {
|
|
59
|
-
container.append(drawer.nativeElement);
|
|
60
|
-
});
|
|
61
|
-
return this.g;
|
|
62
|
-
}
|
|
63
|
-
return undefined;
|
|
64
|
-
}
|
|
65
|
-
destroy() {
|
|
66
|
-
if (this.g) {
|
|
67
|
-
this.g.remove();
|
|
68
|
-
}
|
|
69
|
-
this.emojiDrawers.forEach(drawer => drawer.destroy());
|
|
70
|
-
this.emojiDrawers = [];
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuZHJhd2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvZHJhd2VyL2Vtb2ppLmRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR25FLE1BQU0sT0FBTyxXQUFXO0lBR3BCLFlBQW9CLEtBQXFCLEVBQVUsZ0JBQWtDO1FBQWpFLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUZyRixpQkFBWSxHQUFnRCxJQUFJLENBQUM7SUFFdUIsQ0FBQztJQUV6RixJQUFJLENBQUMsS0FBZ0IsRUFBRSxPQUErQjtRQUNsRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztR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IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW1vamlEYXRhLCBFbW9qaUl0ZW0sIE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNaW5kRW1vamlCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbW9qaS1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjcmVhdGVGb3JlaWduT2JqZWN0IH0gZnJvbSAnQHBsYWl0L3JpY2h0ZXh0JztcbmltcG9ydCB7IGNyZWF0ZUcgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRFbW9qaUZvbnRTaXplIH0gZnJvbSAnLi4vdXRpbHMvc3BhY2UvZW1vamknO1xuaW1wb3J0IHsgZ2V0RW1vamlGb3JlaWduUmVjdGFuZ2xlIH0gZnJvbSAnLi4vdXRpbHMvcG9zaXRpb24vZW1vamknO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5cbmV4cG9ydCBjbGFzcyBFbW9qaURyYXdlciB7XG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TWluZEVtb2ppQmFzZUNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgICBkcmF3KGVtb2ppOiBFbW9qaUl0ZW0sIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmJvYXJkLmRyYXdFbW9qaShlbW9qaSwgZWxlbWVudCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZW1vamlJdGVtID0gZW1vamk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmJvYXJkID0gdGhpcy5ib2FyZDtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmZvbnRTaXplID0gZ2V0RW1vamlGb250U2l6ZShlbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbW9qaXNEcmF3ZXIge1xuICAgIGVtb2ppRHJhd2VyczogRW1vamlEcmF3ZXJbXSA9IFtdO1xuXG4gICAgZz86IFNWR0dFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBib2FyZDogUGxhaXRNaW5kQm9hcmQsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICAgIGRyYXdFbW9qaXMoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuZyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgICAgIHRoaXMuZy5jbGFzc0xpc3QuYWRkKCdlbW9qaXMnKTtcbiAgICAgICAgICAgIGNvbnN0IGZvcmVpZ25SZWN0YW5nbGUgPSBnZXRFbW9qaUZvcmVpZ25SZWN0YW5nbGUodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBmb3JlaWduT2JqZWN0ID0gY3JlYXRlRm9yZWlnbk9iamVjdChcbiAgICAgICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLngsXG4gICAgICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS55LFxuICAgICAgICAgICAgICAgIGZvcmVpZ25SZWN0YW5nbGUud2lkdGgsXG4gICAgICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS5oZWlnaHRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmcuYXBwZW5kKGZvcmVpZ25PYmplY3QpO1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnbm9kZS1lbW9qaXMtY29udGFpbmVyJyk7XG4gICAgICAgICAgICBmb3JlaWduT2JqZWN0LmFwcGVuZChjb250YWluZXIpO1xuICAgICAgICAgICAgdGhpcy5lbW9qaURyYXdlcnMgPSBlbGVtZW50LmRhdGEuZW1vamlzLm1hcChlbW9qaUl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRyYXdlciA9IG5ldyBFbW9qaURyYXdlcih0aGlzLmJvYXJkLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICAgICAgICAgIGRyYXdlci5kcmF3KGVtb2ppSXRlbSwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRyYXdlcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5lbW9qaURyYXdlcnMuZm9yRWFjaChkcmF3ZXIgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmQoZHJhd2VyLm5hdGl2ZUVsZW1lbnQhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmcpIHtcbiAgICAgICAgICAgIHRoaXMuZy5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVtb2ppRHJhd2Vycy5mb3JFYWNoKGRyYXdlciA9PiBkcmF3ZXIuZGVzdHJveSgpKTtcbiAgICAgICAgdGhpcy5lbW9qaURyYXdlcnMgPSBbXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { drawRoundRectangleByNode } from '../../draw/node';
|
|
2
|
-
import { updateForeignObject } from '@plait/richtext';
|
|
3
|
-
import { BASE, PRIMARY_COLOR, STROKE_WIDTH } from '../../constants';
|
|
4
|
-
import { MindElement, PlaitMind } from '../../interfaces';
|
|
5
|
-
import { getRectangleByNode } from '../position/node';
|
|
6
|
-
import { PlaitBoard, drawRoundRectangle, createG, Path, PlaitNode } from '@plait/core';
|
|
7
|
-
import { MindQueries } from '../../queries';
|
|
8
|
-
import { getNonAbstractChildren, isHorizontalLayout, isIndentedLayout, isStandardLayout, isTopLayout } from '@plait/layouts';
|
|
9
|
-
import { drawIndentedLink } from '../../draw/indented-link';
|
|
10
|
-
import { getTopicRectangleByNode } from '../position/topic';
|
|
11
|
-
import { drawLogicLink } from '../../draw/link/logic-link';
|
|
12
|
-
import { HorizontalPlacement, VerticalPlacement } from '../../interfaces/types';
|
|
13
|
-
import { getLayoutDirection, getPointByPlacement, moveXOfPoint, moveYOfPoint, transformPlacement } from '../point-placement';
|
|
14
|
-
import { getRootLayout } from '../layout';
|
|
15
|
-
export const drawFakeDragNode = (board, activeComponent, offsetX, offsetY) => {
|
|
16
|
-
const dragFakeNodeG = createG();
|
|
17
|
-
dragFakeNodeG.classList.add('dragging', 'fake-node', 'plait-board-attached');
|
|
18
|
-
const fakeDraggingNode = {
|
|
19
|
-
...activeComponent.node,
|
|
20
|
-
children: [],
|
|
21
|
-
x: activeComponent.node.x + offsetX,
|
|
22
|
-
y: activeComponent.node.y + offsetY
|
|
23
|
-
};
|
|
24
|
-
const textRectangle = getTopicRectangleByNode(board, activeComponent.node);
|
|
25
|
-
const fakeNodeG = drawRoundRectangleByNode(board, fakeDraggingNode);
|
|
26
|
-
const richtextG = activeComponent.richtextG?.cloneNode(true);
|
|
27
|
-
updateForeignObject(richtextG, textRectangle.width + BASE * 10, textRectangle.height, textRectangle.x + offsetX, textRectangle.y + offsetY);
|
|
28
|
-
dragFakeNodeG?.append(fakeNodeG);
|
|
29
|
-
dragFakeNodeG?.append(richtextG);
|
|
30
|
-
return dragFakeNodeG;
|
|
31
|
-
};
|
|
32
|
-
export const drawFakeDropNodeByPath = (board, target, path) => {
|
|
33
|
-
const fakeDropNodeG = createG();
|
|
34
|
-
const parent = PlaitNode.get(board, Path.parent(path));
|
|
35
|
-
const layout = MindQueries.getLayoutByElement(parent);
|
|
36
|
-
const isHorizontal = isHorizontalLayout(layout);
|
|
37
|
-
const { hasNextNode, hasPreviousNode } = getPreviousAndNextByPath(parent, target, path);
|
|
38
|
-
const width = 30;
|
|
39
|
-
const height = 12;
|
|
40
|
-
let fakeNode, centerPoint, basicNode, linkDirection;
|
|
41
|
-
if (!hasPreviousNode && !hasNextNode) {
|
|
42
|
-
const parentNode = MindElement.getNode(parent);
|
|
43
|
-
const parentRect = getRectangleByNode(parentNode);
|
|
44
|
-
linkDirection = getLayoutDirection(parentNode, isHorizontal);
|
|
45
|
-
basicNode = parentNode;
|
|
46
|
-
const placement = [HorizontalPlacement.right, VerticalPlacement.middle];
|
|
47
|
-
transformPlacement(placement, linkDirection);
|
|
48
|
-
const parentCenterPoint = getPointByPlacement(parentRect, placement);
|
|
49
|
-
if (isIndentedLayout(layout)) {
|
|
50
|
-
const placement = [
|
|
51
|
-
HorizontalPlacement.center,
|
|
52
|
-
isTopLayout(layout) ? VerticalPlacement.top : VerticalPlacement.bottom
|
|
53
|
-
];
|
|
54
|
-
const parentCenterPoint = getPointByPlacement(parentRect, placement);
|
|
55
|
-
centerPoint = moveXOfPoint(parentCenterPoint, height, linkDirection);
|
|
56
|
-
centerPoint[1] = isTopLayout(layout) ? centerPoint[1] - height : centerPoint[1] + height;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
centerPoint = moveXOfPoint(parentCenterPoint, width, linkDirection);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else if (!hasPreviousNode && hasNextNode) {
|
|
63
|
-
const nextElement = PlaitNode.get(board, path);
|
|
64
|
-
basicNode = MindElement.getNode(nextElement);
|
|
65
|
-
const nextRect = getRectangleByNode(basicNode);
|
|
66
|
-
linkDirection = getLayoutDirection(basicNode, isHorizontal);
|
|
67
|
-
const placement = [HorizontalPlacement.left, VerticalPlacement.top];
|
|
68
|
-
transformPlacement(placement, linkDirection);
|
|
69
|
-
let offset = -height;
|
|
70
|
-
if (MindElement.isIndentedLayout(parent)) {
|
|
71
|
-
offset = isTopLayout(layout) ? offset / 2 + basicNode.height - basicNode.vGap : 0;
|
|
72
|
-
}
|
|
73
|
-
centerPoint = getPointByPlacement(nextRect, placement);
|
|
74
|
-
centerPoint = moveYOfPoint(centerPoint, offset, linkDirection);
|
|
75
|
-
}
|
|
76
|
-
else if (hasPreviousNode && !hasNextNode) {
|
|
77
|
-
const previousElement = PlaitNode.get(board, Path.previous(path));
|
|
78
|
-
basicNode = MindElement.getNode(previousElement);
|
|
79
|
-
const previousRect = getRectangleByNode(basicNode);
|
|
80
|
-
linkDirection = getLayoutDirection(basicNode, isHorizontal);
|
|
81
|
-
const placement = [HorizontalPlacement.left, VerticalPlacement.bottom];
|
|
82
|
-
transformPlacement(placement, linkDirection);
|
|
83
|
-
let offset = height;
|
|
84
|
-
if (MindElement.isIndentedLayout(parent)) {
|
|
85
|
-
offset = isTopLayout(layout) ? -offset - (basicNode.height - basicNode.vGap) : offset;
|
|
86
|
-
}
|
|
87
|
-
centerPoint = getPointByPlacement(previousRect, placement);
|
|
88
|
-
centerPoint = moveYOfPoint(centerPoint, offset, linkDirection);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
const previousElement = PlaitNode.get(board, Path.previous(path));
|
|
92
|
-
basicNode = MindElement.getNode(previousElement);
|
|
93
|
-
const previousRect = getRectangleByNode(basicNode);
|
|
94
|
-
const nextElement = PlaitNode.get(board, path);
|
|
95
|
-
const nextNode = MindElement.getNode(nextElement);
|
|
96
|
-
const nextRect = getRectangleByNode(nextNode);
|
|
97
|
-
const beginPlacement = [HorizontalPlacement.left, VerticalPlacement.bottom];
|
|
98
|
-
const endPlacement = [HorizontalPlacement.left, VerticalPlacement.top];
|
|
99
|
-
linkDirection = getLayoutDirection(basicNode, isHorizontal);
|
|
100
|
-
transformPlacement(beginPlacement, linkDirection);
|
|
101
|
-
transformPlacement(endPlacement, linkDirection);
|
|
102
|
-
const previousPoint = getPointByPlacement(previousRect, beginPlacement);
|
|
103
|
-
const nextPoint = getPointByPlacement(nextRect, endPlacement);
|
|
104
|
-
centerPoint = [(previousPoint[0] + nextPoint[0]) / 2, (previousPoint[1] + nextPoint[1]) / 2];
|
|
105
|
-
}
|
|
106
|
-
let cornerPoint = centerPoint, oppositePoint = centerPoint;
|
|
107
|
-
const offsetY = isHorizontal ? height : width;
|
|
108
|
-
const offsetX = isHorizontal ? width : height;
|
|
109
|
-
cornerPoint = moveYOfPoint(cornerPoint, -offsetY / 2, linkDirection);
|
|
110
|
-
oppositePoint = moveYOfPoint(oppositePoint, offsetY / 2, linkDirection);
|
|
111
|
-
oppositePoint = moveXOfPoint(oppositePoint, offsetX, linkDirection);
|
|
112
|
-
const x = Math.min(cornerPoint[0], oppositePoint[0]);
|
|
113
|
-
const y = Math.min(cornerPoint[1], oppositePoint[1]);
|
|
114
|
-
fakeNode = {
|
|
115
|
-
...basicNode,
|
|
116
|
-
x,
|
|
117
|
-
y,
|
|
118
|
-
width,
|
|
119
|
-
height,
|
|
120
|
-
hGap: MindElement.isIndentedLayout(parent) ? BASE * 4 + (basicNode.origin.strokeWidth || STROKE_WIDTH) : 0,
|
|
121
|
-
vGap: MindElement.isIndentedLayout(parent) ? BASE : 0
|
|
122
|
-
};
|
|
123
|
-
const fakeRectangleG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), fakeNode.x, fakeNode.y, fakeNode.x + width, fakeNode.y + height, {
|
|
124
|
-
stroke: PRIMARY_COLOR,
|
|
125
|
-
strokeWidth: 2,
|
|
126
|
-
fill: PRIMARY_COLOR,
|
|
127
|
-
fillStyle: 'solid'
|
|
128
|
-
});
|
|
129
|
-
const link = MindElement.isIndentedLayout(parent)
|
|
130
|
-
? drawIndentedLink(board, MindElement.getNode(parent), fakeNode, PRIMARY_COLOR, false, STROKE_WIDTH)
|
|
131
|
-
: drawLogicLink(board, fakeNode, MindElement.getNode(parent), isHorizontal, PRIMARY_COLOR, STROKE_WIDTH);
|
|
132
|
-
fakeDropNodeG?.appendChild(link);
|
|
133
|
-
fakeDropNodeG?.appendChild(fakeRectangleG);
|
|
134
|
-
return fakeDropNodeG;
|
|
135
|
-
};
|
|
136
|
-
export const getPreviousAndNextByPath = (parent, target, path) => {
|
|
137
|
-
const children = getNonAbstractChildren(parent);
|
|
138
|
-
let hasPreviousNode = path[path.length - 1] !== 0;
|
|
139
|
-
let hasNextNode = path[path.length - 1] !== (children?.length || 0);
|
|
140
|
-
if (PlaitMind.isMind(parent) && isStandardLayout(getRootLayout(parent))) {
|
|
141
|
-
const dropStandardRightBottom = target === parent.children[parent.rightNodeCount - 1] && path[path.length - 1] === parent.rightNodeCount;
|
|
142
|
-
const dropStandardLeftTop = target === parent.children[parent.rightNodeCount] && path[path.length - 1] === parent.rightNodeCount;
|
|
143
|
-
if (dropStandardRightBottom) {
|
|
144
|
-
hasPreviousNode = true;
|
|
145
|
-
hasNextNode = false;
|
|
146
|
-
}
|
|
147
|
-
if (dropStandardLeftTop) {
|
|
148
|
-
hasPreviousNode = false;
|
|
149
|
-
hasNextNode = true;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
if (parent.isCollapsed) {
|
|
153
|
-
hasNextNode = false;
|
|
154
|
-
hasPreviousNode = false;
|
|
155
|
-
}
|
|
156
|
-
return {
|
|
157
|
-
hasPreviousNode,
|
|
158
|
-
hasNextNode
|
|
159
|
-
};
|
|
160
|
-
};
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL2RuZC9kcmF3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBbUIsV0FBVyxFQUFZLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQVMsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFFZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3SCxPQUFPLEVBQUUs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RyxLQUFLLENBQUM7UUFDcEIsZUFBZSxHQUFHLEtBQUssQ0FBQztLQUMzQjtJQUVELE9BQU87UUFDSCxlQUFlO1FBQ2YsV0FBVztLQUNkLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkcmF3Um91bmRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi8uLi9kcmF3L25vZGUnO1xuaW1wb3J0IHsgdXBkYXRlRm9yZWlnbk9iamVjdCB9IGZyb20gJ0BwbGFpdC9yaWNodGV4dCc7XG5pbXBvcnQgeyBCQVNFLCBQUklNQVJZX0NPTE9SLCBTVFJPS0VfV0lEVEggfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTGF5b3V0RGlyZWN0aW9uLCBNaW5kRWxlbWVudCwgTWluZE5vZGUsIFBsYWl0TWluZCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi9wb3NpdGlvbi9ub2RlJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBkcmF3Um91bmRSZWN0YW5nbGUsIGNyZWF0ZUcsIFBhdGgsIFBsYWl0Tm9kZSB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQge1xuICAgIGdldE5vbkFic3RyYWN0Q2hpbGRyZW4sXG4gICAgaXNIb3Jpem9udGFsTGF5b3V0LFxuICAgIGlzSW5kZW50ZWRMYXlvdXQsXG4gICAgaXNTdGFuZGFyZExheW91dCxcbiAgICBpc1RvcExheW91dCxcbiAgICBNaW5kTGF5b3V0VHlwZVxufSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBkcmF3SW5kZW50ZWRMaW5rIH0gZnJvbSAnLi4vLi4vZHJhdy9pbmRlbnRlZC1saW5rJztcbmltcG9ydCB7IGdldFRvcGljUmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi4vcG9zaXRpb24vdG9waWMnO1xuaW1wb3J0IHsgZHJhd0xvZ2ljTGluayB9IGZyb20gJy4uLy4uL2RyYXcvbGluay9sb2dpYy1saW5rJztcbmltcG9ydCB7IEhvcml6b250YWxQbGFjZW1lbnQsIFBvaW50UGxhY2VtZW50LCBWZXJ0aWNhbFBsYWNlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0TGF5b3V0RGlyZWN0aW9uLCBnZXRQb2ludEJ5UGxhY2VtZW50LCBtb3ZlWE9mUG9pbnQsIG1vdmVZT2ZQb2ludCwgdHJhbnNmb3JtUGxhY2VtZW50IH0gZnJvbSAnLi4vcG9pbnQtcGxhY2VtZW50JztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgZ2V0Um9vdExheW91dCB9IGZyb20gJy4uL2xheW91dCc7XG5cbmV4cG9ydCBjb25zdCBkcmF3RmFrZURyYWdOb2RlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBhY3RpdmVDb21wb25lbnQ6IE1pbmROb2RlQ29tcG9uZW50LCBvZmZzZXRYOiBudW1iZXIsIG9mZnNldFk6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGRyYWdGYWtlTm9kZUcgPSBjcmVhdGVHKCk7XG4gICAgZHJhZ0Zha2VOb2RlRy5jbGFzc0xpc3QuYWRkKCdkcmFnZ2luZycsICdmYWtlLW5vZGUnLCAncGxhaXQtYm9hcmQtYXR0YWNoZWQnKTtcblxuICAgIGNvbnN0IGZha2VEcmFnZ2luZ05vZGU6IE1pbmROb2RlID0ge1xuICAgICAgICAuLi5hY3RpdmVDb21wb25lbnQubm9kZSxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICB4OiBhY3RpdmVDb21wb25lbnQubm9kZS54ICsgb2Zmc2V0WCxcbiAgICAgICAgeTogYWN0aXZlQ29tcG9uZW50Lm5vZGUueSArIG9mZnNldFlcbiAgICB9O1xuICAgIGNvbnN0IHRleHRSZWN0YW5nbGUgPSBnZXRUb3BpY1JlY3RhbmdsZUJ5Tm9kZShib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgYWN0aXZlQ29tcG9uZW50Lm5vZGUpO1xuICAgIGNvbnN0IGZha2VOb2RlRyA9IGRyYXdSb3VuZFJlY3RhbmdsZUJ5Tm9kZShib2FyZCwgZmFrZURyYWdnaW5nTm9kZSk7XG5cbiAgICBjb25zdCByaWNodGV4dEcgPSBhY3RpdmVDb21wb25lbnQucmljaHRleHRHPy5jbG9uZU5vZGUodHJ1ZSkgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgdXBkYXRlRm9yZWlnbk9iamVjdChcbiAgICAgICAgcmljaHRleHRHLFxuICAgICAgICB0ZXh0UmVjdGFuZ2xlLndpZHRoICsgQkFTRSAqIDEwLFxuICAgICAgICB0ZXh0UmVjdGFuZ2xlLmhlaWdodCxcbiAgICAgICAgdGV4dFJlY3RhbmdsZS54ICsgb2Zmc2V0WCxcbiAgICAgICAgdGV4dFJlY3RhbmdsZS55ICsgb2Zmc2V0WVxuICAgICk7XG5cbiAgICBkcmFnRmFrZU5vZGVHPy5hcHBlbmQoZmFrZU5vZGVHKTtcbiAgICBkcmFnRmFrZU5vZGVHPy5hcHBlbmQocmljaHRleHRHKTtcbiAgICByZXR1cm4gZHJhZ0Zha2VOb2RlRztcbn07XG5cbmV4cG9ydCBjb25zdCBkcmF3RmFrZURyb3BOb2RlQnlQYXRoID0gKGJvYXJkOiBQbGFpdEJvYXJkLCB0YXJnZXQ6IE1pbmRFbGVtZW50LCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgY29uc3QgZmFrZURyb3BOb2RlRyA9IGNyZWF0ZUcoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBQYXRoLnBhcmVudChwYXRoKSkgYXMgTWluZEVsZW1lbnQ7XG4gICAgY29uc3QgbGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KHBhcmVudCkgYXMgTWluZExheW91dFR5cGU7XG4gICAgY29uc3QgaXNIb3Jpem9udGFsID0gaXNIb3Jpem9udGFsTGF5b3V0KGxheW91dCk7XG4gICAgY29uc3QgeyBoYXNOZXh0Tm9kZSwgaGFzUHJldmlvdXNOb2RlIH0gPSBnZXRQcmV2aW91c0FuZE5leHRCeVBhdGgocGFyZW50LCB0YXJnZXQsIHBhdGgpO1xuICAgIGNvbnN0IHdpZHRoID0gMzA7XG4gICAgY29uc3QgaGVpZ2h0ID0gMTI7XG4gICAgbGV0IGZha2VOb2RlOiBNaW5kTm9kZSwgY2VudGVyUG9pbnQ6IFBvaW50LCBiYXNpY05vZGU6IE1pbmROb2RlLCBsaW5rRGlyZWN0aW9uOiBMYXlvdXREaXJlY3Rpb247XG5cbiAgICBpZiAoIWhhc1ByZXZpb3VzTm9kZSAmJiAhaGFzTmV4dE5vZGUpIHtcbiAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUocGFyZW50KTtcbiAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IGdldFJlY3RhbmdsZUJ5Tm9kZShwYXJlbnROb2RlKTtcblxuICAgICAgICBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKHBhcmVudE5vZGUsIGlzSG9yaXpvbnRhbCk7XG4gICAgICAgIGJhc2ljTm9kZSA9IHBhcmVudE5vZGU7XG5cbiAgICAgICAgY29uc3QgcGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LnJpZ2h0LCBWZXJ0aWNhbFBsYWNlbWVudC5taWRkbGVdO1xuICAgICAgICB0cmFuc2Zvcm1QbGFjZW1lbnQocGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcbiAgICAgICAgY29uc3QgcGFyZW50Q2VudGVyUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KHBhcmVudFJlY3QsIHBsYWNlbWVudCk7XG5cbiAgICAgICAgaWYgKGlzSW5kZW50ZWRMYXlvdXQobGF5b3V0KSkge1xuICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtcbiAgICAgICAgICAgICAgICBIb3Jpem9udGFsUGxhY2VtZW50LmNlbnRlcixcbiAgICAgICAgICAgICAgICBpc1RvcExheW91dChsYXlvdXQpID8gVmVydGljYWxQbGFjZW1lbnQudG9wIDogVmVydGljYWxQbGFjZW1lbnQuYm90dG9tXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50Q2VudGVyUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KHBhcmVudFJlY3QsIHBsYWNlbWVudCk7XG5cbiAgICAgICAgICAgIGNlbnRlclBvaW50ID0gbW92ZVhPZlBvaW50KHBhcmVudENlbnRlclBvaW50LCBoZWlnaHQsIGxpbmtEaXJlY3Rpb24pO1xuICAgICAgICAgICAgY2VudGVyUG9pbnRbMV0gPSBpc1RvcExheW91dChsYXlvdXQpID8gY2VudGVyUG9pbnRbMV0gLSBoZWlnaHQgOiBjZW50ZXJQb2ludFsxXSArIGhlaWdodDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNlbnRlclBvaW50ID0gbW92ZVhPZlBvaW50KHBhcmVudENlbnRlclBvaW50LCB3aWR0aCwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFoYXNQcmV2aW91c05vZGUgJiYgaGFzTmV4dE5vZGUpIHtcbiAgICAgICAgY29uc3QgbmV4dEVsZW1lbnQgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXRoKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgYmFzaWNOb2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShuZXh0RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG5leHRSZWN0ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKGJhc2ljTm9kZSk7XG4gICAgICAgIGxpbmtEaXJlY3Rpb24gPSBnZXRMYXlvdXREaXJlY3Rpb24oYmFzaWNOb2RlLCBpc0hvcml6b250YWwpO1xuXG4gICAgICAgIGNvbnN0IHBsYWNlbWVudDogUG9pbnRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0LCBWZXJ0aWNhbFBsYWNlbWVudC50b3BdO1xuXG4gICAgICAgIHRyYW5zZm9ybVBsYWNlbWVudChwbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgICAgIGxldCBvZmZzZXQgPSAtaGVpZ2h0O1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaXNJbmRlbnRlZExheW91dChwYXJlbnQpKSB7XG4gICAgICAgICAgICBvZmZzZXQgPSBpc1RvcExheW91dChsYXlvdXQpID8gb2Zmc2V0IC8gMiArIGJhc2ljTm9kZS5oZWlnaHQgLSBiYXNpY05vZGUudkdhcCA6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjZW50ZXJQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQobmV4dFJlY3QsIHBsYWNlbWVudCk7XG4gICAgICAgIGNlbnRlclBvaW50ID0gbW92ZVlPZlBvaW50KGNlbnRlclBvaW50LCBvZmZzZXQsIGxpbmtEaXJlY3Rpb24pO1xuICAgIH0gZWxzZSBpZiAoaGFzUHJldmlvdXNOb2RlICYmICFoYXNOZXh0Tm9kZSkge1xuICAgICAgICBjb25zdCBwcmV2aW91c0VsZW1lbnQgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBQYXRoLnByZXZpb3VzKHBhdGgpKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgYmFzaWNOb2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShwcmV2aW91c0VsZW1lbnQpO1xuICAgICAgICBjb25zdCBwcmV2aW91c1JlY3QgPSBnZXRSZWN0YW5nbGVCeU5vZGUoYmFzaWNOb2RlKTtcbiAgICAgICAgbGlua0RpcmVjdGlvbiA9IGdldExheW91dERpcmVjdGlvbihiYXNpY05vZGUsIGlzSG9yaXpvbnRhbCk7XG5cbiAgICAgICAgY29uc3QgcGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQsIFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbV07XG5cbiAgICAgICAgdHJhbnNmb3JtUGxhY2VtZW50KHBsYWNlbWVudCwgbGlua0RpcmVjdGlvbik7XG5cbiAgICAgICAgbGV0IG9mZnNldCA9IGhlaWdodDtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50LmlzSW5kZW50ZWRMYXlvdXQocGFyZW50KSkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gaXNUb3BMYXlvdXQobGF5b3V0KSA/IC1vZmZzZXQgLSAoYmFzaWNOb2RlLmhlaWdodCAtIGJhc2ljTm9kZS52R2FwKSA6IG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBjZW50ZXJQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQocHJldmlvdXNSZWN0LCBwbGFjZW1lbnQpO1xuICAgICAgICBjZW50ZXJQb2ludCA9IG1vdmVZT2ZQb2ludChjZW50ZXJQb2ludCwgb2Zmc2V0LCBsaW5rRGlyZWN0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwcmV2aW91c0VsZW1lbnQgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBQYXRoLnByZXZpb3VzKHBhdGgpKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgYmFzaWNOb2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShwcmV2aW91c0VsZW1lbnQpO1xuICAgICAgICBjb25zdCBwcmV2aW91c1JlY3QgPSBnZXRSZWN0YW5nbGVCeU5vZGUoYmFzaWNOb2RlKTtcblxuICAgICAgICBjb25zdCBuZXh0RWxlbWVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGgpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICBjb25zdCBuZXh0Tm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUobmV4dEVsZW1lbnQpO1xuICAgICAgICBjb25zdCBuZXh0UmVjdCA9IGdldFJlY3RhbmdsZUJ5Tm9kZShuZXh0Tm9kZSk7XG5cbiAgICAgICAgY29uc3QgYmVnaW5QbGFjZW1lbnQ6IFBvaW50UGxhY2VtZW50ID0gW0hvcml6b250YWxQbGFjZW1lbnQubGVmdCwgVmVydGljYWxQbGFjZW1lbnQuYm90dG9tXTtcbiAgICAgICAgY29uc3QgZW5kUGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQsIFZlcnRpY2FsUGxhY2VtZW50LnRvcF07XG4gICAgICAgIGxpbmtEaXJlY3Rpb24gPSBnZXRMYXlvdXREaXJlY3Rpb24oYmFzaWNOb2RlLCBpc0hvcml6b250YWwpO1xuXG4gICAgICAgIHRyYW5zZm9ybVBsYWNlbWVudChiZWdpblBsYWNlbWVudCwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgIHRyYW5zZm9ybVBsYWNlbWVudChlbmRQbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KHByZXZpb3VzUmVjdCwgYmVnaW5QbGFjZW1lbnQpO1xuICAgICAgICBjb25zdCBuZXh0UG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KG5leHRSZWN0LCBlbmRQbGFjZW1lbnQpO1xuXG4gICAgICAgIGNlbnRlclBvaW50ID0gWyhwcmV2aW91c1BvaW50WzBdICsgbmV4dFBvaW50WzBdKSAvIDIsIChwcmV2aW91c1BvaW50WzFdICsgbmV4dFBvaW50WzFdKSAvIDJdO1xuICAgIH1cblxuICAgIGxldCBjb3JuZXJQb2ludCA9IGNlbnRlclBvaW50LFxuICAgICAgICBvcHBvc2l0ZVBvaW50ID0gY2VudGVyUG9pbnQ7XG5cbiAgICBjb25zdCBvZmZzZXRZID0gaXNIb3Jpem9udGFsID8gaGVpZ2h0IDogd2lkdGg7XG4gICAgY29uc3Qgb2Zmc2V0WCA9IGlzSG9yaXpvbnRhbCA/IHdpZHRoIDogaGVpZ2h0O1xuXG4gICAgY29ybmVyUG9pbnQgPSBtb3ZlWU9mUG9pbnQoY29ybmVyUG9pbnQsIC1vZmZzZXRZIC8gMiwgbGlua0RpcmVjdGlvbiEpO1xuXG4gICAgb3Bwb3NpdGVQb2ludCA9IG1vdmVZT2ZQb2ludChvcHBvc2l0ZVBvaW50LCBvZmZzZXRZIC8gMiwgbGlua0RpcmVjdGlvbiEpO1xuICAgIG9wcG9zaXRlUG9pbnQgPSBtb3ZlWE9mUG9pbnQob3Bwb3NpdGVQb2ludCwgb2Zmc2V0WCwgbGlua0RpcmVjdGlvbiEpO1xuXG4gICAgY29uc3QgeCA9IE1hdGgubWluKGNvcm5lclBvaW50WzBdLCBvcHBvc2l0ZVBvaW50WzBdKTtcbiAgICBjb25zdCB5ID0gTWF0aC5taW4oY29ybmVyUG9pbnRbMV0sIG9wcG9zaXRlUG9pbnRbMV0pO1xuXG4gICAgZmFrZU5vZGUgPSB7XG4gICAgICAgIC4uLmJhc2ljTm9kZSEsXG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIGhHYXA6IE1pbmRFbGVtZW50LmlzSW5kZW50ZWRMYXlvdXQocGFyZW50KSA/IEJBU0UgKiA0ICsgKGJhc2ljTm9kZS5vcmlnaW4uc3Ryb2tlV2lkdGggfHwgU1RST0tFX1dJRFRIKSA6IDAsXG4gICAgICAgIHZHYXA6IE1pbmRFbGVtZW50LmlzSW5kZW50ZWRMYXlvdXQocGFyZW50KSA/IEJBU0UgOiAwXG4gICAgfTtcblxuICAgIGNvbnN0IGZha2VSZWN0YW5nbGVHID0gZHJhd1JvdW5kUmVjdGFuZ2xlKFxuICAgICAgICBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSxcbiAgICAgICAgZmFrZU5vZGUhLngsXG4gICAgICAgIGZha2VOb2RlIS55LFxuICAgICAgICBmYWtlTm9kZSEueCArIHdpZHRoLFxuICAgICAgICBmYWtlTm9kZSEueSArIGhlaWdodCxcbiAgICAgICAge1xuICAgICAgICAgICAgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDIsXG4gICAgICAgICAgICBmaWxsOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgICAgIH1cbiAgICApO1xuICAgIGNvbnN0IGxpbmsgPSBNaW5kRWxlbWVudC5pc0luZGVudGVkTGF5b3V0KHBhcmVudClcbiAgICAgICAgPyBkcmF3SW5kZW50ZWRMaW5rKGJvYXJkLCBNaW5kRWxlbWVudC5nZXROb2RlKHBhcmVudCksIGZha2VOb2RlISwgUFJJTUFSWV9DT0xPUiwgZmFsc2UsIFNUUk9LRV9XSURUSClcbiAgICAgICAgOiBkcmF3TG9naWNMaW5rKGJvYXJkLCBmYWtlTm9kZSEsIE1pbmRFbGVtZW50LmdldE5vZGUocGFyZW50KSwgaXNIb3Jpem9udGFsLCBQUklNQVJZX0NPTE9SLCBTVFJPS0VfV0lEVEgpO1xuXG4gICAgZmFrZURyb3BOb2RlRz8uYXBwZW5kQ2hpbGQobGluayk7XG4gICAgZmFrZURyb3BOb2RlRz8uYXBwZW5kQ2hpbGQoZmFrZVJlY3RhbmdsZUcpO1xuXG4gICAgcmV0dXJuIGZha2VEcm9wTm9kZUc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UHJldmlvdXNBbmROZXh0QnlQYXRoID0gKHBhcmVudDogTWluZEVsZW1lbnQsIHRhcmdldDogTWluZEVsZW1lbnQsIHBhdGg6IFBhdGgpID0+IHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IGdldE5vbkFic3RyYWN0Q2hpbGRyZW4ocGFyZW50KTtcbiAgICBsZXQgaGFzUHJldmlvdXNOb2RlID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdICE9PSAwO1xuICAgIGxldCBoYXNOZXh0Tm9kZSA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXSAhPT0gKGNoaWxkcmVuPy5sZW5ndGggfHwgMCk7XG4gICAgaWYgKFBsYWl0TWluZC5pc01pbmQocGFyZW50KSAmJiBpc1N0YW5kYXJkTGF5b3V0KGdldFJvb3RMYXlvdXQocGFyZW50KSkpIHtcbiAgICAgICAgY29uc3QgZHJvcFN0YW5kYXJkUmlnaHRCb3R0b20gPVxuICAgICAgICAgICAgdGFyZ2V0ID09PSBwYXJlbnQuY2hpbGRyZW5bcGFyZW50LnJpZ2h0Tm9kZUNvdW50ISAtIDFdICYmIHBhdGhbcGF0aC5sZW5ndGggLSAxXSA9PT0gcGFyZW50LnJpZ2h0Tm9kZUNvdW50O1xuICAgICAgICBjb25zdCBkcm9wU3RhbmRhcmRMZWZ0VG9wID0gdGFyZ2V0ID09PSBwYXJlbnQuY2hpbGRyZW5bcGFyZW50LnJpZ2h0Tm9kZUNvdW50IV0gJiYgcGF0aFtwYXRoLmxlbmd0aCAtIDFdID09PSBwYXJlbnQucmlnaHROb2RlQ291bnQ7XG4gICAgICAgIGlmIChkcm9wU3RhbmRhcmRSaWdodEJvdHRvbSkge1xuICAgICAgICAgICAgaGFzUHJldmlvdXNOb2RlID0gdHJ1ZTtcbiAgICAgICAgICAgIGhhc05leHROb2RlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRyb3BTdGFuZGFyZExlZnRUb3ApIHtcbiAgICAgICAgICAgIGhhc1ByZXZpb3VzTm9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgaGFzTmV4dE5vZGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmVudC5pc0NvbGxhcHNlZCkge1xuICAgICAgICBoYXNOZXh0Tm9kZSA9IGZhbHNlO1xuICAgICAgICBoYXNQcmV2aW91c05vZGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBoYXNQcmV2aW91c05vZGUsXG4gICAgICAgIGhhc05leHROb2RlXG4gICAgfTtcbn07XG4iXX0=
|
package/esm2020/utils/node.mjs
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ELEMENT_TO_COMPONENT } from '@plait/core';
|
|
2
|
-
export function enterNodeEditing(element) {
|
|
3
|
-
const component = ELEMENT_TO_COMPONENT.get(element);
|
|
4
|
-
component.startEditText(false, false);
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSW5ELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFvQjtJQUNqRCxNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFzQixDQUFDO0lBQ3pFLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFTEVNRU5UX1RPX0NPTVBPTkVOVCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vbm9kZS5jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW50ZXJOb2RlRWRpdGluZyhlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IEVMRU1FTlRfVE9fQ09NUE9ORU5ULmdldChlbGVtZW50KSBhcyBNaW5kTm9kZUNvbXBvbmVudDtcbiAgICBjb21wb25lbnQuc3RhcnRFZGl0VGV4dChmYWxzZSwgZmFsc2UpO1xufVxuIl19
|