@meta2d/core 1.0.54 → 1.0.56

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 (302) hide show
  1. package/README.md +13 -0
  2. package/package.build.json +39 -0
  3. package/package.json +38 -38
  4. package/src/canvas/canvas.ts +8639 -0
  5. package/src/canvas/canvasImage.ts +525 -0
  6. package/src/canvas/canvasTemplate.ts +257 -0
  7. package/src/canvas/magnifierCanvas.ts +142 -0
  8. package/src/canvas/offscreen.ts +14 -0
  9. package/src/core.ts +5128 -0
  10. package/src/data.ts +86 -0
  11. package/src/diagrams/arrow.ts +50 -0
  12. package/src/diagrams/circle.ts +19 -0
  13. package/src/diagrams/cloud.ts +34 -0
  14. package/src/diagrams/cube.ts +94 -0
  15. package/src/diagrams/diamond.ts +14 -0
  16. package/src/diagrams/file.ts +19 -0
  17. package/src/diagrams/gif.ts +105 -0
  18. package/src/diagrams/{hexagon.js → hexagon.ts} +19 -14
  19. package/src/diagrams/iframe.ts +365 -0
  20. package/src/diagrams/{index.js → index.ts} +36 -34
  21. package/src/diagrams/line/arrow.ts +175 -0
  22. package/src/diagrams/line/curve.ts +260 -0
  23. package/src/diagrams/line/line.ts +409 -0
  24. package/src/diagrams/line/polyline.ts +676 -0
  25. package/src/diagrams/line/smooth.ts +133 -0
  26. package/src/diagrams/message.ts +17 -0
  27. package/src/diagrams/mindLine.ts +31 -0
  28. package/src/diagrams/mindNode.ts +177 -0
  29. package/src/diagrams/panel.ts +149 -0
  30. package/src/diagrams/pentagon.ts +48 -0
  31. package/src/diagrams/pentagram.ts +63 -0
  32. package/src/diagrams/people.ts +23 -0
  33. package/src/diagrams/rectangle.ts +29 -0
  34. package/src/diagrams/svg/parse.ts +319 -0
  35. package/src/diagrams/svgPath.ts +53 -0
  36. package/src/diagrams/triangle.ts +43 -0
  37. package/src/diagrams/video.ts +202 -0
  38. package/src/dialog/dialog.ts +177 -0
  39. package/src/event/event.ts +142 -0
  40. package/src/map/map.ts +239 -0
  41. package/src/options.ts +205 -0
  42. package/src/pen/arrow.ts +259 -0
  43. package/src/pen/math.ts +253 -0
  44. package/src/pen/model.ts +785 -0
  45. package/src/pen/plugin.ts +57 -0
  46. package/src/pen/render.ts +3725 -0
  47. package/src/pen/text.ts +341 -0
  48. package/src/pen/utils.ts +21 -0
  49. package/src/point/point.ts +232 -0
  50. package/src/rect/rect.ts +507 -0
  51. package/src/rect/triangle.ts +16 -0
  52. package/src/scroll/scroll.ts +277 -0
  53. package/src/store/global.ts +38 -0
  54. package/src/store/store.ts +293 -0
  55. package/src/theme.ts +35 -0
  56. package/src/title/title.ts +115 -0
  57. package/src/tooltip/tooltip.ts +199 -0
  58. package/src/utils/clone.ts +79 -0
  59. package/src/utils/color.ts +126 -0
  60. package/src/utils/error.ts +7 -0
  61. package/src/utils/file.ts +46 -0
  62. package/src/utils/{index.d.ts → index.ts} +1 -0
  63. package/src/utils/math.ts +120 -0
  64. package/src/utils/object.ts +23 -0
  65. package/src/utils/padding.ts +48 -0
  66. package/src/utils/time.ts +25 -0
  67. package/src/utils/url.ts +30 -0
  68. package/src/utils/uuid.ts +15 -0
  69. package/index.js +0 -10
  70. package/index.js.map +0 -1
  71. package/src/canvas/canvas.d.ts +0 -455
  72. package/src/canvas/canvas.js +0 -8168
  73. package/src/canvas/canvas.js.map +0 -1
  74. package/src/canvas/canvasImage.d.ts +0 -28
  75. package/src/canvas/canvasImage.js +0 -503
  76. package/src/canvas/canvasImage.js.map +0 -1
  77. package/src/canvas/canvasTemplate.d.ts +0 -19
  78. package/src/canvas/canvasTemplate.js +0 -229
  79. package/src/canvas/canvasTemplate.js.map +0 -1
  80. package/src/canvas/index.js +0 -3
  81. package/src/canvas/index.js.map +0 -1
  82. package/src/canvas/magnifierCanvas.d.ts +0 -20
  83. package/src/canvas/magnifierCanvas.js +0 -101
  84. package/src/canvas/magnifierCanvas.js.map +0 -1
  85. package/src/canvas/offscreen.d.ts +0 -2
  86. package/src/canvas/offscreen.js +0 -14
  87. package/src/canvas/offscreen.js.map +0 -1
  88. package/src/core.d.ts +0 -477
  89. package/src/core.js +0 -5168
  90. package/src/core.js.map +0 -1
  91. package/src/data.d.ts +0 -34
  92. package/src/data.js +0 -85
  93. package/src/data.js.map +0 -1
  94. package/src/diagrams/arrow.d.ts +0 -4
  95. package/src/diagrams/arrow.js +0 -47
  96. package/src/diagrams/arrow.js.map +0 -1
  97. package/src/diagrams/circle.d.ts +0 -2
  98. package/src/diagrams/circle.js +0 -9
  99. package/src/diagrams/circle.js.map +0 -1
  100. package/src/diagrams/cloud.d.ts +0 -2
  101. package/src/diagrams/cloud.js +0 -12
  102. package/src/diagrams/cloud.js.map +0 -1
  103. package/src/diagrams/cube.d.ts +0 -2
  104. package/src/diagrams/cube.js +0 -70
  105. package/src/diagrams/cube.js.map +0 -1
  106. package/src/diagrams/diamond.d.ts +0 -2
  107. package/src/diagrams/diamond.js +0 -13
  108. package/src/diagrams/diamond.js.map +0 -1
  109. package/src/diagrams/file.d.ts +0 -2
  110. package/src/diagrams/file.js +0 -18
  111. package/src/diagrams/file.js.map +0 -1
  112. package/src/diagrams/gif.d.ts +0 -5
  113. package/src/diagrams/gif.js +0 -90
  114. package/src/diagrams/gif.js.map +0 -1
  115. package/src/diagrams/hexagon.d.ts +0 -2
  116. package/src/diagrams/hexagon.js.map +0 -1
  117. package/src/diagrams/iframe.d.ts +0 -2
  118. package/src/diagrams/iframe.js +0 -356
  119. package/src/diagrams/iframe.js.map +0 -1
  120. package/src/diagrams/index.d.ts +0 -71
  121. package/src/diagrams/index.js.map +0 -1
  122. package/src/diagrams/line/arrow.d.ts +0 -2
  123. package/src/diagrams/line/arrow.js +0 -128
  124. package/src/diagrams/line/arrow.js.map +0 -1
  125. package/src/diagrams/line/curve.d.ts +0 -16
  126. package/src/diagrams/line/curve.js +0 -236
  127. package/src/diagrams/line/curve.js.map +0 -1
  128. package/src/diagrams/line/index.js +0 -6
  129. package/src/diagrams/line/index.js.map +0 -1
  130. package/src/diagrams/line/line.d.ts +0 -42
  131. package/src/diagrams/line/line.js +0 -431
  132. package/src/diagrams/line/line.js.map +0 -1
  133. package/src/diagrams/line/polyline.d.ts +0 -10
  134. package/src/diagrams/line/polyline.js +0 -657
  135. package/src/diagrams/line/polyline.js.map +0 -1
  136. package/src/diagrams/line/smooth.d.ts +0 -3
  137. package/src/diagrams/line/smooth.js +0 -174
  138. package/src/diagrams/line/smooth.js.map +0 -1
  139. package/src/diagrams/message.d.ts +0 -2
  140. package/src/diagrams/message.js +0 -15
  141. package/src/diagrams/message.js.map +0 -1
  142. package/src/diagrams/mindLine.d.ts +0 -3
  143. package/src/diagrams/mindLine.js +0 -31
  144. package/src/diagrams/mindLine.js.map +0 -1
  145. package/src/diagrams/mindNode.d.ts +0 -3
  146. package/src/diagrams/mindNode.js +0 -189
  147. package/src/diagrams/mindNode.js.map +0 -1
  148. package/src/diagrams/panel.d.ts +0 -2
  149. package/src/diagrams/panel.js +0 -131
  150. package/src/diagrams/panel.js.map +0 -1
  151. package/src/diagrams/pentagon.d.ts +0 -3
  152. package/src/diagrams/pentagon.js +0 -46
  153. package/src/diagrams/pentagon.js.map +0 -1
  154. package/src/diagrams/pentagram.d.ts +0 -3
  155. package/src/diagrams/pentagram.js +0 -77
  156. package/src/diagrams/pentagram.js.map +0 -1
  157. package/src/diagrams/people.d.ts +0 -2
  158. package/src/diagrams/people.js +0 -19
  159. package/src/diagrams/people.js.map +0 -1
  160. package/src/diagrams/rectangle.d.ts +0 -3
  161. package/src/diagrams/rectangle.js +0 -26
  162. package/src/diagrams/rectangle.js.map +0 -1
  163. package/src/diagrams/svg/parse.d.ts +0 -15
  164. package/src/diagrams/svg/parse.js +0 -326
  165. package/src/diagrams/svg/parse.js.map +0 -1
  166. package/src/diagrams/svgPath.d.ts +0 -2
  167. package/src/diagrams/svgPath.js +0 -30
  168. package/src/diagrams/svgPath.js.map +0 -1
  169. package/src/diagrams/triangle.d.ts +0 -3
  170. package/src/diagrams/triangle.js +0 -41
  171. package/src/diagrams/triangle.js.map +0 -1
  172. package/src/diagrams/video.d.ts +0 -5
  173. package/src/diagrams/video.js +0 -185
  174. package/src/diagrams/video.js.map +0 -1
  175. package/src/dialog/dialog.d.ts +0 -14
  176. package/src/dialog/dialog.js +0 -77
  177. package/src/dialog/dialog.js.map +0 -1
  178. package/src/dialog/index.js +0 -2
  179. package/src/dialog/index.js.map +0 -1
  180. package/src/event/event.d.ts +0 -102
  181. package/src/event/event.js +0 -22
  182. package/src/event/event.js.map +0 -1
  183. package/src/event/index.js +0 -2
  184. package/src/event/index.js.map +0 -1
  185. package/src/map/index.js +0 -2
  186. package/src/map/index.js.map +0 -1
  187. package/src/map/map.d.ts +0 -21
  188. package/src/map/map.js +0 -210
  189. package/src/map/map.js.map +0 -1
  190. package/src/options.d.ts +0 -130
  191. package/src/options.js +0 -80
  192. package/src/options.js.map +0 -1
  193. package/src/pen/arrow.d.ts +0 -4
  194. package/src/pen/arrow.js +0 -188
  195. package/src/pen/arrow.js.map +0 -1
  196. package/src/pen/index.js +0 -7
  197. package/src/pen/index.js.map +0 -1
  198. package/src/pen/math.d.ts +0 -28
  199. package/src/pen/math.js +0 -304
  200. package/src/pen/math.js.map +0 -1
  201. package/src/pen/model.d.ts +0 -512
  202. package/src/pen/model.js +0 -209
  203. package/src/pen/model.js.map +0 -1
  204. package/src/pen/plugin.d.ts +0 -5
  205. package/src/pen/plugin.js +0 -88
  206. package/src/pen/plugin.js.map +0 -1
  207. package/src/pen/render.d.ts +0 -147
  208. package/src/pen/render.js +0 -3229
  209. package/src/pen/render.js.map +0 -1
  210. package/src/pen/text.d.ts +0 -8
  211. package/src/pen/text.js +0 -375
  212. package/src/pen/text.js.map +0 -1
  213. package/src/pen/utils.d.ts +0 -2
  214. package/src/pen/utils.js +0 -41
  215. package/src/pen/utils.js.map +0 -1
  216. package/src/point/index.js +0 -2
  217. package/src/point/index.js.map +0 -1
  218. package/src/point/point.d.ts +0 -65
  219. package/src/point/point.js +0 -179
  220. package/src/point/point.js.map +0 -1
  221. package/src/rect/index.js +0 -2
  222. package/src/rect/index.js.map +0 -1
  223. package/src/rect/rect.d.ts +0 -52
  224. package/src/rect/rect.js +0 -486
  225. package/src/rect/rect.js.map +0 -1
  226. package/src/rect/triangle.d.ts +0 -2
  227. package/src/rect/triangle.js +0 -10
  228. package/src/rect/triangle.js.map +0 -1
  229. package/src/scroll/index.js +0 -2
  230. package/src/scroll/index.js.map +0 -1
  231. package/src/scroll/scroll.d.ts +0 -35
  232. package/src/scroll/scroll.js +0 -221
  233. package/src/scroll/scroll.js.map +0 -1
  234. package/src/store/global.d.ts +0 -25
  235. package/src/store/global.js +0 -18
  236. package/src/store/global.js.map +0 -1
  237. package/src/store/index.js +0 -3
  238. package/src/store/index.js.map +0 -1
  239. package/src/store/store.d.ts +0 -226
  240. package/src/store/store.js +0 -121
  241. package/src/store/store.js.map +0 -1
  242. package/src/theme.d.ts +0 -13
  243. package/src/theme.js +0 -23
  244. package/src/theme.js.map +0 -1
  245. package/src/title/index.js +0 -2
  246. package/src/title/index.js.map +0 -1
  247. package/src/title/title.d.ts +0 -30
  248. package/src/title/title.js +0 -99
  249. package/src/title/title.js.map +0 -1
  250. package/src/tooltip/index.js +0 -2
  251. package/src/tooltip/index.js.map +0 -1
  252. package/src/tooltip/tooltip.d.ts +0 -40
  253. package/src/tooltip/tooltip.js +0 -167
  254. package/src/tooltip/tooltip.js.map +0 -1
  255. package/src/utils/browser.d.ts +0 -1
  256. package/src/utils/browser.js +0 -4
  257. package/src/utils/browser.js.map +0 -1
  258. package/src/utils/clone.d.ts +0 -8
  259. package/src/utils/clone.js +0 -88
  260. package/src/utils/clone.js.map +0 -1
  261. package/src/utils/color.d.ts +0 -3
  262. package/src/utils/color.js +0 -126
  263. package/src/utils/color.js.map +0 -1
  264. package/src/utils/error.d.ts +0 -2
  265. package/src/utils/error.js +0 -6
  266. package/src/utils/error.js.map +0 -1
  267. package/src/utils/file.d.ts +0 -3
  268. package/src/utils/file.js +0 -92
  269. package/src/utils/file.js.map +0 -1
  270. package/src/utils/index.js +0 -9
  271. package/src/utils/index.js.map +0 -1
  272. package/src/utils/math.d.ts +0 -18
  273. package/src/utils/math.js +0 -152
  274. package/src/utils/math.js.map +0 -1
  275. package/src/utils/object.d.ts +0 -2
  276. package/src/utils/object.js +0 -21
  277. package/src/utils/object.js.map +0 -1
  278. package/src/utils/padding.d.ts +0 -7
  279. package/src/utils/padding.js +0 -47
  280. package/src/utils/padding.js.map +0 -1
  281. package/src/utils/time.d.ts +0 -1
  282. package/src/utils/time.js +0 -17
  283. package/src/utils/time.js.map +0 -1
  284. package/src/utils/url.d.ts +0 -4
  285. package/src/utils/url.js +0 -27
  286. package/src/utils/url.js.map +0 -1
  287. package/src/utils/uuid.d.ts +0 -4
  288. package/src/utils/uuid.js +0 -13
  289. package/src/utils/uuid.js.map +0 -1
  290. /package/{index.d.ts → index.ts} +0 -0
  291. /package/src/canvas/{index.d.ts → index.ts} +0 -0
  292. /package/src/diagrams/line/{index.d.ts → index.ts} +0 -0
  293. /package/src/dialog/{index.d.ts → index.ts} +0 -0
  294. /package/src/event/{index.d.ts → index.ts} +0 -0
  295. /package/src/map/{index.d.ts → index.ts} +0 -0
  296. /package/src/pen/{index.d.ts → index.ts} +0 -0
  297. /package/src/point/{index.d.ts → index.ts} +0 -0
  298. /package/src/rect/{index.d.ts → index.ts} +0 -0
  299. /package/src/scroll/{index.d.ts → index.ts} +0 -0
  300. /package/src/store/{index.d.ts → index.ts} +0 -0
  301. /package/src/title/{index.d.ts → index.ts} +0 -0
  302. /package/src/tooltip/{index.d.ts → index.ts} +0 -0
package/src/pen/text.js DELETED
@@ -1,375 +0,0 @@
1
- var __values = (this && this.__values) || function(o) {
2
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
- if (m) return m.call(o);
4
- if (o && typeof o.length === "number") return {
5
- next: function () {
6
- if (o && i >= o.length) o = void 0;
7
- return { value: o && o[i++], done: !o };
8
- }
9
- };
10
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
- };
12
- var __read = (this && this.__read) || function (o, n) {
13
- var m = typeof Symbol === "function" && o[Symbol.iterator];
14
- if (!m) return o;
15
- var i = m.call(o), r, ar = [], e;
16
- try {
17
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
18
- }
19
- catch (error) { e = { error: error }; }
20
- finally {
21
- try {
22
- if (r && !r.done && (m = i["return"])) m.call(i);
23
- }
24
- finally { if (e) throw e.error; }
25
- }
26
- return ar;
27
- };
28
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
- if (ar || !(i in from)) {
31
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
- ar[i] = from[i];
33
- }
34
- }
35
- return to.concat(ar || Array.prototype.slice.call(from));
36
- };
37
- import { calcRightBottom } from '../rect';
38
- import { getFont } from './render';
39
- export function calcTextRect(pen) {
40
- var _a = pen.calculative, paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom, paddingLeft = _a.paddingLeft, paddingRight = _a.paddingRight, worldRect = _a.worldRect, canvas = _a.canvas;
41
- var _b = pen.calculative, textLeft = _b.textLeft, textTop = _b.textTop, textWidth = _b.textWidth, textHeight = _b.textHeight;
42
- var x = paddingLeft;
43
- var y = paddingTop;
44
- // if (textLeft && Math.abs(textLeft) < 1) {
45
- // textLeft *= worldRect.width;
46
- // }
47
- // if (textTop && Math.abs(textTop) < 1) {
48
- // textTop *= worldRect.height;
49
- // }
50
- var width = worldRect.width -
51
- paddingLeft -
52
- paddingRight -
53
- ((pen.textAlign === 'right' ? -textLeft : textLeft) || 0);
54
- var height = worldRect.height -
55
- paddingTop -
56
- paddingBottom -
57
- ((pen.textBaseline === 'bottom' ? -textTop : textTop) || 0);
58
- if (textWidth && textWidth < 1) {
59
- textWidth *= worldRect.width;
60
- }
61
- if (textHeight && textHeight < 1) {
62
- textHeight *= worldRect.height;
63
- }
64
- if (textWidth < pen.calculative.fontSize) {
65
- textWidth = pen.calculative.fontSize;
66
- }
67
- // 默认居左,居上
68
- x += (textLeft || 0) + worldRect.x;
69
- y += (textTop || 0) + worldRect.y;
70
- var textAlign = pen.textAlign || canvas.store.options.textAlign;
71
- var textBaseline = pen.textBaseline || canvas.store.options.textBaseline;
72
- switch (textAlign) {
73
- case 'center':
74
- x += (width - (textWidth || width)) / 2;
75
- break;
76
- case 'right':
77
- x += width - (textWidth || width);
78
- break;
79
- }
80
- switch (textBaseline) {
81
- case 'middle':
82
- y += (height - (textHeight || height)) / 2;
83
- break;
84
- case 'bottom':
85
- y += height - (textHeight || height);
86
- break;
87
- }
88
- var rect = {
89
- x: x,
90
- y: y,
91
- width: textWidth || width,
92
- height: textHeight || height,
93
- };
94
- calcRightBottom(rect);
95
- pen.calculative.worldTextRect = rect;
96
- calcTextLines(pen);
97
- pen.calculative.textDrawRect = undefined;
98
- }
99
- export function calcTextDrawRect(ctx, pen) {
100
- // By default, the text is center aligned.
101
- var lineHeight = pen.calculative.fontSize * pen.calculative.lineHeight;
102
- var h = pen.calculative.textLines.length * lineHeight;
103
- var textWidth = calcTextAdaptionWidth(ctx, pen); // 多行文本最大宽度
104
- var rect = pen.calculative.worldTextRect;
105
- var x = rect.x + (rect.width - textWidth) / 2;
106
- var y = rect.y + (rect.height - h) / 2;
107
- var options = pen.calculative.canvas.store.options;
108
- var textAlign = pen.textAlign || options.textAlign;
109
- switch (textAlign) {
110
- case 'left':
111
- x = rect.x;
112
- break;
113
- case 'right':
114
- x = rect.x + rect.width - textWidth;
115
- break;
116
- }
117
- var textBaseline = pen.textBaseline || options.textBaseline;
118
- switch (textBaseline) {
119
- case 'top':
120
- y = rect.y;
121
- break;
122
- case 'bottom':
123
- y = rect.ey - h;
124
- break;
125
- }
126
- pen.calculative.textDrawRect = {
127
- x: x,
128
- y: y,
129
- width: textWidth,
130
- height: h,
131
- };
132
- calcRightBottom(pen.calculative.textDrawRect);
133
- }
134
- export function calcTextLines(pen, text) {
135
- var e_1, _a, e_2, _b;
136
- if (text === void 0) { text = pen.calculative.text; }
137
- if (text == undefined) {
138
- pen.calculative.textLines = [];
139
- return;
140
- }
141
- text = text.toString();
142
- var lines = [];
143
- var oneRowHeight = pen.calculative.fontSize * pen.calculative.lineHeight;
144
- var textHeight = pen.calculative.worldTextRect.height;
145
- var calcRows = Math.floor(textHeight / oneRowHeight);
146
- // 最小值为 1
147
- var maxRows = calcRows > 1 ? calcRows : 1;
148
- switch (pen.whiteSpace) {
149
- case 'nowrap':
150
- if (pen.ellipsis !== false) {
151
- var allLines = wrapLines(text.split(''), pen);
152
- if (allLines[0]) {
153
- lines.push(allLines[0]);
154
- if (allLines.length > 1) {
155
- // 存在第二行,说明宽度超出
156
- setEllipsisOnLastLine(lines);
157
- }
158
- }
159
- }
160
- else {
161
- lines.push(text);
162
- }
163
- break;
164
- case 'pre-line':
165
- lines = text.split(/[\n]/g);
166
- if (pen.ellipsis !== false && lines.length > maxRows) {
167
- lines = lines.slice(0, maxRows);
168
- setEllipsisOnLastLine(lines);
169
- }
170
- break;
171
- case 'break-all':
172
- default:
173
- var paragraphs = text.split(/[\n]/g);
174
- var currentRow = 0;
175
- try {
176
- outer: for (var paragraphs_1 = __values(paragraphs), paragraphs_1_1 = paragraphs_1.next(); !paragraphs_1_1.done; paragraphs_1_1 = paragraphs_1.next()) {
177
- var paragraph = paragraphs_1_1.value;
178
- var words = pen.whiteSpace === 'break-all'
179
- ? paragraph.split('')
180
- : getWords(paragraph);
181
- var items = wrapLines(words, pen);
182
- // 空行换行的情况
183
- if (items.length === 0)
184
- items = [''];
185
- if (pen.ellipsis != false) {
186
- try {
187
- for (var items_1 = (e_2 = void 0, __values(items)), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
188
- var l = items_1_1.value;
189
- currentRow++;
190
- if (currentRow > maxRows) {
191
- setEllipsisOnLastLine(lines);
192
- break outer;
193
- }
194
- else {
195
- lines.push(l);
196
- }
197
- }
198
- }
199
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
200
- finally {
201
- try {
202
- if (items_1_1 && !items_1_1.done && (_b = items_1.return)) _b.call(items_1);
203
- }
204
- finally { if (e_2) throw e_2.error; }
205
- }
206
- }
207
- else {
208
- lines.push.apply(lines, __spreadArray([], __read(items), false));
209
- }
210
- }
211
- }
212
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
213
- finally {
214
- try {
215
- if (paragraphs_1_1 && !paragraphs_1_1.done && (_a = paragraphs_1.return)) _a.call(paragraphs_1);
216
- }
217
- finally { if (e_1) throw e_1.error; }
218
- }
219
- break;
220
- }
221
- var keepDecimal = pen.calculative.keepDecimal;
222
- if (keepDecimal != undefined) {
223
- lines.forEach(function (text, i) {
224
- var textNum = Number(text);
225
- if (!isNaN(textNum)) {
226
- lines[i] = textNum.toFixed(keepDecimal);
227
- }
228
- });
229
- }
230
- pen.calculative.textLines = lines;
231
- return lines;
232
- }
233
- export function getWords(txt) {
234
- if (txt === void 0) { txt = ''; }
235
- var words = [];
236
- var word = '';
237
- for (var i = 0; i < txt.length; ++i) {
238
- var ch = txt.charCodeAt(i);
239
- if (ch < 33 || ch > 126) {
240
- if (word) {
241
- words.push(word);
242
- word = '';
243
- }
244
- words.push(txt[i]);
245
- }
246
- else {
247
- word += txt[i];
248
- }
249
- }
250
- if (word) {
251
- words.push(word);
252
- }
253
- return words;
254
- }
255
- export function wrapLines(words, pen) {
256
- var canvas = pen.calculative.canvas;
257
- var ctx = canvas.offscreen.getContext('2d');
258
- var _a = pen.calculative, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, lineHeight = _a.lineHeight;
259
- ctx.save();
260
- var lines = [];
261
- var currentLine = words[0] || '';
262
- for (var i = 1; i < words.length; ++i) {
263
- var word = words[i] || '';
264
- var text = currentLine + word;
265
- var currentWidth = 0;
266
- if (canvas.store.options.measureTextWidth) {
267
- ctx.font = getFont({
268
- fontStyle: fontStyle,
269
- fontWeight: fontWeight,
270
- fontFamily: fontFamily || canvas.store.options.fontFamily,
271
- fontSize: fontSize,
272
- lineHeight: lineHeight,
273
- });
274
- currentWidth = ctx.measureText(text).width;
275
- }
276
- else {
277
- // 近似计算
278
- var chinese = text.match(/[^\x00-\xff]/g) || '';
279
- var chineseWidth = chinese.length * fontSize; // 中文占用的宽度
280
- var spaces = text.match(/\s/g) || '';
281
- var spaceWidth = spaces.length * fontSize * 0.3; // 空格占用的宽度
282
- var otherWidth = (text.length - chinese.length - spaces.length) * fontSize * 0.6; // 其他字符占用的宽度
283
- currentWidth = chineseWidth + spaceWidth + otherWidth;
284
- }
285
- var textWidth = pen.calculative.worldTextRect.width;
286
- if (currentWidth <= textWidth + 0.1) {
287
- currentLine += word;
288
- }
289
- else {
290
- currentLine.length && lines.push(currentLine);
291
- currentLine = word;
292
- }
293
- }
294
- currentLine.length && lines.push(currentLine);
295
- ctx.restore();
296
- return lines;
297
- }
298
- export function calcTextAdaptionWidth(ctx, pen) {
299
- var maxWidth = 0;
300
- pen.calculative.textLineWidths = [];
301
- pen.calculative.textLines.forEach(function (text) {
302
- var width = ctx.measureText(text).width;
303
- pen.calculative.textLineWidths.push(width);
304
- maxWidth < width && (maxWidth = width);
305
- });
306
- return maxWidth;
307
- }
308
- /**
309
- * 副作用函数,会修改传入的参数
310
- * 把最后一行的最后变成 ...
311
- * TODO: 中文的三个字符宽度比 . 大,显示起来像是删多了
312
- * @param lines
313
- */
314
- function setEllipsisOnLastLine(lines) {
315
- lines[lines.length - 1] = lines[lines.length - 1].slice(0, -3) + '...';
316
- }
317
- export function calcTextAutoWidth(pen) {
318
- var arr = pen.text.split('\n');
319
- var canvas = pen.calculative.canvas;
320
- var ctx = canvas.offscreen.getContext('2d');
321
- var _a = pen.calculative, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, lineHeight = _a.lineHeight;
322
- var textWidth = 0; // pen.calculative.worldTextRect.width;
323
- var currentWidth = 0; // textWidth;
324
- ctx.save();
325
- for (var i = 0; i < arr.length; i++) {
326
- if (canvas.store.options.measureTextWidth) {
327
- ctx.font = getFont({
328
- fontStyle: fontStyle,
329
- fontWeight: fontWeight,
330
- fontFamily: fontFamily || canvas.store.options.fontFamily,
331
- fontSize: fontSize,
332
- lineHeight: lineHeight,
333
- });
334
- currentWidth = ctx.measureText(arr[i]).width; //* scale;
335
- }
336
- else {
337
- // 近似计算
338
- var chinese = arr[i].match(/[^\x00-\xff]/g) || '';
339
- var chineseWidth = chinese.length * fontSize; // 中文占用的宽度
340
- var spaces = arr[i].match(/\s/g) || '';
341
- var spaceWidth = spaces.length * fontSize * 0.3; // 空格占用的宽度
342
- var otherWidth = (arr[i].length - chinese.length - spaces.length) * fontSize * 0.6; // 其他字符占用的宽度
343
- currentWidth = chineseWidth + spaceWidth + otherWidth;
344
- }
345
- if (currentWidth > textWidth) {
346
- textWidth = currentWidth; //* scale;
347
- }
348
- }
349
- ctx.restore();
350
- var textHeight = arr.length * fontSize * lineHeight;
351
- if (pen.textAlign === 'left') {
352
- // pen.x = pen.x;
353
- }
354
- else if (pen.textAlign === 'right') {
355
- pen.x = pen.x - (textWidth - pen.width);
356
- }
357
- else {
358
- pen.x = pen.x - (textWidth - pen.width) / 2;
359
- }
360
- if (pen.textBaseline === 'top') {
361
- }
362
- else if (pen.textBaseline === 'bottom') {
363
- pen.y = pen.y - (textHeight - pen.height);
364
- }
365
- else {
366
- pen.y = pen.y - (textHeight - pen.height) / 2;
367
- }
368
- // if (textHeight > pen.height) {
369
- pen.height = textHeight + 2;
370
- // }
371
- pen.width = textWidth + 2; //误差
372
- pen.calculative.canvas.updatePenRect(pen);
373
- pen.calculative.canvas.calcActiveRect();
374
- }
375
- //# sourceMappingURL=text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../packages/core/src/pen/text.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Pen } from './model';
2
- export declare function randomId(pen: Pen): void;
package/src/pen/utils.js DELETED
@@ -1,41 +0,0 @@
1
- var __values = (this && this.__values) || function(o) {
2
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
- if (m) return m.call(o);
4
- if (o && typeof o.length === "number") return {
5
- next: function () {
6
- if (o && i >= o.length) o = void 0;
7
- return { value: o && o[i++], done: !o };
8
- }
9
- };
10
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
- };
12
- import { s8 } from '@meta2d/core';
13
- export function randomId(pen) {
14
- var e_1, _a;
15
- pen.id = s8();
16
- if (Array.isArray(pen.anchors)) {
17
- try {
18
- for (var _b = __values(pen.anchors), _c = _b.next(); !_c.done; _c = _b.next()) {
19
- var pt = _c.value;
20
- pen.type && (pt.id = s8());
21
- pt.penId = pen.id;
22
- if (pt.prev) {
23
- pen.type && (pt.prev.id = s8());
24
- pt.prev.penId = pen.id;
25
- }
26
- if (pt.next) {
27
- pen.type && (pt.next.id = s8());
28
- pt.next.penId = pen.id;
29
- }
30
- }
31
- }
32
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
33
- finally {
34
- try {
35
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
36
- }
37
- finally { if (e_1) throw e_1.error; }
38
- }
39
- }
40
- }
41
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/core/src/pen/utils.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,MAAM,UAAU,QAAQ,CAAC,GAAQ;;IAC/B,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IACd,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;;YAC9B,KAAiB,IAAA,KAAA,SAAA,GAAG,CAAC,OAAO,CAAA,gBAAA,4BAAE;gBAAzB,IAAM,EAAE,WAAA;gBACX,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3B,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,EAAE,CAAC,IAAI,EAAE;oBACX,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;oBAChC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;iBACxB;gBAED,IAAI,EAAE,CAAC,IAAI,EAAE;oBACX,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;oBAChC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;iBACxB;aACF;;;;;;;;;KACF;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './point';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/point/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -1,65 +0,0 @@
1
- import { Direction } from '../data';
2
- import { Pen } from '../pen';
3
- import { Meta2dStore } from '../store';
4
- export declare enum PrevNextType {
5
- Mirror = 0,
6
- Bilateral = 1,
7
- Free = 2
8
- }
9
- export declare enum TwoWay {
10
- Default = 0,
11
- In = 1,
12
- Out = 2,
13
- DisableConnected = 3,
14
- DisableConnectTo = 4,
15
- Disable = 10
16
- }
17
- export declare enum PointType {
18
- Default = 0,
19
- Line = 1
20
- }
21
- export interface Point {
22
- x: number;
23
- y: number;
24
- radius?: number;
25
- color?: string;
26
- background?: string;
27
- id?: string;
28
- penId?: string;
29
- connectTo?: string;
30
- anchorId?: string;
31
- twoWay?: TwoWay;
32
- prev?: Point;
33
- next?: Point;
34
- prevNextType?: PrevNextType;
35
- start?: boolean;
36
- lineLength?: number;
37
- step?: number;
38
- curvePoints?: Point[];
39
- rotate?: number;
40
- hidden?: boolean;
41
- locked?: number;
42
- flag?: number;
43
- isTemp?: boolean;
44
- dockAnchorId?: string;
45
- direction?: Direction;
46
- title?: string;
47
- type?: PointType;
48
- length?: number;
49
- distance?: number;
50
- }
51
- export declare function rotatePoint(pt: Point, angle: number, center: Point): void;
52
- export declare function hitPoint(pt: Point, target: Point, radius?: number, pen?: Pen): boolean;
53
- export declare function scalePoint(pt: Point, scale: number, center: Point): void;
54
- export declare function calcRotate(pt: Point, center: Point): number;
55
- export declare function distance(pt1: Point, pt2: Point): number;
56
- export declare function facePoint(pt: Point, targetPt?: Point): Direction;
57
- export declare function translatePoint(pt: Point, x: number, y: number): void;
58
- /**
59
- * 是否是同一个点
60
- * @param pt1 点1
61
- * @param pt2 点2
62
- * @returns true 相同
63
- */
64
- export declare function samePoint(pt1: Point, pt2: Point): boolean;
65
- export declare function getDistance(form: Point, to: Point, store: Meta2dStore): void;