@plait/mind 0.2.2 → 0.3.1

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 (130) 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 +2 -2
  25. package/esm2020/mind.module.mjs +5 -5
  26. package/esm2020/node.component.mjs +11 -10
  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 +30 -16
  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 +6 -6
  46. package/esm2020/utils/mind.mjs +6 -129
  47. package/esm2020/utils/node/adjust-node.mjs +49 -0
  48. package/esm2020/utils/node/common.mjs +6 -0
  49. package/esm2020/utils/node/create-node.mjs +61 -0
  50. package/esm2020/utils/node/index.mjs +4 -0
  51. package/esm2020/utils/point-placement.mjs +22 -2
  52. package/esm2020/utils/position/emoji.mjs +31 -0
  53. package/esm2020/utils/position/index.mjs +4 -0
  54. package/esm2020/utils/position/node.mjs +34 -0
  55. package/esm2020/utils/position/topic.mjs +14 -0
  56. package/esm2020/utils/space/emoji.mjs +19 -0
  57. package/esm2020/utils/space/layout-options.mjs +72 -0
  58. package/esm2020/utils/space/node-space.mjs +77 -0
  59. package/fesm2015/plait-mind.mjs +1464 -1631
  60. package/fesm2015/plait-mind.mjs.map +1 -1
  61. package/fesm2020/plait-mind.mjs +1486 -1642
  62. package/fesm2020/plait-mind.mjs.map +1 -1
  63. package/interfaces/index.d.ts +1 -1
  64. package/interfaces/pointer.d.ts +3 -0
  65. package/mind.module.d.ts +2 -2
  66. package/node.component.d.ts +3 -3
  67. package/package.json +3 -3
  68. package/{interfaces/abstract.d.ts → plugins/with-abstract-resize.board.d.ts} +2 -2
  69. package/plugins/with-mind-create.d.ts +11 -0
  70. package/plugins/with-mind-extend.d.ts +3 -0
  71. package/plugins/{with-extend-mind.d.ts → with-mind.board.d.ts} +4 -4
  72. package/plugins/with-mind.d.ts +1 -1
  73. package/public-api.d.ts +4 -2
  74. package/styles/styles.scss +5 -2
  75. package/transforms/abstract-node.d.ts +1 -1
  76. package/transforms/emoji.d.ts +6 -0
  77. package/transforms/index.d.ts +3 -0
  78. package/transforms/node.d.ts +5 -5
  79. package/utils/abstract/common.d.ts +19 -4
  80. package/utils/abstract/resize.d.ts +2 -1
  81. package/utils/dnd/common.d.ts +7 -0
  82. package/utils/dnd/detector.d.ts +31 -0
  83. package/utils/dnd/draw.d.ts +9 -0
  84. package/utils/index.d.ts +5 -5
  85. package/utils/mind.d.ts +3 -22
  86. package/utils/node/adjust-node.d.ts +5 -0
  87. package/utils/{node.d.ts → node/common.d.ts} +1 -1
  88. package/utils/node/create-node.d.ts +14 -0
  89. package/utils/node/index.d.ts +3 -0
  90. package/utils/point-placement.d.ts +8 -1
  91. package/utils/position/emoji.d.ts +7 -0
  92. package/utils/position/index.d.ts +3 -0
  93. package/utils/position/node.d.ts +12 -0
  94. package/utils/position/topic.d.ts +16 -0
  95. package/utils/space/emoji.d.ts +7 -0
  96. package/{layout-option.d.ts → utils/space/layout-options.d.ts} +1 -1
  97. package/utils/{node-space.d.ts → space/node-space.d.ts} +4 -4
  98. package/draw/link.d.ts +0 -3
  99. package/draw/richtext.d.ts +0 -15
  100. package/draw/shape.d.ts +0 -3
  101. package/esm2020/draw/link.mjs +0 -160
  102. package/esm2020/draw/richtext.mjs +0 -39
  103. package/esm2020/draw/shape.mjs +0 -18
  104. package/esm2020/drawer/base/base.mjs +0 -17
  105. package/esm2020/interfaces/abstract.mjs +0 -12
  106. package/esm2020/layout-option.mjs +0 -72
  107. package/esm2020/plugins/emoji/emoji-base.component.mjs +0 -33
  108. package/esm2020/plugins/emoji/emoji.drawer.mjs +0 -72
  109. package/esm2020/plugins/emoji/emoji.mjs +0 -47
  110. package/esm2020/plugins/emoji/index.mjs +0 -3
  111. package/esm2020/plugins/with-abstract.mjs +0 -106
  112. package/esm2020/plugins/with-dnd.mjs +0 -179
  113. package/esm2020/plugins/with-extend-mind.mjs +0 -11
  114. package/esm2020/utils/direction-corrector.mjs +0 -54
  115. package/esm2020/utils/direction-detector.mjs +0 -56
  116. package/esm2020/utils/dnd.mjs +0 -122
  117. package/esm2020/utils/draw-placeholder.mjs +0 -313
  118. package/esm2020/utils/drop-target-corrector.mjs +0 -87
  119. package/esm2020/utils/graph.mjs +0 -24
  120. package/esm2020/utils/node-space.mjs +0 -77
  121. package/esm2020/utils/node.mjs +0 -6
  122. package/plugins/emoji/emoji.d.ts +0 -11
  123. package/utils/direction-corrector.d.ts +0 -4
  124. package/utils/direction-detector.d.ts +0 -9
  125. package/utils/dnd.d.ts +0 -16
  126. package/utils/draw-placeholder.d.ts +0 -42
  127. package/utils/drop-target-corrector.d.ts +0 -9
  128. package/utils/graph.d.ts +0 -5
  129. /package/plugins/{with-abstract.d.ts → with-abstract-resize.d.ts} +0 -0
  130. /package/plugins/{with-dnd.d.ts → with-node-dnd.d.ts} +0 -0
@@ -1,160 +0,0 @@
1
- import { pointsOnBezierCurves } from 'points-on-curve';
2
- import { STROKE_WIDTH } from '../constants';
3
- import { PlaitBoard } from '@plait/core';
4
- import { getShapeByElement, isChildRight } from '../utils';
5
- import { MindLayoutType, isTopLayout, isIndentedLayout, isStandardLayout } from '@plait/layouts';
6
- import { MindQueries } from '../queries';
7
- import { getBranchColorByMindElement } from '../utils/node-style/branch';
8
- import { MindElementShape } from '../interfaces/element';
9
- export function drawLink(board, node, child, defaultStroke = null, isHorizontal = true, needDrawUnderline = true) {
10
- let beginX, beginY, endX, endY, beginNode = node, endNode = child;
11
- const layout = MindQueries.getCorrectLayoutByElement(board, node.origin);
12
- if (isHorizontal) {
13
- if (!isChildRight(node, child)) {
14
- beginNode = child;
15
- endNode = node;
16
- }
17
- beginX = beginNode.x + beginNode.width - beginNode.hGap;
18
- beginY = beginNode.y + beginNode.height / 2;
19
- endX = endNode.x + endNode.hGap;
20
- endY = endNode.y + endNode.height / 2;
21
- if (node.parent &&
22
- isIndentedLayout(MindQueries.getLayoutByElement(node.parent?.origin)) &&
23
- getShapeByElement(board, node.origin) === MindElementShape.underline) {
24
- if (isChildRight(node, child)) {
25
- beginY = node.y + node.height - node.vGap;
26
- }
27
- else {
28
- endY = node.y + node.height - node.vGap;
29
- }
30
- }
31
- }
32
- else {
33
- if (node.y > child.y) {
34
- beginNode = child;
35
- endNode = node;
36
- }
37
- beginX = beginNode.x + beginNode.width / 2;
38
- beginY = beginNode.y + beginNode.height - beginNode.vGap;
39
- endX = endNode.x + endNode.width / 2;
40
- endY = endNode.y + endNode.vGap;
41
- }
42
- const stroke = defaultStroke || getBranchColorByMindElement(board, child.origin);
43
- const strokeWidth = child.origin.branchWidth ? child.origin.branchWidth : STROKE_WIDTH;
44
- if (endNode.origin.isRoot) {
45
- if (layout === MindLayoutType.left || isStandardLayout(layout)) {
46
- endX -= strokeWidth;
47
- }
48
- if (layout === MindLayoutType.upward) {
49
- endY -= strokeWidth;
50
- }
51
- }
52
- if (beginNode.origin.isRoot) {
53
- if (layout === MindLayoutType.right || isStandardLayout(layout)) {
54
- beginX += strokeWidth;
55
- }
56
- if (layout === MindLayoutType.downward) {
57
- beginY += strokeWidth;
58
- }
59
- }
60
- if (isHorizontal) {
61
- let curve = [
62
- [beginX, beginY],
63
- [beginX + (beginNode.hGap + endNode.hGap) / 3, beginY],
64
- [endX - (beginNode.hGap + endNode.hGap) / 2, endY],
65
- [endX, endY]
66
- ];
67
- const shape = getShapeByElement(board, child.origin);
68
- if (!node.origin.isRoot) {
69
- if (node.x > child.x) {
70
- curve = [
71
- [beginX, beginY],
72
- [beginX + (beginNode.hGap + endNode.hGap) / 3, beginY],
73
- [endX - (beginNode.hGap + endNode.hGap) / 2, endY],
74
- [endX - 12, endY]
75
- ];
76
- const line = [
77
- [endX - 12, endY],
78
- [endX - 12, endY],
79
- [endX, endY]
80
- ];
81
- curve = [...curve, ...line];
82
- }
83
- else {
84
- curve = [
85
- [beginX + 12, beginY],
86
- [beginX + (beginNode.hGap + endNode.hGap) / 2, beginY],
87
- [endX - (beginNode.hGap + endNode.hGap) / 3, endY],
88
- [endX, endY]
89
- ];
90
- const line = [
91
- [beginX, beginY],
92
- [beginX + 12, beginY],
93
- [beginX + 12, beginY]
94
- ];
95
- curve = [...line, ...curve];
96
- }
97
- }
98
- if (needDrawUnderline && shape === MindElementShape.underline) {
99
- if (child.left) {
100
- const underline = [
101
- [beginX - (beginNode.width - beginNode.hGap * 2), beginY],
102
- [beginX - (beginNode.width - beginNode.hGap * 2), beginY],
103
- [beginX - (beginNode.width - beginNode.hGap * 2), beginY]
104
- ];
105
- curve = [...underline, ...curve];
106
- }
107
- else {
108
- const underline = [
109
- [endX + (endNode.width - endNode.hGap * 2), endY],
110
- [endX + (endNode.width - endNode.hGap * 2), endY],
111
- [endX + (endNode.width - endNode.hGap * 2), endY]
112
- ];
113
- curve = [...curve, ...underline];
114
- }
115
- }
116
- const points = pointsOnBezierCurves(curve);
117
- return PlaitBoard.getRoughSVG(board).curve(points, { stroke, strokeWidth });
118
- }
119
- else {
120
- let curve = [
121
- [beginX, beginY],
122
- [beginX, beginY + (beginNode.vGap + endNode.vGap) / 2],
123
- [endX, endY - (beginNode.vGap + endNode.vGap) / 2],
124
- [endX, endY]
125
- ];
126
- if (!node.origin.isRoot) {
127
- if (isTopLayout(layout)) {
128
- curve = [
129
- [beginX, beginY],
130
- [beginX, beginY + (beginNode.vGap + endNode.vGap) / 2],
131
- [endX, endY - (beginNode.vGap + endNode.vGap) / 2],
132
- [endX, endY - 12]
133
- ];
134
- const line = [
135
- [endX, endY - 12],
136
- [endX, endY - 12],
137
- [endX, endY]
138
- ];
139
- curve = [...curve, ...line];
140
- }
141
- else {
142
- curve = [
143
- [beginX, beginY + 12],
144
- [beginX, beginY + (beginNode.vGap + endNode.vGap) / 2],
145
- [endX, endY - (beginNode.vGap + endNode.vGap) / 2],
146
- [endX, endY]
147
- ];
148
- const line = [
149
- [beginX, beginY],
150
- [beginX, beginY + 12],
151
- [beginX, beginY + 12]
152
- ];
153
- curve = [...line, ...curve];
154
- }
155
- }
156
- const points = pointsOnBezierCurves(curve);
157
- return PlaitBoard.getRoughSVG(board).curve(points, { stroke, strokeWidth });
158
- }
159
- }
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxVQUFVLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsTUFBTSxVQUFVLFFBQVEsQ0FDcEIsS0FBaUIsRUFDakIsSUFBYyxFQUNkLEtBQWUsRUFDZixnQkFBK0IsSUFBSSxFQUNuQyxZQUFZLEdBQUcsSUFBSSxFQUNuQixpQkFBaUIsR0FBRyxJQUFJO0lBRXhCLElBQUksTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FBRyxJQUFJLEVBQ2hCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFtQixDQUFDO0lBQzNGLElBQUksWUFBWSxFQUFFO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDNUIsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNs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QU0sRUFBRSxNQUFNLEdBQUcsRUFBRSxDQUFDO2lCQUNiLENBQUM7Z0JBRWIsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FBQ0QsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUN0RjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb2ludHNPbkJlemllckN1cnZlcyB9IGZyb20gJ3BvaW50cy1vbi1jdXJ2ZSc7XG5pbXBvcnQgeyBTVFJPS0VfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRTaGFwZUJ5RWxlbWVudCwgaXNDaGlsZFJpZ2h0IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUsIGlzVG9wTGF5b3V0LCBpc0luZGVudGVkTGF5b3V0LCBpc1N0YW5kYXJkTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZFF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzJztcbmltcG9ydCB7IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL25vZGUtc3R5bGUvYnJhbmNoJztcbmltcG9ydCB7IE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0xpbmsoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgbm9kZTogTWluZE5vZGUsXG4gICAgY2hpbGQ6IE1pbmROb2RlLFxuICAgIGRlZmF1bHRTdHJva2U6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgIGlzSG9yaXpvbnRhbCA9IHRydWUsXG4gICAgbmVlZERyYXdVbmRlcmxpbmUgPSB0cnVlXG4pIHtcbiAgICBsZXQgYmVnaW5YLFxuICAgICAgICBiZWdpblksXG4gICAgICAgIGVuZFgsXG4gICAgICAgIGVuZFksXG4gICAgICAgIGJlZ2luTm9kZSA9IG5vZGUsXG4gICAgICAgIGVuZE5vZGUgPSBjaGlsZDtcbiAgICBjb25zdCBsYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KGJvYXJkLCBub2RlLm9yaWdpbikgYXMgTWluZExheW91dFR5cGU7XG4gICAgaWYgKGlzSG9yaXpvbnRhbCkge1xuICAgICAgICBpZiAoIWlzQ2hpbGRSaWdodChub2RlLCBjaGlsZCkpIHtcbiAgICAgICAgICAgIGJlZ2luTm9kZSA9IGNoaWxkO1xuICAgICAgICAgICAgZW5kTm9kZSA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgYmVnaW5YID0gYmVnaW5Ob2RlLnggKyBiZWdpbk5vZGUud2lkdGggLSBiZWdpbk5vZGUuaEdhcDtcbiAgICAgICAgYmVnaW5ZID0gYmVnaW5Ob2RlLnkgKyBiZWdpbk5vZGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgZW5kWCA9IGVuZE5vZGUueCArIGVuZE5vZGUuaEdhcDtcbiAgICAgICAgZW5kWSA9IGVuZE5vZGUueSArIGVuZE5vZGUuaGVpZ2h0IC8gMjtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBub2RlLnBhcmVudCAmJlxuICAgICAgICAgICAgaXNJbmRlbnRlZExheW91dChNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQobm9kZS5wYXJlbnQ/Lm9yaWdpbikpICYmXG4gICAgICAgICAgICAoZ2V0U2hhcGVCeUVsZW1lbnQoYm9hcmQsIG5vZGUub3JpZ2luKSBhcyBNaW5kRWxlbWVudFNoYXBlKSA9PT0gTWluZEVsZW1lbnRTaGFwZS51bmRlcmxpbmVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoaXNDaGlsZFJpZ2h0KG5vZGUsIGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGJlZ2luWSA9IG5vZGUueSArIG5vZGUuaGVpZ2h0IC0gbm9kZS52R2FwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbmRZID0gbm9kZS55ICsgbm9kZS5oZWlnaHQgLSBub2RlLnZHYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobm9kZS55ID4gY2hpbGQueSkge1xuICAgICAgICAgICAgYmVnaW5Ob2RlID0gY2hpbGQ7XG4gICAgICAgICAgICBlbmROb2RlID0gbm9kZTtcbiAgICAgICAgfVxuICAgICAgICBiZWdpblggPSBiZWdpbk5vZGUueCArIGJlZ2luTm9kZS53aWR0aCAvIDI7XG4gICAgICAgIGJlZ2luWSA9IGJlZ2luTm9kZS55ICsgYmVnaW5Ob2RlLmhlaWdodCAtIGJlZ2luTm9kZS52R2FwO1xuICAgICAgICBlbmRYID0gZW5kTm9kZS54ICsgZW5kTm9kZS53aWR0aCAvIDI7XG4gICAgICAgIGVuZFkgPSBlbmROb2RlLnkgKyBlbmROb2RlLnZHYXA7XG4gICAgfVxuXG4gICAgY29uc3Qgc3Ryb2tlID0gZGVmYXVsdFN0cm9rZSB8fCBnZXRCcmFuY2hDb2xvckJ5TWluZEVsZW1lbnQoYm9hcmQsIGNoaWxkLm9yaWdpbik7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBjaGlsZC5vcmlnaW4uYnJhbmNoV2lkdGggPyBjaGlsZC5vcmlnaW4uYnJhbmNoV2lkdGggOiBTVFJPS0VfV0lEVEg7XG4gICAgaWYgKGVuZE5vZGUub3JpZ2luLmlzUm9vdCkge1xuICAgICAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5sZWZ0IHx8IGlzU3RhbmRhcmRMYXlvdXQobGF5b3V0KSkge1xuICAgICAgICAgICAgZW5kWCAtPSBzdHJva2VXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS51cHdhcmQpIHtcbiAgICAgICAgICAgIGVuZFkgLT0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGJlZ2luTm9kZS5vcmlnaW4uaXNSb290KSB7XG4gICAgICAgIGlmIChsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLnJpZ2h0IHx8IGlzU3RhbmRhcmRMYXlvdXQobGF5b3V0KSkge1xuICAgICAgICAgICAgYmVnaW5YICs9IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLmRvd253YXJkKSB7XG4gICAgICAgICAgICBiZWdpblkgKz0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzSG9yaXpvbnRhbCkge1xuICAgICAgICBsZXQgY3VydmU6IFBvaW50W10gPSBbXG4gICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgW2JlZ2luWCArIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAzLCBiZWdpblldLFxuICAgICAgICAgICAgW2VuZFggLSAoYmVnaW5Ob2RlLmhHYXAgKyBlbmROb2RlLmhHYXApIC8gMiwgZW5kWV0sXG4gICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgXTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBnZXRTaGFwZUJ5RWxlbWVudChib2FyZCwgY2hpbGQub3JpZ2luKSBhcyBNaW5kRWxlbWVudFNoYXBlO1xuXG4gICAgICAgIGlmICghbm9kZS5vcmlnaW4uaXNSb290KSB7XG4gICAgICAgICAgICBpZiAobm9kZS54ID4gY2hpbGQueCkge1xuICAgICAgICAgICAgICAgIGN1cnZlID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YICsgKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDMsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDIsIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIDEyLCBlbmRZXVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggLSAxMiwgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gMTIsIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbLi4uY3VydmUsIC4uLmxpbmVdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIDEyLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YICsgKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDIsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDMsIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggKyAxMiwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIDEyLCBiZWdpblldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmxpbmUsIC4uLmN1cnZlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZWVkRHJhd1VuZGVybGluZSAmJiBzaGFwZSA9PT0gTWluZEVsZW1lbnRTaGFwZS51bmRlcmxpbmUpIHtcbiAgICAgICAgICAgIGlmIChjaGlsZC5sZWZ0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YIC0gKGJlZ2luTm9kZS53aWR0aCAtIGJlZ2luTm9kZS5oR2FwICogMiksIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggLSAoYmVnaW5Ob2RlLndpZHRoIC0gYmVnaW5Ob2RlLmhHYXAgKiAyKSwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCAtIChiZWdpbk5vZGUud2lkdGggLSBiZWdpbk5vZGUuaEdhcCAqIDIpLCBiZWdpblldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLnVuZGVybGluZSwgLi4uY3VydmVdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bmRlcmxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSwgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSwgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSwgZW5kWV1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbLi4uY3VydmUsIC4uLnVuZGVybGluZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwb2ludHMgPSBwb2ludHNPbkJlemllckN1cnZlcyhjdXJ2ZSk7XG4gICAgICAgIHJldHVybiBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5jdXJ2ZShwb2ludHMgYXMgYW55LCB7IHN0cm9rZSwgc3Ryb2tlV2lkdGggfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGN1cnZlOiBQb2ludFtdID0gW1xuICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKCFub2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgICAgIGlmIChpc1RvcExheW91dChsYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gMTJdXG4gICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gMTJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIDEyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmN1cnZlLCAuLi5saW5lXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIDEyXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZICsgKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAxMl0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIDEyXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcblxuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmxpbmUsIC4uLmN1cnZlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludHMgPSBwb2ludHNPbkJlemllckN1cnZlcyhjdXJ2ZSk7XG4gICAgICAgIHJldHVybiBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5jdXJ2ZShwb2ludHMgYXMgYW55LCB7IHN0cm9rZSwgc3Ryb2tlV2lkdGggfSk7XG4gICAgfVxufVxuIl19
@@ -1,39 +0,0 @@
1
- import { drawRichtext, updateForeignObject } from '@plait/richtext';
2
- import { getRectangleByNode } from '../utils/graph';
3
- import { NodeSpace } from '../utils/node-space';
4
- export function drawMindNodeRichtext(board, node, viewContainerRef) {
5
- const { x, y, width, height } = getRichtextRectangleByNode(board, node);
6
- const classList = [];
7
- if (node.origin.isRoot) {
8
- classList.push('root-node');
9
- classList.push('font-size-18');
10
- }
11
- else if (node.parent?.origin?.isRoot) {
12
- classList.push('root-child-node');
13
- }
14
- else {
15
- classList.push('child-node');
16
- }
17
- // COMPAT: last character can not show in safari browser
18
- return drawRichtext(x, y, width, height, node.origin.data.topic, viewContainerRef, classList);
19
- }
20
- export function updateMindNodeTopicSize(board, node, g, isEditable) {
21
- const { x, y, width, height } = getRichtextRectangleByNode(board, node);
22
- if (isEditable) {
23
- // add 999, avoid changing lines when paste more text
24
- updateForeignObject(g, width + 999, height + 999, x, y);
25
- }
26
- else {
27
- // COMPAT: last character can not show in safari browser
28
- updateForeignObject(g, width, height, x, y);
29
- }
30
- }
31
- export function getRichtextRectangleByNode(board, node) {
32
- let { x, y } = getRectangleByNode(node);
33
- x = x + NodeSpace.getTextLeftSpace(board, node.origin);
34
- y = y + NodeSpace.getTextTopSpace(node.origin);
35
- const width = Math.ceil(node.origin.width);
36
- const height = Math.ceil(node.origin.height);
37
- return { height, width, x, y };
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9kcmF3L3JpY2h0ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHaEQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQXFCLEVBQUUsSUFBYyxFQUFFLGdCQUFrQztJQUMxRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNyQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3BCLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUIsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUNsQztTQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1FBQ3BDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUNyQztTQUFNO1FBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNoQztJQUNELHdEQUF3RDtJQUN4RCxPQUFPLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2xHLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsS0FBcUIsRUFBRSxJQUFjLEVBQUUsQ0FBYyxFQUFFLFVBQW1CO0lBQzlHLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsSUFBSSxVQUFVLEVBQUU7UUFDWixxREFBcUQ7UUFDckQsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDM0Q7U0FBTTtRQUNILHdEQUF3RDtRQUN4RCxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDL0M7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEtBQXFCLEVBQUUsSUFBYztJQUM1RSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZHJhd1JpY2h0ZXh0LCB1cGRhdGVGb3JlaWduT2JqZWN0IH0gZnJvbSAnQHBsYWl0L3JpY2h0ZXh0JztcbmltcG9ydCB7IEJBU0UgfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9ncmFwaCc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuLi91dGlscy9ub2RlLXNwYWNlJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWV4dGVuZC1taW5kJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdNaW5kTm9kZVJpY2h0ZXh0KGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgbm9kZTogTWluZE5vZGUsIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IGdldFJpY2h0ZXh0UmVjdGFuZ2xlQnlOb2RlKGJvYXJkLCBub2RlKTtcbiAgICBjb25zdCBjbGFzc0xpc3QgPSBbXTtcbiAgICBpZiAobm9kZS5vcmlnaW4uaXNSb290KSB7XG4gICAgICAgIGNsYXNzTGlzdC5wdXNoKCdyb290LW5vZGUnKTtcbiAgICAgICAgY2xhc3NMaXN0LnB1c2goJ2ZvbnQtc2l6ZS0xOCcpO1xuICAgIH0gZWxzZSBpZiAobm9kZS5wYXJlbnQ/Lm9yaWdpbj8uaXNSb290KSB7XG4gICAgICAgIGNsYXNzTGlzdC5wdXNoKCdyb290LWNoaWxkLW5vZGUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjbGFzc0xpc3QucHVzaCgnY2hpbGQtbm9kZScpO1xuICAgIH1cbiAgICAvLyBDT01QQVQ6IGxhc3QgY2hhcmFjdGVyIGNhbiBub3Qgc2hvdyBpbiBzYWZhcmkgYnJvd3NlclxuICAgIHJldHVybiBkcmF3UmljaHRleHQoeCwgeSwgd2lkdGgsIGhlaWdodCwgbm9kZS5vcmlnaW4uZGF0YS50b3BpYywgdmlld0NvbnRhaW5lclJlZiwgY2xhc3NMaXN0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1pbmROb2RlVG9waWNTaXplKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgbm9kZTogTWluZE5vZGUsIGc6IFNWR0dFbGVtZW50LCBpc0VkaXRhYmxlOiBib29sZWFuKSB7XG4gICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRSaWNodGV4dFJlY3RhbmdsZUJ5Tm9kZShib2FyZCwgbm9kZSk7XG4gICAgaWYgKGlzRWRpdGFibGUpIHtcbiAgICAgICAgLy8gYWRkIDk5Oe+8jCBhdm9pZCBjaGFuZ2luZyBsaW5lcyB3aGVuIHBhc3RlIG1vcmUgdGV4dFxuICAgICAgICB1cGRhdGVGb3JlaWduT2JqZWN0KGcsIHdpZHRoICsgOTk5LCBoZWlnaHQgKyA5OTksIHgsIHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENPTVBBVDogbGFzdCBjaGFyYWN0ZXIgY2FuIG5vdCBzaG93IGluIHNhZmFyaSBicm93c2VyXG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QoZywgd2lkdGgsIGhlaWdodCwgeCwgeSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmljaHRleHRSZWN0YW5nbGVCeU5vZGUoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBub2RlOiBNaW5kTm9kZSkge1xuICAgIGxldCB7IHgsIHkgfSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShub2RlKTtcbiAgICB4ID0geCArIE5vZGVTcGFjZS5nZXRUZXh0TGVmdFNwYWNlKGJvYXJkLCBub2RlLm9yaWdpbik7XG4gICAgeSA9IHkgKyBOb2RlU3BhY2UuZ2V0VGV4dFRvcFNwYWNlKG5vZGUub3JpZ2luKTtcbiAgICBjb25zdCB3aWR0aCA9IE1hdGguY2VpbChub2RlLm9yaWdpbi53aWR0aCk7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5jZWlsKG5vZGUub3JpZ2luLmhlaWdodCk7XG4gICAgcmV0dXJuIHsgaGVpZ2h0LCB3aWR0aCwgeCwgeSB9O1xufVxuIl19
@@ -1,18 +0,0 @@
1
- import { getRectangleByNode } from '../utils/graph';
2
- import { PlaitBoard, drawRoundRectangle } from '@plait/core';
3
- import { getStrokeByMindElement } from '../utils/node-style/shape';
4
- import { DefaultNodeStyle, DefaultRootStyle } from '../constants/node-style';
5
- export function drawRectangleNode(board, node) {
6
- const { x, y, width, height } = getRectangleByNode(node);
7
- const fill = node.origin.fill ? node.origin.fill : node.origin.isRoot ? DefaultRootStyle.fill : DefaultNodeStyle.fill;
8
- const stroke = getStrokeByMindElement(board, node.origin);
9
- const strokeWidth = node.origin.strokeWidth ? node.origin.strokeWidth : DefaultNodeStyle.strokeWidth;
10
- const nodeG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), x, y, x + width, y + height, {
11
- stroke,
12
- strokeWidth,
13
- fill,
14
- fillStyle: 'solid'
15
- });
16
- return nodeG;
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9kcmF3L3NoYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0UsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQWlCLEVBQUUsSUFBYztJQUMvRCxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDdEgsTUFBTSxNQUFNLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUVyRyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFO1FBQ3pGLE1BQU07UUFDTixXQUFXO1FBQ1gsSUFBSTtRQUNKLFNBQVMsRUFBRSxPQUFPO0tBQ3JCLENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9ncmFwaCc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBkcmF3Um91bmRSZWN0YW5nbGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VCeU1pbmRFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS1zdHlsZS9zaGFwZSc7XG5pbXBvcnQgeyBEZWZhdWx0Tm9kZVN0eWxlLCBEZWZhdWx0Um9vdFN0eWxlIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtc3R5bGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1JlY3RhbmdsZU5vZGUoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IE1pbmROb2RlKSB7XG4gICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG5cbiAgICBjb25zdCBmaWxsID0gbm9kZS5vcmlnaW4uZmlsbCA/IG5vZGUub3JpZ2luLmZpbGwgOiBub2RlLm9yaWdpbi5pc1Jvb3QgPyBEZWZhdWx0Um9vdFN0eWxlLmZpbGwgOiBEZWZhdWx0Tm9kZVN0eWxlLmZpbGw7XG4gICAgY29uc3Qgc3Ryb2tlID0gZ2V0U3Ryb2tlQnlNaW5kRWxlbWVudChib2FyZCwgbm9kZS5vcmlnaW4pO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gbm9kZS5vcmlnaW4uc3Ryb2tlV2lkdGggPyBub2RlLm9yaWdpbi5zdHJva2VXaWR0aCA6IERlZmF1bHROb2RlU3R5bGUuc3Ryb2tlV2lkdGg7XG5cbiAgICBjb25zdCBub2RlRyA9IGRyYXdSb3VuZFJlY3RhbmdsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSwgeCwgeSwgeCArIHdpZHRoLCB5ICsgaGVpZ2h0LCB7XG4gICAgICAgIHN0cm9rZSxcbiAgICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICAgIGZpbGwsXG4gICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5vZGVHO1xufVxuIl19
@@ -1,17 +0,0 @@
1
- export class BaseDrawer {
2
- constructor(board) {
3
- this.board = board;
4
- }
5
- destroy() {
6
- if (this.g) {
7
- this.g.remove();
8
- }
9
- }
10
- }
11
- export function hasAfterDraw(value) {
12
- if (value.afterDraw) {
13
- return true;
14
- }
15
- return false;
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXdlci9iYXNlL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixVQUFVO0lBRzVCLFlBQXNCLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7SUFBRyxDQUFDO0lBTTNDLE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztDQUNKO0FBTUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFVO0lBQ25DLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZURyYXdlciB7XG4gICAgZz86IFNWR0dFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJvYXJkOiBQbGFpdEJvYXJkKSB7fVxuXG4gICAgYWJzdHJhY3QgY2FuRHJhdyhlbGVtZW50OiBNaW5kRWxlbWVudCk6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBkcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogU1ZHR0VsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5nKSB7XG4gICAgICAgICAgICB0aGlzLmcucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJEcmF3IHtcbiAgICBhZnRlckRyYXcoZWxlbWVudDogTWluZEVsZW1lbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQWZ0ZXJEcmF3KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBBZnRlckRyYXcge1xuICAgIGlmICh2YWx1ZS5hZnRlckRyYXcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- export var AbstractHandlePosition;
2
- (function (AbstractHandlePosition) {
3
- AbstractHandlePosition["start"] = "start";
4
- AbstractHandlePosition["end"] = "end";
5
- })(AbstractHandlePosition || (AbstractHandlePosition = {}));
6
- export var AbstractResizeState;
7
- (function (AbstractResizeState) {
8
- AbstractResizeState["start"] = "start";
9
- AbstractResizeState["resizing"] = "resizing";
10
- AbstractResizeState["end"] = "end";
11
- })(AbstractResizeState || (AbstractResizeState = {}));
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9pbnRlcmZhY2VzL2Fic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDOUIseUNBQWUsQ0FBQTtJQUNmLHFDQUFXLENBQUE7QUFDZixDQUFDLEVBSFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUdqQztBQUVELE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDM0Isc0NBQWUsQ0FBQTtJQUNmLDRDQUFxQixDQUFBO0lBQ3JCLGtDQUFXLENBQUE7QUFDZixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5cbmV4cG9ydCBlbnVtIEFic3RyYWN0SGFuZGxlUG9zaXRpb24ge1xuICAgIHN0YXJ0ID0gJ3N0YXJ0JyxcbiAgICBlbmQgPSAnZW5kJ1xufVxuXG5leHBvcnQgZW51bSBBYnN0cmFjdFJlc2l6ZVN0YXRlIHtcbiAgICBzdGFydCA9ICdzdGFydCcsXG4gICAgcmVzaXppbmcgPSAncmVzaXppbmcnLFxuICAgIGVuZCA9ICdlbmQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaXRBYnN0cmFjdEJvYXJkIGV4dGVuZHMgUGxhaXRCb2FyZCB7XG4gICAgYWJzdHJhY3RSZXNpemU/OiAoc3RhdGU6IEFic3RyYWN0UmVzaXplU3RhdGUpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIEFic3RyYWN0UmVmcyA9IE1hcDxNaW5kRWxlbWVudCwgUGljazxBYnN0cmFjdE5vZGUsICdzdGFydCcgfCAnZW5kJz4+O1xuIl19
@@ -1,72 +0,0 @@
1
- import { ConnectingPosition, isHorizontalLayout, isHorizontalLogicLayout, isIndentedLayout } from "@plait/layouts";
2
- import { MindElementShape } from "./interfaces/element";
3
- import { BASE, STROKE_WIDTH } from "./constants/default";
4
- import { getRootLayout } from "./utils/layout";
5
- import { NodeSpace } from "./utils/node-space";
6
- export const getLayoutOptions = (board) => {
7
- function getMainAxle(element, parent) {
8
- const strokeWidth = element.strokeWidth || STROKE_WIDTH;
9
- if (element.isRoot) {
10
- return BASE * 12;
11
- }
12
- if (parent && parent.isRoot()) {
13
- return BASE * 3 + strokeWidth / 2;
14
- }
15
- return BASE * 3 + strokeWidth / 2;
16
- }
17
- function getSecondAxle(element, parent) {
18
- const strokeWidth = element.strokeWidth || STROKE_WIDTH;
19
- if (element.isRoot) {
20
- return BASE * 10 + strokeWidth / 2;
21
- }
22
- return BASE * 6 + strokeWidth / 2;
23
- }
24
- return {
25
- getHeight(element) {
26
- return NodeSpace.getNodeHeight(element);
27
- },
28
- getWidth(element) {
29
- return NodeSpace.getNodeWidth(board, element);
30
- },
31
- getHorizontalGap(element, parent) {
32
- const _layout = (parent && parent.layout) || getRootLayout(element);
33
- const isHorizontal = isHorizontalLayout(_layout);
34
- const strokeWidth = element.strokeWidth || STROKE_WIDTH;
35
- if (isIndentedLayout(_layout)) {
36
- return BASE * 4 + strokeWidth;
37
- }
38
- if (!isHorizontal) {
39
- return getMainAxle(element, parent);
40
- }
41
- else {
42
- return getSecondAxle(element, parent);
43
- }
44
- },
45
- getVerticalGap(element, parent) {
46
- const _layout = (parent && parent.layout) || getRootLayout(element);
47
- if (isIndentedLayout(_layout)) {
48
- return BASE;
49
- }
50
- const isHorizontal = isHorizontalLayout(_layout);
51
- if (isHorizontal) {
52
- return getMainAxle(element, parent);
53
- }
54
- else {
55
- return getSecondAxle(element, parent);
56
- }
57
- },
58
- getVerticalConnectingPosition(element, parent) {
59
- if (element.shape === MindElementShape.underline && parent && isHorizontalLogicLayout(parent.layout)) {
60
- return ConnectingPosition.bottom;
61
- }
62
- return undefined;
63
- },
64
- getExtendHeight(node) {
65
- return BASE * 6;
66
- },
67
- getIndentedCrossLevelGap() {
68
- return BASE * 2;
69
- }
70
- };
71
- };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW9wdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2xheW91dC1vcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUF5QyxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFKLE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRTtJQUN0RCxTQUFTLFdBQVcsQ0FBQyxPQUFvQixFQUFFLE1BQW1CO1FBQzFELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDO1FBQ3hELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7U0FDcEI7UUFDRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0IsT0FBTyxJQUFJLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDckM7UUFDRCxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsT0FBb0IsRUFBRSxNQUFtQjtRQUM1RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQztRQUN4RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxJQUFJLEdBQUcsRUFBRSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDdEM7UUFDRCxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTztRQUNILFNBQVMsQ0FBQyxPQUFvQjtZQUMxQixPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELFFBQVEsQ0FBQyxPQUFvQjtZQUN6QixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxnQkFBZ0IsQ0FBQyxPQUFvQixFQUFFLE1BQW1CO1lBQ3RELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEUsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUM7WUFDeEQsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxJQUFJLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUNqQztZQUNELElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2YsT0FBTyxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNILE9BQU8sYUFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN6QztRQUNMLENBQUM7UUFDRCxjQUFjLENBQUMsT0FBb0IsRUFBRSxNQUFtQjtZQUNwRCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BFLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFDRCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFJLFlBQVksRUFBRTtnQkFDZCxPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0gsT0FBTyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3pDO1FBQ0wsQ0FBQztRQUNELDZCQUE2QixDQUFDLE9BQW9CLEVBQUUsTUFBbUI7WUFDbkUsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLFNBQVMsSUFBSSxNQUFNLElBQUksdUJBQXVCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsRyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQzthQUNwQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxlQUFlLENBQUMsSUFBZ0I7WUFDNUIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFDRCx3QkFBd0I7WUFDcEIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7S0FDYSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RpbmdQb3NpdGlvbiwgTGF5b3V0Tm9kZSwgTGF5b3V0T3B0aW9ucywgT3JpZ2luTm9kZSwgaXNIb3Jpem9udGFsTGF5b3V0LCBpc0hvcml6b250YWxMb2dpY0xheW91dCwgaXNJbmRlbnRlZExheW91dCB9IGZyb20gXCJAcGxhaXQvbGF5b3V0c1wiO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tIFwiLi9pbnRlcmZhY2VzL2VsZW1lbnRcIjtcbmltcG9ydCB7IEJBU0UsIFNUUk9LRV9XSURUSCB9IGZyb20gXCIuL2NvbnN0YW50cy9kZWZhdWx0XCI7XG5pbXBvcnQgeyBnZXRSb290TGF5b3V0IH0gZnJvbSBcIi4vdXRpbHMvbGF5b3V0XCI7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tIFwiLi91dGlscy9ub2RlLXNwYWNlXCI7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gXCIuL3BsdWdpbnMvd2l0aC1leHRlbmQtbWluZFwiO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5b3V0T3B0aW9ucyA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRNYWluQXhsZShlbGVtZW50OiBNaW5kRWxlbWVudCwgcGFyZW50PzogTGF5b3V0Tm9kZSkge1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGVsZW1lbnQuc3Ryb2tlV2lkdGggfHwgU1RST0tFX1dJRFRIO1xuICAgICAgICBpZiAoZWxlbWVudC5pc1Jvb3QpIHtcbiAgICAgICAgICAgIHJldHVybiBCQVNFICogMTI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQuaXNSb290KCkpIHtcbiAgICAgICAgICAgIHJldHVybiBCQVNFICogMyArIHN0cm9rZVdpZHRoIC8gMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQkFTRSAqIDMgKyBzdHJva2VXaWR0aCAvIDI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2Vjb25kQXhsZShlbGVtZW50OiBNaW5kRWxlbWVudCwgcGFyZW50PzogTGF5b3V0Tm9kZSkge1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGVsZW1lbnQuc3Ryb2tlV2lkdGggfHwgU1RST0tFX1dJRFRIO1xuICAgICAgICBpZiAoZWxlbWVudC5pc1Jvb3QpIHtcbiAgICAgICAgICAgIHJldHVybiBCQVNFICogMTAgKyBzdHJva2VXaWR0aCAvIDI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEJBU0UgKiA2ICsgc3Ryb2tlV2lkdGggLyAyO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGdldEhlaWdodChlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXROb2RlSGVpZ2h0KGVsZW1lbnQpO1xuICAgICAgICB9LFxuICAgICAgICBnZXRXaWR0aChlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXROb2RlV2lkdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICB9LFxuICAgICAgICBnZXRIb3Jpem9udGFsR2FwKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBfbGF5b3V0ID0gKHBhcmVudCAmJiBwYXJlbnQubGF5b3V0KSB8fCBnZXRSb290TGF5b3V0KGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gaXNIb3Jpem9udGFsTGF5b3V0KF9sYXlvdXQpO1xuICAgICAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBlbGVtZW50LnN0cm9rZVdpZHRoIHx8IFNUUk9LRV9XSURUSDtcbiAgICAgICAgICAgIGlmIChpc0luZGVudGVkTGF5b3V0KF9sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiA0ICsgc3Ryb2tlV2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzSG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRNYWluQXhsZShlbGVtZW50LCBwYXJlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U2Vjb25kQXhsZShlbGVtZW50LCBwYXJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBnZXRWZXJ0aWNhbEdhcChlbGVtZW50OiBNaW5kRWxlbWVudCwgcGFyZW50PzogTGF5b3V0Tm9kZSkge1xuICAgICAgICAgICAgY29uc3QgX2xheW91dCA9IChwYXJlbnQgJiYgcGFyZW50LmxheW91dCkgfHwgZ2V0Um9vdExheW91dChlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChpc0luZGVudGVkTGF5b3V0KF9sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJBU0U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQoX2xheW91dCk7XG4gICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldE1haW5BeGxlKGVsZW1lbnQsIHBhcmVudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTZWNvbmRBeGxlKGVsZW1lbnQsIHBhcmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldFZlcnRpY2FsQ29ubmVjdGluZ1Bvc2l0aW9uKGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXJlbnQ/OiBMYXlvdXROb2RlKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5zaGFwZSA9PT0gTWluZEVsZW1lbnRTaGFwZS51bmRlcmxpbmUgJiYgcGFyZW50ICYmIGlzSG9yaXpvbnRhbExvZ2ljTGF5b3V0KHBhcmVudC5sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RpbmdQb3NpdGlvbi5ib3R0b207XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LFxuICAgICAgICBnZXRFeHRlbmRIZWlnaHQobm9kZTogT3JpZ2luTm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIEJBU0UgKiA2O1xuICAgICAgICB9LFxuICAgICAgICBnZXRJbmRlbnRlZENyb3NzTGV2ZWxHYXAoKSB7XG4gICAgICAgICAgICByZXR1cm4gQkFTRSAqIDI7XG4gICAgICAgIH1cbiAgICB9IGFzIExheW91dE9wdGlvbnM7XG59Il19
@@ -1,33 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class MindEmojiBaseComponent {
4
- get nativeElement() {
5
- return this.elementRef.nativeElement;
6
- }
7
- constructor(elementRef) {
8
- this.elementRef = elementRef;
9
- this.fontSize = 14;
10
- }
11
- ngOnInit() {
12
- this.elementRef.nativeElement.style.fontSize = `${this.fontSize}px`;
13
- }
14
- }
15
- MindEmojiBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MindEmojiBaseComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
16
- MindEmojiBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: MindEmojiBaseComponent, inputs: { fontSize: "fontSize", emojiItem: "emojiItem", board: "board", element: "element" }, host: { classAttribute: "mind-node-emoji" }, ngImport: i0 });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MindEmojiBaseComponent, decorators: [{
18
- type: Directive,
19
- args: [{
20
- host: {
21
- class: 'mind-node-emoji'
22
- }
23
- }]
24
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fontSize: [{
25
- type: Input
26
- }], emojiItem: [{
27
- type: Input
28
- }], board: [{
29
- type: Input
30
- }], element: [{
31
- type: Input
32
- }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9wbHVnaW5zL2Vtb2ppL2Vtb2ppLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVVyRSxNQUFNLE9BQU8sc0JBQXNCO0lBYS9CLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQXNCLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBZnpELGFBQVEsR0FBVyxFQUFFLENBQUM7SUFlc0MsQ0FBQztJQUU3RCxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQztJQUN4RSxDQUFDOzttSEFyQlEsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGlCQUFpQjtxQkFDM0I7aUJBQ0o7aUdBR0csUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbW9qaURhdGEsIEVtb2ppSXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWluZC1ub2RlLWVtb2ppJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTWluZEVtb2ppQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBmb250U2l6ZTogbnVtYmVyID0gMTQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGVtb2ppSXRlbSE6IEVtb2ppSXRlbTtcblxuICAgIEBJbnB1dCgpXG4gICAgYm9hcmQhOiBQbGFpdEJvYXJkO1xuXG4gICAgQElucHV0KClcbiAgICBlbGVtZW50ITogTWluZEVsZW1lbnQ8RW1vamlEYXRhPjtcblxuICAgIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmZvbnRTaXplID0gYCR7dGhpcy5mb250U2l6ZX1weGA7XG4gICAgfVxufVxuIl19
@@ -1,72 +0,0 @@
1
- import { MindElement } from '../../interfaces';
2
- import { createForeignObject } from '@plait/richtext';
3
- import { createG } from '@plait/core';
4
- import { getEmojiFontSize, getEmojiForeignRectangle } from './emoji';
5
- export class EmojiDrawer {
6
- constructor(board, viewContainerRef) {
7
- this.board = board;
8
- this.viewContainerRef = viewContainerRef;
9
- this.componentRef = null;
10
- }
11
- draw(emoji, element) {
12
- this.destroy();
13
- const componentType = this.board.drawEmoji(emoji, element);
14
- this.componentRef = this.viewContainerRef.createComponent(componentType);
15
- this.componentRef.instance.emojiItem = emoji;
16
- this.componentRef.instance.board = this.board;
17
- this.componentRef.instance.element = element;
18
- this.componentRef.instance.fontSize = getEmojiFontSize(element);
19
- }
20
- get nativeElement() {
21
- if (this.componentRef) {
22
- return this.componentRef.instance.nativeElement;
23
- }
24
- else {
25
- return null;
26
- }
27
- }
28
- destroy() {
29
- if (this.componentRef) {
30
- this.componentRef.destroy();
31
- this.componentRef = null;
32
- }
33
- }
34
- }
35
- export class EmojisDrawer {
36
- constructor(board, viewContainerRef) {
37
- this.board = board;
38
- this.viewContainerRef = viewContainerRef;
39
- this.emojiDrawers = [];
40
- }
41
- drawEmojis(element) {
42
- this.destroy();
43
- if (MindElement.hasEmojis(element)) {
44
- this.g = createG();
45
- this.g.classList.add('emojis');
46
- const foreignRectangle = getEmojiForeignRectangle(this.board, element);
47
- const foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
48
- this.g.append(foreignObject);
49
- const container = document.createElement('div');
50
- container.classList.add('node-emojis-container');
51
- foreignObject.append(container);
52
- this.emojiDrawers = element.data.emojis.map(emojiItem => {
53
- const drawer = new EmojiDrawer(this.board, this.viewContainerRef);
54
- drawer.draw(emojiItem, element);
55
- return drawer;
56
- });
57
- this.emojiDrawers.forEach(drawer => {
58
- container.append(drawer.nativeElement);
59
- });
60
- return this.g;
61
- }
62
- return undefined;
63
- }
64
- destroy() {
65
- if (this.g) {
66
- this.g.remove();
67
- }
68
- this.emojiDrawers.forEach(drawer => drawer.destroy());
69
- this.emojiDrawers = [];
70
- }
71
- }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuZHJhd2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy9lbW9qaS9lbW9qaS5kcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF3QixXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdyRSxNQUFNLE9BQU8sV0FBVztJQUdwQixZQUFvQixLQUFxQixFQUFVLGdCQUFrQztRQUFqRSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGckYsaUJBQVksR0FBZ0QsSUFBSSxDQUFDO0lBRXVCLENBQUM7SUFFekYsSUFBSSxDQUFDLEtBQWdCLEVBQUUsT0FBK0I7UUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FB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ZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVtb2ppRGF0YSwgRW1vamlJdGVtLCBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWluZEVtb2ppQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vZW1vamktYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgY3JlYXRlRm9yZWlnbk9iamVjdCB9IGZyb20gJ0BwbGFpdC9yaWNodGV4dCc7XG5pbXBvcnQgeyBjcmVhdGVHIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0RW1vamlGb250U2l6ZSwgZ2V0RW1vamlGb3JlaWduUmVjdGFuZ2xlIH0gZnJvbSAnLi9lbW9qaSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uL3dpdGgtZXh0ZW5kLW1pbmQnO1xuXG5leHBvcnQgY2xhc3MgRW1vamlEcmF3ZXIge1xuICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE1pbmRFbW9qaUJhc2VDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gICAgZHJhdyhlbW9qaTogRW1vamlJdGVtLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gdGhpcy5ib2FyZC5kcmF3RW1vamkoZW1vamksIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVtb2ppSXRlbSA9IGVtb2ppO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5ib2FyZCA9IHRoaXMuYm9hcmQ7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb250U2l6ZSA9IGdldEVtb2ppRm9udFNpemUoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW1vamlzRHJhd2VyIHtcbiAgICBlbW9qaURyYXdlcnM6IEVtb2ppRHJhd2VyW10gPSBbXTtcblxuICAgIGc/OiBTVkdHRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgICBkcmF3RW1vamlzKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmcgPSBjcmVhdGVHKCk7XG4gICAgICAgICAgICB0aGlzLmcuY2xhc3NMaXN0LmFkZCgnZW1vamlzJyk7XG4gICAgICAgICAgICBjb25zdCBmb3JlaWduUmVjdGFuZ2xlID0gZ2V0RW1vamlGb3JlaWduUmVjdGFuZ2xlKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgZm9yZWlnbk9iamVjdCA9IGNyZWF0ZUZvcmVpZ25PYmplY3QoXG4gICAgICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS54LFxuICAgICAgICAgICAgICAgIGZvcmVpZ25SZWN0YW5nbGUueSxcbiAgICAgICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLndpZHRoLFxuICAgICAgICAgICAgICAgIGZvcmVpZ25SZWN0YW5nbGUuaGVpZ2h0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5nLmFwcGVuZChmb3JlaWduT2JqZWN0KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ25vZGUtZW1vamlzLWNvbnRhaW5lcicpO1xuICAgICAgICAgICAgZm9yZWlnbk9iamVjdC5hcHBlbmQoY29udGFpbmVyKTtcbiAgICAgICAgICAgIHRoaXMuZW1vamlEcmF3ZXJzID0gZWxlbWVudC5kYXRhLmVtb2ppcy5tYXAoZW1vamlJdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkcmF3ZXIgPSBuZXcgRW1vamlEcmF3ZXIodGhpcy5ib2FyZCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICAgICAgICBkcmF3ZXIuZHJhdyhlbW9qaUl0ZW0sIGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkcmF3ZXI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZW1vamlEcmF3ZXJzLmZvckVhY2goZHJhd2VyID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kKGRyYXdlci5uYXRpdmVFbGVtZW50ISk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5nKSB7XG4gICAgICAgICAgICB0aGlzLmcucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbW9qaURyYXdlcnMuZm9yRWFjaChkcmF3ZXIgPT4gZHJhd2VyLmRlc3Ryb3koKSk7XG4gICAgICAgIHRoaXMuZW1vamlEcmF3ZXJzID0gW107XG4gICAgfVxufVxuIl19
@@ -1,47 +0,0 @@
1
- import { RectangleClient } from '@plait/core';
2
- import { MindElement, PlaitMind } from '../../interfaces';
3
- import { getRectangleByNode } from '../../utils/graph';
4
- import { NodeSpace } from '../../utils/node-space';
5
- export function getEmojisWidthHeight(board, element) {
6
- const options = board.getMindOptions();
7
- const count = element.data.emojis.length;
8
- const fontSize = getEmojiFontSize(element);
9
- return {
10
- width: fontSize * count + count * 2 * options.emojiPadding + (count - 1) * options.spaceBetweenEmojis,
11
- height: element.height
12
- };
13
- }
14
- export function getEmojiFontSize(element) {
15
- if (PlaitMind.isMind(element)) {
16
- return 18 + 2;
17
- }
18
- else {
19
- return 14 + 2;
20
- }
21
- }
22
- export function getEmojiRectangle(board, element) {
23
- let { x, y } = getRectangleByNode(MindElement.getNode(element));
24
- x = x + NodeSpace.getEmojiLeftSpace(board, element);
25
- const { width, height } = getEmojisWidthHeight(board, element);
26
- return {
27
- x,
28
- y,
29
- width,
30
- height
31
- };
32
- }
33
- export function getEmojiForeignRectangle(board, element) {
34
- let { x, y } = getRectangleByNode(MindElement.getNode(element));
35
- x = x + NodeSpace.getEmojiLeftSpace(board, element);
36
- const { width, height } = getEmojisWidthHeight(board, element);
37
- return {
38
- x,
39
- y,
40
- width,
41
- height: height + NodeSpace.getEmojiTopSpace(element) * 2
42
- };
43
- }
44
- export const isHitEmojis = (board, element, point) => {
45
- return RectangleClient.isHit(RectangleClient.toRectangleClient([point, point]), getEmojiRectangle(board, element));
46
- };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9wbHVnaW5zL2Vtb2ppL2Vtb2ppLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBYSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR25ELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFxQixFQUFFLE9BQStCO0lBQ3ZGLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsT0FBTztRQUNILEtBQUssRUFBRSxRQUFRLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCO1FBQ3JHLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN6QixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUErQjtJQUM1RCxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ2pCO1NBQU07UUFDSCxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDakI7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQXFCLEVBQUUsT0FBK0I7SUFDcEYsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE9BQU87UUFDSCxDQUFDO1FBQ0QsQ0FBQztRQUNELEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBcUIsRUFBRSxPQUErQjtJQUMzRixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsT0FBTztRQUNILENBQUM7UUFDRCxDQUFDO1FBQ0QsS0FBSztRQUNMLE1BQU0sRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7S0FDM0QsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQStCLEVBQUUsS0FBWSxFQUFFLEVBQUU7SUFDNUYsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLEtBQXVCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN6SSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgRW1vamlEYXRhLCBNaW5kRWxlbWVudCwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi8uLi91dGlscy9ncmFwaCc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuLi8uLi91dGlscy9ub2RlLXNwYWNlJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vd2l0aC1leHRlbmQtbWluZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYm9hcmQuZ2V0TWluZE9wdGlvbnMoKTtcbiAgICBjb25zdCBjb3VudCA9IGVsZW1lbnQuZGF0YS5lbW9qaXMubGVuZ3RoO1xuICAgIGNvbnN0IGZvbnRTaXplID0gZ2V0RW1vamlGb250U2l6ZShlbGVtZW50KTtcbiAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogZm9udFNpemUgKiBjb3VudCArIGNvdW50ICogMiAqIG9wdGlvbnMuZW1vamlQYWRkaW5nICsgKGNvdW50IC0gMSkgKiBvcHRpb25zLnNwYWNlQmV0d2VlbkVtb2ppcyxcbiAgICAgICAgaGVpZ2h0OiBlbGVtZW50LmhlaWdodFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbW9qaUZvbnRTaXplKGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pIHtcbiAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gMTggKyAyO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAxNCArIDI7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW1vamlSZWN0YW5nbGUoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBsZXQgeyB4LCB5IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSk7XG4gICAgeCA9IHggKyBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0RW1vamlzV2lkdGhIZWlnaHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW1vamlGb3JlaWduUmVjdGFuZ2xlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPik6IFJlY3RhbmdsZUNsaWVudCB7XG4gICAgbGV0IHsgeCwgeSB9ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkpO1xuICAgIHggPSB4ICsgTm9kZVNwYWNlLmdldEVtb2ppTGVmdFNwYWNlKGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkLCBlbGVtZW50KTtcbiAgICByZXR1cm4ge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBoZWlnaHQgKyBOb2RlU3BhY2UuZ2V0RW1vamlUb3BTcGFjZShlbGVtZW50KSAqIDJcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNIaXRFbW9qaXMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4sIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LnRvUmVjdGFuZ2xlQ2xpZW50KFtwb2ludCwgcG9pbnRdKSwgZ2V0RW1vamlSZWN0YW5nbGUoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQpKTtcbn07XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './emoji';
2
- export * from './emoji-base.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9wbHVnaW5zL2Vtb2ppL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vtb2ppJztcbmV4cG9ydCAqIGZyb20gJy4vZW1vamktYmFzZS5jb21wb25lbnQnOyJdfQ==