@plait/mind 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base/base.drawer.d.ts +3 -3
- package/constants/index.d.ts +0 -1
- package/constants/node-style.d.ts +7 -3
- package/esm2020/base/base.drawer.mjs +1 -1
- package/esm2020/constants/index.mjs +1 -2
- package/esm2020/constants/node-style.mjs +5 -4
- package/esm2020/plugins/with-mind-hotkey.mjs +1 -1
- package/esm2020/plugins/with-mind.mjs +6 -12
- package/esm2020/plugins/with-node-dnd.mjs +3 -3
- package/esm2020/plugins/with-node-hover.mjs +3 -10
- package/esm2020/transforms/abstract-node.mjs +3 -3
- package/esm2020/transforms/node.mjs +8 -7
- package/esm2020/utils/clipboard.mjs +4 -4
- package/esm2020/utils/dnd/detector.mjs +3 -10
- package/esm2020/utils/draw/node-shape.mjs +3 -5
- package/esm2020/utils/mind.mjs +3 -3
- package/esm2020/utils/node/adjust-node.mjs +3 -3
- package/esm2020/utils/node-style/branch.mjs +3 -3
- package/esm2020/utils/node-style/shape.mjs +8 -1
- package/esm2020/utils/space/node-space.mjs +38 -4
- package/fesm2015/plait-mind.mjs +80 -62
- package/fesm2015/plait-mind.mjs.map +1 -1
- package/fesm2020/plait-mind.mjs +79 -61
- package/fesm2020/plait-mind.mjs.map +1 -1
- package/package.json +1 -1
- package/plugins/with-mind-hotkey.d.ts +2 -1
- package/plugins/with-mind.d.ts +1 -1
- package/transforms/index.d.ts +2 -2
- package/transforms/node.d.ts +3 -2
- package/utils/clipboard.d.ts +3 -2
- package/utils/mind.d.ts +3 -2
- package/utils/node/adjust-node.d.ts +2 -1
- package/utils/node-style/shape.d.ts +1 -0
- package/utils/space/node-space.d.ts +6 -0
- package/constants/node-rule.d.ts +0 -1
- package/esm2020/constants/node-rule.mjs +0 -2
package/fesm2020/plait-mind.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Directive, Input, Component, ChangeDetectionStrategy, NgModule, NgZone, HostListener } from '@angular/core';
|
|
3
3
|
import * as i2 from '@plait/core';
|
|
4
|
-
import { DefaultThemeColor, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, RectangleClient, PlaitElement, idCreator, isNullOrUndefined, Transforms, clearSelectedElement, addSelectedElement, PlaitNode, Path, PlaitBoard, depthFirstRecursion, drawLinearPath, drawBezierPath, createG, updateForeignObject, drawRoundRectangle, getRectangleByElements, getSelectedElements, NODE_TO_PARENT, distanceBetweenPointAndRectangle, createForeignObject, createText, PlaitPointerType, PlaitPluginElementComponent, NODE_TO_INDEX, PlaitModule, transformPoint, toPoint, getHitElements, distanceBetweenPointAndPoint, CLIP_BOARD_FORMAT_KEY,
|
|
4
|
+
import { DefaultThemeColor, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, RectangleClient, PlaitElement, idCreator, isNullOrUndefined, Transforms, clearSelectedElement, addSelectedElement, PlaitNode, Path, PlaitBoard, depthFirstRecursion, getIsRecursionFunc, drawLinearPath, drawBezierPath, createG, updateForeignObject, drawRoundRectangle, getRectangleByElements, getSelectedElements, NODE_TO_PARENT, distanceBetweenPointAndRectangle, createForeignObject, createText, PlaitPointerType, PlaitPluginElementComponent, NODE_TO_INDEX, PlaitModule, isMainPointer, transformPoint, toPoint, getHitElements, distanceBetweenPointAndPoint, CLIP_BOARD_FORMAT_KEY, BOARD_TO_HOST, PlaitPluginKey, throttleRAF, BoardTransforms, removeSelectedElement, PlaitHistoryBoard, hotkeys } from '@plait/core';
|
|
5
5
|
import { MindLayoutType, isIndentedLayout, AbstractNode, getNonAbstractChildren, isStandardLayout, isLeftLayout, isRightLayout, isVerticalLogicLayout, isHorizontalLogicLayout, isTopLayout, isBottomLayout, isHorizontalLayout, getCorrectStartEnd, getAbstractLayout, ConnectingPosition, GlobalLayout } from '@plait/layouts';
|
|
6
|
-
import { TEXT_DEFAULT_HEIGHT, buildText, getTextSize, TextManage, ExitOrigin, TextModule, getTextFromClipboard } from '@plait/text';
|
|
6
|
+
import { PlaitMarkEditor, MarkTypes, DEFAULT_FONT_SIZE, TEXT_DEFAULT_HEIGHT, buildText, getTextSize, TextManage, ExitOrigin, TextModule, getTextFromClipboard } from '@plait/text';
|
|
7
7
|
import { fromEvent, Subject } from 'rxjs';
|
|
8
8
|
import { Node, Path as Path$1 } from 'slate';
|
|
9
9
|
import { isKeyHotkey } from 'is-hotkey';
|
|
@@ -210,6 +210,14 @@ function getEmojiFontSize(element) {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
const TOPIC_COLOR = '#333';
|
|
214
|
+
const TOPIC_FONT_SIZE = 14;
|
|
215
|
+
const ROOT_TOPIC_FONT_SIZE = 18;
|
|
216
|
+
const ROOT_TOPIC_HEIGHT = 25;
|
|
217
|
+
const TOPIC_DEFAULT_MAX_WORD_COUNT = 34;
|
|
218
|
+
const DEFAULT_FONT_FAMILY = 'PingFangSC-Regular, "PingFang SC"';
|
|
219
|
+
const BRANCH_FONT_FAMILY = 'PingFangSC-Medium, "PingFang SC"';
|
|
220
|
+
|
|
213
221
|
const NodeDefaultSpace = {
|
|
214
222
|
horizontal: {
|
|
215
223
|
nodeAndText: BASE * 3,
|
|
@@ -248,15 +256,14 @@ const getSpaceEmojiAndText = (element) => {
|
|
|
248
256
|
const NodeSpace = {
|
|
249
257
|
getNodeWidth(board, element) {
|
|
250
258
|
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
251
|
-
const imageWidth = MindElement.hasImage(element) ? element.data.image?.width : 0;
|
|
252
259
|
if (MindElement.hasEmojis(element)) {
|
|
253
260
|
return (NodeSpace.getEmojiLeftSpace(board, element) +
|
|
254
261
|
getEmojisWidthHeight(board, element).width +
|
|
255
262
|
getSpaceEmojiAndText(element) +
|
|
256
|
-
|
|
263
|
+
NodeSpace.getNodeResizableWidth(board, element) +
|
|
257
264
|
nodeAndText);
|
|
258
265
|
}
|
|
259
|
-
return nodeAndText +
|
|
266
|
+
return nodeAndText + NodeSpace.getNodeResizableWidth(board, element) + nodeAndText;
|
|
260
267
|
},
|
|
261
268
|
getNodeHeight(board, element) {
|
|
262
269
|
const nodeAndText = getVerticalSpaceBetweenNodeAndText(element);
|
|
@@ -269,6 +276,26 @@ const NodeSpace = {
|
|
|
269
276
|
}
|
|
270
277
|
return nodeAndText + element.height + nodeAndText;
|
|
271
278
|
},
|
|
279
|
+
getNodeResizableWidth(board, element) {
|
|
280
|
+
const imageWidth = MindElement.hasImage(element) ? element.data.image?.width : 0;
|
|
281
|
+
return Math.max(element.width, imageWidth);
|
|
282
|
+
},
|
|
283
|
+
getNodeResizableMinWidth(board, element) {
|
|
284
|
+
const minTopicWidth = NodeSpace.getNodeTopicMinWidth(board, element);
|
|
285
|
+
if (MindElement.hasImage(element) && element.data.image.width > minTopicWidth) {
|
|
286
|
+
return element.data.image.width;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
return minTopicWidth;
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
getNodeTopicMinWidth(board, element, isRoot = false) {
|
|
293
|
+
const defaultFontSize = getNodeDefaultFontSize(isRoot);
|
|
294
|
+
const editor = MindElement.getTextEditor(element);
|
|
295
|
+
const marks = PlaitMarkEditor.getMarks(editor);
|
|
296
|
+
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
297
|
+
return fontSize;
|
|
298
|
+
},
|
|
272
299
|
getTextLeftSpace(board, element) {
|
|
273
300
|
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
274
301
|
if (MindElement.hasEmojis(element)) {
|
|
@@ -300,6 +327,19 @@ const NodeSpace = {
|
|
|
300
327
|
return nodeAndText;
|
|
301
328
|
}
|
|
302
329
|
};
|
|
330
|
+
const getFontSizeBySlateElement = (text) => {
|
|
331
|
+
const defaultFontSize = DEFAULT_FONT_SIZE;
|
|
332
|
+
if (typeof text === 'string') {
|
|
333
|
+
return defaultFontSize;
|
|
334
|
+
}
|
|
335
|
+
const marks = PlaitMarkEditor.getMarksByElement(text);
|
|
336
|
+
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
337
|
+
return fontSize;
|
|
338
|
+
};
|
|
339
|
+
const getNodeDefaultFontSize = (isRoot = false) => {
|
|
340
|
+
const defaultFontSize = isRoot ? ROOT_TOPIC_FONT_SIZE : DEFAULT_FONT_SIZE;
|
|
341
|
+
return defaultFontSize;
|
|
342
|
+
};
|
|
303
343
|
|
|
304
344
|
function getEmojiRectangle(board, element) {
|
|
305
345
|
let { x, y } = getRectangleByNode(MindElement.getNode(element));
|
|
@@ -359,21 +399,11 @@ const isHitImage = (board, element, range) => {
|
|
|
359
399
|
return RectangleClient.isHit(RectangleClient.toRectangleClient([range.anchor, range.focus]), client);
|
|
360
400
|
};
|
|
361
401
|
|
|
362
|
-
const NODE_MIN_WIDTH = 18;
|
|
363
|
-
|
|
364
402
|
function editTopic(element) {
|
|
365
403
|
const component = PlaitElement.getComponent(element);
|
|
366
404
|
component?.editTopic();
|
|
367
405
|
}
|
|
368
406
|
|
|
369
|
-
const TOPIC_COLOR = '#333';
|
|
370
|
-
const TOPIC_FONT_SIZE = 14;
|
|
371
|
-
const ROOT_TOPIC_FONT_SIZE = 18;
|
|
372
|
-
const ROOT_TOPIC_HEIGHT = 25;
|
|
373
|
-
const TOPIC_DEFAULT_MAX_WORD_COUNT = 34;
|
|
374
|
-
const DEFAULT_FONT_FAMILY = 'PingFangSC-Regular, "PingFang SC"';
|
|
375
|
-
const BRANCH_FONT_FAMILY = 'PingFangSC-Medium, "PingFang SC"';
|
|
376
|
-
|
|
377
407
|
const createEmptyMind = (point) => {
|
|
378
408
|
const element = createMindElement('思维导图', 72, ROOT_TOPIC_HEIGHT, { layout: MindLayoutType.right });
|
|
379
409
|
element.isRoot = true;
|
|
@@ -483,7 +513,7 @@ const insertMindElement = (board, inheritNode, path) => {
|
|
|
483
513
|
});
|
|
484
514
|
delete newNode.layout;
|
|
485
515
|
}
|
|
486
|
-
const newElement = createMindElement('',
|
|
516
|
+
const newElement = createMindElement('', getNodeDefaultFontSize(), TEXT_DEFAULT_HEIGHT, newNode);
|
|
487
517
|
Transforms.insertNode(board, newElement, path);
|
|
488
518
|
clearSelectedElement(board);
|
|
489
519
|
addSelectedElement(board, newElement);
|
|
@@ -648,7 +678,7 @@ const adjustNodeToRoot = (board, node) => {
|
|
|
648
678
|
fontSize: ROOT_TOPIC_FONT_SIZE,
|
|
649
679
|
fontFamily: BRANCH_FONT_FAMILY
|
|
650
680
|
});
|
|
651
|
-
newElement.width = Math.max(width,
|
|
681
|
+
newElement.width = Math.max(width, getNodeDefaultFontSize(true));
|
|
652
682
|
newElement.height = height;
|
|
653
683
|
return {
|
|
654
684
|
...newElement,
|
|
@@ -659,15 +689,16 @@ const adjustNodeToRoot = (board, node) => {
|
|
|
659
689
|
};
|
|
660
690
|
|
|
661
691
|
const DefaultAbstractNodeStyle = {
|
|
662
|
-
|
|
663
|
-
branchWidth: 2,
|
|
692
|
+
branch: { color: GRAY_COLOR, width: 2 },
|
|
664
693
|
shape: {
|
|
665
694
|
strokeColor: GRAY_COLOR,
|
|
666
695
|
strokeWidth: 2
|
|
667
696
|
}
|
|
668
697
|
};
|
|
669
698
|
const DefaultNodeStyle = {
|
|
670
|
-
|
|
699
|
+
branch: {
|
|
700
|
+
width: 3
|
|
701
|
+
},
|
|
671
702
|
shape: {
|
|
672
703
|
rectangleRadius: 4,
|
|
673
704
|
strokeWidth: 3,
|
|
@@ -868,13 +899,13 @@ const getAbstractBranchWidth = (board, element) => {
|
|
|
868
899
|
if (!isNullOrUndefined(element.branchWidth)) {
|
|
869
900
|
return element.branchWidth;
|
|
870
901
|
}
|
|
871
|
-
return DefaultAbstractNodeStyle.
|
|
902
|
+
return DefaultAbstractNodeStyle.branch.width;
|
|
872
903
|
};
|
|
873
904
|
const getAbstractBranchColor = (board, element) => {
|
|
874
905
|
if (element.branchColor) {
|
|
875
906
|
return element.branchColor;
|
|
876
907
|
}
|
|
877
|
-
return DefaultAbstractNodeStyle.
|
|
908
|
+
return DefaultAbstractNodeStyle.branch.color;
|
|
878
909
|
};
|
|
879
910
|
const getNextBranchColor = (board, root) => {
|
|
880
911
|
const index = root.children.length;
|
|
@@ -916,6 +947,13 @@ const getStrokeWidthByElement = (board, element) => {
|
|
|
916
947
|
(AbstractNode.isAbstract(element) ? DefaultAbstractNodeStyle.shape.strokeWidth : DefaultNodeStyle.shape.strokeWidth);
|
|
917
948
|
return strokeWidth;
|
|
918
949
|
};
|
|
950
|
+
const getFillByElement = (board, element) => {
|
|
951
|
+
if (element.fill) {
|
|
952
|
+
return element.fill;
|
|
953
|
+
}
|
|
954
|
+
const defaultRootFill = getMindThemeColor(board).rootFill;
|
|
955
|
+
return element.isRoot ? defaultRootFill : DefaultNodeStyle.shape.fill;
|
|
956
|
+
};
|
|
919
957
|
const getShapeByElement = (board, element) => {
|
|
920
958
|
const shape = getAvailableProperty(board, element, 'shape');
|
|
921
959
|
return shape || MindElementShape.roundRectangle;
|
|
@@ -1061,14 +1099,7 @@ const detectDropTarget = (board, detectPoint, dropTarget, activeElements) => {
|
|
|
1061
1099
|
if (detectResult && isValid) {
|
|
1062
1100
|
dropTarget = { target: node.origin, detectResult: detectResult[0] };
|
|
1063
1101
|
}
|
|
1064
|
-
},
|
|
1065
|
-
if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
|
|
1066
|
-
return true;
|
|
1067
|
-
}
|
|
1068
|
-
else {
|
|
1069
|
-
return false;
|
|
1070
|
-
}
|
|
1071
|
-
});
|
|
1102
|
+
}, getIsRecursionFunc(board));
|
|
1072
1103
|
return dropTarget;
|
|
1073
1104
|
};
|
|
1074
1105
|
const directionDetector = (targetNode, centerPoint) => {
|
|
@@ -2043,8 +2074,7 @@ function drawRoundRectangleByNode(board, node) {
|
|
|
2043
2074
|
return drawRoundRectangleByElement(board, rectangle, node.origin);
|
|
2044
2075
|
}
|
|
2045
2076
|
function drawRoundRectangleByElement(board, nodeRectangle, element) {
|
|
2046
|
-
const
|
|
2047
|
-
const fill = element.fill ? element.fill : element.isRoot ? defaultRootFill : DefaultNodeStyle.shape.fill;
|
|
2077
|
+
const fill = getFillByElement(board, element);
|
|
2048
2078
|
const stroke = getStrokeByMindElement(board, element);
|
|
2049
2079
|
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
2050
2080
|
const nodeG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), nodeRectangle.x, nodeRectangle.y, nodeRectangle.x + nodeRectangle.width, nodeRectangle.y + nodeRectangle.height, {
|
|
@@ -2225,8 +2255,8 @@ const setAbstractByElements = (board, groupParent, group) => {
|
|
|
2225
2255
|
};
|
|
2226
2256
|
const insertAbstractNode = (board, path, start, end) => {
|
|
2227
2257
|
const mindElement = createMindElement('概要', 28, 20, {
|
|
2228
|
-
strokeWidth: DefaultAbstractNodeStyle.
|
|
2229
|
-
branchWidth: DefaultAbstractNodeStyle.
|
|
2258
|
+
strokeWidth: DefaultAbstractNodeStyle.branch.width,
|
|
2259
|
+
branchWidth: DefaultAbstractNodeStyle.branch.width
|
|
2230
2260
|
});
|
|
2231
2261
|
mindElement.start = start;
|
|
2232
2262
|
mindElement.end = end;
|
|
@@ -2258,24 +2288,25 @@ const correctLogicLayoutNode = (board, layout, path) => {
|
|
|
2258
2288
|
}
|
|
2259
2289
|
};
|
|
2260
2290
|
|
|
2261
|
-
const normalizeWidthAndHeight = (board, width, height) => {
|
|
2262
|
-
const
|
|
2291
|
+
const normalizeWidthAndHeight = (board, element, width, height) => {
|
|
2292
|
+
const minWidth = NodeSpace.getNodeTopicMinWidth(board, element, element.isRoot);
|
|
2293
|
+
const newWidth = width < minWidth * board.viewport.zoom ? minWidth : width / board.viewport.zoom;
|
|
2263
2294
|
const newHeight = height / board.viewport.zoom;
|
|
2264
2295
|
return { width: newWidth, height: newHeight };
|
|
2265
2296
|
};
|
|
2266
2297
|
const setTopic = (board, element, topic, width, height) => {
|
|
2267
2298
|
const newElement = {
|
|
2268
2299
|
data: { ...element.data, topic },
|
|
2269
|
-
...normalizeWidthAndHeight(board, width, height)
|
|
2300
|
+
...normalizeWidthAndHeight(board, element, width, height)
|
|
2270
2301
|
};
|
|
2271
2302
|
const path = PlaitBoard.findPath(board, element);
|
|
2272
2303
|
Transforms.setNode(board, newElement, path);
|
|
2273
2304
|
};
|
|
2274
2305
|
const setTopicSize = (board, element, width, height) => {
|
|
2275
2306
|
const newElement = {
|
|
2276
|
-
...normalizeWidthAndHeight(board, width, height)
|
|
2307
|
+
...normalizeWidthAndHeight(board, element, width, height)
|
|
2277
2308
|
};
|
|
2278
|
-
if (element.width !== newElement.width || element.height !== newElement.height) {
|
|
2309
|
+
if (Math.floor(element.width) !== Math.floor(newElement.width) || Math.floor(element.height) !== Math.floor(newElement.height)) {
|
|
2279
2310
|
const path = PlaitBoard.findPath(board, element);
|
|
2280
2311
|
Transforms.setNode(board, newElement, path);
|
|
2281
2312
|
}
|
|
@@ -3165,7 +3196,7 @@ const withNodeDnd = (board) => {
|
|
|
3165
3196
|
if (PlaitBoard.isReadonly(board) ||
|
|
3166
3197
|
PlaitBoard.hasBeenTextEditing(board) ||
|
|
3167
3198
|
!PlaitBoard.isPointer(board, PlaitPointerType.selection) ||
|
|
3168
|
-
event
|
|
3199
|
+
!isMainPointer(event)) {
|
|
3169
3200
|
mousedown(event);
|
|
3170
3201
|
return;
|
|
3171
3202
|
}
|
|
@@ -3398,7 +3429,7 @@ const insertClipboardData = (board, elements, targetPoint) => {
|
|
|
3398
3429
|
newElement = adjustRootToNode(board, newElement);
|
|
3399
3430
|
const styles = PlaitMind.isMind(targetParent) ? { fontFamily: BRANCH_FONT_FAMILY } : { fontFamily: DEFAULT_FONT_FAMILY };
|
|
3400
3431
|
const { width, height } = getTextSize(board, newElement.data.topic, TOPIC_DEFAULT_MAX_WORD_COUNT, styles);
|
|
3401
|
-
newElement.width = Math.max(width,
|
|
3432
|
+
newElement.width = Math.max(width, getNodeDefaultFontSize());
|
|
3402
3433
|
newElement.height = height;
|
|
3403
3434
|
}
|
|
3404
3435
|
// handle abstract start and end
|
|
@@ -3428,7 +3459,7 @@ const insertClipboardData = (board, elements, targetPoint) => {
|
|
|
3428
3459
|
const insertClipboardText = (board, targetParent, text) => {
|
|
3429
3460
|
const styles = PlaitMind.isMind(targetParent) ? { fontFamily: BRANCH_FONT_FAMILY } : { fontFamily: DEFAULT_FONT_FAMILY };
|
|
3430
3461
|
const { width, height } = getTextSize(board, text, TOPIC_DEFAULT_MAX_WORD_COUNT, styles);
|
|
3431
|
-
const newElement = createMindElement(text, width, height, {});
|
|
3462
|
+
const newElement = createMindElement(text, Math.max(width, getFontSizeBySlateElement(text)), height, {});
|
|
3432
3463
|
Transforms.insertNode(board, newElement, findNewChildNodePath(board, targetParent));
|
|
3433
3464
|
return;
|
|
3434
3465
|
};
|
|
@@ -3776,14 +3807,7 @@ const withNodeHover = (board) => {
|
|
|
3776
3807
|
if (isHitElement) {
|
|
3777
3808
|
target = element;
|
|
3778
3809
|
}
|
|
3779
|
-
},
|
|
3780
|
-
if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
|
|
3781
|
-
return true;
|
|
3782
|
-
}
|
|
3783
|
-
else {
|
|
3784
|
-
return false;
|
|
3785
|
-
}
|
|
3786
|
-
}, true);
|
|
3810
|
+
}, getIsRecursionFunc(board), true);
|
|
3787
3811
|
if (hoveredMindElement && target && hoveredMindElement === target) {
|
|
3788
3812
|
return;
|
|
3789
3813
|
}
|
|
@@ -3866,8 +3890,9 @@ const withMindImage = (board) => {
|
|
|
3866
3890
|
return board;
|
|
3867
3891
|
};
|
|
3868
3892
|
|
|
3869
|
-
const withMind = (
|
|
3870
|
-
const
|
|
3893
|
+
const withMind = (baseBoard) => {
|
|
3894
|
+
const board = baseBoard;
|
|
3895
|
+
const { drawElement, dblclick, insertFragment, setFragment, deleteFragment, isHitSelection, getRectangle, isMovable, isRecursion } = board;
|
|
3871
3896
|
board.drawElement = (context) => {
|
|
3872
3897
|
if (PlaitMind.isMind(context.element)) {
|
|
3873
3898
|
return PlaitMindComponent;
|
|
@@ -3924,14 +3949,7 @@ const withMind = (board) => {
|
|
|
3924
3949
|
if (!PlaitBoard.hasBeenTextEditing(board) && isHitMindElement(board, point, node)) {
|
|
3925
3950
|
editTopic(node);
|
|
3926
3951
|
}
|
|
3927
|
-
},
|
|
3928
|
-
if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
|
|
3929
|
-
return true;
|
|
3930
|
-
}
|
|
3931
|
-
else {
|
|
3932
|
-
return false;
|
|
3933
|
-
}
|
|
3934
|
-
});
|
|
3952
|
+
}, getIsRecursionFunc(board));
|
|
3935
3953
|
});
|
|
3936
3954
|
if (PlaitBoard.hasBeenTextEditing(board)) {
|
|
3937
3955
|
return;
|
|
@@ -4031,5 +4049,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
4031
4049
|
* Generated bundle index. Do not edit.
|
|
4032
4050
|
*/
|
|
4033
4051
|
|
|
4034
|
-
export { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_HANDLE_MASK_WIDTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET, AbstractHandlePosition, AbstractResizeState, BASE, BRANCH_FONT_FAMILY, BRANCH_WIDTH, BaseDrawer, BranchShape, DEFAULT_FONT_FAMILY, DefaultAbstractNodeStyle, DefaultNodeStyle, ELEMENT_TO_NODE, EXTEND_DIAMETER, EXTEND_OFFSET, GRAY_COLOR, INHERIT_ATTRIBUTE_KEYS, IS_DRAGGING, LayoutDirection, LayoutDirectionsMap, MindColorfulThemeColor, MindDarkThemeColor, MindDefaultThemeColor, MindElement, MindElementShape, MindEmojiBaseComponent, MindImageBaseComponent, MindModule, MindNode, MindNodeComponent, MindPointerType, MindQueries, MindRetroThemeColor, MindSoftThemeColor, MindStarryThemeColor, MindThemeColor, MindThemeColors, MindTransforms,
|
|
4052
|
+
export { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_HANDLE_MASK_WIDTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET, AbstractHandlePosition, AbstractResizeState, BASE, BRANCH_FONT_FAMILY, BRANCH_WIDTH, BaseDrawer, BranchShape, DEFAULT_FONT_FAMILY, DefaultAbstractNodeStyle, DefaultNodeStyle, ELEMENT_TO_NODE, EXTEND_DIAMETER, EXTEND_OFFSET, GRAY_COLOR, INHERIT_ATTRIBUTE_KEYS, IS_DRAGGING, LayoutDirection, LayoutDirectionsMap, MindColorfulThemeColor, MindDarkThemeColor, MindDefaultThemeColor, MindElement, MindElementShape, MindEmojiBaseComponent, MindImageBaseComponent, MindModule, MindNode, MindNodeComponent, MindPointerType, MindQueries, MindRetroThemeColor, MindSoftThemeColor, MindStarryThemeColor, MindThemeColor, MindThemeColors, MindTransforms, PRIMARY_COLOR, PlaitMind, PlaitMindComponent, QUICK_INSERT_CIRCLE_COLOR, QUICK_INSERT_CIRCLE_OFFSET, QUICK_INSERT_INNER_CROSS_COLOR, ROOT_TOPIC_FONT_SIZE, ROOT_TOPIC_HEIGHT, STROKE_WIDTH, TOPIC_COLOR, TOPIC_DEFAULT_MAX_WORD_COUNT, TOPIC_FONT_SIZE, TRANSPARENT, WithMindPluginKey, addActiveOnDragOrigin, adjustAbstractToNode, adjustNodeToRoot, adjustRootToNode, canSetAbstract, copyNewNode, correctLayoutByDirection, createDefaultMind, createEmptyMind, createMindElement, deleteElementHandleAbstract, deleteElementsHandleRightNodeCount, detectDropTarget, directionCorrector, directionDetector, divideElementByParent, drawFakeDragNode, drawFakeDropNode, editTopic, extractNodesText, findLastChild, findLocationLeftIndex, getAbstractBranchColor, getAbstractBranchWidth, getAbstractHandleRectangle, getAllowedDirection, getAvailableSubLayoutsByLayoutDirections, getBehindAbstracts, getBranchColorByMindElement, getBranchDirectionsByLayouts, getBranchShapeByMindElement, getBranchWidthByMindElement, getChildrenCount, getCorrespondingAbstract, getDefaultBranchColor, getDefaultBranchColorByIndex, getDefaultLayout, getEmojiForeignRectangle, getEmojiRectangle, getFillByElement, getFirstLevelElement, getHitAbstractHandle, getImageForeignRectangle, getInCorrectLayoutDirection, getLayoutDirection$1 as getLayoutDirection, getLayoutReverseDirection, getLocationScope, getMindThemeColor, getNextBranchColor, getOverallAbstracts, getPathByDropTarget, getRectangleByElement, getRectangleByNode, getRectangleByResizingLocation, getRelativeStartEndByAbstractRef, getRootLayout, getShapeByElement, getStrokeByMindElement, getStrokeWidthByElement, getTopicRectangleByElement, getTopicRectangleByNode, getValidAbstractRefs, handleTouchedAbstract, hasAfterDraw, hasPreviousOrNextOfDropPath, insertElementHandleAbstract, insertElementHandleRightNodeCount, insertMindElement, isChildElement, isChildOfAbstract, isChildRight, isChildUp, isCorrectLayout, isDragging, isDropStandardRight, isHitEmojis, isHitImage, isHitMindElement, isInRightBranchOfStandardLayout, isMixedLayout, isSetAbstract, isValidTarget, isVirtualKey, removeActiveOnDragOrigin, separateChildren, setIsDragging, withMind, withMindExtend };
|
|
4035
4053
|
//# sourceMappingURL=plait-mind.mjs.map
|