@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
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { DEFAULT_FONT_SIZE, MarkTypes, PlaitMarkEditor } from '@plait/text';
|
|
1
2
|
import { BASE } from '../../constants/default';
|
|
2
3
|
import { PlaitMind } from '../../interfaces/element';
|
|
3
4
|
import { MindElement } from '../../interfaces/element';
|
|
4
5
|
import { WithMindPluginKey } from '../../public-api';
|
|
5
6
|
import { getEmojisWidthHeight } from './emoji';
|
|
7
|
+
import { ROOT_TOPIC_FONT_SIZE } from '../../constants/node-topic-style';
|
|
6
8
|
const NodeDefaultSpace = {
|
|
7
9
|
horizontal: {
|
|
8
10
|
nodeAndText: BASE * 3,
|
|
@@ -41,15 +43,14 @@ const getSpaceEmojiAndText = (element) => {
|
|
|
41
43
|
export const NodeSpace = {
|
|
42
44
|
getNodeWidth(board, element) {
|
|
43
45
|
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
44
|
-
const imageWidth = MindElement.hasImage(element) ? element.data.image?.width : 0;
|
|
45
46
|
if (MindElement.hasEmojis(element)) {
|
|
46
47
|
return (NodeSpace.getEmojiLeftSpace(board, element) +
|
|
47
48
|
getEmojisWidthHeight(board, element).width +
|
|
48
49
|
getSpaceEmojiAndText(element) +
|
|
49
|
-
|
|
50
|
+
NodeSpace.getNodeResizableWidth(board, element) +
|
|
50
51
|
nodeAndText);
|
|
51
52
|
}
|
|
52
|
-
return nodeAndText +
|
|
53
|
+
return nodeAndText + NodeSpace.getNodeResizableWidth(board, element) + nodeAndText;
|
|
53
54
|
},
|
|
54
55
|
getNodeHeight(board, element) {
|
|
55
56
|
const nodeAndText = getVerticalSpaceBetweenNodeAndText(element);
|
|
@@ -62,6 +63,26 @@ export const NodeSpace = {
|
|
|
62
63
|
}
|
|
63
64
|
return nodeAndText + element.height + nodeAndText;
|
|
64
65
|
},
|
|
66
|
+
getNodeResizableWidth(board, element) {
|
|
67
|
+
const imageWidth = MindElement.hasImage(element) ? element.data.image?.width : 0;
|
|
68
|
+
return Math.max(element.width, imageWidth);
|
|
69
|
+
},
|
|
70
|
+
getNodeResizableMinWidth(board, element) {
|
|
71
|
+
const minTopicWidth = NodeSpace.getNodeTopicMinWidth(board, element);
|
|
72
|
+
if (MindElement.hasImage(element) && element.data.image.width > minTopicWidth) {
|
|
73
|
+
return element.data.image.width;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return minTopicWidth;
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
getNodeTopicMinWidth(board, element, isRoot = false) {
|
|
80
|
+
const defaultFontSize = getNodeDefaultFontSize(isRoot);
|
|
81
|
+
const editor = MindElement.getTextEditor(element);
|
|
82
|
+
const marks = PlaitMarkEditor.getMarks(editor);
|
|
83
|
+
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
84
|
+
return fontSize;
|
|
85
|
+
},
|
|
65
86
|
getTextLeftSpace(board, element) {
|
|
66
87
|
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
67
88
|
if (MindElement.hasEmojis(element)) {
|
|
@@ -93,4 +114,17 @@ export const NodeSpace = {
|
|
|
93
114
|
return nodeAndText;
|
|
94
115
|
}
|
|
95
116
|
};
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3JCLFlBQVksRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMzQjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJLEdBQUcsR0FBRztRQUN2QixZQUFZLEVBQUUsSUFBSTtRQUNsQixZQUFZLEVBQUUsSUFBSSxHQUFHLEdBQUc7S0FDM0I7Q0FDSixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQixVQUFVLEVBQUU7UUFDUixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDckIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDO0tBQ3pCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO0tBQ3hCO0NBQ0osQ0FBQztBQUVGLE1BQU0sb0NBQW9DLEdBQUcsQ0FBQyxLQUFxQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUN6RixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMs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QUFDLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25JO2FBQU07WUFDSCxPQUFPLFdBQVcsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFDRCxlQUFlLENBQUMsT0FBb0I7UUFDaEMsTUFBTSxXQUFXLEdBQUcsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQy9CLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztTQUN0SDthQUFNO1lBQ0gsT0FBTyxXQUFXLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBb0I7UUFDakMsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQ2xELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxLQUFxQixFQUFFLE9BQStCO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBa0IsaUJBQWlCLENBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekUsT0FBTyxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUM5QyxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBb0I7UUFDakMsTUFBTSxXQUFXLEdBQUcsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCQVNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVtb2ppRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFdpdGhNaW5kT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb3B0aW9ucyc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IFdpdGhNaW5kUGx1Z2luS2V5IH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBnZXRFbW9qaXNXaWR0aEhlaWdodCB9IGZyb20gJy4vZW1vamknO1xuXG5jb25zdCBOb2RlRGVmYXVsdFNwYWNlID0ge1xuICAgIGhvcml6b250YWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UgKiAzLFxuICAgICAgICBlbW9qaUFuZFRleHQ6IEJBU0UgKiAxLjVcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMS41LFxuICAgICAgICBub2RlQW5kSW1hZ2U6IEJBU0UsXG4gICAgICAgIGltYWdlQW5kVGV4dDogQkFTRSAqIDEuNVxuICAgIH1cbn07XG5cbmNvbnN0IFJvb3REZWZhdWx0U3BhY2UgPSB7XG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDQsXG4gICAgICAgIGVtb2ppQW5kVGV4dDogQkFTRSAqIDJcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMlxuICAgIH1cbn07XG5cbmNvbnN0IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dDtcbiAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG59O1xuXG5jb25zdCBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRUZXh0O1xuICAgIHJldHVybiBub2RlQW5kVGV4dDtcbn07XG5cbmNvbnN0IGdldFNwYWNlRW1vamlBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBlbW9qaUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS5ob3Jpem9udGFsLmVtb2ppQW5kVGV4dDtcbiAgICByZXR1cm4gZW1vamlBbmRUZXh0O1xufTtcblxuZXhwb3J0IGNvbnN0IE5vZGVTcGFjZSA9IHtcbiAgICBnZXROb2RlV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGltYWdlV2lkdGggPSBNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSA/IGVsZW1lbnQuZGF0YS5pbWFnZT8ud2lkdGggOiAwO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIE5vZGVTcGFjZS5nZXRFbW9qaUxlZnRTcGFjZShib2FyZCwgZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkLCBlbGVtZW50KS53aWR0aCArXG4gICAgICAgICAgICAgICAgZ2V0U3BhY2VFbW9qaUFuZFRleHQoZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIE1hdGgubWF4KGVsZW1lbnQud2lkdGgsIGltYWdlV2lkdGgpICtcbiAgICAgICAgICAgICAgICBub2RlQW5kVGV4dFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBNYXRoLm1heChlbGVtZW50LndpZHRoLCBpbWFnZVdpZHRoKSArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0Tm9kZUhlaWdodChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIE5vZGVEZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZEltYWdlICtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmRhdGEuaW1hZ2UuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLmltYWdlQW5kVGV4dCArXG4gICAgICAgICAgICAgICAgZWxlbWVudC5oZWlnaHQgK1xuICAgICAgICAgICAgICAgIG5vZGVBbmRUZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCArIGVsZW1lbnQuaGVpZ2h0ICsgbm9kZUFuZFRleHQ7XG4gICAgfSxcbiAgICBnZXRUZXh0TGVmdFNwYWNlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRIb3Jpem9udGFsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldEVtb2ppTGVmdFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkLCBlbGVtZW50KS53aWR0aCArIGdldFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRUZXh0VG9wU3BhY2UoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LmRhdGEuaW1hZ2UuaGVpZ2h0ICsgTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kSW1hZ2UgKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLmltYWdlQW5kVGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0SW1hZ2VUb3BTcGFjZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kSW1hZ2U7XG4gICAgfSxcbiAgICBnZXRFbW9qaUxlZnRTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGJvYXJkLmdldFBsdWdpbk9wdGlvbnM8V2l0aE1pbmRPcHRpb25zPihXaXRoTWluZFBsdWdpbktleSk7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0IC0gb3B0aW9ucy5lbW9qaVBhZGRpbmc7XG4gICAgfSxcbiAgICBnZXRFbW9qaVRvcFNwYWNlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgIH1cbn07XG4iXX0=
|
|
117
|
+
export const getFontSizeBySlateElement = (text) => {
|
|
118
|
+
const defaultFontSize = DEFAULT_FONT_SIZE;
|
|
119
|
+
if (typeof text === 'string') {
|
|
120
|
+
return defaultFontSize;
|
|
121
|
+
}
|
|
122
|
+
const marks = PlaitMarkEditor.getMarksByElement(text);
|
|
123
|
+
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
124
|
+
return fontSize;
|
|
125
|
+
};
|
|
126
|
+
export const getNodeDefaultFontSize = (isRoot = false) => {
|
|
127
|
+
const defaultFontSize = isRoot ? ROOT_TOPIC_FONT_SIZE : DEFAULT_FONT_SIZE;
|
|
128
|
+
return defaultFontSize;
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXhFLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3JCLFlBQVksRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMzQjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJLEdBQUcsR0FBRztRQUN2QixZQUFZLEVBQUUsSUFBSTtRQUNsQixZQUFZLEVBQUUsSUFBSSxHQUFHLEdBQUc7S0FDM0I7Q0FDSixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQixVQUFVLEVBQUU7UUFDUixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDckIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDO0tBQ3pCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO0tBQ3hCO0NBQ0osQ0FBQztBQUVGLE1BQU0sb0NBQW9DLEdBQUcsQ0FBQyxLQUFxQixFQUFFLE9BQW9C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QUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBWSxJQUFJLGVBQWUsQ0FBQztJQUMxRSxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsRUFBRTtJQUNyRCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUMxRSxPQUFPLGVBQWUsQ0FBQztBQUMzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX0ZPTlRfU0laRSwgTWFya1R5cGVzLCBQbGFpdE1hcmtFZGl0b3IgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBCQVNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVtb2ppRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFdpdGhNaW5kT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb3B0aW9ucyc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IFdpdGhNaW5kUGx1Z2luS2V5IH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBnZXRFbW9qaXNXaWR0aEhlaWdodCB9IGZyb20gJy4vZW1vamknO1xuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFJPT1RfVE9QSUNfRk9OVF9TSVpFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtdG9waWMtc3R5bGUnO1xuXG5jb25zdCBOb2RlRGVmYXVsdFNwYWNlID0ge1xuICAgIGhvcml6b250YWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UgKiAzLFxuICAgICAgICBlbW9qaUFuZFRleHQ6IEJBU0UgKiAxLjVcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMS41LFxuICAgICAgICBub2RlQW5kSW1hZ2U6IEJBU0UsXG4gICAgICAgIGltYWdlQW5kVGV4dDogQkFTRSAqIDEuNVxuICAgIH1cbn07XG5cbmNvbnN0IFJvb3REZWZhdWx0U3BhY2UgPSB7XG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDQsXG4gICAgICAgIGVtb2ppQW5kVGV4dDogQkFTRSAqIDJcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMlxuICAgIH1cbn07XG5cbmNvbnN0IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dDtcbiAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG59O1xuXG5jb25zdCBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRUZXh0O1xuICAgIHJldHVybiBub2RlQW5kVGV4dDtcbn07XG5cbmNvbnN0IGdldFNwYWNlRW1vamlBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBlbW9qaUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS5ob3Jpem9udGFsLmVtb2ppQW5kVGV4dDtcbiAgICByZXR1cm4gZW1vamlBbmRUZXh0O1xufTtcblxuZXhwb3J0IGNvbnN0IE5vZGVTcGFjZSA9IHtcbiAgICBnZXROb2RlV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgTm9kZVNwYWNlLmdldEVtb2ppTGVmdFNwYWNlKGJvYXJkLCBlbGVtZW50KSArXG4gICAgICAgICAgICAgICAgZ2V0RW1vamlzV2lkdGhIZWlnaHQoYm9hcmQsIGVsZW1lbnQpLndpZHRoICtcbiAgICAgICAgICAgICAgICBnZXRTcGFjZUVtb2ppQW5kVGV4dChlbGVtZW50KSArXG4gICAgICAgICAgICAgICAgTm9kZVNwYWNlLmdldE5vZGVSZXNpemFibGVXaWR0aChib2FyZCwgZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIG5vZGVBbmRUZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCArIE5vZGVTcGFjZS5nZXROb2RlUmVzaXphYmxlV2lkdGgoYm9hcmQsIGVsZW1lbnQpICsgbm9kZUFuZFRleHQ7XG4gICAgfSxcbiAgICBnZXROb2RlSGVpZ2h0KGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kSW1hZ2UgK1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuZGF0YS5pbWFnZS5oZWlnaHQgK1xuICAgICAgICAgICAgICAgIE5vZGVEZWZhdWx0U3BhY2UudmVydGljYWwuaW1hZ2VBbmRUZXh0ICtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmhlaWdodCArXG4gICAgICAgICAgICAgICAgbm9kZUFuZFRleHRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0ICsgZWxlbWVudC5oZWlnaHQgKyBub2RlQW5kVGV4dDtcbiAgICB9LFxuICAgIGdldE5vZGVSZXNpemFibGVXaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGltYWdlV2lkdGggPSBNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSA/IGVsZW1lbnQuZGF0YS5pbWFnZT8ud2lkdGggOiAwO1xuICAgICAgICByZXR1cm4gTWF0aC5tYXgoZWxlbWVudC53aWR0aCwgaW1hZ2VXaWR0aCk7XG4gICAgfSxcbiAgICBnZXROb2RlUmVzaXphYmxlTWluV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBtaW5Ub3BpY1dpZHRoID0gTm9kZVNwYWNlLmdldE5vZGVUb3BpY01pbldpZHRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0ltYWdlKGVsZW1lbnQpICYmIGVsZW1lbnQuZGF0YS5pbWFnZS53aWR0aCA+IG1pblRvcGljV2lkdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LmRhdGEuaW1hZ2Uud2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWluVG9waWNXaWR0aDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0Tm9kZVRvcGljTWluV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCwgaXNSb290OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEZvbnRTaXplID0gZ2V0Tm9kZURlZmF1bHRGb250U2l6ZShpc1Jvb3QpO1xuICAgICAgICBjb25zdCBlZGl0b3IgPSBNaW5kRWxlbWVudC5nZXRUZXh0RWRpdG9yKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBtYXJrcyA9IFBsYWl0TWFya0VkaXRvci5nZXRNYXJrcyhlZGl0b3IpO1xuICAgICAgICBjb25zdCBmb250U2l6ZSA9IChtYXJrc1tNYXJrVHlwZXMuZm9udFNpemVdIGFzIG51bWJlcikgfHwgZGVmYXVsdEZvbnRTaXplO1xuICAgICAgICByZXR1cm4gZm9udFNpemU7XG4gICAgfSxcbiAgICBnZXRUZXh0TGVmdFNwYWNlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRIb3Jpem9udGFsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldEVtb2ppTGVmdFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkLCBlbGVtZW50KS53aWR0aCArIGdldFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRUZXh0VG9wU3BhY2UoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LmRhdGEuaW1hZ2UuaGVpZ2h0ICsgTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kSW1hZ2UgKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLmltYWdlQW5kVGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0SW1hZ2VUb3BTcGFjZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kSW1hZ2U7XG4gICAgfSxcbiAgICBnZXRFbW9qaUxlZnRTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGJvYXJkLmdldFBsdWdpbk9wdGlvbnM8V2l0aE1pbmRPcHRpb25zPihXaXRoTWluZFBsdWdpbktleSk7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0IC0gb3B0aW9ucy5lbW9qaVBhZGRpbmc7XG4gICAgfSxcbiAgICBnZXRFbW9qaVRvcFNwYWNlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGb250U2l6ZUJ5U2xhdGVFbGVtZW50ID0gKHRleHQ6IHN0cmluZyB8IEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0Rm9udFNpemUgPSBERUZBVUxUX0ZPTlRfU0laRTtcbiAgICBpZiAodHlwZW9mIHRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0Rm9udFNpemU7XG4gICAgfVxuICAgIGNvbnN0IG1hcmtzID0gUGxhaXRNYXJrRWRpdG9yLmdldE1hcmtzQnlFbGVtZW50KHRleHQpO1xuICAgIGNvbnN0IGZvbnRTaXplID0gKG1hcmtzW01hcmtUeXBlcy5mb250U2l6ZV0gYXMgbnVtYmVyKSB8fCBkZWZhdWx0Rm9udFNpemU7XG4gICAgcmV0dXJuIGZvbnRTaXplO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE5vZGVEZWZhdWx0Rm9udFNpemUgPSAoaXNSb290ID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0Rm9udFNpemUgPSBpc1Jvb3QgPyBST09UX1RPUElDX0ZPTlRfU0laRSA6IERFRkFVTFRfRk9OVF9TSVpFO1xuICAgIHJldHVybiBkZWZhdWx0Rm9udFNpemU7XG59O1xuIl19
|
package/fesm2015/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';
|
|
@@ -180,6 +180,14 @@ function getEmojiFontSize(element) {
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
const TOPIC_COLOR = '#333';
|
|
184
|
+
const TOPIC_FONT_SIZE = 14;
|
|
185
|
+
const ROOT_TOPIC_FONT_SIZE = 18;
|
|
186
|
+
const ROOT_TOPIC_HEIGHT = 25;
|
|
187
|
+
const TOPIC_DEFAULT_MAX_WORD_COUNT = 34;
|
|
188
|
+
const DEFAULT_FONT_FAMILY = 'PingFangSC-Regular, "PingFang SC"';
|
|
189
|
+
const BRANCH_FONT_FAMILY = 'PingFangSC-Medium, "PingFang SC"';
|
|
190
|
+
|
|
183
191
|
const NodeDefaultSpace = {
|
|
184
192
|
horizontal: {
|
|
185
193
|
nodeAndText: BASE * 3,
|
|
@@ -217,17 +225,15 @@ const getSpaceEmojiAndText = (element) => {
|
|
|
217
225
|
};
|
|
218
226
|
const NodeSpace = {
|
|
219
227
|
getNodeWidth(board, element) {
|
|
220
|
-
var _a;
|
|
221
228
|
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
222
|
-
const imageWidth = MindElement.hasImage(element) ? (_a = element.data.image) === null || _a === void 0 ? void 0 : _a.width : 0;
|
|
223
229
|
if (MindElement.hasEmojis(element)) {
|
|
224
230
|
return (NodeSpace.getEmojiLeftSpace(board, element) +
|
|
225
231
|
getEmojisWidthHeight(board, element).width +
|
|
226
232
|
getSpaceEmojiAndText(element) +
|
|
227
|
-
|
|
233
|
+
NodeSpace.getNodeResizableWidth(board, element) +
|
|
228
234
|
nodeAndText);
|
|
229
235
|
}
|
|
230
|
-
return nodeAndText +
|
|
236
|
+
return nodeAndText + NodeSpace.getNodeResizableWidth(board, element) + nodeAndText;
|
|
231
237
|
},
|
|
232
238
|
getNodeHeight(board, element) {
|
|
233
239
|
const nodeAndText = getVerticalSpaceBetweenNodeAndText(element);
|
|
@@ -240,6 +246,27 @@ const NodeSpace = {
|
|
|
240
246
|
}
|
|
241
247
|
return nodeAndText + element.height + nodeAndText;
|
|
242
248
|
},
|
|
249
|
+
getNodeResizableWidth(board, element) {
|
|
250
|
+
var _a;
|
|
251
|
+
const imageWidth = MindElement.hasImage(element) ? (_a = element.data.image) === null || _a === void 0 ? void 0 : _a.width : 0;
|
|
252
|
+
return Math.max(element.width, imageWidth);
|
|
253
|
+
},
|
|
254
|
+
getNodeResizableMinWidth(board, element) {
|
|
255
|
+
const minTopicWidth = NodeSpace.getNodeTopicMinWidth(board, element);
|
|
256
|
+
if (MindElement.hasImage(element) && element.data.image.width > minTopicWidth) {
|
|
257
|
+
return element.data.image.width;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
return minTopicWidth;
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
getNodeTopicMinWidth(board, element, isRoot = false) {
|
|
264
|
+
const defaultFontSize = getNodeDefaultFontSize(isRoot);
|
|
265
|
+
const editor = MindElement.getTextEditor(element);
|
|
266
|
+
const marks = PlaitMarkEditor.getMarks(editor);
|
|
267
|
+
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
268
|
+
return fontSize;
|
|
269
|
+
},
|
|
243
270
|
getTextLeftSpace(board, element) {
|
|
244
271
|
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
245
272
|
if (MindElement.hasEmojis(element)) {
|
|
@@ -271,6 +298,19 @@ const NodeSpace = {
|
|
|
271
298
|
return nodeAndText;
|
|
272
299
|
}
|
|
273
300
|
};
|
|
301
|
+
const getFontSizeBySlateElement = (text) => {
|
|
302
|
+
const defaultFontSize = DEFAULT_FONT_SIZE;
|
|
303
|
+
if (typeof text === 'string') {
|
|
304
|
+
return defaultFontSize;
|
|
305
|
+
}
|
|
306
|
+
const marks = PlaitMarkEditor.getMarksByElement(text);
|
|
307
|
+
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
308
|
+
return fontSize;
|
|
309
|
+
};
|
|
310
|
+
const getNodeDefaultFontSize = (isRoot = false) => {
|
|
311
|
+
const defaultFontSize = isRoot ? ROOT_TOPIC_FONT_SIZE : DEFAULT_FONT_SIZE;
|
|
312
|
+
return defaultFontSize;
|
|
313
|
+
};
|
|
274
314
|
|
|
275
315
|
function getEmojiRectangle(board, element) {
|
|
276
316
|
let { x, y } = getRectangleByNode(MindElement.getNode(element));
|
|
@@ -330,21 +370,11 @@ const isHitImage = (board, element, range) => {
|
|
|
330
370
|
return RectangleClient.isHit(RectangleClient.toRectangleClient([range.anchor, range.focus]), client);
|
|
331
371
|
};
|
|
332
372
|
|
|
333
|
-
const NODE_MIN_WIDTH = 18;
|
|
334
|
-
|
|
335
373
|
function editTopic(element) {
|
|
336
374
|
const component = PlaitElement.getComponent(element);
|
|
337
375
|
component === null || component === void 0 ? void 0 : component.editTopic();
|
|
338
376
|
}
|
|
339
377
|
|
|
340
|
-
const TOPIC_COLOR = '#333';
|
|
341
|
-
const TOPIC_FONT_SIZE = 14;
|
|
342
|
-
const ROOT_TOPIC_FONT_SIZE = 18;
|
|
343
|
-
const ROOT_TOPIC_HEIGHT = 25;
|
|
344
|
-
const TOPIC_DEFAULT_MAX_WORD_COUNT = 34;
|
|
345
|
-
const DEFAULT_FONT_FAMILY = 'PingFangSC-Regular, "PingFang SC"';
|
|
346
|
-
const BRANCH_FONT_FAMILY = 'PingFangSC-Medium, "PingFang SC"';
|
|
347
|
-
|
|
348
378
|
const createEmptyMind = (point) => {
|
|
349
379
|
const element = createMindElement('思维导图', 72, ROOT_TOPIC_HEIGHT, { layout: MindLayoutType.right });
|
|
350
380
|
element.isRoot = true;
|
|
@@ -454,7 +484,7 @@ const insertMindElement = (board, inheritNode, path) => {
|
|
|
454
484
|
});
|
|
455
485
|
delete newNode.layout;
|
|
456
486
|
}
|
|
457
|
-
const newElement = createMindElement('',
|
|
487
|
+
const newElement = createMindElement('', getNodeDefaultFontSize(), TEXT_DEFAULT_HEIGHT, newNode);
|
|
458
488
|
Transforms.insertNode(board, newElement, path);
|
|
459
489
|
clearSelectedElement(board);
|
|
460
490
|
addSelectedElement(board, newElement);
|
|
@@ -620,21 +650,22 @@ const adjustNodeToRoot = (board, node) => {
|
|
|
620
650
|
fontSize: ROOT_TOPIC_FONT_SIZE,
|
|
621
651
|
fontFamily: BRANCH_FONT_FAMILY
|
|
622
652
|
});
|
|
623
|
-
newElement.width = Math.max(width,
|
|
653
|
+
newElement.width = Math.max(width, getNodeDefaultFontSize(true));
|
|
624
654
|
newElement.height = height;
|
|
625
655
|
return Object.assign(Object.assign({}, newElement), { layout: (_a = newElement.layout) !== null && _a !== void 0 ? _a : MindLayoutType.right, isRoot: true, type: 'mindmap' });
|
|
626
656
|
};
|
|
627
657
|
|
|
628
658
|
const DefaultAbstractNodeStyle = {
|
|
629
|
-
|
|
630
|
-
branchWidth: 2,
|
|
659
|
+
branch: { color: GRAY_COLOR, width: 2 },
|
|
631
660
|
shape: {
|
|
632
661
|
strokeColor: GRAY_COLOR,
|
|
633
662
|
strokeWidth: 2
|
|
634
663
|
}
|
|
635
664
|
};
|
|
636
665
|
const DefaultNodeStyle = {
|
|
637
|
-
|
|
666
|
+
branch: {
|
|
667
|
+
width: 3
|
|
668
|
+
},
|
|
638
669
|
shape: {
|
|
639
670
|
rectangleRadius: 4,
|
|
640
671
|
strokeWidth: 3,
|
|
@@ -835,13 +866,13 @@ const getAbstractBranchWidth = (board, element) => {
|
|
|
835
866
|
if (!isNullOrUndefined(element.branchWidth)) {
|
|
836
867
|
return element.branchWidth;
|
|
837
868
|
}
|
|
838
|
-
return DefaultAbstractNodeStyle.
|
|
869
|
+
return DefaultAbstractNodeStyle.branch.width;
|
|
839
870
|
};
|
|
840
871
|
const getAbstractBranchColor = (board, element) => {
|
|
841
872
|
if (element.branchColor) {
|
|
842
873
|
return element.branchColor;
|
|
843
874
|
}
|
|
844
|
-
return DefaultAbstractNodeStyle.
|
|
875
|
+
return DefaultAbstractNodeStyle.branch.color;
|
|
845
876
|
};
|
|
846
877
|
const getNextBranchColor = (board, root) => {
|
|
847
878
|
const index = root.children.length;
|
|
@@ -883,6 +914,13 @@ const getStrokeWidthByElement = (board, element) => {
|
|
|
883
914
|
(AbstractNode.isAbstract(element) ? DefaultAbstractNodeStyle.shape.strokeWidth : DefaultNodeStyle.shape.strokeWidth);
|
|
884
915
|
return strokeWidth;
|
|
885
916
|
};
|
|
917
|
+
const getFillByElement = (board, element) => {
|
|
918
|
+
if (element.fill) {
|
|
919
|
+
return element.fill;
|
|
920
|
+
}
|
|
921
|
+
const defaultRootFill = getMindThemeColor(board).rootFill;
|
|
922
|
+
return element.isRoot ? defaultRootFill : DefaultNodeStyle.shape.fill;
|
|
923
|
+
};
|
|
886
924
|
const getShapeByElement = (board, element) => {
|
|
887
925
|
const shape = getAvailableProperty(board, element, 'shape');
|
|
888
926
|
return shape || MindElementShape.roundRectangle;
|
|
@@ -1028,14 +1066,7 @@ const detectDropTarget = (board, detectPoint, dropTarget, activeElements) => {
|
|
|
1028
1066
|
if (detectResult && isValid) {
|
|
1029
1067
|
dropTarget = { target: node.origin, detectResult: detectResult[0] };
|
|
1030
1068
|
}
|
|
1031
|
-
},
|
|
1032
|
-
if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
|
|
1033
|
-
return true;
|
|
1034
|
-
}
|
|
1035
|
-
else {
|
|
1036
|
-
return false;
|
|
1037
|
-
}
|
|
1038
|
-
});
|
|
1069
|
+
}, getIsRecursionFunc(board));
|
|
1039
1070
|
return dropTarget;
|
|
1040
1071
|
};
|
|
1041
1072
|
const directionDetector = (targetNode, centerPoint) => {
|
|
@@ -1988,8 +2019,7 @@ function drawRoundRectangleByNode(board, node) {
|
|
|
1988
2019
|
return drawRoundRectangleByElement(board, rectangle, node.origin);
|
|
1989
2020
|
}
|
|
1990
2021
|
function drawRoundRectangleByElement(board, nodeRectangle, element) {
|
|
1991
|
-
const
|
|
1992
|
-
const fill = element.fill ? element.fill : element.isRoot ? defaultRootFill : DefaultNodeStyle.shape.fill;
|
|
2022
|
+
const fill = getFillByElement(board, element);
|
|
1993
2023
|
const stroke = getStrokeByMindElement(board, element);
|
|
1994
2024
|
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
1995
2025
|
const nodeG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), nodeRectangle.x, nodeRectangle.y, nodeRectangle.x + nodeRectangle.width, nodeRectangle.y + nodeRectangle.height, {
|
|
@@ -2170,8 +2200,8 @@ const setAbstractByElements = (board, groupParent, group) => {
|
|
|
2170
2200
|
};
|
|
2171
2201
|
const insertAbstractNode = (board, path, start, end) => {
|
|
2172
2202
|
const mindElement = createMindElement('概要', 28, 20, {
|
|
2173
|
-
strokeWidth: DefaultAbstractNodeStyle.
|
|
2174
|
-
branchWidth: DefaultAbstractNodeStyle.
|
|
2203
|
+
strokeWidth: DefaultAbstractNodeStyle.branch.width,
|
|
2204
|
+
branchWidth: DefaultAbstractNodeStyle.branch.width
|
|
2175
2205
|
});
|
|
2176
2206
|
mindElement.start = start;
|
|
2177
2207
|
mindElement.end = end;
|
|
@@ -2205,19 +2235,20 @@ const correctLogicLayoutNode = (board, layout, path) => {
|
|
|
2205
2235
|
}
|
|
2206
2236
|
};
|
|
2207
2237
|
|
|
2208
|
-
const normalizeWidthAndHeight = (board, width, height) => {
|
|
2209
|
-
const
|
|
2238
|
+
const normalizeWidthAndHeight = (board, element, width, height) => {
|
|
2239
|
+
const minWidth = NodeSpace.getNodeTopicMinWidth(board, element, element.isRoot);
|
|
2240
|
+
const newWidth = width < minWidth * board.viewport.zoom ? minWidth : width / board.viewport.zoom;
|
|
2210
2241
|
const newHeight = height / board.viewport.zoom;
|
|
2211
2242
|
return { width: newWidth, height: newHeight };
|
|
2212
2243
|
};
|
|
2213
2244
|
const setTopic = (board, element, topic, width, height) => {
|
|
2214
|
-
const newElement = Object.assign({ data: Object.assign(Object.assign({}, element.data), { topic }) }, normalizeWidthAndHeight(board, width, height));
|
|
2245
|
+
const newElement = Object.assign({ data: Object.assign(Object.assign({}, element.data), { topic }) }, normalizeWidthAndHeight(board, element, width, height));
|
|
2215
2246
|
const path = PlaitBoard.findPath(board, element);
|
|
2216
2247
|
Transforms.setNode(board, newElement, path);
|
|
2217
2248
|
};
|
|
2218
2249
|
const setTopicSize = (board, element, width, height) => {
|
|
2219
|
-
const newElement = Object.assign({}, normalizeWidthAndHeight(board, width, height));
|
|
2220
|
-
if (element.width !== newElement.width || element.height !== newElement.height) {
|
|
2250
|
+
const newElement = Object.assign({}, normalizeWidthAndHeight(board, element, width, height));
|
|
2251
|
+
if (Math.floor(element.width) !== Math.floor(newElement.width) || Math.floor(element.height) !== Math.floor(newElement.height)) {
|
|
2221
2252
|
const path = PlaitBoard.findPath(board, element);
|
|
2222
2253
|
Transforms.setNode(board, newElement, path);
|
|
2223
2254
|
}
|
|
@@ -3106,7 +3137,7 @@ const withNodeDnd = (board) => {
|
|
|
3106
3137
|
if (PlaitBoard.isReadonly(board) ||
|
|
3107
3138
|
PlaitBoard.hasBeenTextEditing(board) ||
|
|
3108
3139
|
!PlaitBoard.isPointer(board, PlaitPointerType.selection) ||
|
|
3109
|
-
event
|
|
3140
|
+
!isMainPointer(event)) {
|
|
3110
3141
|
mousedown(event);
|
|
3111
3142
|
return;
|
|
3112
3143
|
}
|
|
@@ -3333,7 +3364,7 @@ const insertClipboardData = (board, elements, targetPoint) => {
|
|
|
3333
3364
|
newElement = adjustRootToNode(board, newElement);
|
|
3334
3365
|
const styles = PlaitMind.isMind(targetParent) ? { fontFamily: BRANCH_FONT_FAMILY } : { fontFamily: DEFAULT_FONT_FAMILY };
|
|
3335
3366
|
const { width, height } = getTextSize(board, newElement.data.topic, TOPIC_DEFAULT_MAX_WORD_COUNT, styles);
|
|
3336
|
-
newElement.width = Math.max(width,
|
|
3367
|
+
newElement.width = Math.max(width, getNodeDefaultFontSize());
|
|
3337
3368
|
newElement.height = height;
|
|
3338
3369
|
}
|
|
3339
3370
|
// handle abstract start and end
|
|
@@ -3363,7 +3394,7 @@ const insertClipboardData = (board, elements, targetPoint) => {
|
|
|
3363
3394
|
const insertClipboardText = (board, targetParent, text) => {
|
|
3364
3395
|
const styles = PlaitMind.isMind(targetParent) ? { fontFamily: BRANCH_FONT_FAMILY } : { fontFamily: DEFAULT_FONT_FAMILY };
|
|
3365
3396
|
const { width, height } = getTextSize(board, text, TOPIC_DEFAULT_MAX_WORD_COUNT, styles);
|
|
3366
|
-
const newElement = createMindElement(text, width, height, {});
|
|
3397
|
+
const newElement = createMindElement(text, Math.max(width, getFontSizeBySlateElement(text)), height, {});
|
|
3367
3398
|
Transforms.insertNode(board, newElement, findNewChildNodePath(board, targetParent));
|
|
3368
3399
|
return;
|
|
3369
3400
|
};
|
|
@@ -3711,14 +3742,7 @@ const withNodeHover = (board) => {
|
|
|
3711
3742
|
if (isHitElement) {
|
|
3712
3743
|
target = element;
|
|
3713
3744
|
}
|
|
3714
|
-
},
|
|
3715
|
-
if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
|
|
3716
|
-
return true;
|
|
3717
|
-
}
|
|
3718
|
-
else {
|
|
3719
|
-
return false;
|
|
3720
|
-
}
|
|
3721
|
-
}, true);
|
|
3745
|
+
}, getIsRecursionFunc(board), true);
|
|
3722
3746
|
if (hoveredMindElement && target && hoveredMindElement === target) {
|
|
3723
3747
|
return;
|
|
3724
3748
|
}
|
|
@@ -3801,8 +3825,9 @@ const withMindImage = (board) => {
|
|
|
3801
3825
|
return board;
|
|
3802
3826
|
};
|
|
3803
3827
|
|
|
3804
|
-
const withMind = (
|
|
3805
|
-
const
|
|
3828
|
+
const withMind = (baseBoard) => {
|
|
3829
|
+
const board = baseBoard;
|
|
3830
|
+
const { drawElement, dblclick, insertFragment, setFragment, deleteFragment, isHitSelection, getRectangle, isMovable, isRecursion } = board;
|
|
3806
3831
|
board.drawElement = (context) => {
|
|
3807
3832
|
if (PlaitMind.isMind(context.element)) {
|
|
3808
3833
|
return PlaitMindComponent;
|
|
@@ -3859,14 +3884,7 @@ const withMind = (board) => {
|
|
|
3859
3884
|
if (!PlaitBoard.hasBeenTextEditing(board) && isHitMindElement(board, point, node)) {
|
|
3860
3885
|
editTopic(node);
|
|
3861
3886
|
}
|
|
3862
|
-
},
|
|
3863
|
-
if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
|
|
3864
|
-
return true;
|
|
3865
|
-
}
|
|
3866
|
-
else {
|
|
3867
|
-
return false;
|
|
3868
|
-
}
|
|
3869
|
-
});
|
|
3887
|
+
}, getIsRecursionFunc(board));
|
|
3870
3888
|
});
|
|
3871
3889
|
if (PlaitBoard.hasBeenTextEditing(board)) {
|
|
3872
3890
|
return;
|
|
@@ -3966,5 +3984,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
3966
3984
|
* Generated bundle index. Do not edit.
|
|
3967
3985
|
*/
|
|
3968
3986
|
|
|
3969
|
-
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,
|
|
3987
|
+
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 };
|
|
3970
3988
|
//# sourceMappingURL=plait-mind.mjs.map
|