@plait/mind 0.77.3 → 0.78.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.
Files changed (96) hide show
  1. package/fesm2022/plait-mind.mjs +2 -2
  2. package/fesm2022/plait-mind.mjs.map +1 -1
  3. package/package.json +1 -3
  4. package/esm2022/constants/abstract-node.mjs +0 -5
  5. package/esm2022/constants/default.mjs +0 -17
  6. package/esm2022/constants/index.mjs +0 -5
  7. package/esm2022/constants/node-style.mjs +0 -19
  8. package/esm2022/constants/node-topic-style.mjs +0 -7
  9. package/esm2022/constants/theme.mjs +0 -73
  10. package/esm2022/emoji/emoji-base.component.mjs +0 -6
  11. package/esm2022/emoji/index.mjs +0 -3
  12. package/esm2022/emoji/with-emoji.mjs +0 -8
  13. package/esm2022/generators/node-active.generator.mjs +0 -46
  14. package/esm2022/generators/node-collapse.generator.mjs +0 -108
  15. package/esm2022/generators/node-emojis.generator.mjs +0 -63
  16. package/esm2022/generators/node-plus.generator.mjs +0 -100
  17. package/esm2022/generators/node-shape.generator.mjs +0 -22
  18. package/esm2022/interfaces/element-data.mjs +0 -2
  19. package/esm2022/interfaces/element.mjs +0 -103
  20. package/esm2022/interfaces/index.mjs +0 -8
  21. package/esm2022/interfaces/layout.mjs +0 -19
  22. package/esm2022/interfaces/node.mjs +0 -14
  23. package/esm2022/interfaces/options.mjs +0 -2
  24. package/esm2022/interfaces/pointer.mjs +0 -5
  25. package/esm2022/interfaces/theme-color.mjs +0 -57
  26. package/esm2022/interfaces/types.mjs +0 -13
  27. package/esm2022/mind-node.component.mjs +0 -193
  28. package/esm2022/mind.component.mjs +0 -34
  29. package/esm2022/plait-mind.mjs +0 -5
  30. package/esm2022/plugins/with-abstract-resize.board.mjs +0 -12
  31. package/esm2022/plugins/with-abstract-resize.mjs +0 -112
  32. package/esm2022/plugins/with-mind-create.mjs +0 -104
  33. package/esm2022/plugins/with-mind-extend.mjs +0 -7
  34. package/esm2022/plugins/with-mind-fragment.mjs +0 -101
  35. package/esm2022/plugins/with-mind-hotkey.mjs +0 -62
  36. package/esm2022/plugins/with-mind.board.mjs +0 -2
  37. package/esm2022/plugins/with-mind.mjs +0 -148
  38. package/esm2022/plugins/with-node-dnd.mjs +0 -176
  39. package/esm2022/plugins/with-node-hover-hit-test.mjs +0 -23
  40. package/esm2022/plugins/with-node-image-resize.mjs +0 -46
  41. package/esm2022/plugins/with-node-image.mjs +0 -113
  42. package/esm2022/plugins/with-node-resize.mjs +0 -69
  43. package/esm2022/public-api.mjs +0 -16
  44. package/esm2022/queries/get-available-sublayouts-by-element.mjs +0 -23
  45. package/esm2022/queries/get-branch-layouts.mjs +0 -18
  46. package/esm2022/queries/get-correct-layout-by-element.mjs +0 -48
  47. package/esm2022/queries/get-layout-by-element.mjs +0 -18
  48. package/esm2022/queries/index.mjs +0 -11
  49. package/esm2022/transforms/abstract-node.mjs +0 -73
  50. package/esm2022/transforms/emoji.mjs +0 -41
  51. package/esm2022/transforms/image.mjs +0 -31
  52. package/esm2022/transforms/index.mjs +0 -30
  53. package/esm2022/transforms/layout.mjs +0 -19
  54. package/esm2022/transforms/node.mjs +0 -99
  55. package/esm2022/transforms/property.mjs +0 -34
  56. package/esm2022/utils/abstract/common.mjs +0 -170
  57. package/esm2022/utils/abstract/resize.mjs +0 -194
  58. package/esm2022/utils/clipboard.mjs +0 -108
  59. package/esm2022/utils/common.mjs +0 -26
  60. package/esm2022/utils/dnd/common.mjs +0 -59
  61. package/esm2022/utils/dnd/detector.mjs +0 -176
  62. package/esm2022/utils/draw/abstract-outline.mjs +0 -118
  63. package/esm2022/utils/draw/node-dnd.mjs +0 -164
  64. package/esm2022/utils/draw/node-link/abstract-link.mjs +0 -60
  65. package/esm2022/utils/draw/node-link/draw-link.mjs +0 -9
  66. package/esm2022/utils/draw/node-link/indented-link.mjs +0 -46
  67. package/esm2022/utils/draw/node-link/logic-link.mjs +0 -76
  68. package/esm2022/utils/draw/node-shape.mjs +0 -26
  69. package/esm2022/utils/index.mjs +0 -17
  70. package/esm2022/utils/layout.mjs +0 -105
  71. package/esm2022/utils/mind.mjs +0 -98
  72. package/esm2022/utils/node/adjust-node.mjs +0 -36
  73. package/esm2022/utils/node/common.mjs +0 -15
  74. package/esm2022/utils/node/create-node.mjs +0 -46
  75. package/esm2022/utils/node/dynamic-width.mjs +0 -14
  76. package/esm2022/utils/node/image.mjs +0 -15
  77. package/esm2022/utils/node/index.mjs +0 -6
  78. package/esm2022/utils/node/right-node-count.mjs +0 -45
  79. package/esm2022/utils/node-hover/extend.mjs +0 -50
  80. package/esm2022/utils/node-style/branch.mjs +0 -63
  81. package/esm2022/utils/node-style/common.mjs +0 -4
  82. package/esm2022/utils/node-style/index.mjs +0 -4
  83. package/esm2022/utils/node-style/shape.mjs +0 -37
  84. package/esm2022/utils/normalize.mjs +0 -40
  85. package/esm2022/utils/path.mjs +0 -12
  86. package/esm2022/utils/point-placement.mjs +0 -119
  87. package/esm2022/utils/position/emoji.mjs +0 -31
  88. package/esm2022/utils/position/image.mjs +0 -36
  89. package/esm2022/utils/position/index.mjs +0 -5
  90. package/esm2022/utils/position/node.mjs +0 -36
  91. package/esm2022/utils/position/topic.mjs +0 -16
  92. package/esm2022/utils/space/emoji.mjs +0 -20
  93. package/esm2022/utils/space/index.mjs +0 -4
  94. package/esm2022/utils/space/layout-options.mjs +0 -69
  95. package/esm2022/utils/space/node-space.mjs +0 -134
  96. package/esm2022/utils/weak-maps.mjs +0 -2
@@ -1,113 +0,0 @@
1
- import { PlaitBoard, isMainPointer, hotkeys, PlaitPointerType, addSelectedElement, getSelectedElements, getHitElementByPoint, temporaryDisableSelection, WritableClipboardType, toHostPoint, toViewBoxPoint, createClipboardContext, isContextmenu, PlaitElement } from '@plait/core';
2
- import { MindElement } from '../interfaces';
3
- import { addImageFocus, removeImageFocus } from '../utils/node/image';
4
- import { isHitImage } from '../utils';
5
- import { MindTransforms } from '../transforms';
6
- import { acceptImageTypes, buildImage, getElementOfFocusedImage, ImageGenerator } from '@plait/common';
7
- import { DEFAULT_MIND_IMAGE_WIDTH } from '../constants';
8
- export const withNodeImage = (board) => {
9
- const { keyDown, pointerUp, globalPointerUp, buildFragment, insertFragment, deleteFragment, afterChange } = board;
10
- board.pointerUp = (event) => {
11
- const elementOfFocusedImage = getElementOfFocusedImage(board);
12
- if (elementOfFocusedImage &&
13
- MindElement.isMindElement(board, elementOfFocusedImage) &&
14
- !isContextmenu(event) &&
15
- (PlaitBoard.isReadonly(board) || !isMainPointer(event) || !PlaitBoard.isPointer(board, PlaitPointerType.selection))) {
16
- removeImageFocus(board, elementOfFocusedImage);
17
- pointerUp(event);
18
- return;
19
- }
20
- if (PlaitBoard.isReadonly(board)) {
21
- pointerUp(event);
22
- return;
23
- }
24
- const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
25
- const hitElement = getHitElementByPoint(board, point);
26
- const isHitImageResult = hitElement &&
27
- MindElement.isMindElement(board, hitElement) &&
28
- MindElement.hasImage(hitElement) &&
29
- isHitImage(board, hitElement, point);
30
- if (isHitImageResult && elementOfFocusedImage && hitElement === elementOfFocusedImage) {
31
- temporaryDisableSelection(board);
32
- pointerUp(event);
33
- return;
34
- }
35
- if (elementOfFocusedImage && MindElement.isMindElement(board, elementOfFocusedImage)) {
36
- removeImageFocus(board, elementOfFocusedImage);
37
- }
38
- if (isHitImageResult && hitElement) {
39
- temporaryDisableSelection(board);
40
- addImageFocus(board, hitElement);
41
- }
42
- pointerUp(event);
43
- };
44
- board.keyDown = (event) => {
45
- const selectedImageElement = getElementOfFocusedImage(board);
46
- if (!PlaitBoard.isReadonly(board) && selectedImageElement && (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event))) {
47
- addSelectedElement(board, selectedImageElement);
48
- MindTransforms.removeImage(board, selectedImageElement);
49
- return;
50
- }
51
- keyDown(event);
52
- };
53
- board.globalPointerUp = (event) => {
54
- if (PlaitBoard.isFocus(board)) {
55
- const isInBoard = event.target instanceof Node && PlaitBoard.getBoardContainer(board).contains(event.target);
56
- const selectedImageElement = getElementOfFocusedImage(board);
57
- // Clear image selection when mouse board outside area
58
- if (selectedImageElement && MindElement.isMindElement(board, selectedImageElement) && !isInBoard) {
59
- removeImageFocus(board, selectedImageElement);
60
- }
61
- }
62
- globalPointerUp(event);
63
- };
64
- board.buildFragment = (clipboardContext, rectangle, operationType, originData) => {
65
- const selectedImageElement = getElementOfFocusedImage(board);
66
- if (selectedImageElement) {
67
- clipboardContext = createClipboardContext(WritableClipboardType.medias, [selectedImageElement.data.image], '');
68
- }
69
- return buildFragment(clipboardContext, rectangle, operationType, originData);
70
- };
71
- board.deleteFragment = (elements) => {
72
- const selectedImageElement = getElementOfFocusedImage(board);
73
- if (selectedImageElement) {
74
- MindTransforms.removeImage(board, selectedImageElement);
75
- }
76
- deleteFragment(elements);
77
- };
78
- board.insertFragment = (clipboardData, targetPoint, operationType) => {
79
- const selectedElements = getSelectedElements(board);
80
- const isSelectedImage = !!getElementOfFocusedImage(board);
81
- const isSingleSelection = selectedElements.length === 1 && MindElement.isMindElement(board, selectedElements[0]);
82
- if (isSelectedImage || isSingleSelection) {
83
- if (clipboardData?.files?.length) {
84
- const acceptImageArray = acceptImageTypes.map((type) => 'image/' + type);
85
- const selectedElement = (selectedElements[0] || getElementOfFocusedImage(board));
86
- if (acceptImageArray.includes(clipboardData.files[0].type)) {
87
- const imageFile = clipboardData.files[0];
88
- buildImage(board, imageFile, DEFAULT_MIND_IMAGE_WIDTH, (imageItem) => {
89
- MindTransforms.setImage(board, selectedElement, imageItem);
90
- });
91
- return;
92
- }
93
- }
94
- if (clipboardData?.medias?.length) {
95
- const selectedElement = (selectedElements[0] || getElementOfFocusedImage(board));
96
- MindTransforms.setImage(board, selectedElement, clipboardData.medias[0]);
97
- return;
98
- }
99
- }
100
- insertFragment(clipboardData, targetPoint, operationType);
101
- };
102
- board.afterChange = () => {
103
- afterChange();
104
- const selectedImageElement = getElementOfFocusedImage(board);
105
- if (selectedImageElement && MindElement.isMindElement(board, selectedImageElement)) {
106
- const commonElementRef = PlaitElement.getElementRef(selectedImageElement);
107
- const imageGenerator = commonElementRef.getGenerator(ImageGenerator.key);
108
- imageGenerator.setFocus(selectedImageElement, true);
109
- }
110
- };
111
- return board;
112
- };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW5vZGUtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixhQUFhLEVBRWIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbEIsbUJBQW1CLEVBRW5CLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxjQUFjLEVBRWQsc0JBQXNCLEVBRXRCLGFBQWEsRUFDYixZQUFZLEVBRWYsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQy9DLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFbEgsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN0QyxNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQ0ks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QUNELElBQUksYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztnQkFDaEcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekUsT0FBTztZQUNYLENBQUM7UUFDTCxDQUFDO1FBQ0QsY0FBYyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLFdBQVcsR0FBRyxHQUFHLEVBQUU7UUFDckIsV0FBVyxFQUFFLENBQUM7UUFDZCxNQUFNLG9CQUFvQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksb0JBQW9CLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBQ2pGLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBd0Isb0JBQW9CLENBQUMsQ0FBQztZQUNqRyxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQWlCLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RixjQUFjLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBob3RrZXlzLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50LFxuICAgIFBvaW50LFxuICAgIGdldFNlbGVjdGVkRWxlbWVudHMsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldEhpdEVsZW1lbnRCeVBvaW50LFxuICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24sXG4gICAgV3JpdGFibGVDbGlwYm9hcmRUeXBlLFxuICAgIHRvSG9zdFBvaW50LFxuICAgIHRvVmlld0JveFBvaW50LFxuICAgIFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCxcbiAgICBjcmVhdGVDbGlwYm9hcmRDb250ZXh0LFxuICAgIENsaXBib2FyZERhdGEsXG4gICAgaXNDb250ZXh0bWVudSxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJbWFnZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQtZGF0YSc7XG5pbXBvcnQgeyBhZGRJbWFnZUZvY3VzLCByZW1vdmVJbWFnZUZvY3VzIH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9pbWFnZSc7XG5pbXBvcnQgeyBpc0hpdEltYWdlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTWluZFRyYW5zZm9ybXMgfSBmcm9tICcuLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IGFjY2VwdEltYWdlVHlwZXMsIGJ1aWxkSW1hZ2UsIGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZSwgSW1hZ2VHZW5lcmF0b3IsIFBsYWl0Q29tbW9uRWxlbWVudFJlZiB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgREVGQVVMVF9NSU5EX0lNQUdFX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHdpdGhOb2RlSW1hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCB7IGtleURvd24sIHBvaW50ZXJVcCwgZ2xvYmFsUG9pbnRlclVwLCBidWlsZEZyYWdtZW50LCBpbnNlcnRGcmFnbWVudCwgZGVsZXRlRnJhZ21lbnQsIGFmdGVyQ2hhbmdlIH0gPSBib2FyZDtcblxuICAgIGJvYXJkLnBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRPZkZvY3VzZWRJbWFnZSA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsZW1lbnRPZkZvY3VzZWRJbWFnZSAmJlxuICAgICAgICAgICAgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlKSAmJlxuICAgICAgICAgICAgIWlzQ29udGV4dG1lbnUoZXZlbnQpICYmXG4gICAgICAgICAgICAoUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSB8fCAhaXNNYWluUG9pbnRlcihldmVudCkgfHwgIVBsYWl0Qm9hcmQuaXNQb2ludGVyKGJvYXJkLCBQbGFpdFBvaW50ZXJUeXBlLnNlbGVjdGlvbikpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmVtb3ZlSW1hZ2VGb2N1cyhib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlIGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICAgICAgcG9pbnRlclVwKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSkge1xuICAgICAgICAgICAgcG9pbnRlclVwKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50ID0gZ2V0SGl0RWxlbWVudEJ5UG9pbnQoYm9hcmQsIHBvaW50KTtcbiAgICAgICAgY29uc3QgaXNIaXRJbWFnZVJlc3VsdCA9XG4gICAgICAgICAgICBoaXRFbGVtZW50ICYmXG4gICAgICAgICAgICBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBoaXRFbGVtZW50KSAmJlxuICAgICAgICAgICAgTWluZEVsZW1lbnQuaGFzSW1hZ2UoaGl0RWxlbWVudCkgJiZcbiAgICAgICAgICAgIGlzSGl0SW1hZ2UoYm9hcmQsIGhpdEVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPiwgcG9pbnQpO1xuICAgICAgICBpZiAoaXNIaXRJbWFnZVJlc3VsdCAmJiBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgJiYgaGl0RWxlbWVudCA9PT0gZWxlbWVudE9mRm9jdXNlZEltYWdlKSB7XG4gICAgICAgICAgICB0ZW1wb3JhcnlEaXNhYmxlU2VsZWN0aW9uKGJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKTtcbiAgICAgICAgICAgIHBvaW50ZXJVcChldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnRPZkZvY3VzZWRJbWFnZSAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UpKSB7XG4gICAgICAgICAgICByZW1vdmVJbWFnZUZvY3VzKGJvYXJkLCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzSGl0SW1hZ2VSZXN1bHQgJiYgaGl0RWxlbWVudCkge1xuICAgICAgICAgICAgdGVtcG9yYXJ5RGlzYWJsZVNlbGVjdGlvbihib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCk7XG4gICAgICAgICAgICBhZGRJbWFnZUZvY3VzKGJvYXJkLCBoaXRFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgJiYgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgJiYgKGhvdGtleXMuaXNEZWxldGVCYWNrd2FyZChldmVudCkgfHwgaG90a2V5cy5pc0RlbGV0ZUZvcndhcmQoZXZlbnQpKSkge1xuICAgICAgICAgICAgYWRkU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCk7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5yZW1vdmVJbWFnZShib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAga2V5RG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdEJvYXJkLmlzRm9jdXMoYm9hcmQpKSB7XG4gICAgICAgICAgICBjb25zdCBpc0luQm9hcmQgPSBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBOb2RlICYmIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEltYWdlRWxlbWVudCA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgICAgICAvLyBDbGVhciBpbWFnZSBzZWxlY3Rpb24gd2hlbiBtb3VzZSBib2FyZCBvdXRzaWRlIGFyZWFcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEltYWdlRWxlbWVudCAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCkgJiYgIWlzSW5Cb2FyZCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUltYWdlRm9jdXMoYm9hcmQsIHNlbGVjdGVkSW1hZ2VFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmJ1aWxkRnJhZ21lbnQgPSAoXG4gICAgICAgIGNsaXBib2FyZENvbnRleHQ6IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCB8IG51bGwsXG4gICAgICAgIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50IHwgbnVsbCxcbiAgICAgICAgb3BlcmF0aW9uVHlwZTogV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlLFxuICAgICAgICBvcmlnaW5EYXRhPzogUGxhaXRFbGVtZW50W11cbiAgICApID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpIGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT47XG4gICAgICAgIGlmIChzZWxlY3RlZEltYWdlRWxlbWVudCkge1xuICAgICAgICAgICAgY2xpcGJvYXJkQ29udGV4dCA9IGNyZWF0ZUNsaXBib2FyZENvbnRleHQoV3JpdGFibGVDbGlwYm9hcmRUeXBlLm1lZGlhcywgW3NlbGVjdGVkSW1hZ2VFbGVtZW50LmRhdGEuaW1hZ2VdLCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1aWxkRnJhZ21lbnQoY2xpcGJvYXJkQ29udGV4dCwgcmVjdGFuZ2xlLCBvcGVyYXRpb25UeXBlLCBvcmlnaW5EYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZGVsZXRlRnJhZ21lbnQgPSAoZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSW1hZ2VFbGVtZW50ID0gZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5yZW1vdmVJbWFnZShib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlRnJhZ21lbnQoZWxlbWVudHMpO1xuICAgIH07XG5cbiAgICBib2FyZC5pbnNlcnRGcmFnbWVudCA9IChjbGlwYm9hcmREYXRhOiBDbGlwYm9hcmREYXRhIHwgbnVsbCwgdGFyZ2V0UG9pbnQ6IFBvaW50LCBvcGVyYXRpb25UeXBlPzogV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZEltYWdlID0gISFnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICBjb25zdCBpc1NpbmdsZVNlbGVjdGlvbiA9IHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmIE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIHNlbGVjdGVkRWxlbWVudHNbMF0pO1xuICAgICAgICBpZiAoaXNTZWxlY3RlZEltYWdlIHx8IGlzU2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoY2xpcGJvYXJkRGF0YT8uZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjY2VwdEltYWdlQXJyYXkgPSBhY2NlcHRJbWFnZVR5cGVzLm1hcCgodHlwZSkgPT4gJ2ltYWdlLycgKyB0eXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSAoc2VsZWN0ZWRFbGVtZW50c1swXSB8fCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoYWNjZXB0SW1hZ2VBcnJheS5pbmNsdWRlcyhjbGlwYm9hcmREYXRhLmZpbGVzWzBdLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlRmlsZSA9IGNsaXBib2FyZERhdGEuZmlsZXNbMF07XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkSW1hZ2UoYm9hcmQsIGltYWdlRmlsZSwgREVGQVVMVF9NSU5EX0lNQUdFX1dJRFRILCAoaW1hZ2VJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRJbWFnZShib2FyZCwgc2VsZWN0ZWRFbGVtZW50LCBpbWFnZUl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy5tZWRpYXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IChzZWxlY3RlZEVsZW1lbnRzWzBdIHx8IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCkpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldEltYWdlKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnQsIGNsaXBib2FyZERhdGEubWVkaWFzWzBdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQoY2xpcGJvYXJkRGF0YSwgdGFyZ2V0UG9pbnQsIG9wZXJhdGlvblR5cGUpO1xuICAgIH07XG5cbiAgICBib2FyZC5hZnRlckNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgYWZ0ZXJDaGFuZ2UoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbWFnZUVsZW1lbnQgJiYgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBjb21tb25FbGVtZW50UmVmID0gUGxhaXRFbGVtZW50LmdldEVsZW1lbnRSZWY8UGxhaXRDb21tb25FbGVtZW50UmVmPihzZWxlY3RlZEltYWdlRWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBpbWFnZUdlbmVyYXRvciA9IGNvbW1vbkVsZW1lbnRSZWYuZ2V0R2VuZXJhdG9yPEltYWdlR2VuZXJhdG9yPihJbWFnZUdlbmVyYXRvci5rZXkpO1xuICAgICAgICAgICAgaW1hZ2VHZW5lcmF0b3Iuc2V0Rm9jdXMoc2VsZWN0ZWRJbWFnZUVsZW1lbnQsIHRydWUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
@@ -1,69 +0,0 @@
1
- import { PlaitBoard, PlaitNode, Point, ResizeCursorClass, distanceBetweenPointAndRectangle, getSelectedElements } from '@plait/core';
2
- import { MindElement } from '../interfaces/element';
3
- import { getRectangleByNode } from '../utils/position/node';
4
- import { NodeSpace } from '../utils/space/node-space';
5
- import { MindTransforms } from '../transforms';
6
- import { EXTEND_OFFSET } from '../constants/default';
7
- import { getFirstTextManage, withResize } from '@plait/common';
8
- export const withNodeResize = (board) => {
9
- let targetElementRef = null;
10
- const options = {
11
- key: 'mind-node',
12
- canResize: () => {
13
- return true;
14
- },
15
- hitTest: (point) => {
16
- const newTargetElement = getSelectedTarget(board, point);
17
- if (newTargetElement) {
18
- return {
19
- element: newTargetElement,
20
- handle: null,
21
- cursorClass: ResizeCursorClass.ew
22
- };
23
- }
24
- return null;
25
- },
26
- beforeResize: (resizeRef) => {
27
- targetElementRef = {
28
- minWidth: NodeSpace.getNodeResizableMinWidth(board, resizeRef.element),
29
- currentWidth: NodeSpace.getNodeDynamicWidth(board, resizeRef.element),
30
- path: PlaitBoard.findPath(board, resizeRef.element),
31
- textManage: getFirstTextManage(resizeRef.element)
32
- };
33
- },
34
- onResize: (resizeRef, resizeState) => {
35
- let resizedWidth = targetElementRef.currentWidth + Point.getOffsetX(resizeState.startPoint, resizeState.endPoint);
36
- if (resizedWidth <= targetElementRef.minWidth) {
37
- resizedWidth = targetElementRef.minWidth;
38
- }
39
- const newTarget = PlaitNode.get(board, targetElementRef.path);
40
- if (newTarget && NodeSpace.getNodeTopicMinWidth(board, newTarget) !== resizedWidth) {
41
- targetElementRef.textManage.updateRectangleWidth(resizedWidth);
42
- const { height } = targetElementRef.textManage.getSize(undefined, resizedWidth);
43
- MindTransforms.setNodeManualWidth(board, newTarget, resizedWidth, height);
44
- }
45
- },
46
- afterResize: (resizeRef) => {
47
- targetElementRef = null;
48
- }
49
- };
50
- withResize(board, options);
51
- return board;
52
- };
53
- export const getSelectedTarget = (board, point) => {
54
- const selectedElements = getSelectedElements(board).filter(value => MindElement.isMindElement(board, value));
55
- if (selectedElements.length > 0) {
56
- const target = selectedElements.find(value => {
57
- const rectangle = getResizeActiveRectangle(board, value);
58
- return distanceBetweenPointAndRectangle(point[0], point[1], rectangle) <= 0;
59
- });
60
- return target ? target : null;
61
- }
62
- return null;
63
- };
64
- export const getResizeActiveRectangle = (board, element) => {
65
- const node = MindElement.getNode(element);
66
- const rectangle = getRectangleByNode(node);
67
- return { x: rectangle.x + rectangle.width - EXTEND_OFFSET, y: rectangle.y, width: EXTEND_OFFSET * 2, height: rectangle.height };
68
- };
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLXJlc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3BsdWdpbnMvd2l0aC1ub2RlLXJlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsVUFBVSxFQUNWLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUNoQyxtQkFBbUIsRUFFdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQXlELGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVN0SCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDaEQsSUFBSSxnQkFBZ0IsR0FBNEIsSUFBSSxDQUFDO0lBQ3JELE1BQU0sT0FBTyxHQUF5QztRQUNsRCxHQUFHLEVBQUUsV0FBVztRQUNoQixTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsS0FBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLE9BQU87b0JBQ0gsT0FBTyxFQUFFLGdCQUFnQjtvQkFDekIsTUFBTSxFQUFFLElBQUk7b0JBQ1osV0FBVyxFQUFFLGlCQUFpQixDQUFDLEVBQUU7aUJBQ3BDLENBQUM7WUFDTixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELFlBQVksRUFBRSxDQUFDLFNBQXVDLEVBQUUsRUFBRTtZQUN0RCxnQkFBZ0IsR0FBRztnQkFDZixRQUFRLEVBQUUsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEtBQXVCLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDeEYsWUFBWSxFQUFFLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUF1QixFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZGLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDO2dCQUNuRCxVQUFVLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQzthQUNwRCxDQUFDO1FBQ04sQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLFNBQXVDLEVBQUUsV0FBd0IsRUFBRSxFQUFFO1lBQzVFLElBQUksWUFBWSxHQUFHLGdCQUFpQixDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ILElBQUksWUFBWSxJQUFJLGdCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3QyxZQUFZLEdBQUcsZ0JBQWlCLENBQUMsUUFBUSxDQUFDO1lBQzlDLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFjLEtBQUssRUFBRSxnQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RSxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsb0JBQW9CLENBQUMsS0FBdUIsRUFBRSxTQUFTLENBQUMsS0FBSyxZQUFZLEVBQUUsQ0FBQztnQkFDbkcsZ0JBQWlCLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNoRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsZ0JBQWlCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQ2pGLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEcsQ0FBQztRQUNMLENBQUM7UUFDRCxXQUFXLEVBQUUsQ0FBQyxTQUF1QyxFQUFFLEVBQUU7WUFDckQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7S0FDSixDQUFDO0lBQ0YsVUFBVSxDQUFvQixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEtBQVksRUFBRSxFQUFFO0lBQ3JFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQWtCLENBQUM7SUFDOUgsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLHdCQUF3QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RCxPQUFPLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBbUIsRUFBRTtJQUNqRyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLGFBQWEsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3BJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGF0aCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0Tm9kZSxcbiAgICBQb2ludCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgUmVzaXplQ3Vyc29yQ2xhc3MsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc0RyYWdnaW5nXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgTm9kZVNwYWNlIH0gZnJvbSAnLi4vdXRpbHMvc3BhY2Uvbm9kZS1zcGFjZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBFWFRFTkRfT0ZGU0VUIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgUmVzaXplUmVmLCBSZXNpemVTdGF0ZSwgVGV4dE1hbmFnZSwgV2l0aFJlc2l6ZU9wdGlvbnMsIGdldEZpcnN0VGV4dE1hbmFnZSwgd2l0aFJlc2l6ZSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5pbnRlcmZhY2UgVGFyZ2V0RWxlbWVudFJlZiB7XG4gICAgbWluV2lkdGg6IG51bWJlcjtcbiAgICBjdXJyZW50V2lkdGg6IG51bWJlcjtcbiAgICBwYXRoOiBQYXRoO1xuICAgIHRleHRNYW5hZ2U6IFRleHRNYW5hZ2U7XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoTm9kZVJlc2l6ZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGxldCB0YXJnZXRFbGVtZW50UmVmOiBUYXJnZXRFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3Qgb3B0aW9uczogV2l0aFJlc2l6ZU9wdGlvbnM8TWluZEVsZW1lbnQsIG51bGw+ID0ge1xuICAgICAgICBrZXk6ICdtaW5kLW5vZGUnLFxuICAgICAgICBjYW5SZXNpemU6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBoaXRUZXN0OiAocG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdUYXJnZXRFbGVtZW50ID0gZ2V0U2VsZWN0ZWRUYXJnZXQoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIHBvaW50KTtcbiAgICAgICAgICAgIGlmIChuZXdUYXJnZXRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogbmV3VGFyZ2V0RWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBjdXJzb3JDbGFzczogUmVzaXplQ3Vyc29yQ2xhc3MuZXdcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIGJlZm9yZVJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPE1pbmRFbGVtZW50LCBudWxsPikgPT4ge1xuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudFJlZiA9IHtcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogTm9kZVNwYWNlLmdldE5vZGVSZXNpemFibGVNaW5XaWR0aChib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgcmVzaXplUmVmLmVsZW1lbnQpLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRXaWR0aDogTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIHJlc2l6ZVJlZi5lbGVtZW50KSxcbiAgICAgICAgICAgICAgICBwYXRoOiBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCByZXNpemVSZWYuZWxlbWVudCksXG4gICAgICAgICAgICAgICAgdGV4dE1hbmFnZTogZ2V0Rmlyc3RUZXh0TWFuYWdlKHJlc2l6ZVJlZi5lbGVtZW50KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgb25SZXNpemU6IChyZXNpemVSZWY6IFJlc2l6ZVJlZjxNaW5kRWxlbWVudCwgbnVsbD4sIHJlc2l6ZVN0YXRlOiBSZXNpemVTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc2l6ZWRXaWR0aCA9IHRhcmdldEVsZW1lbnRSZWYhLmN1cnJlbnRXaWR0aCArIFBvaW50LmdldE9mZnNldFgocmVzaXplU3RhdGUuc3RhcnRQb2ludCwgcmVzaXplU3RhdGUuZW5kUG9pbnQpO1xuICAgICAgICAgICAgaWYgKHJlc2l6ZWRXaWR0aCA8PSB0YXJnZXRFbGVtZW50UmVmIS5taW5XaWR0aCkge1xuICAgICAgICAgICAgICAgIHJlc2l6ZWRXaWR0aCA9IHRhcmdldEVsZW1lbnRSZWYhLm1pbldpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV3VGFyZ2V0ID0gUGxhaXROb2RlLmdldDxNaW5kRWxlbWVudD4oYm9hcmQsIHRhcmdldEVsZW1lbnRSZWYhLnBhdGgpO1xuICAgICAgICAgICAgaWYgKG5ld1RhcmdldCAmJiBOb2RlU3BhY2UuZ2V0Tm9kZVRvcGljTWluV2lkdGgoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIG5ld1RhcmdldCkgIT09IHJlc2l6ZWRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnRSZWYhLnRleHRNYW5hZ2UudXBkYXRlUmVjdGFuZ2xlV2lkdGgocmVzaXplZFdpZHRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGhlaWdodCB9ID0gdGFyZ2V0RWxlbWVudFJlZiEudGV4dE1hbmFnZS5nZXRTaXplKHVuZGVmaW5lZCwgcmVzaXplZFdpZHRoKTtcbiAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXROb2RlTWFudWFsV2lkdGgoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIG5ld1RhcmdldCwgcmVzaXplZFdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBhZnRlclJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPE1pbmRFbGVtZW50LCBudWxsPikgPT4ge1xuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHdpdGhSZXNpemU8TWluZEVsZW1lbnQsIG51bGw+KGJvYXJkLCBvcHRpb25zKTtcbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0ZWRUYXJnZXQgPSAoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkuZmlsdGVyKHZhbHVlID0+IE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIHZhbHVlKSkgYXMgTWluZEVsZW1lbnRbXTtcbiAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHNlbGVjdGVkRWxlbWVudHMuZmluZCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZXNpemVBY3RpdmVSZWN0YW5nbGUoYm9hcmQsIHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFJlY3RhbmdsZShwb2ludFswXSwgcG9pbnRbMV0sIHJlY3RhbmdsZSkgPD0gMDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0YXJnZXQgPyB0YXJnZXQgOiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXNpemVBY3RpdmVSZWN0YW5nbGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogUmVjdGFuZ2xlQ2xpZW50ID0+IHtcbiAgICBjb25zdCBub2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG4gICAgcmV0dXJuIHsgeDogcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLSBFWFRFTkRfT0ZGU0VULCB5OiByZWN0YW5nbGUueSwgd2lkdGg6IEVYVEVORF9PRkZTRVQgKiAyLCBoZWlnaHQ6IHJlY3RhbmdsZS5oZWlnaHQgfTtcbn07XG4iXX0=
@@ -1,16 +0,0 @@
1
- /*
2
- * Public API Surface of mind
3
- */
4
- export * from './mind.component';
5
- export * from './mind-node.component';
6
- export * from './utils';
7
- export * from './interfaces';
8
- export * from './plugins/with-mind';
9
- export * from './plugins/with-mind-extend';
10
- export * from './constants';
11
- export * from './queries/index';
12
- export * from './transforms/index';
13
- export * from './emoji';
14
- export * from './plugins/with-mind.board';
15
- export * from './plugins/with-abstract-resize.board';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG1pbmRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL21pbmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWluZC1ub2RlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMvd2l0aC1taW5kJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucy93aXRoLW1pbmQtZXh0ZW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcmllcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9lbW9qaSc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucy93aXRoLWFic3RyYWN0LXJlc2l6ZS5ib2FyZCc7XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { MindElement } from '../interfaces';
2
- import { getAvailableSubLayoutsByLayoutDirections, getBranchDirectionsByLayouts } from '../utils';
3
- import { MindLayoutType } from '@plait/layouts';
4
- import { getBranchLayouts } from './get-branch-layouts';
5
- export const getAvailableSubLayoutsByElement = (board, element) => {
6
- const parentElement = MindElement.findParent(element);
7
- if (parentElement) {
8
- const branchLayouts = getBranchLayouts(board, parentElement);
9
- if (branchLayouts[0] === MindLayoutType.standard) {
10
- const node = MindElement.getNode(element);
11
- branchLayouts[0] = node.left ? MindLayoutType.left : MindLayoutType.right;
12
- }
13
- const currentLayoutDirections = getBranchDirectionsByLayouts(branchLayouts);
14
- let availableSubLayouts = getAvailableSubLayoutsByLayoutDirections(currentLayoutDirections);
15
- const parentLayout = [branchLayouts[branchLayouts.length - 1]];
16
- const parentDirections = getBranchDirectionsByLayouts(parentLayout);
17
- const parentAvailableSubLayouts = getAvailableSubLayoutsByLayoutDirections(parentDirections);
18
- availableSubLayouts = availableSubLayouts.filter(layout => parentAvailableSubLayouts.some(parentAvailableSubLayout => parentAvailableSubLayout === layout));
19
- return availableSubLayouts;
20
- }
21
- return undefined;
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF2YWlsYWJsZS1zdWJsYXlvdXRzLWJ5LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9xdWVyaWVzL2dldC1hdmFpbGFibGUtc3VibGF5b3V0cy1ieS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQ3ZGLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNoQixNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDN0QsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDOUUsQ0FBQztRQUNELE1BQU0sdUJBQXVCLEdBQUcsNEJBQTRCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsSUFBSSxtQkFBbUIsR0FBRyx3Q0FBd0MsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sWUFBWSxHQUFHLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUFHLDRCQUE0QixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BFLE1BQU0seUJBQXlCLEdBQUcsd0NBQXdDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU3RixtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDdEQseUJBQXlCLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsS0FBSyxNQUFNLENBQUMsQ0FDbEcsQ0FBQztRQUNGLE9BQU8sbUJBQW1CLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRBdmFpbGFibGVTdWJMYXlvdXRzQnlMYXlvdXREaXJlY3Rpb25zLCBnZXRCcmFuY2hEaXJlY3Rpb25zQnlMYXlvdXRzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBnZXRCcmFuY2hMYXlvdXRzIH0gZnJvbSAnLi9nZXQtYnJhbmNoLWxheW91dHMnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGdldEF2YWlsYWJsZVN1YkxheW91dHNCeUVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IE1pbmRFbGVtZW50LmZpbmRQYXJlbnQoZWxlbWVudCk7XG4gICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgYnJhbmNoTGF5b3V0cyA9IGdldEJyYW5jaExheW91dHMoYm9hcmQsIHBhcmVudEVsZW1lbnQpO1xuICAgICAgICBpZiAoYnJhbmNoTGF5b3V0c1swXSA9PT0gTWluZExheW91dFR5cGUuc3RhbmRhcmQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpO1xuICAgICAgICAgICAgYnJhbmNoTGF5b3V0c1swXSA9IG5vZGUubGVmdCA/IE1pbmRMYXlvdXRUeXBlLmxlZnQgOiBNaW5kTGF5b3V0VHlwZS5yaWdodDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50TGF5b3V0RGlyZWN0aW9ucyA9IGdldEJyYW5jaERpcmVjdGlvbnNCeUxheW91dHMoYnJhbmNoTGF5b3V0cyk7XG4gICAgICAgIGxldCBhdmFpbGFibGVTdWJMYXlvdXRzID0gZ2V0QXZhaWxhYmxlU3ViTGF5b3V0c0J5TGF5b3V0RGlyZWN0aW9ucyhjdXJyZW50TGF5b3V0RGlyZWN0aW9ucyk7XG4gICAgICAgIGNvbnN0IHBhcmVudExheW91dCA9IFticmFuY2hMYXlvdXRzW2JyYW5jaExheW91dHMubGVuZ3RoIC0gMV1dO1xuICAgICAgICBjb25zdCBwYXJlbnREaXJlY3Rpb25zID0gZ2V0QnJhbmNoRGlyZWN0aW9uc0J5TGF5b3V0cyhwYXJlbnRMYXlvdXQpO1xuICAgICAgICBjb25zdCBwYXJlbnRBdmFpbGFibGVTdWJMYXlvdXRzID0gZ2V0QXZhaWxhYmxlU3ViTGF5b3V0c0J5TGF5b3V0RGlyZWN0aW9ucyhwYXJlbnREaXJlY3Rpb25zKTtcblxuICAgICAgICBhdmFpbGFibGVTdWJMYXlvdXRzID0gYXZhaWxhYmxlU3ViTGF5b3V0cy5maWx0ZXIobGF5b3V0ID0+XG4gICAgICAgICAgICBwYXJlbnRBdmFpbGFibGVTdWJMYXlvdXRzLnNvbWUocGFyZW50QXZhaWxhYmxlU3ViTGF5b3V0ID0+IHBhcmVudEF2YWlsYWJsZVN1YkxheW91dCA9PT0gbGF5b3V0KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gYXZhaWxhYmxlU3ViTGF5b3V0cztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { MindElement } from '../interfaces';
2
- import { getCorrectLayoutByElement } from './get-correct-layout-by-element';
3
- export const getBranchLayouts = (board, element) => {
4
- const layouts = [];
5
- if (element.layout) {
6
- // TODO: getCorrectLayoutByElement Contains recursive operations. getBranchLayouts itself also has recursive operations and needs to be optimized.
7
- layouts.unshift(getCorrectLayoutByElement(board, element));
8
- }
9
- let parent = MindElement.findParent(element);
10
- while (parent) {
11
- if (parent.layout) {
12
- layouts.unshift(parent.layout);
13
- }
14
- parent = MindElement.findParent(parent);
15
- }
16
- return layouts;
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWJyYW5jaC1sYXlvdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcXVlcmllcy9nZXQtYnJhbmNoLWxheW91dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUc1RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQ3hFLE1BQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7SUFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsa0pBQWtKO1FBQ2xKLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQUksTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsT0FBTyxNQUFNLEVBQUUsQ0FBQztRQUNaLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1pbmRMYXlvdXRUeXBlIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgZ2V0Q29ycmVjdExheW91dEJ5RWxlbWVudCB9IGZyb20gJy4vZ2V0LWNvcnJlY3QtbGF5b3V0LWJ5LWVsZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGdldEJyYW5jaExheW91dHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgbGF5b3V0czogTWluZExheW91dFR5cGVbXSA9IFtdO1xuICAgIGlmIChlbGVtZW50LmxheW91dCkge1xuICAgICAgICAvLyBUT0RPOiBnZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50IENvbnRhaW5zIHJlY3Vyc2l2ZSBvcGVyYXRpb25zLiBnZXRCcmFuY2hMYXlvdXRzIGl0c2VsZiBhbHNvIGhhcyByZWN1cnNpdmUgb3BlcmF0aW9ucyBhbmQgbmVlZHMgdG8gYmUgb3B0aW1pemVkLlxuICAgICAgICBsYXlvdXRzLnVuc2hpZnQoZ2V0Q29ycmVjdExheW91dEJ5RWxlbWVudChib2FyZCwgZWxlbWVudCkpO1xuICAgIH1cbiAgICBsZXQgcGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChlbGVtZW50KTtcbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgIGlmIChwYXJlbnQubGF5b3V0KSB7XG4gICAgICAgICAgICBsYXlvdXRzLnVuc2hpZnQocGFyZW50LmxheW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gbGF5b3V0cztcbn07XG4iXX0=
@@ -1,48 +0,0 @@
1
- import { MindElement, PlaitMind } from '../interfaces';
2
- import { correctLayoutByDirection, getInCorrectLayoutDirection, getRootLayout } from '../utils';
3
- import { AbstractNode, MindLayoutType, getAbstractLayout } 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 = (board, element) => {
11
- const ancestors = MindElement.getAncestors(board, element);
12
- ancestors.unshift(element);
13
- const root = ancestors[ancestors.length - 1];
14
- let rootLayout = getRootLayout(root);
15
- if (PlaitMind.isMind(element)) {
16
- return rootLayout;
17
- }
18
- const node = MindElement.getNode(element);
19
- let correctRootLayout = rootLayout;
20
- if (rootLayout === MindLayoutType.standard) {
21
- correctRootLayout = node.left ? MindLayoutType.left : MindLayoutType.right;
22
- }
23
- let layout = null;
24
- const elementWithLayout = ancestors.find(value => value.layout || AbstractNode.isAbstract(value));
25
- if (elementWithLayout) {
26
- if (AbstractNode.isAbstract(elementWithLayout)) {
27
- const parent = MindElement.getParent(elementWithLayout);
28
- const parentLayout = getCorrectLayoutByElement(board, parent);
29
- layout = getAbstractLayout(parentLayout);
30
- }
31
- else {
32
- layout = elementWithLayout?.layout;
33
- }
34
- }
35
- if (layout === MindLayoutType.standard || !layout) {
36
- return correctRootLayout;
37
- }
38
- else {
39
- const incorrectDirection = getInCorrectLayoutDirection(correctRootLayout, layout);
40
- if (incorrectDirection) {
41
- return correctLayoutByDirection(layout, incorrectDirection);
42
- }
43
- else {
44
- return layout;
45
- }
46
- }
47
- };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvcnJlY3QtbGF5b3V0LWJ5LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9xdWVyaWVzL2dldC1jb3JyZWN0LWxheW91dC1ieS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDakYsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFrQixDQUFDO0lBQzVFLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0MsSUFBSSxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXJDLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLElBQUksaUJBQWlCLEdBQUcsVUFBVSxDQUFDO0lBQ25DLElBQUksVUFBVSxLQUFLLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQy9FLENBQUM7SUFFRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sWUFBWSxHQUFHLHlCQUF5QixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM5RCxNQUFNLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLEdBQUcsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO1FBQ3ZDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxNQUFNLEtBQUssY0FBYyxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hELE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xGLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUNyQixPQUFPLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIFBsYWl0TWluZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY29ycmVjdExheW91dEJ5RGlyZWN0aW9uLCBnZXRJbkNvcnJlY3RMYXlvdXREaXJlY3Rpb24sIGdldFJvb3RMYXlvdXQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUsIE1pbmRMYXlvdXRUeXBlLCBnZXRBYnN0cmFjdExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcblxuLyoqXG4gKiBnZXQgY29ycmVjdGx5IGxheW91dO+8mlxuICogMS4gcm9vdCBpcyBzdGFuZGFyZCAtPiBsZWZ0IG9yIHJpZ2h0XG4gKiAyLiBjb3JyZWN0IGxheW91dCBieSBpbmNvcnJlY3QgbGF5b3V0IGRpcmVjdGlvblxuICogQHBhcmFtIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgYW5jZXN0b3JzID0gTWluZEVsZW1lbnQuZ2V0QW5jZXN0b3JzKGJvYXJkLCBlbGVtZW50KSBhcyBNaW5kRWxlbWVudFtdO1xuICAgIGFuY2VzdG9ycy51bnNoaWZ0KGVsZW1lbnQpO1xuICAgIGNvbnN0IHJvb3QgPSBhbmNlc3RvcnNbYW5jZXN0b3JzLmxlbmd0aCAtIDFdO1xuICAgIGxldCByb290TGF5b3V0ID0gZ2V0Um9vdExheW91dChyb290KTtcblxuICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiByb290TGF5b3V0O1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpO1xuICAgIGxldCBjb3JyZWN0Um9vdExheW91dCA9IHJvb3RMYXlvdXQ7XG4gICAgaWYgKHJvb3RMYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLnN0YW5kYXJkKSB7XG4gICAgICAgIGNvcnJlY3RSb290TGF5b3V0ID0gbm9kZS5sZWZ0ID8gTWluZExheW91dFR5cGUubGVmdCA6IE1pbmRMYXlvdXRUeXBlLnJpZ2h0O1xuICAgIH1cblxuICAgIGxldCBsYXlvdXQgPSBudWxsO1xuICAgIGNvbnN0IGVsZW1lbnRXaXRoTGF5b3V0ID0gYW5jZXN0b3JzLmZpbmQodmFsdWUgPT4gdmFsdWUubGF5b3V0IHx8IEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KHZhbHVlKSk7XG4gICAgaWYgKGVsZW1lbnRXaXRoTGF5b3V0KSB7XG4gICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50V2l0aExheW91dCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IE1pbmRFbGVtZW50LmdldFBhcmVudChlbGVtZW50V2l0aExheW91dCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMYXlvdXQgPSBnZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KGJvYXJkLCBwYXJlbnQpO1xuICAgICAgICAgICAgbGF5b3V0ID0gZ2V0QWJzdHJhY3RMYXlvdXQocGFyZW50TGF5b3V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxheW91dCA9IGVsZW1lbnRXaXRoTGF5b3V0Py5sYXlvdXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5zdGFuZGFyZCB8fCAhbGF5b3V0KSB7XG4gICAgICAgIHJldHVybiBjb3JyZWN0Um9vdExheW91dDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmNvcnJlY3REaXJlY3Rpb24gPSBnZXRJbkNvcnJlY3RMYXlvdXREaXJlY3Rpb24oY29ycmVjdFJvb3RMYXlvdXQsIGxheW91dCk7XG4gICAgICAgIGlmIChpbmNvcnJlY3REaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBjb3JyZWN0TGF5b3V0QnlEaXJlY3Rpb24obGF5b3V0LCBpbmNvcnJlY3REaXJlY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGxheW91dDtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { MindElement, PlaitMind } from '../interfaces';
2
- import { AbstractNode, getAbstractLayout } from '@plait/layouts';
3
- import { getDefaultLayout } from '../utils/layout';
4
- export const getLayoutByElement = (element) => {
5
- const layout = element.layout;
6
- if (layout) {
7
- return layout;
8
- }
9
- const parent = !PlaitMind.isMind(element) && MindElement.getParent(element);
10
- if (AbstractNode.isAbstract(element) && parent) {
11
- return getAbstractLayout(getLayoutByElement(parent));
12
- }
13
- if (parent) {
14
- return getLayoutByElement(parent);
15
- }
16
- return getDefaultLayout();
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxheW91dC1ieS1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcXVlcmllcy9nZXQtbGF5b3V0LWJ5LWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQW9CLEVBQWtCLEVBQUU7SUFDdkUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUM5QixJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTVFLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUM3QyxPQUFPLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksTUFBTSxFQUFFLENBQUM7UUFDVCxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxPQUFPLGdCQUFnQixFQUFFLENBQUM7QUFDOUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluZEVsZW1lbnQsIFBsYWl0TWluZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3ROb2RlLCBNaW5kTGF5b3V0VHlwZSwgZ2V0QWJzdHJhY3RMYXlvdXQgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBnZXREZWZhdWx0TGF5b3V0IH0gZnJvbSAnLi4vdXRpbHMvbGF5b3V0JztcblxuZXhwb3J0IGNvbnN0IGdldExheW91dEJ5RWxlbWVudCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCk6IE1pbmRMYXlvdXRUeXBlID0+IHtcbiAgICBjb25zdCBsYXlvdXQgPSBlbGVtZW50LmxheW91dDtcbiAgICBpZiAobGF5b3V0KSB7XG4gICAgICAgIHJldHVybiBsYXlvdXQ7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50ID0gIVBsYWl0TWluZC5pc01pbmQoZWxlbWVudCkgJiYgTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnQpO1xuXG4gICAgaWYgKEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGVsZW1lbnQpICYmIHBhcmVudCkge1xuICAgICAgICByZXR1cm4gZ2V0QWJzdHJhY3RMYXlvdXQoZ2V0TGF5b3V0QnlFbGVtZW50KHBhcmVudCkpO1xuICAgIH1cblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIGdldExheW91dEJ5RWxlbWVudChwYXJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBnZXREZWZhdWx0TGF5b3V0KCk7XG59O1xuIl19
@@ -1,11 +0,0 @@
1
- import { getAvailableSubLayoutsByElement } from './get-available-sublayouts-by-element';
2
- import { getBranchLayouts } from './get-branch-layouts';
3
- import { getCorrectLayoutByElement } from './get-correct-layout-by-element';
4
- import { getLayoutByElement } from './get-layout-by-element';
5
- export const MindQueries = {
6
- getAvailableSubLayoutsByElement,
7
- getBranchLayouts,
8
- getLayoutByElement,
9
- getCorrectLayoutByElement
10
- };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9xdWVyaWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN2QiwrQkFBK0I7SUFDL0IsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQix5QkFBeUI7Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEF2YWlsYWJsZVN1YkxheW91dHNCeUVsZW1lbnQgfSBmcm9tICcuL2dldC1hdmFpbGFibGUtc3VibGF5b3V0cy1ieS1lbGVtZW50JztcbmltcG9ydCB7IGdldEJyYW5jaExheW91dHMgfSBmcm9tICcuL2dldC1icmFuY2gtbGF5b3V0cyc7XG5pbXBvcnQgeyBnZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50IH0gZnJvbSAnLi9nZXQtY29ycmVjdC1sYXlvdXQtYnktZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRMYXlvdXRCeUVsZW1lbnQgfSBmcm9tICcuL2dldC1sYXlvdXQtYnktZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBNaW5kUXVlcmllcyA9IHtcbiAgICBnZXRBdmFpbGFibGVTdWJMYXlvdXRzQnlFbGVtZW50LFxuICAgIGdldEJyYW5jaExheW91dHMsXG4gICAgZ2V0TGF5b3V0QnlFbGVtZW50LFxuICAgIGdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnRcbn07XG4iXX0=
@@ -1,73 +0,0 @@
1
- import { Path, PlaitBoard, Transforms, addSelectedElement, clearSelectedElement } from '@plait/core';
2
- import { AbstractNode, isStandardLayout } from '@plait/layouts';
3
- import { divideElementByParent, getFirstLevelElement } from '../utils/mind';
4
- import { MindQueries } from '../queries';
5
- import { DefaultAbstractNodeStyle } from '../constants/node-style';
6
- import { createMindElement } from '../utils/node/create-node';
7
- import { getAbstractNodeText, getTopicSize } from '../utils/common';
8
- import { buildText } from '@plait/common';
9
- export const setAbstractsByRefs = (board, abstractRefs) => {
10
- abstractRefs.forEach((newProperty, element) => {
11
- const start = element.start + newProperty.start;
12
- const end = element.end + newProperty.end;
13
- const path = PlaitBoard.findPath(board, element);
14
- if (start > end) {
15
- Transforms.removeNode(board, path);
16
- }
17
- else {
18
- Transforms.setNode(board, { start, end }, path);
19
- }
20
- });
21
- };
22
- export const setAbstractByStandardLayout = (board, element) => {
23
- const rightNodeCount = element.rightNodeCount;
24
- const abstract = element.children.find((child) => {
25
- return AbstractNode.isAbstract(child) && child.end >= rightNodeCount && child.start < rightNodeCount;
26
- });
27
- if (abstract) {
28
- const path = PlaitBoard.findPath(board, abstract);
29
- Transforms.setNode(board, { end: rightNodeCount - 1 }, path);
30
- }
31
- };
32
- export const insertAbstract = (board, elements) => {
33
- let elementGroup = getFirstLevelElement(elements);
34
- const { parentElements, abstractIncludedGroups } = divideElementByParent(elementGroup);
35
- abstractIncludedGroups.forEach((group, index) => {
36
- const groupParent = parentElements[index];
37
- setAbstractByElements(board, groupParent, group);
38
- });
39
- };
40
- const setAbstractByElements = (board, groupParent, group) => {
41
- const indexArray = group.map((child) => groupParent.children.indexOf(child)).sort((a, b) => a - b);
42
- const rightNodeCount = groupParent?.rightNodeCount;
43
- const start = indexArray[0], end = indexArray[indexArray.length - 1];
44
- if (isStandardLayout(MindQueries.getLayoutByElement(groupParent)) &&
45
- rightNodeCount &&
46
- start < rightNodeCount &&
47
- end >= rightNodeCount) {
48
- const childrenLength = groupParent.children.length;
49
- const path = [...PlaitBoard.findPath(board, groupParent), childrenLength];
50
- const leftChildren = indexArray.filter((index) => index >= rightNodeCount);
51
- const rightChildren = indexArray.filter((index) => index < rightNodeCount);
52
- insertAbstractNode(board, path, rightChildren[0], rightChildren[rightChildren.length - 1]);
53
- insertAbstractNode(board, Path.next(path), leftChildren[0], leftChildren[leftChildren.length - 1]);
54
- }
55
- else {
56
- const path = [...PlaitBoard.findPath(board, groupParent), groupParent.children.length];
57
- insertAbstractNode(board, path, start, end);
58
- }
59
- };
60
- const insertAbstractNode = (board, path, start, end) => {
61
- const abstractNodeText = getAbstractNodeText(board);
62
- const { width, height } = getTopicSize(false, false, buildText(abstractNodeText));
63
- const mindElement = createMindElement(abstractNodeText, width, height, {
64
- strokeWidth: DefaultAbstractNodeStyle.branch.width,
65
- branchWidth: DefaultAbstractNodeStyle.branch.width
66
- });
67
- mindElement.start = start;
68
- mindElement.end = end;
69
- Transforms.insertNode(board, mindElement, path);
70
- clearSelectedElement(board);
71
- addSelectedElement(board, mindElement);
72
- };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3RyYW5zZm9ybXMvYWJzdHJhY3Qtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBZ0IsVUFBVSxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsWUFBMEIsRUFBRSxFQUFFO0lBQ2hGLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDMUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ2pELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFJLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUMzQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFzQixDQUFDLENBQUM7UUFFaEUsSUFBSSxLQUFLLEdB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O1FBQ25FLFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsS0FBSztRQUNsRCxXQUFXLEVBQUUsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEtBQUs7S0FDckQsQ0FBQyxDQUFDO0lBRUgsV0FBVyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDMUIsV0FBVyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFFdEIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWhELG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXRoLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFRyYW5zZm9ybXMsIGFkZFNlbGVjdGVkRWxlbWVudCwgY2xlYXJTZWxlY3RlZEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFJlZnMgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtYWJzdHJhY3QtcmVzaXplLmJvYXJkJztcbmltcG9ydCB7IE1pbmRFbGVtZW50LCBQbGFpdE1pbmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3ROb2RlLCBpc1N0YW5kYXJkTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgZGl2aWRlRWxlbWVudEJ5UGFyZW50LCBnZXRGaXJzdExldmVsRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL21pbmQnO1xuaW1wb3J0IHsgTWluZFF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzJztcbmltcG9ydCB7IERlZmF1bHRBYnN0cmFjdE5vZGVTdHlsZSB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcbmltcG9ydCB7IGNyZWF0ZU1pbmRFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9jcmVhdGUtbm9kZSc7XG5pbXBvcnQgeyBnZXRBYnN0cmFjdE5vZGVUZXh0LCBnZXRUb3BpY1NpemUgfSBmcm9tICcuLi91dGlscy9jb21tb24nO1xuaW1wb3J0IHsgYnVpbGRUZXh0IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBzZXRBYnN0cmFjdHNCeVJlZnMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGFic3RyYWN0UmVmczogQWJzdHJhY3RSZWZzKSA9PiB7XG4gICAgYWJzdHJhY3RSZWZzLmZvckVhY2goKG5ld1Byb3BlcnR5LCBlbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gZWxlbWVudC5zdGFydCEgKyBuZXdQcm9wZXJ0eS5zdGFydDtcbiAgICAgICAgY29uc3QgZW5kID0gZWxlbWVudC5lbmQhICsgbmV3UHJvcGVydHkuZW5kO1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCBhcyBNaW5kRWxlbWVudCk7XG5cbiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGUoYm9hcmQsIHBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCB7IHN0YXJ0LCBlbmQgfSwgcGF0aCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRBYnN0cmFjdEJ5U3RhbmRhcmRMYXlvdXQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcmlnaHROb2RlQ291bnQgPSBlbGVtZW50LnJpZ2h0Tm9kZUNvdW50ITtcbiAgICBjb25zdCBhYnN0cmFjdCA9IGVsZW1lbnQuY2hpbGRyZW4uZmluZCgoY2hpbGQpID0+IHtcbiAgICAgICAgcmV0dXJuIEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGNoaWxkKSAmJiBjaGlsZC5lbmQgPj0gcmlnaHROb2RlQ291bnQgJiYgY2hpbGQuc3RhcnQgPCByaWdodE5vZGVDb3VudDtcbiAgICB9KTtcblxuICAgIGlmIChhYnN0cmFjdCkge1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgYWJzdHJhY3QpO1xuICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgZW5kOiByaWdodE5vZGVDb3VudCAtIDEgfSwgcGF0aCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydEFic3RyYWN0ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBsZXQgZWxlbWVudEdyb3VwID0gZ2V0Rmlyc3RMZXZlbEVsZW1lbnQoZWxlbWVudHMgYXMgTWluZEVsZW1lbnRbXSk7XG4gICAgY29uc3QgeyBwYXJlbnRFbGVtZW50cywgYWJzdHJhY3RJbmNsdWRlZEdyb3VwcyB9ID0gZGl2aWRlRWxlbWVudEJ5UGFyZW50KGVsZW1lbnRHcm91cCk7XG5cbiAgICBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzLmZvckVhY2goKGdyb3VwLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBncm91cFBhcmVudCA9IHBhcmVudEVsZW1lbnRzW2luZGV4XTtcbiAgICAgICAgc2V0QWJzdHJhY3RCeUVsZW1lbnRzKGJvYXJkLCBncm91cFBhcmVudCwgZ3JvdXApO1xuICAgIH0pO1xufTtcblxuY29uc3Qgc2V0QWJzdHJhY3RCeUVsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBncm91cFBhcmVudDogTWluZEVsZW1lbnQsIGdyb3VwOiBNaW5kRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3QgaW5kZXhBcnJheSA9IGdyb3VwLm1hcCgoY2hpbGQpID0+IGdyb3VwUGFyZW50IS5jaGlsZHJlbi5pbmRleE9mKGNoaWxkKSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIGNvbnN0IHJpZ2h0Tm9kZUNvdW50ID0gZ3JvdXBQYXJlbnQ/LnJpZ2h0Tm9kZUNvdW50O1xuICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXhBcnJheVswXSxcbiAgICAgICAgZW5kID0gaW5kZXhBcnJheVtpbmRleEFycmF5Lmxlbmd0aCAtIDFdO1xuXG4gICAgaWYgKFxuICAgICAgICBpc1N0YW5kYXJkTGF5b3V0KE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudChncm91cFBhcmVudCkpICYmXG4gICAgICAgIHJpZ2h0Tm9kZUNvdW50ICYmXG4gICAgICAgIHN0YXJ0IDwgcmlnaHROb2RlQ291bnQgJiZcbiAgICAgICAgZW5kID49IHJpZ2h0Tm9kZUNvdW50XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuTGVuZ3RoID0gZ3JvdXBQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICBjb25zdCBwYXRoID0gWy4uLlBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGdyb3VwUGFyZW50KSwgY2hpbGRyZW5MZW5ndGhdO1xuICAgICAgICBjb25zdCBsZWZ0Q2hpbGRyZW4gPSBpbmRleEFycmF5LmZpbHRlcigoaW5kZXgpID0+IGluZGV4ID49IHJpZ2h0Tm9kZUNvdW50KTtcbiAgICAgICAgY29uc3QgcmlnaHRDaGlsZHJlbiA9IGluZGV4QXJyYXkuZmlsdGVyKChpbmRleCkgPT4gaW5kZXggPCByaWdodE5vZGVDb3VudCk7XG4gICAgICAgIGluc2VydEFic3RyYWN0Tm9kZShib2FyZCwgcGF0aCwgcmlnaHRDaGlsZHJlblswXSwgcmlnaHRDaGlsZHJlbltyaWdodENoaWxkcmVuLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgaW5zZXJ0QWJzdHJhY3ROb2RlKGJvYXJkLCBQYXRoLm5leHQocGF0aCksIGxlZnRDaGlsZHJlblswXSwgbGVmdENoaWxkcmVuW2xlZnRDaGlsZHJlbi5sZW5ndGggLSAxXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IFsuLi5QbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBncm91cFBhcmVudCksIGdyb3VwUGFyZW50LmNoaWxkcmVuLmxlbmd0aF07XG4gICAgICAgIGluc2VydEFic3RyYWN0Tm9kZShib2FyZCwgcGF0aCwgc3RhcnQsIGVuZCk7XG4gICAgfVxufTtcblxuY29uc3QgaW5zZXJ0QWJzdHJhY3ROb2RlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBwYXRoOiBQYXRoLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGFic3RyYWN0Tm9kZVRleHQgPSBnZXRBYnN0cmFjdE5vZGVUZXh0KGJvYXJkKTtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGdldFRvcGljU2l6ZShmYWxzZSwgZmFsc2UsIGJ1aWxkVGV4dChhYnN0cmFjdE5vZGVUZXh0KSk7XG4gICAgY29uc3QgbWluZEVsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudChhYnN0cmFjdE5vZGVUZXh0LCB3aWR0aCwgaGVpZ2h0LCB7XG4gICAgICAgIHN0cm9rZVdpZHRoOiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuYnJhbmNoLndpZHRoLFxuICAgICAgICBicmFuY2hXaWR0aDogRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlLmJyYW5jaC53aWR0aFxuICAgIH0pO1xuXG4gICAgbWluZEVsZW1lbnQuc3RhcnQgPSBzdGFydDtcbiAgICBtaW5kRWxlbWVudC5lbmQgPSBlbmQ7XG5cbiAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIG1pbmRFbGVtZW50LCBwYXRoKTtcblxuICAgIGNsZWFyU2VsZWN0ZWRFbGVtZW50KGJvYXJkKTtcbiAgICBhZGRTZWxlY3RlZEVsZW1lbnQoYm9hcmQsIG1pbmRFbGVtZW50KTtcbn07XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { MindElement } from '../interfaces/element';
2
- import { PlaitBoard, Transforms } from '@plait/core';
3
- export const addEmoji = (board, element, emojiItem) => {
4
- const emojis = element.data.emojis || [];
5
- const newEmojis = [...emojis];
6
- newEmojis.push(emojiItem);
7
- const newElement = {
8
- data: { ...element.data, emojis: newEmojis }
9
- };
10
- const path = PlaitBoard.findPath(board, element);
11
- Transforms.setNode(board, newElement, path);
12
- };
13
- export const removeEmoji = (board, element, emojiItem) => {
14
- const emojis = element.data.emojis.filter(value => value !== emojiItem);
15
- const newElement = {
16
- data: { topic: element.data.topic }
17
- };
18
- if (MindElement.hasImage(element)) {
19
- newElement.data.image = element.data.image;
20
- }
21
- if (emojis.length > 0) {
22
- newElement.data.emojis = emojis;
23
- }
24
- const path = PlaitBoard.findPath(board, element);
25
- Transforms.setNode(board, newElement, path);
26
- };
27
- export const replaceEmoji = (board, element, oldEmoji, newEmoji) => {
28
- const newElement = {
29
- data: { ...element.data }
30
- };
31
- const newEmojis = element.data.emojis.map(value => {
32
- if (value === oldEmoji) {
33
- return newEmoji;
34
- }
35
- return value;
36
- });
37
- newElement.data.emojis = newEmojis;
38
- const path = PlaitBoard.findPath(board, element);
39
- Transforms.setNode(board, newElement, path);
40
- };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2Vtb2ppLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdyRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsU0FBb0IsRUFBRSxFQUFFO0lBQ3RGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQixNQUFNLFVBQVUsR0FBRztRQUNmLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0tBQ2hDLENBQUM7SUFDakIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxTQUFvQixFQUFFLEVBQUU7SUFDcEcsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sVUFBVSxHQUFHO1FBQ2YsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO0tBQ3ZCLENBQUM7SUFFakIsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQStCLEVBQUUsUUFBbUIsRUFBRSxRQUFtQixFQUFFLEVBQUU7SUFDekgsTUFBTSxVQUFVLEdBQUc7UUFDZixJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUU7S0FDYixDQUFDO0lBQ2pCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM5QyxJQUFJLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyQixPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDSCxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDbkMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBFbW9qaURhdGEsIEVtb2ppSXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcblxuZXhwb3J0IGNvbnN0IGFkZEVtb2ppID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCwgZW1vamlJdGVtOiBFbW9qaUl0ZW0pID0+IHtcbiAgICBjb25zdCBlbW9qaXMgPSBlbGVtZW50LmRhdGEuZW1vamlzIHx8IFtdO1xuICAgIGNvbnN0IG5ld0Vtb2ppcyA9IFsuLi5lbW9qaXNdO1xuICAgIG5ld0Vtb2ppcy5wdXNoKGVtb2ppSXRlbSk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHtcbiAgICAgICAgZGF0YTogeyAuLi5lbGVtZW50LmRhdGEsIGVtb2ppczogbmV3RW1vamlzIH1cbiAgICB9IGFzIE1pbmRFbGVtZW50O1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUVtb2ppID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+LCBlbW9qaUl0ZW06IEVtb2ppSXRlbSkgPT4ge1xuICAgIGNvbnN0IGVtb2ppcyA9IGVsZW1lbnQuZGF0YS5lbW9qaXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9PSBlbW9qaUl0ZW0pO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7XG4gICAgICAgIGRhdGE6IHsgdG9waWM6IGVsZW1lbnQuZGF0YS50b3BpYyB9XG4gICAgfSBhcyBNaW5kRWxlbWVudDtcblxuICAgIGlmIChNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICBuZXdFbGVtZW50LmRhdGEuaW1hZ2UgPSBlbGVtZW50LmRhdGEuaW1hZ2U7XG4gICAgfVxuXG4gICAgaWYgKGVtb2ppcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuZGF0YS5lbW9qaXMgPSBlbW9qaXM7XG4gICAgfVxuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlcGxhY2VFbW9qaSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPiwgb2xkRW1vamk6IEVtb2ppSXRlbSwgbmV3RW1vamk6IEVtb2ppSXRlbSkgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7XG4gICAgICAgIGRhdGE6IHsgLi4uZWxlbWVudC5kYXRhIH1cbiAgICB9IGFzIE1pbmRFbGVtZW50O1xuICAgIGNvbnN0IG5ld0Vtb2ppcyA9IGVsZW1lbnQuZGF0YS5lbW9qaXMubWFwKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBvbGRFbW9qaSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ld0Vtb2ppO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbiAgICBuZXdFbGVtZW50LmRhdGEuZW1vamlzID0gbmV3RW1vamlzO1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcbiJdfQ==
@@ -1,31 +0,0 @@
1
- import { PlaitBoard, Transforms } from '@plait/core';
2
- import { removeImageFocus } from '../utils/node/image';
3
- import { NodeSpace } from '../utils/space/node-space';
4
- import { getNewNodeHeight } from '../utils/node/dynamic-width';
5
- export const removeImage = (board, element) => {
6
- removeImageFocus(board, element);
7
- const newElement = {
8
- data: { ...element.data }
9
- };
10
- delete newElement.data.image;
11
- const path = PlaitBoard.findPath(board, element);
12
- const newDynamicWidth = NodeSpace.getNodeNewDynamicWidth(board, element, 0);
13
- const newHeight = getNewNodeHeight(board, element, newDynamicWidth);
14
- if (newHeight) {
15
- newElement.height = newHeight;
16
- }
17
- Transforms.setNode(board, newElement, path);
18
- };
19
- export const setImage = (board, element, imageItem) => {
20
- const newElement = {
21
- data: { ...element.data, image: imageItem }
22
- };
23
- const newDynamicWidth = NodeSpace.getNodeNewDynamicWidth(board, element, imageItem.width);
24
- const newHeight = getNewNodeHeight(board, element, newDynamicWidth);
25
- if (newHeight) {
26
- newElement.height = newHeight;
27
- }
28
- const path = PlaitBoard.findPath(board, element);
29
- Transforms.setNode(board, newElement, path);
30
- };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUcvRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQStCLEVBQUUsRUFBRTtJQUM5RSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsTUFBTSxVQUFVLEdBQUc7UUFDZixJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUU7S0FDYixDQUFDO0lBQ2pCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDN0IsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEtBQXVCLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlGLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLEtBQXVCLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RGLElBQUksU0FBUyxFQUFFLENBQUM7UUFDWixVQUFVLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxTQUEwQixFQUFFLEVBQUU7SUFDNUYsTUFBTSxVQUFVLEdBQUc7UUFDZixJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtLQUM5QyxDQUFDO0lBQ0YsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEtBQXVCLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxLQUF1QixFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0RixJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ1gsVUFBMEIsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ25ELENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgVHJhbnNmb3JtcyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEltYWdlRGF0YSwgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHJlbW92ZUltYWdlRm9jdXMgfSBmcm9tICcuLi91dGlscy9ub2RlL2ltYWdlJztcbmltcG9ydCB7IE5vZGVTcGFjZSB9IGZyb20gJy4uL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBnZXROZXdOb2RlSGVpZ2h0IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9keW5hbWljLXdpZHRoJztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlSW1hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEltYWdlRGF0YT4pID0+IHtcbiAgICByZW1vdmVJbWFnZUZvY3VzKGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IC4uLmVsZW1lbnQuZGF0YSB9XG4gICAgfSBhcyBNaW5kRWxlbWVudDtcbiAgICBkZWxldGUgbmV3RWxlbWVudC5kYXRhLmltYWdlO1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBuZXdEeW5hbWljV2lkdGggPSBOb2RlU3BhY2UuZ2V0Tm9kZU5ld0R5bmFtaWNXaWR0aChib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudCwgMCk7XG4gICAgY29uc3QgbmV3SGVpZ2h0ID0gZ2V0TmV3Tm9kZUhlaWdodChib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudCwgbmV3RHluYW1pY1dpZHRoKTtcbiAgICBpZiAobmV3SGVpZ2h0KSB7XG4gICAgICAgIG5ld0VsZW1lbnQuaGVpZ2h0ID0gbmV3SGVpZ2h0O1xuICAgIH1cbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldEltYWdlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCwgaW1hZ2VJdGVtOiBDb21tb25JbWFnZUl0ZW0pID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IC4uLmVsZW1lbnQuZGF0YSwgaW1hZ2U6IGltYWdlSXRlbSB9XG4gICAgfTtcbiAgICBjb25zdCBuZXdEeW5hbWljV2lkdGggPSBOb2RlU3BhY2UuZ2V0Tm9kZU5ld0R5bmFtaWNXaWR0aChib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudCwgaW1hZ2VJdGVtLndpZHRoKTtcbiAgICBjb25zdCBuZXdIZWlnaHQgPSBnZXROZXdOb2RlSGVpZ2h0KGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBlbGVtZW50LCBuZXdEeW5hbWljV2lkdGgpO1xuICAgIGlmIChuZXdIZWlnaHQpIHtcbiAgICAgICAgKG5ld0VsZW1lbnQgYXMgTWluZEVsZW1lbnQpLmhlaWdodCA9IG5ld0hlaWdodDtcbiAgICB9XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgcGF0aCk7XG59O1xuIl19
@@ -1,30 +0,0 @@
1
- import { insertAbstract, setAbstractsByRefs, setAbstractByStandardLayout } from './abstract-node';
2
- import { setTopic, setTopicSize, insertNodes, insertAbstractNodes, setRightNodeCountByRefs, setNodeManualWidth, insertChildNode, insertSiblingNode, insertMind } from './node';
3
- import { addEmoji, removeEmoji, replaceEmoji } from './emoji';
4
- import { removeImage, setImage } from './image';
5
- import { setShape, setBranchShape, setBranchWidth, setLayout, setBranchColor } from './property';
6
- export const MindTransforms = {
7
- setLayout,
8
- setShape,
9
- setBranchShape,
10
- setBranchWidth,
11
- setBranchColor,
12
- setTopic,
13
- setTopicSize,
14
- setNodeManualWidth,
15
- addEmoji,
16
- removeEmoji,
17
- replaceEmoji,
18
- insertAbstract,
19
- setAbstractsByRefs,
20
- setAbstractByStandardLayout,
21
- insertNodes,
22
- insertAbstractNodes,
23
- setRightNodeCountByRefs,
24
- removeImage,
25
- setImage,
26
- insertChildNode,
27
- insertSiblingNode,
28
- insertMind
29
- };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQ0gsUUFBUSxFQUNSLFlBQVksRUFDWixXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpHLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixTQUFTO0lBQ1QsUUFBUTtJQUNSLGNBQWM7SUFDZCxjQUFjO0lBQ2QsY0FBYztJQUNkLFFBQVE7SUFDUixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixXQUFXO0lBQ1gsWUFBWTtJQUNaLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsMkJBQTJCO0lBQzNCLFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLFdBQVc7SUFDWCxRQUFRO0lBQ1IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixVQUFVO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluc2VydEFic3RyYWN0LCBzZXRBYnN0cmFjdHNCeVJlZnMsIHNldEFic3RyYWN0QnlTdGFuZGFyZExheW91dCB9IGZyb20gJy4vYWJzdHJhY3Qtbm9kZSc7XG5pbXBvcnQge1xuICAgIHNldFRvcGljLFxuICAgIHNldFRvcGljU2l6ZSxcbiAgICBpbnNlcnROb2RlcyxcbiAgICBpbnNlcnRBYnN0cmFjdE5vZGVzLFxuICAgIHNldFJpZ2h0Tm9kZUNvdW50QnlSZWZzLFxuICAgIHNldE5vZGVNYW51YWxXaWR0aCxcbiAgICBpbnNlcnRDaGlsZE5vZGUsXG4gICAgaW5zZXJ0U2libGluZ05vZGUsXG4gICAgaW5zZXJ0TWluZFxufSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgYWRkRW1vamksIHJlbW92ZUVtb2ppLCByZXBsYWNlRW1vamkgfSBmcm9tICcuL2Vtb2ppJztcbmltcG9ydCB7IHJlbW92ZUltYWdlLCBzZXRJbWFnZSB9IGZyb20gJy4vaW1hZ2UnO1xuaW1wb3J0IHsgc2V0U2hhcGUsIHNldEJyYW5jaFNoYXBlLCBzZXRCcmFuY2hXaWR0aCwgc2V0TGF5b3V0LCBzZXRCcmFuY2hDb2xvciB9IGZyb20gJy4vcHJvcGVydHknO1xuXG5leHBvcnQgY29uc3QgTWluZFRyYW5zZm9ybXMgPSB7XG4gICAgc2V0TGF5b3V0LFxuICAgIHNldFNoYXBlLFxuICAgIHNldEJyYW5jaFNoYXBlLFxuICAgIHNldEJyYW5jaFdpZHRoLFxuICAgIHNldEJyYW5jaENvbG9yLFxuICAgIHNldFRvcGljLFxuICAgIHNldFRvcGljU2l6ZSxcbiAgICBzZXROb2RlTWFudWFsV2lkdGgsXG4gICAgYWRkRW1vamksXG4gICAgcmVtb3ZlRW1vamksXG4gICAgcmVwbGFjZUVtb2ppLFxuICAgIGluc2VydEFic3RyYWN0LFxuICAgIHNldEFic3RyYWN0c0J5UmVmcyxcbiAgICBzZXRBYnN0cmFjdEJ5U3RhbmRhcmRMYXlvdXQsXG4gICAgaW5zZXJ0Tm9kZXMsXG4gICAgaW5zZXJ0QWJzdHJhY3ROb2RlcyxcbiAgICBzZXRSaWdodE5vZGVDb3VudEJ5UmVmcyxcbiAgICByZW1vdmVJbWFnZSxcbiAgICBzZXRJbWFnZSxcbiAgICBpbnNlcnRDaGlsZE5vZGUsXG4gICAgaW5zZXJ0U2libGluZ05vZGUsXG4gICAgaW5zZXJ0TWluZFxufTtcbiJdfQ==