@plait/mind 0.27.0-next.1 → 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.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/{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/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 +1384 -1550
- 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 -2
- 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/node/create-node.d.ts +2 -2
- package/utils/node/image.d.ts +0 -2
- 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 -28
- 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 -72
- 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 -109
- package/esm2020/plugins/with-mind.mjs +0 -114
- package/esm2020/plugins/with-node-dnd.mjs +0 -180
- 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/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/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 -4382
- package/fesm2015/plait-mind.mjs.map +0 -1
- package/fesm2020/plait-mind.mjs.map +0 -1
- package/mind.module.d.ts +0 -11
- /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}/plugins/with-node-image-resize.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/index.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/image.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,34 +0,0 @@
|
|
|
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, originPoint, element) {
|
|
17
|
-
const nodeRectangle = {
|
|
18
|
-
x: originPoint[0],
|
|
19
|
-
y: originPoint[1],
|
|
20
|
-
width: NodeSpace.getNodeWidth(board, element),
|
|
21
|
-
height: NodeSpace.getNodeHeight(board, element)
|
|
22
|
-
};
|
|
23
|
-
return nodeRectangle;
|
|
24
|
-
}
|
|
25
|
-
export function isHitMindElement(board, point, element) {
|
|
26
|
-
const node = MindElement.getNode(element);
|
|
27
|
-
if (node && distanceBetweenPointAndRectangle(point[0], point[1], getRectangleByNode(node)) === 0) {
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3Bvc2l0aW9uL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQyxnQ0FBZ0MsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFjO0lBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM3QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLE9BQU87UUFDSCxDQUFDO1FBQ0QsQ0FBQztRQUNELEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBcUIsRUFBRSxXQUFrQixFQUFFLE9BQW9CO0lBQ2pHLE1BQU0sYUFBYSxHQUFHO1FBQ2xCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLEtBQUssRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7UUFDN0MsTUFBTSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztLQUNsRCxDQUFDO0lBQ0YsT0FBTyxhQUFhLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFpQixFQUFFLEtBQVksRUFBRSxPQUFvQjtJQUNsRixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLElBQUksSUFBSSxJQUFJLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUYsT0FBTyxJQUFJLENBQUM7S0FDZjtTQUFNO1FBQ0gsT0FBTyxLQUFLLENBQUM7S0FDaEI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCwgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuLi9zcGFjZS9ub2RlLXNwYWNlJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjdGFuZ2xlQnlOb2RlKG5vZGU6IE1pbmROb2RlKTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBjb25zdCB4ID0gbm9kZS54ICsgbm9kZS5oR2FwO1xuICAgIGxldCB5ID0gbm9kZS55ICsgbm9kZS52R2FwO1xuICAgIGNvbnN0IHdpZHRoID0gbm9kZS53aWR0aCAtIG5vZGUuaEdhcCAqIDI7XG4gICAgY29uc3QgaGVpZ2h0ID0gbm9kZS5oZWlnaHQgLSBub2RlLnZHYXAgKiAyO1xuICAgIHJldHVybiB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50KGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgb3JpZ2luUG9pbnQ6IFBvaW50LCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgIGNvbnN0IG5vZGVSZWN0YW5nbGUgPSB7XG4gICAgICAgIHg6IG9yaWdpblBvaW50WzBdLFxuICAgICAgICB5OiBvcmlnaW5Qb2ludFsxXSxcbiAgICAgICAgd2lkdGg6IE5vZGVTcGFjZS5nZXROb2RlV2lkdGgoYm9hcmQsIGVsZW1lbnQpLFxuICAgICAgICBoZWlnaHQ6IE5vZGVTcGFjZS5nZXROb2RlSGVpZ2h0KGJvYXJkLCBlbGVtZW50KVxuICAgIH07XG4gICAgcmV0dXJuIG5vZGVSZWN0YW5nbGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hpdE1pbmRFbGVtZW50KGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludDogUG9pbnQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgY29uc3Qgbm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCk7XG4gICAgaWYgKG5vZGUgJiYgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUocG9pbnRbMF0sIHBvaW50WzFdLCBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSkpID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
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
|
-
// add buffer width to avoid unexpected text breaks in different scene
|
|
7
|
-
result.width = result.width + 4;
|
|
8
|
-
return result;
|
|
9
|
-
}
|
|
10
|
-
export function getTopicRectangleByElement(board, nodeRectangle, element) {
|
|
11
|
-
const x = nodeRectangle.x + NodeSpace.getTextLeftSpace(board, element);
|
|
12
|
-
const y = nodeRectangle.y + NodeSpace.getTextTopSpace(board, element);
|
|
13
|
-
const width = NodeSpace.getNodeDynamicWidth(board, element);
|
|
14
|
-
const height = Math.ceil(element.height);
|
|
15
|
-
return { height, width, x, y };
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi90b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzVDLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxLQUFxQixFQUFFLElBQWM7SUFDekUsSUFBSSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsTUFBTSxNQUFNLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0Usc0VBQXNFO0lBQ3RFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDaEMsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxLQUFxQixFQUFFLGFBQThCLEVBQUUsT0FBb0I7SUFDbEgsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEUsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgTm9kZVNwYWNlIH0gZnJvbSAnLi4vc3BhY2Uvbm9kZS1zcGFjZSc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9waWNSZWN0YW5nbGVCeU5vZGUoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBub2RlOiBNaW5kTm9kZSkge1xuICAgIGxldCBub2RlUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGdldFRvcGljUmVjdGFuZ2xlQnlFbGVtZW50KGJvYXJkLCBub2RlUmVjdGFuZ2xlLCBub2RlLm9yaWdpbik7XG4gICAgLy8gYWRkIGJ1ZmZlciB3aWR0aCB0byBhdm9pZCB1bmV4cGVjdGVkIHRleHQgYnJlYWtzIGluIGRpZmZlcmVudCBzY2VuZVxuICAgIHJlc3VsdC53aWR0aCA9IHJlc3VsdC53aWR0aCArIDQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcGljUmVjdGFuZ2xlQnlFbGVtZW50KGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgbm9kZVJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgIGNvbnN0IHggPSBub2RlUmVjdGFuZ2xlLnggKyBOb2RlU3BhY2UuZ2V0VGV4dExlZnRTcGFjZShib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgeSA9IG5vZGVSZWN0YW5nbGUueSArIE5vZGVTcGFjZS5nZXRUZXh0VG9wU3BhY2UoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHdpZHRoID0gTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IGhlaWdodCA9IE1hdGguY2VpbChlbGVtZW50LmhlaWdodCk7XG4gICAgcmV0dXJuIHsgaGVpZ2h0LCB3aWR0aCwgeCwgeSB9O1xufVxuIl19
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { ConnectingPosition, isHorizontalLayout, isHorizontalLogicLayout, isIndentedLayout } from "@plait/layouts";
|
|
2
|
-
import { MindElementShape } from "../../interfaces/element";
|
|
3
|
-
import { BASE, STROKE_WIDTH } 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
|
-
const strokeWidth = element.strokeWidth || STROKE_WIDTH;
|
|
9
|
-
if (element.isRoot) {
|
|
10
|
-
return BASE * 12;
|
|
11
|
-
}
|
|
12
|
-
if (parent && parent.isRoot()) {
|
|
13
|
-
return BASE * 3 + strokeWidth / 2;
|
|
14
|
-
}
|
|
15
|
-
return BASE * 3 + strokeWidth / 2;
|
|
16
|
-
}
|
|
17
|
-
function getSecondAxle(element, parent) {
|
|
18
|
-
const strokeWidth = element.strokeWidth || STROKE_WIDTH;
|
|
19
|
-
if (element.isRoot) {
|
|
20
|
-
return BASE * 10 + strokeWidth / 2;
|
|
21
|
-
}
|
|
22
|
-
return BASE * 6 + strokeWidth / 2;
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
getHeight(element) {
|
|
26
|
-
return NodeSpace.getNodeHeight(board, element);
|
|
27
|
-
},
|
|
28
|
-
getWidth(element) {
|
|
29
|
-
return NodeSpace.getNodeWidth(board, element);
|
|
30
|
-
},
|
|
31
|
-
getHorizontalGap(element, parent) {
|
|
32
|
-
const _layout = (parent && parent.layout) || getRootLayout(element);
|
|
33
|
-
const isHorizontal = isHorizontalLayout(_layout);
|
|
34
|
-
const strokeWidth = element.strokeWidth || STROKE_WIDTH;
|
|
35
|
-
if (isIndentedLayout(_layout)) {
|
|
36
|
-
return BASE * 4 + strokeWidth;
|
|
37
|
-
}
|
|
38
|
-
if (!isHorizontal) {
|
|
39
|
-
return getMainAxle(element, parent);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
return getSecondAxle(element, parent);
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
getVerticalGap(element, parent) {
|
|
46
|
-
const _layout = (parent && parent.layout) || getRootLayout(element);
|
|
47
|
-
if (isIndentedLayout(_layout)) {
|
|
48
|
-
return BASE;
|
|
49
|
-
}
|
|
50
|
-
const isHorizontal = isHorizontalLayout(_layout);
|
|
51
|
-
if (isHorizontal) {
|
|
52
|
-
return getMainAxle(element, parent);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
return getSecondAxle(element, parent);
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
getVerticalConnectingPosition(element, parent) {
|
|
59
|
-
if (element.shape === MindElementShape.underline && parent && isHorizontalLogicLayout(parent.layout)) {
|
|
60
|
-
return ConnectingPosition.bottom;
|
|
61
|
-
}
|
|
62
|
-
return undefined;
|
|
63
|
-
},
|
|
64
|
-
getExtendHeight(node) {
|
|
65
|
-
return BASE * 6;
|
|
66
|
-
},
|
|
67
|
-
getIndentedCrossLevelGap() {
|
|
68
|
-
return BASE * 2;
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9zcGFjZS9sYXlvdXQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQXlDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUosT0FBTyxFQUFlLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUU7SUFDdEQsU0FBUyxXQUFXLENBQUMsT0FBb0IsRUFBRSxNQUFtQjtRQUMxRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQztRQUN4RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxJQUFJLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVMsYUFBYSxDQUFDLE9BQW9CLEVBQUUsTUFBbUI7UUFDNUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUM7UUFDeEQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxHQUFHLEVBQUUsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU87UUFDSCxTQUFTLENBQUMsT0FBb0I7WUFDMUIsT0FBTyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsUUFBUSxDQUFDLE9BQW9CO1lBQ3pCLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsTUFBbUI7WUFDdEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRSxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQztZQUN4RCxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMzQixPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO2FBQ2pDO1lBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDZixPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0gsT0FBTyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3pDO1FBQ0wsQ0FBQztRQUNELGNBQWMsQ0FBQyxPQUFvQixFQUFFLE1BQW1CO1lBQ3BELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEUsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUNELE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELElBQUksWUFBWSxFQUFFO2dCQUNkLE9BQU8sV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDSCxPQUFPLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDO1FBQ0QsNkJBQTZCLENBQUMsT0FBb0IsRUFBRSxNQUFtQjtZQUNuRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxJQUFJLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2xHLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxDQUFDO2FBQ3BDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUNELGVBQWUsQ0FBQyxJQUFnQjtZQUM1QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELHdCQUF3QjtZQUNwQixPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQztLQUNhLENBQUM7QUFDdkIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGluZ1Bvc2l0aW9uLCBMYXlvdXROb2RlLCBMYXlvdXRPcHRpb25zLCBPcmlnaW5Ob2RlLCBpc0hvcml6b250YWxMYXlvdXQsIGlzSG9yaXpvbnRhbExvZ2ljTGF5b3V0LCBpc0luZGVudGVkTGF5b3V0IH0gZnJvbSBcIkBwbGFpdC9sYXlvdXRzXCI7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgTWluZEVsZW1lbnRTaGFwZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnRcIjtcbmltcG9ydCB7IEJBU0UsIFNUUk9LRV9XSURUSCB9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvZGVmYXVsdFwiO1xuaW1wb3J0IHsgZ2V0Um9vdExheW91dCB9IGZyb20gXCIuLi9sYXlvdXRcIjtcbmltcG9ydCB7IE5vZGVTcGFjZSB9IGZyb20gXCIuL25vZGUtc3BhY2VcIjtcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSBcIi4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkXCI7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXlvdXRPcHRpb25zID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCkgPT4ge1xuICAgIGZ1bmN0aW9uIGdldE1haW5BeGxlKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZWxlbWVudC5zdHJva2VXaWR0aCB8fCBTVFJPS0VfV0lEVEg7XG4gICAgICAgIGlmIChlbGVtZW50LmlzUm9vdCkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiAxMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC5pc1Jvb3QoKSkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiAzICsgc3Ryb2tlV2lkdGggLyAyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBCQVNFICogMyArIHN0cm9rZVdpZHRoIC8gMjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZWNvbmRBeGxlKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZWxlbWVudC5zdHJva2VXaWR0aCB8fCBTVFJPS0VfV0lEVEg7XG4gICAgICAgIGlmIChlbGVtZW50LmlzUm9vdCkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiAxMCArIHN0cm9rZVdpZHRoIC8gMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQkFTRSAqIDYgKyBzdHJva2VXaWR0aCAvIDI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ2V0SGVpZ2h0KGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldE5vZGVIZWlnaHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICB9LFxuICAgICAgICBnZXRXaWR0aChlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXROb2RlV2lkdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICB9LFxuICAgICAgICBnZXRIb3Jpem9udGFsR2FwKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBfbGF5b3V0ID0gKHBhcmVudCAmJiBwYXJlbnQubGF5b3V0KSB8fCBnZXRSb290TGF5b3V0KGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gaXNIb3Jpem9udGFsTGF5b3V0KF9sYXlvdXQpO1xuICAgICAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBlbGVtZW50LnN0cm9rZVdpZHRoIHx8IFNUUk9LRV9XSURUSDtcbiAgICAgICAgICAgIGlmIChpc0luZGVudGVkTGF5b3V0KF9sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiA0ICsgc3Ryb2tlV2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzSG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRNYWluQXhsZShlbGVtZW50LCBwYXJlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U2Vjb25kQXhsZShlbGVtZW50LCBwYXJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBnZXRWZXJ0aWNhbEdhcChlbGVtZW50OiBNaW5kRWxlbWVudCwgcGFyZW50PzogTGF5b3V0Tm9kZSkge1xuICAgICAgICAgICAgY29uc3QgX2xheW91dCA9IChwYXJlbnQgJiYgcGFyZW50LmxheW91dCkgfHwgZ2V0Um9vdExheW91dChlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChpc0luZGVudGVkTGF5b3V0KF9sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJBU0U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQoX2xheW91dCk7XG4gICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldE1haW5BeGxlKGVsZW1lbnQsIHBhcmVudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTZWNvbmRBeGxlKGVsZW1lbnQsIHBhcmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldFZlcnRpY2FsQ29ubmVjdGluZ1Bvc2l0aW9uKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5zaGFwZSA9PT0gTWluZEVsZW1lbnRTaGFwZS51bmRlcmxpbmUgJiYgcGFyZW50ICYmIGlzSG9yaXpvbnRhbExvZ2ljTGF5b3V0KHBhcmVudC5sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RpbmdQb3NpdGlvbi5ib3R0b207XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LFxuICAgICAgICBnZXRFeHRlbmRIZWlnaHQobm9kZTogT3JpZ2luTm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiA2O1xuICAgICAgICB9LFxuICAgICAgICBnZXRJbmRlbnRlZENyb3NzTGV2ZWxHYXAoKSB7XG4gICAgICAgICAgICByZXR1cm4gQkFTRSAqIDI7XG4gICAgICAgIH1cbiAgICB9IGFzIExheW91dE9wdGlvbnM7XG59Il19
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_FONT_SIZE, MarkTypes, PlaitMarkEditor } from '@plait/text';
|
|
2
|
-
import { BASE } from '../../constants/default';
|
|
3
|
-
import { PlaitMind } from '../../interfaces/element';
|
|
4
|
-
import { MindElement } from '../../interfaces/element';
|
|
5
|
-
import { WithMindPluginKey, getStrokeWidthByElement } from '../../public-api';
|
|
6
|
-
import { getEmojisWidthHeight } from './emoji';
|
|
7
|
-
import { ROOT_TOPIC_FONT_SIZE } from '../../constants/node-topic-style';
|
|
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 / 2;
|
|
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 / 2;
|
|
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 this when upload image first or resize image
|
|
71
|
-
* @param board
|
|
72
|
-
* @param element
|
|
73
|
-
* @param imageWidth
|
|
74
|
-
* @returns
|
|
75
|
-
*/
|
|
76
|
-
getNodeNewDynamicWidth(board, element, imageWidth) {
|
|
77
|
-
const width = element.manualWidth || element.width;
|
|
78
|
-
return Math.max(width, imageWidth);
|
|
79
|
-
},
|
|
80
|
-
getNodeResizableMinWidth(board, element) {
|
|
81
|
-
const minTopicWidth = NodeSpace.getNodeTopicMinWidth(board, element);
|
|
82
|
-
if (MindElement.hasImage(element) && element.data.image.width > minTopicWidth) {
|
|
83
|
-
return element.data.image.width;
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
return minTopicWidth;
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
getNodeTopicMinWidth(board, element, isRoot = false) {
|
|
90
|
-
const defaultFontSize = getNodeDefaultFontSize(isRoot);
|
|
91
|
-
const editor = MindElement.getTextEditor(element);
|
|
92
|
-
const marks = PlaitMarkEditor.getMarks(editor);
|
|
93
|
-
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
94
|
-
return fontSize;
|
|
95
|
-
},
|
|
96
|
-
getTextLeftSpace(board, element) {
|
|
97
|
-
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
98
|
-
if (MindElement.hasEmojis(element)) {
|
|
99
|
-
return NodeSpace.getEmojiLeftSpace(board, element) + getEmojisWidthHeight(board, element).width + getSpaceEmojiAndText(element);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
return nodeAndText;
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
getTextTopSpace(board, element) {
|
|
106
|
-
const nodeAndText = getVerticalSpaceBetweenNodeAndText(board, element);
|
|
107
|
-
if (MindElement.hasImage(element)) {
|
|
108
|
-
return NodeSpace.getImageTopSpace(board, element) + element.data.image.height + NodeDefaultSpace.vertical.imageAndText;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
return nodeAndText;
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
getImageTopSpace(board, element) {
|
|
115
|
-
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
116
|
-
return strokeWidth / 2 + NodeDefaultSpace.vertical.nodeAndImage;
|
|
117
|
-
},
|
|
118
|
-
getEmojiLeftSpace(board, element) {
|
|
119
|
-
const options = board.getPluginOptions(WithMindPluginKey);
|
|
120
|
-
const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
|
|
121
|
-
const strokeWidth = getStrokeWidthByElement(board, element);
|
|
122
|
-
return strokeWidth / 2 + nodeAndText - options.emojiPadding;
|
|
123
|
-
},
|
|
124
|
-
getEmojiTopSpace(board, element) {
|
|
125
|
-
const nodeAndText = getVerticalSpaceBetweenNodeAndText(board, element);
|
|
126
|
-
return nodeAndText;
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
export const getFontSizeBySlateElement = (text) => {
|
|
130
|
-
const defaultFontSize = DEFAULT_FONT_SIZE;
|
|
131
|
-
if (typeof text === 'string') {
|
|
132
|
-
return defaultFontSize;
|
|
133
|
-
}
|
|
134
|
-
const marks = PlaitMarkEditor.getMarksByElement(text);
|
|
135
|
-
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
136
|
-
return fontSize;
|
|
137
|
-
};
|
|
138
|
-
export const getNodeDefaultFontSize = (isRoot = false) => {
|
|
139
|
-
const defaultFontSize = isRoot ? ROOT_TOPIC_FONT_SIZE : DEFAULT_FONT_SIZE;
|
|
140
|
-
return defaultFontSize;
|
|
141
|
-
};
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXhFLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxHQUFHO1FBQ3ZCLFlBQVksRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMzQjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFlBQVksRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMzQjtDQUNKLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHO0lBQ3JCLFVBQVUsRUFBRTtRQUNSLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNyQixZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUM7S0FDekI7SUFDRCxRQUFRLEVBQUU7UUFDTixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7S0FDeEI7Q0FDSixDQUFDO0FBRUYsTUFBTSxvQ0FBb0MsR0FBRyxDQUFDLEtBQXFCLEVBQUUsT0FB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aUJBQWlCLENBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTVELE9BQU8sV0FBVyxHQUFHLENBQUMsR0FBRyxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUNoRSxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBcUIsRUFBRSxPQUFvQjtRQUN4RCxNQUFNLFdBQVcsR0FBRyxrQ0FBa0MsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkUsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLElBQXNCLEVBQUUsRUFBRTtJQUNoRSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztJQUMxQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUMxQixPQUFPLGVBQWUsQ0FBQztLQUMxQjtJQUNELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxNQUFNLFFBQVEsR0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBWSxJQUFJLGVBQWUsQ0FBQztJQUMxRSxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsRUFBRTtJQUNyRCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUMxRSxPQUFPLGVBQWUsQ0FBQztBQUMzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX0ZPTlRfU0laRSwgTWFya1R5cGVzLCBQbGFpdE1hcmtFZGl0b3IgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBCQVNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVtb2ppRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFdpdGhNaW5kT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb3B0aW9ucyc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IFdpdGhNaW5kUGx1Z2luS2V5LCBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgZ2V0RW1vamlzV2lkdGhIZWlnaHQgfSBmcm9tICcuL2Vtb2ppJztcbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBST09UX1RPUElDX0ZPTlRfU0laRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXRvcGljLXN0eWxlJztcblxuY29uc3QgTm9kZURlZmF1bHRTcGFjZSA9IHtcbiAgICBob3Jpem9udGFsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMi41LFxuICAgICAgICBlbW9qaUFuZFRleHQ6IEJBU0UgKiAxLjVcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFLFxuICAgICAgICBub2RlQW5kSW1hZ2U6IEJBU0UsXG4gICAgICAgIGltYWdlQW5kVGV4dDogQkFTRSAqIDEuNVxuICAgIH1cbn07XG5cbmNvbnN0IFJvb3REZWZhdWx0U3BhY2UgPSB7XG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDQsXG4gICAgICAgIGVtb2ppQW5kVGV4dDogQkFTRSAqIDJcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMlxuICAgIH1cbn07XG5cbmNvbnN0IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dDtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBzdHJva2VXaWR0aCAvIDI7XG59O1xuXG5jb25zdCBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0ID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc01pbmQgPSBQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gaXNNaW5kID8gUm9vdERlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZFRleHQ7XG4gICAgcmV0dXJuIG5vZGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGggLyAyO1xufTtcblxuY29uc3QgZ2V0U3BhY2VFbW9qaUFuZFRleHQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc01pbmQgPSBQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpO1xuICAgIGNvbnN0IGVtb2ppQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5lbW9qaUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0O1xuICAgIHJldHVybiBlbW9qaUFuZFRleHQ7XG59O1xuXG5leHBvcnQgY29uc3QgTm9kZVNwYWNlID0ge1xuICAgIGdldE5vZGVXaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpICtcbiAgICAgICAgICAgICAgICBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZCwgZWxlbWVudCkud2lkdGggK1xuICAgICAgICAgICAgICAgIGdldFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpICtcbiAgICAgICAgICAgICAgICBOb2RlU3BhY2UuZ2V0Tm9kZUR5bmFtaWNXaWR0aChib2FyZCwgZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIG5vZGVBbmRUZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCArIE5vZGVTcGFjZS5nZXROb2RlRHluYW1pY1dpZHRoKGJvYXJkLCBlbGVtZW50KSArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0Tm9kZUhlaWdodChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXRUZXh0VG9wU3BhY2UoYm9hcmQsIGVsZW1lbnQpICsgZWxlbWVudC5oZWlnaHQgKyBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBlbGVtZW50LmhlaWdodCArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0Tm9kZUR5bmFtaWNXaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5tYW51YWxXaWR0aCB8fCBlbGVtZW50LndpZHRoO1xuICAgICAgICBjb25zdCBpbWFnZVdpZHRoID0gTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkgPyBlbGVtZW50LmRhdGEuaW1hZ2U/LndpZHRoIDogMDtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KHdpZHRoLCBpbWFnZVdpZHRoKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIHVzZSB0aGlzIHdoZW4gdXBsb2FkIGltYWdlIGZpcnN0IG9yIHJlc2l6ZSBpbWFnZVxuICAgICAqIEBwYXJhbSBib2FyZCBcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBcbiAgICAgKiBAcGFyYW0gaW1hZ2VXaWR0aCBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBnZXROb2RlTmV3RHluYW1pY1dpZHRoKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQsIGltYWdlV2lkdGg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnQubWFudWFsV2lkdGggfHwgZWxlbWVudC53aWR0aDtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KHdpZHRoLCBpbWFnZVdpZHRoKTtcbiAgICB9LFxuICAgIGdldE5vZGVSZXNpemFibGVNaW5XaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG1pblRvcGljV2lkdGggPSBOb2RlU3BhY2UuZ2V0Tm9kZVRvcGljTWluV2lkdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkgJiYgZWxlbWVudC5kYXRhLmltYWdlLndpZHRoID4gbWluVG9waWNXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZGF0YS5pbWFnZS53aWR0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBtaW5Ub3BpY1dpZHRoO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXROb2RlVG9waWNNaW5XaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBpc1Jvb3Q6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBkZWZhdWx0Rm9udFNpemUgPSBnZXROb2RlRGVmYXVsdEZvbnRTaXplKGlzUm9vdCk7XG4gICAgICAgIGNvbnN0IGVkaXRvciA9IE1pbmRFbGVtZW50LmdldFRleHRFZGl0b3IoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG1hcmtzID0gUGxhaXRNYXJrRWRpdG9yLmdldE1hcmtzKGVkaXRvcik7XG4gICAgICAgIGNvbnN0IGZvbnRTaXplID0gKG1hcmtzW01hcmtUeXBlcy5mb250U2l6ZV0gYXMgbnVtYmVyKSB8fCBkZWZhdWx0Rm9udFNpemU7XG4gICAgICAgIHJldHVybiBmb250U2l6ZTtcbiAgICB9LFxuICAgIGdldFRleHRMZWZ0U3BhY2UoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpICsgZ2V0RW1vamlzV2lkdGhIZWlnaHQoYm9hcmQsIGVsZW1lbnQpLndpZHRoICsgZ2V0U3BhY2VFbW9qaUFuZFRleHQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldFRleHRUb3BTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXRJbWFnZVRvcFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIGVsZW1lbnQuZGF0YS5pbWFnZS5oZWlnaHQgKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLmltYWdlQW5kVGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0SW1hZ2VUb3BTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuXG4gICAgICAgIHJldHVybiBzdHJva2VXaWR0aCAvIDIgKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRJbWFnZTtcbiAgICB9LFxuICAgIGdldEVtb2ppTGVmdFNwYWNlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPikge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gYm9hcmQuZ2V0UGx1Z2luT3B0aW9uczxXaXRoTWluZE9wdGlvbnM+KFdpdGhNaW5kUGx1Z2luS2V5KTtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRIb3Jpem9udGFsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gc3Ryb2tlV2lkdGggLyAyICsgbm9kZUFuZFRleHQgLSBvcHRpb25zLmVtb2ppUGFkZGluZztcbiAgICB9LFxuICAgIGdldEVtb2ppVG9wU3BhY2UoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldEZvbnRTaXplQnlTbGF0ZUVsZW1lbnQgPSAodGV4dDogc3RyaW5nIHwgRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IERFRkFVTFRfRk9OVF9TSVpFO1xuICAgIGlmICh0eXBlb2YgdGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRGb250U2l6ZTtcbiAgICB9XG4gICAgY29uc3QgbWFya3MgPSBQbGFpdE1hcmtFZGl0b3IuZ2V0TWFya3NCeUVsZW1lbnQodGV4dCk7XG4gICAgY29uc3QgZm9udFNpemUgPSAobWFya3NbTWFya1R5cGVzLmZvbnRTaXplXSBhcyBudW1iZXIpIHx8IGRlZmF1bHRGb250U2l6ZTtcbiAgICByZXR1cm4gZm9udFNpemU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Tm9kZURlZmF1bHRGb250U2l6ZSA9IChpc1Jvb3QgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IGlzUm9vdCA/IFJPT1RfVE9QSUNfRk9OVF9TSVpFIDogREVGQVVMVF9GT05UX1NJWkU7XG4gICAgcmV0dXJuIGRlZmF1bHRGb250U2l6ZTtcbn07XG4iXX0=
|