@meta2d/core 1.0.56 → 1.0.57

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 +4590 -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 +370 -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 +26 -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 +316 -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,277 +0,0 @@
1
- import { Canvas } from '../canvas';
2
- import { getRect, Rect } from '../rect';
3
-
4
- export class Scroll {
5
- h: HTMLElement;
6
- v: HTMLElement;
7
- isDownH: number;
8
- isDownV: number;
9
- x: number;
10
- y: number;
11
- hSize: number;
12
- vSize: number;
13
- scrollX: number;
14
- scrollY: number;
15
- lastScrollX: number;
16
- lastScrollY: number;
17
- rect: Rect;
18
- isShow: boolean;
19
- pageMode: boolean; //页面模式
20
- constructor(public parent: Canvas) {
21
- this.h = document.createElement('div');
22
- this.v = document.createElement('div');
23
-
24
- this.parent.externalElements.appendChild(this.h);
25
- this.parent.externalElements.appendChild(this.v);
26
-
27
- this.h.className = 'meta2d-scroll h';
28
- this.h.onmousedown = this.onMouseDownH;
29
-
30
- this.v.className = 'meta2d-scroll v';
31
- this.v.onmousedown = this.onMouseDownV;
32
-
33
- document.addEventListener('mousemove', this.onMouseMove);
34
- document.addEventListener('mouseup', this.onMouseUp);
35
-
36
- let sheet: any;
37
- for (let i = 0; i < document.styleSheets.length; i++) {
38
- if (document.styleSheets[i].title === 'le5le/scroll') {
39
- sheet = document.styleSheets[i];
40
- }
41
- }
42
-
43
- if (!sheet) {
44
- let style = document.createElement('style');
45
- style.type = 'text/css';
46
- style.title = 'le5le.com/scroll';
47
- document.head.appendChild(style);
48
-
49
- style = document.createElement('style');
50
- style.type = 'text/css';
51
- document.head.appendChild(style);
52
- sheet = style.sheet;
53
- sheet.insertRule(
54
- '.meta2d-scroll{position:absolute;width:8px;height:200px;background:#dddddd;border-radius:10px;z-index:20;cursor:default;}'
55
- );
56
- sheet.insertRule(
57
- '.meta2d-scroll:hover{background:#cccccc;cursor:pointer}'
58
- );
59
- sheet.insertRule('.meta2d-scroll.v{right:0;top:calc(50% - 100px);}');
60
- sheet.insertRule(
61
- '.meta2d-scroll.h{bottom:2px;left:calc(50% - 100px);width:200px;height:8px;}'
62
- );
63
- }
64
-
65
- this.init();
66
- }
67
-
68
- init() {
69
- this.isShow = true;
70
- this.resize();
71
- this.initPos();
72
- }
73
-
74
- private onMouseDownH = (e: MouseEvent) => {
75
- e.preventDefault();
76
- e.stopPropagation();
77
-
78
- this.isDownH = e.x;
79
- this.x = this.parent.store.data.x || 0;
80
- this.lastScrollX = this.scrollX;
81
- };
82
-
83
- private onMouseDownV = (e: MouseEvent) => {
84
- e.preventDefault();
85
- e.stopPropagation();
86
-
87
- this.isDownV = e.y;
88
- this.y = this.parent.store.data.y || 0;
89
- this.lastScrollY = this.scrollY;
90
- };
91
-
92
- private onMouseMove = (e: MouseEvent) => {
93
- if (this.isDownH) {
94
- const x = e.x - this.isDownH;
95
- this.scrollX = this.lastScrollX + x;
96
- this.h.style.left = `${this.scrollX}px`;
97
- this.parent.store.data.x =
98
- this.x - (x * this.rect.width) / this.parent.parentElement.clientWidth;
99
- }
100
-
101
- if (this.isDownV) {
102
- const y = e.y - this.isDownV;
103
- if (this.pageMode && this.canMouseMove(y)) {
104
- return;
105
- }
106
- this.scrollY = this.lastScrollY + y;
107
- this.v.style.top = `${this.scrollY}px`;
108
- this.parent.store.data.y =
109
- this.y -
110
- (y * this.rect.height) / this.parent.parentElement.clientHeight;
111
- }
112
-
113
- if (this.isDownH || this.isDownV) {
114
- this.parent.onMovePens();
115
- this.parent.canvasTemplate.init();
116
- this.parent.canvasImage.init();
117
- this.parent.canvasImageBottom.init();
118
- this.parent.render();
119
- }
120
- };
121
-
122
- private onMouseUp = (e: MouseEvent) => {
123
- if (!this.isDownH && !this.isDownV) {
124
- return;
125
- }
126
-
127
- this.isDownH = undefined;
128
- this.isDownV = undefined;
129
-
130
- if (this.scrollX < 20) {
131
- this.scrollX = 20;
132
- this.h.style.left = `${this.scrollX}px`;
133
- } else if (
134
- this.scrollX >
135
- this.parent.parentElement.clientWidth - this.hSize - 20
136
- ) {
137
- this.scrollX = this.parent.parentElement.clientWidth - this.hSize - 20;
138
- this.h.style.left = `${this.scrollX}px`;
139
- }
140
-
141
- if (this.scrollY < 20) {
142
- this.scrollY = 20;
143
- this.v.style.top = `${this.scrollY}px`;
144
- } else if (
145
- this.scrollY >
146
- this.parent.parentElement.clientHeight - this.vSize - 20
147
- ) {
148
- this.scrollY = this.parent.parentElement.clientHeight - this.vSize - 20;
149
- this.v.style.top = `${this.scrollY}px`;
150
- }
151
-
152
- this.resize();
153
- };
154
-
155
- canMouseMove(y: number) {
156
- const rect = this.parent.parent.getRect();
157
- if (y < 0 && rect.y + this.parent.store.data.y >= 0) {
158
- return true;
159
- }
160
- if (y > 0 && rect.ey - this.parent.height + this.parent.store.data.y <= 0) {
161
- return true;
162
- }
163
- return false;
164
- }
165
-
166
- changeMode() {
167
- this.pageMode = true;
168
- this.h.style.display = `none`;
169
- const rect = this.parent.parent.getRect();
170
- if (rect.height < this.parent.height) {
171
- this.v.style.display = `none`;
172
- }
173
- }
174
-
175
- initPos() {
176
- this.scrollX = (this.parent.parentElement.clientWidth - this.hSize) / 2;
177
- this.scrollY = (this.parent.parentElement.clientHeight - this.vSize) / 2;
178
- this.h.style.left = `${this.scrollX}px`;
179
- this.v.style.top = `${this.scrollY}px`;
180
- }
181
-
182
- resize() {
183
- this.rect = getRect(this.parent.store.data.pens);
184
- if (this.rect.width < 1400) {
185
- this.rect.width = 1400;
186
- }
187
- if (this.rect.height < 900) {
188
- this.rect.height = 900;
189
- }
190
-
191
- if (this.parent.store.data.x > 0) {
192
- this.rect.width +=
193
- this.parent.store.data.x + (this.rect.x > 0 ? 0 : this.rect.x);
194
- } else {
195
- this.rect.width -=
196
- this.parent.store.data.x + (this.rect.x > 0 ? 0 : this.rect.x);
197
- }
198
-
199
- if (this.parent.store.data.y > 0) {
200
- this.rect.height +=
201
- this.parent.store.data.y + (this.rect.y > 0 ? 0 : this.rect.y);
202
- } else {
203
- this.rect.height -=
204
- this.parent.store.data.y + (this.rect.y > 0 ? 0 : this.rect.y);
205
- }
206
-
207
- if (this.rect.width < 1400) {
208
- this.rect.width = 1400;
209
- }
210
- if (this.rect.height < 900) {
211
- this.rect.height = 900;
212
- }
213
-
214
- this.hSize =
215
- (1000 * this.parent.parentElement.clientWidth) / this.rect.width / 3;
216
- this.vSize =
217
- (1000 * this.parent.parentElement.clientHeight) / this.rect.height / 3;
218
- this.h.style.width = this.hSize + 'px';
219
- this.v.style.height = this.vSize + 'px';
220
- }
221
-
222
- show() {
223
- this.isShow = true;
224
- this.h.style.display = `block`;
225
- this.v.style.display = `block`;
226
- document.addEventListener('mousemove', this.onMouseMove);
227
- document.addEventListener('mouseup', this.onMouseUp);
228
- }
229
-
230
- hide() {
231
- this.isShow = false;
232
- this.h.style.display = `none`;
233
- this.v.style.display = `none`;
234
- this.destroy();
235
- }
236
-
237
- translate(x: number, y: number) {
238
- if (x) {
239
- this.scrollX -=
240
- (x * this.parent.parentElement.clientWidth) / this.rect.width;
241
- this.h.style.left = `${this.scrollX}px`;
242
- }
243
-
244
- if (y) {
245
- this.scrollY -=
246
- (y * this.parent.parentElement.clientHeight) / this.rect.height;
247
- this.v.style.top = `${this.scrollY}px`;
248
- }
249
- }
250
-
251
- wheel(up?: boolean) {
252
- let y = 10;
253
- if (up) {
254
- y = -10;
255
- }
256
-
257
- if (this.pageMode && this.canMouseMove(y)) {
258
- return;
259
- }
260
-
261
- this.scrollY += y;
262
- this.v.style.top = `${this.scrollY}px`;
263
- this.parent.store.data.y -=
264
- (y * this.rect.height) / this.parent.parentElement.clientHeight;
265
-
266
- this.parent.onMovePens();
267
- this.parent.canvasTemplate.init();
268
- this.parent.canvasImage.init();
269
- this.parent.canvasImageBottom.init();
270
- this.parent.render();
271
- }
272
-
273
- destroy() {
274
- document.removeEventListener('mousemove', this.onMouseMove);
275
- document.removeEventListener('mouseup', this.onMouseUp);
276
- }
277
- }
@@ -1,38 +0,0 @@
1
- import pkg from '../../package.json';
2
- import { Pen } from '../pen';
3
-
4
- export const globalStore: {
5
- version: string;
6
- path2dDraws: {
7
- [key: string]: (pen: Pen, ctx?: CanvasRenderingContext2D) => Path2D;
8
- };
9
- canvasDraws: {
10
- [key: string]: (ctx: CanvasRenderingContext2D, pen: Pen) => void;
11
- };
12
- anchors: { [key: string]: (pen: Pen) => void }; // TODO: 存储的是 副作用 函数,函数内修改 anchors
13
- htmlElements: { [key: string]: HTMLImageElement }; // 目前只存在图片资源,此处使用 HTMLImageElement
14
- } = {
15
- version: pkg.version,
16
- path2dDraws: {},
17
- canvasDraws: {},
18
- anchors: {},
19
- htmlElements: {},
20
- };
21
-
22
- export function register(path2dFns: {
23
- [key: string]: (pen: Pen, ctx?: CanvasRenderingContext2D) => Path2D;
24
- }) {
25
- Object.assign(globalStore.path2dDraws, path2dFns);
26
- }
27
-
28
- export function registerCanvasDraw(drawFns: {
29
- [key: string]: (ctx: CanvasRenderingContext2D, pen: Pen) => void;
30
- }) {
31
- Object.assign(globalStore.canvasDraws, drawFns);
32
- }
33
-
34
- export function registerAnchors(anchorsFns: {
35
- [key: string]: (pen: Pen) => void;
36
- }) {
37
- Object.assign(globalStore.anchors, anchorsFns);
38
- }
@@ -1,293 +0,0 @@
1
- import { default as mitt, Emitter } from 'mitt';
2
-
3
- import { CanvasLayer, FormItem, LockState, Pen } from '../pen';
4
- import { defaultOptions, Options } from '../options';
5
- import { defaultTheme, Theme } from '../theme';
6
-
7
- import { Point } from '../point';
8
- import { globalStore } from './global';
9
- import { Rect } from '../rect';
10
- import { Event, Trigger } from '../event';
11
-
12
- export interface Meta2dData {
13
- pens: Pen[];
14
- x: number;
15
- y: number;
16
- scale: number;
17
- // 标尺起点
18
- origin: Point;
19
- center: Point;
20
- locked?: LockState;
21
- websocket?: string;
22
- mqtt?: string;
23
- mqttOptions?: {
24
- clientId?: string;
25
- username?: string;
26
- password?: string;
27
- customClientId?: boolean;
28
- };
29
- mqttTopics?: string;
30
- websocketProtocols?: string | string[];
31
- background?: string;
32
- globalAlpha?: number;
33
- socketCbJs?: string;
34
- initJs?: string;
35
- grid?: boolean;
36
- gridColor?: string;
37
- gridSize?: number;
38
- gridRotate?: number;
39
- rule?: boolean;
40
- ruleColor?: string;
41
- fromArrow?: string;
42
- toArrow?: string;
43
- lineWidth?: number;
44
- color?: string; // 画笔默认 color 优先级高于 options.color
45
- textColor?: string; // 画笔文字颜色
46
- penBackground?: string; // 画笔默认背景色
47
- paths?: { [key: string]: string }; // paths 该图纸使用到的 svgPath ,打开后需要保存到 globalStore.paths
48
- bkImage?: string; // 背景图片
49
- http?: string; // http 请求 Url
50
- httpTimeInterval?: number; // http 请求间隔
51
- httpHeaders?: HeadersInit; //请求头
52
- version?: string; // 版本号
53
- id?: string;
54
- _id?: string;
55
- https?: HttpOptions[];
56
- width?: number;
57
- height?: number;
58
- networkInterval?: number;
59
- networks?: Network[];
60
- iconUrls?: string[];
61
- mockData?: Function;
62
- name?: string;
63
- enableMock?: boolean;
64
- minScale?: number;
65
- maxScale?: number;
66
- template?: string; //模版id
67
- cancelFirstConnect?: boolean; //http定时轮询首次是否请求
68
- component?: boolean;
69
- theme?: string; //主题
70
- smoothNum?:number;//平滑量 值越大,平滑效果越好
71
- triggers?:Trigger[]; //全局状态
72
- dataPoints?: string[]; //数据点
73
- dataset?:{
74
- devices?: DataMock[]; //数据模拟
75
- };
76
- dataEvents?:Event[]; //数据点事件
77
- fits?: Fit[];
78
- disableTranslate?: boolean; //禁止平移
79
- disableScale?: boolean; //禁止缩放
80
- }
81
-
82
- export interface Fit {
83
- id?:string;
84
- name?:string;
85
- x?:number;
86
- y?:number;
87
- ex?:number;
88
- ey?:number;
89
- width?:number;
90
- height?:number;
91
- children?:string[];
92
- active?:boolean;
93
- left?:boolean;
94
- right?:boolean;
95
- top?:boolean;
96
- bottom?:boolean;
97
- leftValue?:number;
98
- rightValue?:number;
99
- topValue?:number;
100
- bottomValue?:number;
101
- }
102
-
103
- export interface DataMock {
104
- id: string;
105
- label?: string;
106
- mock?: string;
107
- type?: string;
108
- enableMock?: boolean;
109
- }
110
-
111
- export interface Network {
112
- name?: string;
113
- protocol?: 'mqtt' | 'websocket' | 'http';
114
- type?: string; //subscribe
115
- url?: string;
116
- //websocket
117
- protocols?: string;
118
- //mqtt
119
- topics?: string;
120
- options?: {
121
- clientId?: string;
122
- username?: string;
123
- password?: string;
124
- customClientId?: boolean;
125
- };
126
- //http
127
- headers?: any; //请求头
128
- method?: string;
129
- body?: any;
130
- data?: Network
131
- interval?: number; // http 请求间隔
132
- times?: number; // 临时 重连次数
133
- index?: number; // 临时 索引
134
- }
135
-
136
- export interface HttpOptions {
137
- http?: string; // http 请求 Url
138
- httpTimeInterval?: number; // http 请求间隔
139
- httpHeaders?: HeadersInit; //请求头
140
- method?: string;
141
- body?: BodyInit | null;
142
- times?: number; // 临时 重连次数
143
- }
144
-
145
- export enum EditType {
146
- Add,
147
- Update,
148
- Delete,
149
- Replace
150
- }
151
-
152
- export interface EditAction {
153
- type?: EditType;
154
- initPens?: Pen[];
155
- pens?: Pen[];
156
- step?: number; // 多次历史记录记为一次, step >= 2
157
- origin?: Point;
158
- scale?: number;
159
- }
160
-
161
- export interface Meta2dStore {
162
- id: string;
163
- data: Meta2dData;
164
- pens: { [key: string]: Pen };
165
-
166
- histories?: EditAction[];
167
- historyIndex?: number;
168
- path2dMap: WeakMap<Pen, Path2D>;
169
- animateMap: WeakMap<Pen, Pen>;
170
- bindDatas: { [key: string]: { id: string; formItem: FormItem }[] };
171
- bind?: { [key: string]: { id: string; key: string }[] };
172
- active?: Pen[];
173
- hover?: Pen;
174
- lastHover?: Pen;
175
- hoverContainer?:Pen;
176
- lastHoverContainer?:Pen;
177
- activeAnchor?: Point;
178
- hoverAnchor?: Point;
179
- pointAt?: Point;
180
- pointAtIndex?: number;
181
- animates: Set<Pen>;
182
- options: Options;
183
- theme: Theme;
184
- emitter: Emitter;
185
- dpiRatio?: number;
186
- clipboard?: Meta2dClipboard;
187
- patchFlagsBackground?: boolean; // 是否需要绘制底层图片 是否需要重绘背景,包含网格
188
- patchFlagsTop?: boolean; // 是否需要重绘标尺
189
- bkImg?: HTMLImageElement;
190
- // 测试使用
191
- fillWorldTextRect?: boolean; // 填充文本区域
192
- cacheDatas?: {
193
- data: Meta2dData;
194
- }[];
195
- patchFlagsLast?: boolean; // 清除上次图片画布层
196
- messageEvents?: { [key: string]: { pen: Pen; event: Event }[] };
197
- templatePens?: { [key: string]: Pen };
198
- sameTemplate?: boolean; //标记是否是同一模版
199
- lastScale?: number; //记录上次模版的scale
200
- pensNetwork?: {
201
- [key: string]: { url?: string; method?: string; headers?: any; body?: any };
202
- };
203
- globalTriggers?:{[key:string]:Trigger[]};
204
- }
205
-
206
- export interface Meta2dClipboard {
207
- meta2d?: boolean;
208
- pens: Pen[];
209
- origin: Point;
210
- scale: number;
211
- offset?: number;
212
- page: string;
213
- initRect?: Rect;
214
- pos?: Point;
215
- }
216
-
217
- export const createStore = () => {
218
- return {
219
- data: {
220
- x: 0,
221
- y: 0,
222
- scale: 1,
223
- pens: [],
224
- origin: { x: 0, y: 0 },
225
- center: { x: 0, y: 0 },
226
- paths: {},
227
- theme:'light'
228
- },
229
- histories: [],
230
- pens: {},
231
- path2dMap: new WeakMap(),
232
- animateMap: new WeakMap(),
233
- active: [],
234
- animates: new Set(),
235
- options: { ...defaultOptions },
236
- theme:{ ...defaultTheme },
237
- emitter: mitt(),
238
- bindDatas: {},
239
- bind: {},
240
- pensNetwork: {},
241
- cacheDatas: [],
242
- messageEvents: {},
243
- templatePens: {},
244
- globalTriggers:{},
245
- } as Meta2dStore;
246
- };
247
-
248
- // Return a data store, if not exists will create a store.
249
- export const useStore = (id = 'default'): Meta2dStore => {
250
- if (!globalStore[id]) {
251
- globalStore[id] = createStore();
252
- globalStore[id].id = id;
253
- }
254
-
255
- return globalStore[id];
256
- };
257
-
258
- export const clearStore = (store: Meta2dStore, template?: string) => {
259
- const isSame = store.data.template === template;
260
- if (isSame) {
261
- //模版一样
262
- for (const pen of store.data.pens) {
263
- // if (pen.template) {
264
- if (pen.canvasLayer === CanvasLayer.CanvasTemplate) {
265
- store.templatePens[pen.id] = pen;
266
- }
267
- }
268
- }
269
- store.lastScale = store.data.scale;
270
- store.data = {
271
- x: 0,
272
- y: 0,
273
- scale: 1,
274
- pens: [],
275
- origin: { x: 0, y: 0 },
276
- center: { x: 0, y: 0 },
277
- paths: {},
278
- template: isSame ? template : null,
279
- };
280
- store.sameTemplate = isSame;
281
- store.pens = {};
282
- store.histories = [];
283
- store.historyIndex = null;
284
- store.path2dMap = new WeakMap();
285
- store.animateMap = new WeakMap();
286
- store.bindDatas = {};
287
- store.bind = {};
288
- store.pensNetwork = {};
289
- store.active = [];
290
- store.hover = undefined;
291
- store.lastHover = undefined;
292
- store.animates.clear();
293
- };
package/src/theme.ts DELETED
@@ -1,35 +0,0 @@
1
- export interface Theme {
2
- [key: string]: {
3
- color?: string;
4
- background?: string;
5
- parentBackground?: string;
6
- ruleColor?:string;
7
- ruleOptions?:{
8
- background?:string,
9
- textColor?:string
10
- }
11
- };
12
- }
13
-
14
- export const defaultTheme: Theme = {
15
- dark:{
16
- color:'#bdc7db',
17
- background:'#1e2430',
18
- parentBackground:'#080b0f',
19
- ruleColor:'#222E47',
20
- ruleOptions:{
21
- background:'#121924',
22
- textColor:'#6E7B91'
23
- },
24
- },
25
- light:{
26
- color:'#222222',
27
- background:'#FFFFFF',
28
- parentBackground:'#F0F1F2',
29
- ruleColor:'#C8D0E1',
30
- ruleOptions:{
31
- background:'#F7F8FA',
32
- textColor:'#C8D0E1'
33
- },
34
- }
35
- }