@plait/mind 0.69.2 → 0.71.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/default.d.ts +0 -1
- package/esm2022/constants/default.mjs +1 -2
- package/esm2022/interfaces/element.mjs +1 -1
- package/esm2022/utils/draw/node-link/abstract-link.mjs +9 -3
- package/esm2022/utils/draw/node-link/draw-link.mjs +4 -4
- package/esm2022/utils/draw/node-link/indented-link.mjs +15 -12
- package/esm2022/utils/draw/node-link/logic-link.mjs +19 -8
- package/esm2022/utils/draw/node-shape.mjs +8 -4
- package/esm2022/utils/mind.mjs +5 -5
- package/esm2022/utils/node/create-node.mjs +2 -1
- package/esm2022/utils/node-style/branch.mjs +7 -7
- package/esm2022/utils/node-style/shape.mjs +6 -2
- package/fesm2022/plait-mind.mjs +58 -36
- package/fesm2022/plait-mind.mjs.map +1 -1
- package/interfaces/element.d.ts +2 -0
- package/package.json +1 -1
- package/utils/draw/node-link/draw-link.d.ts +2 -1
- package/utils/draw/node-link/indented-link.d.ts +2 -1
- package/utils/draw/node-link/logic-link.d.ts +2 -1
- package/utils/mind.d.ts +2 -2
- package/utils/node/create-node.d.ts +1 -0
- package/utils/node-style/branch.d.ts +2 -2
- package/utils/node-style/shape.d.ts +3 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { PlaitBoard, isNullOrUndefined } from '@plait/core';
|
|
5
5
|
import { BranchShape } from '../../interfaces/element';
|
|
6
|
-
import {
|
|
6
|
+
import { STROKE_WIDTH } from '../../constants/default';
|
|
7
7
|
import { DefaultAbstractNodeStyle } from '../../constants/node-style';
|
|
8
8
|
import { getAvailableProperty } from './common';
|
|
9
9
|
import { MindDefaultThemeColor, MindThemeColor } from '../../interfaces/theme-color';
|
|
@@ -13,7 +13,7 @@ export const getBranchColorByMindElement = (board, element) => {
|
|
|
13
13
|
if (AbstractNode.isAbstract(element) || isChildOfAbstract(board, element)) {
|
|
14
14
|
return getAbstractBranchColor(board, element);
|
|
15
15
|
}
|
|
16
|
-
const branchColor = getAvailableProperty(board, element, 'branchColor');
|
|
16
|
+
const branchColor = getAvailableProperty(board, element, 'branchColor') || getAvailableProperty(board, element, 'strokeColor');
|
|
17
17
|
return branchColor || getDefaultBranchColor(board, element);
|
|
18
18
|
};
|
|
19
19
|
export const getBranchShapeByMindElement = (board, element) => {
|
|
@@ -21,8 +21,8 @@ export const getBranchShapeByMindElement = (board, element) => {
|
|
|
21
21
|
return branchShape || BranchShape.bight;
|
|
22
22
|
};
|
|
23
23
|
export const getBranchWidthByMindElement = (board, element) => {
|
|
24
|
-
const branchWidth = getAvailableProperty(board, element, 'branchWidth');
|
|
25
|
-
return branchWidth ||
|
|
24
|
+
const branchWidth = getAvailableProperty(board, element, 'branchWidth') || getAvailableProperty(board, element, 'strokeWidth');
|
|
25
|
+
return branchWidth || STROKE_WIDTH;
|
|
26
26
|
};
|
|
27
27
|
export const getAbstractBranchWidth = (board, element) => {
|
|
28
28
|
if (!isNullOrUndefined(element.branchWidth)) {
|
|
@@ -31,8 +31,8 @@ export const getAbstractBranchWidth = (board, element) => {
|
|
|
31
31
|
return DefaultAbstractNodeStyle.branch.width;
|
|
32
32
|
};
|
|
33
33
|
export const getAbstractBranchColor = (board, element) => {
|
|
34
|
-
if (element.branchColor) {
|
|
35
|
-
return element.branchColor;
|
|
34
|
+
if (element.branchColor || element.strokeColor) {
|
|
35
|
+
return element.branchColor || element.strokeColor;
|
|
36
36
|
}
|
|
37
37
|
return DefaultAbstractNodeStyle.branch.color;
|
|
38
38
|
};
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvbm9kZS1zdHlsZS9icmFuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUNuRixJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDeEUsT0FBTyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvSCxPQUFPLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUNuRixNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sV0FBVyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUNuRixNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0gsT0FBTyxXQUFXLElBQUksWUFBWSxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDOUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQzFDLE9BQU8sT0FBTyxDQUFDLFdBQXFCLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sd0JBQXdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQzlFLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0MsT0FBTyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDdEQsQ0FBQztJQUNELE9BQU8sd0JBQXdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsSUFBaUIsRUFBRSxFQUFFO0lBQ3ZFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ25DLE9BQU8sNEJBQTRCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDN0UsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsT0FBTyw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQzdFLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQzlDLE1BQU0sU0FBUyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDakMsT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ25ELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRixJQUFJLFVBQVUsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM1RCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8scUJBQXFCLENBQUM7SUFDakMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvY2Vzc2luZyBvZiBicmFuY2ggY29sb3IsIHdpZHRoLCBzdHlsZSwgZXRjLiBvZiB0aGUgbWluZCBub2RlXG4gKi9cbmltcG9ydCB7IFBsYWl0Qm9hcmQsIGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQnJhbmNoU2hhcGUsIE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFNUUk9LRV9XSURUSCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IERlZmF1bHRBYnN0cmFjdE5vZGVTdHlsZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcbmltcG9ydCB7IGdldEF2YWlsYWJsZVByb3BlcnR5IH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgTWluZERlZmF1bHRUaGVtZUNvbG9yLCBNaW5kVGhlbWVDb2xvciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGhlbWUtY29sb3InO1xuaW1wb3J0IHsgQWJzdHJhY3ROb2RlIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgaXNDaGlsZE9mQWJzdHJhY3QgfSBmcm9tICcuLi9hYnN0cmFjdC9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgZ2V0QnJhbmNoQ29sb3JCeU1pbmRFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSB8fCBpc0NoaWxkT2ZBYnN0cmFjdChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGdldEFic3RyYWN0QnJhbmNoQ29sb3IoYm9hcmQsIGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGJyYW5jaENvbG9yID0gZ2V0QXZhaWxhYmxlUHJvcGVydHkoYm9hcmQsIGVsZW1lbnQsICdicmFuY2hDb2xvcicpIHx8IGdldEF2YWlsYWJsZVByb3BlcnR5KGJvYXJkLCBlbGVtZW50LCAnc3Ryb2tlQ29sb3InKTtcbiAgICByZXR1cm4gYnJhbmNoQ29sb3IgfHwgZ2V0RGVmYXVsdEJyYW5jaENvbG9yKGJvYXJkLCBlbGVtZW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCcmFuY2hTaGFwZUJ5TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgYnJhbmNoU2hhcGUgPSBnZXRBdmFpbGFibGVQcm9wZXJ0eShib2FyZCwgZWxlbWVudCwgJ2JyYW5jaFNoYXBlJyk7XG4gICAgcmV0dXJuIGJyYW5jaFNoYXBlIHx8IEJyYW5jaFNoYXBlLmJpZ2h0O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJyYW5jaFdpZHRoQnlNaW5kRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBicmFuY2hXaWR0aCA9IGdldEF2YWlsYWJsZVByb3BlcnR5KGJvYXJkLCBlbGVtZW50LCAnYnJhbmNoV2lkdGgnKSB8fCBnZXRBdmFpbGFibGVQcm9wZXJ0eShib2FyZCwgZWxlbWVudCwgJ3N0cm9rZVdpZHRoJyk7XG4gICAgcmV0dXJuIGJyYW5jaFdpZHRoIHx8IFNUUk9LRV9XSURUSDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBYnN0cmFjdEJyYW5jaFdpZHRoID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoZWxlbWVudC5icmFuY2hXaWR0aCkpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuYnJhbmNoV2lkdGggYXMgbnVtYmVyO1xuICAgIH1cbiAgICByZXR1cm4gRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlLmJyYW5jaC53aWR0aDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBYnN0cmFjdEJyYW5jaENvbG9yID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGlmIChlbGVtZW50LmJyYW5jaENvbG9yIHx8IGVsZW1lbnQuc3Ryb2tlQ29sb3IpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuYnJhbmNoQ29sb3IgfHwgZWxlbWVudC5zdHJva2VDb2xvcjtcbiAgICB9XG4gICAgcmV0dXJuIERlZmF1bHRBYnN0cmFjdE5vZGVTdHlsZS5icmFuY2guY29sb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TmV4dEJyYW5jaENvbG9yID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByb290OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gcm9vdC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgcmV0dXJuIGdldERlZmF1bHRCcmFuY2hDb2xvckJ5SW5kZXgoYm9hcmQsIGluZGV4KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0QnJhbmNoQ29sb3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgIHJldHVybiBnZXREZWZhdWx0QnJhbmNoQ29sb3JCeUluZGV4KGJvYXJkLCBwYXRoWzFdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0QnJhbmNoQ29sb3JCeUluZGV4ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgdGhlbWVDb2xvciA9IGdldE1pbmRUaGVtZUNvbG9yKGJvYXJkKTtcbiAgICBjb25zdCBsZW5ndGggPSB0aGVtZUNvbG9yLmJyYW5jaENvbG9ycy5sZW5ndGg7XG4gICAgY29uc3QgcmVtYWluZGVyID0gaW5kZXggJSBsZW5ndGg7XG4gICAgcmV0dXJuIHRoZW1lQ29sb3IuYnJhbmNoQ29sb3JzW3JlbWFpbmRlcl07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWluZFRoZW1lQ29sb3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCB0aGVtZUNvbG9ycyA9IFBsYWl0Qm9hcmQuZ2V0VGhlbWVDb2xvcnMoYm9hcmQpO1xuICAgIGNvbnN0IHRoZW1lQ29sb3IgPSB0aGVtZUNvbG9ycy5maW5kKHZhbCA9PiB2YWwubW9kZSA9PT0gYm9hcmQudGhlbWUudGhlbWVDb2xvck1vZGUpO1xuICAgIGlmICh0aGVtZUNvbG9yICYmIE1pbmRUaGVtZUNvbG9yLmlzTWluZFRoZW1lQ29sb3IodGhlbWVDb2xvcikpIHtcbiAgICAgICAgcmV0dXJuIHRoZW1lQ29sb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIE1pbmREZWZhdWx0VGhlbWVDb2xvcjtcbiAgICB9XG59O1xuIl19
|
|
@@ -4,7 +4,8 @@ import { getDefaultBranchColor, getMindThemeColor } from './branch';
|
|
|
4
4
|
import { AbstractNode } from '@plait/layouts';
|
|
5
5
|
import { isChildOfAbstract } from '../abstract/common';
|
|
6
6
|
import { DefaultAbstractNodeStyle, DefaultNodeStyle } from '../../constants/node-style';
|
|
7
|
-
|
|
7
|
+
import { StrokeStyle } from '@plait/common';
|
|
8
|
+
export const getStrokeColorByElement = (board, element) => {
|
|
8
9
|
if (PlaitMind.isMind(element)) {
|
|
9
10
|
const defaultRootStroke = getMindThemeColor(board).rootFill;
|
|
10
11
|
return element.strokeColor || defaultRootStroke;
|
|
@@ -14,6 +15,9 @@ export const getStrokeByMindElement = (board, element) => {
|
|
|
14
15
|
}
|
|
15
16
|
return getAvailableProperty(board, element, 'strokeColor') || getDefaultBranchColor(board, element);
|
|
16
17
|
};
|
|
18
|
+
export const getStrokeStyleByElement = (board, element) => {
|
|
19
|
+
return element.strokeStyle || StrokeStyle.solid;
|
|
20
|
+
};
|
|
17
21
|
export const getStrokeWidthByElement = (board, element) => {
|
|
18
22
|
const strokeWidth = element.strokeWidth ||
|
|
19
23
|
(AbstractNode.isAbstract(element) ? DefaultAbstractNodeStyle.shape.strokeWidth : DefaultNodeStyle.shape.strokeWidth);
|
|
@@ -30,4 +34,4 @@ export const getShapeByElement = (board, element) => {
|
|
|
30
34
|
const shape = getAvailableProperty(board, element, 'shape');
|
|
31
35
|
return shape || MindElementShape.roundRectangle;
|
|
32
36
|
};
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlLXN0eWxlL3NoYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDL0UsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDNUQsT0FBTyxPQUFPLENBQUMsV0FBVyxJQUFJLGlCQUFpQixDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDeEUsT0FBTyxPQUFPLENBQUMsV0FBVyxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDN0UsQ0FBQztJQUVELE9BQU8sb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEcsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUMvRSxPQUFPLE9BQU8sQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQztBQUNwRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQy9FLE1BQU0sV0FBVyxHQUNiLE9BQU8sQ0FBQyxXQUFXO1FBQ25CLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pILE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDeEUsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUNELE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUMxRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztBQUMxRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBb0IsRUFBRTtJQUMzRixNQUFNLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELE9BQU8sS0FBSyxJQUFJLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztBQUNwRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIE1pbmRFbGVtZW50U2hhcGUsIFBsYWl0TWluZCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRBdmFpbGFibGVQcm9wZXJ0eSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGdldERlZmF1bHRCcmFuY2hDb2xvciwgZ2V0TWluZFRoZW1lQ29sb3IgfSBmcm9tICcuL2JyYW5jaCc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBpc0NoaWxkT2ZBYnN0cmFjdCB9IGZyb20gJy4uL2Fic3RyYWN0L2NvbW1vbic7XG5pbXBvcnQgeyBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUsIERlZmF1bHROb2RlU3R5bGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS1zdHlsZSc7XG5pbXBvcnQgeyBTdHJva2VTdHlsZSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgaWYgKFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdFJvb3RTdHJva2UgPSBnZXRNaW5kVGhlbWVDb2xvcihib2FyZCkucm9vdEZpbGw7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnN0cm9rZUNvbG9yIHx8IGRlZmF1bHRSb290U3Ryb2tlO1xuICAgIH1cblxuICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSB8fCBpc0NoaWxkT2ZBYnN0cmFjdChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuc3Ryb2tlQ29sb3IgfHwgRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlLnNoYXBlLnN0cm9rZUNvbG9yO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRBdmFpbGFibGVQcm9wZXJ0eShib2FyZCwgZWxlbWVudCwgJ3N0cm9rZUNvbG9yJykgfHwgZ2V0RGVmYXVsdEJyYW5jaENvbG9yKGJvYXJkLCBlbGVtZW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdHJva2VTdHlsZUJ5RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gZWxlbWVudC5zdHJva2VTdHlsZSB8fCBTdHJva2VTdHlsZS5zb2xpZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9XG4gICAgICAgIGVsZW1lbnQuc3Ryb2tlV2lkdGggfHxcbiAgICAgICAgKEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGVsZW1lbnQpID8gRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlLnNoYXBlLnN0cm9rZVdpZHRoIDogRGVmYXVsdE5vZGVTdHlsZS5zaGFwZS5zdHJva2VXaWR0aCk7XG4gICAgcmV0dXJuIHN0cm9rZVdpZHRoO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGxCeUVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgaWYgKGVsZW1lbnQuZmlsbCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5maWxsO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0Um9vdEZpbGwgPSBnZXRNaW5kVGhlbWVDb2xvcihib2FyZCkucm9vdEZpbGw7XG4gICAgcmV0dXJuIGVsZW1lbnQuaXNSb290ID8gZGVmYXVsdFJvb3RGaWxsIDogRGVmYXVsdE5vZGVTdHlsZS5zaGFwZS5maWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNoYXBlQnlFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCk6IE1pbmRFbGVtZW50U2hhcGUgPT4ge1xuICAgIGNvbnN0IHNoYXBlID0gZ2V0QXZhaWxhYmxlUHJvcGVydHkoYm9hcmQsIGVsZW1lbnQsICdzaGFwZScpO1xuICAgIHJldHVybiBzaGFwZSB8fCBNaW5kRWxlbWVudFNoYXBlLnJvdW5kUmVjdGFuZ2xlO1xufTtcbiJdfQ==
|
package/fesm2022/plait-mind.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DefaultThemeColor, DEFAULT_COLOR, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, PlaitElement, PlaitNode, Path, isNullOrUndefined, PlaitBoard, getSelectedElements, idCreator, Transforms, clearSelectedElement, addSelectedElement, distanceBetweenPointAndRectangle, RectangleClient, setDragging, depthFirstRecursion, getIsRecursionFunc, drawRoundRectangle, drawLinearPath, drawBezierPath, createG, createForeignObject, updateForeignObject, getRectangleByElements,
|
|
1
|
+
import { DefaultThemeColor, DEFAULT_COLOR, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, PlaitElement, PlaitNode, Path, isNullOrUndefined, PlaitBoard, getSelectedElements, idCreator, Transforms, clearSelectedElement, addSelectedElement, distanceBetweenPointAndRectangle, RectangleClient, setDragging, depthFirstRecursion, getIsRecursionFunc, drawRoundRectangle, drawLinearPath, drawBezierPath, setStrokeLinecap, createG, createForeignObject, updateForeignObject, getRectangleByElements, ACTIVE_STROKE_WIDTH, SELECTION_RECTANGLE_CLASS_NAME, NODE_TO_PARENT, removeSelectedElement, PlaitHistoryBoard, createText, PlaitPointerType, NODE_TO_INDEX, isMainPointer, toViewBoxPoint, toHostPoint, getHitElementByPoint, distanceBetweenPointAndPoint, isDragging, CoreTransforms, BOARD_TO_HOST, BoardTransforms, throttleRAF, isContextmenu, temporaryDisableSelection, hotkeys, createClipboardContext, WritableClipboardType, ResizeCursorClass, Point, WritableClipboardOperationType, addClipboardContext } from '@plait/core';
|
|
2
2
|
import { MindLayoutType, AbstractNode, isIndentedLayout, isHorizontalLayout, isHorizontalLogicLayout, ConnectingPosition, getNonAbstractChildren, isStandardLayout, isLeftLayout, isRightLayout, isVerticalLogicLayout, isTopLayout, isBottomLayout, getCorrectStartEnd, getAbstractLayout, GlobalLayout } from '@plait/layouts';
|
|
3
|
-
import { getFirstTextManage, buildText, getFirstTextEditor, RESIZE_HANDLE_DIAMETER, getRectangleResizeHandleRefs, addElementOfFocusedImage, ImageGenerator, removeElementOfFocusedImage, Generator, PropertyTransforms, CommonElementFlavour, WithTextPluginKey, TextManage, isDrawingMode, isDndMode, setCreationMode, BoardCreationMode, isExpandHotkey, isTabHotkey, isEnterHotkey, isVirtualKey, isDelete, isSpaceHotkey, getElementOfFocusedImage, acceptImageTypes, buildImage, withResize, measureElement, getElementsText } from '@plait/common';
|
|
3
|
+
import { StrokeStyle, getFirstTextManage, buildText, getFirstTextEditor, RESIZE_HANDLE_DIAMETER, getRectangleResizeHandleRefs, addElementOfFocusedImage, ImageGenerator, removeElementOfFocusedImage, getStrokeLineDash, Generator, PropertyTransforms, CommonElementFlavour, WithTextPluginKey, TextManage, isDrawingMode, isDndMode, setCreationMode, BoardCreationMode, isExpandHotkey, isTabHotkey, isEnterHotkey, isVirtualKey, isDelete, isSpaceHotkey, getElementOfFocusedImage, acceptImageTypes, buildImage, withResize, measureElement, getElementsText } from '@plait/common';
|
|
4
4
|
import { TEXT_DEFAULT_HEIGHT, PlaitMarkEditor, MarkTypes, DEFAULT_FONT_SIZE } from '@plait/text-plugins';
|
|
5
5
|
import { Node as Node$1, Path as Path$1 } from 'slate';
|
|
6
6
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
@@ -180,7 +180,6 @@ const BASE = 4;
|
|
|
180
180
|
const PRIMARY_COLOR = '#6698FF';
|
|
181
181
|
const GRAY_COLOR = '#AAAAAA';
|
|
182
182
|
const STROKE_WIDTH = 3;
|
|
183
|
-
const BRANCH_WIDTH = 3;
|
|
184
183
|
const EXTEND_OFFSET = 8;
|
|
185
184
|
const EXTEND_DIAMETER = 16;
|
|
186
185
|
const QUICK_INSERT_CIRCLE_OFFSET = 9;
|
|
@@ -402,7 +401,7 @@ const getBranchColorByMindElement = (board, element) => {
|
|
|
402
401
|
if (AbstractNode.isAbstract(element) || isChildOfAbstract(board, element)) {
|
|
403
402
|
return getAbstractBranchColor(board, element);
|
|
404
403
|
}
|
|
405
|
-
const branchColor = getAvailableProperty(board, element, 'branchColor');
|
|
404
|
+
const branchColor = getAvailableProperty(board, element, 'branchColor') || getAvailableProperty(board, element, 'strokeColor');
|
|
406
405
|
return branchColor || getDefaultBranchColor(board, element);
|
|
407
406
|
};
|
|
408
407
|
const getBranchShapeByMindElement = (board, element) => {
|
|
@@ -410,8 +409,8 @@ const getBranchShapeByMindElement = (board, element) => {
|
|
|
410
409
|
return branchShape || BranchShape.bight;
|
|
411
410
|
};
|
|
412
411
|
const getBranchWidthByMindElement = (board, element) => {
|
|
413
|
-
const branchWidth = getAvailableProperty(board, element, 'branchWidth');
|
|
414
|
-
return branchWidth ||
|
|
412
|
+
const branchWidth = getAvailableProperty(board, element, 'branchWidth') || getAvailableProperty(board, element, 'strokeWidth');
|
|
413
|
+
return branchWidth || STROKE_WIDTH;
|
|
415
414
|
};
|
|
416
415
|
const getAbstractBranchWidth = (board, element) => {
|
|
417
416
|
if (!isNullOrUndefined(element.branchWidth)) {
|
|
@@ -420,8 +419,8 @@ const getAbstractBranchWidth = (board, element) => {
|
|
|
420
419
|
return DefaultAbstractNodeStyle.branch.width;
|
|
421
420
|
};
|
|
422
421
|
const getAbstractBranchColor = (board, element) => {
|
|
423
|
-
if (element.branchColor) {
|
|
424
|
-
return element.branchColor;
|
|
422
|
+
if (element.branchColor || element.strokeColor) {
|
|
423
|
+
return element.branchColor || element.strokeColor;
|
|
425
424
|
}
|
|
426
425
|
return DefaultAbstractNodeStyle.branch.color;
|
|
427
426
|
};
|
|
@@ -450,7 +449,7 @@ const getMindThemeColor = (board) => {
|
|
|
450
449
|
}
|
|
451
450
|
};
|
|
452
451
|
|
|
453
|
-
const
|
|
452
|
+
const getStrokeColorByElement = (board, element) => {
|
|
454
453
|
if (PlaitMind.isMind(element)) {
|
|
455
454
|
const defaultRootStroke = getMindThemeColor(board).rootFill;
|
|
456
455
|
return element.strokeColor || defaultRootStroke;
|
|
@@ -460,6 +459,9 @@ const getStrokeByMindElement = (board, element) => {
|
|
|
460
459
|
}
|
|
461
460
|
return getAvailableProperty(board, element, 'strokeColor') || getDefaultBranchColor(board, element);
|
|
462
461
|
};
|
|
462
|
+
const getStrokeStyleByElement = (board, element) => {
|
|
463
|
+
return element.strokeStyle || StrokeStyle.solid;
|
|
464
|
+
};
|
|
463
465
|
const getStrokeWidthByElement = (board, element) => {
|
|
464
466
|
const strokeWidth = element.strokeWidth ||
|
|
465
467
|
(AbstractNode.isAbstract(element) ? DefaultAbstractNodeStyle.shape.strokeWidth : DefaultNodeStyle.shape.strokeWidth);
|
|
@@ -710,6 +712,7 @@ const INHERIT_ATTRIBUTE_KEYS = [
|
|
|
710
712
|
'fill',
|
|
711
713
|
'strokeColor',
|
|
712
714
|
'strokeWidth',
|
|
715
|
+
'strokeStyle',
|
|
713
716
|
'shape',
|
|
714
717
|
'layout',
|
|
715
718
|
'branchColor',
|
|
@@ -745,11 +748,11 @@ const getFirstLevelElement = (elements) => {
|
|
|
745
748
|
});
|
|
746
749
|
return result;
|
|
747
750
|
};
|
|
748
|
-
const isChildRight = (
|
|
749
|
-
return
|
|
751
|
+
const isChildRight = (parent, child) => {
|
|
752
|
+
return parent.x < child.x;
|
|
750
753
|
};
|
|
751
|
-
const isChildUp = (
|
|
752
|
-
return
|
|
754
|
+
const isChildUp = (parent, child) => {
|
|
755
|
+
return parent.y > child.y;
|
|
753
756
|
};
|
|
754
757
|
const copyNewNode = (node) => {
|
|
755
758
|
const newNode = { ...node };
|
|
@@ -1328,14 +1331,17 @@ function drawRoundRectangleByNode(board, node) {
|
|
|
1328
1331
|
}
|
|
1329
1332
|
function drawRoundRectangleByElement(board, nodeRectangle, element) {
|
|
1330
1333
|
const fill = getFillByElement(board, element);
|
|
1331
|
-
const stroke =
|
|
1334
|
+
const stroke = getStrokeColorByElement(board, element);
|
|
1332
1335
|
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
1336
|
+
const strokeStyle = getStrokeStyleByElement(board, element);
|
|
1337
|
+
const strokeLineDash = getStrokeLineDash(strokeStyle, strokeWidth);
|
|
1333
1338
|
const newNodeRectangle = RectangleClient.inflate(nodeRectangle, -strokeWidth);
|
|
1334
1339
|
const nodeG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), newNodeRectangle.x, newNodeRectangle.y, newNodeRectangle.x + newNodeRectangle.width, newNodeRectangle.y + newNodeRectangle.height, {
|
|
1335
1340
|
stroke,
|
|
1336
1341
|
strokeWidth,
|
|
1337
1342
|
fill,
|
|
1338
|
-
fillStyle: 'solid'
|
|
1343
|
+
fillStyle: 'solid',
|
|
1344
|
+
strokeLineDash
|
|
1339
1345
|
}, false, DefaultNodeStyle.shape.rectangleRadius);
|
|
1340
1346
|
return nodeG;
|
|
1341
1347
|
}
|
|
@@ -1475,19 +1481,20 @@ const transformPlacement = (placement, direction) => {
|
|
|
1475
1481
|
}
|
|
1476
1482
|
};
|
|
1477
1483
|
|
|
1478
|
-
function drawIndentedLink(board,
|
|
1479
|
-
const branchShape = getBranchShapeByMindElement(board,
|
|
1480
|
-
const branchWidth = defaultStrokeWidth || getBranchWidthByMindElement(board,
|
|
1481
|
-
const branchColor =
|
|
1484
|
+
function drawIndentedLink(board, parent, child, needDrawUnderline = true, defaultStrokeColor = null, defaultStrokeWidth, defaultStrokeStyle) {
|
|
1485
|
+
const branchShape = getBranchShapeByMindElement(board, parent.origin);
|
|
1486
|
+
const branchWidth = defaultStrokeWidth || getBranchWidthByMindElement(board, child.origin);
|
|
1487
|
+
const branchColor = defaultStrokeColor || getBranchColorByMindElement(board, child.origin);
|
|
1488
|
+
const strokeStyle = defaultStrokeStyle || getStrokeStyleByElement(board, child.origin);
|
|
1482
1489
|
const isUnderlineShape = getShapeByElement(board, child.origin) === MindElementShape.underline;
|
|
1483
|
-
let beginX, beginY, endX, endY, beginNode =
|
|
1490
|
+
let beginX, beginY, endX, endY, beginNode = parent, endNode = child;
|
|
1484
1491
|
const beginRectangle = getRectangleByNode(beginNode);
|
|
1485
1492
|
const endRectangle = getRectangleByNode(endNode);
|
|
1486
1493
|
beginX = beginNode.x + beginNode.width / 2;
|
|
1487
|
-
beginY = isChildUp(
|
|
1488
|
-
endX =
|
|
1494
|
+
beginY = isChildUp(parent, child) ? beginRectangle.y : beginRectangle.y + beginRectangle.height;
|
|
1495
|
+
endX = parent.left ? endNode.x + endNode.hGap + endRectangle.width : endNode.x + endNode.hGap;
|
|
1489
1496
|
endY = isUnderlineShape ? endNode.y + endNode.height - endNode.vGap : endNode.y + endNode.height / 2;
|
|
1490
|
-
let plusMinus = isChildUp(
|
|
1497
|
+
let plusMinus = isChildUp(parent, child) ? (parent.left ? [-1, -1] : [1, -1]) : parent.left ? [-1, 1] : [1, 1];
|
|
1491
1498
|
let curve = [
|
|
1492
1499
|
[beginX, beginY],
|
|
1493
1500
|
[beginX, beginY],
|
|
@@ -1500,6 +1507,7 @@ function drawIndentedLink(board, node, child, defaultStroke = null, needDrawUnde
|
|
|
1500
1507
|
isUnderlineShape && needDrawUnderline ? [endX + (endNode.width - endNode.hGap * 2) * plusMinus[0], endY] : [endX, endY],
|
|
1501
1508
|
isUnderlineShape && needDrawUnderline ? [endX + (endNode.width - endNode.hGap * 2) * plusMinus[0], endY] : [endX, endY]
|
|
1502
1509
|
];
|
|
1510
|
+
const strokeLineDash = getStrokeLineDash(strokeStyle, branchWidth);
|
|
1503
1511
|
if (branchShape === BranchShape.polyline) {
|
|
1504
1512
|
const polylinePoints = [
|
|
1505
1513
|
[beginX, beginY],
|
|
@@ -1507,16 +1515,17 @@ function drawIndentedLink(board, node, child, defaultStroke = null, needDrawUnde
|
|
|
1507
1515
|
[endX, endY],
|
|
1508
1516
|
isUnderlineShape && needDrawUnderline ? [endX + (endNode.width - endNode.hGap * 2) * plusMinus[0], endY] : [endX, endY]
|
|
1509
1517
|
];
|
|
1510
|
-
return drawLinearPath(polylinePoints, { stroke: branchColor, strokeWidth: branchWidth });
|
|
1518
|
+
return drawLinearPath(polylinePoints, { stroke: branchColor, strokeWidth: branchWidth, strokeLineDash });
|
|
1511
1519
|
}
|
|
1512
1520
|
const points = pointsOnBezierCurves(curve, 0.001);
|
|
1513
|
-
return drawBezierPath(points, { stroke: branchColor, strokeWidth: branchWidth });
|
|
1521
|
+
return drawBezierPath(points, { stroke: branchColor, strokeWidth: branchWidth, strokeLineDash });
|
|
1514
1522
|
}
|
|
1515
1523
|
|
|
1516
|
-
function drawLogicLink(board, parent, node, isHorizontal,
|
|
1524
|
+
function drawLogicLink(board, parent, node, isHorizontal, defaultStrokeColor = null, defaultStrokeWidth, defaultStrokeStyle) {
|
|
1517
1525
|
const branchShape = getBranchShapeByMindElement(board, parent.origin);
|
|
1518
|
-
const branchColor =
|
|
1519
|
-
const branchWidth = defaultStrokeWidth || getBranchWidthByMindElement(board,
|
|
1526
|
+
const branchColor = defaultStrokeColor || getBranchColorByMindElement(board, node.origin);
|
|
1527
|
+
const branchWidth = defaultStrokeWidth || getBranchWidthByMindElement(board, node.origin);
|
|
1528
|
+
const strokeStyle = defaultStrokeStyle || getStrokeStyleByElement(board, node.origin);
|
|
1520
1529
|
const hasStraightLine = branchShape === BranchShape.polyline ? true : !parent.origin.isRoot;
|
|
1521
1530
|
const parentShape = getShapeByElement(board, parent.origin);
|
|
1522
1531
|
const shape = getShapeByElement(board, node.origin);
|
|
@@ -1557,6 +1566,9 @@ function drawLogicLink(board, parent, node, isHorizontal, defaultStroke = null,
|
|
|
1557
1566
|
const underlineEnd = moveXOfPoint(endPoint, nodeClient.width, linkDirection);
|
|
1558
1567
|
const underline = hasUnderlineShape && isHorizontal ? [underlineEnd, underlineEnd, underlineEnd] : [];
|
|
1559
1568
|
const points = pointsOnBezierCurves([...straightLine, ...curve, ...underline]);
|
|
1569
|
+
const strokeLineDash = getStrokeLineDash(strokeStyle, branchWidth);
|
|
1570
|
+
console.log(`strokeStyle: ${strokeStyle}, strokeLineDash: `, strokeLineDash);
|
|
1571
|
+
let linkG;
|
|
1560
1572
|
if (branchShape === BranchShape.polyline) {
|
|
1561
1573
|
const buffer = 8;
|
|
1562
1574
|
const movePoint = moveXOfPoint(beginPoint2, buffer, linkDirection);
|
|
@@ -1567,15 +1579,21 @@ function drawLogicLink(board, parent, node, isHorizontal, defaultStroke = null,
|
|
|
1567
1579
|
endPoint,
|
|
1568
1580
|
...underline
|
|
1569
1581
|
];
|
|
1570
|
-
|
|
1582
|
+
linkG = drawLinearPath(polylinePoints, { stroke: branchColor, strokeWidth: branchWidth, strokeLineDash });
|
|
1571
1583
|
}
|
|
1572
|
-
|
|
1584
|
+
else {
|
|
1585
|
+
linkG = PlaitBoard.getRoughSVG(board).curve(points, { stroke: branchColor, strokeWidth: branchWidth, strokeLineDash });
|
|
1586
|
+
}
|
|
1587
|
+
if (strokeStyle === StrokeStyle.dotted) {
|
|
1588
|
+
setStrokeLinecap(linkG, 'round');
|
|
1589
|
+
}
|
|
1590
|
+
return linkG;
|
|
1573
1591
|
}
|
|
1574
1592
|
|
|
1575
|
-
function drawLink(board, parentNode, node, isHorizontal, needDrawUnderline,
|
|
1593
|
+
function drawLink(board, parentNode, node, isHorizontal, needDrawUnderline, defaultStrokeColor, defaultStrokeWidth, defaultStrokeStyle) {
|
|
1576
1594
|
return MindElement.isIndentedLayout(parentNode.origin)
|
|
1577
|
-
? drawIndentedLink(board, parentNode, node,
|
|
1578
|
-
: drawLogicLink(board, parentNode, node, isHorizontal,
|
|
1595
|
+
? drawIndentedLink(board, parentNode, node, needDrawUnderline, defaultStrokeColor, defaultStrokeWidth, defaultStrokeStyle)
|
|
1596
|
+
: drawLogicLink(board, parentNode, node, isHorizontal, defaultStrokeColor, defaultStrokeWidth, defaultStrokeStyle);
|
|
1579
1597
|
}
|
|
1580
1598
|
|
|
1581
1599
|
const FOREIGN_OBJECT_EMOJI_CLASS_NAME = 'foreign-object-emoji';
|
|
@@ -2381,6 +2399,7 @@ function drawAbstractLink(board, node, isHorizontal) {
|
|
|
2381
2399
|
const linkPadding = 15;
|
|
2382
2400
|
const branchWidth = getAbstractBranchWidth(board, node.origin);
|
|
2383
2401
|
const branchColor = getAbstractBranchColor(board, node.origin);
|
|
2402
|
+
const strokeStyle = getStrokeStyleByElement(board, node.origin);
|
|
2384
2403
|
const parent = node.parent;
|
|
2385
2404
|
const branchShape = getBranchShapeByMindElement(board, node.origin);
|
|
2386
2405
|
const abstractRectangle = getRectangleByNode(node);
|
|
@@ -2404,6 +2423,7 @@ function drawAbstractLink(board, node, isHorizontal) {
|
|
|
2404
2423
|
bezierEndPoint = moveXOfPoint(bezierEndPoint, linkPadding, linkDirection);
|
|
2405
2424
|
let c2 = moveXOfPoint(bezierEndPoint, curveDistance, linkDirection);
|
|
2406
2425
|
let bezierConnectorPoint = moveXOfPoint(abstractConnectorPoint, -linkPadding, linkDirection);
|
|
2426
|
+
const strokeLineDash = getStrokeLineDash(strokeStyle, branchWidth);
|
|
2407
2427
|
if (branchShape === BranchShape.polyline) {
|
|
2408
2428
|
const g = createG();
|
|
2409
2429
|
const polyline = drawLinearPath([bezierBeginPoint, c1, bezierConnectorPoint, c2, bezierEndPoint], {
|
|
@@ -2412,7 +2432,8 @@ function drawAbstractLink(board, node, isHorizontal) {
|
|
|
2412
2432
|
});
|
|
2413
2433
|
const straightLine = drawLinearPath([abstractConnectorPoint, bezierConnectorPoint], {
|
|
2414
2434
|
stroke: branchColor,
|
|
2415
|
-
strokeWidth: branchWidth
|
|
2435
|
+
strokeWidth: branchWidth,
|
|
2436
|
+
strokeLineDash
|
|
2416
2437
|
});
|
|
2417
2438
|
g.appendChild(polyline);
|
|
2418
2439
|
g.appendChild(straightLine);
|
|
@@ -2420,7 +2441,8 @@ function drawAbstractLink(board, node, isHorizontal) {
|
|
|
2420
2441
|
}
|
|
2421
2442
|
const link = PlaitBoard.getRoughSVG(board).path(`M${bezierBeginPoint[0]},${bezierBeginPoint[1]} Q${c1[0]},${c1[1]} ${bezierConnectorPoint[0]},${bezierConnectorPoint[1]} Q${c2[0]},${c2[1]} ${bezierEndPoint[0]},${bezierEndPoint[1]} M${abstractConnectorPoint[0]},${abstractConnectorPoint[1]} L${bezierConnectorPoint[0]},${bezierConnectorPoint[1]}`, {
|
|
2422
2443
|
stroke: branchColor,
|
|
2423
|
-
strokeWidth: branchWidth
|
|
2444
|
+
strokeWidth: branchWidth,
|
|
2445
|
+
strokeLineDash
|
|
2424
2446
|
});
|
|
2425
2447
|
return link;
|
|
2426
2448
|
}
|
|
@@ -4149,5 +4171,5 @@ class MindEmojiBaseComponent {
|
|
|
4149
4171
|
* Generated bundle index. Do not edit.
|
|
4150
4172
|
*/
|
|
4151
4173
|
|
|
4152
|
-
export { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_HANDLE_MASK_WIDTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET, AbstractHandlePosition, AbstractResizeState, BASE, BRANCH_FONT_FAMILY,
|
|
4174
|
+
export { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_HANDLE_MASK_WIDTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET, AbstractHandlePosition, AbstractResizeState, BASE, BRANCH_FONT_FAMILY, BranchShape, DEFAULT_FONT_FAMILY, DEFAULT_MIND_IMAGE_WIDTH, DefaultAbstractNodeStyle, DefaultNodeStyle, ELEMENT_TO_NODE, EXTEND_DIAMETER, EXTEND_OFFSET, GRAY_COLOR, INHERIT_ATTRIBUTE_KEYS, LayoutDirection, LayoutDirectionsMap, MindColorfulThemeColor, MindDarkThemeColor, MindDefaultThemeColor, MindElement, MindElementShape, MindEmojiBaseComponent, MindNode, MindNodeComponent, MindPointerType, MindQueries, MindRetroThemeColor, MindSoftThemeColor, MindStarryThemeColor, MindThemeColor, MindThemeColors, MindTransforms, NodeSpace, NodeTopicThreshold, PRIMARY_COLOR, PlaitMind, PlaitMindComponent, QUICK_INSERT_CIRCLE_COLOR, QUICK_INSERT_CIRCLE_OFFSET, QUICK_INSERT_INNER_CROSS_COLOR, ROOT_TOPIC_FONT_SIZE, ROOT_TOPIC_HEIGHT, ROOT_TOPIC_WIDTH, STROKE_WIDTH, TOPIC_DEFAULT_MAX_WORD_COUNT, TOPIC_FONT_SIZE, WithMindPluginKey, addActiveOnDragOrigin, addImageFocus, adjustAbstractToNode, adjustNodeToRoot, adjustRootToNode, canSetAbstract, copyNewNode, correctLayoutByDirection, createDefaultMind, createEmptyMind, createMindElement, deleteElementHandleAbstract, deleteElementsHandleRightNodeCount, detectDropTarget, directionCorrector, directionDetector, divideElementByParent, drawFakeDragNode, drawFakeDropNode, editTopic, findLastChild, findLocationLeftIndex, findNewChildNodePath, findNewSiblingNodePath, getAbstractBranchColor, getAbstractBranchWidth, getAbstractHandleRectangle, getAllowedDirection, getAvailableSubLayoutsByLayoutDirections, getBehindAbstracts, getBranchColorByMindElement, getBranchDirectionsByLayouts, getBranchShapeByMindElement, getBranchWidthByMindElement, getChildrenCount, getCorrespondingAbstract, getDefaultBranchColor, getDefaultBranchColorByIndex, getDefaultLayout, getDefaultMindElementFontSize, getEmojiFontSize, getEmojiForeignRectangle, getEmojiRectangle, getEmojisWidthHeight, getFillByElement, getFirstLevelElement, getFontSizeBySlateElement, getHitAbstractHandle, getHitImageResizeHandleDirection, getImageForeignRectangle, getInCorrectLayoutDirection, getLayoutDirection$1 as getLayoutDirection, getLayoutOptions, getLayoutReverseDirection, getLocationScope, getMindThemeColor, getNewNodeHeight, getNextBranchColor, getOverallAbstracts, getPathByDropTarget, getRectangleByElement, getRectangleByNode, getRectangleByResizingLocation, getRelativeStartEndByAbstractRef, getRootLayout, getSelectedMindElements, getShapeByElement, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getTopicRectangleByElement, getTopicRectangleByNode, getValidAbstractRefs, handleTouchedAbstract, hasPreviousOrNextOfDropPath, insertElementHandleAbstract, insertElementHandleRightNodeCount, insertMindElement, isChildElement, isChildOfAbstract, isChildRight, isChildUp, isCorrectLayout, isDropStandardRight, isHitEmojis, isHitImage, isHitMindElement, isInRightBranchOfStandardLayout, isMixedLayout, isSetAbstract, isValidTarget, removeActiveOnDragOrigin, removeImageFocus, separateChildren, setMindDragging, withEmoji, withMind, withMindExtend };
|
|
4153
4175
|
//# sourceMappingURL=plait-mind.mjs.map
|