@plait/mind 0.27.0-next.0 → 0.27.0-next.10
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/emoji-base.component.d.ts +2 -2
- package/base/index.d.ts +0 -1
- package/constants/default.d.ts +1 -0
- package/constants/node-topic-style.d.ts +4 -0
- package/drawer/{node-active.drawer.d.ts → node-active.generator.d.ts} +2 -2
- package/drawer/node-shape.generator.d.ts +10 -0
- package/esm2022/base/emoji-base.component.mjs +46 -0
- package/{esm2020 → esm2022}/base/index.mjs +1 -2
- package/{esm2020 → esm2022}/constants/abstract-node.mjs +1 -1
- package/{esm2020 → esm2022}/constants/default.mjs +2 -1
- package/{esm2020 → esm2022}/constants/index.mjs +1 -1
- package/esm2022/constants/node-topic-style.mjs +12 -0
- package/esm2022/drawer/node-active.generator.mjs +42 -0
- package/esm2022/drawer/node-shape.generator.mjs +19 -0
- package/esm2022/interfaces/element-data.mjs +2 -0
- package/esm2022/interfaces/element.mjs +118 -0
- package/{esm2020 → esm2022}/interfaces/index.mjs +2 -1
- package/esm2022/interfaces/options.mjs +2 -0
- package/{esm2020 → esm2022}/interfaces/theme-color.mjs +1 -1
- package/esm2022/mind-node.component.mjs +235 -0
- package/esm2022/mind.component.mjs +52 -0
- package/esm2022/plugins/with-abstract-resize.mjs +112 -0
- package/esm2022/plugins/with-mind-create.mjs +112 -0
- package/esm2022/plugins/with-mind-fragment.mjs +90 -0
- package/esm2022/plugins/with-mind-hotkey.mjs +67 -0
- package/esm2022/plugins/with-mind.mjs +91 -0
- package/esm2022/plugins/with-node-dnd.mjs +180 -0
- package/esm2022/plugins/with-node-image-resize.mjs +48 -0
- package/esm2022/plugins/with-node-image.mjs +98 -0
- package/esm2022/plugins/with-node-resize.mjs +133 -0
- package/{esm2020 → esm2022}/public-api.mjs +2 -3
- package/{esm2020 → esm2022}/transforms/image.mjs +1 -1
- package/esm2022/transforms/index.mjs +23 -0
- package/esm2022/transforms/node.mjs +66 -0
- package/{esm2020 → esm2022}/utils/abstract/common.mjs +2 -2
- package/{esm2020 → esm2022}/utils/abstract/resize.mjs +3 -3
- package/{esm2020 → esm2022}/utils/clipboard.mjs +3 -3
- package/{esm2020 → esm2022}/utils/dnd/common.mjs +1 -1
- package/esm2022/utils/draw/abstract-outline.mjs +117 -0
- package/esm2022/utils/draw/node-dnd.mjs +159 -0
- package/{esm2020 → esm2022}/utils/draw/node-shape.mjs +4 -3
- package/esm2022/utils/index.mjs +15 -0
- package/{esm2020 → esm2022}/utils/node/common.mjs +1 -1
- package/esm2022/utils/node/create-node.mjs +55 -0
- package/esm2022/utils/node/dynamic-width.mjs +19 -0
- package/esm2022/utils/node/image.mjs +23 -0
- package/esm2022/utils/position/image.mjs +36 -0
- package/esm2022/utils/position/node.mjs +36 -0
- package/esm2022/utils/position/topic.mjs +16 -0
- package/{esm2020 → esm2022}/utils/space/index.mjs +1 -1
- package/esm2022/utils/space/layout-options.mjs +69 -0
- package/esm2022/utils/space/node-space.mjs +137 -0
- package/{fesm2020 → fesm2022}/plait-mind.mjs +1383 -1569
- package/fesm2022/plait-mind.mjs.map +1 -0
- package/interfaces/element-data.d.ts +5 -9
- package/interfaces/element.d.ts +1 -0
- package/interfaces/index.d.ts +1 -0
- package/interfaces/options.d.ts +2 -4
- package/{node.component.d.ts → mind-node.component.d.ts} +11 -10
- package/mind.component.d.ts +2 -2
- package/package.json +7 -13
- package/plugins/with-mind-fragment.d.ts +5 -0
- package/plugins/with-mind-hotkey.d.ts +0 -6
- package/public-api.d.ts +1 -2
- package/styles/styles.scss +7 -3
- package/transforms/image.d.ts +3 -2
- package/transforms/index.d.ts +1 -2
- package/transforms/node.d.ts +0 -1
- package/utils/abstract/common.d.ts +2 -2
- package/utils/index.d.ts +0 -1
- package/utils/node/create-node.d.ts +2 -2
- package/utils/node/image.d.ts +0 -2
- package/utils/position/image.d.ts +1 -1
- package/utils/position/node.d.ts +1 -1
- package/utils/space/layout-options.d.ts +2 -2
- package/utils/space/node-space.d.ts +1 -5
- package/base/image-base.component.d.ts +0 -27
- package/constants/image.d.ts +0 -3
- package/drawer/node-image.drawer.d.ts +0 -15
- package/esm2020/base/emoji-base.component.mjs +0 -46
- package/esm2020/base/image-base.component.mjs +0 -67
- package/esm2020/constants/image.mjs +0 -4
- package/esm2020/constants/node-topic-style.mjs +0 -8
- package/esm2020/drawer/node-active.drawer.mjs +0 -44
- package/esm2020/drawer/node-image.drawer.mjs +0 -59
- package/esm2020/interfaces/element-data.mjs +0 -2
- package/esm2020/interfaces/element.mjs +0 -111
- package/esm2020/interfaces/options.mjs +0 -2
- package/esm2020/mind.component.mjs +0 -51
- package/esm2020/mind.module.mjs +0 -21
- package/esm2020/node.component.mjs +0 -248
- package/esm2020/plugins/with-abstract-resize.mjs +0 -112
- package/esm2020/plugins/with-mind-create.mjs +0 -109
- package/esm2020/plugins/with-mind-hotkey.mjs +0 -122
- package/esm2020/plugins/with-mind.mjs +0 -114
- package/esm2020/plugins/with-node-dnd.mjs +0 -180
- package/esm2020/plugins/with-node-image-resize.mjs +0 -48
- package/esm2020/plugins/with-node-image.mjs +0 -96
- package/esm2020/plugins/with-node-resize.mjs +0 -133
- package/esm2020/transforms/index.mjs +0 -24
- package/esm2020/transforms/node.mjs +0 -82
- package/esm2020/utils/draw/abstract-outline.mjs +0 -117
- package/esm2020/utils/draw/node-dnd.mjs +0 -159
- package/esm2020/utils/index.mjs +0 -16
- package/esm2020/utils/is-virtual-key.mjs +0 -13
- package/esm2020/utils/node/create-node.mjs +0 -52
- package/esm2020/utils/node/dynamic-width.mjs +0 -22
- package/esm2020/utils/node/image.mjs +0 -63
- package/esm2020/utils/position/image.mjs +0 -36
- package/esm2020/utils/position/node.mjs +0 -34
- package/esm2020/utils/position/topic.mjs +0 -17
- package/esm2020/utils/space/layout-options.mjs +0 -72
- package/esm2020/utils/space/node-space.mjs +0 -142
- package/fesm2015/plait-mind.mjs +0 -4402
- package/fesm2015/plait-mind.mjs.map +0 -1
- package/fesm2020/plait-mind.mjs.map +0 -1
- package/mind.module.d.ts +0 -11
- package/utils/is-virtual-key.d.ts +0 -1
- /package/{esm2020 → esm2022}/base/base.drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/node-style.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/theme.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/node-collapse.drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/node-emojis.drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/node-insert.drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/layout.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/node.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/pointer.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/types.mjs +0 -0
- /package/{esm2020 → esm2022}/plait-mind.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/with-abstract-resize.board.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/with-mind-extend.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/with-mind.board.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/with-node-hover-detect.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-available-sublayouts-by-element.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-branch-layouts.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-correct-layout-by-element.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-layout-by-element.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/index.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/abstract-node.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/emoji.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/layout.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dnd/detector.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/draw/node-link/abstract-link.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/draw/node-link/draw-link.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/draw/node-link/indented-link.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/draw/node-link/logic-link.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/layout.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/mind.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node/adjust-node.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node/right-node-count.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-hover/extend.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-style/branch.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-style/common.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-style/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-style/shape.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/path.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/point-placement.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/position/emoji.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/position/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/space/emoji.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/weak-maps.mjs +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getRectangleByNode } from '../position/node';
|
|
2
|
-
import { PlaitBoard, drawRoundRectangle } from '@plait/core';
|
|
2
|
+
import { PlaitBoard, RectangleClient, drawRoundRectangle } from '@plait/core';
|
|
3
3
|
import { getFillByElement, getStrokeByMindElement, getStrokeWidthByElement } from '../node-style/shape';
|
|
4
4
|
import { DefaultNodeStyle } from '../../constants/node-style';
|
|
5
5
|
export function drawRoundRectangleByNode(board, node) {
|
|
@@ -10,7 +10,8 @@ export function drawRoundRectangleByElement(board, nodeRectangle, element) {
|
|
|
10
10
|
const fill = getFillByElement(board, element);
|
|
11
11
|
const stroke = getStrokeByMindElement(board, element);
|
|
12
12
|
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
13
|
-
const
|
|
13
|
+
const newNodeRectangle = RectangleClient.inflate(nodeRectangle, -strokeWidth);
|
|
14
|
+
const nodeG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), newNodeRectangle.x, newNodeRectangle.y, newNodeRectangle.x + newNodeRectangle.width, newNodeRectangle.y + newNodeRectangle.height, {
|
|
14
15
|
stroke,
|
|
15
16
|
strokeWidth,
|
|
16
17
|
fill,
|
|
@@ -18,4 +19,4 @@ export function drawRoundRectangleByElement(board, nodeRectangle, element) {
|
|
|
18
19
|
}, false, DefaultNodeStyle.shape.rectangleRadius);
|
|
19
20
|
return nodeG;
|
|
20
21
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zaGFwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL2RyYXcvbm9kZS1zaGFwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc5RCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBaUIsRUFBRSxJQUFjO0lBQ3RFLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLE9BQU8sMkJBQTJCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxLQUFpQixFQUFFLGFBQThCLEVBQUUsT0FBb0I7SUFDL0csTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUM1QixVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUM3QixnQkFBZ0IsQ0FBQyxDQUFDLEVBQ2xCLGdCQUFnQixDQUFDLENBQUMsRUFDbEIsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFDM0MsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFDNUM7UUFDSSxNQUFNO1FBQ04sV0FBVztRQUNYLElBQUk7UUFDSixTQUFTLEVBQUUsT0FBTztLQUNyQixFQUNELEtBQUssRUFDTCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUN6QyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUmVjdGFuZ2xlQ2xpZW50LCBkcmF3Um91bmRSZWN0YW5nbGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRGaWxsQnlFbGVtZW50LCBnZXRTdHJva2VCeU1pbmRFbGVtZW50LCBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL25vZGUtc3R5bGUvc2hhcGUnO1xuaW1wb3J0IHsgRGVmYXVsdE5vZGVTdHlsZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3Um91bmRSZWN0YW5nbGVCeU5vZGUoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IE1pbmROb2RlKSB7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKG5vZGUpO1xuICAgIHJldHVybiBkcmF3Um91bmRSZWN0YW5nbGVCeUVsZW1lbnQoYm9hcmQsIHJlY3RhbmdsZSwgbm9kZS5vcmlnaW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1JvdW5kUmVjdGFuZ2xlQnlFbGVtZW50KGJvYXJkOiBQbGFpdEJvYXJkLCBub2RlUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgY29uc3QgZmlsbCA9IGdldEZpbGxCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHN0cm9rZSA9IGdldFN0cm9rZUJ5TWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IG5ld05vZGVSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuaW5mbGF0ZShub2RlUmVjdGFuZ2xlLCAtc3Ryb2tlV2lkdGgpO1xuICAgIGNvbnN0IG5vZGVHID0gZHJhd1JvdW5kUmVjdGFuZ2xlKFxuICAgICAgICBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSxcbiAgICAgICAgbmV3Tm9kZVJlY3RhbmdsZS54LFxuICAgICAgICBuZXdOb2RlUmVjdGFuZ2xlLnksXG4gICAgICAgIG5ld05vZGVSZWN0YW5nbGUueCArIG5ld05vZGVSZWN0YW5nbGUud2lkdGgsXG4gICAgICAgIG5ld05vZGVSZWN0YW5nbGUueSArIG5ld05vZGVSZWN0YW5nbGUuaGVpZ2h0LFxuICAgICAgICB7XG4gICAgICAgICAgICBzdHJva2UsXG4gICAgICAgICAgICBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgIGZpbGwsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfSxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIERlZmF1bHROb2RlU3R5bGUuc2hhcGUucmVjdGFuZ2xlUmFkaXVzXG4gICAgKTtcblxuICAgIHJldHVybiBub2RlRztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from './position';
|
|
2
|
+
export * from './weak-maps';
|
|
3
|
+
export * from './mind';
|
|
4
|
+
export * from './layout';
|
|
5
|
+
export * from './node';
|
|
6
|
+
export * from './node-style';
|
|
7
|
+
export * from './dnd/common';
|
|
8
|
+
export * from './dnd/detector';
|
|
9
|
+
export * from './draw/node-dnd';
|
|
10
|
+
export * from './abstract/common';
|
|
11
|
+
export * from './abstract/resize';
|
|
12
|
+
export * from './node/right-node-count';
|
|
13
|
+
export * from './space/node-space';
|
|
14
|
+
export * from './space';
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcG9zaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi93ZWFrLW1hcHMnO1xuZXhwb3J0ICogZnJvbSAnLi9taW5kJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5b3V0JztcbmV4cG9ydCAqIGZyb20gJy4vbm9kZSc7XG5leHBvcnQgKiBmcm9tICcuL25vZGUtc3R5bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kbmQvY29tbW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZG5kL2RldGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhdy9ub2RlLWRuZCc7XG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0L2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0L3Jlc2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL25vZGUvcmlnaHQtbm9kZS1jb3VudCc7XG5leHBvcnQgKiBmcm9tICcuL3NwYWNlL25vZGUtc3BhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcGFjZSc7XG4iXX0=
|
|
@@ -17,4 +17,4 @@ export const getSelectedMindElements = (board) => {
|
|
|
17
17
|
const selectedElements = getSelectedElements(board).filter(value => MindElement.isMindElement(board, value));
|
|
18
18
|
return selectedElements;
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvbm9kZS9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFlBQVksRUFBcUIsY0FBYyxFQUFxQixtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdkQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFvQjtJQUMxQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBc0IsQ0FBQztJQUMxRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsS0FBd0IsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUUsS0FBSyxDQUFDLGdCQUFnQixDQUFvQixjQUFjLENBQUMsYUFBYSxFQUFFO1FBQ3BFLGdCQUFnQixFQUFFLElBQUk7S0FDekIsQ0FBQyxDQUFDO0lBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNaLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBb0IsY0FBYyxDQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNuRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDVixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN6RCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFrQixDQUFDO0lBQzlILE9BQU8sZ0JBQWdCLENBQUM7QUFDNUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQbGFpdE9wdGlvbnNCb2FyZCwgUGxhaXRQbHVnaW5LZXksIFdpdGhQbHVnaW5PcHRpb25zLCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9taW5kLW5vZGUuY29tcG9uZW50JztcblxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRUb3BpYyhlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoZWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgY29tcG9uZW50Py5lZGl0VG9waWMoKTtcbn1cblxuZXhwb3J0IGNvbnN0IHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24gPSAoYm9hcmQ6IFBsYWl0T3B0aW9uc0JvYXJkKSA9PiB7XG4gICAgY29uc3QgY3VycmVudE9wdGlvbnMgPSBib2FyZC5nZXRQbHVnaW5PcHRpb25zKFBsYWl0UGx1Z2luS2V5LndpdGhTZWxlY3Rpb24pO1xuICAgIGJvYXJkLnNldFBsdWdpbk9wdGlvbnM8V2l0aFBsdWdpbk9wdGlvbnM+KFBsYWl0UGx1Z2luS2V5LndpdGhTZWxlY3Rpb24sIHtcbiAgICAgICAgaXNEaXNhYmxlZFNlbGVjdDogdHJ1ZVxuICAgIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBib2FyZC5zZXRQbHVnaW5PcHRpb25zPFdpdGhQbHVnaW5PcHRpb25zPihQbGFpdFBsdWdpbktleS53aXRoU2VsZWN0aW9uLCB7IC4uLmN1cnJlbnRPcHRpb25zIH0pO1xuICAgIH0sIDApO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpLmZpbHRlcih2YWx1ZSA9PiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCB2YWx1ZSkpIGFzIE1pbmRFbGVtZW50W107XG4gICAgcmV0dXJuIHNlbGVjdGVkRWxlbWVudHM7XG59O1xuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { idCreator, isNullOrUndefined } from '@plait/core';
|
|
2
|
+
import { TEXT_DEFAULT_HEIGHT, buildText } from '@plait/text';
|
|
3
|
+
import { MindLayoutType } from '@plait/layouts';
|
|
4
|
+
import { ROOT_TOPIC_HEIGHT, ROOT_TOPIC_WIDTH } from '../../constants/node-topic-style';
|
|
5
|
+
import { NodeSpace } from '../space';
|
|
6
|
+
export const createEmptyMind = (board, point) => {
|
|
7
|
+
const element = createMindElement('思维导图', ROOT_TOPIC_WIDTH, ROOT_TOPIC_HEIGHT, { layout: MindLayoutType.right });
|
|
8
|
+
element.isRoot = true;
|
|
9
|
+
element.type = 'mindmap';
|
|
10
|
+
const width = NodeSpace.getNodeWidth(board, element);
|
|
11
|
+
const height = NodeSpace.getNodeHeight(board, element);
|
|
12
|
+
element.points = [[point[0] - width / 2, point[1] - height / 2]];
|
|
13
|
+
return element;
|
|
14
|
+
};
|
|
15
|
+
export const createDefaultMind = (point, rightNodeCount, layout) => {
|
|
16
|
+
const root = createMindElement('思维导图', ROOT_TOPIC_WIDTH, ROOT_TOPIC_HEIGHT, { layout });
|
|
17
|
+
root.rightNodeCount = rightNodeCount;
|
|
18
|
+
root.isRoot = true;
|
|
19
|
+
root.type = 'mindmap';
|
|
20
|
+
root.points = [point];
|
|
21
|
+
const children = [1, 1, 1].map(() => {
|
|
22
|
+
return createMindElement('新建节点', 56, TEXT_DEFAULT_HEIGHT, {});
|
|
23
|
+
});
|
|
24
|
+
root.children = children;
|
|
25
|
+
return root;
|
|
26
|
+
};
|
|
27
|
+
export const createMindElement = (text, width, height, options) => {
|
|
28
|
+
const newElement = {
|
|
29
|
+
id: idCreator(),
|
|
30
|
+
data: {
|
|
31
|
+
topic: buildText(text)
|
|
32
|
+
},
|
|
33
|
+
children: [],
|
|
34
|
+
width,
|
|
35
|
+
height
|
|
36
|
+
};
|
|
37
|
+
let key;
|
|
38
|
+
for (key in options) {
|
|
39
|
+
if (!isNullOrUndefined(options[key])) {
|
|
40
|
+
newElement[key] = options[key];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return newElement;
|
|
44
|
+
};
|
|
45
|
+
export const INHERIT_ATTRIBUTE_KEYS = [
|
|
46
|
+
'fill',
|
|
47
|
+
'strokeColor',
|
|
48
|
+
'strokeWidth',
|
|
49
|
+
'shape',
|
|
50
|
+
'layout',
|
|
51
|
+
'branchColor',
|
|
52
|
+
'branchWidth',
|
|
53
|
+
'branchShape'
|
|
54
|
+
];
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2NyZWF0ZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHckMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFZLEVBQUUsRUFBRTtJQUMvRCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakgsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdEIsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDekIsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUF1QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsY0FBc0IsRUFBRSxNQUFzQixFQUFFLEVBQUU7SUFDOUYsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDekIsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFzQixFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBeUIsRUFBRSxFQUFFO0lBQ2xILE1BQU0sVUFBVSxHQUFnQjtRQUM1QixFQUFFLEVBQUUsU0FBUyxFQUFFO1FBQ2YsSUFBSSxFQUFFO1lBQ0YsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDekI7UUFDRCxRQUFRLEVBQUUsRUFBRTtRQUNaLEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztJQUVGLElBQUksR0FBeUIsQ0FBQztJQUM5QixLQUFLLEdBQUcsSUFBSSxPQUFPLEVBQUU7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLFVBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNDO0tBQ0o7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFhRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNsQyxNQUFNO0lBQ04sYUFBYTtJQUNiLGFBQWE7SUFDYixPQUFPO0lBQ1AsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsYUFBYTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIGlkQ3JlYXRvciwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBURVhUX0RFRkFVTFRfSEVJR0hULCBidWlsZFRleHQgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IEJyYW5jaFNoYXBlLCBNaW5kRWxlbWVudCwgTWluZEVsZW1lbnRTaGFwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBST09UX1RPUElDX0hFSUdIVCwgUk9PVF9UT1BJQ19XSURUSCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXRvcGljLXN0eWxlJztcbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuLi9zcGFjZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUVtcHR5TWluZCA9IChib2FyZDogUGxhaXRCb2FyZCwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGNyZWF0ZU1pbmRFbGVtZW50KCfmgJ3nu7Tlr7zlm74nLCBST09UX1RPUElDX1dJRFRILCBST09UX1RPUElDX0hFSUdIVCwgeyBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlLnJpZ2h0IH0pO1xuICAgIGVsZW1lbnQuaXNSb290ID0gdHJ1ZTtcbiAgICBlbGVtZW50LnR5cGUgPSAnbWluZG1hcCc7XG4gICAgY29uc3Qgd2lkdGggPSBOb2RlU3BhY2UuZ2V0Tm9kZVdpZHRoKGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBoZWlnaHQgPSBOb2RlU3BhY2UuZ2V0Tm9kZUhlaWdodChib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudCk7XG4gICAgZWxlbWVudC5wb2ludHMgPSBbW3BvaW50WzBdIC0gd2lkdGggLyAyLCBwb2ludFsxXSAtIGhlaWdodCAvIDJdXTtcbiAgICByZXR1cm4gZWxlbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0TWluZCA9IChwb2ludDogUG9pbnQsIHJpZ2h0Tm9kZUNvdW50OiBudW1iZXIsIGxheW91dDogTWluZExheW91dFR5cGUpID0+IHtcbiAgICBjb25zdCByb290ID0gY3JlYXRlTWluZEVsZW1lbnQoJ+aAnee7tOWvvOWbvicsIFJPT1RfVE9QSUNfV0lEVEgsIFJPT1RfVE9QSUNfSEVJR0hULCB7IGxheW91dCB9KTtcbiAgICByb290LnJpZ2h0Tm9kZUNvdW50ID0gcmlnaHROb2RlQ291bnQ7XG4gICAgcm9vdC5pc1Jvb3QgPSB0cnVlO1xuICAgIHJvb3QudHlwZSA9ICdtaW5kbWFwJztcbiAgICByb290LnBvaW50cyA9IFtwb2ludF07XG4gICAgY29uc3QgY2hpbGRyZW4gPSBbMSwgMSwgMV0ubWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZU1pbmRFbGVtZW50KCfmlrDlu7roioLngrknLCA1NiwgVEVYVF9ERUZBVUxUX0hFSUdIVCwge30pO1xuICAgIH0pO1xuICAgIHJvb3QuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICByZXR1cm4gcm9vdDtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNaW5kRWxlbWVudCA9ICh0ZXh0OiBzdHJpbmcgfCBFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgb3B0aW9uczogSW5oZXJpdEF0dHJpYnV0ZSkgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQ6IE1pbmRFbGVtZW50ID0ge1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHRvcGljOiBidWlsZFRleHQodGV4dClcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0XG4gICAgfTtcblxuICAgIGxldCBrZXk6IGtleW9mIHR5cGVvZiBvcHRpb25zO1xuICAgIGZvciAoa2V5IGluIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChvcHRpb25zW2tleV0pKSB7XG4gICAgICAgICAgICAobmV3RWxlbWVudCBhcyBhbnkpW2tleV0gPSBvcHRpb25zW2tleV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5oZXJpdEF0dHJpYnV0ZSB7XG4gICAgZmlsbD86IHN0cmluZztcbiAgICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgICBzdHJva2VXaWR0aD86IG51bWJlcjtcbiAgICBzaGFwZT86IE1pbmRFbGVtZW50U2hhcGU7XG4gICAgbGF5b3V0PzogTWluZExheW91dFR5cGU7XG4gICAgYnJhbmNoQ29sb3I/OiBzdHJpbmc7XG4gICAgYnJhbmNoV2lkdGg/OiBudW1iZXI7XG4gICAgYnJhbmNoU2hhcGU/OiBCcmFuY2hTaGFwZTtcbn1cblxuZXhwb3J0IGNvbnN0IElOSEVSSVRfQVRUUklCVVRFX0tFWVMgPSBbXG4gICAgJ2ZpbGwnLFxuICAgICdzdHJva2VDb2xvcicsXG4gICAgJ3N0cm9rZVdpZHRoJyxcbiAgICAnc2hhcGUnLFxuICAgICdsYXlvdXQnLFxuICAgICdicmFuY2hDb2xvcicsXG4gICAgJ2JyYW5jaFdpZHRoJyxcbiAgICAnYnJhbmNoU2hhcGUnXG5dO1xuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { MindElement } from '../../interfaces/element';
|
|
2
|
+
/**
|
|
3
|
+
* 1. return new node height if height changed
|
|
4
|
+
* 2. new height is effected by zoom
|
|
5
|
+
*/
|
|
6
|
+
export const getNewNodeHeight = (board, element, newNodeDynamicWidth) => {
|
|
7
|
+
const textManage = MindElement.getTextManage(element);
|
|
8
|
+
const { height } = textManage.getSize();
|
|
9
|
+
textManage.updateRectangleWidth(newNodeDynamicWidth);
|
|
10
|
+
const { height: newHeight } = textManage.getSize();
|
|
11
|
+
if (height !== newHeight) {
|
|
12
|
+
return newHeight;
|
|
13
|
+
}
|
|
14
|
+
if (Math.abs(newHeight / board.viewport.zoom - element.height) > 2) {
|
|
15
|
+
return newHeight;
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy13aWR0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL25vZGUvZHluYW1pYy13aWR0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdkQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsbUJBQTJCLEVBQUUsRUFBRTtJQUNyRyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDckQsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFbkQsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQ3RCLE9BQU8sU0FBUyxDQUFDO0tBQ3BCO0lBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2hFLE9BQU8sU0FBUyxDQUFDO0tBQ3BCO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9taW5kLW5vZGUuY29tcG9uZW50JztcblxuLyoqXG4gKiAxLiByZXR1cm4gbmV3IG5vZGUgaGVpZ2h0IGlmIGhlaWdodCBjaGFuZ2VkXG4gKiAyLiBuZXcgaGVpZ2h0IGlzIGVmZmVjdGVkIGJ5IHpvb21cbiAqL1xuZXhwb3J0IGNvbnN0IGdldE5ld05vZGVIZWlnaHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBuZXdOb2RlRHluYW1pY1dpZHRoOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlID0gTWluZEVsZW1lbnQuZ2V0VGV4dE1hbmFnZShlbGVtZW50KTtcbiAgICBjb25zdCB7IGhlaWdodCB9ID0gdGV4dE1hbmFnZS5nZXRTaXplKCk7XG4gICAgdGV4dE1hbmFnZS51cGRhdGVSZWN0YW5nbGVXaWR0aChuZXdOb2RlRHluYW1pY1dpZHRoKTtcbiAgICBjb25zdCB7IGhlaWdodDogbmV3SGVpZ2h0IH0gPSB0ZXh0TWFuYWdlLmdldFNpemUoKTtcblxuICAgIGlmIChoZWlnaHQgIT09IG5ld0hlaWdodCkge1xuICAgICAgICByZXR1cm4gbmV3SGVpZ2h0O1xuICAgIH1cblxuICAgIGlmIChNYXRoLmFicyhuZXdIZWlnaHQgLyBib2FyZC52aWV3cG9ydC56b29tIC0gZWxlbWVudC5oZWlnaHQpID4gMikge1xuICAgICAgICByZXR1cm4gbmV3SGVpZ2h0O1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PlaitElement } from '@plait/core';
|
|
2
|
+
const BOARD_TO_SELECTED_IMAGE_ELEMENT = new WeakMap();
|
|
3
|
+
export const getSelectedImageElement = (board) => {
|
|
4
|
+
return BOARD_TO_SELECTED_IMAGE_ELEMENT.get(board);
|
|
5
|
+
};
|
|
6
|
+
export const addSelectedImageElement = (board, element) => {
|
|
7
|
+
BOARD_TO_SELECTED_IMAGE_ELEMENT.set(board, element);
|
|
8
|
+
};
|
|
9
|
+
export const removeSelectedImageElement = (board) => {
|
|
10
|
+
BOARD_TO_SELECTED_IMAGE_ELEMENT.delete(board);
|
|
11
|
+
};
|
|
12
|
+
export const setImageFocus = (board, element, isFocus) => {
|
|
13
|
+
if (isFocus) {
|
|
14
|
+
addSelectedImageElement(board, element);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
removeSelectedImageElement(board);
|
|
18
|
+
}
|
|
19
|
+
const elementComponent = PlaitElement.getComponent(element);
|
|
20
|
+
elementComponent.imageGenerator.componentRef.instance.isFocus = isFocus;
|
|
21
|
+
elementComponent.imageGenerator.componentRef.instance.cdr.markForCheck();
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLdkQsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLE9BQU8sRUFBc0MsQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN6RCxPQUFPLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxFQUFFO0lBQzFGLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDNUQsK0JBQStCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxPQUFnQixFQUFFLEVBQUU7SUFDbEcsSUFBSSxPQUFPLEVBQUU7UUFDVCx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDM0M7U0FBTTtRQUNILDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3JDO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBc0IsQ0FBQztJQUNqRixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsWUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pFLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUM5RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21pbmQtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuXG5jb25zdCBCT0FSRF9UT19TRUxFQ1RFRF9JTUFHRV9FTEVNRU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPj4oKTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkSW1hZ2VFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgcmV0dXJuIEJPQVJEX1RPX1NFTEVDVEVEX0lNQUdFX0VMRU1FTlQuZ2V0KGJvYXJkKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTZWxlY3RlZEltYWdlRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPikgPT4ge1xuICAgIEJPQVJEX1RPX1NFTEVDVEVEX0lNQUdFX0VMRU1FTlQuc2V0KGJvYXJkLCBlbGVtZW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWxlY3RlZEltYWdlRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIEJPQVJEX1RPX1NFTEVDVEVEX0lNQUdFX0VMRU1FTlQuZGVsZXRlKGJvYXJkKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRJbWFnZUZvY3VzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxJbWFnZURhdGE+LCBpc0ZvY3VzOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKGlzRm9jdXMpIHtcbiAgICAgICAgYWRkU2VsZWN0ZWRJbWFnZUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbW92ZVNlbGVjdGVkSW1hZ2VFbGVtZW50KGJvYXJkKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50Q29tcG9uZW50ID0gUGxhaXRFbGVtZW50LmdldENvbXBvbmVudChlbGVtZW50KSBhcyBNaW5kTm9kZUNvbXBvbmVudDtcbiAgICBlbGVtZW50Q29tcG9uZW50LmltYWdlR2VuZXJhdG9yLmNvbXBvbmVudFJlZiEuaW5zdGFuY2UuaXNGb2N1cyA9IGlzRm9jdXM7XG4gICAgZWxlbWVudENvbXBvbmVudC5pbWFnZUdlbmVyYXRvci5jb21wb25lbnRSZWYhLmluc3RhbmNlLmNkci5tYXJrRm9yQ2hlY2soKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { RectangleClient } from '@plait/core';
|
|
2
|
+
import { MindElement } from '../../interfaces/element';
|
|
3
|
+
import { getRectangleByNode } from './node';
|
|
4
|
+
import { NodeSpace } from '../space/node-space';
|
|
5
|
+
import { RESIZE_HANDLE_DIAMETER, getRectangleResizeHandleRefs } from '@plait/common';
|
|
6
|
+
export function getImageForeignRectangle(board, element) {
|
|
7
|
+
let { x, y } = getRectangleByNode(MindElement.getNode(element));
|
|
8
|
+
const elementWidth = element.manualWidth || element.width;
|
|
9
|
+
x =
|
|
10
|
+
elementWidth > element.data.image.width
|
|
11
|
+
? x + NodeSpace.getTextLeftSpace(board, element) + (elementWidth - element.data.image.width) / 2
|
|
12
|
+
: x + NodeSpace.getTextLeftSpace(board, element);
|
|
13
|
+
y = NodeSpace.getImageTopSpace(board, element) + y;
|
|
14
|
+
const { width, height } = element.data.image;
|
|
15
|
+
const rectangle = {
|
|
16
|
+
x,
|
|
17
|
+
y,
|
|
18
|
+
width,
|
|
19
|
+
height
|
|
20
|
+
};
|
|
21
|
+
return rectangle;
|
|
22
|
+
}
|
|
23
|
+
export const isHitImage = (board, element, range) => {
|
|
24
|
+
const imageRectangle = getImageForeignRectangle(board, element);
|
|
25
|
+
const imageOutlineRectangle = RectangleClient.getOutlineRectangle(imageRectangle, -RESIZE_HANDLE_DIAMETER / 2);
|
|
26
|
+
return RectangleClient.isHit(RectangleClient.toRectangleClient([range.anchor, range.focus]), imageOutlineRectangle);
|
|
27
|
+
};
|
|
28
|
+
export const getHitImageResizeHandleDirection = (board, element, point) => {
|
|
29
|
+
const imageRectangle = getImageForeignRectangle(board, element);
|
|
30
|
+
const resizeHandleRefs = getRectangleResizeHandleRefs(imageRectangle, RESIZE_HANDLE_DIAMETER);
|
|
31
|
+
const result = resizeHandleRefs.find(resizeHandleRef => {
|
|
32
|
+
return RectangleClient.isHit(RectangleClient.toRectangleClient([point, point]), resizeHandleRef.rectangle);
|
|
33
|
+
});
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQXFCLEVBQUUsT0FBK0I7SUFDM0YsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRTFELENBQUM7UUFDRyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNuQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNoRyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUM7SUFDOUMsTUFBTSxTQUFTLEdBQUc7UUFDZCxDQUFDO1FBQ0QsQ0FBQztRQUNELEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztJQUNGLE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQStCLEVBQUUsS0FBWSxFQUFFLEVBQUU7SUFDM0YsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUMsS0FBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRixNQUFNLHFCQUFxQixHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvRyxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3hILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUErQixFQUFFLEtBQVksRUFBRSxFQUFFO0lBQ2pILE1BQU0sY0FBYyxHQUFHLHdCQUF3QixDQUFDLEtBQXVCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FBQyxjQUFjLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUM5RixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDbkQsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBSYW5nZSwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IE5vZGVTcGFjZSB9IGZyb20gJy4uL3NwYWNlL25vZGUtc3BhY2UnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBSRVNJWkVfSEFORExFX0RJQU1FVEVSLCBnZXRSZWN0YW5nbGVSZXNpemVIYW5kbGVSZWZzIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbWFnZUZvcmVpZ25SZWN0YW5nbGUoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBsZXQgeyB4LCB5IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSk7XG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZWxlbWVudC5tYW51YWxXaWR0aCB8fCBlbGVtZW50LndpZHRoO1xuXG4gICAgeCA9XG4gICAgICAgIGVsZW1lbnRXaWR0aCA+IGVsZW1lbnQuZGF0YS5pbWFnZS53aWR0aFxuICAgICAgICAgICAgPyB4ICsgTm9kZVNwYWNlLmdldFRleHRMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpICsgKGVsZW1lbnRXaWR0aCAtIGVsZW1lbnQuZGF0YS5pbWFnZS53aWR0aCkgLyAyXG4gICAgICAgICAgICA6IHggKyBOb2RlU3BhY2UuZ2V0VGV4dExlZnRTcGFjZShib2FyZCwgZWxlbWVudCk7XG4gICAgeSA9IE5vZGVTcGFjZS5nZXRJbWFnZVRvcFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIHk7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBlbGVtZW50LmRhdGEuaW1hZ2UhO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG4gICAgcmV0dXJuIHJlY3RhbmdsZTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzSGl0SW1hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEltYWdlRGF0YT4sIHJhbmdlOiBSYW5nZSkgPT4ge1xuICAgIGNvbnN0IGltYWdlUmVjdGFuZ2xlID0gZ2V0SW1hZ2VGb3JlaWduUmVjdGFuZ2xlKGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBpbWFnZU91dGxpbmVSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0T3V0bGluZVJlY3RhbmdsZShpbWFnZVJlY3RhbmdsZSwgLVJFU0laRV9IQU5ETEVfRElBTUVURVIgLyAyKTtcbiAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KFJlY3RhbmdsZUNsaWVudC50b1JlY3RhbmdsZUNsaWVudChbcmFuZ2UuYW5jaG9yLCByYW5nZS5mb2N1c10pLCBpbWFnZU91dGxpbmVSZWN0YW5nbGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhpdEltYWdlUmVzaXplSGFuZGxlRGlyZWN0aW9uID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxJbWFnZURhdGE+LCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBpbWFnZVJlY3RhbmdsZSA9IGdldEltYWdlRm9yZWlnblJlY3RhbmdsZShib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgcmVzaXplSGFuZGxlUmVmcyA9IGdldFJlY3RhbmdsZVJlc2l6ZUhhbmRsZVJlZnMoaW1hZ2VSZWN0YW5nbGUsIFJFU0laRV9IQU5ETEVfRElBTUVURVIpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHJlc2l6ZUhhbmRsZVJlZnMuZmluZChyZXNpemVIYW5kbGVSZWYgPT4ge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KFJlY3RhbmdsZUNsaWVudC50b1JlY3RhbmdsZUNsaWVudChbcG9pbnQsIHBvaW50XSksIHJlc2l6ZUhhbmRsZVJlZi5yZWN0YW5nbGUpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { distanceBetweenPointAndRectangle } from '@plait/core';
|
|
2
|
+
import { MindElement } from '../../interfaces/element';
|
|
3
|
+
import { NodeSpace } from '../space/node-space';
|
|
4
|
+
export function getRectangleByNode(node) {
|
|
5
|
+
const x = node.x + node.hGap;
|
|
6
|
+
let y = node.y + node.vGap;
|
|
7
|
+
const width = node.width - node.hGap * 2;
|
|
8
|
+
const height = node.height - node.vGap * 2;
|
|
9
|
+
return {
|
|
10
|
+
x,
|
|
11
|
+
y,
|
|
12
|
+
width,
|
|
13
|
+
height
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function getRectangleByElement(board, element) {
|
|
17
|
+
const width = NodeSpace.getNodeWidth(board, element);
|
|
18
|
+
const height = NodeSpace.getNodeHeight(board, element);
|
|
19
|
+
const nodeRectangle = {
|
|
20
|
+
x: element.points[0][0],
|
|
21
|
+
y: element.points[0][1],
|
|
22
|
+
width,
|
|
23
|
+
height
|
|
24
|
+
};
|
|
25
|
+
return nodeRectangle;
|
|
26
|
+
}
|
|
27
|
+
export function isHitMindElement(board, point, element) {
|
|
28
|
+
const node = MindElement.getNode(element);
|
|
29
|
+
if (node && distanceBetweenPointAndRectangle(point[0], point[1], getRectangleByNode(node)) === 0) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3Bvc2l0aW9uL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQyxnQ0FBZ0MsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFjO0lBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM3QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLE9BQU87UUFDSCxDQUFDO1FBQ0QsQ0FBQztRQUNELEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBcUIsRUFBRSxPQUFvQjtJQUM3RSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxNQUFNLGFBQWEsR0FBRztRQUNsQixDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztJQUNGLE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBaUIsRUFBRSxLQUFZLEVBQUUsT0FBb0I7SUFDbEYsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxJQUFJLElBQUksSUFBSSxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlGLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7U0FBTTtRQUNILE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQsIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgTm9kZVNwYWNlIH0gZnJvbSAnLi4vc3BhY2Uvbm9kZS1zcGFjZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlY3RhbmdsZUJ5Tm9kZShub2RlOiBNaW5kTm9kZSk6IFJlY3RhbmdsZUNsaWVudCB7XG4gICAgY29uc3QgeCA9IG5vZGUueCArIG5vZGUuaEdhcDtcbiAgICBsZXQgeSA9IG5vZGUueSArIG5vZGUudkdhcDtcbiAgICBjb25zdCB3aWR0aCA9IG5vZGUud2lkdGggLSBub2RlLmhHYXAgKiAyO1xuICAgIGNvbnN0IGhlaWdodCA9IG5vZGUuaGVpZ2h0IC0gbm9kZS52R2FwICogMjtcbiAgICByZXR1cm4ge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlY3RhbmdsZUJ5RWxlbWVudChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgY29uc3Qgd2lkdGggPSBOb2RlU3BhY2UuZ2V0Tm9kZVdpZHRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBoZWlnaHQgPSBOb2RlU3BhY2UuZ2V0Tm9kZUhlaWdodChib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3Qgbm9kZVJlY3RhbmdsZSA9IHtcbiAgICAgICAgeDogZWxlbWVudC5wb2ludHMhWzBdWzBdLFxuICAgICAgICB5OiBlbGVtZW50LnBvaW50cyFbMF1bMV0sXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICB9O1xuICAgIHJldHVybiBub2RlUmVjdGFuZ2xlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIaXRNaW5kRWxlbWVudChib2FyZDogUGxhaXRCb2FyZCwgcG9pbnQ6IFBvaW50LCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgIGNvbnN0IG5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpO1xuICAgIGlmIChub2RlICYmIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlKHBvaW50WzBdLCBwb2ludFsxXSwgZ2V0UmVjdGFuZ2xlQnlOb2RlKG5vZGUpKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NodeSpace } from '../space/node-space';
|
|
2
|
+
import { getRectangleByNode } from './node';
|
|
3
|
+
export function getTopicRectangleByNode(board, node) {
|
|
4
|
+
let nodeRectangle = getRectangleByNode(node);
|
|
5
|
+
const result = getTopicRectangleByElement(board, nodeRectangle, node.origin);
|
|
6
|
+
result.width = result.width;
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
export function getTopicRectangleByElement(board, nodeRectangle, element) {
|
|
10
|
+
const x = nodeRectangle.x + NodeSpace.getTextLeftSpace(board, element);
|
|
11
|
+
const y = nodeRectangle.y + NodeSpace.getTextTopSpace(board, element);
|
|
12
|
+
const width = NodeSpace.getNodeDynamicWidth(board, element);
|
|
13
|
+
const height = Math.ceil(element.height);
|
|
14
|
+
return { height, width, x, y };
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi90b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzVDLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxLQUFxQixFQUFFLElBQWM7SUFDekUsSUFBSSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsTUFBTSxNQUFNLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0UsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzVCLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsS0FBcUIsRUFBRSxhQUE4QixFQUFFLE9BQW9CO0lBQ2xILE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RSxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IE5vZGVTcGFjZSB9IGZyb20gJy4uL3NwYWNlL25vZGUtc3BhY2UnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcGljUmVjdGFuZ2xlQnlOb2RlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgbm9kZTogTWluZE5vZGUpIHtcbiAgICBsZXQgbm9kZVJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShub2RlKTtcbiAgICBjb25zdCByZXN1bHQgPSBnZXRUb3BpY1JlY3RhbmdsZUJ5RWxlbWVudChib2FyZCwgbm9kZVJlY3RhbmdsZSwgbm9kZS5vcmlnaW4pO1xuICAgIHJlc3VsdC53aWR0aCA9IHJlc3VsdC53aWR0aDtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9waWNSZWN0YW5nbGVCeUVsZW1lbnQoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBub2RlUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgY29uc3QgeCA9IG5vZGVSZWN0YW5nbGUueCArIE5vZGVTcGFjZS5nZXRUZXh0TGVmdFNwYWNlKGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCB5ID0gbm9kZVJlY3RhbmdsZS55ICsgTm9kZVNwYWNlLmdldFRleHRUb3BTcGFjZShib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3Qgd2lkdGggPSBOb2RlU3BhY2UuZ2V0Tm9kZUR5bmFtaWNXaWR0aChib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5jZWlsKGVsZW1lbnQuaGVpZ2h0KTtcbiAgICByZXR1cm4geyBoZWlnaHQsIHdpZHRoLCB4LCB5IH07XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './emoji';
|
|
2
2
|
export * from './layout-options';
|
|
3
3
|
export * from './node-space';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9zcGFjZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbW9qaSc7XG5leHBvcnQgKiBmcm9tICcuL2xheW91dC1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbm9kZS1zcGFjZSc7XG4iXX0=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ConnectingPosition, isHorizontalLayout, isHorizontalLogicLayout, isIndentedLayout } from '@plait/layouts';
|
|
2
|
+
import { MindElementShape } from '../../interfaces/element';
|
|
3
|
+
import { BASE } from '../../constants/default';
|
|
4
|
+
import { getRootLayout } from '../layout';
|
|
5
|
+
import { NodeSpace } from './node-space';
|
|
6
|
+
export const getLayoutOptions = (board) => {
|
|
7
|
+
function getMainAxle(element, parent) {
|
|
8
|
+
if (element.isRoot) {
|
|
9
|
+
return BASE * 12;
|
|
10
|
+
}
|
|
11
|
+
if (parent && parent.isRoot()) {
|
|
12
|
+
return BASE * 3;
|
|
13
|
+
}
|
|
14
|
+
return BASE * 3;
|
|
15
|
+
}
|
|
16
|
+
function getSecondAxle(element, parent) {
|
|
17
|
+
if (element.isRoot) {
|
|
18
|
+
return BASE * 10;
|
|
19
|
+
}
|
|
20
|
+
return BASE * 6;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
getHeight(element) {
|
|
24
|
+
return NodeSpace.getNodeHeight(board, element);
|
|
25
|
+
},
|
|
26
|
+
getWidth(element) {
|
|
27
|
+
return NodeSpace.getNodeWidth(board, element);
|
|
28
|
+
},
|
|
29
|
+
getHorizontalGap(element, parent) {
|
|
30
|
+
const _layout = (parent && parent.layout) || getRootLayout(element);
|
|
31
|
+
const isHorizontal = isHorizontalLayout(_layout);
|
|
32
|
+
if (isIndentedLayout(_layout)) {
|
|
33
|
+
return BASE * 4;
|
|
34
|
+
}
|
|
35
|
+
if (!isHorizontal) {
|
|
36
|
+
return getMainAxle(element, parent);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return getSecondAxle(element, parent);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
getVerticalGap(element, parent) {
|
|
43
|
+
const _layout = (parent && parent.layout) || getRootLayout(element);
|
|
44
|
+
if (isIndentedLayout(_layout)) {
|
|
45
|
+
return BASE;
|
|
46
|
+
}
|
|
47
|
+
const isHorizontal = isHorizontalLayout(_layout);
|
|
48
|
+
if (isHorizontal) {
|
|
49
|
+
return getMainAxle(element, parent);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return getSecondAxle(element, parent);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
getVerticalConnectingPosition(element, parent) {
|
|
56
|
+
if (element.shape === MindElementShape.underline && parent && isHorizontalLogicLayout(parent.layout)) {
|
|
57
|
+
return ConnectingPosition.bottom;
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
},
|
|
61
|
+
getExtendHeight(node) {
|
|
62
|
+
return BASE * 6;
|
|
63
|
+
},
|
|
64
|
+
getIndentedCrossLevelGap() {
|
|
65
|
+
return BASE * 2;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9zcGFjZS9sYXlvdXQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsa0JBQWtCLEVBSWxCLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFlLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBZ0IsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUU7SUFDdEQsU0FBUyxXQUFXLENBQUMsT0FBb0IsRUFBRSxNQUFtQjtRQUMxRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNuQjtRQUNELE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsT0FBb0IsRUFBRSxNQUFtQjtRQUM1RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxPQUFPO1FBQ0gsU0FBUyxDQUFDLE9BQW9CO1lBQzFCLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELFFBQVEsQ0FBQyxPQUFvQjtZQUN6QixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxnQkFBZ0IsQ0FBQyxPQUFvQixFQUFFLE1BQW1CO1lBQ3RELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEUsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2FBQ25CO1lBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDZixPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0gsT0FBTyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3pDO1FBQ0wsQ0FBQztRQUNELGNBQWMsQ0FBQyxPQUFvQixFQUFFLE1BQW1CO1lBQ3BELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEUsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUNELE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELElBQUksWUFBWSxFQUFFO2dCQUNkLE9BQU8sV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDSCxPQUFPLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDO1FBQ0QsNkJBQTZCLENBQUMsT0FBb0IsRUFBRSxNQUFtQjtZQUNuRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxJQUFJLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2xHLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxDQUFDO2FBQ3BDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUNELGVBQWUsQ0FBQyxJQUFnQjtZQUM1QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELHdCQUF3QjtZQUNwQixPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQztLQUNhLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb25uZWN0aW5nUG9zaXRpb24sXG4gICAgTGF5b3V0Tm9kZSxcbiAgICBMYXlvdXRPcHRpb25zLFxuICAgIE9yaWdpbk5vZGUsXG4gICAgaXNIb3Jpem9udGFsTGF5b3V0LFxuICAgIGlzSG9yaXpvbnRhbExvZ2ljTGF5b3V0LFxuICAgIGlzSW5kZW50ZWRMYXlvdXRcbn0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgQkFTRSwgU1RST0tFX1dJRFRIIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgZ2V0Um9vdExheW91dCB9IGZyb20gJy4uL2xheW91dCc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuL25vZGUtc3BhY2UnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXlvdXRPcHRpb25zID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCkgPT4ge1xuICAgIGZ1bmN0aW9uIGdldE1haW5BeGxlKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmlzUm9vdCkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiAxMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC5pc1Jvb3QoKSkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiAzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBCQVNFICogMztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZWNvbmRBeGxlKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmlzUm9vdCkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiAxMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQkFTRSAqIDY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ2V0SGVpZ2h0KGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldE5vZGVIZWlnaHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICB9LFxuICAgICAgICBnZXRXaWR0aChlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXROb2RlV2lkdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICB9LFxuICAgICAgICBnZXRIb3Jpem9udGFsR2FwKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBfbGF5b3V0ID0gKHBhcmVudCAmJiBwYXJlbnQubGF5b3V0KSB8fCBnZXRSb290TGF5b3V0KGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gaXNIb3Jpem9udGFsTGF5b3V0KF9sYXlvdXQpO1xuICAgICAgICAgICAgaWYgKGlzSW5kZW50ZWRMYXlvdXQoX2xheW91dCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQkFTRSAqIDQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzSG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRNYWluQXhsZShlbGVtZW50LCBwYXJlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U2Vjb25kQXhsZShlbGVtZW50LCBwYXJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBnZXRWZXJ0aWNhbEdhcChlbGVtZW50OiBNaW5kRWxlbWVudCwgcGFyZW50PzogTGF5b3V0Tm9kZSkge1xuICAgICAgICAgICAgY29uc3QgX2xheW91dCA9IChwYXJlbnQgJiYgcGFyZW50LmxheW91dCkgfHwgZ2V0Um9vdExheW91dChlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChpc0luZGVudGVkTGF5b3V0KF9sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJBU0U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQoX2xheW91dCk7XG4gICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldE1haW5BeGxlKGVsZW1lbnQsIHBhcmVudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTZWNvbmRBeGxlKGVsZW1lbnQsIHBhcmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldFZlcnRpY2FsQ29ubmVjdGluZ1Bvc2l0aW9uKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5zaGFwZSA9PT0gTWluZEVsZW1lbnRTaGFwZS51bmRlcmxpbmUgJiYgcGFyZW50ICYmIGlzSG9yaXpvbnRhbExvZ2ljTGF5b3V0KHBhcmVudC5sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RpbmdQb3NpdGlvbi5ib3R0b207XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LFxuICAgICAgICBnZXRFeHRlbmRIZWlnaHQobm9kZTogT3JpZ2luTm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiA2O1xuICAgICAgICB9LFxuICAgICAgICBnZXRJbmRlbnRlZENyb3NzTGV2ZWxHYXAoKSB7XG4gICAgICAgICAgICByZXR1cm4gQkFTRSAqIDI7XG4gICAgICAgIH1cbiAgICB9IGFzIExheW91dE9wdGlvbnM7XG59O1xuIl19
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { DEFAULT_FONT_SIZE, MarkTypes, PlaitMarkEditor } from '@plait/text';
|
|
2
|
+
import { BASE, WithMindPluginKey } from '../../constants/default';
|
|
3
|
+
import { PlaitMind } from '../../interfaces/element';
|
|
4
|
+
import { MindElement } from '../../interfaces/element';
|
|
5
|
+
import { getEmojisWidthHeight } from './emoji';
|
|
6
|
+
import { ROOT_TOPIC_FONT_SIZE } from '../../constants/node-topic-style';
|
|
7
|
+
import { getStrokeWidthByElement } from '../node-style/shape';
|
|
8
|
+
const NodeDefaultSpace = {
|
|
9
|
+
horizontal: {
|
|
10
|
+
nodeAndText: BASE * 2.5,
|
|
11
|
+
emojiAndText: BASE * 1.5
|
|
12
|
+
},
|
|
13
|
+
vertical: {
|
|
14
|
+
nodeAndText: BASE,
|
|
15
|
+
nodeAndImage: BASE,
|
|
16
|
+
imageAndText: BASE * 1.5
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const RootDefaultSpace = {
|
|
20
|
+
horizontal: {
|
|
21
|
+
nodeAndText: BASE * 4,
|
|
22
|
+
emojiAndText: BASE * 2
|
|
23
|
+
},
|
|
24
|
+
vertical: {
|
|
25
|
+
nodeAndText: BASE * 2
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const getHorizontalSpaceBetweenNodeAndText = (board, element) => {
|
|
29
|
+
const isMind = PlaitMind.isMind(element);
|
|
30
|
+
const nodeAndText = isMind ? RootDefaultSpace.horizontal.nodeAndText : NodeDefaultSpace.horizontal.nodeAndText;
|
|
31
|
+
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
32
|
+
return nodeAndText + strokeWidth;
|
|
33
|
+
};
|
|
34
|
+
const getVerticalSpaceBetweenNodeAndText = (board, element) => {
|
|
35
|
+
const isMind = PlaitMind.isMind(element);
|
|
36
|
+
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
37
|
+
const nodeAndText = isMind ? RootDefaultSpace.vertical.nodeAndText : NodeDefaultSpace.vertical.nodeAndText;
|
|
38
|
+
return nodeAndText + strokeWidth;
|
|
39
|
+
};
|
|
40
|
+
const getSpaceEmojiAndText = (element) => {
|
|
41
|
+
const isMind = PlaitMind.isMind(element);
|
|
42
|
+
const emojiAndText = isMind ? RootDefaultSpace.horizontal.emojiAndText : NodeDefaultSpace.horizontal.emojiAndText;
|
|
43
|
+
return emojiAndText;
|
|
44
|
+
};
|
|
45
|
+
export const NodeSpace = {
|
|
46
|
+
getNodeWidth(board, element) {
|
|
47
|
+
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
48
|
+
if (MindElement.hasEmojis(element)) {
|
|
49
|
+
return (NodeSpace.getEmojiLeftSpace(board, element) +
|
|
50
|
+
getEmojisWidthHeight(board, element).width +
|
|
51
|
+
getSpaceEmojiAndText(element) +
|
|
52
|
+
NodeSpace.getNodeDynamicWidth(board, element) +
|
|
53
|
+
nodeAndText);
|
|
54
|
+
}
|
|
55
|
+
return nodeAndText + NodeSpace.getNodeDynamicWidth(board, element) + nodeAndText;
|
|
56
|
+
},
|
|
57
|
+
getNodeHeight(board, element) {
|
|
58
|
+
const nodeAndText = getVerticalSpaceBetweenNodeAndText(board, element);
|
|
59
|
+
if (MindElement.hasImage(element)) {
|
|
60
|
+
return NodeSpace.getTextTopSpace(board, element) + element.height + nodeAndText;
|
|
61
|
+
}
|
|
62
|
+
return nodeAndText + element.height + nodeAndText;
|
|
63
|
+
},
|
|
64
|
+
getNodeDynamicWidth(board, element) {
|
|
65
|
+
const width = element.manualWidth || element.width;
|
|
66
|
+
const imageWidth = MindElement.hasImage(element) ? element.data.image?.width : 0;
|
|
67
|
+
return Math.max(width, imageWidth);
|
|
68
|
+
},
|
|
69
|
+
/**
|
|
70
|
+
* use it when upload image first or resize image
|
|
71
|
+
*/
|
|
72
|
+
getNodeNewDynamicWidth(board, element, imageWidth) {
|
|
73
|
+
const width = element.manualWidth || element.width;
|
|
74
|
+
return Math.max(width, imageWidth);
|
|
75
|
+
},
|
|
76
|
+
getNodeResizableMinWidth(board, element) {
|
|
77
|
+
const minTopicWidth = NodeSpace.getNodeTopicMinWidth(board, element);
|
|
78
|
+
if (MindElement.hasImage(element) && element.data.image.width > minTopicWidth) {
|
|
79
|
+
return element.data.image.width;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
return minTopicWidth;
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
getNodeTopicMinWidth(board, element, isRoot = false) {
|
|
86
|
+
const defaultFontSize = getNodeDefaultFontSize(isRoot);
|
|
87
|
+
const editor = MindElement.getTextEditor(element);
|
|
88
|
+
const marks = PlaitMarkEditor.getMarks(editor);
|
|
89
|
+
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
90
|
+
return fontSize;
|
|
91
|
+
},
|
|
92
|
+
getTextLeftSpace(board, element) {
|
|
93
|
+
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
94
|
+
if (MindElement.hasEmojis(element)) {
|
|
95
|
+
return NodeSpace.getEmojiLeftSpace(board, element) + getEmojisWidthHeight(board, element).width + getSpaceEmojiAndText(element);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
return nodeAndText;
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
getTextTopSpace(board, element) {
|
|
102
|
+
const nodeAndText = getVerticalSpaceBetweenNodeAndText(board, element);
|
|
103
|
+
if (MindElement.hasImage(element)) {
|
|
104
|
+
return NodeSpace.getImageTopSpace(board, element) + element.data.image.height + NodeDefaultSpace.vertical.imageAndText;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
return nodeAndText;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
getImageTopSpace(board, element) {
|
|
111
|
+
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
112
|
+
return strokeWidth + NodeDefaultSpace.vertical.nodeAndImage;
|
|
113
|
+
},
|
|
114
|
+
getEmojiLeftSpace(board, element) {
|
|
115
|
+
const options = board.getPluginOptions(WithMindPluginKey);
|
|
116
|
+
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
117
|
+
return nodeAndText - options.emojiPadding;
|
|
118
|
+
},
|
|
119
|
+
getEmojiTopSpace(board, element) {
|
|
120
|
+
const nodeAndText = getVerticalSpaceBetweenNodeAndText(board, element);
|
|
121
|
+
return nodeAndText;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
export const getFontSizeBySlateElement = (text) => {
|
|
125
|
+
const defaultFontSize = DEFAULT_FONT_SIZE;
|
|
126
|
+
if (typeof text === 'string') {
|
|
127
|
+
return defaultFontSize;
|
|
128
|
+
}
|
|
129
|
+
const marks = PlaitMarkEditor.getMarksByElement(text);
|
|
130
|
+
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
131
|
+
return fontSize;
|
|
132
|
+
};
|
|
133
|
+
export const getNodeDefaultFontSize = (isRoot = false) => {
|
|
134
|
+
const defaultFontSize = isRoot ? ROOT_TOPIC_FONT_SIZE : DEFAULT_FONT_SIZE;
|
|
135
|
+
return defaultFontSize;
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlELE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxHQUFHO1FBQ3ZCLFlBQVksRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMzQjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFlBQVksRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMzQjtDQUNKLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHO0lBQ3JCLFVBQVUsRUFBRTtRQUNSLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNyQixZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUM7S0FDekI7SUFDRCxRQUFRLEVBQUU7UUFDTixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7S0FDeEI7Q0FDSixDQUFDO0FBRUYsTUFBTSxvQ0FBb0MsR0FBRyxDQUFDLEtBQXFCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQ3pGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQy9HLE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxPQUFPLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLEtBQXFCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQ3ZGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUMzRyxPQUFPLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUNsRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztJQUNsSCxPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsWUFBWSxDQUFDLEtBQXFCLEVBQUUsT0FBb0I7UUFDcEQsTUFBTSxXQUFXLEdBQUcsb0NBQW9DLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNoQyxPQUFPLENBQ0gsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7Z0JBQzNDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLO2dCQUMxQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO2dCQUM3QyxXQUFXLENBQ2QsQ0FBQztTQUNMO1FBQ0QsT0FBTyxXQUFXLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDckYsQ0FBQztJQUNELGFBQWEsQ0FBQyxLQUFxQixFQUFFLE9BQW9CO1FBQ3JELE1BQU0sV0FBVyxHQUFHLGtDQUFrQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsT0FBTyxTQUFTLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztTQUNuRjtRQUNELE9BQU8sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO0lBQ3RELENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxLQUFxQixFQUFFLE9BQW9CO1FBQzNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNuRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRDs7T0FFRztJQUNILHNCQUFzQixDQUFDLEtBQXFCLEVBQUUsT0FBb0IsRUFBRSxVQUFrQjtRQUNsRixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsS0FBcUIsRUFBRSxPQUFvQjtRQUNoRSxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsYUFBYSxFQUFFO1lBQzNFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ25DO2FBQU07WUFDSCxPQUFPLGFBQWEsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxLQUFxQixFQUFFLE9BQW9CLEVBQUUsU0FBa0IsS0FBSztRQUNyRixNQUFNLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsTUFBTSxRQUFRLEdBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQVksSUFBSSxlQUFlLENBQUM7UUFDMUUsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUNELGdCQUFnQixDQUFDLEtBQXFCLEVBQUUsT0FBb0I7UUFDeEQsTUFBTSxXQUFXLEdBQUcsb0NBQW9DLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNoQyxPQUFPLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuSTthQUFNO1lBQ0gsT0FBTyxXQUFXLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBQ0QsZUFBZSxDQUFDLEtBQXFCLEVBQUUsT0FBb0I7UUFDdkQsTUFBTSxXQUFXLEdBQUcsa0NBQWtDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMvQixPQUFPLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7U0FDMUg7YUFBTTtZQUNILE9BQU8sV0FBVyxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUNELGdCQUFnQixDQUFDLEtBQXFCLEVBQUUsT0FBb0I7UUFDeEQsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVELE9BQU8sV0FBVyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDaEUsQ0FBQztJQUNELGlCQUFpQixDQUFDLEtBQXFCLEVBQUUsT0FBK0I7UUFDcEUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFrQixpQkFBaUIsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sV0FBVyxHQUFHLG9DQUFvQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RSxPQUFPLFdBQVcsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQzlDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxLQUFxQixFQUFFLE9BQW9CO1FBQ3hELE1BQU0sV0FBVyxHQUFHLGtDQUFrQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RSxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsSUFBc0IsRUFBRSxFQUFFO0lBQ2hFLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDO0lBQzFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzFCLE9BQU8sZUFBZSxDQUFDO0tBQzFCO0lBQ0QsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFZLElBQUksZUFBZSxDQUFDO0lBQzFFLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFO0lBQ3JELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0lBQzFFLE9BQU8sZUFBZSxDQUFDO0FBQzNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfRk9OVF9TSVpFLCBNYXJrVHlwZXMsIFBsYWl0TWFya0VkaXRvciB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IEJBU0UsIFdpdGhNaW5kUGx1Z2luS2V5IH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVtb2ppRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFdpdGhNaW5kT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb3B0aW9ucyc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IGdldEVtb2ppc1dpZHRoSGVpZ2h0IH0gZnJvbSAnLi9lbW9qaSc7XG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgUk9PVF9UT1BJQ19GT05UX1NJWkUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10b3BpYy1zdHlsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL25vZGUtc3R5bGUvc2hhcGUnO1xuXG5jb25zdCBOb2RlRGVmYXVsdFNwYWNlID0ge1xuICAgIGhvcml6b250YWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UgKiAyLjUsXG4gICAgICAgIGVtb2ppQW5kVGV4dDogQkFTRSAqIDEuNVxuICAgIH0sXG4gICAgdmVydGljYWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UsXG4gICAgICAgIG5vZGVBbmRJbWFnZTogQkFTRSxcbiAgICAgICAgaW1hZ2VBbmRUZXh0OiBCQVNFICogMS41XG4gICAgfVxufTtcblxuY29uc3QgUm9vdERlZmF1bHRTcGFjZSA9IHtcbiAgICBob3Jpem9udGFsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogNCxcbiAgICAgICAgZW1vamlBbmRUZXh0OiBCQVNFICogMlxuICAgIH0sXG4gICAgdmVydGljYWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UgKiAyXG4gICAgfVxufTtcblxuY29uc3QgZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0ID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc01pbmQgPSBQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpO1xuICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gaXNNaW5kID8gUm9vdERlZmF1bHRTcGFjZS5ob3Jpem9udGFsLm5vZGVBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS5ob3Jpem9udGFsLm5vZGVBbmRUZXh0O1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIHJldHVybiBub2RlQW5kVGV4dCArIHN0cm9rZVdpZHRoO1xufTtcblxuY29uc3QgZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRUZXh0O1xuICAgIHJldHVybiBub2RlQW5kVGV4dCArIHN0cm9rZVdpZHRoO1xufTtcblxuY29uc3QgZ2V0U3BhY2VFbW9qaUFuZFRleHQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc01pbmQgPSBQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpO1xuICAgIGNvbnN0IGVtb2ppQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5lbW9qaUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0O1xuICAgIHJldHVybiBlbW9qaUFuZFRleHQ7XG59O1xuXG5leHBvcnQgY29uc3QgTm9kZVNwYWNlID0ge1xuICAgIGdldE5vZGVXaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpICtcbiAgICAgICAgICAgICAgICBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZCwgZWxlbWVudCkud2lkdGggK1xuICAgICAgICAgICAgICAgIGdldFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpICtcbiAgICAgICAgICAgICAgICBOb2RlU3BhY2UuZ2V0Tm9kZUR5bmFtaWNXaWR0aChib2FyZCwgZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIG5vZGVBbmRUZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCArIE5vZGVTcGFjZS5nZXROb2RlRHluYW1pY1dpZHRoKGJvYXJkLCBlbGVtZW50KSArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0Tm9kZUhlaWdodChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXRUZXh0VG9wU3BhY2UoYm9hcmQsIGVsZW1lbnQpICsgZWxlbWVudC5oZWlnaHQgKyBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBlbGVtZW50LmhlaWdodCArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0Tm9kZUR5bmFtaWNXaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5tYW51YWxXaWR0aCB8fCBlbGVtZW50LndpZHRoO1xuICAgICAgICBjb25zdCBpbWFnZVdpZHRoID0gTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkgPyBlbGVtZW50LmRhdGEuaW1hZ2U/LndpZHRoIDogMDtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KHdpZHRoLCBpbWFnZVdpZHRoKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIHVzZSBpdCB3aGVuIHVwbG9hZCBpbWFnZSBmaXJzdCBvciByZXNpemUgaW1hZ2VcbiAgICAgKi9cbiAgICBnZXROb2RlTmV3RHluYW1pY1dpZHRoKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQsIGltYWdlV2lkdGg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnQubWFudWFsV2lkdGggfHwgZWxlbWVudC53aWR0aDtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KHdpZHRoLCBpbWFnZVdpZHRoKTtcbiAgICB9LFxuICAgIGdldE5vZGVSZXNpemFibGVNaW5XaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG1pblRvcGljV2lkdGggPSBOb2RlU3BhY2UuZ2V0Tm9kZVRvcGljTWluV2lkdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkgJiYgZWxlbWVudC5kYXRhLmltYWdlLndpZHRoID4gbWluVG9waWNXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZGF0YS5pbWFnZS53aWR0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBtaW5Ub3BpY1dpZHRoO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXROb2RlVG9waWNNaW5XaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBpc1Jvb3Q6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBkZWZhdWx0Rm9udFNpemUgPSBnZXROb2RlRGVmYXVsdEZvbnRTaXplKGlzUm9vdCk7XG4gICAgICAgIGNvbnN0IGVkaXRvciA9IE1pbmRFbGVtZW50LmdldFRleHRFZGl0b3IoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG1hcmtzID0gUGxhaXRNYXJrRWRpdG9yLmdldE1hcmtzKGVkaXRvcik7XG4gICAgICAgIGNvbnN0IGZvbnRTaXplID0gKG1hcmtzW01hcmtUeXBlcy5mb250U2l6ZV0gYXMgbnVtYmVyKSB8fCBkZWZhdWx0Rm9udFNpemU7XG4gICAgICAgIHJldHVybiBmb250U2l6ZTtcbiAgICB9LFxuICAgIGdldFRleHRMZWZ0U3BhY2UoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpICsgZ2V0RW1vamlzV2lkdGhIZWlnaHQoYm9hcmQsIGVsZW1lbnQpLndpZHRoICsgZ2V0U3BhY2VFbW9qaUFuZFRleHQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldFRleHRUb3BTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXRJbWFnZVRvcFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIGVsZW1lbnQuZGF0YS5pbWFnZS5oZWlnaHQgKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLmltYWdlQW5kVGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0SW1hZ2VUb3BTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gc3Ryb2tlV2lkdGggKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRJbWFnZTtcbiAgICB9LFxuICAgIGdldEVtb2ppTGVmdFNwYWNlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPikge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gYm9hcmQuZ2V0UGx1Z2luT3B0aW9uczxXaXRoTWluZE9wdGlvbnM+KFdpdGhNaW5kUGx1Z2luS2V5KTtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRIb3Jpem9udGFsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgLSBvcHRpb25zLmVtb2ppUGFkZGluZztcbiAgICB9LFxuICAgIGdldEVtb2ppVG9wU3BhY2UoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldEZvbnRTaXplQnlTbGF0ZUVsZW1lbnQgPSAodGV4dDogc3RyaW5nIHwgRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IERFRkFVTFRfRk9OVF9TSVpFO1xuICAgIGlmICh0eXBlb2YgdGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRGb250U2l6ZTtcbiAgICB9XG4gICAgY29uc3QgbWFya3MgPSBQbGFpdE1hcmtFZGl0b3IuZ2V0TWFya3NCeUVsZW1lbnQodGV4dCk7XG4gICAgY29uc3QgZm9udFNpemUgPSAobWFya3NbTWFya1R5cGVzLmZvbnRTaXplXSBhcyBudW1iZXIpIHx8IGRlZmF1bHRGb250U2l6ZTtcbiAgICByZXR1cm4gZm9udFNpemU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Tm9kZURlZmF1bHRGb250U2l6ZSA9IChpc1Jvb3QgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IGlzUm9vdCA/IFJPT1RfVE9QSUNfRk9OVF9TSVpFIDogREVGQVVMVF9GT05UX1NJWkU7XG4gICAgcmV0dXJuIGRlZmF1bHRGb250U2l6ZTtcbn07XG4iXX0=
|