@plait/mind 0.2.2 → 0.3.1
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/base/base.d.ts → base/base.drawer.d.ts} +1 -1
- package/{plugins/emoji → base}/emoji-base.component.d.ts +2 -2
- package/{plugins/emoji → base}/index.d.ts +1 -1
- package/draw/abstract.d.ts +2 -1
- package/draw/indented-link.d.ts +1 -1
- package/draw/link/logic-link.d.ts +1 -1
- package/draw/node.d.ts +5 -0
- package/draw/topic.d.ts +16 -0
- package/{plugins/emoji → drawer}/emoji.drawer.d.ts +3 -3
- package/drawer/quick-insert.drawer.d.ts +1 -1
- package/esm2020/base/base.drawer.mjs +17 -0
- package/esm2020/base/emoji-base.component.mjs +33 -0
- package/esm2020/base/index.mjs +3 -0
- package/esm2020/draw/abstract.mjs +8 -7
- package/esm2020/draw/indented-link.mjs +3 -3
- package/esm2020/draw/link/abstract-link.mjs +9 -15
- package/esm2020/draw/link/logic-link.mjs +9 -9
- package/esm2020/draw/node.mjs +21 -0
- package/esm2020/draw/topic.mjs +32 -0
- package/esm2020/drawer/emoji.drawer.mjs +73 -0
- package/esm2020/drawer/quick-insert.drawer.mjs +3 -3
- package/esm2020/interfaces/index.mjs +2 -2
- package/esm2020/interfaces/pointer.mjs +5 -0
- package/esm2020/mind.component.mjs +2 -2
- package/esm2020/mind.module.mjs +5 -5
- package/esm2020/node.component.mjs +11 -10
- package/esm2020/plugins/with-abstract-resize.board.mjs +12 -0
- package/esm2020/plugins/with-abstract-resize.mjs +107 -0
- package/esm2020/plugins/with-mind-create.mjs +85 -0
- package/esm2020/plugins/with-mind-extend.mjs +11 -0
- package/esm2020/plugins/with-mind.board.mjs +2 -0
- package/esm2020/plugins/with-mind.mjs +30 -16
- package/esm2020/plugins/with-node-dnd.mjs +162 -0
- package/esm2020/public-api.mjs +5 -3
- package/esm2020/transforms/abstract-node.mjs +3 -2
- package/esm2020/transforms/emoji.mjs +37 -0
- package/esm2020/transforms/index.mjs +7 -3
- package/esm2020/transforms/node.mjs +40 -33
- package/esm2020/utils/abstract/common.mjs +64 -31
- package/esm2020/utils/abstract/resize.mjs +3 -2
- package/esm2020/utils/clipboard.mjs +16 -18
- package/esm2020/utils/dnd/common.mjs +35 -0
- package/esm2020/utils/dnd/detector.mjs +268 -0
- package/esm2020/utils/dnd/draw.mjs +161 -0
- package/esm2020/utils/index.mjs +6 -6
- package/esm2020/utils/mind.mjs +6 -129
- package/esm2020/utils/node/adjust-node.mjs +49 -0
- package/esm2020/utils/node/common.mjs +6 -0
- package/esm2020/utils/node/create-node.mjs +61 -0
- package/esm2020/utils/node/index.mjs +4 -0
- package/esm2020/utils/point-placement.mjs +22 -2
- package/esm2020/utils/position/emoji.mjs +31 -0
- package/esm2020/utils/position/index.mjs +4 -0
- package/esm2020/utils/position/node.mjs +34 -0
- package/esm2020/utils/position/topic.mjs +14 -0
- package/esm2020/utils/space/emoji.mjs +19 -0
- package/esm2020/utils/space/layout-options.mjs +72 -0
- package/esm2020/utils/space/node-space.mjs +77 -0
- package/fesm2015/plait-mind.mjs +1464 -1631
- package/fesm2015/plait-mind.mjs.map +1 -1
- package/fesm2020/plait-mind.mjs +1486 -1642
- package/fesm2020/plait-mind.mjs.map +1 -1
- package/interfaces/index.d.ts +1 -1
- package/interfaces/pointer.d.ts +3 -0
- package/mind.module.d.ts +2 -2
- package/node.component.d.ts +3 -3
- package/package.json +3 -3
- package/{interfaces/abstract.d.ts → plugins/with-abstract-resize.board.d.ts} +2 -2
- package/plugins/with-mind-create.d.ts +11 -0
- package/plugins/with-mind-extend.d.ts +3 -0
- package/plugins/{with-extend-mind.d.ts → with-mind.board.d.ts} +4 -4
- package/plugins/with-mind.d.ts +1 -1
- package/public-api.d.ts +4 -2
- package/styles/styles.scss +5 -2
- package/transforms/abstract-node.d.ts +1 -1
- package/transforms/emoji.d.ts +6 -0
- package/transforms/index.d.ts +3 -0
- package/transforms/node.d.ts +5 -5
- package/utils/abstract/common.d.ts +19 -4
- package/utils/abstract/resize.d.ts +2 -1
- package/utils/dnd/common.d.ts +7 -0
- package/utils/dnd/detector.d.ts +31 -0
- package/utils/dnd/draw.d.ts +9 -0
- package/utils/index.d.ts +5 -5
- package/utils/mind.d.ts +3 -22
- package/utils/node/adjust-node.d.ts +5 -0
- package/utils/{node.d.ts → node/common.d.ts} +1 -1
- package/utils/node/create-node.d.ts +14 -0
- package/utils/node/index.d.ts +3 -0
- package/utils/point-placement.d.ts +8 -1
- package/utils/position/emoji.d.ts +7 -0
- package/utils/position/index.d.ts +3 -0
- package/utils/position/node.d.ts +12 -0
- package/utils/position/topic.d.ts +16 -0
- package/utils/space/emoji.d.ts +7 -0
- package/{layout-option.d.ts → utils/space/layout-options.d.ts} +1 -1
- package/utils/{node-space.d.ts → space/node-space.d.ts} +4 -4
- package/draw/link.d.ts +0 -3
- package/draw/richtext.d.ts +0 -15
- package/draw/shape.d.ts +0 -3
- package/esm2020/draw/link.mjs +0 -160
- package/esm2020/draw/richtext.mjs +0 -39
- package/esm2020/draw/shape.mjs +0 -18
- package/esm2020/drawer/base/base.mjs +0 -17
- package/esm2020/interfaces/abstract.mjs +0 -12
- package/esm2020/layout-option.mjs +0 -72
- package/esm2020/plugins/emoji/emoji-base.component.mjs +0 -33
- package/esm2020/plugins/emoji/emoji.drawer.mjs +0 -72
- package/esm2020/plugins/emoji/emoji.mjs +0 -47
- package/esm2020/plugins/emoji/index.mjs +0 -3
- package/esm2020/plugins/with-abstract.mjs +0 -106
- package/esm2020/plugins/with-dnd.mjs +0 -179
- package/esm2020/plugins/with-extend-mind.mjs +0 -11
- package/esm2020/utils/direction-corrector.mjs +0 -54
- package/esm2020/utils/direction-detector.mjs +0 -56
- package/esm2020/utils/dnd.mjs +0 -122
- package/esm2020/utils/draw-placeholder.mjs +0 -313
- package/esm2020/utils/drop-target-corrector.mjs +0 -87
- package/esm2020/utils/graph.mjs +0 -24
- package/esm2020/utils/node-space.mjs +0 -77
- package/esm2020/utils/node.mjs +0 -6
- package/plugins/emoji/emoji.d.ts +0 -11
- package/utils/direction-corrector.d.ts +0 -4
- package/utils/direction-detector.d.ts +0 -9
- package/utils/dnd.d.ts +0 -16
- package/utils/draw-placeholder.d.ts +0 -42
- package/utils/drop-target-corrector.d.ts +0 -9
- package/utils/graph.d.ts +0 -5
- /package/plugins/{with-abstract.d.ts → with-abstract-resize.d.ts} +0 -0
- /package/plugins/{with-dnd.d.ts → with-node-dnd.d.ts} +0 -0
package/esm2020/utils/mind.mjs
CHANGED
|
@@ -1,26 +1,13 @@
|
|
|
1
1
|
import { MindLayoutType } from '@plait/layouts';
|
|
2
|
-
import { addSelectedElement, clearSelectedElement, idCreator,
|
|
2
|
+
import { addSelectedElement, clearSelectedElement, idCreator, Transforms } from '@plait/core';
|
|
3
3
|
import { Node } from 'slate';
|
|
4
4
|
import { NODE_MIN_WIDTH } from '../constants/node-rule';
|
|
5
5
|
import { MindElementShape } from '../interfaces';
|
|
6
6
|
import { MindElement } from '../interfaces/element';
|
|
7
7
|
import { getRootLayout } from './layout';
|
|
8
|
-
import { TEXT_DEFAULT_HEIGHT
|
|
9
|
-
import { enterNodeEditing } from './node';
|
|
10
|
-
import {
|
|
11
|
-
import { ROOT_TOPIC_FONT_SIZE, TOPIC_DEFAULT_MAX_WORD_COUNT } from '../constants/node-topic-style';
|
|
12
|
-
import { MindTransforms } from '../transforms';
|
|
13
|
-
export function findUpElement(element) {
|
|
14
|
-
let branch;
|
|
15
|
-
let root = element;
|
|
16
|
-
let parent = MindElement.findParent(element);
|
|
17
|
-
while (parent) {
|
|
18
|
-
branch = root;
|
|
19
|
-
root = parent;
|
|
20
|
-
parent = MindElement.findParent(parent);
|
|
21
|
-
}
|
|
22
|
-
return { root, branch };
|
|
23
|
-
}
|
|
8
|
+
import { TEXT_DEFAULT_HEIGHT } from '@plait/richtext';
|
|
9
|
+
import { enterNodeEditing } from './node/common';
|
|
10
|
+
import { createMindElement } from './node/create-node';
|
|
24
11
|
export const getChildrenCount = (element) => {
|
|
25
12
|
const count = element.children.reduce((p, c) => {
|
|
26
13
|
return p + getChildrenCount(c);
|
|
@@ -64,48 +51,6 @@ export const copyNewNode = (node) => {
|
|
|
64
51
|
}
|
|
65
52
|
return newNode;
|
|
66
53
|
};
|
|
67
|
-
export const transformRootToNode = (board, node) => {
|
|
68
|
-
const newNode = { ...node };
|
|
69
|
-
delete newNode.isRoot;
|
|
70
|
-
delete newNode.rightNodeCount;
|
|
71
|
-
delete newNode.type;
|
|
72
|
-
const text = Node.string(node.data.topic.children[0]) || ' ';
|
|
73
|
-
const { width, height } = getSizeByText(text, PlaitBoard.getViewportContainer(board), TOPIC_DEFAULT_MAX_WORD_COUNT);
|
|
74
|
-
newNode.width = Math.max(width, NODE_MIN_WIDTH);
|
|
75
|
-
newNode.height = height;
|
|
76
|
-
if (newNode.layout === MindLayoutType.standard) {
|
|
77
|
-
delete newNode.layout;
|
|
78
|
-
}
|
|
79
|
-
return newNode;
|
|
80
|
-
};
|
|
81
|
-
export const transformAbstractToNode = (node) => {
|
|
82
|
-
const newNode = { ...node };
|
|
83
|
-
delete newNode.start;
|
|
84
|
-
delete newNode.end;
|
|
85
|
-
return newNode;
|
|
86
|
-
};
|
|
87
|
-
export const transformNodeToRoot = (board, node) => {
|
|
88
|
-
const newElement = { ...node };
|
|
89
|
-
let text = Node.string(newElement.data.topic);
|
|
90
|
-
if (!text) {
|
|
91
|
-
text = '思维导图';
|
|
92
|
-
newElement.data.topic = { children: [{ text }] };
|
|
93
|
-
}
|
|
94
|
-
delete newElement?.strokeColor;
|
|
95
|
-
delete newElement?.fill;
|
|
96
|
-
delete newElement?.shape;
|
|
97
|
-
delete newElement?.strokeWidth;
|
|
98
|
-
const { width, height } = getSizeByText(text, PlaitBoard.getViewportContainer(board), TOPIC_DEFAULT_MAX_WORD_COUNT, ROOT_TOPIC_FONT_SIZE);
|
|
99
|
-
newElement.width = Math.max(width, NODE_MIN_WIDTH);
|
|
100
|
-
newElement.height = height;
|
|
101
|
-
return {
|
|
102
|
-
...newElement,
|
|
103
|
-
layout: newElement.layout ?? MindLayoutType.right,
|
|
104
|
-
isCollapsed: false,
|
|
105
|
-
isRoot: true,
|
|
106
|
-
type: 'mindmap'
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
54
|
export const extractNodesText = (node) => {
|
|
110
55
|
let str = '';
|
|
111
56
|
if (node) {
|
|
@@ -126,7 +71,7 @@ export const changeRightNodeCount = (board, parentPath, changeNumber) => {
|
|
|
126
71
|
: _rightNodeCount + changeNumber
|
|
127
72
|
}, parentPath);
|
|
128
73
|
};
|
|
129
|
-
export const
|
|
74
|
+
export const isInRightBranchOfStandardLayout = (selectedElement) => {
|
|
130
75
|
const parentElement = MindElement.findParent(selectedElement);
|
|
131
76
|
if (parentElement) {
|
|
132
77
|
const nodeIndex = parentElement.children.findIndex(item => item.id === selectedElement.id);
|
|
@@ -139,55 +84,6 @@ export const shouldChangeRightNodeCount = (selectedElement) => {
|
|
|
139
84
|
}
|
|
140
85
|
return false;
|
|
141
86
|
};
|
|
142
|
-
export const createDefaultMindMapElement = (point, rightNodeCount, layout) => {
|
|
143
|
-
const root = createMindElement('思维导图', 72, ROOT_DEFAULT_HEIGHT, { shape: MindElementShape.roundRectangle, layout });
|
|
144
|
-
root.rightNodeCount = rightNodeCount;
|
|
145
|
-
root.isRoot = true;
|
|
146
|
-
root.type = 'mindmap';
|
|
147
|
-
root.points = [point];
|
|
148
|
-
const children = [1, 1, 1].map(() => {
|
|
149
|
-
return createMindElement('新建节点', 56, TEXT_DEFAULT_HEIGHT, { shape: MindElementShape.roundRectangle });
|
|
150
|
-
});
|
|
151
|
-
root.children = children;
|
|
152
|
-
return root;
|
|
153
|
-
};
|
|
154
|
-
export const createMindElement = (text, width, height, options) => {
|
|
155
|
-
const newElement = {
|
|
156
|
-
id: idCreator(),
|
|
157
|
-
data: {
|
|
158
|
-
topic: { children: [{ text }] }
|
|
159
|
-
},
|
|
160
|
-
children: [],
|
|
161
|
-
width,
|
|
162
|
-
height,
|
|
163
|
-
fill: options.fill,
|
|
164
|
-
strokeColor: options.strokeColor,
|
|
165
|
-
strokeWidth: options.strokeWidth,
|
|
166
|
-
shape: options.shape
|
|
167
|
-
};
|
|
168
|
-
if (options.fill) {
|
|
169
|
-
newElement.fill = options.fill;
|
|
170
|
-
}
|
|
171
|
-
if (options.strokeColor) {
|
|
172
|
-
newElement.strokeColor = options.strokeColor;
|
|
173
|
-
}
|
|
174
|
-
if (!isNullOrUndefined(options.strokeWidth)) {
|
|
175
|
-
newElement.strokeWidth = options.strokeWidth;
|
|
176
|
-
}
|
|
177
|
-
if (options.shape) {
|
|
178
|
-
newElement.shape = options.shape;
|
|
179
|
-
}
|
|
180
|
-
if (options.layout) {
|
|
181
|
-
newElement.layout = options.layout;
|
|
182
|
-
}
|
|
183
|
-
if (options.branchColor) {
|
|
184
|
-
newElement.branchColor = options.branchColor;
|
|
185
|
-
}
|
|
186
|
-
if (!isNullOrUndefined(options.branchWidth)) {
|
|
187
|
-
newElement.branchWidth = options.branchWidth;
|
|
188
|
-
}
|
|
189
|
-
return newElement;
|
|
190
|
-
};
|
|
191
87
|
// layoutLevel 用来表示插入兄弟节点还是子节点
|
|
192
88
|
export const insertMindElement = (board, inheritNode, path) => {
|
|
193
89
|
let fill, strokeColor, strokeWidth, shape = MindElementShape.roundRectangle;
|
|
@@ -212,25 +108,6 @@ export const findLastChild = (child) => {
|
|
|
212
108
|
}
|
|
213
109
|
return result;
|
|
214
110
|
};
|
|
215
|
-
export const deleteSelectedELements = (board, selectedElements) => {
|
|
216
|
-
const deletableElements = getFirstLevelElement(selectedElements).reverse();
|
|
217
|
-
const abstractRefs = deleteElementHandleAbstract(board, deletableElements);
|
|
218
|
-
MindTransforms.setAbstractsByRefs(board, abstractRefs);
|
|
219
|
-
//翻转,从下到上修改,防止找不到 path
|
|
220
|
-
deletableElements
|
|
221
|
-
.map(element => {
|
|
222
|
-
const path = PlaitBoard.findPath(board, element);
|
|
223
|
-
return () => {
|
|
224
|
-
if (shouldChangeRightNodeCount(element)) {
|
|
225
|
-
changeRightNodeCount(board, path.slice(0, 1), -1);
|
|
226
|
-
}
|
|
227
|
-
Transforms.removeNode(board, path);
|
|
228
|
-
};
|
|
229
|
-
})
|
|
230
|
-
.forEach(action => {
|
|
231
|
-
action();
|
|
232
|
-
});
|
|
233
|
-
};
|
|
234
111
|
export const divideElementByParent = (elements) => {
|
|
235
112
|
const abstractIncludedGroups = [];
|
|
236
113
|
const parentElements = [];
|
|
@@ -247,4 +124,4 @@ export const divideElementByParent = (elements) => {
|
|
|
247
124
|
}
|
|
248
125
|
return { parentElements, abstractIncludedGroups };
|
|
249
126
|
};
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL21pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsVUFBVSxFQUdWLFVBQVUsRUFDYixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBb0I7SUFDOUMsSUFBSSxNQUFNLENBQUM7SUFDWCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUM7SUFDbkIsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxPQUFPLE1BQU0sRUFBRTtRQUNYLE1B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VyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5QzthQUFNO1lBQ0gsc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO0tBQ0o7SUFDRCxPQUFPLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLENBQUM7QUFDdEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQge1xuICAgIGFkZFNlbGVjdGVkRWxlbWVudCxcbiAgICBjbGVhclNlbGVjdGVkRWxlbWVudCxcbiAgICBpZENyZWF0b3IsXG4gICAgaXNOdWxsT3JVbmRlZmluZWQsXG4gICAgUGF0aCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQb2ludCxcbiAgICBUcmFuc2Zvcm1zXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBOT0RFX01JTl9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXJ1bGUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnRTaGFwZSwgTWluZE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IGdldFJvb3RMYXlvdXQgfSBmcm9tICcuL2xheW91dCc7XG5pbXBvcnQgeyBURVhUX0RFRkFVTFRfSEVJR0hULCBnZXRTaXplQnlUZXh0LCBST09UX0RFRkFVTFRfSEVJR0hUIH0gZnJvbSAnQHBsYWl0L3JpY2h0ZXh0JztcbmltcG9ydCB7IGVudGVyTm9kZUVkaXRpbmcgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgZGVsZXRlRWxlbWVudEhhbmRsZUFic3RyYWN0IH0gZnJvbSAnLi9hYnN0cmFjdC9jb21tb24nO1xuaW1wb3J0IHsgUk9PVF9UT1BJQ19GT05UX1NJWkUsIFRPUElDX0RFRkFVTFRfTUFYX1dPUkRfQ09VTlQgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS10b3BpYy1zdHlsZSc7XG5pbXBvcnQgeyBNaW5kVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZFVwRWxlbWVudChlbGVtZW50OiBNaW5kRWxlbWVudCk6IHsgcm9vdDogTWluZEVsZW1lbnQ7IGJyYW5jaD86IE1pbmRFbGVtZW50IH0ge1xuICAgIGxldCBicmFuY2g7XG4gICAgbGV0IHJvb3QgPSBlbGVtZW50O1xuICAgIGxldCBwYXJlbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KGVsZW1lbnQpO1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgICAgYnJhbmNoID0gcm9vdDtcbiAgICAgICAgcm9vdCA9IHBhcmVudDtcbiAgICAgICAgcGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4geyByb290LCBicmFuY2ggfTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENoaWxkcmVuQ291bnQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjb3VudDogbnVtYmVyID0gZWxlbWVudC5jaGlsZHJlbi5yZWR1Y2UoKHA6IG51bWJlciwgYzogTWluZEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIHAgKyBnZXRDaGlsZHJlbkNvdW50KGMpO1xuICAgIH0sIDApO1xuICAgIHJldHVybiBjb3VudCArIGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRFbGVtZW50ID0gKG9yaWdpbjogTWluZEVsZW1lbnQsIGNoaWxkOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGxldCBwYXJlbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KGNoaWxkKTtcbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IG9yaWdpbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RMZXZlbEVsZW1lbnQgPSAoZWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBsZXQgcmVzdWx0OiBNaW5kRWxlbWVudFtdID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgaXNDaGlsZCA9IGVsZW1lbnRzLnNvbWUobm9kZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNDaGlsZEVsZW1lbnQobm9kZSwgZWxlbWVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaXNDaGlsZCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRSaWdodCA9IChub2RlOiBNaW5kTm9kZSwgY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUueCA8IGNoaWxkLng7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDaGlsZFVwID0gKG5vZGU6IE1pbmROb2RlLCBjaGlsZDogTWluZE5vZGUpID0+IHtcbiAgICByZXR1cm4gbm9kZS55ID4gY2hpbGQueTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5TmV3Tm9kZSA9IChub2RlOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5ld05vZGU6IE1pbmRFbGVtZW50ID0geyAuLi5ub2RlIH07XG4gICAgbmV3Tm9kZS5pZCA9IGlkQ3JlYXRvcigpO1xuICAgIG5ld05vZGUuY2hpbGRyZW4gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgbmV3Tm9kZS5jaGlsZHJlbi5wdXNoKGNvcHlOZXdOb2RlKGNoaWxkTm9kZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Sb290VG9Ob2RlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBub2RlOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5ld05vZGU6IE1pbmRFbGVtZW50ID0geyAuLi5ub2RlIH07XG4gICAgZGVsZXRlIG5ld05vZGUuaXNSb290O1xuICAgIGRlbGV0ZSBuZXdOb2RlLnJpZ2h0Tm9kZUNvdW50O1xuICAgIGRlbGV0ZSBuZXdOb2RlLnR5cGU7XG5cbiAgICBjb25zdCB0ZXh0ID0gTm9kZS5zdHJpbmcobm9kZS5kYXRhLnRvcGljLmNoaWxkcmVuWzBdKSB8fCAnICc7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRTaXplQnlUZXh0KHRleHQsIFBsYWl0Qm9hcmQuZ2V0Vmlld3BvcnRDb250YWluZXIoYm9hcmQpLCBUT1BJQ19ERUZBVUxUX01BWF9XT1JEX0NPVU5UKTtcblxuICAgIG5ld05vZGUud2lkdGggPSBNYXRoLm1heCh3aWR0aCwgTk9ERV9NSU5fV0lEVEgpO1xuICAgIG5ld05vZGUuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgaWYgKG5ld05vZGUubGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5zdGFuZGFyZCkge1xuICAgICAgICBkZWxldGUgbmV3Tm9kZS5sYXlvdXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld05vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtQWJzdHJhY3RUb05vZGUgPSAobm9kZTogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBuZXdOb2RlOiBNaW5kRWxlbWVudCA9IHsgLi4ubm9kZSB9O1xuICAgIGRlbGV0ZSBuZXdOb2RlLnN0YXJ0O1xuICAgIGRlbGV0ZSBuZXdOb2RlLmVuZDtcblxuICAgIHJldHVybiBuZXdOb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybU5vZGVUb1Jvb3QgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IE1pbmRFbGVtZW50KTogTWluZEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7IC4uLm5vZGUgfTtcbiAgICBsZXQgdGV4dCA9IE5vZGUuc3RyaW5nKG5ld0VsZW1lbnQuZGF0YS50b3BpYyk7XG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgICAgdGV4dCA9ICfmgJ3nu7Tlr7zlm74nO1xuICAgICAgICBuZXdFbGVtZW50LmRhdGEudG9waWMgPSB7IGNoaWxkcmVuOiBbeyB0ZXh0IH1dIH07XG4gICAgfVxuXG4gICAgZGVsZXRlIG5ld0VsZW1lbnQ/LnN0cm9rZUNvbG9yO1xuICAgIGRlbGV0ZSBuZXdFbGVtZW50Py5maWxsO1xuICAgIGRlbGV0ZSBuZXdFbGVtZW50Py5zaGFwZTtcbiAgICBkZWxldGUgbmV3RWxlbWVudD8uc3Ryb2tlV2lkdGg7XG5cbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGdldFNpemVCeVRleHQoXG4gICAgICAgIHRleHQsXG4gICAgICAgIFBsYWl0Qm9hcmQuZ2V0Vmlld3BvcnRDb250YWluZXIoYm9hcmQpLFxuICAgICAgICBUT1BJQ19ERUZBVUxUX01BWF9XT1JEX0NPVU5ULFxuICAgICAgICBST09UX1RPUElDX0ZPTlRfU0laRVxuICAgICk7XG4gICAgbmV3RWxlbWVudC53aWR0aCA9IE1hdGgubWF4KHdpZHRoLCBOT0RFX01JTl9XSURUSCk7XG4gICAgbmV3RWxlbWVudC5oZWlnaHQgPSBoZWlnaHQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXdFbGVtZW50LFxuICAgICAgICBsYXlvdXQ6IG5ld0VsZW1lbnQubGF5b3V0ID8/IE1pbmRMYXlvdXRUeXBlLnJpZ2h0LFxuICAgICAgICBpc0NvbGxhcHNlZDogZmFsc2UsXG4gICAgICAgIGlzUm9vdDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ21pbmRtYXAnXG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0Tm9kZXNUZXh0ID0gKG5vZGU6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgbGV0IHN0ciA9ICcnO1xuICAgIGlmIChub2RlKSB7XG4gICAgICAgIHN0ciArPSBOb2RlLnN0cmluZyhub2RlLmRhdGEudG9waWMuY2hpbGRyZW5bMF0pICsgJyAnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBzdHIgKz0gZXh0cmFjdE5vZGVzVGV4dChjaGlsZE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59O1xuXG5leHBvcnQgY29uc3QgY2hhbmdlUmlnaHROb2RlQ291bnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBhcmVudFBhdGg6IFBhdGgsIGNoYW5nZU51bWJlcjogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgX3JpZ2h0Tm9kZUNvdW50ID0gYm9hcmQuY2hpbGRyZW5bcGFyZW50UGF0aFswXV0ucmlnaHROb2RlQ291bnQ7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKFxuICAgICAgICBib2FyZCxcbiAgICAgICAge1xuICAgICAgICAgICAgcmlnaHROb2RlQ291bnQ6XG4gICAgICAgICAgICAgICAgY2hhbmdlTnVtYmVyID49IDBcbiAgICAgICAgICAgICAgICAgICAgPyBfcmlnaHROb2RlQ291bnQhICsgY2hhbmdlTnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIDogX3JpZ2h0Tm9kZUNvdW50ISArIGNoYW5nZU51bWJlciA8IDBcbiAgICAgICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgICAgIDogX3JpZ2h0Tm9kZUNvdW50ISArIGNoYW5nZU51bWJlclxuICAgICAgICB9LFxuICAgICAgICBwYXJlbnRQYXRoXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG91bGRDaGFuZ2VSaWdodE5vZGVDb3VudCA9IChzZWxlY3RlZEVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IE1pbmRFbGVtZW50LmZpbmRQYXJlbnQoc2VsZWN0ZWRFbGVtZW50KTtcbiAgICBpZiAocGFyZW50RWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlSW5kZXg6IG51bWJlciA9IHBhcmVudEVsZW1lbnQuY2hpbGRyZW4uZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gc2VsZWN0ZWRFbGVtZW50LmlkKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pc1Jvb3QgJiZcbiAgICAgICAgICAgIGdldFJvb3RMYXlvdXQocGFyZW50RWxlbWVudCkgPT09IE1pbmRMYXlvdXRUeXBlLnN0YW5kYXJkICYmXG4gICAgICAgICAgICBwYXJlbnRFbGVtZW50LnJpZ2h0Tm9kZUNvdW50ICYmXG4gICAgICAgICAgICBub2RlSW5kZXggPD0gcGFyZW50RWxlbWVudC5yaWdodE5vZGVDb3VudCAtIDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdE1pbmRNYXBFbGVtZW50ID0gKHBvaW50OiBQb2ludCwgcmlnaHROb2RlQ291bnQ6IG51bWJlciwgbGF5b3V0OiBNaW5kTGF5b3V0VHlwZSkgPT4ge1xuICAgIGNvbnN0IHJvb3QgPSBjcmVhdGVNaW5kRWxlbWVudCgn5oCd57u05a+85Zu+JywgNzIsIFJPT1RfREVGQVVMVF9IRUlHSFQsIHsgc2hhcGU6IE1pbmRFbGVtZW50U2hhcGUucm91bmRSZWN0YW5nbGUsIGxheW91dCB9KTtcbiAgICByb290LnJpZ2h0Tm9kZUNvdW50ID0gcmlnaHROb2RlQ291bnQ7XG4gICAgcm9vdC5pc1Jvb3QgPSB0cnVlO1xuICAgIHJvb3QudHlwZSA9ICdtaW5kbWFwJztcbiAgICByb290LnBvaW50cyA9IFtwb2ludF07XG4gICAgY29uc3QgY2hpbGRyZW4gPSBbMSwgMSwgMV0ubWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZU1pbmRFbGVtZW50KCfmlrDlu7roioLngrknLCA1NiwgVEVYVF9ERUZBVUxUX0hFSUdIVCwgeyBzaGFwZTogTWluZEVsZW1lbnRTaGFwZS5yb3VuZFJlY3RhbmdsZSB9KTtcbiAgICB9KTtcbiAgICByb290LmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgcmV0dXJuIHJvb3Q7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWluZEVsZW1lbnQgPSAoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICAgb3B0aW9uczoge1xuICAgICAgICBmaWxsPzogc3RyaW5nO1xuICAgICAgICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgICAgICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgICAgIHNoYXBlPzogTWluZEVsZW1lbnRTaGFwZTtcbiAgICAgICAgbGF5b3V0PzogTWluZExheW91dFR5cGU7XG4gICAgICAgIGJyYW5jaENvbG9yPzogc3RyaW5nO1xuICAgICAgICBicmFuY2hXaWR0aD86IG51bWJlcjtcbiAgICB9XG4pID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50OiBNaW5kRWxlbWVudCA9IHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0b3BpYzogeyBjaGlsZHJlbjogW3sgdGV4dCB9XSB9XG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgZmlsbDogb3B0aW9ucy5maWxsLFxuICAgICAgICBzdHJva2VDb2xvcjogb3B0aW9ucy5zdHJva2VDb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IG9wdGlvbnMuc3Ryb2tlV2lkdGgsXG4gICAgICAgIHNoYXBlOiBvcHRpb25zLnNoYXBlXG4gICAgfTtcbiAgICBpZiAob3B0aW9ucy5maWxsKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuZmlsbCA9IG9wdGlvbnMuZmlsbDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuc3Ryb2tlQ29sb3IpIHtcbiAgICAgICAgbmV3RWxlbWVudC5zdHJva2VDb2xvciA9IG9wdGlvbnMuc3Ryb2tlQ29sb3I7XG4gICAgfVxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQob3B0aW9ucy5zdHJva2VXaWR0aCkpIHtcbiAgICAgICAgbmV3RWxlbWVudC5zdHJva2VXaWR0aCA9IG9wdGlvbnMuc3Ryb2tlV2lkdGg7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnNoYXBlKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuc2hhcGUgPSBvcHRpb25zLnNoYXBlO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5sYXlvdXQpIHtcbiAgICAgICAgbmV3RWxlbWVudC5sYXlvdXQgPSBvcHRpb25zLmxheW91dDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuYnJhbmNoQ29sb3IpIHtcbiAgICAgICAgbmV3RWxlbWVudC5icmFuY2hDb2xvciA9IG9wdGlvbnMuYnJhbmNoQ29sb3I7XG4gICAgfVxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQob3B0aW9ucy5icmFuY2hXaWR0aCkpIHtcbiAgICAgICAgbmV3RWxlbWVudC5icmFuY2hXaWR0aCA9IG9wdGlvbnMuYnJhbmNoV2lkdGg7XG4gICAgfVxuICAgIHJldHVybiBuZXdFbGVtZW50O1xufTtcblxuLy8gbGF5b3V0TGV2ZWwg55So5p2l6KGo56S65o+S5YWl5YWE5byf6IqC54K56L+Y5piv5a2Q6IqC54K5XG5leHBvcnQgY29uc3QgaW5zZXJ0TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGluaGVyaXROb2RlOiBNaW5kRWxlbWVudCwgcGF0aDogUGF0aCkgPT4ge1xuICAgIGxldCBmaWxsLFxuICAgICAgICBzdHJva2VDb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICAgIHNoYXBlID0gTWluZEVsZW1lbnRTaGFwZS5yb3VuZFJlY3RhbmdsZTtcbiAgICBpZiAoIWluaGVyaXROb2RlLmlzUm9vdCkge1xuICAgICAgICBmaWxsID0gaW5oZXJpdE5vZGUuZmlsbDtcbiAgICAgICAgc3Ryb2tlQ29sb3IgPSBpbmhlcml0Tm9kZS5zdHJva2VDb2xvcjtcbiAgICAgICAgc3Ryb2tlV2lkdGggPSBpbmhlcml0Tm9kZS5zdHJva2VXaWR0aDtcbiAgICB9XG5cbiAgICBzaGFwZSA9IGluaGVyaXROb2RlLnNoYXBlIGFzIE1pbmRFbGVtZW50U2hhcGU7XG5cbiAgICBjb25zdCBuZXdFbGVtZW50ID0gY3JlYXRlTWluZEVsZW1lbnQoJycsIE5PREVfTUlOX1dJRFRILCBURVhUX0RFRkFVTFRfSEVJR0hULCB7IGZpbGwsIHN0cm9rZUNvbG9yLCBzdHJva2VXaWR0aCwgc2hhcGUgfSk7XG5cbiAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xuICAgIGNsZWFyU2VsZWN0ZWRFbGVtZW50KGJvYXJkKTtcbiAgICBhZGRTZWxlY3RlZEVsZW1lbnQoYm9hcmQsIG5ld0VsZW1lbnQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlbnRlck5vZGVFZGl0aW5nKG5ld0VsZW1lbnQpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRMYXN0Q2hpbGQgPSAoY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IGNoaWxkO1xuICAgIHdoaWxlIChyZXN1bHQuY2hpbGRyZW4ubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jaGlsZHJlbltyZXN1bHQuY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlU2VsZWN0ZWRFTGVtZW50cyA9IChib2FyZDogUGxhaXRCb2FyZCwgc2VsZWN0ZWRFbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IGRlbGV0YWJsZUVsZW1lbnRzID0gZ2V0Rmlyc3RMZXZlbEVsZW1lbnQoc2VsZWN0ZWRFbGVtZW50cykucmV2ZXJzZSgpO1xuXG4gICAgY29uc3QgYWJzdHJhY3RSZWZzID0gZGVsZXRlRWxlbWVudEhhbmRsZUFic3RyYWN0KGJvYXJkLCBkZWxldGFibGVFbGVtZW50cyk7XG4gICAgTWluZFRyYW5zZm9ybXMuc2V0QWJzdHJhY3RzQnlSZWZzKGJvYXJkLCBhYnN0cmFjdFJlZnMpO1xuXG4gICAgLy/nv7vovazvvIzku47kuIvliLDkuIrkv67mlLnvvIzpmLLmraLmib7kuI3liLAgcGF0aFxuICAgIGRlbGV0YWJsZUVsZW1lbnRzXG4gICAgICAgIC5tYXAoZWxlbWVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzaG91bGRDaGFuZ2VSaWdodE5vZGVDb3VudChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VSaWdodE5vZGVDb3VudChib2FyZCwgcGF0aC5zbGljZSgwLCAxKSwgLTEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGUoYm9hcmQsIHBhdGgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgICAgICAgIGFjdGlvbigpO1xuICAgICAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXZpZGVFbGVtZW50QnlQYXJlbnQgPSAoZWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzID0gW107XG4gICAgY29uc3QgcGFyZW50RWxlbWVudHM6IE1pbmRFbGVtZW50W10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnRzW2ldKTtcbiAgICAgICAgY29uc3QgcGFyZW50SW5kZXggPSBwYXJlbnRFbGVtZW50cy5pbmRleE9mKHBhcmVudCk7XG4gICAgICAgIGlmIChwYXJlbnRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHBhcmVudEVsZW1lbnRzLnB1c2gocGFyZW50KTtcbiAgICAgICAgICAgIGFic3RyYWN0SW5jbHVkZWRHcm91cHMucHVzaChbZWxlbWVudHNbaV1dKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFic3RyYWN0SW5jbHVkZWRHcm91cHNbcGFyZW50SW5kZXhdLnB1c2goZWxlbWVudHNbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHBhcmVudEVsZW1lbnRzLCBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzIH07XG59O1xuIl19
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL21pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFHVCxVQUFVLEVBQ2IsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUNyRCxNQUFNLEtBQUssR0FBVyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQVMsRUFBRSxDQUFjLEVBQUUsRUFBRTtRQUN4RSxPQUFPLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDTixPQUFPLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcs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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5QzthQUFNO1lBQ0gsc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO0tBQ0o7SUFDRCxPQUFPLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLENBQUM7QUFDdEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQge1xuICAgIGFkZFNlbGVjdGVkRWxlbWVudCxcbiAgICBjbGVhclNlbGVjdGVkRWxlbWVudCxcbiAgICBpZENyZWF0b3IsXG4gICAgUGF0aCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFRyYW5zZm9ybXNcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IE5PREVfTUlOX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtcnVsZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudFNoYXBlLCBNaW5kTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgZ2V0Um9vdExheW91dCB9IGZyb20gJy4vbGF5b3V0JztcbmltcG9ydCB7IFRFWFRfREVGQVVMVF9IRUlHSFQgfSBmcm9tICdAcGxhaXQvcmljaHRleHQnO1xuaW1wb3J0IHsgZW50ZXJOb2RlRWRpdGluZyB9IGZyb20gJy4vbm9kZS9jb21tb24nO1xuaW1wb3J0IHsgY3JlYXRlTWluZEVsZW1lbnQgfSBmcm9tICcuL25vZGUvY3JlYXRlLW5vZGUnO1xuXG5leHBvcnQgY29uc3QgZ2V0Q2hpbGRyZW5Db3VudCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGNvdW50OiBudW1iZXIgPSBlbGVtZW50LmNoaWxkcmVuLnJlZHVjZSgocDogbnVtYmVyLCBjOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gcCArIGdldENoaWxkcmVuQ291bnQoYyk7XG4gICAgfSwgMCk7XG4gICAgcmV0dXJuIGNvdW50ICsgZWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDaGlsZEVsZW1lbnQgPSAob3JpZ2luOiBNaW5kRWxlbWVudCwgY2hpbGQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgbGV0IHBhcmVudCA9IE1pbmRFbGVtZW50LmZpbmRQYXJlbnQoY2hpbGQpO1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgICAgaWYgKHBhcmVudCA9PT0gb3JpZ2luKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBwYXJlbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KHBhcmVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdExldmVsRWxlbWVudCA9IChlbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGxldCByZXN1bHQ6IE1pbmRFbGVtZW50W10gPSBbXTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBpc0NoaWxkID0gZWxlbWVudHMuc29tZShub2RlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBpc0NoaWxkRWxlbWVudChub2RlLCBlbGVtZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFpc0NoaWxkKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDaGlsZFJpZ2h0ID0gKG5vZGU6IE1pbmROb2RlLCBjaGlsZDogTWluZE5vZGUpID0+IHtcbiAgICByZXR1cm4gbm9kZS54IDwgY2hpbGQueDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NoaWxkVXAgPSAobm9kZTogTWluZE5vZGUsIGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIHJldHVybiBub2RlLnkgPiBjaGlsZC55O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlOZXdOb2RlID0gKG5vZGU6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgbmV3Tm9kZTogTWluZEVsZW1lbnQgPSB7IC4uLm5vZGUgfTtcbiAgICBuZXdOb2RlLmlkID0gaWRDcmVhdG9yKCk7XG4gICAgbmV3Tm9kZS5jaGlsZHJlbiA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZE5vZGUgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgICBuZXdOb2RlLmNoaWxkcmVuLnB1c2goY29weU5ld05vZGUoY2hpbGROb2RlKSk7XG4gICAgfVxuICAgIHJldHVybiBuZXdOb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3ROb2Rlc1RleHQgPSAobm9kZTogTWluZEVsZW1lbnQpID0+IHtcbiAgICBsZXQgc3RyID0gJyc7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgICAgc3RyICs9IE5vZGUuc3RyaW5nKG5vZGUuZGF0YS50b3BpYy5jaGlsZHJlblswXSkgKyAnICc7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHN0ciArPSBleHRyYWN0Tm9kZXNUZXh0KGNoaWxkTm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbn07XG5cbmV4cG9ydCBjb25zdCBjaGFuZ2VSaWdodE5vZGVDb3VudCA9IChib2FyZDogUGxhaXRCb2FyZCwgcGFyZW50UGF0aDogUGF0aCwgY2hhbmdlTnVtYmVyOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBfcmlnaHROb2RlQ291bnQgPSBib2FyZC5jaGlsZHJlbltwYXJlbnRQYXRoWzBdXS5yaWdodE5vZGVDb3VudDtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoXG4gICAgICAgIGJvYXJkLFxuICAgICAgICB7XG4gICAgICAgICAgICByaWdodE5vZGVDb3VudDpcbiAgICAgICAgICAgICAgICBjaGFuZ2VOdW1iZXIgPj0gMFxuICAgICAgICAgICAgICAgICAgICA/IF9yaWdodE5vZGVDb3VudCEgKyBjaGFuZ2VOdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgOiBfcmlnaHROb2RlQ291bnQhICsgY2hhbmdlTnVtYmVyIDwgMFxuICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgOiBfcmlnaHROb2RlQ291bnQhICsgY2hhbmdlTnVtYmVyXG4gICAgICAgIH0sXG4gICAgICAgIHBhcmVudFBhdGhcbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSW5SaWdodEJyYW5jaE9mU3RhbmRhcmRMYXlvdXQgPSAoc2VsZWN0ZWRFbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KHNlbGVjdGVkRWxlbWVudCk7XG4gICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUluZGV4OiBudW1iZXIgPSBwYXJlbnRFbGVtZW50LmNoaWxkcmVuLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IHNlbGVjdGVkRWxlbWVudC5pZCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuaXNSb290ICYmXG4gICAgICAgICAgICBnZXRSb290TGF5b3V0KHBhcmVudEVsZW1lbnQpID09PSBNaW5kTGF5b3V0VHlwZS5zdGFuZGFyZCAmJlxuICAgICAgICAgICAgcGFyZW50RWxlbWVudC5yaWdodE5vZGVDb3VudCAmJlxuICAgICAgICAgICAgbm9kZUluZGV4IDw9IHBhcmVudEVsZW1lbnQucmlnaHROb2RlQ291bnQgLSAxXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuLy8gbGF5b3V0TGV2ZWwg55So5p2l6KGo56S65o+S5YWl5YWE5byf6IqC54K56L+Y5piv5a2Q6IqC54K5XG5leHBvcnQgY29uc3QgaW5zZXJ0TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGluaGVyaXROb2RlOiBNaW5kRWxlbWVudCwgcGF0aDogUGF0aCkgPT4ge1xuICAgIGxldCBmaWxsLFxuICAgICAgICBzdHJva2VDb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICAgIHNoYXBlID0gTWluZEVsZW1lbnRTaGFwZS5yb3VuZFJlY3RhbmdsZTtcbiAgICBpZiAoIWluaGVyaXROb2RlLmlzUm9vdCkge1xuICAgICAgICBmaWxsID0gaW5oZXJpdE5vZGUuZmlsbDtcbiAgICAgICAgc3Ryb2tlQ29sb3IgPSBpbmhlcml0Tm9kZS5zdHJva2VDb2xvcjtcbiAgICAgICAgc3Ryb2tlV2lkdGggPSBpbmhlcml0Tm9kZS5zdHJva2VXaWR0aDtcbiAgICB9XG5cbiAgICBzaGFwZSA9IGluaGVyaXROb2RlLnNoYXBlIGFzIE1pbmRFbGVtZW50U2hhcGU7XG5cbiAgICBjb25zdCBuZXdFbGVtZW50ID0gY3JlYXRlTWluZEVsZW1lbnQoJycsIE5PREVfTUlOX1dJRFRILCBURVhUX0RFRkFVTFRfSEVJR0hULCB7IGZpbGwsIHN0cm9rZUNvbG9yLCBzdHJva2VXaWR0aCwgc2hhcGUgfSk7XG5cbiAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xuICAgIGNsZWFyU2VsZWN0ZWRFbGVtZW50KGJvYXJkKTtcbiAgICBhZGRTZWxlY3RlZEVsZW1lbnQoYm9hcmQsIG5ld0VsZW1lbnQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlbnRlck5vZGVFZGl0aW5nKG5ld0VsZW1lbnQpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRMYXN0Q2hpbGQgPSAoY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IGNoaWxkO1xuICAgIHdoaWxlIChyZXN1bHQuY2hpbGRyZW4ubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jaGlsZHJlbltyZXN1bHQuY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZGl2aWRlRWxlbWVudEJ5UGFyZW50ID0gKGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3QgYWJzdHJhY3RJbmNsdWRlZEdyb3VwcyA9IFtdO1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnRzOiBNaW5kRWxlbWVudFtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IE1pbmRFbGVtZW50LmdldFBhcmVudChlbGVtZW50c1tpXSk7XG4gICAgICAgIGNvbnN0IHBhcmVudEluZGV4ID0gcGFyZW50RWxlbWVudHMuaW5kZXhPZihwYXJlbnQpO1xuICAgICAgICBpZiAocGFyZW50SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBwYXJlbnRFbGVtZW50cy5wdXNoKHBhcmVudCk7XG4gICAgICAgICAgICBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzLnB1c2goW2VsZW1lbnRzW2ldXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzW3BhcmVudEluZGV4XS5wdXNoKGVsZW1lbnRzW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBwYXJlbnRFbGVtZW50cywgYWJzdHJhY3RJbmNsdWRlZEdyb3VwcyB9O1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { PlaitBoard } from '@plait/core';
|
|
2
|
+
import { getSizeByText } from '@plait/richtext';
|
|
3
|
+
import { Node } from 'slate';
|
|
4
|
+
import { ROOT_TOPIC_FONT_SIZE, TOPIC_DEFAULT_MAX_WORD_COUNT } from '../../constants/node-topic-style';
|
|
5
|
+
import { NODE_MIN_WIDTH } from '../../constants/node-rule';
|
|
6
|
+
import { MindLayoutType } from '@plait/layouts';
|
|
7
|
+
export const adjustRootToNode = (board, node) => {
|
|
8
|
+
const newNode = { ...node };
|
|
9
|
+
delete newNode.isRoot;
|
|
10
|
+
delete newNode.rightNodeCount;
|
|
11
|
+
delete newNode.type;
|
|
12
|
+
const text = Node.string(node.data.topic.children[0]) || ' ';
|
|
13
|
+
const { width, height } = getSizeByText(text, PlaitBoard.getViewportContainer(board), TOPIC_DEFAULT_MAX_WORD_COUNT);
|
|
14
|
+
newNode.width = Math.max(width, NODE_MIN_WIDTH);
|
|
15
|
+
newNode.height = height;
|
|
16
|
+
if (newNode.layout === MindLayoutType.standard) {
|
|
17
|
+
delete newNode.layout;
|
|
18
|
+
}
|
|
19
|
+
return newNode;
|
|
20
|
+
};
|
|
21
|
+
export const adjustAbstractToNode = (node) => {
|
|
22
|
+
const newNode = { ...node };
|
|
23
|
+
delete newNode.start;
|
|
24
|
+
delete newNode.end;
|
|
25
|
+
return newNode;
|
|
26
|
+
};
|
|
27
|
+
export const adjustNodeToRoot = (board, node) => {
|
|
28
|
+
const newElement = { ...node };
|
|
29
|
+
let text = Node.string(newElement.data.topic);
|
|
30
|
+
if (!text) {
|
|
31
|
+
text = '思维导图';
|
|
32
|
+
newElement.data.topic = { children: [{ text }] };
|
|
33
|
+
}
|
|
34
|
+
delete newElement?.strokeColor;
|
|
35
|
+
delete newElement?.fill;
|
|
36
|
+
delete newElement?.shape;
|
|
37
|
+
delete newElement?.strokeWidth;
|
|
38
|
+
const { width, height } = getSizeByText(text, PlaitBoard.getViewportContainer(board), TOPIC_DEFAULT_MAX_WORD_COUNT, ROOT_TOPIC_FONT_SIZE);
|
|
39
|
+
newElement.width = Math.max(width, NODE_MIN_WIDTH);
|
|
40
|
+
newElement.height = height;
|
|
41
|
+
return {
|
|
42
|
+
...newElement,
|
|
43
|
+
layout: newElement.layout ?? MindLayoutType.right,
|
|
44
|
+
isCollapsed: false,
|
|
45
|
+
isRoot: true,
|
|
46
|
+
type: 'mindmap'
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRqdXN0LW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2FkanVzdC1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsSUFBaUIsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFnQixFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDekMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3RCLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUM5QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFFcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDN0QsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBRXBILE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFeEIsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxRQUFRLEVBQUU7UUFDNUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO0tBQ3pCO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEVBQUU7SUFDdEQsTUFBTSxPQUFPLEdBQWdCLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDckIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBRW5CLE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxJQUFpQixFQUFlLEVBQUU7SUFDbEYsTUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQy9CLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1AsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNkLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7S0FDcEQ7SUFFRCxPQUFPLFVBQVUsRUFBRSxXQUFXLENBQUM7SUFDL0IsT0FBTyxVQUFVLEVBQUUsSUFBSSxDQUFDO0lBQ3hCLE9BQU8sVUFBVSxFQUFFLEtBQUssQ0FBQztJQUN6QixPQUFPLFVBQVUsRUFBRSxXQUFXLENBQUM7SUFFL0IsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQ25DLElBQUksRUFDSixVQUFVLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQ3RDLDRCQUE0QixFQUM1QixvQkFBb0IsQ0FDdkIsQ0FBQztJQUNGLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbkQsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFM0IsT0FBTztRQUNILEdBQUcsVUFBVTtRQUNiLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxLQUFLO1FBQ2pELFdBQVcsRUFBRSxLQUFLO1FBQ2xCLE1BQU0sRUFBRSxJQUFJO1FBQ1osSUFBSSxFQUFFLFNBQVM7S0FDbEIsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRTaXplQnlUZXh0IH0gZnJvbSAnQHBsYWl0L3JpY2h0ZXh0JztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBST09UX1RPUElDX0ZPTlRfU0laRSwgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXRvcGljLXN0eWxlJztcbmltcG9ydCB7IE5PREVfTUlOX1dJRFRIIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtcnVsZSc7XG5pbXBvcnQgeyBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcblxuZXhwb3J0IGNvbnN0IGFkanVzdFJvb3RUb05vZGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgbmV3Tm9kZTogTWluZEVsZW1lbnQgPSB7IC4uLm5vZGUgfTtcbiAgICBkZWxldGUgbmV3Tm9kZS5pc1Jvb3Q7XG4gICAgZGVsZXRlIG5ld05vZGUucmlnaHROb2RlQ291bnQ7XG4gICAgZGVsZXRlIG5ld05vZGUudHlwZTtcblxuICAgIGNvbnN0IHRleHQgPSBOb2RlLnN0cmluZyhub2RlLmRhdGEudG9waWMuY2hpbGRyZW5bMF0pIHx8ICcgJztcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGdldFNpemVCeVRleHQodGV4dCwgUGxhaXRCb2FyZC5nZXRWaWV3cG9ydENvbnRhaW5lcihib2FyZCksIFRPUElDX0RFRkFVTFRfTUFYX1dPUkRfQ09VTlQpO1xuXG4gICAgbmV3Tm9kZS53aWR0aCA9IE1hdGgubWF4KHdpZHRoLCBOT0RFX01JTl9XSURUSCk7XG4gICAgbmV3Tm9kZS5oZWlnaHQgPSBoZWlnaHQ7XG5cbiAgICBpZiAobmV3Tm9kZS5sYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLnN0YW5kYXJkKSB7XG4gICAgICAgIGRlbGV0ZSBuZXdOb2RlLmxheW91dDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGp1c3RBYnN0cmFjdFRvTm9kZSA9IChub2RlOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5ld05vZGU6IE1pbmRFbGVtZW50ID0geyAuLi5ub2RlIH07XG4gICAgZGVsZXRlIG5ld05vZGUuc3RhcnQ7XG4gICAgZGVsZXRlIG5ld05vZGUuZW5kO1xuXG4gICAgcmV0dXJuIG5ld05vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgYWRqdXN0Tm9kZVRvUm9vdCA9IChib2FyZDogUGxhaXRCb2FyZCwgbm9kZTogTWluZEVsZW1lbnQpOiBNaW5kRWxlbWVudCA9PiB7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHsgLi4ubm9kZSB9O1xuICAgIGxldCB0ZXh0ID0gTm9kZS5zdHJpbmcobmV3RWxlbWVudC5kYXRhLnRvcGljKTtcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgICB0ZXh0ID0gJ+aAnee7tOWvvOWbvic7XG4gICAgICAgIG5ld0VsZW1lbnQuZGF0YS50b3BpYyA9IHsgY2hpbGRyZW46IFt7IHRleHQgfV0gfTtcbiAgICB9XG5cbiAgICBkZWxldGUgbmV3RWxlbWVudD8uc3Ryb2tlQ29sb3I7XG4gICAgZGVsZXRlIG5ld0VsZW1lbnQ/LmZpbGw7XG4gICAgZGVsZXRlIG5ld0VsZW1lbnQ/LnNoYXBlO1xuICAgIGRlbGV0ZSBuZXdFbGVtZW50Py5zdHJva2VXaWR0aDtcblxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0U2l6ZUJ5VGV4dChcbiAgICAgICAgdGV4dCxcbiAgICAgICAgUGxhaXRCb2FyZC5nZXRWaWV3cG9ydENvbnRhaW5lcihib2FyZCksXG4gICAgICAgIFRPUElDX0RFRkFVTFRfTUFYX1dPUkRfQ09VTlQsXG4gICAgICAgIFJPT1RfVE9QSUNfRk9OVF9TSVpFXG4gICAgKTtcbiAgICBuZXdFbGVtZW50LndpZHRoID0gTWF0aC5tYXgod2lkdGgsIE5PREVfTUlOX1dJRFRIKTtcbiAgICBuZXdFbGVtZW50LmhlaWdodCA9IGhlaWdodDtcblxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLm5ld0VsZW1lbnQsXG4gICAgICAgIGxheW91dDogbmV3RWxlbWVudC5sYXlvdXQgPz8gTWluZExheW91dFR5cGUucmlnaHQsXG4gICAgICAgIGlzQ29sbGFwc2VkOiBmYWxzZSxcbiAgICAgICAgaXNSb290OiB0cnVlLFxuICAgICAgICB0eXBlOiAnbWluZG1hcCdcbiAgICB9O1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PlaitElement } from '@plait/core';
|
|
2
|
+
export function enterNodeEditing(element) {
|
|
3
|
+
const component = PlaitElement.getComponent(element);
|
|
4
|
+
component.startEditText(false, false);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvbm9kZS9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkzQyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBb0I7SUFDakQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQXNCLENBQUM7SUFDMUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS5jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW50ZXJOb2RlRWRpdGluZyhlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoZWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgY29tcG9uZW50LnN0YXJ0RWRpdFRleHQoZmFsc2UsIGZhbHNlKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { idCreator, isNullOrUndefined } from '@plait/core';
|
|
2
|
+
import { ROOT_DEFAULT_HEIGHT, TEXT_DEFAULT_HEIGHT } from '@plait/richtext';
|
|
3
|
+
import { MindLayoutType } from '@plait/layouts';
|
|
4
|
+
import { MindElementShape } from '../../interfaces/element';
|
|
5
|
+
import { adjustNodeToRoot } from './adjust-node';
|
|
6
|
+
export const createEmptyMind = (board, point) => {
|
|
7
|
+
const element = createMindElement('', 0, 0, { layout: MindLayoutType.right });
|
|
8
|
+
const rootElement = adjustNodeToRoot(board, element);
|
|
9
|
+
rootElement.points = [point];
|
|
10
|
+
return rootElement;
|
|
11
|
+
};
|
|
12
|
+
export const createDefaultMind = (point, rightNodeCount, layout) => {
|
|
13
|
+
const root = createMindElement('思维导图', 72, ROOT_DEFAULT_HEIGHT, { shape: MindElementShape.roundRectangle, layout });
|
|
14
|
+
root.rightNodeCount = rightNodeCount;
|
|
15
|
+
root.isRoot = true;
|
|
16
|
+
root.type = 'mindmap';
|
|
17
|
+
root.points = [point];
|
|
18
|
+
const children = [1, 1, 1].map(() => {
|
|
19
|
+
return createMindElement('新建节点', 56, TEXT_DEFAULT_HEIGHT, { shape: MindElementShape.roundRectangle });
|
|
20
|
+
});
|
|
21
|
+
root.children = children;
|
|
22
|
+
return root;
|
|
23
|
+
};
|
|
24
|
+
export const createMindElement = (text, width, height, options) => {
|
|
25
|
+
const newElement = {
|
|
26
|
+
id: idCreator(),
|
|
27
|
+
data: {
|
|
28
|
+
topic: { children: [{ text }] }
|
|
29
|
+
},
|
|
30
|
+
children: [],
|
|
31
|
+
width,
|
|
32
|
+
height,
|
|
33
|
+
fill: options.fill,
|
|
34
|
+
strokeColor: options.strokeColor,
|
|
35
|
+
strokeWidth: options.strokeWidth,
|
|
36
|
+
shape: options.shape
|
|
37
|
+
};
|
|
38
|
+
if (options.fill) {
|
|
39
|
+
newElement.fill = options.fill;
|
|
40
|
+
}
|
|
41
|
+
if (options.strokeColor) {
|
|
42
|
+
newElement.strokeColor = options.strokeColor;
|
|
43
|
+
}
|
|
44
|
+
if (!isNullOrUndefined(options.strokeWidth)) {
|
|
45
|
+
newElement.strokeWidth = options.strokeWidth;
|
|
46
|
+
}
|
|
47
|
+
if (options.shape) {
|
|
48
|
+
newElement.shape = options.shape;
|
|
49
|
+
}
|
|
50
|
+
if (options.layout) {
|
|
51
|
+
newElement.layout = options.layout;
|
|
52
|
+
}
|
|
53
|
+
if (options.branchColor) {
|
|
54
|
+
newElement.branchColor = options.branchColor;
|
|
55
|
+
}
|
|
56
|
+
if (!isNullOrUndefined(options.branchWidth)) {
|
|
57
|
+
newElement.branchWidth = options.branchWidth;
|
|
58
|
+
}
|
|
59
|
+
return newElement;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2NyZWF0ZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFZLEVBQUUsRUFBRTtJQUMvRCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5RSxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBWSxFQUFFLGNBQXNCLEVBQUUsTUFBc0IsRUFBRSxFQUFFO0lBQzlGLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEgsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1FBQ2hDLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDekIsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDN0IsSUFBWSxFQUNaLEtBQWEsRUFDYixNQUFjLEVBQ2QsT0FRQyxFQUNILEVBQUU7SUFDQSxNQUFNLFVBQVUsR0FBZ0I7UUFDNUIsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtTQUNsQztRQUNELFFBQVEsRUFBRSxFQUFFO1FBQ1osS0FBSztRQUNMLE1BQU07UUFDTixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1FBQ2hDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7S0FDdkIsQ0FBQztJQUNGLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtRQUNkLFVBQVUsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztLQUNsQztJQUNELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtRQUNyQixVQUFVLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7S0FDaEQ7SUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQ3pDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUNoRDtJQUNELElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtRQUNmLFVBQVUsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztLQUNwQztJQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNoQixVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDdEM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUU7UUFDckIsVUFBVSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0tBQ2hEO0lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUN6QyxVQUFVLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7S0FDaEQ7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgaWRDcmVhdG9yLCBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFJPT1RfREVGQVVMVF9IRUlHSFQsIFRFWFRfREVGQVVMVF9IRUlHSFQgfSBmcm9tICdAcGxhaXQvcmljaHRleHQnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgTWluZEVsZW1lbnRTaGFwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBhZGp1c3ROb2RlVG9Sb290IH0gZnJvbSAnLi9hZGp1c3Qtbm9kZSc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVFbXB0eU1pbmQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgnJywgMCwgMCwgeyBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlLnJpZ2h0IH0pO1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gYWRqdXN0Tm9kZVRvUm9vdChib2FyZCwgZWxlbWVudCk7XG4gICAgcm9vdEVsZW1lbnQucG9pbnRzID0gW3BvaW50XTtcbiAgICByZXR1cm4gcm9vdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdE1pbmQgPSAocG9pbnQ6IFBvaW50LCByaWdodE5vZGVDb3VudDogbnVtYmVyLCBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IGNyZWF0ZU1pbmRFbGVtZW50KCfmgJ3nu7Tlr7zlm74nLCA3MiwgUk9PVF9ERUZBVUxUX0hFSUdIVCwgeyBzaGFwZTogTWluZEVsZW1lbnRTaGFwZS5yb3VuZFJlY3RhbmdsZSwgbGF5b3V0IH0pO1xuICAgIHJvb3QucmlnaHROb2RlQ291bnQgPSByaWdodE5vZGVDb3VudDtcbiAgICByb290LmlzUm9vdCA9IHRydWU7XG4gICAgcm9vdC50eXBlID0gJ21pbmRtYXAnO1xuICAgIHJvb3QucG9pbnRzID0gW3BvaW50XTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFsxLCAxLCAxXS5tYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY3JlYXRlTWluZEVsZW1lbnQoJ+aWsOW7uuiKgueCuScsIDU2LCBURVhUX0RFRkFVTFRfSEVJR0hULCB7IHNoYXBlOiBNaW5kRWxlbWVudFNoYXBlLnJvdW5kUmVjdGFuZ2xlIH0pO1xuICAgIH0pO1xuICAgIHJvb3QuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICByZXR1cm4gcm9vdDtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNaW5kRWxlbWVudCA9IChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGZpbGw/OiBzdHJpbmc7XG4gICAgICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICAgICAgICBzdHJva2VXaWR0aD86IG51bWJlcjtcbiAgICAgICAgc2hhcGU/OiBNaW5kRWxlbWVudFNoYXBlO1xuICAgICAgICBsYXlvdXQ/OiBNaW5kTGF5b3V0VHlwZTtcbiAgICAgICAgYnJhbmNoQ29sb3I/OiBzdHJpbmc7XG4gICAgICAgIGJyYW5jaFdpZHRoPzogbnVtYmVyO1xuICAgIH1cbikgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQ6IE1pbmRFbGVtZW50ID0ge1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHRvcGljOiB7IGNoaWxkcmVuOiBbeyB0ZXh0IH1dIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBmaWxsOiBvcHRpb25zLmZpbGwsXG4gICAgICAgIHN0cm9rZUNvbG9yOiBvcHRpb25zLnN0cm9rZUNvbG9yLFxuICAgICAgICBzdHJva2VXaWR0aDogb3B0aW9ucy5zdHJva2VXaWR0aCxcbiAgICAgICAgc2hhcGU6IG9wdGlvbnMuc2hhcGVcbiAgICB9O1xuICAgIGlmIChvcHRpb25zLmZpbGwpIHtcbiAgICAgICAgbmV3RWxlbWVudC5maWxsID0gb3B0aW9ucy5maWxsO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5zdHJva2VDb2xvcikge1xuICAgICAgICBuZXdFbGVtZW50LnN0cm9rZUNvbG9yID0gb3B0aW9ucy5zdHJva2VDb2xvcjtcbiAgICB9XG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChvcHRpb25zLnN0cm9rZVdpZHRoKSkge1xuICAgICAgICBuZXdFbGVtZW50LnN0cm9rZVdpZHRoID0gb3B0aW9ucy5zdHJva2VXaWR0aDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuc2hhcGUpIHtcbiAgICAgICAgbmV3RWxlbWVudC5zaGFwZSA9IG9wdGlvbnMuc2hhcGU7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmxheW91dCkge1xuICAgICAgICBuZXdFbGVtZW50LmxheW91dCA9IG9wdGlvbnMubGF5b3V0O1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5icmFuY2hDb2xvcikge1xuICAgICAgICBuZXdFbGVtZW50LmJyYW5jaENvbG9yID0gb3B0aW9ucy5icmFuY2hDb2xvcjtcbiAgICB9XG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChvcHRpb25zLmJyYW5jaFdpZHRoKSkge1xuICAgICAgICBuZXdFbGVtZW50LmJyYW5jaFdpZHRoID0gb3B0aW9ucy5icmFuY2hXaWR0aDtcbiAgICB9XG4gICAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59O1xuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './adjust-node';
|
|
2
|
+
export * from './create-node';
|
|
3
|
+
export * from './common';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hZGp1c3Qtbm9kZSc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1ub2RlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcbiJdfQ==
|
|
@@ -17,6 +17,17 @@ export const getPointByPlacement = (client, placement) => {
|
|
|
17
17
|
}
|
|
18
18
|
return [x, y];
|
|
19
19
|
};
|
|
20
|
+
export const getXDistanceBetweenPoint = (point1, point2, isHorizontalLayout) => {
|
|
21
|
+
if (isHorizontalLayout) {
|
|
22
|
+
return Math.abs(point1[0] - point2[0]);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return Math.abs(point1[1] - point2[1]);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export const getYDistanceBetweenPoint = (point1, point2, isHorizontalLayout) => {
|
|
29
|
+
getXDistanceBetweenPoint(point1, point2, !isHorizontalLayout);
|
|
30
|
+
};
|
|
20
31
|
export const getLayoutDirection = (node, isHorizontal) => {
|
|
21
32
|
if (isHorizontal) {
|
|
22
33
|
if (node.left) {
|
|
@@ -45,7 +56,7 @@ export const getLayoutDirection = (node, isHorizontal) => {
|
|
|
45
56
|
// 下 -> 上:
|
|
46
57
|
// 1. 终点 -> 起点/终点 -> 起点
|
|
47
58
|
// 2. 加 -> 减
|
|
48
|
-
export const
|
|
59
|
+
export const moveXOfPoint = (point, distance, direction = LayoutDirection.right) => {
|
|
49
60
|
if (direction === LayoutDirection.left) {
|
|
50
61
|
return [point[0] - distance, point[1]];
|
|
51
62
|
}
|
|
@@ -57,6 +68,15 @@ export const movePoint = (point, distance, direction = LayoutDirection.right) =>
|
|
|
57
68
|
}
|
|
58
69
|
return [point[0] + distance, point[1]];
|
|
59
70
|
};
|
|
71
|
+
export const moveYOfPoint = (point, distance, direction = LayoutDirection.right) => {
|
|
72
|
+
if (direction === LayoutDirection.bottom) {
|
|
73
|
+
return [point[0] + distance, point[1]];
|
|
74
|
+
}
|
|
75
|
+
if (direction === LayoutDirection.top) {
|
|
76
|
+
return [point[0] + distance, point[1]];
|
|
77
|
+
}
|
|
78
|
+
return [point[0], point[1] + distance];
|
|
79
|
+
};
|
|
60
80
|
export const transformPlacement = (placement, direction) => {
|
|
61
81
|
// to left
|
|
62
82
|
if (direction === LayoutDirection.left) {
|
|
@@ -96,4 +116,4 @@ export const transformPlacement = (placement, direction) => {
|
|
|
96
116
|
}
|
|
97
117
|
}
|
|
98
118
|
};
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQtcGxhY2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvcG9pbnQtcGxhY2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0YsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxNQUF1QixFQUFFLFNBQXlCLEVBQVMsRUFBRTtJQUM3RixJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssbUJBQW1CLENBQUMsTUFBTSxFQUFFO1FBQzdDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0tBQ25DO0lBQ0QsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssbUJBQW1CLENBQUMsS0FBSyxFQUFFO1FBQzVDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDL0I7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7UUFDM0MsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDcEM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7UUFDM0MsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNoQztJQUNELE9B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QUMsS0FBSyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7WUFDM0MsUUFBUSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQztTQUNwQztRQUNELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLG1CQUFtQixDQUFDLEtBQUssRUFBRTtZQUM1QyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1NBQ3ZDO1FBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUMxQixTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO0tBQzNCO0lBQ0QsUUFBUTtJQUNSLElBQUksU0FBUyxLQUFLLGVBQWUsQ0FBQyxHQUFHLEVBQUU7UUFDbkMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLENBQUMsTUFBTSxFQUFFO1lBQzNDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7U0FDeEM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztTQUMzQztLQUNKO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IExheW91dERpcmVjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGF5b3V0JztcbmltcG9ydCB7IEhvcml6b250YWxQbGFjZW1lbnQsIFBvaW50UGxhY2VtZW50LCBWZXJ0aWNhbFBsYWNlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgZ2V0UG9pbnRCeVBsYWNlbWVudCA9IChjbGllbnQ6IFJlY3RhbmdsZUNsaWVudCwgcGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCk6IFBvaW50ID0+IHtcbiAgICBsZXQgeCA9IGNsaWVudC54O1xuICAgIGxldCB5ID0gY2xpZW50Lnk7XG4gICAgaWYgKHBsYWNlbWVudFswXSA9PT0gSG9yaXpvbnRhbFBsYWNlbWVudC5jZW50ZXIpIHtcbiAgICAgICAgeCA9IGNsaWVudC54ICsgY2xpZW50LndpZHRoIC8gMjtcbiAgICB9XG4gICAgaWYgKHBsYWNlbWVudFswXSA9PT0gSG9yaXpvbnRhbFBsYWNlbWVudC5yaWdodCkge1xuICAgICAgICB4ID0gY2xpZW50LnggKyBjbGllbnQud2lkdGg7XG4gICAgfVxuICAgIGlmIChwbGFjZW1lbnRbMV0gPT09IFZlcnRpY2FsUGxhY2VtZW50Lm1pZGRsZSkge1xuICAgICAgICB5ID0gY2xpZW50LnkgKyBjbGllbnQuaGVpZ2h0IC8gMjtcbiAgICB9XG4gICAgaWYgKHBsYWNlbWVudFsxXSA9PT0gVmVydGljYWxQbGFjZW1lbnQuYm90dG9tKSB7XG4gICAgICAgIHkgPSBjbGllbnQueSArIGNsaWVudC5oZWlnaHQ7XG4gICAgfVxuICAgIHJldHVybiBbeCwgeV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5b3V0RGlyZWN0aW9uID0gKG5vZGU6IE1pbmROb2RlLCBpc0hvcml6b250YWw6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgIGlmIChub2RlLmxlZnQpIHtcbiAgICAgICAgICAgIHJldHVybiBMYXlvdXREaXJlY3Rpb24ubGVmdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBMYXlvdXREaXJlY3Rpb24ucmlnaHQ7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobm9kZS51cCkge1xuICAgICAgICAgICAgcmV0dXJuIExheW91dERpcmVjdGlvbi50b3A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTGF5b3V0RGlyZWN0aW9uLmJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbi8vIOS7peWPs+S4uuWfuuWHhlxuLy8g5Y+zIC0+IOW3pjpcbi8vIDEuIOe7iOeCuSAtPiDotbfngrkv6LW354K5IC0+IOe7iOeCuVxuLy8gMi4g5YqgIC0+IOWHj1xuXG4vLyDmsLTlubMgLT4g5Z6C55u0OlxuLy8gMS4g6LW354K5L+e7iOeCuSAtPiDnurXovbRcbi8vIDIuIOWKoOWHjyAtPiDnurXovbRcblxuLy8g5LiLIC0+IOS4ijpcbi8vIDEuIOe7iOeCuSAtPiDotbfngrkv57uI54K5IC0+IOi1t+eCuVxuLy8gMi4g5YqgIC0+IOWHj1xuZXhwb3J0IGNvbnN0IG1vdmVQb2ludCA9IChwb2ludDogUG9pbnQsIGRpc3RhbmNlOiBudW1iZXIsIGRpcmVjdGlvbjogTGF5b3V0RGlyZWN0aW9uID0gTGF5b3V0RGlyZWN0aW9uLnJpZ2h0KTogUG9pbnQgPT4ge1xuICAgIGlmIChkaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi5sZWZ0KSB7XG4gICAgICAgIHJldHVybiBbcG9pbnRbMF0gLSBkaXN0YW5jZSwgcG9pbnRbMV1dO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uID09PSBMYXlvdXREaXJlY3Rpb24uYm90dG9tKSB7XG4gICAgICAgIHJldHVybiBbcG9pbnRbMF0sIHBvaW50WzFdICsgZGlzdGFuY2VdO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uID09PSBMYXlvdXREaXJlY3Rpb24udG9wKSB7XG4gICAgICAgIHJldHVybiBbcG9pbnRbMF0sIHBvaW50WzFdIC0gZGlzdGFuY2VdO1xuICAgIH1cbiAgICByZXR1cm4gW3BvaW50WzBdICsgZGlzdGFuY2UsIHBvaW50WzFdXTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1QbGFjZW1lbnQgPSAocGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCwgZGlyZWN0aW9uOiBMYXlvdXREaXJlY3Rpb24pID0+IHtcbiAgICAvLyB0byBsZWZ0XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gTGF5b3V0RGlyZWN0aW9uLmxlZnQpIHtcbiAgICAgICAgaWYgKHBsYWNlbWVudFswXSA9PT0gSG9yaXpvbnRhbFBsYWNlbWVudC5yaWdodCkge1xuICAgICAgICAgICAgcGxhY2VtZW50WzBdID0gSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0O1xuICAgICAgICB9IGVsc2UgaWYgKHBsYWNlbWVudFswXSA9PT0gSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0KSB7XG4gICAgICAgICAgICBwbGFjZW1lbnRbMF0gPSBIb3Jpem9udGFsUGxhY2VtZW50LnJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHRvIGJvdHRvbVxuICAgIGlmIChkaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi5ib3R0b20gfHwgZGlyZWN0aW9uID09PSBMYXlvdXREaXJlY3Rpb24udG9wKSB7XG4gICAgICAgIGxldCBob3Jpem9udGFsID0gSG9yaXpvbnRhbFBsYWNlbWVudC5jZW50ZXI7XG4gICAgICAgIGxldCB2ZXJ0aWNhbCA9IFZlcnRpY2FsUGxhY2VtZW50Lm1pZGRsZTtcbiAgICAgICAgaWYgKHBsYWNlbWVudFsxXSA9PT0gVmVydGljYWxQbGFjZW1lbnQudG9wKSB7XG4gICAgICAgICAgICBob3Jpem9udGFsID0gSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwbGFjZW1lbnRbMV0gPT09IFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbSkge1xuICAgICAgICAgICAgaG9yaXpvbnRhbCA9IEhvcml6b250YWxQbGFjZW1lbnQucmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlbWVudFswXSA9PT0gSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0KSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbCA9IFZlcnRpY2FsUGxhY2VtZW50LnRvcDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGxhY2VtZW50WzBdID09PSBIb3Jpem9udGFsUGxhY2VtZW50LnJpZ2h0KSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbCA9IFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbTtcbiAgICAgICAgfVxuICAgICAgICBwbGFjZW1lbnRbMF0gPSBob3Jpem9udGFsO1xuICAgICAgICBwbGFjZW1lbnRbMV0gPSB2ZXJ0aWNhbDtcbiAgICB9XG4gICAgLy8gdG8gdXBcbiAgICBpZiAoZGlyZWN0aW9uID09PSBMYXlvdXREaXJlY3Rpb24udG9wKSB7XG4gICAgICAgIGlmIChwbGFjZW1lbnRbMV0gPT09IFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbSkge1xuICAgICAgICAgICAgcGxhY2VtZW50WzFdID0gVmVydGljYWxQbGFjZW1lbnQudG9wO1xuICAgICAgICB9IGVsc2UgaWYgKHBsYWNlbWVudFsxXSA9PT0gVmVydGljYWxQbGFjZW1lbnQudG9wKSB7XG4gICAgICAgICAgICBwbGFjZW1lbnRbMV0gPSBWZXJ0aWNhbFBsYWNlbWVudC5ib3R0b207XG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQtcGxhY2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvcG9pbnQtcGxhY2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0YsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxNQUF1QixFQUFFLFNBQXlCLEVBQVMsRUFBRTtJQUM3RixJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssbUJBQW1CLENBQUMsTUFBTSxFQUFFO1FBQzdDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0tBQ25DO0lBQ0QsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssbUJBQW1CLENBQUMsS0FBSyxFQUFFO1FBQzVDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDL0I7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7UUFDM0MsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDcEM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7UUFDM0MsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNoQztJQUNELE9B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bUIsQ0FBQyxJQUFJLEVBQUU7WUFDM0MsUUFBUSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQztTQUNwQztRQUNELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLG1CQUFtQixDQUFDLEtBQUssRUFBRTtZQUM1QyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1NBQ3ZDO1FBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUMxQixTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO0tBQzNCO0lBQ0QsUUFBUTtJQUNSLElBQUksU0FBUyxLQUFLLGVBQWUsQ0FBQyxHQUFHLEVBQUU7UUFDbkMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLENBQUMsTUFBTSxFQUFFO1lBQzNDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7U0FDeEM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztTQUMzQztLQUNKO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IExheW91dERpcmVjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGF5b3V0JztcbmltcG9ydCB7IEhvcml6b250YWxQbGFjZW1lbnQsIFBvaW50UGxhY2VtZW50LCBWZXJ0aWNhbFBsYWNlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgZ2V0UG9pbnRCeVBsYWNlbWVudCA9IChjbGllbnQ6IFJlY3RhbmdsZUNsaWVudCwgcGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCk6IFBvaW50ID0+IHtcbiAgICBsZXQgeCA9IGNsaWVudC54O1xuICAgIGxldCB5ID0gY2xpZW50Lnk7XG4gICAgaWYgKHBsYWNlbWVudFswXSA9PT0gSG9yaXpvbnRhbFBsYWNlbWVudC5jZW50ZXIpIHtcbiAgICAgICAgeCA9IGNsaWVudC54ICsgY2xpZW50LndpZHRoIC8gMjtcbiAgICB9XG4gICAgaWYgKHBsYWNlbWVudFswXSA9PT0gSG9yaXpvbnRhbFBsYWNlbWVudC5yaWdodCkge1xuICAgICAgICB4ID0gY2xpZW50LnggKyBjbGllbnQud2lkdGg7XG4gICAgfVxuICAgIGlmIChwbGFjZW1lbnRbMV0gPT09IFZlcnRpY2FsUGxhY2VtZW50Lm1pZGRsZSkge1xuICAgICAgICB5ID0gY2xpZW50LnkgKyBjbGllbnQuaGVpZ2h0IC8gMjtcbiAgICB9XG4gICAgaWYgKHBsYWNlbWVudFsxXSA9PT0gVmVydGljYWxQbGFjZW1lbnQuYm90dG9tKSB7XG4gICAgICAgIHkgPSBjbGllbnQueSArIGNsaWVudC5oZWlnaHQ7XG4gICAgfVxuICAgIHJldHVybiBbeCwgeV07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlbWVudFJlZiB7XG4gICAgcGxhY2VtZW50OiBQb2ludFBsYWNlbWVudDtcbiAgICBjbGllbnQ6IFJlY3RhbmdsZUNsaWVudDtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFhEaXN0YW5jZUJldHdlZW5Qb2ludCA9IChwb2ludDE6IFBvaW50LCBwb2ludDI6IFBvaW50LCBpc0hvcml6b250YWxMYXlvdXQ6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoaXNIb3Jpem9udGFsTGF5b3V0KSB7XG4gICAgICAgIHJldHVybiBNYXRoLmFicyhwb2ludDFbMF0gLSBwb2ludDJbMF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBNYXRoLmFicyhwb2ludDFbMV0gLSBwb2ludDJbMV0pO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRZRGlzdGFuY2VCZXR3ZWVuUG9pbnQgPSAocG9pbnQxOiBQb2ludCwgcG9pbnQyOiBQb2ludCwgaXNIb3Jpem9udGFsTGF5b3V0OiBib29sZWFuKSA9PiB7XG4gICAgZ2V0WERpc3RhbmNlQmV0d2VlblBvaW50KHBvaW50MSwgcG9pbnQyLCAhaXNIb3Jpem9udGFsTGF5b3V0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMYXlvdXREaXJlY3Rpb24gPSAobm9kZTogTWluZE5vZGUsIGlzSG9yaXpvbnRhbDogYm9vbGVhbikgPT4ge1xuICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgaWYgKG5vZGUubGVmdCkge1xuICAgICAgICAgICAgcmV0dXJuIExheW91dERpcmVjdGlvbi5sZWZ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIExheW91dERpcmVjdGlvbi5yaWdodDtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChub2RlLnVwKSB7XG4gICAgICAgICAgICByZXR1cm4gTGF5b3V0RGlyZWN0aW9uLnRvcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBMYXlvdXREaXJlY3Rpb24uYm90dG9tO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuLy8g5Lul5Y+z5Li65Z+65YeGXG4vLyDlj7MgLT4g5bemOlxuLy8gMS4g57uI54K5IC0+IOi1t+eCuS/otbfngrkgLT4g57uI54K5XG4vLyAyLiDliqAgLT4g5YePXG5cbi8vIOawtOW5syAtPiDlnoLnm7Q6XG4vLyAxLiDotbfngrkv57uI54K5IC0+IOe6tei9tFxuLy8gMi4g5Yqg5YePIC0+IOe6tei9tFxuXG4vLyDkuIsgLT4g5LiKOlxuLy8gMS4g57uI54K5IC0+IOi1t+eCuS/nu4jngrkgLT4g6LW354K5XG4vLyAyLiDliqAgLT4g5YePXG5leHBvcnQgY29uc3QgbW92ZVhPZlBvaW50ID0gKHBvaW50OiBQb2ludCwgZGlzdGFuY2U6IG51bWJlciwgZGlyZWN0aW9uOiBMYXlvdXREaXJlY3Rpb24gPSBMYXlvdXREaXJlY3Rpb24ucmlnaHQpOiBQb2ludCA9PiB7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gTGF5b3V0RGlyZWN0aW9uLmxlZnQpIHtcbiAgICAgICAgcmV0dXJuIFtwb2ludFswXSAtIGRpc3RhbmNlLCBwb2ludFsxXV07XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi5ib3R0b20pIHtcbiAgICAgICAgcmV0dXJuIFtwb2ludFswXSwgcG9pbnRbMV0gKyBkaXN0YW5jZV07XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi50b3ApIHtcbiAgICAgICAgcmV0dXJuIFtwb2ludFswXSwgcG9pbnRbMV0gLSBkaXN0YW5jZV07XG4gICAgfVxuICAgIHJldHVybiBbcG9pbnRbMF0gKyBkaXN0YW5jZSwgcG9pbnRbMV1dO1xufTtcblxuZXhwb3J0IGNvbnN0IG1vdmVZT2ZQb2ludCA9IChwb2ludDogUG9pbnQsIGRpc3RhbmNlOiBudW1iZXIsIGRpcmVjdGlvbjogTGF5b3V0RGlyZWN0aW9uID0gTGF5b3V0RGlyZWN0aW9uLnJpZ2h0KTogUG9pbnQgPT4ge1xuICAgIGlmIChkaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi5ib3R0b20pIHtcbiAgICAgICAgcmV0dXJuIFtwb2ludFswXSArIGRpc3RhbmNlLCBwb2ludFsxXV07XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi50b3ApIHtcbiAgICAgICAgcmV0dXJuIFtwb2ludFswXSArIGRpc3RhbmNlLCBwb2ludFsxXV07XG4gICAgfVxuICAgIHJldHVybiBbcG9pbnRbMF0sIHBvaW50WzFdICsgZGlzdGFuY2VdO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVBsYWNlbWVudCA9IChwbGFjZW1lbnQ6IFBvaW50UGxhY2VtZW50LCBkaXJlY3Rpb246IExheW91dERpcmVjdGlvbikgPT4ge1xuICAgIC8vIHRvIGxlZnRcbiAgICBpZiAoZGlyZWN0aW9uID09PSBMYXlvdXREaXJlY3Rpb24ubGVmdCkge1xuICAgICAgICBpZiAocGxhY2VtZW50WzBdID09PSBIb3Jpem9udGFsUGxhY2VtZW50LnJpZ2h0KSB7XG4gICAgICAgICAgICBwbGFjZW1lbnRbMF0gPSBIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQ7XG4gICAgICAgIH0gZWxzZSBpZiAocGxhY2VtZW50WzBdID09PSBIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQpIHtcbiAgICAgICAgICAgIHBsYWNlbWVudFswXSA9IEhvcml6b250YWxQbGFjZW1lbnQucmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gdG8gYm90dG9tXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gTGF5b3V0RGlyZWN0aW9uLmJvdHRvbSB8fCBkaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi50b3ApIHtcbiAgICAgICAgbGV0IGhvcml6b250YWwgPSBIb3Jpem9udGFsUGxhY2VtZW50LmNlbnRlcjtcbiAgICAgICAgbGV0IHZlcnRpY2FsID0gVmVydGljYWxQbGFjZW1lbnQubWlkZGxlO1xuICAgICAgICBpZiAocGxhY2VtZW50WzFdID09PSBWZXJ0aWNhbFBsYWNlbWVudC50b3ApIHtcbiAgICAgICAgICAgIGhvcml6b250YWwgPSBIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlbWVudFsxXSA9PT0gVmVydGljYWxQbGFjZW1lbnQuYm90dG9tKSB7XG4gICAgICAgICAgICBob3Jpem9udGFsID0gSG9yaXpvbnRhbFBsYWNlbWVudC5yaWdodDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGxhY2VtZW50WzBdID09PSBIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQpIHtcbiAgICAgICAgICAgIHZlcnRpY2FsID0gVmVydGljYWxQbGFjZW1lbnQudG9wO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwbGFjZW1lbnRbMF0gPT09IEhvcml6b250YWxQbGFjZW1lbnQucmlnaHQpIHtcbiAgICAgICAgICAgIHZlcnRpY2FsID0gVmVydGljYWxQbGFjZW1lbnQuYm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIHBsYWNlbWVudFswXSA9IGhvcml6b250YWw7XG4gICAgICAgIHBsYWNlbWVudFsxXSA9IHZlcnRpY2FsO1xuICAgIH1cbiAgICAvLyB0byB1cFxuICAgIGlmIChkaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi50b3ApIHtcbiAgICAgICAgaWYgKHBsYWNlbWVudFsxXSA9PT0gVmVydGljYWxQbGFjZW1lbnQuYm90dG9tKSB7XG4gICAgICAgICAgICBwbGFjZW1lbnRbMV0gPSBWZXJ0aWNhbFBsYWNlbWVudC50b3A7XG4gICAgICAgIH0gZWxzZSBpZiAocGxhY2VtZW50WzFdID09PSBWZXJ0aWNhbFBsYWNlbWVudC50b3ApIHtcbiAgICAgICAgICAgIHBsYWNlbWVudFsxXSA9IFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { RectangleClient } from "@plait/core";
|
|
2
|
+
import { MindElement } from "../../interfaces/element";
|
|
3
|
+
import { getRectangleByNode } from "./node";
|
|
4
|
+
import { NodeSpace } from "../space/node-space";
|
|
5
|
+
import { getEmojisWidthHeight } from "../space/emoji";
|
|
6
|
+
export function getEmojiRectangle(board, element) {
|
|
7
|
+
let { x, y } = getRectangleByNode(MindElement.getNode(element));
|
|
8
|
+
x = x + NodeSpace.getEmojiLeftSpace(board, element);
|
|
9
|
+
const { width, height } = getEmojisWidthHeight(board, element);
|
|
10
|
+
return {
|
|
11
|
+
x,
|
|
12
|
+
y,
|
|
13
|
+
width,
|
|
14
|
+
height
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function getEmojiForeignRectangle(board, element) {
|
|
18
|
+
let { x, y } = getRectangleByNode(MindElement.getNode(element));
|
|
19
|
+
x = x + NodeSpace.getEmojiLeftSpace(board, element);
|
|
20
|
+
const { width, height } = getEmojisWidthHeight(board, element);
|
|
21
|
+
return {
|
|
22
|
+
x,
|
|
23
|
+
y,
|
|
24
|
+
width,
|
|
25
|
+
height: height + NodeSpace.getEmojiTopSpace(element) * 2
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export const isHitEmojis = (board, element, point) => {
|
|
29
|
+
return RectangleClient.isHit(RectangleClient.toRectangleClient([point, point]), getEmojiRectangle(board, element));
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9lbW9qaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0RCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBcUIsRUFBRSxPQUErQjtJQUNwRixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsT0FBTztRQUNILENBQUM7UUFDRCxDQUFDO1FBQ0QsS0FBSztRQUNMLE1BQU07S0FDVCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFxQixFQUFFLE9BQStCO0lBQzNGLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxPQUFPO1FBQ0gsQ0FBQztRQUNELENBQUM7UUFDRCxLQUFLO1FBQ0wsTUFBTSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztLQUMzRCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxLQUFZLEVBQUUsRUFBRTtJQUM1RixPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsS0FBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3pJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tIFwiQHBsYWl0L2NvcmVcIjtcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgRW1vamlEYXRhIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhXCI7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tIFwiLi9ub2RlXCI7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tIFwiLi4vc3BhY2Uvbm9kZS1zcGFjZVwiO1xuaW1wb3J0IHsgZ2V0RW1vamlzV2lkdGhIZWlnaHQgfSBmcm9tIFwiLi4vc3BhY2UvZW1vamlcIjtcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSBcIi4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbW9qaVJlY3RhbmdsZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pOiBSZWN0YW5nbGVDbGllbnQge1xuICAgIGxldCB7IHgsIHkgfSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpKTtcbiAgICB4ID0geCArIE5vZGVTcGFjZS5nZXRFbW9qaUxlZnRTcGFjZShib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbW9qaUZvcmVpZ25SZWN0YW5nbGUoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBsZXQgeyB4LCB5IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSk7XG4gICAgeCA9IHggKyBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0RW1vamlzV2lkdGhIZWlnaHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQ6IGhlaWdodCArIE5vZGVTcGFjZS5nZXRFbW9qaVRvcFNwYWNlKGVsZW1lbnQpICogMlxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0hpdEVtb2ppcyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPiwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChSZWN0YW5nbGVDbGllbnQudG9SZWN0YW5nbGVDbGllbnQoW3BvaW50LCBwb2ludF0pLCBnZXRFbW9qaVJlY3RhbmdsZShib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudCkpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './node';
|
|
2
|
+
export * from './emoji';
|
|
3
|
+
export * from './topic';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbm9kZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vtb2ppJztcbmV4cG9ydCAqIGZyb20gJy4vdG9waWMnOyJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { distanceBetweenPointAndRectangle } from '@plait/core';
|
|
2
|
+
import { MindElement } from '../../interfaces/element';
|
|
3
|
+
import { NodeSpace } from '../space/node-space';
|
|
4
|
+
export function getRectangleByNode(node) {
|
|
5
|
+
const x = node.x + node.hGap;
|
|
6
|
+
let y = node.y + node.vGap;
|
|
7
|
+
const width = node.width - node.hGap * 2;
|
|
8
|
+
const height = node.height - node.vGap * 2;
|
|
9
|
+
return {
|
|
10
|
+
x,
|
|
11
|
+
y,
|
|
12
|
+
width,
|
|
13
|
+
height
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function getRectangleByElement(board, originPoint, element) {
|
|
17
|
+
const nodeRectangle = {
|
|
18
|
+
x: originPoint[0],
|
|
19
|
+
y: originPoint[1],
|
|
20
|
+
width: NodeSpace.getNodeWidth(board, element),
|
|
21
|
+
height: NodeSpace.getNodeHeight(board, element)
|
|
22
|
+
};
|
|
23
|
+
return nodeRectangle;
|
|
24
|
+
}
|
|
25
|
+
export function isHitMindElement(board, point, element) {
|
|
26
|
+
const node = MindElement.getNode(element);
|
|
27
|
+
if (node && distanceBetweenPointAndRectangle(point[0], point[1], getRectangleByNode(node)) === 0) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3Bvc2l0aW9uL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQyxnQ0FBZ0MsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFjO0lBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM3QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLE9BQU87UUFDSCxDQUFDO1FBQ0QsQ0FBQztRQUNELEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBcUIsRUFBRSxXQUFrQixFQUFFLE9BQW9CO0lBQ2pHLE1BQU0sYUFBYSxHQUFHO1FBQ2xCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLEtBQUssRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7UUFDN0MsTUFBTSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztLQUNsRCxDQUFDO0lBQ0YsT0FBTyxhQUFhLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFpQixFQUFFLEtBQVksRUFBRSxPQUFvQjtJQUNsRixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLElBQUksSUFBSSxJQUFJLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUYsT0FBTyxJQUFJLENBQUM7S0FDZjtTQUFNO1FBQ0gsT0FBTyxLQUFLLENBQUM7S0FDaEI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCwgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuLi9zcGFjZS9ub2RlLXNwYWNlJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjdGFuZ2xlQnlOb2RlKG5vZGU6IE1pbmROb2RlKTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBjb25zdCB4ID0gbm9kZS54ICsgbm9kZS5oR2FwO1xuICAgIGxldCB5ID0gbm9kZS55ICsgbm9kZS52R2FwO1xuICAgIGNvbnN0IHdpZHRoID0gbm9kZS53aWR0aCAtIG5vZGUuaEdhcCAqIDI7XG4gICAgY29uc3QgaGVpZ2h0ID0gbm9kZS5oZWlnaHQgLSBub2RlLnZHYXAgKiAyO1xuICAgIHJldHVybiB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50KGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgb3JpZ2luUG9pbnQ6IFBvaW50LCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgIGNvbnN0IG5vZGVSZWN0YW5nbGUgPSB7XG4gICAgICAgIHg6IG9yaWdpblBvaW50WzBdLFxuICAgICAgICB5OiBvcmlnaW5Qb2ludFsxXSxcbiAgICAgICAgd2lkdGg6IE5vZGVTcGFjZS5nZXROb2RlV2lkdGgoYm9hcmQsIGVsZW1lbnQpLFxuICAgICAgICBoZWlnaHQ6IE5vZGVTcGFjZS5nZXROb2RlSGVpZ2h0KGJvYXJkLCBlbGVtZW50KVxuICAgIH07XG4gICAgcmV0dXJuIG5vZGVSZWN0YW5nbGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hpdE1pbmRFbGVtZW50KGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludDogUG9pbnQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgY29uc3Qgbm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCk7XG4gICAgaWYgKG5vZGUgJiYgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUocG9pbnRbMF0sIHBvaW50WzFdLCBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSkpID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { NodeSpace } from '../space/node-space';
|
|
2
|
+
import { getRectangleByNode } from './node';
|
|
3
|
+
export function getTopicRectangleByNode(board, node) {
|
|
4
|
+
let nodeRectangle = getRectangleByNode(node);
|
|
5
|
+
return getTopicRectangleByElement(board, nodeRectangle, node.origin);
|
|
6
|
+
}
|
|
7
|
+
export function getTopicRectangleByElement(board, nodeRectangle, element) {
|
|
8
|
+
const x = nodeRectangle.x + NodeSpace.getTextLeftSpace(board, element);
|
|
9
|
+
const y = nodeRectangle.y + NodeSpace.getTextTopSpace(element);
|
|
10
|
+
const width = Math.ceil(element.width);
|
|
11
|
+
const height = Math.ceil(element.height);
|
|
12
|
+
return { height, width, x, y };
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi90b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzVDLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxLQUFxQixFQUFFLElBQWM7SUFDekUsSUFBSSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsT0FBTywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEtBQXFCLEVBQUUsYUFBOEIsRUFBRSxPQUFvQjtJQUNsSCxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkUsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuLi9zcGFjZS9ub2RlLXNwYWNlJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BpY1JlY3RhbmdsZUJ5Tm9kZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIG5vZGU6IE1pbmROb2RlKSB7XG4gICAgbGV0IG5vZGVSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG4gICAgcmV0dXJuIGdldFRvcGljUmVjdGFuZ2xlQnlFbGVtZW50KGJvYXJkLCBub2RlUmVjdGFuZ2xlLCBub2RlLm9yaWdpbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BpY1JlY3RhbmdsZUJ5RWxlbWVudChib2FyZDogUGxhaXRNaW5kQm9hcmQsIG5vZGVSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICBjb25zdCB4ID0gbm9kZVJlY3RhbmdsZS54ICsgTm9kZVNwYWNlLmdldFRleHRMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHkgPSBub2RlUmVjdGFuZ2xlLnkgKyBOb2RlU3BhY2UuZ2V0VGV4dFRvcFNwYWNlKGVsZW1lbnQpO1xuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5jZWlsKGVsZW1lbnQud2lkdGgpO1xuICAgIGNvbnN0IGhlaWdodCA9IE1hdGguY2VpbChlbGVtZW50LmhlaWdodCk7XG4gICAgcmV0dXJuIHsgaGVpZ2h0LCB3aWR0aCwgeCwgeSB9O1xufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PlaitMind } from '../../interfaces';
|
|
2
|
+
export function getEmojisWidthHeight(board, element) {
|
|
3
|
+
const options = board.getMindOptions();
|
|
4
|
+
const count = element.data.emojis.length;
|
|
5
|
+
const fontSize = getEmojiFontSize(element);
|
|
6
|
+
return {
|
|
7
|
+
width: fontSize * count + count * 2 * options.emojiPadding + (count - 1) * options.spaceBetweenEmojis,
|
|
8
|
+
height: element.height
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export function getEmojiFontSize(element) {
|
|
12
|
+
if (PlaitMind.isMind(element)) {
|
|
13
|
+
return 18 + 2;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return 14 + 2;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9zcGFjZS9lbW9qaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3JFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFxQixFQUFFLE9BQStCO0lBQ3ZGLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsT0FBTztRQUNILEtBQUssRUFBRSxRQUFRLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCO1FBQ3JHLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN6QixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUErQjtJQUM1RCxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ2pCO1NBQU07UUFDSCxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDakI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW1vamlEYXRhLCBNaW5kRWxlbWVudCwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPikge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBib2FyZC5nZXRNaW5kT3B0aW9ucygpO1xuICAgIGNvbnN0IGNvdW50ID0gZWxlbWVudC5kYXRhLmVtb2ppcy5sZW5ndGg7XG4gICAgY29uc3QgZm9udFNpemUgPSBnZXRFbW9qaUZvbnRTaXplKGVsZW1lbnQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiBmb250U2l6ZSAqIGNvdW50ICsgY291bnQgKiAyICogb3B0aW9ucy5lbW9qaVBhZGRpbmcgKyAoY291bnQgLSAxKSAqIG9wdGlvbnMuc3BhY2VCZXR3ZWVuRW1vamlzLFxuICAgICAgICBoZWlnaHQ6IGVsZW1lbnQuaGVpZ2h0XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVtb2ppRm9udFNpemUoZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPikge1xuICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiAxOCArIDI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDE0ICsgMjtcbiAgICB9XG59XG4iXX0=
|