@plait/mind 0.2.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/constants/default.d.ts +12 -0
- package/constants/index.d.ts +2 -0
- package/constants/node.d.ts +17 -0
- package/draw/abstract.d.ts +4 -0
- package/draw/indented-link.d.ts +3 -0
- package/draw/link/abstract-link.d.ts +3 -0
- package/draw/link/logic-link.d.ts +3 -0
- package/draw/link.d.ts +3 -0
- package/draw/richtext.d.ts +14 -0
- package/draw/shape.d.ts +3 -0
- package/esm2020/constants/default.mjs +13 -0
- package/esm2020/constants/index.mjs +3 -0
- package/esm2020/constants/node.mjs +19 -0
- package/esm2020/draw/abstract.mjs +48 -0
- package/esm2020/draw/indented-link.mjs +44 -0
- package/esm2020/draw/link/abstract-link.mjs +42 -0
- package/esm2020/draw/link/logic-link.mjs +51 -0
- package/esm2020/draw/link.mjs +158 -0
- package/esm2020/draw/richtext.mjs +35 -0
- package/esm2020/draw/shape.mjs +18 -0
- package/esm2020/interfaces/abstract.mjs +6 -0
- package/esm2020/interfaces/element-data.mjs +2 -0
- package/esm2020/interfaces/element.mjs +59 -0
- package/esm2020/interfaces/index.mjs +6 -0
- package/esm2020/interfaces/layout.mjs +19 -0
- package/esm2020/interfaces/node.mjs +23 -0
- package/esm2020/interfaces/types.mjs +13 -0
- package/esm2020/layout-option.mjs +72 -0
- package/esm2020/mind.component.mjs +50 -0
- package/esm2020/mind.module.mjs +21 -0
- package/esm2020/node.component.mjs +742 -0
- package/esm2020/plait-mind.mjs +5 -0
- package/esm2020/plugins/emoji/emoji-base.component.mjs +21 -0
- package/esm2020/plugins/emoji/emoji.drawer.mjs +79 -0
- package/esm2020/plugins/emoji/emoji.mjs +15 -0
- package/esm2020/plugins/emoji/index.mjs +4 -0
- package/esm2020/plugins/emoji/with-mind-emoji.mjs +8 -0
- package/esm2020/plugins/with-abstract.mjs +92 -0
- package/esm2020/plugins/with-dnd.mjs +276 -0
- package/esm2020/plugins/with-mind.mjs +183 -0
- package/esm2020/public-api.mjs +14 -0
- package/esm2020/queries/get-available-sublayouts-by-element.mjs +29 -0
- package/esm2020/queries/get-branch-mindmap-layouts-by-element.mjs +18 -0
- package/esm2020/queries/get-correct-layout-by-element.mjs +50 -0
- package/esm2020/queries/get-layout-by-element.mjs +16 -0
- package/esm2020/queries/get-layout-parent-by-element.mjs +17 -0
- package/esm2020/queries/index.mjs +13 -0
- package/esm2020/transforms/index.mjs +10 -0
- package/esm2020/transforms/layout.mjs +23 -0
- package/esm2020/transforms/node.mjs +44 -0
- package/esm2020/utils/abstract/common.mjs +25 -0
- package/esm2020/utils/abstract/resize.mjs +169 -0
- package/esm2020/utils/clipboard.mjs +71 -0
- package/esm2020/utils/colors.mjs +41 -0
- package/esm2020/utils/direction-corrector.mjs +54 -0
- package/esm2020/utils/direction-detector.mjs +56 -0
- package/esm2020/utils/draw-placeholder.mjs +311 -0
- package/esm2020/utils/drop-target-corrector.mjs +86 -0
- package/esm2020/utils/graph.mjs +24 -0
- package/esm2020/utils/index.mjs +14 -0
- package/esm2020/utils/is-virtual-key.mjs +13 -0
- package/esm2020/utils/layout.mjs +105 -0
- package/esm2020/utils/mindmap.mjs +295 -0
- package/esm2020/utils/node-space.mjs +72 -0
- package/esm2020/utils/node.mjs +6 -0
- package/esm2020/utils/path.mjs +11 -0
- package/esm2020/utils/point-placement.mjs +99 -0
- package/esm2020/utils/shape.mjs +17 -0
- package/esm2020/utils/weak-maps.mjs +3 -0
- package/fesm2015/plait-mind.mjs +3583 -0
- package/fesm2015/plait-mind.mjs.map +1 -0
- package/fesm2020/plait-mind.mjs +3595 -0
- package/fesm2020/plait-mind.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/interfaces/abstract.d.ts +4 -0
- package/interfaces/element-data.d.ts +11 -0
- package/interfaces/element.d.ts +39 -0
- package/interfaces/index.d.ts +5 -0
- package/interfaces/layout.d.ts +10 -0
- package/interfaces/node.d.ts +33 -0
- package/interfaces/types.d.ts +11 -0
- package/layout-option.d.ts +2 -0
- package/mind.component.d.ts +16 -0
- package/mind.module.d.ts +11 -0
- package/node.component.d.ts +60 -0
- package/package.json +31 -0
- package/plugins/emoji/emoji-base.component.d.ts +12 -0
- package/plugins/emoji/emoji.d.ts +6 -0
- package/plugins/emoji/emoji.drawer.d.ts +22 -0
- package/plugins/emoji/index.d.ts +3 -0
- package/plugins/emoji/with-mind-emoji.d.ts +8 -0
- package/plugins/with-abstract.d.ts +2 -0
- package/plugins/with-dnd.d.ts +11 -0
- package/plugins/with-mind.d.ts +2 -0
- package/public-api.d.ts +10 -0
- package/queries/get-available-sublayouts-by-element.d.ts +8 -0
- package/queries/get-branch-mindmap-layouts-by-element.d.ts +3 -0
- package/queries/get-correct-layout-by-element.d.ts +9 -0
- package/queries/get-layout-by-element.d.ts +3 -0
- package/queries/get-layout-parent-by-element.d.ts +8 -0
- package/queries/index.d.ts +7 -0
- package/styles/styles.scss +99 -0
- package/transforms/index.d.ts +7 -0
- package/transforms/layout.d.ts +3 -0
- package/transforms/node.d.ts +8 -0
- package/utils/abstract/common.d.ts +5 -0
- package/utils/abstract/resize.d.ts +21 -0
- package/utils/clipboard.d.ts +7 -0
- package/utils/colors.d.ts +4 -0
- package/utils/direction-corrector.d.ts +3 -0
- package/utils/direction-detector.d.ts +9 -0
- package/utils/draw-placeholder.d.ts +42 -0
- package/utils/drop-target-corrector.d.ts +8 -0
- package/utils/graph.d.ts +5 -0
- package/utils/index.d.ts +13 -0
- package/utils/is-virtual-key.d.ts +1 -0
- package/utils/layout.d.ts +12 -0
- package/utils/mindmap.d.ts +33 -0
- package/utils/node-space.d.ts +9 -0
- package/utils/node.d.ts +2 -0
- package/utils/path.d.ts +4 -0
- package/utils/point-placement.d.ts +8 -0
- package/utils/shape.d.ts +3 -0
- package/utils/weak-maps.d.ts +5 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { addSelectedElement, getSelectedElements, hotkeys, IS_TEXT_EDITABLE, PlaitBoard, PlaitHistoryBoard, RectangleClient, removeSelectedElement, toPoint, transformPoint, Transforms, depthFirstRecursion } from '@plait/core';
|
|
2
|
+
import { getSizeByText } from '@plait/richtext';
|
|
3
|
+
import { MindElement, PlaitMind } from '../interfaces';
|
|
4
|
+
import { PlaitMindComponent } from '../mind.component';
|
|
5
|
+
import { MindNodeComponent } from '../node.component';
|
|
6
|
+
import { changeRightNodeCount, insertMindElement, deleteSelectedELements, filterChildElement, findParentElement, shouldChangeRightNodeCount } from '../utils';
|
|
7
|
+
import { getRectangleByNode, hitMindmapElement } from '../utils/graph';
|
|
8
|
+
import { isVirtualKey } from '../utils/is-virtual-key';
|
|
9
|
+
import { MINDMAP_ELEMENT_TO_COMPONENT } from '../utils/weak-maps';
|
|
10
|
+
import { withDnd } from './with-dnd';
|
|
11
|
+
import { buildClipboardData, getDataFromClipboard, insertClipboardData, insertClipboardText, setClipboardData } from '../utils/clipboard';
|
|
12
|
+
import { AbstractNode } from '@plait/layouts';
|
|
13
|
+
import { findNewChildNodePath, findNewSiblingNodePath } from '../utils/path';
|
|
14
|
+
import { enterNodeEditing } from '../utils/node';
|
|
15
|
+
import { withEmoji } from './emoji/with-mind-emoji';
|
|
16
|
+
import { TOPIC_DEFAULT_MAX_WORD_COUNT } from '../constants';
|
|
17
|
+
import { withAbstract } from './with-abstract';
|
|
18
|
+
export const withMind = (board) => {
|
|
19
|
+
const { drawElement, dblclick, keydown, insertFragment, setFragment, deleteFragment, isHitSelection, getRectangle, isMovable, isRecursion } = board;
|
|
20
|
+
board.drawElement = (context) => {
|
|
21
|
+
if (PlaitMind.isMind(context.element)) {
|
|
22
|
+
return PlaitMindComponent;
|
|
23
|
+
}
|
|
24
|
+
else if (MindElement.isMindElement(board, context.element)) {
|
|
25
|
+
return MindNodeComponent;
|
|
26
|
+
}
|
|
27
|
+
return drawElement(context);
|
|
28
|
+
};
|
|
29
|
+
board.getRectangle = element => {
|
|
30
|
+
if (MindElement.isMindElement(board, element)) {
|
|
31
|
+
return getRectangleByNode(MindElement.getNode(element));
|
|
32
|
+
}
|
|
33
|
+
return getRectangle(element);
|
|
34
|
+
};
|
|
35
|
+
board.isRecursion = element => {
|
|
36
|
+
if (MindElement.isMindElement(board, element) && element.isCollapsed) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
return isRecursion(element);
|
|
40
|
+
};
|
|
41
|
+
board.isHitSelection = (element, range) => {
|
|
42
|
+
if (MindElement.isMindElement(board, element) && board.selection) {
|
|
43
|
+
const client = getRectangleByNode(MindElement.getNode(element));
|
|
44
|
+
return RectangleClient.isIntersect(RectangleClient.toRectangleClient([range.anchor, range.focus]), client);
|
|
45
|
+
}
|
|
46
|
+
return isHitSelection(element, range);
|
|
47
|
+
};
|
|
48
|
+
board.isMovable = element => {
|
|
49
|
+
if (PlaitMind.isMind(element) && element.isRoot) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
return isMovable(element);
|
|
53
|
+
};
|
|
54
|
+
board.keydown = (event) => {
|
|
55
|
+
if (board.options.readonly || IS_TEXT_EDITABLE.get(board)) {
|
|
56
|
+
keydown(event);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const selectedElements = getSelectedElements(board);
|
|
60
|
+
if (selectedElements.length) {
|
|
61
|
+
if (selectedElements.length === 1 &&
|
|
62
|
+
(event.key === 'Tab' ||
|
|
63
|
+
(event.key === 'Enter' && !selectedElements[0].isRoot && !AbstractNode.isAbstract(selectedElements[0])))) {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
const selectedElement = selectedElements[0];
|
|
66
|
+
removeSelectedElement(board, selectedElement);
|
|
67
|
+
const selectedElementPath = PlaitBoard.findPath(board, selectedElement);
|
|
68
|
+
if (event.key === 'Tab') {
|
|
69
|
+
if (selectedElement.isCollapsed) {
|
|
70
|
+
const newElement = { isCollapsed: false };
|
|
71
|
+
PlaitHistoryBoard.withoutSaving(board, () => {
|
|
72
|
+
Transforms.setNode(board, newElement, selectedElementPath);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
insertMindElement(board, selectedElement, findNewChildNodePath(board, selectedElement));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (shouldChangeRightNodeCount(selectedElement)) {
|
|
79
|
+
changeRightNodeCount(board, selectedElementPath.slice(0, 1), 1);
|
|
80
|
+
}
|
|
81
|
+
insertMindElement(board, selectedElement, findNewSiblingNodePath(board, selectedElement));
|
|
82
|
+
}
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event)) {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
deleteSelectedELements(board, selectedElements);
|
|
88
|
+
let lastNode = null;
|
|
89
|
+
const elementGroup = filterChildElement(selectedElements);
|
|
90
|
+
const selectNode = elementGroup[0];
|
|
91
|
+
const MindNodeComponent = MINDMAP_ELEMENT_TO_COMPONENT.get(selectNode);
|
|
92
|
+
const nodeIndex = MindNodeComponent?.parent?.children.findIndex(item => item.origin.id === selectNode.id);
|
|
93
|
+
const isSameParent = elementGroup.every(element => {
|
|
94
|
+
return findParentElement(element) && findParentElement(elementGroup[0]) === findParentElement(element);
|
|
95
|
+
});
|
|
96
|
+
if (isSameParent) {
|
|
97
|
+
const childCount = MindNodeComponent.parent?.children.length - elementGroup.length;
|
|
98
|
+
if (childCount === 0) {
|
|
99
|
+
lastNode = MindNodeComponent?.parent;
|
|
100
|
+
}
|
|
101
|
+
else if (nodeIndex === 0) {
|
|
102
|
+
lastNode = MindNodeComponent?.parent.children[elementGroup.length];
|
|
103
|
+
}
|
|
104
|
+
else if (nodeIndex > 0) {
|
|
105
|
+
lastNode = MindNodeComponent?.parent.children[nodeIndex - 1];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (lastNode) {
|
|
109
|
+
addSelectedElement(board, lastNode.origin);
|
|
110
|
+
}
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
// auto enter edit status
|
|
114
|
+
if (!isVirtualKey(event)) {
|
|
115
|
+
event.preventDefault();
|
|
116
|
+
const selectedElement = selectedElements[0];
|
|
117
|
+
enterNodeEditing(selectedElement);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (board.selection && event.code === 'Space') {
|
|
122
|
+
if (selectedElements?.length) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
keydown(event);
|
|
127
|
+
};
|
|
128
|
+
board.dblclick = (event) => {
|
|
129
|
+
if (board.options.readonly || IS_TEXT_EDITABLE.get(board)) {
|
|
130
|
+
dblclick(event);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
134
|
+
board.children
|
|
135
|
+
.filter(value => PlaitMind.isMind(value))
|
|
136
|
+
.forEach(mindmap => {
|
|
137
|
+
depthFirstRecursion(mindmap, node => {
|
|
138
|
+
if (!PlaitBoard.hasBeenTextEditing(board) && hitMindmapElement(board, point, node)) {
|
|
139
|
+
enterNodeEditing(node);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
if (PlaitBoard.hasBeenTextEditing(board)) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
dblclick(event);
|
|
147
|
+
};
|
|
148
|
+
board.setFragment = (data) => {
|
|
149
|
+
const selectedElements = filterChildElement(getSelectedElements(board));
|
|
150
|
+
if (selectedElements.length) {
|
|
151
|
+
const elements = buildClipboardData(board, selectedElements);
|
|
152
|
+
setClipboardData(data, elements);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
setFragment(data);
|
|
156
|
+
};
|
|
157
|
+
board.insertFragment = (data, targetPoint) => {
|
|
158
|
+
if (board.options.readonly) {
|
|
159
|
+
insertFragment(data, targetPoint);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const elements = getDataFromClipboard(data);
|
|
163
|
+
if (elements.length) {
|
|
164
|
+
insertClipboardData(board, elements, targetPoint || [0, 0]);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
const text = data?.getData(`text/plain`);
|
|
168
|
+
const { width, height } = getSizeByText(text, PlaitBoard.getHost(board).parentElement, TOPIC_DEFAULT_MAX_WORD_COUNT);
|
|
169
|
+
const selectedElements = getSelectedElements(board);
|
|
170
|
+
if (text && selectedElements.length === 1) {
|
|
171
|
+
insertClipboardText(board, selectedElements[0], text, width, height);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
insertFragment(data, targetPoint);
|
|
175
|
+
};
|
|
176
|
+
board.deleteFragment = (data) => {
|
|
177
|
+
const selectedElements = getSelectedElements(board);
|
|
178
|
+
deleteSelectedELements(board, selectedElements);
|
|
179
|
+
deleteFragment(data);
|
|
180
|
+
};
|
|
181
|
+
return withEmoji(withAbstract(withDnd(board)));
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1taW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW1pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsaUJBQWlCLEVBSWpCLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsT0FBTyxFQUNQLGNBQWMsRUFDZCxVQUFVLEVBRVYsbUJBQW1CLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDN0IsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUksT0FBTyxFQUFFLFlBQVks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QWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQXlCLEVBQUUsRUFBRTtRQUNqRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBa0IsQ0FBQztRQUNyRSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRCxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBhZGRTZWxlY3RlZEVsZW1lbnQsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBob3RrZXlzLFxuICAgIElTX1RFWFRfRURJVEFCTEUsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEhpc3RvcnlCb2FyZCxcbiAgICBQbGFpdFBsdWdpbixcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIFBvaW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICByZW1vdmVTZWxlY3RlZEVsZW1lbnQsXG4gICAgdG9Qb2ludCxcbiAgICB0cmFuc2Zvcm1Qb2ludCxcbiAgICBUcmFuc2Zvcm1zLFxuICAgIFJhbmdlLFxuICAgIGRlcHRoRmlyc3RSZWN1cnNpb25cbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0U2l6ZUJ5VGV4dCB9IGZyb20gJ0BwbGFpdC9yaWNodGV4dCc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNaW5kbWFwTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRDb21wb25lbnQgfSBmcm9tICcuLi9taW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaW5kTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uL25vZGUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgY2hhbmdlUmlnaHROb2RlQ291bnQsXG4gICAgaW5zZXJ0TWluZEVsZW1lbnQsXG4gICAgZGVsZXRlU2VsZWN0ZWRFTGVtZW50cyxcbiAgICBmaWx0ZXJDaGlsZEVsZW1lbnQsXG4gICAgZmluZFBhcmVudEVsZW1lbnQsXG4gICAgc2hvdWxkQ2hhbmdlUmlnaHROb2RlQ291bnRcbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlOb2RlLCBoaXRNaW5kbWFwRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2dyYXBoJztcbmltcG9ydCB7IGlzVmlydHVhbEtleSB9IGZyb20gJy4uL3V0aWxzL2lzLXZpcnR1YWwta2V5JztcbmltcG9ydCB7IE1JTkRNQVBfRUxFTUVOVF9UT19DT01QT05FTlQgfSBmcm9tICcuLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgd2l0aERuZCB9IGZyb20gJy4vd2l0aC1kbmQnO1xuaW1wb3J0IHsgYnVpbGRDbGlwYm9hcmREYXRhLCBnZXREYXRhRnJvbUNsaXBib2FyZCwgaW5zZXJ0Q2xpcGJvYXJkRGF0YSwgaW5zZXJ0Q2xpcGJvYXJkVGV4dCwgc2V0Q2xpcGJvYXJkRGF0YSB9IGZyb20gJy4uL3V0aWxzL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBmaW5kTmV3Q2hpbGROb2RlUGF0aCwgZmluZE5ld1NpYmxpbmdOb2RlUGF0aCB9IGZyb20gJy4uL3V0aWxzL3BhdGgnO1xuaW1wb3J0IHsgZW50ZXJOb2RlRWRpdGluZyB9IGZyb20gJy4uL3V0aWxzL25vZGUnO1xuaW1wb3J0IHsgd2l0aEVtb2ppIH0gZnJvbSAnLi9lbW9qaS93aXRoLW1pbmQtZW1vamknO1xuaW1wb3J0IHsgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB3aXRoQWJzdHJhY3QgfSBmcm9tICcuL3dpdGgtYWJzdHJhY3QnO1xuXG5leHBvcnQgY29uc3Qgd2l0aE1pbmQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGRyYXdFbGVtZW50LFxuICAgICAgICBkYmxjbGljayxcbiAgICAgICAga2V5ZG93bixcbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQsXG4gICAgICAgIHNldEZyYWdtZW50LFxuICAgICAgICBkZWxldGVGcmFnbWVudCxcbiAgICAgICAgaXNIaXRTZWxlY3Rpb24sXG4gICAgICAgIGdldFJlY3RhbmdsZSxcbiAgICAgICAgaXNNb3ZhYmxlLFxuICAgICAgICBpc1JlY3Vyc2lvblxuICAgIH0gPSBib2FyZDtcblxuICAgIGJvYXJkLmRyYXdFbGVtZW50ID0gKGNvbnRleHQ6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIFBsYWl0TWluZENvbXBvbmVudDtcbiAgICAgICAgfSBlbHNlIGlmIChNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBjb250ZXh0LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRyYXdFbGVtZW50KGNvbnRleHQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nZXRSZWN0YW5nbGUgPSBlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlQnlOb2RlKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzUmVjdXJzaW9uID0gZWxlbWVudCA9PiB7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50KSAmJiBlbGVtZW50LmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzUmVjdXJzaW9uKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc0hpdFNlbGVjdGlvbiA9IChlbGVtZW50LCByYW5nZTogUmFuZ2UpID0+IHtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpICYmIGJvYXJkLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkpO1xuICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0ludGVyc2VjdChSZWN0YW5nbGVDbGllbnQudG9SZWN0YW5nbGVDbGllbnQoW3JhbmdlLmFuY2hvciwgcmFuZ2UuZm9jdXNdKSwgY2xpZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNIaXRTZWxlY3Rpb24oZWxlbWVudCwgcmFuZ2UpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc01vdmFibGUgPSBlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCkgJiYgZWxlbWVudC5pc1Jvb3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc01vdmFibGUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGJvYXJkLm9wdGlvbnMucmVhZG9ubHkgfHwgSVNfVEVYVF9FRElUQUJMRS5nZXQoYm9hcmQpKSB7XG4gICAgICAgICAgICBrZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkgYXMgTWluZEVsZW1lbnRbXTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnVGFiJyB8fFxuICAgICAgICAgICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmICFzZWxlY3RlZEVsZW1lbnRzWzBdLmlzUm9vdCAmJiAhQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3Qoc2VsZWN0ZWRFbGVtZW50c1swXSkpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSBzZWxlY3RlZEVsZW1lbnRzWzBdO1xuICAgICAgICAgICAgICAgIHJlbW92ZVNlbGVjdGVkRWxlbWVudChib2FyZCwgc2VsZWN0ZWRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRQYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc2VsZWN0ZWRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50LmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdFbGVtZW50OiBQYXJ0aWFsPE1pbmRFbGVtZW50PiA9IHsgaXNDb2xsYXBzZWQ6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBQbGFpdEhpc3RvcnlCb2FyZC53aXRob3V0U2F2aW5nKGJvYXJkLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBzZWxlY3RlZEVsZW1lbnRQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluc2VydE1pbmRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEVsZW1lbnQsIGZpbmROZXdDaGlsZE5vZGVQYXRoKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnQpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hhbmdlUmlnaHROb2RlQ291bnQoc2VsZWN0ZWRFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlUmlnaHROb2RlQ291bnQoYm9hcmQsIHNlbGVjdGVkRWxlbWVudFBhdGguc2xpY2UoMCwgMSksIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluc2VydE1pbmRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEVsZW1lbnQsIGZpbmROZXdTaWJsaW5nTm9kZVBhdGgoYm9hcmQsIHNlbGVjdGVkRWxlbWVudCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaG90a2V5cy5pc0RlbGV0ZUJhY2t3YXJkKGV2ZW50KSB8fCBob3RrZXlzLmlzRGVsZXRlRm9yd2FyZChldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkRUxlbWVudHMoYm9hcmQsIHNlbGVjdGVkRWxlbWVudHMpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGxhc3ROb2RlOiBNaW5kbWFwTm9kZSB8IGFueSA9IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudEdyb3VwID0gZmlsdGVyQ2hpbGRFbGVtZW50KHNlbGVjdGVkRWxlbWVudHMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdE5vZGUgPSBlbGVtZW50R3JvdXBbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgTWluZE5vZGVDb21wb25lbnQgPSBNSU5ETUFQX0VMRU1FTlRfVE9fQ09NUE9ORU5ULmdldChzZWxlY3ROb2RlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlSW5kZXggPSBNaW5kTm9kZUNvbXBvbmVudD8ucGFyZW50Py5jaGlsZHJlbi5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLm9yaWdpbi5pZCA9PT0gc2VsZWN0Tm9kZS5pZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTYW1lUGFyZW50ID0gZWxlbWVudEdyb3VwLmV2ZXJ5KGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmluZFBhcmVudEVsZW1lbnQoZWxlbWVudCkgJiYgZmluZFBhcmVudEVsZW1lbnQoZWxlbWVudEdyb3VwWzBdKSA9PT0gZmluZFBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzU2FtZVBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZENvdW50ID0gTWluZE5vZGVDb21wb25lbnQhLnBhcmVudD8uY2hpbGRyZW4ubGVuZ3RoIC0gZWxlbWVudEdyb3VwLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROb2RlID0gTWluZE5vZGVDb21wb25lbnQ/LnBhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROb2RlID0gTWluZE5vZGVDb21wb25lbnQ/LnBhcmVudC5jaGlsZHJlbltlbGVtZW50R3JvdXAubGVuZ3RoXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlSW5kZXghID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE5vZGUgPSBNaW5kTm9kZUNvbXBvbmVudD8ucGFyZW50LmNoaWxkcmVuW25vZGVJbmRleCEgLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobGFzdE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBsYXN0Tm9kZS5vcmlnaW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBhdXRvIGVudGVyIGVkaXQgc3RhdHVzXG4gICAgICAgICAgICBpZiAoIWlzVmlydHVhbEtleShldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IHNlbGVjdGVkRWxlbWVudHNbMF07XG4gICAgICAgICAgICAgICAgZW50ZXJOb2RlRWRpdGluZyhzZWxlY3RlZEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChib2FyZC5zZWxlY3Rpb24gJiYgZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGtleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5kYmxjbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoYm9hcmQub3B0aW9ucy5yZWFkb25seSB8fCBJU19URVhUX0VESVRBQkxFLmdldChib2FyZCkpIHtcbiAgICAgICAgICAgIGRibGNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgYm9hcmQuY2hpbGRyZW5cbiAgICAgICAgICAgIC5maWx0ZXIodmFsdWUgPT4gUGxhaXRNaW5kLmlzTWluZCh2YWx1ZSkpXG4gICAgICAgICAgICAuZm9yRWFjaChtaW5kbWFwID0+IHtcbiAgICAgICAgICAgICAgICBkZXB0aEZpcnN0UmVjdXJzaW9uPE1pbmRFbGVtZW50PihtaW5kbWFwIGFzIE1pbmRFbGVtZW50LCBub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmhhc0JlZW5UZXh0RWRpdGluZyhib2FyZCkgJiYgaGl0TWluZG1hcEVsZW1lbnQoYm9hcmQsIHBvaW50LCBub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50ZXJOb2RlRWRpdGluZyhub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChQbGFpdEJvYXJkLmhhc0JlZW5UZXh0RWRpdGluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkYmxjbGljayhldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnNldEZyYWdtZW50ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGZpbHRlckNoaWxkRWxlbWVudChnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKSBhcyBNaW5kRWxlbWVudFtdKTtcblxuICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gYnVpbGRDbGlwYm9hcmREYXRhKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzKTtcbiAgICAgICAgICAgIHNldENsaXBib2FyZERhdGEoZGF0YSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEZyYWdtZW50KGRhdGEpO1xuICAgIH07XG5cbiAgICBib2FyZC5pbnNlcnRGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLCB0YXJnZXRQb2ludD86IFBvaW50KSA9PiB7XG4gICAgICAgIGlmIChib2FyZC5vcHRpb25zLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICBpbnNlcnRGcmFnbWVudChkYXRhLCB0YXJnZXRQb2ludCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IGdldERhdGFGcm9tQ2xpcGJvYXJkKGRhdGEpO1xuICAgICAgICBpZiAoZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpbnNlcnRDbGlwYm9hcmREYXRhKGJvYXJkLCBlbGVtZW50cywgdGFyZ2V0UG9pbnQgfHwgWzAsIDBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBkYXRhPy5nZXREYXRhKGB0ZXh0L3BsYWluYCkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRTaXplQnlUZXh0KFxuICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRIb3N0KGJvYXJkKS5wYXJlbnRFbGVtZW50IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIFRPUElDX0RFRkFVTFRfTUFYX1dPUkRfQ09VTlRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgICAgICBpZiAodGV4dCAmJiBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGluc2VydENsaXBib2FyZFRleHQoYm9hcmQsIHNlbGVjdGVkRWxlbWVudHNbMF0sIHRleHQsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGluc2VydEZyYWdtZW50KGRhdGEsIHRhcmdldFBvaW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZGVsZXRlRnJhZ21lbnQgPSAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkgYXMgTWluZEVsZW1lbnRbXTtcbiAgICAgICAgZGVsZXRlU2VsZWN0ZWRFTGVtZW50cyhib2FyZCwgc2VsZWN0ZWRFbGVtZW50cyk7XG4gICAgICAgIGRlbGV0ZUZyYWdtZW50KGRhdGEpO1xuICAgIH07XG5cbiAgICByZXR1cm4gd2l0aEVtb2ppKHdpdGhBYnN0cmFjdCh3aXRoRG5kKGJvYXJkKSkpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of mind
|
|
3
|
+
*/
|
|
4
|
+
export * from './mind.component';
|
|
5
|
+
export * from './node.component';
|
|
6
|
+
export * from './mind.module';
|
|
7
|
+
export * from './utils';
|
|
8
|
+
export * from './interfaces';
|
|
9
|
+
export * from './plugins/with-mind';
|
|
10
|
+
export * from './constants';
|
|
11
|
+
export * from './queries/index';
|
|
12
|
+
export * from './transforms/index';
|
|
13
|
+
export * from './plugins/emoji';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbWluZFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbWluZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ub2RlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21pbmQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucy93aXRoLW1pbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3Jtcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMvZW1vamknO1xuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { findParentElement, getAvailableSubLayoutsByLayoutDirections, getBranchDirectionsByLayouts, MINDMAP_ELEMENT_TO_COMPONENT } from '../utils';
|
|
2
|
+
import { MindmapLayoutType } from '@plait/layouts';
|
|
3
|
+
import { getBranchMindmapLayouts } from './get-branch-mindmap-layouts-by-element';
|
|
4
|
+
/**
|
|
5
|
+
* get available sub layouts by element
|
|
6
|
+
* @param element
|
|
7
|
+
* @returns MindmapLayoutType[]
|
|
8
|
+
*/
|
|
9
|
+
export const getAvailableSubLayoutsByElement = (element) => {
|
|
10
|
+
const parentElement = findParentElement(element);
|
|
11
|
+
if (parentElement) {
|
|
12
|
+
const branchLayouts = getBranchMindmapLayouts(parentElement);
|
|
13
|
+
if (branchLayouts[0] === MindmapLayoutType.standard) {
|
|
14
|
+
const component = MINDMAP_ELEMENT_TO_COMPONENT.get(element);
|
|
15
|
+
if (component) {
|
|
16
|
+
branchLayouts[0] = component.node.left ? MindmapLayoutType.left : MindmapLayoutType.right;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const currentLayoutDirections = getBranchDirectionsByLayouts(branchLayouts);
|
|
20
|
+
let availableSubLayouts = getAvailableSubLayoutsByLayoutDirections(currentLayoutDirections);
|
|
21
|
+
const parentLayout = [branchLayouts[branchLayouts.length - 1]];
|
|
22
|
+
const parentDirections = getBranchDirectionsByLayouts(parentLayout);
|
|
23
|
+
const parentAvailableSubLayouts = getAvailableSubLayoutsByLayoutDirections(parentDirections);
|
|
24
|
+
availableSubLayouts = availableSubLayouts.filter(layout => parentAvailableSubLayouts.some(parentAvailableSubLayout => parentAvailableSubLayout === layout));
|
|
25
|
+
return availableSubLayouts;
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF2YWlsYWJsZS1zdWJsYXlvdXRzLWJ5LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9xdWVyaWVzL2dldC1hdmFpbGFibGUtc3VibGF5b3V0cy1ieS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsd0NBQXdDLEVBQ3hDLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDL0IsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFbEY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELElBQUksYUFBYSxFQUFFO1FBQ2YsTUFBTSxhQUFhLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0QsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLENBQUMsUUFBUSxFQUFFO1lBQ2pELE1BQU0sU0FBUyxHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RCxJQUFJLFNBQVMsRUFBRTtnQkFDWCxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2FBQzdGO1NBQ0o7UUFDRCxNQUFNLHVCQUF1QixHQUFHLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLElBQUksbUJBQW1CLEdBQUcsd0NBQXdDLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUM1RixNQUFNLFlBQVksR0FBRyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxNQUFNLHlCQUF5QixHQUFHLHdDQUF3QyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFN0YsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ3RELHlCQUF5QixDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLEtBQUssTUFBTSxDQUFDLENBQ2xHLENBQUM7UUFDRixPQUFPLG1CQUFtQixDQUFDO0tBQzlCO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgZmluZFBhcmVudEVsZW1lbnQsXG4gICAgZ2V0QXZhaWxhYmxlU3ViTGF5b3V0c0J5TGF5b3V0RGlyZWN0aW9ucyxcbiAgICBnZXRCcmFuY2hEaXJlY3Rpb25zQnlMYXlvdXRzLFxuICAgIE1JTkRNQVBfRUxFTUVOVF9UT19DT01QT05FTlRcbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTWluZG1hcExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBnZXRCcmFuY2hNaW5kbWFwTGF5b3V0cyB9IGZyb20gJy4vZ2V0LWJyYW5jaC1taW5kbWFwLWxheW91dHMtYnktZWxlbWVudCc7XG5cbi8qKlxuICogIGdldCBhdmFpbGFibGUgc3ViIGxheW91dHMgYnkgZWxlbWVudFxuICogQHBhcmFtIGVsZW1lbnRcbiAqIEByZXR1cm5zIE1pbmRtYXBMYXlvdXRUeXBlW11cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEF2YWlsYWJsZVN1YkxheW91dHNCeUVsZW1lbnQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gZmluZFBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG4gICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgYnJhbmNoTGF5b3V0cyA9IGdldEJyYW5jaE1pbmRtYXBMYXlvdXRzKHBhcmVudEVsZW1lbnQpO1xuICAgICAgICBpZiAoYnJhbmNoTGF5b3V0c1swXSA9PT0gTWluZG1hcExheW91dFR5cGUuc3RhbmRhcmQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IE1JTkRNQVBfRUxFTUVOVF9UT19DT01QT05FTlQuZ2V0KGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIGJyYW5jaExheW91dHNbMF0gPSBjb21wb25lbnQubm9kZS5sZWZ0ID8gTWluZG1hcExheW91dFR5cGUubGVmdCA6IE1pbmRtYXBMYXlvdXRUeXBlLnJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYXlvdXREaXJlY3Rpb25zID0gZ2V0QnJhbmNoRGlyZWN0aW9uc0J5TGF5b3V0cyhicmFuY2hMYXlvdXRzKTtcbiAgICAgICAgbGV0IGF2YWlsYWJsZVN1YkxheW91dHMgPSBnZXRBdmFpbGFibGVTdWJMYXlvdXRzQnlMYXlvdXREaXJlY3Rpb25zKGN1cnJlbnRMYXlvdXREaXJlY3Rpb25zKTtcbiAgICAgICAgY29uc3QgcGFyZW50TGF5b3V0ID0gW2JyYW5jaExheW91dHNbYnJhbmNoTGF5b3V0cy5sZW5ndGggLSAxXV07XG4gICAgICAgIGNvbnN0IHBhcmVudERpcmVjdGlvbnMgPSBnZXRCcmFuY2hEaXJlY3Rpb25zQnlMYXlvdXRzKHBhcmVudExheW91dCk7XG4gICAgICAgIGNvbnN0IHBhcmVudEF2YWlsYWJsZVN1YkxheW91dHMgPSBnZXRBdmFpbGFibGVTdWJMYXlvdXRzQnlMYXlvdXREaXJlY3Rpb25zKHBhcmVudERpcmVjdGlvbnMpO1xuXG4gICAgICAgIGF2YWlsYWJsZVN1YkxheW91dHMgPSBhdmFpbGFibGVTdWJMYXlvdXRzLmZpbHRlcihsYXlvdXQgPT5cbiAgICAgICAgICAgIHBhcmVudEF2YWlsYWJsZVN1YkxheW91dHMuc29tZShwYXJlbnRBdmFpbGFibGVTdWJMYXlvdXQgPT4gcGFyZW50QXZhaWxhYmxlU3ViTGF5b3V0ID09PSBsYXlvdXQpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBhdmFpbGFibGVTdWJMYXlvdXRzO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { findParentElement } from '../utils';
|
|
2
|
+
import { getCorrectLayoutByElement } from './get-correct-layout-by-element';
|
|
3
|
+
export const getBranchMindmapLayouts = (element) => {
|
|
4
|
+
const layouts = [];
|
|
5
|
+
if (element.layout) {
|
|
6
|
+
//getCorrectLayoutByElement含有递归操作,getBranchMindmapLayouts本身也有递归操作,有待优化
|
|
7
|
+
layouts.unshift(getCorrectLayoutByElement(element));
|
|
8
|
+
}
|
|
9
|
+
let parent = findParentElement(element);
|
|
10
|
+
while (parent) {
|
|
11
|
+
if (parent.layout) {
|
|
12
|
+
layouts.unshift(parent.layout);
|
|
13
|
+
}
|
|
14
|
+
parent = findParentElement(parent);
|
|
15
|
+
}
|
|
16
|
+
return layouts;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWJyYW5jaC1taW5kbWFwLWxheW91dHMtYnktZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3F1ZXJpZXMvZ2V0LWJyYW5jaC1taW5kbWFwLWxheW91dHMtYnktZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDNUQsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQztJQUN4QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDaEIsc0VBQXNFO1FBQ3RFLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUN2RDtJQUNELElBQUksTUFBTSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sTUFBTSxFQUFFO1FBQ1gsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEM7UUFDRCxNQUFNLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZmluZFBhcmVudEVsZW1lbnQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBNaW5kbWFwTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnQgfSBmcm9tICcuL2dldC1jb3JyZWN0LWxheW91dC1ieS1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IGdldEJyYW5jaE1pbmRtYXBMYXlvdXRzID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgbGF5b3V0czogTWluZG1hcExheW91dFR5cGVbXSA9IFtdO1xuICAgIGlmIChlbGVtZW50LmxheW91dCkge1xuICAgICAgICAvL2dldENvcnJlY3RMYXlvdXRCeUVsZW1lbnTlkKvmnInpgJLlvZLmk43kvZzvvIxnZXRCcmFuY2hNaW5kbWFwTGF5b3V0c+acrOi6q+S5n+aciemAkuW9kuaTjeS9nO+8jOacieW+heS8mOWMllxuICAgICAgICBsYXlvdXRzLnVuc2hpZnQoZ2V0Q29ycmVjdExheW91dEJ5RWxlbWVudChlbGVtZW50KSk7XG4gICAgfVxuICAgIGxldCBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChlbGVtZW50KTtcbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgIGlmIChwYXJlbnQubGF5b3V0KSB7XG4gICAgICAgICAgICBsYXlvdXRzLnVuc2hpZnQocGFyZW50LmxheW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gZmluZFBhcmVudEVsZW1lbnQocGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIGxheW91dHM7XG59O1xuIl19
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { MindElement } from '../interfaces';
|
|
2
|
+
import { correctLayoutByDirection, findUpElement, getDefaultMindmapLayout, getInCorrectLayoutDirection, MINDMAP_ELEMENT_TO_COMPONENT } from '../utils';
|
|
3
|
+
import { AbstractNode, MindmapLayoutType, getAbstractLayout, isIndentedLayout, isChildOfAbstract } from '@plait/layouts';
|
|
4
|
+
/**
|
|
5
|
+
* get correctly layout:
|
|
6
|
+
* 1. root is standard -> left or right
|
|
7
|
+
* 2. correct layout by incorrect layout direction
|
|
8
|
+
* @param element
|
|
9
|
+
*/
|
|
10
|
+
export const getCorrectLayoutByElement = (element) => {
|
|
11
|
+
const { root } = findUpElement(element);
|
|
12
|
+
const rootLayout = root.layout || getDefaultMindmapLayout();
|
|
13
|
+
let correctRootLayout = rootLayout;
|
|
14
|
+
if (element.isRoot) {
|
|
15
|
+
return correctRootLayout;
|
|
16
|
+
}
|
|
17
|
+
const component = MINDMAP_ELEMENT_TO_COMPONENT.get(element);
|
|
18
|
+
let layout = component?.node.origin.layout;
|
|
19
|
+
let parentComponent;
|
|
20
|
+
let parent = component?.parent?.origin;
|
|
21
|
+
while (!layout && parent) {
|
|
22
|
+
parentComponent = MINDMAP_ELEMENT_TO_COMPONENT.get(parent);
|
|
23
|
+
layout = parentComponent?.node.origin.layout;
|
|
24
|
+
parent = parentComponent?.parent?.origin;
|
|
25
|
+
}
|
|
26
|
+
if ((AbstractNode.isAbstract(element) || isChildOfAbstract(MindElement.getNode(element))) &&
|
|
27
|
+
isIndentedLayout(layout)) {
|
|
28
|
+
return getAbstractLayout(layout);
|
|
29
|
+
}
|
|
30
|
+
// handle root standard
|
|
31
|
+
if (rootLayout === MindmapLayoutType.standard) {
|
|
32
|
+
correctRootLayout = component?.node.left ? MindmapLayoutType.left : MindmapLayoutType.right;
|
|
33
|
+
}
|
|
34
|
+
if (parentComponent?.node.origin.isRoot) {
|
|
35
|
+
return correctRootLayout;
|
|
36
|
+
}
|
|
37
|
+
if (layout) {
|
|
38
|
+
const incorrectDirection = getInCorrectLayoutDirection(correctRootLayout, layout);
|
|
39
|
+
if (incorrectDirection) {
|
|
40
|
+
return correctLayoutByDirection(layout, incorrectDirection);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return layout;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return correctRootLayout;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvcnJlY3QtbGF5b3V0LWJ5LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9xdWVyaWVzL2dldC1jb3JyZWN0LWxheW91dC1ieS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUNILHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDL0IsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBYyxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJJOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDOUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLHVCQUF1QixFQUFFLENBQUM7SUFDNUQsSUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7SUFFbkMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQ2hCLE9BQU8saUJBQWlCLENBQUM7S0FDNUI7SUFFRCxNQUFNLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUQsSUFBSSxNQUFNLEdBQUcsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBRTNDLElBQUksZUFBOEMsQ0FBQztJQUNuRCxJQUFJLE1BQU0sR0FBNEIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFaEUsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUU7UUFDdEIsZUFBZSxHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLEdBQUcsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzdDLE1BQU0sR0FBRyxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztLQUM1QztJQUNELElBQ0ksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGlCQUFpQixDQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUEyQixDQUFDLENBQUM7UUFDaEgsZ0JBQWdCLENBQUMsTUFBTyxDQUFDLEVBQzNCO1FBQ0UsT0FBTyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsQ0FBQztLQUNyQztJQUVELHVCQUF1QjtJQUN2QixJQUFJLFVBQVUsS0FBSyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7UUFDM0MsaUJBQWlCLEdBQUcsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO0tBQy9GO0lBRUQsSUFBSSxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDckMsT0FBTyxpQkFBaUIsQ0FBQztLQUM1QjtJQUVELElBQUksTUFBTSxFQUFFO1FBQ1IsTUFBTSxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRixJQUFJLGtCQUFrQixFQUFFO1lBQ3BCLE9BQU8sd0JBQXdCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDL0Q7YUFBTTtZQUNILE9BQU8sTUFBTSxDQUFDO1NBQ2pCO0tBQ0o7U0FBTTtRQUNILE9BQU8saUJBQWlCLENBQUM7S0FDNUI7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIGNvcnJlY3RMYXlvdXRCeURpcmVjdGlvbixcbiAgICBmaW5kVXBFbGVtZW50LFxuICAgIGdldERlZmF1bHRNaW5kbWFwTGF5b3V0LFxuICAgIGdldEluQ29ycmVjdExheW91dERpcmVjdGlvbixcbiAgICBNSU5ETUFQX0VMRU1FTlRfVE9fQ09NUE9ORU5UXG59IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSwgTWluZG1hcExheW91dFR5cGUsIGdldEFic3RyYWN0TGF5b3V0LCBpc0luZGVudGVkTGF5b3V0LCBMYXlvdXROb2RlLCBpc0NoaWxkT2ZBYnN0cmFjdCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcblxuLyoqXG4gKiBnZXQgY29ycmVjdGx5IGxheW91dO+8mlxuICogMS4gcm9vdCBpcyBzdGFuZGFyZCAtPiBsZWZ0IG9yIHJpZ2h0XG4gKiAyLiBjb3JyZWN0IGxheW91dCBieSBpbmNvcnJlY3QgbGF5b3V0IGRpcmVjdGlvblxuICogQHBhcmFtIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IGZpbmRVcEVsZW1lbnQoZWxlbWVudCk7XG4gICAgY29uc3Qgcm9vdExheW91dCA9IHJvb3QubGF5b3V0IHx8IGdldERlZmF1bHRNaW5kbWFwTGF5b3V0KCk7XG4gICAgbGV0IGNvcnJlY3RSb290TGF5b3V0ID0gcm9vdExheW91dDtcblxuICAgIGlmIChlbGVtZW50LmlzUm9vdCkge1xuICAgICAgICByZXR1cm4gY29ycmVjdFJvb3RMYXlvdXQ7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50ID0gTUlORE1BUF9FTEVNRU5UX1RPX0NPTVBPTkVOVC5nZXQoZWxlbWVudCk7XG4gICAgbGV0IGxheW91dCA9IGNvbXBvbmVudD8ubm9kZS5vcmlnaW4ubGF5b3V0O1xuXG4gICAgbGV0IHBhcmVudENvbXBvbmVudDogdW5kZWZpbmVkIHwgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgbGV0IHBhcmVudDogTWluZEVsZW1lbnQgfCB1bmRlZmluZWQgPSBjb21wb25lbnQ/LnBhcmVudD8ub3JpZ2luO1xuXG4gICAgd2hpbGUgKCFsYXlvdXQgJiYgcGFyZW50KSB7XG4gICAgICAgIHBhcmVudENvbXBvbmVudCA9IE1JTkRNQVBfRUxFTUVOVF9UT19DT01QT05FTlQuZ2V0KHBhcmVudCk7XG4gICAgICAgIGxheW91dCA9IHBhcmVudENvbXBvbmVudD8ubm9kZS5vcmlnaW4ubGF5b3V0O1xuICAgICAgICBwYXJlbnQgPSBwYXJlbnRDb21wb25lbnQ/LnBhcmVudD8ub3JpZ2luO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAgIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSB8fCBpc0NoaWxkT2ZBYnN0cmFjdCgoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSBhcyB1bmtub3duKSBhcyBMYXlvdXROb2RlKSkgJiZcbiAgICAgICAgaXNJbmRlbnRlZExheW91dChsYXlvdXQhKVxuICAgICkge1xuICAgICAgICByZXR1cm4gZ2V0QWJzdHJhY3RMYXlvdXQobGF5b3V0ISk7XG4gICAgfVxuXG4gICAgLy8gaGFuZGxlIHJvb3Qgc3RhbmRhcmRcbiAgICBpZiAocm9vdExheW91dCA9PT0gTWluZG1hcExheW91dFR5cGUuc3RhbmRhcmQpIHtcbiAgICAgICAgY29ycmVjdFJvb3RMYXlvdXQgPSBjb21wb25lbnQ/Lm5vZGUubGVmdCA/IE1pbmRtYXBMYXlvdXRUeXBlLmxlZnQgOiBNaW5kbWFwTGF5b3V0VHlwZS5yaWdodDtcbiAgICB9XG5cbiAgICBpZiAocGFyZW50Q29tcG9uZW50Py5ub2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgcmV0dXJuIGNvcnJlY3RSb290TGF5b3V0O1xuICAgIH1cblxuICAgIGlmIChsYXlvdXQpIHtcbiAgICAgICAgY29uc3QgaW5jb3JyZWN0RGlyZWN0aW9uID0gZ2V0SW5Db3JyZWN0TGF5b3V0RGlyZWN0aW9uKGNvcnJlY3RSb290TGF5b3V0LCBsYXlvdXQpO1xuICAgICAgICBpZiAoaW5jb3JyZWN0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gY29ycmVjdExheW91dEJ5RGlyZWN0aW9uKGxheW91dCwgaW5jb3JyZWN0RGlyZWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsYXlvdXQ7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY29ycmVjdFJvb3RMYXlvdXQ7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MindElement } from '../interfaces';
|
|
2
|
+
import { AbstractNode, getAbstractLayout, isIndentedLayout, isChildOfAbstract } from '@plait/layouts';
|
|
3
|
+
import { getLayoutParentByElement } from './get-layout-parent-by-element';
|
|
4
|
+
export const getLayoutByElement = (element) => {
|
|
5
|
+
const layout = element.layout;
|
|
6
|
+
if (layout) {
|
|
7
|
+
return layout;
|
|
8
|
+
}
|
|
9
|
+
if (AbstractNode.isAbstract(element) ||
|
|
10
|
+
(isChildOfAbstract(MindElement.getNode(element)) && isIndentedLayout(layout))) {
|
|
11
|
+
const parentLayout = getLayoutParentByElement(element);
|
|
12
|
+
return getAbstractLayout(parentLayout);
|
|
13
|
+
}
|
|
14
|
+
return getLayoutParentByElement(element);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxheW91dC1ieS1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcXVlcmllcy9nZXQtbGF5b3V0LWJ5LWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFxQixpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JJLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBb0IsRUFBcUIsRUFBRTtJQUMxRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzlCLElBQUksTUFBTSxFQUFFO1FBQ1IsT0FBTyxNQUFNLENBQUM7S0FDakI7SUFFRCxJQUNJLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ2hDLENBQUMsaUJBQWlCLENBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQTJCLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFPLENBQUMsQ0FBQyxFQUMzRztRQUNFLE1BQU0sWUFBWSxHQUFHLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE9BQU8saUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7S0FDMUM7SUFDRCxPQUFPLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUsIE1pbmRtYXBMYXlvdXRUeXBlLCBnZXRBYnN0cmFjdExheW91dCwgaXNJbmRlbnRlZExheW91dCwgaXNDaGlsZE9mQWJzdHJhY3QsIExheW91dE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBnZXRMYXlvdXRQYXJlbnRCeUVsZW1lbnQgfSBmcm9tICcuL2dldC1sYXlvdXQtcGFyZW50LWJ5LWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5b3V0QnlFbGVtZW50ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogTWluZG1hcExheW91dFR5cGUgPT4ge1xuICAgIGNvbnN0IGxheW91dCA9IGVsZW1lbnQubGF5b3V0O1xuICAgIGlmIChsYXlvdXQpIHtcbiAgICAgICAgcmV0dXJuIGxheW91dDtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAgIEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGVsZW1lbnQpIHx8XG4gICAgICAgIChpc0NoaWxkT2ZBYnN0cmFjdCgoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSBhcyB1bmtub3duKSBhcyBMYXlvdXROb2RlKSAmJiBpc0luZGVudGVkTGF5b3V0KGxheW91dCEpKVxuICAgICkge1xuICAgICAgICBjb25zdCBwYXJlbnRMYXlvdXQgPSBnZXRMYXlvdXRQYXJlbnRCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBnZXRBYnN0cmFjdExheW91dChwYXJlbnRMYXlvdXQpO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0TGF5b3V0UGFyZW50QnlFbGVtZW50KGVsZW1lbnQpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { findParentElement, getDefaultMindmapLayout } from '../utils';
|
|
2
|
+
/**
|
|
3
|
+
* 获取父节点布局类型
|
|
4
|
+
* @param element
|
|
5
|
+
* @returns MindmapLayoutType
|
|
6
|
+
*/
|
|
7
|
+
export const getLayoutParentByElement = (element) => {
|
|
8
|
+
let parent = findParentElement(element);
|
|
9
|
+
while (parent) {
|
|
10
|
+
if (parent.layout) {
|
|
11
|
+
return parent.layout;
|
|
12
|
+
}
|
|
13
|
+
parent = findParentElement(parent);
|
|
14
|
+
}
|
|
15
|
+
return getDefaultMindmapLayout();
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxheW91dC1wYXJlbnQtYnktZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3F1ZXJpZXMvZ2V0LWxheW91dC1wYXJlbnQtYnktZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHdEU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsT0FBb0IsRUFBcUIsRUFBRTtJQUNoRixJQUFJLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxPQUFPLE1BQU0sRUFBRTtRQUNYLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNmLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUN4QjtRQUNELE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN0QztJQUNELE9BQU8sdUJBQXVCLEVBQUUsQ0FBQztBQUNyQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZmluZFBhcmVudEVsZW1lbnQsIGdldERlZmF1bHRNaW5kbWFwTGF5b3V0IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTWluZG1hcExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5cbi8qKlxuICog6I635Y+W54i26IqC54K55biD5bGA57G75Z6LXG4gKiBAcGFyYW0gZWxlbWVudFxuICogQHJldHVybnMgTWluZG1hcExheW91dFR5cGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldExheW91dFBhcmVudEJ5RWxlbWVudCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCk6IE1pbmRtYXBMYXlvdXRUeXBlID0+IHtcbiAgICBsZXQgcGFyZW50ID0gZmluZFBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgICBpZiAocGFyZW50LmxheW91dCkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudC5sYXlvdXQ7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gZmluZFBhcmVudEVsZW1lbnQocGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIGdldERlZmF1bHRNaW5kbWFwTGF5b3V0KCk7XG59O1xuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getAvailableSubLayoutsByElement } from './get-available-sublayouts-by-element';
|
|
2
|
+
import { getBranchMindmapLayouts } from './get-branch-mindmap-layouts-by-element';
|
|
3
|
+
import { getCorrectLayoutByElement } from './get-correct-layout-by-element';
|
|
4
|
+
import { getLayoutByElement } from './get-layout-by-element';
|
|
5
|
+
import { getLayoutParentByElement } from './get-layout-parent-by-element';
|
|
6
|
+
export const MindmapQueries = {
|
|
7
|
+
getAvailableSubLayoutsByElement,
|
|
8
|
+
getLayoutParentByElement,
|
|
9
|
+
getBranchMindmapLayouts,
|
|
10
|
+
getLayoutByElement,
|
|
11
|
+
getCorrectLayoutByElement
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9xdWVyaWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQiwrQkFBK0I7SUFDL0Isd0JBQXdCO0lBQ3hCLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIseUJBQXlCO0NBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRBdmFpbGFibGVTdWJMYXlvdXRzQnlFbGVtZW50IH0gZnJvbSAnLi9nZXQtYXZhaWxhYmxlLXN1YmxheW91dHMtYnktZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRCcmFuY2hNaW5kbWFwTGF5b3V0cyB9IGZyb20gJy4vZ2V0LWJyYW5jaC1taW5kbWFwLWxheW91dHMtYnktZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50IH0gZnJvbSAnLi9nZXQtY29ycmVjdC1sYXlvdXQtYnktZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRMYXlvdXRCeUVsZW1lbnQgfSBmcm9tICcuL2dldC1sYXlvdXQtYnktZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRMYXlvdXRQYXJlbnRCeUVsZW1lbnQgfSBmcm9tICcuL2dldC1sYXlvdXQtcGFyZW50LWJ5LWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgTWluZG1hcFF1ZXJpZXMgPSB7XG4gICAgZ2V0QXZhaWxhYmxlU3ViTGF5b3V0c0J5RWxlbWVudCxcbiAgICBnZXRMYXlvdXRQYXJlbnRCeUVsZW1lbnQsXG4gICAgZ2V0QnJhbmNoTWluZG1hcExheW91dHMsXG4gICAgZ2V0TGF5b3V0QnlFbGVtZW50LFxuICAgIGdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnRcbn07XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { setLayout } from './layout';
|
|
2
|
+
import { addEmoji, removeEmoji, setTopic, setTopicSize } from './node';
|
|
3
|
+
export const MindTransforms = {
|
|
4
|
+
setLayout,
|
|
5
|
+
setTopic,
|
|
6
|
+
setTopicSize,
|
|
7
|
+
addEmoji,
|
|
8
|
+
removeEmoji
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsU0FBUztJQUNULFFBQVE7SUFDUixZQUFZO0lBQ1osUUFBUTtJQUNSLFdBQVc7Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0TGF5b3V0IH0gZnJvbSAnLi9sYXlvdXQnO1xuaW1wb3J0IHsgYWRkRW1vamksIHJlbW92ZUVtb2ppLCBzZXRUb3BpYywgc2V0VG9waWNTaXplIH0gZnJvbSAnLi9ub2RlJztcblxuZXhwb3J0IGNvbnN0IE1pbmRUcmFuc2Zvcm1zID0ge1xuICAgIHNldExheW91dCxcbiAgICBzZXRUb3BpYyxcbiAgICBzZXRUb3BpY1NpemUsXG4gICAgYWRkRW1vamksXG4gICAgcmVtb3ZlRW1vamlcbn07XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PlaitNode, Transforms } from '@plait/core';
|
|
2
|
+
import { isHorizontalLogicLayout, isVerticalLogicLayout } from '@plait/layouts';
|
|
3
|
+
export const setLayout = (board, layout, path) => {
|
|
4
|
+
correctLogicLayoutNode(board, layout, path);
|
|
5
|
+
Transforms.setNode(board, { layout }, path);
|
|
6
|
+
};
|
|
7
|
+
const correctLogicLayoutNode = (board, layout, path) => {
|
|
8
|
+
const node = PlaitNode.get(board, path);
|
|
9
|
+
if (node && layout) {
|
|
10
|
+
node.children?.forEach((value, index) => {
|
|
11
|
+
if (value.layout) {
|
|
12
|
+
if ((isHorizontalLogicLayout(layout) && isVerticalLogicLayout(value.layout)) ||
|
|
13
|
+
(isVerticalLogicLayout(layout) && isHorizontalLogicLayout(value.layout))) {
|
|
14
|
+
Transforms.setNode(board, { layout: null }, [...path, index]);
|
|
15
|
+
}
|
|
16
|
+
if (value.children?.length) {
|
|
17
|
+
correctLogicLayoutNode(board, layout, [...path, index]);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdHJhbnNmb3Jtcy9sYXlvdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE1BQXlCLEVBQUUsSUFBVSxFQUFFLEVBQUU7SUFDbEYsc0JBQXNCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE1BQXlCLEVBQUUsSUFBVSxFQUFFLEVBQUU7SUFDeEYsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBZ0IsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ2QsSUFDSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEUsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDMUU7b0JBQ0UsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNqRTtnQkFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFO29CQUN4QixzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDM0Q7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0tBQ047QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQYXRoLCBQbGFpdE5vZGUsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBpc0hvcml6b250YWxMb2dpY0xheW91dCwgaXNWZXJ0aWNhbExvZ2ljTGF5b3V0LCBNaW5kbWFwTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcblxuZXhwb3J0IGNvbnN0IHNldExheW91dCA9IChib2FyZDogUGxhaXRCb2FyZCwgbGF5b3V0OiBNaW5kbWFwTGF5b3V0VHlwZSwgcGF0aDogUGF0aCkgPT4ge1xuICAgIGNvcnJlY3RMb2dpY0xheW91dE5vZGUoYm9hcmQsIGxheW91dCwgcGF0aCk7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCB7IGxheW91dCB9LCBwYXRoKTtcbn07XG5cbmNvbnN0IGNvcnJlY3RMb2dpY0xheW91dE5vZGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGxheW91dDogTWluZG1hcExheW91dFR5cGUsIHBhdGg6IFBhdGgpID0+IHtcbiAgICBjb25zdCBub2RlID0gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aCk7XG4gICAgaWYgKG5vZGUgJiYgbGF5b3V0KSB7XG4gICAgICAgIG5vZGUuY2hpbGRyZW4/LmZvckVhY2goKHZhbHVlOiBQbGFpdE5vZGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUubGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAoaXNIb3Jpem9udGFsTG9naWNMYXlvdXQobGF5b3V0KSAmJiBpc1ZlcnRpY2FsTG9naWNMYXlvdXQodmFsdWUubGF5b3V0KSkgfHxcbiAgICAgICAgICAgICAgICAgICAgKGlzVmVydGljYWxMb2dpY0xheW91dChsYXlvdXQpICYmIGlzSG9yaXpvbnRhbExvZ2ljTGF5b3V0KHZhbHVlLmxheW91dCkpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBsYXlvdXQ6IG51bGwgfSwgWy4uLnBhdGgsIGluZGV4XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvcnJlY3RMb2dpY0xheW91dE5vZGUoYm9hcmQsIGxheW91dCwgWy4uLnBhdGgsIGluZGV4XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { MindElement } from '../interfaces/element';
|
|
2
|
+
import { NODE_MIN_WIDTH } from '../constants/node';
|
|
3
|
+
import { PlaitBoard, Transforms } from '@plait/core';
|
|
4
|
+
export const setTopic = (board, element, topic, width, height) => {
|
|
5
|
+
const newElement = {
|
|
6
|
+
data: { topic },
|
|
7
|
+
width: width < NODE_MIN_WIDTH * board.viewport.zoom ? NODE_MIN_WIDTH : width / board.viewport.zoom,
|
|
8
|
+
height: height / board.viewport.zoom
|
|
9
|
+
};
|
|
10
|
+
if (MindElement.hasEmojis(element)) {
|
|
11
|
+
newElement.data.emojis = element.data.emojis;
|
|
12
|
+
}
|
|
13
|
+
const path = PlaitBoard.findPath(board, element);
|
|
14
|
+
Transforms.setNode(board, newElement, path);
|
|
15
|
+
};
|
|
16
|
+
export const setTopicSize = (board, element, width, height) => {
|
|
17
|
+
const newElement = {
|
|
18
|
+
width: width < NODE_MIN_WIDTH * board.viewport.zoom ? NODE_MIN_WIDTH : width / board.viewport.zoom,
|
|
19
|
+
height: height / board.viewport.zoom
|
|
20
|
+
};
|
|
21
|
+
const path = PlaitBoard.findPath(board, element);
|
|
22
|
+
Transforms.setNode(board, newElement, path);
|
|
23
|
+
};
|
|
24
|
+
export const addEmoji = (board, element, emojiItem) => {
|
|
25
|
+
const emojis = element.data.emojis || [];
|
|
26
|
+
emojis.push(emojiItem);
|
|
27
|
+
const newElement = {
|
|
28
|
+
data: { topic: element.data.topic, emojis }
|
|
29
|
+
};
|
|
30
|
+
const path = PlaitBoard.findPath(board, element);
|
|
31
|
+
Transforms.setNode(board, newElement, path);
|
|
32
|
+
};
|
|
33
|
+
export const removeEmoji = (board, element, emojiItem) => {
|
|
34
|
+
const emojis = element.data.emojis.filter(value => value !== emojiItem);
|
|
35
|
+
const newElement = {
|
|
36
|
+
data: { topic: element.data.topic }
|
|
37
|
+
};
|
|
38
|
+
if (emojis.length > 0) {
|
|
39
|
+
newElement.data.emojis = emojis;
|
|
40
|
+
}
|
|
41
|
+
const path = PlaitBoard.findPath(board, element);
|
|
42
|
+
Transforms.setNode(board, newElement, path);
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3RyYW5zZm9ybXMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxLQUFjLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFO0lBQy9HLE1BQU0sVUFBVSxHQUFHO1FBQ2YsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQ2YsS0FBSyxFQUFFLEtBQUssR0FBRyxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNsRyxNQUFNLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtLQUN4QixDQUFDO0lBQ2pCLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUNoRDtJQUNELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFO0lBQ25HLE1BQU0sVUFBVSxHQUFHO1FBQ2YsS0FBSyxFQUFFLEtBQUssR0FBRyxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNsRyxNQUFNLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtLQUN2QyxDQUFDO0lBQ0YsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxTQUFvQixFQUFFLEVBQUU7SUFDdEYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsTUFBTSxVQUFVLEdBQUc7UUFDZixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO0tBQy9CLENBQUM7SUFDakIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxTQUFvQixFQUFFLEVBQUU7SUFDcEcsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sVUFBVSxHQUFHO1FBQ2YsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO0tBQ3ZCLENBQUM7SUFDakIsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7S0FDbkM7SUFDRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE5PREVfTUlOX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgVHJhbnNmb3JtcyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEVtb2ppRGF0YSwgRW1vamlJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuXG5leHBvcnQgY29uc3Qgc2V0VG9waWMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCB0b3BpYzogRWxlbWVudCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IHRvcGljIH0sXG4gICAgICAgIHdpZHRoOiB3aWR0aCA8IE5PREVfTUlOX1dJRFRIICogYm9hcmQudmlld3BvcnQuem9vbSA/IE5PREVfTUlOX1dJRFRIIDogd2lkdGggLyBib2FyZC52aWV3cG9ydC56b29tLFxuICAgICAgICBoZWlnaHQ6IGhlaWdodCAvIGJvYXJkLnZpZXdwb3J0Lnpvb21cbiAgICB9IGFzIE1pbmRFbGVtZW50O1xuICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgbmV3RWxlbWVudC5kYXRhLmVtb2ppcyA9IGVsZW1lbnQuZGF0YS5lbW9qaXM7XG4gICAgfVxuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFRvcGljU2l6ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHtcbiAgICAgICAgd2lkdGg6IHdpZHRoIDwgTk9ERV9NSU5fV0lEVEggKiBib2FyZC52aWV3cG9ydC56b29tID8gTk9ERV9NSU5fV0lEVEggOiB3aWR0aCAvIGJvYXJkLnZpZXdwb3J0Lnpvb20sXG4gICAgICAgIGhlaWdodDogaGVpZ2h0IC8gYm9hcmQudmlld3BvcnQuem9vbVxuICAgIH07XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgcGF0aCk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkRW1vamkgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBlbW9qaUl0ZW06IEVtb2ppSXRlbSkgPT4ge1xuICAgIGNvbnN0IGVtb2ppcyA9IGVsZW1lbnQuZGF0YS5lbW9qaXMgfHwgW107XG4gICAgZW1vamlzLnB1c2goZW1vamlJdGVtKTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IHRvcGljOiBlbGVtZW50LmRhdGEudG9waWMsIGVtb2ppcyB9XG4gICAgfSBhcyBNaW5kRWxlbWVudDtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVFbW9qaSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPiwgZW1vamlJdGVtOiBFbW9qaUl0ZW0pID0+IHtcbiAgICBjb25zdCBlbW9qaXMgPSBlbGVtZW50LmRhdGEuZW1vamlzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gZW1vamlJdGVtKTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IHRvcGljOiBlbGVtZW50LmRhdGEudG9waWMgfVxuICAgIH0gYXMgTWluZEVsZW1lbnQ7XG4gICAgaWYgKGVtb2ppcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuZGF0YS5lbW9qaXMgPSBlbW9qaXM7XG4gICAgfVxuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AbstractNode } from '@plait/layouts';
|
|
2
|
+
export const separateChildren = (parentElement) => {
|
|
3
|
+
const rightNodeCount = parentElement.rightNodeCount;
|
|
4
|
+
const children = parentElement.children;
|
|
5
|
+
let rightChildren = [], leftChildren = [];
|
|
6
|
+
for (let i = 0; i < children.length; i++) {
|
|
7
|
+
const child = children[i];
|
|
8
|
+
if (AbstractNode.isAbstract(child) && child.end < rightNodeCount) {
|
|
9
|
+
rightChildren.push(child);
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
if (AbstractNode.isAbstract(child) && child.start >= rightNodeCount) {
|
|
13
|
+
leftChildren.push(child);
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
if (i < rightNodeCount) {
|
|
17
|
+
rightChildren.push(child);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
leftChildren.push(child);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return { leftChildren, rightChildren };
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvYWJzdHJhY3QvY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGFBQTBCLEVBQUUsRUFBRTtJQUMzRCxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsY0FBZSxDQUFDO0lBQ3JELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDeEMsSUFBSSxhQUFhLEdBQUcsRUFBRSxFQUNsQixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXRCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxjQUFjLEVBQUU7WUFDOUQsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixTQUFTO1NBQ1o7UUFDRCxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxjQUFjLEVBQUU7WUFDakUsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixTQUFTO1NBQ1o7UUFFRCxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUU7WUFDcEIsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtLQUNKO0lBRUQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsQ0FBQztBQUMzQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBzZXBhcmF0ZUNoaWxkcmVuID0gKHBhcmVudEVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcmlnaHROb2RlQ291bnQgPSBwYXJlbnRFbGVtZW50LnJpZ2h0Tm9kZUNvdW50ITtcbiAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudEVsZW1lbnQuY2hpbGRyZW47XG4gICAgbGV0IHJpZ2h0Q2hpbGRyZW4gPSBbXSxcbiAgICAgICAgbGVmdENoaWxkcmVuID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV07XG4gICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChjaGlsZCkgJiYgY2hpbGQuZW5kIDwgcmlnaHROb2RlQ291bnQpIHtcbiAgICAgICAgICAgIHJpZ2h0Q2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoY2hpbGQpICYmIGNoaWxkLnN0YXJ0ID49IHJpZ2h0Tm9kZUNvdW50KSB7XG4gICAgICAgICAgICBsZWZ0Q2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpIDwgcmlnaHROb2RlQ291bnQpIHtcbiAgICAgICAgICAgIHJpZ2h0Q2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZWZ0Q2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBsZWZ0Q2hpbGRyZW4sIHJpZ2h0Q2hpbGRyZW4gfTtcbn07XG4iXX0=
|