@plait/mind 0.2.0 → 0.3.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.
Files changed (125) hide show
  1. package/{drawer/base/base.d.ts → base/base.drawer.d.ts} +1 -1
  2. package/{plugins/emoji → base}/emoji-base.component.d.ts +2 -2
  3. package/{plugins/emoji → base}/index.d.ts +1 -1
  4. package/draw/abstract.d.ts +2 -1
  5. package/draw/indented-link.d.ts +1 -1
  6. package/draw/link/logic-link.d.ts +1 -1
  7. package/draw/node.d.ts +5 -0
  8. package/draw/topic.d.ts +16 -0
  9. package/{plugins/emoji → drawer}/emoji.drawer.d.ts +3 -3
  10. package/drawer/quick-insert.drawer.d.ts +1 -1
  11. package/esm2020/base/base.drawer.mjs +17 -0
  12. package/esm2020/base/emoji-base.component.mjs +33 -0
  13. package/esm2020/base/index.mjs +3 -0
  14. package/esm2020/draw/abstract.mjs +8 -7
  15. package/esm2020/draw/indented-link.mjs +3 -3
  16. package/esm2020/draw/link/abstract-link.mjs +9 -15
  17. package/esm2020/draw/link/logic-link.mjs +9 -9
  18. package/esm2020/draw/node.mjs +21 -0
  19. package/esm2020/draw/topic.mjs +32 -0
  20. package/esm2020/drawer/emoji.drawer.mjs +73 -0
  21. package/esm2020/drawer/quick-insert.drawer.mjs +3 -3
  22. package/esm2020/interfaces/index.mjs +2 -2
  23. package/esm2020/interfaces/pointer.mjs +5 -0
  24. package/esm2020/mind.component.mjs +5 -5
  25. package/esm2020/mind.module.mjs +7 -7
  26. package/esm2020/node.component.mjs +36 -35
  27. package/esm2020/plugins/with-abstract-resize.board.mjs +12 -0
  28. package/esm2020/plugins/with-abstract-resize.mjs +107 -0
  29. package/esm2020/plugins/with-mind-create.mjs +85 -0
  30. package/esm2020/plugins/with-mind-extend.mjs +11 -0
  31. package/esm2020/plugins/with-mind.board.mjs +2 -0
  32. package/esm2020/plugins/with-mind.mjs +29 -15
  33. package/esm2020/plugins/with-node-dnd.mjs +162 -0
  34. package/esm2020/public-api.mjs +5 -3
  35. package/esm2020/transforms/abstract-node.mjs +3 -2
  36. package/esm2020/transforms/emoji.mjs +37 -0
  37. package/esm2020/transforms/index.mjs +7 -3
  38. package/esm2020/transforms/node.mjs +40 -33
  39. package/esm2020/utils/abstract/common.mjs +64 -31
  40. package/esm2020/utils/abstract/resize.mjs +3 -2
  41. package/esm2020/utils/clipboard.mjs +16 -18
  42. package/esm2020/utils/dnd/common.mjs +35 -0
  43. package/esm2020/utils/dnd/detector.mjs +268 -0
  44. package/esm2020/utils/dnd/draw.mjs +161 -0
  45. package/esm2020/utils/index.mjs +5 -6
  46. package/esm2020/utils/mind.mjs +5 -128
  47. package/esm2020/utils/node/adjust-node.mjs +49 -0
  48. package/esm2020/utils/node/create-node.mjs +61 -0
  49. package/esm2020/utils/point-placement.mjs +22 -2
  50. package/esm2020/utils/position/emoji.mjs +31 -0
  51. package/esm2020/utils/position/index.mjs +4 -0
  52. package/esm2020/utils/position/node.mjs +34 -0
  53. package/esm2020/utils/position/topic.mjs +14 -0
  54. package/esm2020/utils/space/emoji.mjs +19 -0
  55. package/esm2020/utils/space/layout-options.mjs +72 -0
  56. package/esm2020/utils/space/node-space.mjs +77 -0
  57. package/fesm2015/plait-mind.mjs +1476 -1643
  58. package/fesm2015/plait-mind.mjs.map +1 -1
  59. package/fesm2020/plait-mind.mjs +1518 -1674
  60. package/fesm2020/plait-mind.mjs.map +1 -1
  61. package/interfaces/index.d.ts +1 -1
  62. package/interfaces/pointer.d.ts +3 -0
  63. package/mind.module.d.ts +2 -2
  64. package/node.component.d.ts +6 -5
  65. package/package.json +3 -3
  66. package/{interfaces/abstract.d.ts → plugins/with-abstract-resize.board.d.ts} +2 -2
  67. package/plugins/with-mind-create.d.ts +11 -0
  68. package/plugins/with-mind-extend.d.ts +3 -0
  69. package/plugins/{with-extend-mind.d.ts → with-mind.board.d.ts} +4 -4
  70. package/plugins/with-mind.d.ts +1 -1
  71. package/public-api.d.ts +4 -2
  72. package/styles/styles.scss +5 -2
  73. package/transforms/abstract-node.d.ts +1 -1
  74. package/transforms/emoji.d.ts +6 -0
  75. package/transforms/index.d.ts +3 -0
  76. package/transforms/node.d.ts +5 -5
  77. package/utils/abstract/common.d.ts +19 -4
  78. package/utils/abstract/resize.d.ts +2 -1
  79. package/utils/dnd/common.d.ts +7 -0
  80. package/utils/dnd/detector.d.ts +31 -0
  81. package/utils/dnd/draw.d.ts +9 -0
  82. package/utils/index.d.ts +4 -5
  83. package/utils/mind.d.ts +3 -22
  84. package/utils/node/adjust-node.d.ts +5 -0
  85. package/utils/node/create-node.d.ts +14 -0
  86. package/utils/point-placement.d.ts +8 -1
  87. package/utils/position/emoji.d.ts +7 -0
  88. package/utils/position/index.d.ts +3 -0
  89. package/utils/position/node.d.ts +12 -0
  90. package/utils/position/topic.d.ts +16 -0
  91. package/utils/space/emoji.d.ts +7 -0
  92. package/{layout-option.d.ts → utils/space/layout-options.d.ts} +1 -1
  93. package/utils/{node-space.d.ts → space/node-space.d.ts} +4 -4
  94. package/draw/link.d.ts +0 -3
  95. package/draw/richtext.d.ts +0 -15
  96. package/draw/shape.d.ts +0 -3
  97. package/esm2020/draw/link.mjs +0 -160
  98. package/esm2020/draw/richtext.mjs +0 -39
  99. package/esm2020/draw/shape.mjs +0 -18
  100. package/esm2020/drawer/base/base.mjs +0 -17
  101. package/esm2020/interfaces/abstract.mjs +0 -12
  102. package/esm2020/layout-option.mjs +0 -72
  103. package/esm2020/plugins/emoji/emoji-base.component.mjs +0 -33
  104. package/esm2020/plugins/emoji/emoji.drawer.mjs +0 -72
  105. package/esm2020/plugins/emoji/emoji.mjs +0 -47
  106. package/esm2020/plugins/emoji/index.mjs +0 -3
  107. package/esm2020/plugins/with-abstract.mjs +0 -106
  108. package/esm2020/plugins/with-dnd.mjs +0 -179
  109. package/esm2020/plugins/with-extend-mind.mjs +0 -11
  110. package/esm2020/utils/direction-corrector.mjs +0 -54
  111. package/esm2020/utils/direction-detector.mjs +0 -56
  112. package/esm2020/utils/dnd.mjs +0 -122
  113. package/esm2020/utils/draw-placeholder.mjs +0 -313
  114. package/esm2020/utils/drop-target-corrector.mjs +0 -87
  115. package/esm2020/utils/graph.mjs +0 -24
  116. package/esm2020/utils/node-space.mjs +0 -77
  117. package/plugins/emoji/emoji.d.ts +0 -11
  118. package/utils/direction-corrector.d.ts +0 -4
  119. package/utils/direction-detector.d.ts +0 -9
  120. package/utils/dnd.d.ts +0 -16
  121. package/utils/draw-placeholder.d.ts +0 -42
  122. package/utils/drop-target-corrector.d.ts +0 -9
  123. package/utils/graph.d.ts +0 -5
  124. /package/plugins/{with-abstract.d.ts → with-abstract-resize.d.ts} +0 -0
  125. /package/plugins/{with-dnd.d.ts → with-node-dnd.d.ts} +0 -0
@@ -0,0 +1,162 @@
1
+ import { distanceBetweenPointAndPoint, IS_TEXT_EDITABLE, Path, PlaitBoard, PlaitElement, toPoint, transformPoint, Transforms, getSelectedElements, depthFirstRecursion, createG, PlaitNode } from '@plait/core';
2
+ import { AbstractNode, getNonAbstractChildren } from '@plait/layouts';
3
+ import { MindElement, PlaitMind } from '../interfaces/element';
4
+ import { changeRightNodeCount, deleteElementHandleAbstract, getFirstLevelElement, getOverallAbstracts, getValidAbstractRefs, insertElementHandleAbstract, isInRightBranchOfStandardLayout } from '../utils';
5
+ import { isHitMindElement } from '../utils/position/node';
6
+ import { addActiveOnDragOrigin, isDragging, removeActiveOnDragOrigin, setIsDragging } from '../utils/dnd/common';
7
+ import { detectDropTarget, getPathByDropTarget } from '../utils/dnd/detector';
8
+ import { drawFakeDragNode, drawFakeDropNodeByPath } from '../utils/dnd/draw';
9
+ import { MindTransforms } from '../transforms';
10
+ import { adjustAbstractToNode, adjustRootToNode } from '../utils/node/adjust-node';
11
+ const DRAG_MOVE_BUFFER = 5;
12
+ export const withDnd = (board) => {
13
+ const { mousedown, mousemove, globalMouseup } = board;
14
+ let activeElements = [];
15
+ let correspondingElements = [];
16
+ let startPoint;
17
+ let dragFakeNodeG;
18
+ let fakeDropNodeG;
19
+ let dropTarget = null;
20
+ let targetPath;
21
+ board.mousedown = (event) => {
22
+ if (board.options.readonly || IS_TEXT_EDITABLE.get(board) || event.button === 2) {
23
+ mousedown(event);
24
+ return;
25
+ }
26
+ // 确认是否 hit 节点
27
+ const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
28
+ const selectedElements = getSelectedElements(board);
29
+ depthFirstRecursion(board, element => {
30
+ if (activeElements.length || !MindElement.isMindElement(board, element)) {
31
+ return;
32
+ }
33
+ const isHitElement = isHitMindElement(board, point, element) && !element.isRoot && !AbstractNode.isAbstract(element);
34
+ const isAllMindElement = selectedElements.every(element => MindElement.isMindElement(board, element));
35
+ const isMultiple = isHitElement && selectedElements.length > 1 && selectedElements.includes(element) && isAllMindElement;
36
+ const isSingle = isHitElement && !(selectedElements.length > 1 && selectedElements.includes(element));
37
+ if (isSingle) {
38
+ activeElements = [element];
39
+ startPoint = point;
40
+ }
41
+ else if (isMultiple) {
42
+ activeElements = getFirstLevelElement(selectedElements);
43
+ startPoint = point;
44
+ }
45
+ }, node => {
46
+ if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
47
+ return true;
48
+ }
49
+ else {
50
+ return false;
51
+ }
52
+ });
53
+ if (activeElements.length) {
54
+ correspondingElements = getOverallAbstracts(board, activeElements);
55
+ }
56
+ mousedown(event);
57
+ };
58
+ board.mousemove = (event) => {
59
+ if (!board.options.readonly && activeElements?.length && startPoint) {
60
+ const endPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
61
+ const distance = distanceBetweenPointAndPoint(startPoint[0], startPoint[1], endPoint[0], endPoint[1]);
62
+ if (distance < DRAG_MOVE_BUFFER) {
63
+ return;
64
+ }
65
+ setIsDragging(board, true);
66
+ fakeDropNodeG?.remove();
67
+ const detectPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
68
+ dropTarget = detectDropTarget(board, detectPoint, dropTarget, [...activeElements, ...correspondingElements]);
69
+ if (dropTarget?.target) {
70
+ targetPath = getPathByDropTarget(board, dropTarget);
71
+ fakeDropNodeG = drawFakeDropNodeByPath(board, dropTarget.target, targetPath);
72
+ PlaitBoard.getHost(board).appendChild(fakeDropNodeG);
73
+ }
74
+ const offsetX = endPoint[0] - startPoint[0];
75
+ const offsetY = endPoint[1] - startPoint[1];
76
+ dragFakeNodeG?.remove();
77
+ dragFakeNodeG = createG();
78
+ [...activeElements, ...correspondingElements].forEach(element => {
79
+ addActiveOnDragOrigin(element);
80
+ if (activeElements.includes(element)) {
81
+ const activeComponent = PlaitElement.getComponent(element);
82
+ const nodeG = drawFakeDragNode(board, activeComponent, offsetX, offsetY);
83
+ dragFakeNodeG?.appendChild(nodeG);
84
+ }
85
+ });
86
+ PlaitBoard.getHost(board).appendChild(dragFakeNodeG);
87
+ }
88
+ mousemove(event);
89
+ };
90
+ board.globalMouseup = (event) => {
91
+ if (!board.options.readonly && activeElements?.length) {
92
+ const elements = [...activeElements, ...correspondingElements];
93
+ if (isDragging(board)) {
94
+ elements.forEach(element => removeActiveOnDragOrigin(element));
95
+ }
96
+ if (dropTarget) {
97
+ const targetPathRef = board.pathRef(targetPath);
98
+ const targetElementPathRef = board.pathRef(PlaitBoard.findPath(board, dropTarget.target));
99
+ const abstractRefs = getValidAbstractRefs(board, elements);
100
+ const normalElements = elements
101
+ .filter(element => !abstractRefs.some(refs => refs.abstract === element))
102
+ .map(element => {
103
+ if (AbstractNode.isAbstract(element)) {
104
+ return adjustAbstractToNode(element);
105
+ }
106
+ if (PlaitMind.isMind(element)) {
107
+ return adjustRootToNode(board, element);
108
+ }
109
+ return element;
110
+ });
111
+ const effectedAbstracts = deleteElementHandleAbstract(board, elements);
112
+ insertElementHandleAbstract(board, targetPath, normalElements.length, false, effectedAbstracts);
113
+ MindTransforms.setAbstractsByRefs(board, effectedAbstracts);
114
+ MindTransforms.removeElements(board, elements);
115
+ let insertPath = targetPathRef.current;
116
+ const parentPath = Path.parent(targetPathRef.current || targetPath);
117
+ if (!insertPath) {
118
+ const parent = PlaitNode.get(board, parentPath);
119
+ const children = getNonAbstractChildren(parent);
120
+ insertPath = [...parentPath, children.length || 0];
121
+ }
122
+ MindTransforms.insertNodes(board, normalElements, insertPath);
123
+ if (abstractRefs.length) {
124
+ MindTransforms.insertAbstractNodes(board, abstractRefs, normalElements, insertPath);
125
+ }
126
+ const shouldChangeRoot = isInRightBranchOfStandardLayout(dropTarget?.target) &&
127
+ targetElementPathRef.current &&
128
+ (Path.isSibling(targetPath, targetElementPathRef.current) || Path.equals(targetPath, targetElementPathRef.current));
129
+ if (shouldChangeRoot && targetElementPathRef.current) {
130
+ changeRightNodeCount(board, targetElementPathRef.current.slice(0, 1), normalElements.length);
131
+ }
132
+ if (targetElementPathRef.current &&
133
+ targetPathRef.current &&
134
+ Path.isAncestor(targetElementPathRef.current, targetPathRef.current) &&
135
+ dropTarget.target.isCollapsed) {
136
+ Transforms.setNode(board, { isCollapsed: false }, targetElementPathRef.current);
137
+ }
138
+ targetElementPathRef.unref();
139
+ targetPathRef.unref();
140
+ const selectedElements = getSelectedElements(board);
141
+ let setActiveElements = [];
142
+ depthFirstRecursion(board, node => {
143
+ const isSelected = selectedElements.some(element => element.id === node.id);
144
+ if (isSelected) {
145
+ setActiveElements.push(node);
146
+ }
147
+ });
148
+ Transforms.setSelectionWithTemporaryElements(board, setActiveElements);
149
+ }
150
+ setIsDragging(board, false);
151
+ activeElements = [];
152
+ dragFakeNodeG?.remove();
153
+ dragFakeNodeG = undefined;
154
+ fakeDropNodeG?.remove();
155
+ fakeDropNodeG = undefined;
156
+ dropTarget = null;
157
+ }
158
+ globalMouseup(event);
159
+ };
160
+ return board;
161
+ };
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWRuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3BsdWdpbnMvd2l0aC1ub2RlLWRuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsNEJBQTRCLEVBQzVCLGdCQUFnQixFQUNoQixJQUFJLEVBQ0osVUFBVSxFQUNWLFlBQVksRUFFWixPQUFPLEVBQ1AsY0FBYyxFQUNkLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxTQUFTLEVBQ1osTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHL0QsT0FBTyxFQUNILG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLCtCQUErQixFQUNsQyxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFD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LENBQUM7YUFDMUU7WUFFRCxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVCLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDcEIsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLGFBQWEsR0FBRyxTQUFTLENBQUM7WUFDMUIsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLGFBQWEsR0FBRyxTQUFTLENBQUM7WUFDMUIsVUFBVSxHQUFHLElBQUksQ0FBQztTQUNyQjtRQUNELGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQsXG4gICAgSVNfVEVYVF9FRElUQUJMRSxcbiAgICBQYXRoLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBvaW50LFxuICAgIHRvUG9pbnQsXG4gICAgdHJhbnNmb3JtUG9pbnQsXG4gICAgVHJhbnNmb3JtcyxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzLFxuICAgIGRlcHRoRmlyc3RSZWN1cnNpb24sXG4gICAgY3JlYXRlRyxcbiAgICBQbGFpdE5vZGVcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3ROb2RlLCBnZXROb25BYnN0cmFjdENoaWxkcmVuIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIFBsYWl0TWluZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBEZXRlY3RSZXN1bHQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIGNoYW5nZVJpZ2h0Tm9kZUNvdW50LFxuICAgIGRlbGV0ZUVsZW1lbnRIYW5kbGVBYnN0cmFjdCxcbiAgICBnZXRGaXJzdExldmVsRWxlbWVudCxcbiAgICBnZXRPdmVyYWxsQWJzdHJhY3RzLFxuICAgIGdldFZhbGlkQWJzdHJhY3RSZWZzLFxuICAgIGluc2VydEVsZW1lbnRIYW5kbGVBYnN0cmFjdCxcbiAgICBpc0luUmlnaHRCcmFuY2hPZlN0YW5kYXJkTGF5b3V0XG59IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGlzSGl0TWluZEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9ub2RlJztcbmltcG9ydCB7IGFkZEFjdGl2ZU9uRHJhZ09yaWdpbiwgaXNEcmFnZ2luZywgcmVtb3ZlQWN0aXZlT25EcmFnT3JpZ2luLCBzZXRJc0RyYWdnaW5nIH0gZnJvbSAnLi4vdXRpbHMvZG5kL2NvbW1vbic7XG5pbXBvcnQgeyBkZXRlY3REcm9wVGFyZ2V0LCBnZXRQYXRoQnlEcm9wVGFyZ2V0IH0gZnJvbSAnLi4vdXRpbHMvZG5kL2RldGVjdG9yJztcbmltcG9ydCB7IGRyYXdGYWtlRHJhZ05vZGUsIGRyYXdGYWtlRHJvcE5vZGVCeVBhdGggfSBmcm9tICcuLi91dGlscy9kbmQvZHJhdyc7XG5pbXBvcnQgeyBNaW5kVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgYWRqdXN0QWJzdHJhY3RUb05vZGUsIGFkanVzdFJvb3RUb05vZGUgfSBmcm9tICcuLi91dGlscy9ub2RlL2FkanVzdC1ub2RlJztcblxuY29uc3QgRFJBR19NT1ZFX0JVRkZFUiA9IDU7XG5cbmV4cG9ydCBjb25zdCB3aXRoRG5kID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBtb3VzZWRvd24sIG1vdXNlbW92ZSwgZ2xvYmFsTW91c2V1cCB9ID0gYm9hcmQ7XG5cbiAgICBsZXQgYWN0aXZlRWxlbWVudHM6IE1pbmRFbGVtZW50W10gPSBbXTtcbiAgICBsZXQgY29ycmVzcG9uZGluZ0VsZW1lbnRzOiBNaW5kRWxlbWVudFtdID0gW107XG4gICAgbGV0IHN0YXJ0UG9pbnQ6IFBvaW50O1xuICAgIGxldCBkcmFnRmFrZU5vZGVHOiBTVkdHRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZmFrZURyb3BOb2RlRzogU1ZHR0VsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGRyb3BUYXJnZXQ6IHsgdGFyZ2V0OiBNaW5kRWxlbWVudDsgZGV0ZWN0UmVzdWx0OiBEZXRlY3RSZXN1bHQgfSB8IG51bGwgPSBudWxsO1xuICAgIGxldCB0YXJnZXRQYXRoOiBQYXRoO1xuXG4gICAgYm9hcmQubW91c2Vkb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChib2FyZC5vcHRpb25zLnJlYWRvbmx5IHx8IElTX1RFWFRfRURJVEFCTEUuZ2V0KGJvYXJkKSB8fCBldmVudC5idXR0b24gPT09IDIpIHtcbiAgICAgICAgICAgIG1vdXNlZG93bihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyDnoa7orqTmmK/lkKYgaGl0IOiKgueCuVxuICAgICAgICBjb25zdCBwb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBkZXB0aEZpcnN0UmVjdXJzaW9uKFxuICAgICAgICAgICAgKGJvYXJkIGFzIHVua25vd24pIGFzIE1pbmRFbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUVsZW1lbnRzLmxlbmd0aCB8fCAhTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBpc0hpdEVsZW1lbnQgPSBpc0hpdE1pbmRFbGVtZW50KGJvYXJkLCBwb2ludCwgZWxlbWVudCkgJiYgIWVsZW1lbnQuaXNSb290ICYmICFBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0FsbE1pbmRFbGVtZW50ID0gc2VsZWN0ZWRFbGVtZW50cy5ldmVyeShlbGVtZW50ID0+IE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc011bHRpcGxlID0gaXNIaXRFbGVtZW50ICYmIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID4gMSAmJiBzZWxlY3RlZEVsZW1lbnRzLmluY2x1ZGVzKGVsZW1lbnQpICYmIGlzQWxsTWluZEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTaW5nbGUgPSBpc0hpdEVsZW1lbnQgJiYgIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA+IDEgJiYgc2VsZWN0ZWRFbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNTaW5nbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlRWxlbWVudHMgPSBbZWxlbWVudF07XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBwb2ludDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlRWxlbWVudHMgPSBnZXRGaXJzdExldmVsRWxlbWVudChzZWxlY3RlZEVsZW1lbnRzIGFzIE1pbmRFbGVtZW50W10pO1xuICAgICAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gcG9pbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5vZGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChQbGFpdEJvYXJkLmlzQm9hcmQobm9kZSkgfHwgYm9hcmQuaXNSZWN1cnNpb24obm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoYWN0aXZlRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb3JyZXNwb25kaW5nRWxlbWVudHMgPSBnZXRPdmVyYWxsQWJzdHJhY3RzKGJvYXJkLCBhY3RpdmVFbGVtZW50cyk7XG4gICAgICAgIH1cblxuICAgICAgICBtb3VzZWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZW1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFib2FyZC5vcHRpb25zLnJlYWRvbmx5ICYmIGFjdGl2ZUVsZW1lbnRzPy5sZW5ndGggJiYgc3RhcnRQb2ludCkge1xuICAgICAgICAgICAgY29uc3QgZW5kUG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpKSk7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoc3RhcnRQb2ludFswXSwgc3RhcnRQb2ludFsxXSwgZW5kUG9pbnRbMF0sIGVuZFBvaW50WzFdKTtcbiAgICAgICAgICAgIGlmIChkaXN0YW5jZSA8IERSQUdfTU9WRV9CVUZGRVIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldElzRHJhZ2dpbmcoYm9hcmQsIHRydWUpO1xuXG4gICAgICAgICAgICBmYWtlRHJvcE5vZGVHPy5yZW1vdmUoKTtcbiAgICAgICAgICAgIGNvbnN0IGRldGVjdFBvaW50ID0gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHRvUG9pbnQoZXZlbnQueCwgZXZlbnQueSwgUGxhaXRCb2FyZC5nZXRIb3N0KGJvYXJkKSkpO1xuICAgICAgICAgICAgZHJvcFRhcmdldCA9IGRldGVjdERyb3BUYXJnZXQoYm9hcmQsIGRldGVjdFBvaW50LCBkcm9wVGFyZ2V0LCBbLi4uYWN0aXZlRWxlbWVudHMsIC4uLmNvcnJlc3BvbmRpbmdFbGVtZW50c10pO1xuICAgICAgICAgICAgaWYgKGRyb3BUYXJnZXQ/LnRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRhcmdldFBhdGggPSBnZXRQYXRoQnlEcm9wVGFyZ2V0KGJvYXJkLCBkcm9wVGFyZ2V0KTtcblxuICAgICAgICAgICAgICAgIGZha2VEcm9wTm9kZUcgPSBkcmF3RmFrZURyb3BOb2RlQnlQYXRoKGJvYXJkLCBkcm9wVGFyZ2V0LnRhcmdldCwgdGFyZ2V0UGF0aCk7XG4gICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRIb3N0KGJvYXJkKS5hcHBlbmRDaGlsZChmYWtlRHJvcE5vZGVHKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IGVuZFBvaW50WzBdIC0gc3RhcnRQb2ludFswXTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldFkgPSBlbmRQb2ludFsxXSAtIHN0YXJ0UG9pbnRbMV07XG4gICAgICAgICAgICBkcmFnRmFrZU5vZGVHPy5yZW1vdmUoKTtcbiAgICAgICAgICAgIGRyYWdGYWtlTm9kZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgICAgICBbLi4uYWN0aXZlRWxlbWVudHMsIC4uLmNvcnJlc3BvbmRpbmdFbGVtZW50c10uZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBhZGRBY3RpdmVPbkRyYWdPcmlnaW4oZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUVsZW1lbnRzLmluY2x1ZGVzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoZWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVHID0gZHJhd0Zha2VEcmFnTm9kZShib2FyZCwgYWN0aXZlQ29tcG9uZW50LCBvZmZzZXRYLCBvZmZzZXRZKTtcbiAgICAgICAgICAgICAgICAgICAgZHJhZ0Zha2VOb2RlRz8uYXBwZW5kQ2hpbGQobm9kZUcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpLmFwcGVuZENoaWxkKGRyYWdGYWtlTm9kZUcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbW91c2Vtb3ZlKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2xvYmFsTW91c2V1cCA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIWJvYXJkLm9wdGlvbnMucmVhZG9ubHkgJiYgYWN0aXZlRWxlbWVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBbLi4uYWN0aXZlRWxlbWVudHMsIC4uLmNvcnJlc3BvbmRpbmdFbGVtZW50c107XG4gICAgICAgICAgICBpZiAoaXNEcmFnZ2luZyhib2FyZCkpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4gcmVtb3ZlQWN0aXZlT25EcmFnT3JpZ2luKGVsZW1lbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkcm9wVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0UGF0aFJlZiA9IGJvYXJkLnBhdGhSZWYodGFyZ2V0UGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudFBhdGhSZWYgPSBib2FyZC5wYXRoUmVmKFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGRyb3BUYXJnZXQudGFyZ2V0KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWJzdHJhY3RSZWZzID0gZ2V0VmFsaWRBYnN0cmFjdFJlZnMoYm9hcmQsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxFbGVtZW50cyA9IGVsZW1lbnRzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZWxlbWVudCA9PiAhYWJzdHJhY3RSZWZzLnNvbWUocmVmcyA9PiByZWZzLmFic3RyYWN0ID09PSBlbGVtZW50KSlcbiAgICAgICAgICAgICAgICAgICAgLm1hcChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhZGp1c3RBYnN0cmFjdFRvTm9kZShlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFkanVzdFJvb3RUb05vZGUoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZWZmZWN0ZWRBYnN0cmFjdHMgPSBkZWxldGVFbGVtZW50SGFuZGxlQWJzdHJhY3QoYm9hcmQsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnNlcnRFbGVtZW50SGFuZGxlQWJzdHJhY3QoYm9hcmQsIHRhcmdldFBhdGgsIG5vcm1hbEVsZW1lbnRzLmxlbmd0aCwgZmFsc2UsIGVmZmVjdGVkQWJzdHJhY3RzKTtcbiAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRBYnN0cmFjdHNCeVJlZnMoYm9hcmQsIGVmZmVjdGVkQWJzdHJhY3RzKTtcblxuICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnJlbW92ZUVsZW1lbnRzKGJvYXJkLCBlbGVtZW50cyk7XG5cbiAgICAgICAgICAgICAgICBsZXQgaW5zZXJ0UGF0aCA9IHRhcmdldFBhdGhSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gUGF0aC5wYXJlbnQodGFyZ2V0UGF0aFJlZi5jdXJyZW50IHx8IHRhcmdldFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmICghaW5zZXJ0UGF0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXJlbnRQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBnZXROb25BYnN0cmFjdENoaWxkcmVuKHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydFBhdGggPSBbLi4ucGFyZW50UGF0aCwgY2hpbGRyZW4ubGVuZ3RoIHx8IDBdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGJvYXJkLCBub3JtYWxFbGVtZW50cywgaW5zZXJ0UGF0aCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoYWJzdHJhY3RSZWZzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5pbnNlcnRBYnN0cmFjdE5vZGVzKGJvYXJkLCBhYnN0cmFjdFJlZnMsIG5vcm1hbEVsZW1lbnRzLCBpbnNlcnRQYXRoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRDaGFuZ2VSb290ID1cbiAgICAgICAgICAgICAgICAgICAgaXNJblJpZ2h0QnJhbmNoT2ZTdGFuZGFyZExheW91dChkcm9wVGFyZ2V0Py50YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnRQYXRoUmVmLmN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgKFBhdGguaXNTaWJsaW5nKHRhcmdldFBhdGgsIHRhcmdldEVsZW1lbnRQYXRoUmVmLmN1cnJlbnQpIHx8IFBhdGguZXF1YWxzKHRhcmdldFBhdGgsIHRhcmdldEVsZW1lbnRQYXRoUmVmLmN1cnJlbnQpKTtcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hhbmdlUm9vdCAmJiB0YXJnZXRFbGVtZW50UGF0aFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZVJpZ2h0Tm9kZUNvdW50KGJvYXJkLCB0YXJnZXRFbGVtZW50UGF0aFJlZi5jdXJyZW50LnNsaWNlKDAsIDEpLCBub3JtYWxFbGVtZW50cy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudFBhdGhSZWYuY3VycmVudCAmJlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRQYXRoUmVmLmN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgUGF0aC5pc0FuY2VzdG9yKHRhcmdldEVsZW1lbnRQYXRoUmVmLmN1cnJlbnQsIHRhcmdldFBhdGhSZWYuY3VycmVudCkgJiZcbiAgICAgICAgICAgICAgICAgICAgZHJvcFRhcmdldC50YXJnZXQuaXNDb2xsYXBzZWRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCB7IGlzQ29sbGFwc2VkOiBmYWxzZSB9LCB0YXJnZXRFbGVtZW50UGF0aFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudFBhdGhSZWYudW5yZWYoKTtcbiAgICAgICAgICAgICAgICB0YXJnZXRQYXRoUmVmLnVucmVmKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgICAgICAgICAgbGV0IHNldEFjdGl2ZUVsZW1lbnRzOiBNaW5kRWxlbWVudFtdID0gW107XG4gICAgICAgICAgICAgICAgZGVwdGhGaXJzdFJlY3Vyc2lvbigoYm9hcmQgYXMgdW5rbm93bikgYXMgTWluZEVsZW1lbnQsIG5vZGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWRFbGVtZW50cy5zb21lKGVsZW1lbnQgPT4gZWxlbWVudC5pZCA9PT0gbm9kZS5pZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRBY3RpdmVFbGVtZW50cy5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50cyhib2FyZCwgc2V0QWN0aXZlRWxlbWVudHMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRJc0RyYWdnaW5nKGJvYXJkLCBmYWxzZSk7XG4gICAgICAgICAgICBhY3RpdmVFbGVtZW50cyA9IFtdO1xuICAgICAgICAgICAgZHJhZ0Zha2VOb2RlRz8ucmVtb3ZlKCk7XG4gICAgICAgICAgICBkcmFnRmFrZU5vZGVHID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgZmFrZURyb3BOb2RlRz8ucmVtb3ZlKCk7XG4gICAgICAgICAgICBmYWtlRHJvcE5vZGVHID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgZHJvcFRhcmdldCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZ2xvYmFsTW91c2V1cChldmVudCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
@@ -7,9 +7,11 @@ export * from './mind.module';
7
7
  export * from './utils';
8
8
  export * from './interfaces';
9
9
  export * from './plugins/with-mind';
10
- export * from './plugins/with-extend-mind';
10
+ export * from './plugins/with-mind-extend';
11
11
  export * from './constants';
12
12
  export * from './queries/index';
13
13
  export * from './transforms/index';
14
- export * from './plugins/emoji';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBtaW5kXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9taW5kLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25vZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWluZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW5zL3dpdGgtbWluZCc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMvd2l0aC1leHRlbmQtbWluZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1zL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucy9lbW9qaSc7XG4iXX0=
14
+ export * from './base';
15
+ export * from './plugins/with-mind.board';
16
+ export * from './plugins/with-abstract-resize.board';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG1pbmRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL21pbmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9taW5kLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMvd2l0aC1taW5kJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucy93aXRoLW1pbmQtZXh0ZW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcmllcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW5zL3dpdGgtYWJzdHJhY3QtcmVzaXplLmJvYXJkJztcbiJdfQ==
@@ -1,8 +1,9 @@
1
1
  import { Path, PlaitBoard, Transforms } from '@plait/core';
2
2
  import { AbstractNode, isStandardLayout } from '@plait/layouts';
3
- import { createMindElement, divideElementByParent, getFirstLevelElement } from '../utils/mind';
3
+ import { divideElementByParent, getFirstLevelElement } from '../utils/mind';
4
4
  import { MindQueries } from '../queries';
5
5
  import { DefaultAbstractNodeStyle } from '../constants/node-style';
6
+ import { createMindElement } from '../utils/node/create-node';
6
7
  export const setAbstractsByRefs = (board, abstractRefs) => {
7
8
  abstractRefs.forEach((newProperty, element) => {
8
9
  const start = element.start + newProperty.start;
@@ -65,4 +66,4 @@ const insertAbstractNode = (board, path, start, end) => {
65
66
  mindElement.end = end;
66
67
  Transforms.insertNode(board, mindElement, path);
67
68
  };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3RyYW5zZm9ybXMvYWJzdHJhY3Qtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsWUFBMEIsRUFBRSxFQUFFO0lBQ2hGLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDMUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ2pELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFJLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUMzQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFzQixDQUFDLENBQUM7UUFFaEUsSUFBSSxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ2IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNILFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFD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QUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN0RztTQUFNO1FBQ0gsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkYsa0JBQWtCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDL0M7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBRSxJQUFVLEVBQUUsS0FBYSxFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQ3JGLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ2hELFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxXQUFXO1FBQ2pELFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxXQUFXO1FBQ2pELFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxXQUFXO1FBQ2pELFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxXQUFXO0tBQ3BELENBQUMsQ0FBQztJQUVILFdBQVcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzFCLFdBQVcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBRXRCLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXRoLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFJlZnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Fic3RyYWN0JztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSwgaXNTdGFuZGFyZExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGNyZWF0ZU1pbmRFbGVtZW50LCBkaXZpZGVFbGVtZW50QnlQYXJlbnQsIGdldEZpcnN0TGV2ZWxFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbWluZCc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtc3R5bGUnO1xuXG5leHBvcnQgY29uc3Qgc2V0QWJzdHJhY3RzQnlSZWZzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBhYnN0cmFjdFJlZnM6IEFic3RyYWN0UmVmcykgPT4ge1xuICAgIGFic3RyYWN0UmVmcy5mb3JFYWNoKChuZXdQcm9wZXJ0eSwgZWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBzdGFydCA9IGVsZW1lbnQuc3RhcnQhICsgbmV3UHJvcGVydHkuc3RhcnQ7XG4gICAgICAgIGNvbnN0IGVuZCA9IGVsZW1lbnQuZW5kISArIG5ld1Byb3BlcnR5LmVuZDtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQgYXMgTWluZEVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChzdGFydCA+IGVuZCkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBzdGFydCwgZW5kIH0sIHBhdGgpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0QWJzdHJhY3RCeVN0YW5kYXJkTGF5b3V0ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHJpZ2h0Tm9kZUNvdW50ID0gZWxlbWVudC5yaWdodE5vZGVDb3VudCE7XG4gICAgY29uc3QgYWJzdHJhY3QgPSBlbGVtZW50LmNoaWxkcmVuLmZpbmQoY2hpbGQgPT4ge1xuICAgICAgICByZXR1cm4gQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoY2hpbGQpICYmIGNoaWxkLmVuZCA+PSByaWdodE5vZGVDb3VudCAmJiBjaGlsZC5zdGFydCA8IHJpZ2h0Tm9kZUNvdW50O1xuICAgIH0pO1xuXG4gICAgaWYgKGFic3RyYWN0KSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBhYnN0cmFjdCk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBlbmQ6IHJpZ2h0Tm9kZUNvdW50IC0gMSB9LCBwYXRoKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0QWJzdHJhY3QgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGxldCBlbGVtZW50R3JvdXAgPSBnZXRGaXJzdExldmVsRWxlbWVudChlbGVtZW50cyBhcyBNaW5kRWxlbWVudFtdKTtcbiAgICBjb25zdCB7IHBhcmVudEVsZW1lbnRzLCBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzIH0gPSBkaXZpZGVFbGVtZW50QnlQYXJlbnQoZWxlbWVudEdyb3VwKTtcblxuICAgIGFic3RyYWN0SW5jbHVkZWRHcm91cHMuZm9yRWFjaCgoZ3JvdXAsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGdyb3VwUGFyZW50ID0gcGFyZW50RWxlbWVudHNbaW5kZXhdO1xuICAgICAgICBzZXRBYnN0cmFjdEJ5RWxlbWVudHMoYm9hcmQsIGdyb3VwUGFyZW50LCBncm91cCk7XG4gICAgfSk7XG59O1xuXG5jb25zdCBzZXRBYnN0cmFjdEJ5RWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGdyb3VwUGFyZW50OiBNaW5kRWxlbWVudCwgZ3JvdXA6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBpbmRleEFycmF5ID0gZ3JvdXAubWFwKGNoaWxkID0+IGdyb3VwUGFyZW50IS5jaGlsZHJlbi5pbmRleE9mKGNoaWxkKSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIGNvbnN0IHJpZ2h0Tm9kZUNvdW50ID0gZ3JvdXBQYXJlbnQ/LnJpZ2h0Tm9kZUNvdW50O1xuICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXhBcnJheVswXSxcbiAgICAgICAgZW5kID0gaW5kZXhBcnJheVtpbmRleEFycmF5Lmxlbmd0aCAtIDFdO1xuXG4gICAgaWYgKFxuICAgICAgICBpc1N0YW5kYXJkTGF5b3V0KE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudChncm91cFBhcmVudCkpICYmXG4gICAgICAgIHJpZ2h0Tm9kZUNvdW50ICYmXG4gICAgICAgIHN0YXJ0IDwgcmlnaHROb2RlQ291bnQgJiZcbiAgICAgICAgZW5kID49IHJpZ2h0Tm9kZUNvdW50XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuTGVuZ3RoID0gZ3JvdXBQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICBjb25zdCBwYXRoID0gWy4uLlBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGdyb3VwUGFyZW50KSwgY2hpbGRyZW5MZW5ndGhdO1xuICAgICAgICBjb25zdCBsZWZ0Q2hpbGRyZW4gPSBpbmRleEFycmF5LmZpbHRlcihpbmRleCA9PiBpbmRleCA+PSByaWdodE5vZGVDb3VudCk7XG4gICAgICAgIGNvbnN0IHJpZ2h0Q2hpbGRyZW4gPSBpbmRleEFycmF5LmZpbHRlcihpbmRleCA9PiBpbmRleCA8IHJpZ2h0Tm9kZUNvdW50KTtcbiAgICAgICAgaW5zZXJ0QWJzdHJhY3ROb2RlKGJvYXJkLCBwYXRoLCByaWdodENoaWxkcmVuWzBdLCByaWdodENoaWxkcmVuW3JpZ2h0Q2hpbGRyZW4ubGVuZ3RoIC0gMV0pO1xuICAgICAgICBpbnNlcnRBYnN0cmFjdE5vZGUoYm9hcmQsIFBhdGgubmV4dChwYXRoKSwgbGVmdENoaWxkcmVuWzBdLCBsZWZ0Q2hpbGRyZW5bbGVmdENoaWxkcmVuLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwYXRoID0gWy4uLlBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGdyb3VwUGFyZW50KSwgZ3JvdXBQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoXTtcbiAgICAgICAgaW5zZXJ0QWJzdHJhY3ROb2RlKGJvYXJkLCBwYXRoLCBzdGFydCwgZW5kKTtcbiAgICB9XG59O1xuXG5jb25zdCBpbnNlcnRBYnN0cmFjdE5vZGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBhdGg6IFBhdGgsIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbWluZEVsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgn5qaC6KaBJywgMjgsIDIwLCB7XG4gICAgICAgIHN0cm9rZUNvbG9yOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuc3Ryb2tlQ29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuYnJhbmNoV2lkdGgsXG4gICAgICAgIGJyYW5jaENvbG9yOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuYnJhbmNoQ29sb3IsXG4gICAgICAgIGJyYW5jaFdpZHRoOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuYnJhbmNoV2lkdGhcbiAgICB9KTtcblxuICAgIG1pbmRFbGVtZW50LnN0YXJ0ID0gc3RhcnQ7XG4gICAgbWluZEVsZW1lbnQuZW5kID0gZW5kO1xuXG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlKGJvYXJkLCBtaW5kRWxlbWVudCwgcGF0aCk7XG59O1xuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3RyYW5zZm9ybXMvYWJzdHJhY3Qtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsWUFBMEIsRUFBRSxFQUFFO0lBQ2hGLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDMUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ2pELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFJLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUMzQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFzQixDQUFDLENBQUM7UUFFaEUsSUFBSSxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ2IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNILFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxF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bGFpdEVsZW1lbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFJlZnMgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtYWJzdHJhY3QtcmVzaXplLmJvYXJkJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSwgaXNTdGFuZGFyZExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGRpdmlkZUVsZW1lbnRCeVBhcmVudCwgZ2V0Rmlyc3RMZXZlbEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9taW5kJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS1zdHlsZSc7XG5pbXBvcnQgeyBjcmVhdGVNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL25vZGUvY3JlYXRlLW5vZGUnO1xuXG5leHBvcnQgY29uc3Qgc2V0QWJzdHJhY3RzQnlSZWZzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBhYnN0cmFjdFJlZnM6IEFic3RyYWN0UmVmcykgPT4ge1xuICAgIGFic3RyYWN0UmVmcy5mb3JFYWNoKChuZXdQcm9wZXJ0eSwgZWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBzdGFydCA9IGVsZW1lbnQuc3RhcnQhICsgbmV3UHJvcGVydHkuc3RhcnQ7XG4gICAgICAgIGNvbnN0IGVuZCA9IGVsZW1lbnQuZW5kISArIG5ld1Byb3BlcnR5LmVuZDtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQgYXMgTWluZEVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChzdGFydCA+IGVuZCkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBzdGFydCwgZW5kIH0sIHBhdGgpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0QWJzdHJhY3RCeVN0YW5kYXJkTGF5b3V0ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHJpZ2h0Tm9kZUNvdW50ID0gZWxlbWVudC5yaWdodE5vZGVDb3VudCE7XG4gICAgY29uc3QgYWJzdHJhY3QgPSBlbGVtZW50LmNoaWxkcmVuLmZpbmQoY2hpbGQgPT4ge1xuICAgICAgICByZXR1cm4gQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoY2hpbGQpICYmIGNoaWxkLmVuZCA+PSByaWdodE5vZGVDb3VudCAmJiBjaGlsZC5zdGFydCA8IHJpZ2h0Tm9kZUNvdW50O1xuICAgIH0pO1xuXG4gICAgaWYgKGFic3RyYWN0KSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBhYnN0cmFjdCk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBlbmQ6IHJpZ2h0Tm9kZUNvdW50IC0gMSB9LCBwYXRoKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0QWJzdHJhY3QgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGxldCBlbGVtZW50R3JvdXAgPSBnZXRGaXJzdExldmVsRWxlbWVudChlbGVtZW50cyBhcyBNaW5kRWxlbWVudFtdKTtcbiAgICBjb25zdCB7IHBhcmVudEVsZW1lbnRzLCBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzIH0gPSBkaXZpZGVFbGVtZW50QnlQYXJlbnQoZWxlbWVudEdyb3VwKTtcblxuICAgIGFic3RyYWN0SW5jbHVkZWRHcm91cHMuZm9yRWFjaCgoZ3JvdXAsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGdyb3VwUGFyZW50ID0gcGFyZW50RWxlbWVudHNbaW5kZXhdO1xuICAgICAgICBzZXRBYnN0cmFjdEJ5RWxlbWVudHMoYm9hcmQsIGdyb3VwUGFyZW50LCBncm91cCk7XG4gICAgfSk7XG59O1xuXG5jb25zdCBzZXRBYnN0cmFjdEJ5RWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGdyb3VwUGFyZW50OiBNaW5kRWxlbWVudCwgZ3JvdXA6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBpbmRleEFycmF5ID0gZ3JvdXAubWFwKGNoaWxkID0+IGdyb3VwUGFyZW50IS5jaGlsZHJlbi5pbmRleE9mKGNoaWxkKSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIGNvbnN0IHJpZ2h0Tm9kZUNvdW50ID0gZ3JvdXBQYXJlbnQ/LnJpZ2h0Tm9kZUNvdW50O1xuICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXhBcnJheVswXSxcbiAgICAgICAgZW5kID0gaW5kZXhBcnJheVtpbmRleEFycmF5Lmxlbmd0aCAtIDFdO1xuXG4gICAgaWYgKFxuICAgICAgICBpc1N0YW5kYXJkTGF5b3V0KE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudChncm91cFBhcmVudCkpICYmXG4gICAgICAgIHJpZ2h0Tm9kZUNvdW50ICYmXG4gICAgICAgIHN0YXJ0IDwgcmlnaHROb2RlQ291bnQgJiZcbiAgICAgICAgZW5kID49IHJpZ2h0Tm9kZUNvdW50XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuTGVuZ3RoID0gZ3JvdXBQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICBjb25zdCBwYXRoID0gWy4uLlBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGdyb3VwUGFyZW50KSwgY2hpbGRyZW5MZW5ndGhdO1xuICAgICAgICBjb25zdCBsZWZ0Q2hpbGRyZW4gPSBpbmRleEFycmF5LmZpbHRlcihpbmRleCA9PiBpbmRleCA+PSByaWdodE5vZGVDb3VudCk7XG4gICAgICAgIGNvbnN0IHJpZ2h0Q2hpbGRyZW4gPSBpbmRleEFycmF5LmZpbHRlcihpbmRleCA9PiBpbmRleCA8IHJpZ2h0Tm9kZUNvdW50KTtcbiAgICAgICAgaW5zZXJ0QWJzdHJhY3ROb2RlKGJvYXJkLCBwYXRoLCByaWdodENoaWxkcmVuWzBdLCByaWdodENoaWxkcmVuW3JpZ2h0Q2hpbGRyZW4ubGVuZ3RoIC0gMV0pO1xuICAgICAgICBpbnNlcnRBYnN0cmFjdE5vZGUoYm9hcmQsIFBhdGgubmV4dChwYXRoKSwgbGVmdENoaWxkcmVuWzBdLCBsZWZ0Q2hpbGRyZW5bbGVmdENoaWxkcmVuLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwYXRoID0gWy4uLlBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGdyb3VwUGFyZW50KSwgZ3JvdXBQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoXTtcbiAgICAgICAgaW5zZXJ0QWJzdHJhY3ROb2RlKGJvYXJkLCBwYXRoLCBzdGFydCwgZW5kKTtcbiAgICB9XG59O1xuXG5jb25zdCBpbnNlcnRBYnN0cmFjdE5vZGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBhdGg6IFBhdGgsIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbWluZEVsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgn5qaC6KaBJywgMjgsIDIwLCB7XG4gICAgICAgIHN0cm9rZUNvbG9yOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuc3Ryb2tlQ29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuYnJhbmNoV2lkdGgsXG4gICAgICAgIGJyYW5jaENvbG9yOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuYnJhbmNoQ29sb3IsXG4gICAgICAgIGJyYW5jaFdpZHRoOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuYnJhbmNoV2lkdGhcbiAgICB9KTtcblxuICAgIG1pbmRFbGVtZW50LnN0YXJ0ID0gc3RhcnQ7XG4gICAgbWluZEVsZW1lbnQuZW5kID0gZW5kO1xuXG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlKGJvYXJkLCBtaW5kRWxlbWVudCwgcGF0aCk7XG59O1xuIl19
@@ -0,0 +1,37 @@
1
+ import { PlaitBoard, Transforms } from '@plait/core';
2
+ export const addEmoji = (board, element, emojiItem) => {
3
+ const emojis = element.data.emojis || [];
4
+ const newEmojis = [...emojis];
5
+ newEmojis.push(emojiItem);
6
+ const newElement = {
7
+ data: { topic: element.data.topic, emojis: newEmojis }
8
+ };
9
+ const path = PlaitBoard.findPath(board, element);
10
+ Transforms.setNode(board, newElement, path);
11
+ };
12
+ export const removeEmoji = (board, element, emojiItem) => {
13
+ const emojis = element.data.emojis.filter(value => value !== emojiItem);
14
+ const newElement = {
15
+ data: { topic: element.data.topic }
16
+ };
17
+ if (emojis.length > 0) {
18
+ newElement.data.emojis = emojis;
19
+ }
20
+ const path = PlaitBoard.findPath(board, element);
21
+ Transforms.setNode(board, newElement, path);
22
+ };
23
+ export const replaceEmoji = (board, element, oldEmoji, newEmoji) => {
24
+ const newElement = {
25
+ data: { topic: element.data.topic }
26
+ };
27
+ const newEmojis = element.data.emojis.map(value => {
28
+ if (value === oldEmoji) {
29
+ return newEmoji;
30
+ }
31
+ return value;
32
+ });
33
+ newElement.data.emojis = newEmojis;
34
+ const path = PlaitBoard.findPath(board, element);
35
+ Transforms.setNode(board, newElement, path);
36
+ };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2Vtb2ppLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxTQUFvQixFQUFFLEVBQUU7SUFDdEYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3pDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sVUFBVSxHQUFHO1FBQ2YsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7S0FDMUMsQ0FBQztJQUNqQixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUErQixFQUFFLFNBQW9CLEVBQUUsRUFBRTtJQUNwRyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDeEUsTUFBTSxVQUFVLEdBQUc7UUFDZixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7S0FDdkIsQ0FBQztJQUNqQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztLQUNuQztJQUNELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQStCLEVBQUUsUUFBbUIsRUFBRSxRQUFtQixFQUFFLEVBQUU7SUFDekgsTUFBTSxVQUFVLEdBQUc7UUFDZixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7S0FDdkIsQ0FBQztJQUNqQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUMsSUFBSSxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ3BCLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDSCxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDbkMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBFbW9qaURhdGEsIEVtb2ppSXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcblxuZXhwb3J0IGNvbnN0IGFkZEVtb2ppID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCwgZW1vamlJdGVtOiBFbW9qaUl0ZW0pID0+IHtcbiAgICBjb25zdCBlbW9qaXMgPSBlbGVtZW50LmRhdGEuZW1vamlzIHx8IFtdO1xuICAgIGNvbnN0IG5ld0Vtb2ppcyA9IFsuLi5lbW9qaXNdO1xuICAgIG5ld0Vtb2ppcy5wdXNoKGVtb2ppSXRlbSk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHtcbiAgICAgICAgZGF0YTogeyB0b3BpYzogZWxlbWVudC5kYXRhLnRvcGljLCBlbW9qaXM6IG5ld0Vtb2ppcyB9XG4gICAgfSBhcyBNaW5kRWxlbWVudDtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVFbW9qaSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPiwgZW1vamlJdGVtOiBFbW9qaUl0ZW0pID0+IHtcbiAgICBjb25zdCBlbW9qaXMgPSBlbGVtZW50LmRhdGEuZW1vamlzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gZW1vamlJdGVtKTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IHRvcGljOiBlbGVtZW50LmRhdGEudG9waWMgfVxuICAgIH0gYXMgTWluZEVsZW1lbnQ7XG4gICAgaWYgKGVtb2ppcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuZGF0YS5lbW9qaXMgPSBlbW9qaXM7XG4gICAgfVxuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlcGxhY2VFbW9qaSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPiwgb2xkRW1vamk6IEVtb2ppSXRlbSwgbmV3RW1vamk6IEVtb2ppSXRlbSkgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7XG4gICAgICAgIGRhdGE6IHsgdG9waWM6IGVsZW1lbnQuZGF0YS50b3BpYyB9XG4gICAgfSBhcyBNaW5kRWxlbWVudDtcbiAgICBjb25zdCBuZXdFbW9qaXMgPSBlbGVtZW50LmRhdGEuZW1vamlzLm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gb2xkRW1vamkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdFbW9qaTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG4gICAgbmV3RWxlbWVudC5kYXRhLmVtb2ppcyA9IG5ld0Vtb2ppcztcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbn07XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { insertAbstract, setAbstractsByRefs, setAbstractByStandardLayout } from './abstract-node';
2
2
  import { setLayout } from './layout';
3
- import { addEmoji, removeEmoji, setTopic, setTopicSize, replaceEmoji } from './node';
3
+ import { setTopic, setTopicSize, removeElements, insertNodes, insertAbstractNodes } from './node';
4
+ import { addEmoji, removeEmoji, replaceEmoji } from './emoji';
4
5
  export const MindTransforms = {
5
6
  setLayout,
6
7
  setTopic,
@@ -10,6 +11,9 @@ export const MindTransforms = {
10
11
  replaceEmoji,
11
12
  insertAbstract,
12
13
  setAbstractsByRefs,
13
- setAbstractByStandardLayout
14
+ setAbstractByStandardLayout,
15
+ removeElements,
16
+ insertNodes,
17
+ insertAbstractNodes
14
18
  };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixTQUFTO0lBQ1QsUUFBUTtJQUNSLFlBQVk7SUFDWixRQUFRO0lBQ1IsV0FBVztJQUNYLFlBQVk7SUFDWixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLDJCQUEyQjtDQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5zZXJ0QWJzdHJhY3QsIHNldEFic3RyYWN0c0J5UmVmcywgc2V0QWJzdHJhY3RCeVN0YW5kYXJkTGF5b3V0IH0gZnJvbSAnLi9hYnN0cmFjdC1ub2RlJztcbmltcG9ydCB7IHNldExheW91dCB9IGZyb20gJy4vbGF5b3V0JztcbmltcG9ydCB7IGFkZEVtb2ppLCByZW1vdmVFbW9qaSwgc2V0VG9waWMsIHNldFRvcGljU2l6ZSwgcmVwbGFjZUVtb2ppIH0gZnJvbSAnLi9ub2RlJztcblxuZXhwb3J0IGNvbnN0IE1pbmRUcmFuc2Zvcm1zID0ge1xuICAgIHNldExheW91dCxcbiAgICBzZXRUb3BpYyxcbiAgICBzZXRUb3BpY1NpemUsXG4gICAgYWRkRW1vamksXG4gICAgcmVtb3ZlRW1vamksXG4gICAgcmVwbGFjZUVtb2ppLFxuICAgIGluc2VydEFic3RyYWN0LFxuICAgIHNldEFic3RyYWN0c0J5UmVmcyxcbiAgICBzZXRBYnN0cmFjdEJ5U3RhbmRhcmRMYXlvdXRcbn07XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixTQUFTO0lBQ1QsUUFBUTtJQUNSLFlBQVk7SUFDWixRQUFRO0lBQ1IsV0FBVztJQUNYLFlBQVk7SUFDWixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLDJCQUEyQjtJQUMzQixjQUFjO0lBQ2QsV0FBVztJQUNYLG1CQUFtQjtDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5zZXJ0QWJzdHJhY3QsIHNldEFic3RyYWN0c0J5UmVmcywgc2V0QWJzdHJhY3RCeVN0YW5kYXJkTGF5b3V0IH0gZnJvbSAnLi9hYnN0cmFjdC1ub2RlJztcbmltcG9ydCB7IHNldExheW91dCB9IGZyb20gJy4vbGF5b3V0JztcbmltcG9ydCB7IHNldFRvcGljLCBzZXRUb3BpY1NpemUsIHJlbW92ZUVsZW1lbnRzLCBpbnNlcnROb2RlcywgaW5zZXJ0QWJzdHJhY3ROb2RlcyB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgeyBhZGRFbW9qaSwgcmVtb3ZlRW1vamksIHJlcGxhY2VFbW9qaSB9IGZyb20gJy4vZW1vamknO1xuXG5leHBvcnQgY29uc3QgTWluZFRyYW5zZm9ybXMgPSB7XG4gICAgc2V0TGF5b3V0LFxuICAgIHNldFRvcGljLFxuICAgIHNldFRvcGljU2l6ZSxcbiAgICBhZGRFbW9qaSxcbiAgICByZW1vdmVFbW9qaSxcbiAgICByZXBsYWNlRW1vamksXG4gICAgaW5zZXJ0QWJzdHJhY3QsXG4gICAgc2V0QWJzdHJhY3RzQnlSZWZzLFxuICAgIHNldEFic3RyYWN0QnlTdGFuZGFyZExheW91dCxcbiAgICByZW1vdmVFbGVtZW50cyxcbiAgICBpbnNlcnROb2RlcyxcbiAgICBpbnNlcnRBYnN0cmFjdE5vZGVzXG59O1xuIl19
@@ -1,6 +1,9 @@
1
+ import { Path } from 'slate';
1
2
  import { MindElement } from '../interfaces/element';
2
3
  import { NODE_MIN_WIDTH } from '../constants/node-rule';
3
- import { PlaitBoard, Transforms } from '@plait/core';
4
+ import { PlaitBoard, PlaitNode, Transforms } from '@plait/core';
5
+ import { changeRightNodeCount, getFirstLevelElement, isInRightBranchOfStandardLayout } from '../utils/mind';
6
+ import { getRelativeStartEndByAbstractRef } from '../utils/abstract/common';
4
7
  export const setTopic = (board, element, topic, width, height) => {
5
8
  const newElement = {
6
9
  data: { topic },
@@ -21,39 +24,43 @@ export const setTopicSize = (board, element, width, height) => {
21
24
  const path = PlaitBoard.findPath(board, element);
22
25
  Transforms.setNode(board, newElement, path);
23
26
  };
24
- export const addEmoji = (board, element, emojiItem) => {
25
- const emojis = element.data.emojis || [];
26
- const newEmojis = [...emojis];
27
- newEmojis.push(emojiItem);
28
- const newElement = {
29
- data: { topic: element.data.topic, emojis: newEmojis }
30
- };
31
- const path = PlaitBoard.findPath(board, element);
32
- Transforms.setNode(board, newElement, path);
33
- };
34
- export const removeEmoji = (board, element, emojiItem) => {
35
- const emojis = element.data.emojis.filter(value => value !== emojiItem);
36
- const newElement = {
37
- data: { topic: element.data.topic }
38
- };
39
- if (emojis.length > 0) {
40
- newElement.data.emojis = emojis;
41
- }
42
- const path = PlaitBoard.findPath(board, element);
43
- Transforms.setNode(board, newElement, path);
27
+ export const removeElements = (board, elements) => {
28
+ const deletableElements = getFirstLevelElement(elements).reverse();
29
+ //翻转,从下到上修改,防止找不到 path
30
+ deletableElements
31
+ .map(element => {
32
+ const path = PlaitBoard.findPath(board, element);
33
+ return () => {
34
+ if (isInRightBranchOfStandardLayout(element)) {
35
+ changeRightNodeCount(board, path.slice(0, 1), -1);
36
+ }
37
+ Transforms.removeNode(board, path);
38
+ };
39
+ })
40
+ .forEach(action => {
41
+ action();
42
+ });
44
43
  };
45
- export const replaceEmoji = (board, element, oldEmoji, newEmoji) => {
46
- const newElement = {
47
- data: { topic: element.data.topic }
48
- };
49
- const newEmojis = element.data.emojis.map(value => {
50
- if (value === oldEmoji) {
51
- return newEmoji;
44
+ export const insertNodes = (board, elements, path) => {
45
+ const pathRef = board.pathRef(path);
46
+ elements.forEach(element => {
47
+ if (pathRef.current) {
48
+ Transforms.insertNode(board, element, pathRef.current);
52
49
  }
53
- return value;
54
50
  });
55
- newElement.data.emojis = newEmojis;
56
- const path = PlaitBoard.findPath(board, element);
57
- Transforms.setNode(board, newElement, path);
51
+ pathRef.unref();
52
+ };
53
+ export const insertAbstractNodes = (board, validAbstractRefs, elements, path) => {
54
+ const parent = PlaitNode.get(board, Path.parent(path));
55
+ const abstractPath = [...Path.parent(path), parent.children?.length];
56
+ const abstracts = validAbstractRefs.map(refs => {
57
+ const { start, end } = getRelativeStartEndByAbstractRef(refs, elements);
58
+ return {
59
+ ...refs.abstract,
60
+ start: start + path[path.length - 1],
61
+ end: end + path[path.length - 1]
62
+ };
63
+ });
64
+ insertNodes(board, abstracts, abstractPath);
58
65
  };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3RyYW5zZm9ybXMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxLQUFjLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFO0lBQy9HLE1BQU0sVUFBVSxHQUFHO1FBQ2YsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQ2YsS0FBSyxFQUFFLEtBQUssR0FBRyxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNsRyxNQUFNLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtLQUN4QixDQUFDO0lBQ2pCLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUNoRDtJQUNELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxL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VUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBOT0RFX01JTl9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXJ1bGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgVHJhbnNmb3JtcyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEVtb2ppRGF0YSwgRW1vamlJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuXG5leHBvcnQgY29uc3Qgc2V0VG9waWMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCB0b3BpYzogRWxlbWVudCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IHRvcGljIH0sXG4gICAgICAgIHdpZHRoOiB3aWR0aCA8IE5PREVfTUlOX1dJRFRIICogYm9hcmQudmlld3BvcnQuem9vbSA/IE5PREVfTUlOX1dJRFRIIDogd2lkdGggLyBib2FyZC52aWV3cG9ydC56b29tLFxuICAgICAgICBoZWlnaHQ6IGhlaWdodCAvIGJvYXJkLnZpZXdwb3J0Lnpvb21cbiAgICB9IGFzIE1pbmRFbGVtZW50O1xuICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgbmV3RWxlbWVudC5kYXRhLmVtb2ppcyA9IGVsZW1lbnQuZGF0YS5lbW9qaXM7XG4gICAgfVxuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFRvcGljU2l6ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHtcbiAgICAgICAgd2lkdGg6IHdpZHRoIDwgTk9ERV9NSU5fV0lEVEggKiBib2FyZC52aWV3cG9ydC56b29tID8gTk9ERV9NSU5fV0lEVEggOiB3aWR0aCAvIGJvYXJkLnZpZXdwb3J0Lnpvb20sXG4gICAgICAgIGhlaWdodDogaGVpZ2h0IC8gYm9hcmQudmlld3BvcnQuem9vbVxuICAgIH07XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgcGF0aCk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkRW1vamkgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBlbW9qaUl0ZW06IEVtb2ppSXRlbSkgPT4ge1xuICAgIGNvbnN0IGVtb2ppcyA9IGVsZW1lbnQuZGF0YS5lbW9qaXMgfHwgW107XG4gICAgY29uc3QgbmV3RW1vamlzID0gWy4uLmVtb2ppc107XG4gICAgbmV3RW1vamlzLnB1c2goZW1vamlJdGVtKTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IHRvcGljOiBlbGVtZW50LmRhdGEudG9waWMsIGVtb2ppczogbmV3RW1vamlzIH1cbiAgICB9IGFzIE1pbmRFbGVtZW50O1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUVtb2ppID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+LCBlbW9qaUl0ZW06IEVtb2ppSXRlbSkgPT4ge1xuICAgIGNvbnN0IGVtb2ppcyA9IGVsZW1lbnQuZGF0YS5lbW9qaXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9PSBlbW9qaUl0ZW0pO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7XG4gICAgICAgIGRhdGE6IHsgdG9waWM6IGVsZW1lbnQuZGF0YS50b3BpYyB9XG4gICAgfSBhcyBNaW5kRWxlbWVudDtcbiAgICBpZiAoZW1vamlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbmV3RWxlbWVudC5kYXRhLmVtb2ppcyA9IGVtb2ppcztcbiAgICB9XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgcGF0aCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVwbGFjZUVtb2ppID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+LCBvbGRFbW9qaTogRW1vamlJdGVtLCBuZXdFbW9qaTogRW1vamlJdGVtKSA9PiB7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHtcbiAgICAgICAgZGF0YTogeyB0b3BpYzogZWxlbWVudC5kYXRhLnRvcGljIH1cbiAgICB9IGFzIE1pbmRFbGVtZW50O1xuICAgIGNvbnN0IG5ld0Vtb2ppcyA9IGVsZW1lbnQuZGF0YS5lbW9qaXMubWFwKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBvbGRFbW9qaSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ld0Vtb2ppO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbiAgICBuZXdFbGVtZW50LmRhdGEuZW1vamlzID0gbmV3RW1vamlzO1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3RyYW5zZm9ybXMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQWUsZ0NBQWdDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsS0FBYyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUMvRyxNQUFNLFVBQVUsR0FBRztRQUNmLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRTtRQUNmLEtBQUssRUFBRSxLQUFLLEdBQUcsY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7UUFDbEcsTUFBTSxFQUFFLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7S0FDeEIsQ0FBQztJQUNqQixJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDaEMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDaEQ7SUFDRCxNQUFNLElBQUks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SUFBSSxDQUFDLEVBQUU7UUFDM0MsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxnQ0FBZ0MsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEUsT0FBTztZQUNILEdBQUcsSUFBSSxDQUFDLFFBQVE7WUFDaEIsS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDcEMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDbkMsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0lBRUgsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE5PREVfTUlOX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtcnVsZSc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdE5vZGUsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBjaGFuZ2VSaWdodE5vZGVDb3VudCwgZ2V0Rmlyc3RMZXZlbEVsZW1lbnQsIGlzSW5SaWdodEJyYW5jaE9mU3RhbmRhcmRMYXlvdXQgfSBmcm9tICcuLi91dGlscy9taW5kJztcbmltcG9ydCB7IEFic3RyYWN0UmVmLCBnZXRSZWxhdGl2ZVN0YXJ0RW5kQnlBYnN0cmFjdFJlZiB9IGZyb20gJy4uL3V0aWxzL2Fic3RyYWN0L2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBzZXRUb3BpYyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQsIHRvcGljOiBFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7XG4gICAgICAgIGRhdGE6IHsgdG9waWMgfSxcbiAgICAgICAgd2lkdGg6IHdpZHRoIDwgTk9ERV9NSU5fV0lEVEggKiBib2FyZC52aWV3cG9ydC56b29tID8gTk9ERV9NSU5fV0lEVEggOiB3aWR0aCAvIGJvYXJkLnZpZXdwb3J0Lnpvb20sXG4gICAgICAgIGhlaWdodDogaGVpZ2h0IC8gYm9hcmQudmlld3BvcnQuem9vbVxuICAgIH0gYXMgTWluZEVsZW1lbnQ7XG4gICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICBuZXdFbGVtZW50LmRhdGEuZW1vamlzID0gZWxlbWVudC5kYXRhLmVtb2ppcztcbiAgICB9XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgcGF0aCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0VG9waWNTaXplID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICB3aWR0aDogd2lkdGggPCBOT0RFX01JTl9XSURUSCAqIGJvYXJkLnZpZXdwb3J0Lnpvb20gPyBOT0RFX01JTl9XSURUSCA6IHdpZHRoIC8gYm9hcmQudmlld3BvcnQuem9vbSxcbiAgICAgICAgaGVpZ2h0OiBoZWlnaHQgLyBib2FyZC52aWV3cG9ydC56b29tXG4gICAgfTtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVFbGVtZW50cyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBkZWxldGFibGVFbGVtZW50cyA9IGdldEZpcnN0TGV2ZWxFbGVtZW50KGVsZW1lbnRzKS5yZXZlcnNlKCk7XG5cbiAgICAvL+e/u+i9rO+8jOS7juS4i+WIsOS4iuS/ruaUue+8jOmYsuatouaJvuS4jeWIsCBwYXRoXG4gICAgZGVsZXRhYmxlRWxlbWVudHNcbiAgICAgICAgLm1hcChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzSW5SaWdodEJyYW5jaE9mU3RhbmRhcmRMYXlvdXQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlUmlnaHROb2RlQ291bnQoYm9hcmQsIHBhdGguc2xpY2UoMCwgMSksIC0xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICAgIC5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICAgICAgICBhY3Rpb24oKTtcbiAgICAgICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0Tm9kZXMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdLCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgY29uc3QgcGF0aFJlZiA9IGJvYXJkLnBhdGhSZWYocGF0aCk7XG4gICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKHBhdGhSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlKGJvYXJkLCBlbGVtZW50LCBwYXRoUmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcGF0aFJlZi51bnJlZigpO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydEFic3RyYWN0Tm9kZXMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHZhbGlkQWJzdHJhY3RSZWZzOiBBYnN0cmFjdFJlZltdLCBlbGVtZW50czogTWluZEVsZW1lbnRbXSwgcGF0aDogUGF0aCkgPT4ge1xuICAgIGNvbnN0IHBhcmVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIFBhdGgucGFyZW50KHBhdGgpKTtcbiAgICBjb25zdCBhYnN0cmFjdFBhdGggPSBbLi4uUGF0aC5wYXJlbnQocGF0aCksIHBhcmVudC5jaGlsZHJlbj8ubGVuZ3RoIV07XG4gICAgY29uc3QgYWJzdHJhY3RzID0gdmFsaWRBYnN0cmFjdFJlZnMubWFwKHJlZnMgPT4ge1xuICAgICAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGdldFJlbGF0aXZlU3RhcnRFbmRCeUFic3RyYWN0UmVmKHJlZnMsIGVsZW1lbnRzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlZnMuYWJzdHJhY3QsXG4gICAgICAgICAgICBzdGFydDogc3RhcnQgKyBwYXRoW3BhdGgubGVuZ3RoIC0gMV0sXG4gICAgICAgICAgICBlbmQ6IGVuZCArIHBhdGhbcGF0aC5sZW5ndGggLSAxXVxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgaW5zZXJ0Tm9kZXMoYm9hcmQsIGFic3RyYWN0cywgYWJzdHJhY3RQYXRoKTtcbn07XG4iXX0=