@meta2d/core 1.0.56 → 1.0.58

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 (299) hide show
  1. package/{index.ts → index.d.ts} +9 -9
  2. package/index.js +10 -0
  3. package/index.js.map +1 -0
  4. package/package.json +38 -39
  5. package/src/canvas/canvas.d.ts +456 -0
  6. package/src/canvas/canvas.js +7584 -0
  7. package/src/canvas/canvas.js.map +1 -0
  8. package/src/canvas/canvasImage.d.ts +27 -0
  9. package/src/canvas/canvasImage.js +441 -0
  10. package/src/canvas/canvasImage.js.map +1 -0
  11. package/src/canvas/canvasTemplate.d.ts +18 -0
  12. package/src/canvas/canvasTemplate.js +209 -0
  13. package/src/canvas/canvasTemplate.js.map +1 -0
  14. package/src/canvas/{index.ts → index.d.ts} +2 -2
  15. package/src/canvas/index.js +3 -0
  16. package/src/canvas/index.js.map +1 -0
  17. package/src/canvas/magnifierCanvas.d.ts +19 -0
  18. package/src/canvas/magnifierCanvas.js +102 -0
  19. package/src/canvas/magnifierCanvas.js.map +1 -0
  20. package/src/canvas/offscreen.d.ts +1 -0
  21. package/src/canvas/offscreen.js +14 -0
  22. package/src/canvas/offscreen.js.map +1 -0
  23. package/src/core.d.ts +479 -0
  24. package/src/core.js +4609 -0
  25. package/src/core.js.map +1 -0
  26. package/src/data.d.ts +34 -0
  27. package/src/data.js +85 -0
  28. package/src/data.js.map +1 -0
  29. package/src/diagrams/arrow.d.ts +4 -0
  30. package/src/diagrams/arrow.js +47 -0
  31. package/src/diagrams/arrow.js.map +1 -0
  32. package/src/diagrams/circle.d.ts +2 -0
  33. package/src/diagrams/circle.js +9 -0
  34. package/src/diagrams/circle.js.map +1 -0
  35. package/src/diagrams/cloud.d.ts +2 -0
  36. package/src/diagrams/cloud.js +12 -0
  37. package/src/diagrams/cloud.js.map +1 -0
  38. package/src/diagrams/cube.d.ts +2 -0
  39. package/src/diagrams/cube.js +68 -0
  40. package/src/diagrams/cube.js.map +1 -0
  41. package/src/diagrams/diamond.d.ts +2 -0
  42. package/src/diagrams/diamond.js +13 -0
  43. package/src/diagrams/diamond.js.map +1 -0
  44. package/src/diagrams/file.d.ts +2 -0
  45. package/src/diagrams/file.js +18 -0
  46. package/src/diagrams/file.js.map +1 -0
  47. package/src/diagrams/gif.d.ts +5 -0
  48. package/src/diagrams/gif.js +89 -0
  49. package/src/diagrams/gif.js.map +1 -0
  50. package/src/diagrams/hexagon.d.ts +2 -0
  51. package/src/diagrams/{hexagon.ts → hexagon.js} +55 -60
  52. package/src/diagrams/hexagon.js.map +1 -0
  53. package/src/diagrams/iframe.d.ts +2 -0
  54. package/src/diagrams/iframe.js +338 -0
  55. package/src/diagrams/iframe.js.map +1 -0
  56. package/src/diagrams/index.d.ts +71 -0
  57. package/src/diagrams/{index.ts → index.js} +77 -79
  58. package/src/diagrams/index.js.map +1 -0
  59. package/src/diagrams/line/arrow.d.ts +2 -0
  60. package/src/diagrams/line/arrow.js +128 -0
  61. package/src/diagrams/line/arrow.js.map +1 -0
  62. package/src/diagrams/line/curve.d.ts +16 -0
  63. package/src/diagrams/line/curve.js +227 -0
  64. package/src/diagrams/line/curve.js.map +1 -0
  65. package/src/diagrams/line/{index.ts → index.d.ts} +5 -5
  66. package/src/diagrams/line/index.js +6 -0
  67. package/src/diagrams/line/index.js.map +1 -0
  68. package/src/diagrams/line/line.d.ts +42 -0
  69. package/src/diagrams/line/line.js +375 -0
  70. package/src/diagrams/line/line.js.map +1 -0
  71. package/src/diagrams/line/polyline.d.ts +10 -0
  72. package/src/diagrams/line/polyline.js +627 -0
  73. package/src/diagrams/line/polyline.js.map +1 -0
  74. package/src/diagrams/line/smooth.d.ts +3 -0
  75. package/src/diagrams/line/smooth.js +136 -0
  76. package/src/diagrams/line/smooth.js.map +1 -0
  77. package/src/diagrams/message.d.ts +2 -0
  78. package/src/diagrams/message.js +15 -0
  79. package/src/diagrams/message.js.map +1 -0
  80. package/src/diagrams/mindLine.d.ts +3 -0
  81. package/src/diagrams/mindLine.js +30 -0
  82. package/src/diagrams/mindLine.js.map +1 -0
  83. package/src/diagrams/mindNode.d.ts +3 -0
  84. package/src/diagrams/mindNode.js +161 -0
  85. package/src/diagrams/mindNode.js.map +1 -0
  86. package/src/diagrams/panel.d.ts +2 -0
  87. package/src/diagrams/panel.js +131 -0
  88. package/src/diagrams/panel.js.map +1 -0
  89. package/src/diagrams/pentagon.d.ts +3 -0
  90. package/src/diagrams/pentagon.js +45 -0
  91. package/src/diagrams/pentagon.js.map +1 -0
  92. package/src/diagrams/pentagram.d.ts +3 -0
  93. package/src/diagrams/pentagram.js +51 -0
  94. package/src/diagrams/pentagram.js.map +1 -0
  95. package/src/diagrams/people.d.ts +2 -0
  96. package/src/diagrams/people.js +19 -0
  97. package/src/diagrams/people.js.map +1 -0
  98. package/src/diagrams/rectangle.d.ts +3 -0
  99. package/src/diagrams/rectangle.js +27 -0
  100. package/src/diagrams/rectangle.js.map +1 -0
  101. package/src/diagrams/svg/parse.d.ts +15 -0
  102. package/src/diagrams/svg/parse.js +279 -0
  103. package/src/diagrams/svg/parse.js.map +1 -0
  104. package/src/diagrams/svgPath.d.ts +2 -0
  105. package/src/diagrams/svgPath.js +29 -0
  106. package/src/diagrams/svgPath.js.map +1 -0
  107. package/src/diagrams/triangle.d.ts +3 -0
  108. package/src/diagrams/triangle.js +40 -0
  109. package/src/diagrams/triangle.js.map +1 -0
  110. package/src/diagrams/video.d.ts +5 -0
  111. package/src/diagrams/video.js +184 -0
  112. package/src/diagrams/video.js.map +1 -0
  113. package/src/dialog/dialog.d.ts +21 -0
  114. package/src/dialog/dialog.js +157 -0
  115. package/src/dialog/dialog.js.map +1 -0
  116. package/src/dialog/{index.ts → index.d.ts} +1 -1
  117. package/src/dialog/index.js +2 -0
  118. package/src/dialog/index.js.map +1 -0
  119. package/src/event/event.d.ts +102 -0
  120. package/src/event/event.js +22 -0
  121. package/src/event/event.js.map +1 -0
  122. package/src/event/{index.ts → index.d.ts} +1 -1
  123. package/src/event/index.js +2 -0
  124. package/src/event/index.js.map +1 -0
  125. package/src/map/{index.ts → index.d.ts} +1 -1
  126. package/src/map/index.js +2 -0
  127. package/src/map/index.js.map +1 -0
  128. package/src/map/map.d.ts +21 -0
  129. package/src/map/map.js +212 -0
  130. package/src/map/map.js.map +1 -0
  131. package/src/options.d.ts +130 -0
  132. package/src/options.js +80 -0
  133. package/src/options.js.map +1 -0
  134. package/src/pen/arrow.d.ts +4 -0
  135. package/src/pen/arrow.js +188 -0
  136. package/src/pen/arrow.js.map +1 -0
  137. package/src/pen/{index.ts → index.d.ts} +6 -6
  138. package/src/pen/index.js +7 -0
  139. package/src/pen/index.js.map +1 -0
  140. package/src/pen/math.d.ts +28 -0
  141. package/src/pen/math.js +213 -0
  142. package/src/pen/math.js.map +1 -0
  143. package/src/pen/model.d.ts +514 -0
  144. package/src/pen/model.js +210 -0
  145. package/src/pen/model.js.map +1 -0
  146. package/src/pen/plugin.d.ts +5 -0
  147. package/src/pen/plugin.js +58 -0
  148. package/src/pen/plugin.js.map +1 -0
  149. package/src/pen/render.d.ts +146 -0
  150. package/src/pen/render.js +3234 -0
  151. package/src/pen/render.js.map +1 -0
  152. package/src/pen/text.d.ts +8 -0
  153. package/src/pen/text.js +314 -0
  154. package/src/pen/text.js.map +1 -0
  155. package/src/pen/utils.d.ts +2 -0
  156. package/src/pen/utils.js +19 -0
  157. package/src/pen/utils.js.map +1 -0
  158. package/src/point/{index.ts → index.d.ts} +1 -1
  159. package/src/point/index.js +2 -0
  160. package/src/point/index.js.map +1 -0
  161. package/src/point/point.d.ts +65 -0
  162. package/src/point/point.js +178 -0
  163. package/src/point/point.js.map +1 -0
  164. package/src/rect/{index.ts → index.d.ts} +1 -1
  165. package/src/rect/index.js +2 -0
  166. package/src/rect/index.js.map +1 -0
  167. package/src/rect/rect.d.ts +52 -0
  168. package/src/rect/rect.js +427 -0
  169. package/src/rect/rect.js.map +1 -0
  170. package/src/rect/triangle.d.ts +2 -0
  171. package/src/rect/triangle.js +10 -0
  172. package/src/rect/triangle.js.map +1 -0
  173. package/src/scroll/{index.ts → index.d.ts} +1 -1
  174. package/src/scroll/index.js +2 -0
  175. package/src/scroll/index.js.map +1 -0
  176. package/src/scroll/scroll.d.ts +35 -0
  177. package/src/scroll/scroll.js +234 -0
  178. package/src/scroll/scroll.js.map +1 -0
  179. package/src/store/global.d.ts +25 -0
  180. package/src/store/global.js +18 -0
  181. package/src/store/global.js.map +1 -0
  182. package/src/store/{index.ts → index.d.ts} +2 -2
  183. package/src/store/index.js +3 -0
  184. package/src/store/index.js.map +1 -0
  185. package/src/store/store.d.ts +228 -0
  186. package/src/store/store.js +87 -0
  187. package/src/store/store.js.map +1 -0
  188. package/src/theme.d.ts +13 -0
  189. package/src/theme.js +23 -0
  190. package/src/theme.js.map +1 -0
  191. package/src/title/{index.ts → index.d.ts} +1 -1
  192. package/src/title/index.js +2 -0
  193. package/src/title/index.js.map +1 -0
  194. package/src/title/title.d.ts +30 -0
  195. package/src/title/title.js +99 -0
  196. package/src/title/title.js.map +1 -0
  197. package/src/tooltip/{index.ts → index.d.ts} +1 -1
  198. package/src/tooltip/index.js +2 -0
  199. package/src/tooltip/index.js.map +1 -0
  200. package/src/tooltip/tooltip.d.ts +40 -0
  201. package/src/tooltip/tooltip.js +172 -0
  202. package/src/tooltip/tooltip.js.map +1 -0
  203. package/src/utils/clone.d.ts +8 -0
  204. package/src/utils/clone.js +84 -0
  205. package/src/utils/clone.js.map +1 -0
  206. package/src/utils/color.d.ts +3 -0
  207. package/src/utils/color.js +110 -0
  208. package/src/utils/color.js.map +1 -0
  209. package/src/utils/error.d.ts +2 -0
  210. package/src/utils/error.js +6 -0
  211. package/src/utils/error.js.map +1 -0
  212. package/src/utils/file.d.ts +3 -0
  213. package/src/utils/file.js +40 -0
  214. package/src/utils/file.js.map +1 -0
  215. package/src/utils/{index.ts → index.d.ts} +9 -9
  216. package/src/utils/index.js +10 -0
  217. package/src/utils/index.js.map +1 -0
  218. package/src/utils/math.d.ts +18 -0
  219. package/src/utils/math.js +114 -0
  220. package/src/utils/math.js.map +1 -0
  221. package/src/utils/object.d.ts +2 -0
  222. package/src/utils/object.js +21 -0
  223. package/src/utils/object.js.map +1 -0
  224. package/src/utils/padding.d.ts +7 -0
  225. package/src/utils/padding.js +47 -0
  226. package/src/utils/padding.js.map +1 -0
  227. package/src/utils/time.d.ts +1 -0
  228. package/src/utils/time.js +17 -0
  229. package/src/utils/time.js.map +1 -0
  230. package/src/utils/url.d.ts +4 -0
  231. package/src/utils/url.js +27 -0
  232. package/src/utils/url.js.map +1 -0
  233. package/src/utils/uuid.d.ts +4 -0
  234. package/src/utils/uuid.js +13 -0
  235. package/src/utils/uuid.js.map +1 -0
  236. package/README.md +0 -13
  237. package/package.build.json +0 -39
  238. package/src/canvas/canvas.ts +0 -8639
  239. package/src/canvas/canvasImage.ts +0 -525
  240. package/src/canvas/canvasTemplate.ts +0 -257
  241. package/src/canvas/magnifierCanvas.ts +0 -142
  242. package/src/canvas/offscreen.ts +0 -14
  243. package/src/core.ts +0 -5128
  244. package/src/data.ts +0 -86
  245. package/src/diagrams/arrow.ts +0 -50
  246. package/src/diagrams/circle.ts +0 -19
  247. package/src/diagrams/cloud.ts +0 -34
  248. package/src/diagrams/cube.ts +0 -94
  249. package/src/diagrams/diamond.ts +0 -14
  250. package/src/diagrams/file.ts +0 -19
  251. package/src/diagrams/gif.ts +0 -105
  252. package/src/diagrams/iframe.ts +0 -365
  253. package/src/diagrams/line/arrow.ts +0 -175
  254. package/src/diagrams/line/curve.ts +0 -260
  255. package/src/diagrams/line/line.ts +0 -409
  256. package/src/diagrams/line/polyline.ts +0 -676
  257. package/src/diagrams/line/smooth.ts +0 -133
  258. package/src/diagrams/message.ts +0 -17
  259. package/src/diagrams/mindLine.ts +0 -31
  260. package/src/diagrams/mindNode.ts +0 -177
  261. package/src/diagrams/panel.ts +0 -149
  262. package/src/diagrams/pentagon.ts +0 -48
  263. package/src/diagrams/pentagram.ts +0 -63
  264. package/src/diagrams/people.ts +0 -23
  265. package/src/diagrams/rectangle.ts +0 -29
  266. package/src/diagrams/svg/parse.ts +0 -319
  267. package/src/diagrams/svgPath.ts +0 -53
  268. package/src/diagrams/triangle.ts +0 -43
  269. package/src/diagrams/video.ts +0 -202
  270. package/src/dialog/dialog.ts +0 -177
  271. package/src/event/event.ts +0 -142
  272. package/src/map/map.ts +0 -239
  273. package/src/options.ts +0 -205
  274. package/src/pen/arrow.ts +0 -259
  275. package/src/pen/math.ts +0 -253
  276. package/src/pen/model.ts +0 -785
  277. package/src/pen/plugin.ts +0 -57
  278. package/src/pen/render.ts +0 -3725
  279. package/src/pen/text.ts +0 -341
  280. package/src/pen/utils.ts +0 -21
  281. package/src/point/point.ts +0 -232
  282. package/src/rect/rect.ts +0 -507
  283. package/src/rect/triangle.ts +0 -16
  284. package/src/scroll/scroll.ts +0 -277
  285. package/src/store/global.ts +0 -38
  286. package/src/store/store.ts +0 -293
  287. package/src/theme.ts +0 -35
  288. package/src/title/title.ts +0 -115
  289. package/src/tooltip/tooltip.ts +0 -199
  290. package/src/utils/clone.ts +0 -79
  291. package/src/utils/color.ts +0 -126
  292. package/src/utils/error.ts +0 -7
  293. package/src/utils/file.ts +0 -46
  294. package/src/utils/math.ts +0 -120
  295. package/src/utils/object.ts +0 -23
  296. package/src/utils/padding.ts +0 -48
  297. package/src/utils/time.ts +0 -25
  298. package/src/utils/url.ts +0 -30
  299. package/src/utils/uuid.ts +0 -15
@@ -1,9 +1,9 @@
1
- export * from './src/core';
2
- export * from './src/options';
3
- export * from './src/data';
4
- export * from './src/utils';
5
- export * from './src/pen';
6
- export * from './src/rect';
7
- export * from './src/point';
8
- export * from './src/event';
9
- export * from './src/store';
1
+ export * from './src/core';
2
+ export * from './src/options';
3
+ export * from './src/data';
4
+ export * from './src/utils';
5
+ export * from './src/pen';
6
+ export * from './src/rect';
7
+ export * from './src/point';
8
+ export * from './src/event';
9
+ export * from './src/store';
package/index.js ADDED
@@ -0,0 +1,10 @@
1
+ export * from './src/core';
2
+ export * from './src/options';
3
+ export * from './src/data';
4
+ export * from './src/utils';
5
+ export * from './src/pen';
6
+ export * from './src/rect';
7
+ export * from './src/point';
8
+ export * from './src/event';
9
+ export * from './src/store';
10
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,39 +1,38 @@
1
- {
2
- "name": "@meta2d/core",
3
- "version": "1.0.56",
4
- "description": "@meta2d/core: Powerful, Beautiful, Simple, Open - Web-Based 2D At Its Best .",
5
- "main": "index.ts",
6
- "types": "index.d.ts",
7
- "scripts": {
8
- "copy": "shx cp package.build.json ../../dist/core/package.json",
9
- "build": "tsc && npm run copy"
10
- },
11
- "keywords": [
12
- "meta2d",
13
- "diagram",
14
- "2D",
15
- "canvas"
16
- ],
17
- "author": "alsmile123@qq.com",
18
- "license": "MIT",
19
- "repository": {
20
- "type": "git",
21
- "url": "git+https://github.com/le5le-com/meta2d.js.git"
22
- },
23
- "bugs": {
24
- "url": "https://github.com/le5le-com/meta2d.js/issues"
25
- },
26
- "homepage": "https://github.com/le5le-com/meta2d.js#readme",
27
- "devDependencies": {
28
- "@types/marked": "^4.0.3",
29
- "@types/offscreencanvas": "latest"
30
- },
31
- "dependencies": {
32
- "mitt": "^2.1.0",
33
- "mqtt": "^4.2.6"
34
- },
35
- "publishConfig": {
36
- "access": "public"
37
- },
38
- "gitHead": "78f2a53ca1839c89b56e2e498d17ba4eb987ad14"
39
- }
1
+ {
2
+ "name": "@meta2d/core",
3
+ "version": "1.0.58",
4
+ "description": "@meta2d/core: Powerful, Beautiful, Simple, Open - Web-Based 2D At Its Best .",
5
+ "main": "index.js",
6
+ "types": "index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc"
9
+ },
10
+ "keywords": [
11
+ "meta2d",
12
+ "diagram",
13
+ "2D",
14
+ "canvas"
15
+ ],
16
+ "author": "alsmile123@qq.com",
17
+ "license": "MIT",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/le5le-com/meta2d.js.git"
21
+ },
22
+ "bugs": {
23
+ "url": "https://github.com/le5le-com/meta2d.js/issues"
24
+ },
25
+ "homepage": "https://github.com/le5le-com/meta2d.js#readme",
26
+ "devDependencies": {
27
+ "@types/marked": "^4.0.3",
28
+ "@types/offscreencanvas": "latest"
29
+ },
30
+ "dependencies": {
31
+ "mitt": "^2.1.0",
32
+ "mqtt": "^4.2.6"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
37
+ "gitHead": "78f2a53ca1839c89b56e2e498d17ba4eb987ad14"
38
+ }
@@ -0,0 +1,456 @@
1
+ import { Pen, IValue } from '../pen';
2
+ import { Point } from '../point';
3
+ import { Rect } from '../rect';
4
+ import { EditAction, Fit, Meta2dStore } from '../store';
5
+ import { Padding } from '../utils';
6
+ import { HotkeyType, HoverType, MouseRight } from '../data';
7
+ import { curve, mind, lineSegment } from '../diagrams';
8
+ import { polyline } from '../diagrams/line/polyline';
9
+ import { Tooltip } from '../tooltip';
10
+ import { Scroll } from '../scroll';
11
+ import { CanvasImage } from './canvasImage';
12
+ import { MagnifierCanvas } from './magnifierCanvas';
13
+ import { Meta2d } from '../core';
14
+ import { Dialog } from '../dialog';
15
+ import { Title } from '../title';
16
+ import { CanvasTemplate } from './canvasTemplate';
17
+ export declare const movingSuffix: "-moving";
18
+ export declare class Canvas {
19
+ parent: Meta2d;
20
+ parentElement: HTMLElement;
21
+ store: Meta2dStore;
22
+ canvas: HTMLCanvasElement;
23
+ offscreen: HTMLCanvasElement;
24
+ width: number;
25
+ height: number;
26
+ externalElements: HTMLDivElement;
27
+ clientRect?: DOMRect;
28
+ canvasRect: Rect;
29
+ activeRect: Rect;
30
+ initActiveRect: Rect;
31
+ dragRect: Rect;
32
+ lastRotate: number;
33
+ sizeCPs: Point[];
34
+ activeInitPos: Point[];
35
+ hoverType: HoverType;
36
+ resizeIndex: number;
37
+ mouseDown: {
38
+ x: number;
39
+ y: number;
40
+ restore?: boolean;
41
+ };
42
+ hotkeyType: HotkeyType;
43
+ mouseRight: MouseRight;
44
+ addCaches: Pen[];
45
+ touchCenter?: Point;
46
+ initTouchDis?: number;
47
+ initScale?: number;
48
+ touchScaling?: boolean;
49
+ touchMoving?: boolean;
50
+ startTouches?: TouchList;
51
+ lastOffsetX: number;
52
+ lastOffsetY: number;
53
+ drawingLineName?: string;
54
+ drawLineFns: string[];
55
+ drawingLine?: Pen;
56
+ pencil?: boolean;
57
+ pencilLine?: Pen;
58
+ movingPens: Pen[];
59
+ patchFlagsLines?: Set<Pen>;
60
+ dock: {
61
+ xDock: Point;
62
+ yDock: Point;
63
+ };
64
+ prevAnchor: Point;
65
+ nextAnchor: Point;
66
+ private lastMouseTime;
67
+ private hoverTimer;
68
+ private fitTimer;
69
+ private willInactivePen;
70
+ patchFlags: boolean;
71
+ lastRender: number;
72
+ touchStart: number;
73
+ touchStartTimer: any;
74
+ timer: any;
75
+ private lastAnimateRender;
76
+ animateRendering: boolean;
77
+ renderTimer: number;
78
+ initPens?: Pen[];
79
+ pointSize: 8;
80
+ pasteOffset: boolean;
81
+ opening: boolean;
82
+ maxZindex: number;
83
+ canMoveLine: boolean;
84
+ randomIdObj: object;
85
+ keyOptions?: {
86
+ shiftKey?: boolean;
87
+ altKey?: boolean;
88
+ ctrlKey?: boolean;
89
+ metaKey?: boolean;
90
+ };
91
+ /**
92
+ * @deprecated 改用 beforeAddPens
93
+ */
94
+ beforeAddPen: (pen: Pen) => boolean;
95
+ beforeAddPens: (pens: Pen[]) => Promise<boolean>;
96
+ beforeAddAnchor: (pen: Pen, anchor: Point) => Promise<boolean>;
97
+ beforeRemovePens: (pens: Pen[]) => Promise<boolean>;
98
+ beforeRemoveAnchor: (pen: Pen, anchor: Point) => Promise<boolean>;
99
+ customResizeDock: (store: Meta2dStore, rect: Rect, pens: Pen[], resizeIndex: number) => {
100
+ xDock: Point;
101
+ yDock: Point;
102
+ };
103
+ customMoveDock: (store: Meta2dStore, rect: Rect, pens: Pen[], offset: Point) => {
104
+ xDock: Point;
105
+ yDock: Point;
106
+ };
107
+ inputParent: HTMLDivElement;
108
+ inputDiv: HTMLDivElement;
109
+ inputRight: HTMLDivElement;
110
+ dropdown: HTMLUListElement;
111
+ tooltip: Tooltip;
112
+ title: Title;
113
+ mousePos: Point;
114
+ scroll: Scroll;
115
+ movingAnchor: Point;
116
+ canvasTemplate: CanvasTemplate;
117
+ canvasImage: CanvasImage;
118
+ canvasImageBottom: CanvasImage;
119
+ magnifierCanvas: MagnifierCanvas;
120
+ dialog: Dialog;
121
+ autoPolylineFlag: boolean;
122
+ stopPropagation: (e: MouseEvent) => void;
123
+ constructor(parent: Meta2d, parentElement: HTMLElement, store: Meta2dStore);
124
+ curve: typeof curve;
125
+ polyline: typeof polyline;
126
+ mind: typeof mind;
127
+ line: typeof lineSegment;
128
+ listen(): void;
129
+ onCopy: (event: ClipboardEvent) => void;
130
+ onCut: (event: ClipboardEvent) => void;
131
+ onPaste: (event: ClipboardEvent) => void;
132
+ onMessage: (e: MessageEvent) => void;
133
+ onwheel: (e: WheelEvent) => void;
134
+ onkeydown: (e: KeyboardEvent) => void;
135
+ /**
136
+ * 分割连线的锚点,变成两条线
137
+ * @param line 连线
138
+ * @param anchor 锚点,连线的某个锚点,引用相同
139
+ */
140
+ splitLine(line: Pen, anchor: Point): void;
141
+ private translateAnchor;
142
+ onkeyup: (e: KeyboardEvent) => void;
143
+ fileToPen(file: File, isGif: boolean): Promise<Pen>;
144
+ ondrop: (event: DragEvent) => Promise<void>;
145
+ dropPens(pens: Pen[], e: Point): Promise<void>;
146
+ randomCombineId(pen: Pen, pens: Pen[], parentId?: string): Pen;
147
+ addPens(pens: Pen[], history?: boolean): Promise<Pen[]>;
148
+ ontouchstart: (e: TouchEvent) => void;
149
+ ontouchmove: (event: TouchEvent) => void;
150
+ ontouchend: (event: TouchEvent) => void;
151
+ onGesturestart: (e: any) => void;
152
+ /**
153
+ * 获取初始化的 pencilLine
154
+ * @param pt 需包含 penId
155
+ */
156
+ private getInitPencilLine;
157
+ /**
158
+ * 获取初始化的 drawingLine
159
+ * @param pt 需包含 penId
160
+ */
161
+ private createDrawingLine;
162
+ onMouseDown: (e: {
163
+ x: number;
164
+ y: number;
165
+ clientX: number;
166
+ clientY: number;
167
+ pageX: number;
168
+ pageY: number;
169
+ buttons?: number;
170
+ ctrlKey?: boolean;
171
+ shiftKey?: boolean;
172
+ altKey?: boolean;
173
+ }) => void;
174
+ onMouseMove: (e: {
175
+ x: number;
176
+ y: number;
177
+ clientX: number;
178
+ clientY: number;
179
+ pageX: number;
180
+ pageY: number;
181
+ buttons?: number;
182
+ ctrlKey?: boolean;
183
+ shiftKey?: boolean;
184
+ altKey?: boolean;
185
+ }) => void;
186
+ onMouseUp: (e: {
187
+ x: number;
188
+ y: number;
189
+ clientX: number;
190
+ clientY: number;
191
+ pageX: number;
192
+ pageY: number;
193
+ buttons?: number;
194
+ ctrlKey?: boolean;
195
+ shiftKey?: boolean;
196
+ altKey?: boolean;
197
+ button?: number;
198
+ }) => void;
199
+ private addRuleLine;
200
+ clearRuleLines(): void;
201
+ get ruleLines(): Pen[];
202
+ /**
203
+ * @description 调整pen的坐标,让pen按照网格自动对齐
204
+ * @author Joseph Ho
205
+ * @date 14/11/2023
206
+ * @memberof Canvas
207
+ */
208
+ alignPenToGrid(pen: Pen): void;
209
+ /**
210
+ * 拖拽结束,数据更新到 active.pens
211
+ */
212
+ private movedActivePens;
213
+ /**
214
+ * 复制移动后的笔
215
+ */
216
+ private copyMovedPens;
217
+ /**
218
+ * 若本次改变的画笔存在图片,并且在上层 or 下层,需要擦除上层 or 下层
219
+ * 子节点中包含图片,也需要重绘
220
+ * @param pens 本次改变的 pens
221
+ */
222
+ initImageCanvas(pens: Pen[]): void;
223
+ initTemplateCanvas(pens: Pen[]): void;
224
+ private hasImage;
225
+ private clearDock;
226
+ inactive(drawing?: boolean): void;
227
+ active(pens: Pen[], emit?: boolean): void;
228
+ getSizeCPs(): void;
229
+ getSpecialAngle(to: Point, last: Point): void;
230
+ onResize: () => void;
231
+ onScroll: () => void;
232
+ calibrateMouse: (pt: Point) => Point;
233
+ clearHover(): void;
234
+ private getContainerHover;
235
+ private getHover;
236
+ private inPens;
237
+ private dockInAnchor;
238
+ inAnchor(pt: Point, pen: Pen, anchor: Point): HoverType;
239
+ resize(w?: number, h?: number): void;
240
+ clearCanvas(): void;
241
+ addPen(pen: Pen, history?: boolean, emit?: boolean): Promise<Pen>;
242
+ pushHistory(action: EditAction): void;
243
+ undo(): void;
244
+ redo(): void;
245
+ activeHistory(): void;
246
+ doEditAction(action: EditAction, undo: boolean): void;
247
+ makePen(pen: Pen): void;
248
+ drawline(mouse?: Point): void;
249
+ initLineRect(pen: Pen): void;
250
+ drawingPencil(): void;
251
+ stopPencil(): void;
252
+ finishDrawline(end?: boolean): Promise<void>;
253
+ finishPencil(): Promise<void>;
254
+ /**
255
+ * 火狐浏览器无法绘制 svg 不存在 width height 的问题
256
+ * 此方法手动添加 width 和 height 解决火狐浏览器绘制 svg
257
+ * @param pen
258
+ */
259
+ private firefoxLoadSvg;
260
+ loadImage(pen: Pen): void;
261
+ private imageTimer;
262
+ imageLoaded(): void;
263
+ private templateImageTimer;
264
+ templateImageLoaded(): void;
265
+ setCalculativeByScale(pen: Pen): void;
266
+ updatePenRect(pen: Pen, { worldRectIsReady, playingAnimate, }?: {
267
+ worldRectIsReady?: boolean;
268
+ playingAnimate?: boolean;
269
+ noChildren?: boolean;
270
+ }): void;
271
+ render: (patchFlags?: number | boolean) => void;
272
+ renderPens: () => void;
273
+ private renderPenContainChild;
274
+ renderBorder: () => void;
275
+ renderHoverPoint: () => void;
276
+ translate(x?: number, y?: number): void;
277
+ onMovePens(): void;
278
+ /**
279
+ * 缩放整个画布
280
+ * @param scale 缩放比例,最终的 data.scale
281
+ * @param center 中心点,引用类型,存在副作用,会更改原值
282
+ */
283
+ scale(scale: number, center?: {
284
+ x: number;
285
+ y: number;
286
+ }): void;
287
+ templateScale(scale: number, center?: {
288
+ x: number;
289
+ y: number;
290
+ }): void;
291
+ rotatePens(e: Point): void;
292
+ resizePens(e: Point): void;
293
+ movePens(e: {
294
+ x: number;
295
+ y: number;
296
+ ctrlKey?: boolean;
297
+ shiftKey?: boolean;
298
+ altKey?: boolean;
299
+ }): void;
300
+ /**
301
+ * 初始化移动,更改画笔的 id parentId 等关联关系
302
+ * @param pen 要修改的画笔
303
+ * @param pens 本次操作的画笔们,包含子画笔
304
+ */
305
+ private changeIdsByMoving;
306
+ /**
307
+ * 初始化 this.movingPens
308
+ * 修改 ids (id parentId children 等)
309
+ * 半透明,去图片
310
+ */
311
+ initMovingPens(): void;
312
+ moveLineAnchor(pt: {
313
+ x: number;
314
+ y: number;
315
+ }, keyOptions: {
316
+ ctrlKey?: boolean;
317
+ shiftKey?: boolean;
318
+ altKey?: boolean;
319
+ }): void;
320
+ moveLineAnchorPrev(e: {
321
+ x: number;
322
+ y: number;
323
+ }): void;
324
+ moveLineAnchorNext(e: {
325
+ x: number;
326
+ y: number;
327
+ }): void;
328
+ setAnchor(e: {
329
+ x: number;
330
+ y: number;
331
+ }): Promise<void>;
332
+ /**
333
+ * 连线允许移动,若与其它图形有连接,但其它图形不在此次移动中,会断开连接
334
+ * @param line 连线
335
+ * @param pens 本次移动的全部图形,包含子节点
336
+ */
337
+ private checkDisconnect;
338
+ /**
339
+ * 移动 画笔们
340
+ * @param pens 画笔们,不包含子节点
341
+ * @param x 偏移 x
342
+ * @param y 偏移 y
343
+ * @param doing 是否持续移动
344
+ */
345
+ translatePens(pens: Pen[], x: number, y: number, doing?: boolean): void;
346
+ /**
347
+ * 移动 画笔们
348
+ * @param pens 画笔们,不包含子节点
349
+ * @param x 偏移 x
350
+ * @param y 偏移 y
351
+ * @param doing 是否持续移动
352
+ */
353
+ templateTranslatePens(pens: Pen[], x: number, y: number): void;
354
+ private calcAutoAnchor;
355
+ restoreNodeAnimate(pen: Pen): void;
356
+ updateLines(pen: Pen, change?: boolean): void;
357
+ calcActiveRect(): void;
358
+ /**
359
+ * 旋转当前画笔包括子节点
360
+ * @param pen 旋转的画笔
361
+ * @param angle 本次的旋转值,加到 pen.calculative.rotate 上
362
+ */
363
+ rotatePen(pen: Pen, angle: number, rect: Rect): void;
364
+ nextAnimate(pen: Pen): void;
365
+ getFrameProps(pen: Pen): {};
366
+ animate(): void;
367
+ get clipboardName(): string;
368
+ copy(pens?: Pen[], emit?: boolean): Promise<void>;
369
+ cut(pens?: Pen[]): void;
370
+ paste(): Promise<void>;
371
+ /**
372
+ * 获取 pens 列表中的所有节点(包含子节点)
373
+ * @param pens 不包含子节点
374
+ */
375
+ getAllByPens(pens: Pen[]): Pen[];
376
+ getAllFollowersByPens(pens: Pen[], deep?: boolean): Pen[];
377
+ setFollowers(pens?: Pen[]): void;
378
+ /**
379
+ *
380
+ * @param pen 当前复制的画笔
381
+ * @param parentId 父节点 id
382
+ * @param clipboard 本次复制的全部画笔,包含子节点, 以及 origin 和 scale
383
+ * @returns 复制后的画笔
384
+ */
385
+ private pastePen;
386
+ /**
387
+ * 修改对应连线的 anchors
388
+ * @param oldId 老 id
389
+ * @param pen 节点
390
+ * @param pastePens 本次复制的 pens 包含子节点
391
+ */
392
+ changeLineAnchors(oldId: string, pen: Pen, pastePens: Pen[]): void;
393
+ /**
394
+ * 复制连线的过程,修改 与 此线连接 node 的 connectedLines
395
+ * @param oldId 线原 id
396
+ * @param line 线
397
+ * @param pastePens 此处复制的全部 pens (包含子节点)
398
+ */
399
+ changeNodeConnectedLine(oldId: string, line: Pen, pastePens: Pen[]): void;
400
+ delete(pens?: Pen[], canDelLocked?: boolean, history?: boolean): Promise<void>;
401
+ private _del;
402
+ getDelPens(pen: Pen, delPens: Pen[]): void;
403
+ private getLockedParent;
404
+ delForce(pen: Pen): void;
405
+ private delConnectedLines;
406
+ private ondblclick;
407
+ showInput: (pen: Pen, rect?: Rect, background?: string) => void;
408
+ setInputStyle: (pen: Pen) => void;
409
+ convertSpecialCharacter(str: any): any;
410
+ hideInput: () => void;
411
+ private createInput;
412
+ clearDropdownList(): void;
413
+ private setDropdownList;
414
+ /**
415
+ * 添加一个选项到 dropdown dom 中
416
+ * @param text 选项文字
417
+ * @param index 选项索引
418
+ */
419
+ private dropdownAppendOption;
420
+ private selectDropdown;
421
+ find(idOrTag: string): Pen[];
422
+ findOne(idOrTag: string): Pen | undefined;
423
+ changePenId(oldId: string, newId: string): void;
424
+ updateValue(pen: Pen, data: IValue): void;
425
+ /**
426
+ * 执行 pen ,以及 pen 的子孙节点的 onResize 生命周期函数
427
+ */
428
+ private execPenResize;
429
+ setPenRect(pen: Pen, rect: Rect, render?: boolean): void;
430
+ getPenRect(pen: Pen, origin?: Point, scale?: number): {
431
+ x: number;
432
+ y: number;
433
+ width: number;
434
+ height: number;
435
+ };
436
+ toPng(padding?: Padding, callback?: BlobCallback, containBkImg?: boolean, maxWidth?: number): string;
437
+ activeToPng(padding?: Padding, maxWidth?: number): string;
438
+ pensToPng(pens?: Pen[], padding?: Padding, maxWidth?: number): string;
439
+ toggleAnchorMode(): void;
440
+ addAnchorHand(): void;
441
+ removeAnchorHand(): void;
442
+ toggleAnchorHand(): void;
443
+ gotoView(x: number, y: number): void;
444
+ showMagnifier(): void;
445
+ hideMagnifier(): void;
446
+ private inFitBorder;
447
+ showFit(): void;
448
+ hideFit(): void;
449
+ makeFit(): void;
450
+ updateFit(e: any): void;
451
+ updateFitRect(fit?: Fit): void;
452
+ deleteFit(fit?: Fit): void;
453
+ calcuActiveFit(): void;
454
+ toggleMagnifier(): void;
455
+ destroy(): void;
456
+ }