@plait/mind 0.17.0 → 0.19.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/constants/node-style.d.ts +16 -7
- package/esm2020/constants/node-style.mjs +14 -8
- package/esm2020/drawer/node-active.drawer.mjs +10 -9
- package/esm2020/node.component.mjs +1 -1
- package/esm2020/plugins/with-mind.mjs +2 -10
- package/esm2020/transforms/abstract-node.mjs +3 -3
- package/esm2020/utils/draw/abstract-outline.mjs +44 -2
- package/esm2020/utils/draw/node-link/logic-link.mjs +2 -2
- package/esm2020/utils/draw/node-shape.mjs +5 -7
- package/esm2020/utils/node-style/branch.mjs +3 -3
- package/esm2020/utils/node-style/shape.mjs +15 -4
- package/fesm2015/plait-mind.mjs +85 -34
- package/fesm2015/plait-mind.mjs.map +1 -1
- package/fesm2020/plait-mind.mjs +85 -34
- package/fesm2020/plait-mind.mjs.map +1 -1
- package/package.json +1 -1
- package/utils/draw/abstract-outline.d.ts +2 -0
- package/utils/node-style/shape.d.ts +2 -0
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
import { getRectangleByNode } from '../position/node';
|
|
2
2
|
import { PlaitBoard, drawRoundRectangle } from '@plait/core';
|
|
3
|
-
import { getStrokeByMindElement } from '../node-style/shape';
|
|
3
|
+
import { getFillByElement, getStrokeByMindElement, getStrokeWidthByElement } from '../node-style/shape';
|
|
4
4
|
import { DefaultNodeStyle } from '../../constants/node-style';
|
|
5
|
-
import { getMindThemeColor } from '../node-style/branch';
|
|
6
5
|
export function drawRoundRectangleByNode(board, node) {
|
|
7
6
|
const rectangle = getRectangleByNode(node);
|
|
8
7
|
return drawRoundRectangleByElement(board, rectangle, node.origin);
|
|
9
8
|
}
|
|
10
9
|
export function drawRoundRectangleByElement(board, nodeRectangle, element) {
|
|
11
|
-
const
|
|
12
|
-
const fill = element.fill ? element.fill : element.isRoot ? defaultRootFill : DefaultNodeStyle.fill;
|
|
10
|
+
const fill = getFillByElement(board, element);
|
|
13
11
|
const stroke = getStrokeByMindElement(board, element);
|
|
14
|
-
const strokeWidth =
|
|
12
|
+
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
15
13
|
const nodeG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), nodeRectangle.x, nodeRectangle.y, nodeRectangle.x + nodeRectangle.width, nodeRectangle.y + nodeRectangle.height, {
|
|
16
14
|
stroke,
|
|
17
15
|
strokeWidth,
|
|
18
16
|
fill,
|
|
19
17
|
fillStyle: 'solid'
|
|
20
|
-
});
|
|
18
|
+
}, false, DefaultNodeStyle.shape.rectangleRadius);
|
|
21
19
|
return nodeG;
|
|
22
20
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zaGFwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL2RyYXcvbm9kZS1zaGFwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc5RCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBaUIsRUFBRSxJQUFjO0lBQ3RFLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLE9BQU8sMkJBQTJCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxLQUFpQixFQUFFLGFBQThCLEVBQUUsT0FBb0I7SUFDL0csTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFNUQsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQzVCLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQzdCLGFBQWEsQ0FBQyxDQUFDLEVBQ2YsYUFBYSxDQUFDLENBQUMsRUFDZixhQUFhLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQ3JDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFDdEM7UUFDSSxNQUFNO1FBQ04sV0FBVztRQUNYLElBQUk7UUFDSixTQUFTLEVBQUUsT0FBTztLQUNyQixFQUNELEtBQUssRUFDTCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUN6QyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUmVjdGFuZ2xlQ2xpZW50LCBkcmF3Um91bmRSZWN0YW5nbGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRGaWxsQnlFbGVtZW50LCBnZXRTdHJva2VCeU1pbmRFbGVtZW50LCBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL25vZGUtc3R5bGUvc2hhcGUnO1xuaW1wb3J0IHsgRGVmYXVsdE5vZGVTdHlsZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3Um91bmRSZWN0YW5nbGVCeU5vZGUoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IE1pbmROb2RlKSB7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKG5vZGUpO1xuICAgIHJldHVybiBkcmF3Um91bmRSZWN0YW5nbGVCeUVsZW1lbnQoYm9hcmQsIHJlY3RhbmdsZSwgbm9kZS5vcmlnaW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1JvdW5kUmVjdGFuZ2xlQnlFbGVtZW50KGJvYXJkOiBQbGFpdEJvYXJkLCBub2RlUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgY29uc3QgZmlsbCA9IGdldEZpbGxCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHN0cm9rZSA9IGdldFN0cm9rZUJ5TWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuXG4gICAgY29uc3Qgbm9kZUcgPSBkcmF3Um91bmRSZWN0YW5nbGUoXG4gICAgICAgIFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLFxuICAgICAgICBub2RlUmVjdGFuZ2xlLngsXG4gICAgICAgIG5vZGVSZWN0YW5nbGUueSxcbiAgICAgICAgbm9kZVJlY3RhbmdsZS54ICsgbm9kZVJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgbm9kZVJlY3RhbmdsZS55ICsgbm9kZVJlY3RhbmdsZS5oZWlnaHQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHN0cm9rZSxcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoLFxuICAgICAgICAgICAgZmlsbCxcbiAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICB9LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgRGVmYXVsdE5vZGVTdHlsZS5zaGFwZS5yZWN0YW5nbGVSYWRpdXNcbiAgICApO1xuXG4gICAgcmV0dXJuIG5vZGVHO1xufVxuIl19
|
|
@@ -28,13 +28,13 @@ export const getAbstractBranchWidth = (board, element) => {
|
|
|
28
28
|
if (!isNullOrUndefined(element.branchWidth)) {
|
|
29
29
|
return element.branchWidth;
|
|
30
30
|
}
|
|
31
|
-
return DefaultAbstractNodeStyle.
|
|
31
|
+
return DefaultAbstractNodeStyle.branch.width;
|
|
32
32
|
};
|
|
33
33
|
export const getAbstractBranchColor = (board, element) => {
|
|
34
34
|
if (element.branchColor) {
|
|
35
35
|
return element.branchColor;
|
|
36
36
|
}
|
|
37
|
-
return DefaultAbstractNodeStyle.
|
|
37
|
+
return DefaultAbstractNodeStyle.branch.color;
|
|
38
38
|
};
|
|
39
39
|
export const getNextBranchColor = (board, root) => {
|
|
40
40
|
const index = root.children.length;
|
|
@@ -60,4 +60,4 @@ export const getMindThemeColor = (board) => {
|
|
|
60
60
|
return MindDefaultThemeColor;
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvbm9kZS1zdHlsZS9icmFuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUNuRixJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZFLE9BQU8sc0JBQXNCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ2pEO0lBRUQsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN4RSxPQUFPLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUNuRixNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sV0FBVyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUNuRixNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sV0FBVyxJQUFJLFlBQVksQ0FBQztBQUN2QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQzlFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDekMsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDO0tBQzlCO0lBQ0QsT0FBTyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDOUUsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO1FBQ3JCLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUM5QjtJQUNELE9BQU8sd0JBQXdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsSUFBaUIsRUFBRSxFQUFFO0lBQ3ZFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ25DLE9BQU8sNEJBQTRCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDN0UsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsT0FBTyw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQzdFLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQzlDLE1BQU0sU0FBUyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDakMsT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ25ELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRixJQUFJLFVBQVUsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDM0QsT0FBTyxVQUFVLENBQUM7S0FDckI7U0FBTTtRQUNILE9BQU8scUJBQXFCLENBQUM7S0FDaEM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb2Nlc3Npbmcgb2YgYnJhbmNoIGNvbG9yLCB3aWR0aCwgc3R5bGUsIGV0Yy4gb2YgdGhlIG1pbmQgbm9kZVxuICovXG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEJyYW5jaFNoYXBlLCBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBCUkFOQ0hfV0lEVEggfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS1zdHlsZSc7XG5pbXBvcnQgeyBnZXRBdmFpbGFibGVQcm9wZXJ0eSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IE1pbmREZWZhdWx0VGhlbWVDb2xvciwgTWluZFRoZW1lQ29sb3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RoZW1lLWNvbG9yJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGlzQ2hpbGRPZkFic3RyYWN0IH0gZnJvbSAnLi4vYWJzdHJhY3QvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoZWxlbWVudCkgfHwgaXNDaGlsZE9mQWJzdHJhY3QoYm9hcmQsIGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBnZXRBYnN0cmFjdEJyYW5jaENvbG9yKGJvYXJkLCBlbGVtZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBicmFuY2hDb2xvciA9IGdldEF2YWlsYWJsZVByb3BlcnR5KGJvYXJkLCBlbGVtZW50LCAnYnJhbmNoQ29sb3InKTtcbiAgICByZXR1cm4gYnJhbmNoQ29sb3IgfHwgZ2V0RGVmYXVsdEJyYW5jaENvbG9yKGJvYXJkLCBlbGVtZW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCcmFuY2hTaGFwZUJ5TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgYnJhbmNoU2hhcGUgPSBnZXRBdmFpbGFibGVQcm9wZXJ0eShib2FyZCwgZWxlbWVudCwgJ2JyYW5jaFNoYXBlJyk7XG4gICAgcmV0dXJuIGJyYW5jaFNoYXBlIHx8IEJyYW5jaFNoYXBlLmJpZ2h0O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJyYW5jaFdpZHRoQnlNaW5kRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBicmFuY2hXaWR0aCA9IGdldEF2YWlsYWJsZVByb3BlcnR5KGJvYXJkLCBlbGVtZW50LCAnYnJhbmNoV2lkdGgnKTtcbiAgICByZXR1cm4gYnJhbmNoV2lkdGggfHwgQlJBTkNIX1dJRFRIO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFic3RyYWN0QnJhbmNoV2lkdGggPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChlbGVtZW50LmJyYW5jaFdpZHRoKSkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5icmFuY2hXaWR0aDtcbiAgICB9XG4gICAgcmV0dXJuIERlZmF1bHRBYnN0cmFjdE5vZGVTdHlsZS5icmFuY2gud2lkdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWJzdHJhY3RCcmFuY2hDb2xvciA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBpZiAoZWxlbWVudC5icmFuY2hDb2xvcikge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5icmFuY2hDb2xvcjtcbiAgICB9XG4gICAgcmV0dXJuIERlZmF1bHRBYnN0cmFjdE5vZGVTdHlsZS5icmFuY2guY29sb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TmV4dEJyYW5jaENvbG9yID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByb290OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gcm9vdC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgcmV0dXJuIGdldERlZmF1bHRCcmFuY2hDb2xvckJ5SW5kZXgoYm9hcmQsIGluZGV4KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0QnJhbmNoQ29sb3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgIHJldHVybiBnZXREZWZhdWx0QnJhbmNoQ29sb3JCeUluZGV4KGJvYXJkLCBwYXRoWzFdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0QnJhbmNoQ29sb3JCeUluZGV4ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgdGhlbWVDb2xvciA9IGdldE1pbmRUaGVtZUNvbG9yKGJvYXJkKTtcbiAgICBjb25zdCBsZW5ndGggPSB0aGVtZUNvbG9yLmJyYW5jaENvbG9ycy5sZW5ndGg7XG4gICAgY29uc3QgcmVtYWluZGVyID0gaW5kZXggJSBsZW5ndGg7XG4gICAgcmV0dXJuIHRoZW1lQ29sb3IuYnJhbmNoQ29sb3JzW3JlbWFpbmRlcl07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWluZFRoZW1lQ29sb3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCB0aGVtZUNvbG9ycyA9IFBsYWl0Qm9hcmQuZ2V0VGhlbWVDb2xvcnMoYm9hcmQpO1xuICAgIGNvbnN0IHRoZW1lQ29sb3IgPSB0aGVtZUNvbG9ycy5maW5kKHZhbCA9PiB2YWwubW9kZSA9PT0gYm9hcmQudGhlbWUudGhlbWVDb2xvck1vZGUpO1xuICAgIGlmICh0aGVtZUNvbG9yICYmIE1pbmRUaGVtZUNvbG9yLmlzTWluZFRoZW1lQ29sb3IodGhlbWVDb2xvcikpIHtcbiAgICAgICAgcmV0dXJuIHRoZW1lQ29sb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIE1pbmREZWZhdWx0VGhlbWVDb2xvcjtcbiAgICB9XG59O1xuIl19
|
|
@@ -3,20 +3,31 @@ import { getAvailableProperty } from './common';
|
|
|
3
3
|
import { getDefaultBranchColor, getMindThemeColor } from './branch';
|
|
4
4
|
import { AbstractNode } from '@plait/layouts';
|
|
5
5
|
import { isChildOfAbstract } from '../abstract/common';
|
|
6
|
-
import { DefaultAbstractNodeStyle } from '../../constants/node-style';
|
|
6
|
+
import { DefaultAbstractNodeStyle, DefaultNodeStyle } from '../../constants/node-style';
|
|
7
7
|
export const getStrokeByMindElement = (board, element) => {
|
|
8
8
|
if (PlaitMind.isMind(element)) {
|
|
9
9
|
const defaultRootStroke = getMindThemeColor(board).rootFill;
|
|
10
10
|
return element.strokeColor || defaultRootStroke;
|
|
11
11
|
}
|
|
12
12
|
if (AbstractNode.isAbstract(element) || isChildOfAbstract(board, element)) {
|
|
13
|
-
return element.strokeColor || DefaultAbstractNodeStyle.strokeColor;
|
|
14
|
-
;
|
|
13
|
+
return element.strokeColor || DefaultAbstractNodeStyle.shape.strokeColor;
|
|
15
14
|
}
|
|
16
15
|
return getAvailableProperty(board, element, 'strokeColor') || getDefaultBranchColor(board, element);
|
|
17
16
|
};
|
|
17
|
+
export const getStrokeWidthByElement = (board, element) => {
|
|
18
|
+
const strokeWidth = element.strokeWidth ||
|
|
19
|
+
(AbstractNode.isAbstract(element) ? DefaultAbstractNodeStyle.shape.strokeWidth : DefaultNodeStyle.shape.strokeWidth);
|
|
20
|
+
return strokeWidth;
|
|
21
|
+
};
|
|
22
|
+
export const getFillByElement = (board, element) => {
|
|
23
|
+
if (element.fill) {
|
|
24
|
+
return element.fill;
|
|
25
|
+
}
|
|
26
|
+
const defaultRootFill = getMindThemeColor(board).rootFill;
|
|
27
|
+
return element.isRoot ? defaultRootFill : DefaultNodeStyle.shape.fill;
|
|
28
|
+
};
|
|
18
29
|
export const getShapeByElement = (board, element) => {
|
|
19
30
|
const shape = getAvailableProperty(board, element, 'shape');
|
|
20
31
|
return shape || MindElementShape.roundRectangle;
|
|
21
32
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlLXN0eWxlL3NoYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQzlFLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixNQUFNLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM1RCxPQUFPLE9BQU8sQ0FBQyxXQUFXLElBQUksaUJBQWlCLENBQUM7S0FDbkQ7SUFFRCxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLFdBQVcsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0tBQzVFO0lBRUQsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQy9FLE1BQU0sV0FBVyxHQUNiLE9BQU8sQ0FBQyxXQUFXO1FBQ25CLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pILE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDeEUsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQ2QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDO0tBQ3ZCO0lBQ0QsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzFELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFvQixFQUFFO0lBQzNGLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsT0FBTyxLQUFLLElBQUksZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0FBQ3BELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgTWluZEVsZW1lbnRTaGFwZSwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IGdldEF2YWlsYWJsZVByb3BlcnR5IH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEJyYW5jaENvbG9yLCBnZXRNaW5kVGhlbWVDb2xvciB9IGZyb20gJy4vYnJhbmNoJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGlzQ2hpbGRPZkFic3RyYWN0IH0gZnJvbSAnLi4vYWJzdHJhY3QvY29tbW9uJztcbmltcG9ydCB7IERlZmF1bHRBYnN0cmFjdE5vZGVTdHlsZSwgRGVmYXVsdE5vZGVTdHlsZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcblxuZXhwb3J0IGNvbnN0IGdldFN0cm9rZUJ5TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgaWYgKFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdFJvb3RTdHJva2UgPSBnZXRNaW5kVGhlbWVDb2xvcihib2FyZCkucm9vdEZpbGw7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnN0cm9rZUNvbG9yIHx8IGRlZmF1bHRSb290U3Ryb2tlO1xuICAgIH1cblxuICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSB8fCBpc0NoaWxkT2ZBYnN0cmFjdChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuc3Ryb2tlQ29sb3IgfHwgRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlLnNoYXBlLnN0cm9rZUNvbG9yO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRBdmFpbGFibGVQcm9wZXJ0eShib2FyZCwgZWxlbWVudCwgJ3N0cm9rZUNvbG9yJykgfHwgZ2V0RGVmYXVsdEJyYW5jaENvbG9yKGJvYXJkLCBlbGVtZW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9XG4gICAgICAgIGVsZW1lbnQuc3Ryb2tlV2lkdGggfHxcbiAgICAgICAgKEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGVsZW1lbnQpID8gRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlLnNoYXBlLnN0cm9rZVdpZHRoIDogRGVmYXVsdE5vZGVTdHlsZS5zaGFwZS5zdHJva2VXaWR0aCk7XG4gICAgcmV0dXJuIHN0cm9rZVdpZHRoO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGxCeUVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgaWYgKGVsZW1lbnQuZmlsbCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5maWxsO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0Um9vdEZpbGwgPSBnZXRNaW5kVGhlbWVDb2xvcihib2FyZCkucm9vdEZpbGw7XG4gICAgcmV0dXJuIGVsZW1lbnQuaXNSb290ID8gZGVmYXVsdFJvb3RGaWxsIDogRGVmYXVsdE5vZGVTdHlsZS5zaGFwZS5maWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNoYXBlQnlFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCk6IE1pbmRFbGVtZW50U2hhcGUgPT4ge1xuICAgIGNvbnN0IHNoYXBlID0gZ2V0QXZhaWxhYmxlUHJvcGVydHkoYm9hcmQsIGVsZW1lbnQsICdzaGFwZScpO1xuICAgIHJldHVybiBzaGFwZSB8fCBNaW5kRWxlbWVudFNoYXBlLnJvdW5kUmVjdGFuZ2xlO1xufTtcbiJdfQ==
|
package/fesm2015/plait-mind.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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,
|
|
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, isMainPointer, 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
6
|
import { TEXT_DEFAULT_HEIGHT, buildText, getTextSize, TextManage, ExitOrigin, TextModule, getTextFromClipboard } from '@plait/text';
|
|
7
7
|
import { fromEvent, Subject } from 'rxjs';
|
|
@@ -626,15 +626,21 @@ const adjustNodeToRoot = (board, node) => {
|
|
|
626
626
|
};
|
|
627
627
|
|
|
628
628
|
const DefaultAbstractNodeStyle = {
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
629
|
+
branch: { color: GRAY_COLOR, width: 2 },
|
|
630
|
+
shape: {
|
|
631
|
+
strokeColor: GRAY_COLOR,
|
|
632
|
+
strokeWidth: 2
|
|
633
|
+
}
|
|
633
634
|
};
|
|
634
635
|
const DefaultNodeStyle = {
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
636
|
+
branch: {
|
|
637
|
+
width: 3
|
|
638
|
+
},
|
|
639
|
+
shape: {
|
|
640
|
+
rectangleRadius: 4,
|
|
641
|
+
strokeWidth: 3,
|
|
642
|
+
fill: 'none'
|
|
643
|
+
}
|
|
638
644
|
};
|
|
639
645
|
|
|
640
646
|
const getAvailableProperty = (board, element, propertyKey) => {
|
|
@@ -830,13 +836,13 @@ const getAbstractBranchWidth = (board, element) => {
|
|
|
830
836
|
if (!isNullOrUndefined(element.branchWidth)) {
|
|
831
837
|
return element.branchWidth;
|
|
832
838
|
}
|
|
833
|
-
return DefaultAbstractNodeStyle.
|
|
839
|
+
return DefaultAbstractNodeStyle.branch.width;
|
|
834
840
|
};
|
|
835
841
|
const getAbstractBranchColor = (board, element) => {
|
|
836
842
|
if (element.branchColor) {
|
|
837
843
|
return element.branchColor;
|
|
838
844
|
}
|
|
839
|
-
return DefaultAbstractNodeStyle.
|
|
845
|
+
return DefaultAbstractNodeStyle.branch.color;
|
|
840
846
|
};
|
|
841
847
|
const getNextBranchColor = (board, root) => {
|
|
842
848
|
const index = root.children.length;
|
|
@@ -869,11 +875,22 @@ const getStrokeByMindElement = (board, element) => {
|
|
|
869
875
|
return element.strokeColor || defaultRootStroke;
|
|
870
876
|
}
|
|
871
877
|
if (AbstractNode.isAbstract(element) || isChildOfAbstract(board, element)) {
|
|
872
|
-
return element.strokeColor || DefaultAbstractNodeStyle.strokeColor;
|
|
873
|
-
;
|
|
878
|
+
return element.strokeColor || DefaultAbstractNodeStyle.shape.strokeColor;
|
|
874
879
|
}
|
|
875
880
|
return getAvailableProperty(board, element, 'strokeColor') || getDefaultBranchColor(board, element);
|
|
876
881
|
};
|
|
882
|
+
const getStrokeWidthByElement = (board, element) => {
|
|
883
|
+
const strokeWidth = element.strokeWidth ||
|
|
884
|
+
(AbstractNode.isAbstract(element) ? DefaultAbstractNodeStyle.shape.strokeWidth : DefaultNodeStyle.shape.strokeWidth);
|
|
885
|
+
return strokeWidth;
|
|
886
|
+
};
|
|
887
|
+
const getFillByElement = (board, element) => {
|
|
888
|
+
if (element.fill) {
|
|
889
|
+
return element.fill;
|
|
890
|
+
}
|
|
891
|
+
const defaultRootFill = getMindThemeColor(board).rootFill;
|
|
892
|
+
return element.isRoot ? defaultRootFill : DefaultNodeStyle.shape.fill;
|
|
893
|
+
};
|
|
877
894
|
const getShapeByElement = (board, element) => {
|
|
878
895
|
const shape = getAvailableProperty(board, element, 'shape');
|
|
879
896
|
return shape || MindElementShape.roundRectangle;
|
|
@@ -1314,7 +1331,7 @@ function drawLogicLink(board, parent, node, isHorizontal, defaultStroke = null,
|
|
|
1314
1331
|
const branchWidth = defaultStrokeWidth || getBranchWidthByMindElement(board, parent.origin);
|
|
1315
1332
|
const hasStraightLine = branchShape === BranchShape.polyline ? true : !parent.origin.isRoot;
|
|
1316
1333
|
const parentShape = getShapeByElement(board, parent.origin);
|
|
1317
|
-
const shape =
|
|
1334
|
+
const shape = getShapeByElement(board, node.origin);
|
|
1318
1335
|
const hasUnderlineShape = shape === MindElementShape.underline;
|
|
1319
1336
|
const hasUnderlineShapeOfParent = parentShape === MindElementShape.underline;
|
|
1320
1337
|
const nodeClient = getRectangleByNode(node);
|
|
@@ -1979,16 +1996,15 @@ function drawRoundRectangleByNode(board, node) {
|
|
|
1979
1996
|
return drawRoundRectangleByElement(board, rectangle, node.origin);
|
|
1980
1997
|
}
|
|
1981
1998
|
function drawRoundRectangleByElement(board, nodeRectangle, element) {
|
|
1982
|
-
const
|
|
1983
|
-
const fill = element.fill ? element.fill : element.isRoot ? defaultRootFill : DefaultNodeStyle.fill;
|
|
1999
|
+
const fill = getFillByElement(board, element);
|
|
1984
2000
|
const stroke = getStrokeByMindElement(board, element);
|
|
1985
|
-
const strokeWidth =
|
|
2001
|
+
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
1986
2002
|
const nodeG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), nodeRectangle.x, nodeRectangle.y, nodeRectangle.x + nodeRectangle.width, nodeRectangle.y + nodeRectangle.height, {
|
|
1987
2003
|
stroke,
|
|
1988
2004
|
strokeWidth,
|
|
1989
2005
|
fill,
|
|
1990
2006
|
fillStyle: 'solid'
|
|
1991
|
-
});
|
|
2007
|
+
}, false, DefaultNodeStyle.shape.rectangleRadius);
|
|
1992
2008
|
return nodeG;
|
|
1993
2009
|
}
|
|
1994
2010
|
|
|
@@ -2161,8 +2177,8 @@ const setAbstractByElements = (board, groupParent, group) => {
|
|
|
2161
2177
|
};
|
|
2162
2178
|
const insertAbstractNode = (board, path, start, end) => {
|
|
2163
2179
|
const mindElement = createMindElement('概要', 28, 20, {
|
|
2164
|
-
strokeWidth: DefaultAbstractNodeStyle.
|
|
2165
|
-
branchWidth: DefaultAbstractNodeStyle.
|
|
2180
|
+
strokeWidth: DefaultAbstractNodeStyle.branch.width,
|
|
2181
|
+
branchWidth: DefaultAbstractNodeStyle.branch.width
|
|
2166
2182
|
});
|
|
2167
2183
|
mindElement.start = start;
|
|
2168
2184
|
mindElement.end = end;
|
|
@@ -2500,6 +2516,48 @@ function handleBoardClass(board, activeHandlePosition, isHorizontal) {
|
|
|
2500
2516
|
PlaitBoard.getBoardContainer(board).classList.remove('abstract-resizing-vertical');
|
|
2501
2517
|
}
|
|
2502
2518
|
}
|
|
2519
|
+
function drawAbstractRoundRectangle(rs, x1, y1, x2, y2, isHorizontal, options) {
|
|
2520
|
+
const width = Math.abs(x1 - x2);
|
|
2521
|
+
const height = Math.abs(y1 - y2);
|
|
2522
|
+
const radius = 5;
|
|
2523
|
+
const handleGap = 4;
|
|
2524
|
+
const handleLength = 10;
|
|
2525
|
+
const handleSpace = handleLength + handleGap * 2;
|
|
2526
|
+
if (isHorizontal) {
|
|
2527
|
+
const handleSideLine = (width - handleSpace - radius * 2) / 2;
|
|
2528
|
+
const sideLine = height - radius * 2;
|
|
2529
|
+
return rs.path(`M${x1 + radius},${y1}
|
|
2530
|
+
l${handleSideLine},0
|
|
2531
|
+
m${handleSpace},0
|
|
2532
|
+
l${handleSideLine},0
|
|
2533
|
+
a${radius},${radius},0,0,1,${radius},${radius}
|
|
2534
|
+
l0,${sideLine}
|
|
2535
|
+
a${radius},${radius},0,0,1,-${radius},${radius}
|
|
2536
|
+
l-${handleSideLine},0
|
|
2537
|
+
m-${handleSpace},0
|
|
2538
|
+
l-${handleSideLine},0
|
|
2539
|
+
a${radius},${radius},0,0,1,-${radius},-${radius}
|
|
2540
|
+
l0,-${sideLine}
|
|
2541
|
+
a${radius},${radius},0,0,1,${radius},-${radius}`, options);
|
|
2542
|
+
}
|
|
2543
|
+
else {
|
|
2544
|
+
const handleSideLine = (height - handleSpace - radius * 2) / 2;
|
|
2545
|
+
const sideLine = width - radius * 2;
|
|
2546
|
+
return rs.path(`M${x1 + radius},${y1}
|
|
2547
|
+
l${sideLine},0
|
|
2548
|
+
a${radius},${radius},0,0,1,${radius},${radius}
|
|
2549
|
+
l0,${handleSideLine}
|
|
2550
|
+
m0,${handleSpace}
|
|
2551
|
+
l0,${handleSideLine}
|
|
2552
|
+
a${radius},${radius},0,0,1,-${radius},${radius}
|
|
2553
|
+
l-${sideLine},0
|
|
2554
|
+
a${radius},${radius},0,0,1,-${radius},-${radius}
|
|
2555
|
+
l0,-${handleSideLine}
|
|
2556
|
+
m0,-${handleSpace}
|
|
2557
|
+
l0,-${handleSideLine}
|
|
2558
|
+
a${radius},${radius},0,0,1,${radius},-${radius}`, options);
|
|
2559
|
+
}
|
|
2560
|
+
}
|
|
2503
2561
|
|
|
2504
2562
|
class NodeActiveDrawer extends BaseDrawer {
|
|
2505
2563
|
canDraw(element, data) {
|
|
@@ -2518,14 +2576,13 @@ class NodeActiveDrawer extends BaseDrawer {
|
|
|
2518
2576
|
activeG.append(this.abstractOutlineG);
|
|
2519
2577
|
}
|
|
2520
2578
|
const node = MindElement.getNode(element);
|
|
2521
|
-
|
|
2522
|
-
const
|
|
2579
|
+
const rectangle = getRectangleByNode(node);
|
|
2580
|
+
const activeStrokeWidth = 2;
|
|
2581
|
+
// add 0.1 to avoid white gap
|
|
2582
|
+
const offset = (getStrokeWidthByElement(this.board, element) + activeStrokeWidth) / 2 - 0.1;
|
|
2583
|
+
const activeRectangle = RectangleClient.getOutlineRectangle(rectangle, -offset);
|
|
2584
|
+
const strokeG = drawRoundRectangle(PlaitBoard.getRoughSVG(this.board), activeRectangle.x, activeRectangle.y, activeRectangle.x + activeRectangle.width, activeRectangle.y + activeRectangle.height, { stroke: PRIMARY_COLOR, strokeWidth: activeStrokeWidth, fill: '' }, true, DefaultNodeStyle.shape.rectangleRadius + offset);
|
|
2523
2585
|
this.g.appendChild(strokeG);
|
|
2524
|
-
if (!data.isEditing) {
|
|
2525
|
-
const fillG = drawRoundRectangle(PlaitBoard.getRoughSVG(this.board), x - 2, y - 2, x + width + 2, y + height + 2, { stroke: PRIMARY_COLOR, fill: PRIMARY_COLOR, fillStyle: 'solid' }, true);
|
|
2526
|
-
fillG.style.opacity = '0.15';
|
|
2527
|
-
this.g.appendChild(fillG);
|
|
2528
|
-
}
|
|
2529
2586
|
return activeG;
|
|
2530
2587
|
}
|
|
2531
2588
|
updateAbstractOutline(element, activeHandlePosition, resizingLocation) {
|
|
@@ -3765,15 +3822,9 @@ const withMind = (board) => {
|
|
|
3765
3822
|
board.applyTheme = (element) => {
|
|
3766
3823
|
const mindElement = element;
|
|
3767
3824
|
const shouldClearProperty = !PlaitBoard.isBoard(element) && ((mindElement === null || mindElement === void 0 ? void 0 : mindElement.branchColor) || (mindElement === null || mindElement === void 0 ? void 0 : mindElement.fill) || (mindElement === null || mindElement === void 0 ? void 0 : mindElement.strokeColor));
|
|
3768
|
-
const isAbstract = AbstractNode.isAbstract(element);
|
|
3769
3825
|
if (shouldClearProperty) {
|
|
3770
3826
|
const path = PlaitBoard.findPath(board, element);
|
|
3771
|
-
|
|
3772
|
-
Transforms.setNode(board, { fill: null, strokeColor: DefaultAbstractNodeStyle.strokeColor, branchColor: DefaultAbstractNodeStyle.branchColor }, path);
|
|
3773
|
-
}
|
|
3774
|
-
else {
|
|
3775
|
-
Transforms.setNode(board, { fill: null, strokeColor: null, branchColor: null }, path);
|
|
3776
|
-
}
|
|
3827
|
+
Transforms.setNode(board, { fill: null, strokeColor: null, branchColor: null }, path);
|
|
3777
3828
|
}
|
|
3778
3829
|
};
|
|
3779
3830
|
board.getRectangle = element => {
|
|
@@ -3922,5 +3973,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
3922
3973
|
* Generated bundle index. Do not edit.
|
|
3923
3974
|
*/
|
|
3924
3975
|
|
|
3925
|
-
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, NODE_MIN_WIDTH, 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, getFirstLevelElement, getHitAbstractHandle, getImageForeignRectangle, getInCorrectLayoutDirection, getLayoutDirection$1 as getLayoutDirection, getLayoutReverseDirection, getLocationScope, getMindThemeColor, getNextBranchColor, getOverallAbstracts, getPathByDropTarget, getRectangleByElement, getRectangleByNode, getRectangleByResizingLocation, getRelativeStartEndByAbstractRef, getRootLayout, getShapeByElement, getStrokeByMindElement, 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 };
|
|
3976
|
+
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, NODE_MIN_WIDTH, 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 };
|
|
3926
3977
|
//# sourceMappingURL=plait-mind.mjs.map
|