@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,177 +0,0 @@
1
- export class Dialog {
2
- box: HTMLElement;
3
- iframe: HTMLElement;
4
- dialog: HTMLElement;
5
- close: HTMLElement;
6
- title: HTMLElement;
7
- body: HTMLElement;
8
- x: number;
9
- y: number;
10
- url: string;
11
- constructor(public parentElement: HTMLElement) {
12
- this.box = document.createElement('div');
13
- this.dialog = document.createElement('div');
14
- let header = document.createElement('div');
15
- this.title = document.createElement('div');
16
- this.close = document.createElement('span');
17
- this.close.innerHTML = `
18
- <svg fill="none" viewBox="0 0 16 16" width="1em" height="1em">
19
- <path
20
- fill="currentColor"
21
- d="M8 8.92L11.08 12l.92-.92L8.92 8 12 4.92 11.08 4 8 7.08 4.92 4 4 4.92 7.08 8 4 11.08l.92.92L8 8.92z"
22
- fill-opacity="0.9"
23
- ></path>
24
- </svg>`;
25
- this.body = document.createElement('div');
26
- this.iframe = document.createElement('iframe');
27
- this.iframe.setAttribute('frameborder', '0');
28
- this.box.className = 'meta2d-dialog_mask';
29
- this.dialog.className = 'meta2d-dialog';
30
- this.body.className = 'meta2d-dialog_body';
31
- header.className = 'meta2d-dialog_header';
32
- this.title.className = 'meta2d-dialog-content';
33
- this.close.className = 'meta2d-dialog-close';
34
-
35
- header.appendChild(this.title);
36
- header.appendChild(this.close);
37
- this.body.appendChild(this.iframe);
38
- this.dialog.appendChild(header);
39
- this.dialog.appendChild(this.body);
40
- this.box.appendChild(this.dialog);
41
- parentElement.appendChild(this.box);
42
-
43
- this.dialog.onclick = (e) => {
44
- e.stopPropagation();
45
- };
46
- this.box.onclick = () => {
47
- this.hide();
48
- };
49
- this.close.onclick = () => {
50
- this.hide();
51
- };
52
-
53
- let sheet: any;
54
- for (let i = 0; i < document.styleSheets.length; i++) {
55
- if (document.styleSheets[i].title === 'le5le.com/dialog') {
56
- sheet = document.styleSheets[i];
57
- }
58
- }
59
-
60
- if (!sheet) {
61
- let style = document.createElement('style');
62
- style.type = 'text/css';
63
- style.title = 'le5le.com/dialog';
64
- document.head.appendChild(style);
65
-
66
- style = document.createElement('style');
67
- style.type = 'text/css';
68
- document.head.appendChild(style);
69
- sheet = style.sheet;
70
- sheet.insertRule(
71
- `.meta2d-dialog_mask {
72
- display: none;
73
- position: absolute;
74
- top: 0%;
75
- left: 0%;
76
- width: 100%;
77
- height: 100%;
78
- background-color: #0000006f;
79
- z-index: 9999;`
80
- );
81
- sheet.insertRule(
82
- `.meta2d-dialog_mask .meta2d-dialog {
83
- position: absolute;
84
- top: 15vh;
85
- left: 10%;
86
- width: 80%;
87
- height:420px;
88
- padding: 16px 20px;
89
- border-radius: 9px;
90
- background-color: #1e2430;
91
- z-index: 19999;
92
- overflow: auto;
93
- }`
94
- );
95
- sheet.insertRule(
96
- `.meta2d-dialog_header {
97
- display: flex;
98
- }`
99
- );
100
- sheet.insertRule(
101
- `.meta2d-dialog-content {
102
- width: calc(100% - 20px);
103
- font-weight: 600;
104
- font-size: 14px;
105
- color: #bdc7db;
106
- padding-bottom:8px;
107
- }`
108
- );
109
- sheet.insertRule(
110
- `.meta2d-dialog-close {
111
- width: 20px;
112
- height: 20px;
113
- line-height: 20px;
114
- text-align: center;
115
- color: #617b91;
116
- position: absolute;
117
- right:20px;
118
- top:18px;
119
- }`
120
- );
121
- sheet.insertRule(
122
- `.meta2d-dialog-close :hover{
123
- cursor: pointer;
124
- }`
125
- );
126
- sheet.insertRule(
127
- `.meta2d-dialog_body{
128
- // margin-top: 4px;
129
- } `
130
- );
131
- sheet.insertRule(
132
- `.meta2d-dialog_body iframe{
133
- width: 100%;
134
- height: 100%;
135
- }`
136
- );
137
- }
138
- }
139
-
140
- show(title?: string, url?: string, rect?:{x:number,y:number,width:number,height:number}) {
141
- if(!url){
142
- return;
143
- }
144
- if(url !== this.url){
145
- this.iframe.setAttribute('src', url);
146
- this.url = url;
147
- }
148
- title && (this.title.innerText = title);
149
- if(!title){
150
- this.dialog.style.padding = '0px';
151
- this.title.style.display = 'none';
152
- this.body.style.height = '100%';
153
- this.body.style.overflow= 'hidden';
154
- }else{
155
- this.dialog.style.padding = '16px 20px';
156
- this.title.style.display = 'block';
157
- this.body.style.height = 'calc(100% - 26px)';
158
- }
159
- if(rect) {
160
- this.dialog.style.top = rect.y?(rect.y + 'px'): '15vh';
161
- this.dialog.style.left = rect.x? (rect.x + 'px'): '10%';
162
- this.dialog.style.width = rect.width?(rect.width + 'px'): '80%'
163
- this.dialog.style.height = rect.height?(rect.height + 'px'): '420px';
164
- this.box.style.display = 'block';
165
- }
166
- }
167
-
168
- hide() {
169
- this.box.style.display = 'none';
170
- }
171
-
172
- destroy() {
173
- this.dialog.onclick = undefined;
174
- this.box.onclick = undefined;
175
- this.close.onclick = undefined;
176
- }
177
- }
@@ -1,142 +0,0 @@
1
- import { Meta2d } from '../core';
2
- import { IValue, Pen } from '../pen';
3
- import { Network } from '../store';
4
-
5
- export type EventValue = string | IValue | undefined | null;
6
- // 事件行为
7
- export type EventName =
8
- | 'enter'
9
- | 'leave'
10
- | 'active'
11
- | 'inactive'
12
- | 'click'
13
- | 'mousedown'
14
- | 'mouseup'
15
- | 'dblclick'
16
- | 'valueUpdate'
17
- | 'message'
18
- | 'contextmenu'
19
- | 'input'
20
- | 'change';
21
-
22
- export interface Event {
23
- name: EventName;
24
- action: EventAction; // 事件动作
25
- where?: Where; // 若无条件,必须为 undefined or null,不可为空对象
26
- value?: EventValue; // 不同 action 下,该值含义不同,例如:动画相关的,即为 节点 tag; Function 类型即为 字符串函数
27
- params?: string;
28
- extend?: any;
29
- fn?: (
30
- pen: Pen,
31
- params: string,
32
- context?: { meta2d: Meta2d; eventName: string }
33
- ) => void;
34
- targetType?: string;
35
- network?: Network;
36
- actions?: Event[];
37
- conditions?: TriggerCondition[];
38
- conditionType?: string;
39
- message?: string; //消息名称
40
- callback?: string; //回调函数 仅http
41
- }
42
-
43
- export enum EventAction {
44
- Link,
45
- SetProps,
46
- StartAnimate,
47
- PauseAnimate,
48
- StopAnimate,
49
- JS, //Function
50
- GlobalFn,
51
- Emit,
52
- StartVideo,
53
- PauseVideo,
54
- StopVideo,
55
- SendPropData,
56
- SendVarData,
57
- Navigator,
58
- Dialog,
59
- SendData, //数据源选择
60
- PostMessage, //发送场景数据
61
- PostMessageToParent, //向父窗口发送消息
62
- }
63
-
64
- export interface Where {
65
- type?: string | 'comparison';
66
- key?: string;
67
- comparison?: Comparison;
68
- value?: unknown;
69
- fn?: (
70
- pen: Pen,
71
- context?: {
72
- meta2d: Meta2d;
73
- }
74
- ) => boolean;
75
- fnJs?: string;
76
- }
77
-
78
- /**
79
- * 触发器中的符号
80
- */
81
- export type Comparison =
82
- | '='
83
- | '=='
84
- | '!='
85
- | '>'
86
- | '<'
87
- | '>='
88
- | '<='
89
- | '[)' // 介于,数学中的开闭区间
90
- | '![)' // 非介于,与上一个相反
91
- /**
92
- * 属于,类似于 数组的 includes
93
- * .. 属于范围语法,30..50 等价于 介于的 [30, 50]
94
- * [1, 2, 3] 2 // true 1.5 // false
95
- * [1,20,30..50,65] 1 // true 20 // true 30 // true 30.1 // true
96
- */
97
- | '[]'
98
- | '![]'; // 非属于,与上一个相反
99
-
100
- export interface TriggerCondition {
101
- type?: string; //'fn'|''
102
- operator?: Comparison;
103
- valueType?: string; //'prop'|''
104
- value?: string;
105
- target?: string;
106
- label?: string;
107
- fnJs?: string;
108
- fn?: (
109
- pen: Pen,
110
- context?: {
111
- meta2d: Meta2d;
112
- }
113
- ) => boolean;
114
- key?: string;
115
- source?:string;
116
- }
117
-
118
- export interface Trigger {
119
- name?: string;
120
- conditionType?: string; //'and'/'or'
121
- conditions?: TriggerCondition[];
122
- actions?: Event[];
123
- status?: Trigger[]; //所有状态
124
- }
125
-
126
- export interface Bind {
127
- case?: string;
128
- id?: string;
129
- label?: string;
130
- }
131
-
132
- export interface RealTime {
133
- label?: string;
134
- key?: string;
135
- type?: string;
136
- keywords?: true;
137
- triggers?: Trigger[];
138
- bind?: Bind;
139
- value?: string;
140
- enableMock?: boolean;
141
- mock?: any;
142
- }
package/src/map/map.ts DELETED
@@ -1,239 +0,0 @@
1
- import { Canvas } from '../canvas';
2
- import { calcRightBottom, getRect, translateRect } from '../rect';
3
-
4
- export class ViewMap {
5
- box: HTMLElement;
6
- readonly boxWidth = 320;
7
- readonly boxHeight = 180;
8
- readonly ratio = this.boxWidth / this.boxHeight;
9
- readonly padding = 5;
10
- img: HTMLImageElement;
11
- isShow: boolean;
12
- isDown: boolean;
13
- view: HTMLElement; // 可视区域外框
14
- constructor(public parent: Canvas) {
15
- this.box = document.createElement('div');
16
- this.img = new Image();
17
- this.view = document.createElement('div');
18
-
19
- this.box.appendChild(this.img);
20
- this.box.appendChild(this.view);
21
- this.parent.externalElements?.parentElement.appendChild(this.box);
22
-
23
- this.box.className = 'meta2d-map';
24
- this.box.onmousedown = this.onMouseDown;
25
- this.box.onmousemove = this.onMouseMove;
26
- this.box.onmouseup = this.onMouseUp;
27
- this.box.onwheel = this.onWheel;
28
-
29
- let sheet: any;
30
- for (let i = 0; i < document.styleSheets.length; i++) {
31
- if (document.styleSheets[i].title === 'le5le/map') {
32
- sheet = document.styleSheets[i];
33
- }
34
- }
35
-
36
- if (!sheet) {
37
- let style = document.createElement('style');
38
- style.type = 'text/css';
39
- style.title = 'le5le.com/map';
40
- document.head.appendChild(style);
41
-
42
- style = document.createElement('style');
43
- style.type = 'text/css';
44
- document.head.appendChild(style);
45
- sheet = style.sheet;
46
- sheet.insertRule(
47
- `.meta2d-map{display:flex;width:${
48
- this.boxWidth + 2 * this.padding
49
- }px;height:${this.boxHeight + 2 * this.padding}px;padding:${
50
- this.padding
51
- }px;background:#f4f4f4;border:1px solid #ffffff;box-shadow: 0px 0px 14px 0px rgba(0,10,38,0.30);border-radius:8px;position:absolute;z-index:9999;right:0;bottom:0;justify-content:center;align-items:center;cursor:default;user-select:none;overflow: hidden;}`
52
- );
53
- sheet.insertRule(
54
- '.meta2d-map img{max-width:100%;max-height:100%;pointer-events: none;}'
55
- );
56
- sheet.insertRule(
57
- '.meta2d-map div{pointer-events: none;border:1px solid #1890ff;position:absolute}'
58
- );
59
- }
60
- }
61
-
62
- show() {
63
- this.box.style.display = 'flex';
64
-
65
- const data = this.parent.store.data;
66
- if (data.pens.length) {
67
- this.img.style.display = 'block';
68
- this.img.src = this.parent.toPng();
69
- this.setView();
70
- } else {
71
- this.img.style.display = 'none';
72
- }
73
- this.isShow = true;
74
- }
75
-
76
- hide() {
77
- this.box.style.display = 'none';
78
- this.isShow = false;
79
- }
80
-
81
- setView() {
82
- const data = this.parent.store.data;
83
- if (data.pens.length) {
84
- let rect = getRect(data.pens);
85
- const vW =
86
- this.parent.store.data.width || this.parent.store.options.width;
87
- const vH =
88
- this.parent.store.data.height || this.parent.store.options.height;
89
- if (vW && vH) {
90
- //大屏
91
- rect = {
92
- x: this.parent.store.data.origin.x,
93
- y: this.parent.store.data.origin.y,
94
- width: vW * this.parent.store.data.scale,
95
- height: vH * this.parent.store.data.scale,
96
- };
97
- }
98
- // rect += data.x y 得到相对坐标
99
- translateRect(rect, data.x, data.y);
100
- const rectRatio = rect.width / rect.height;
101
- if (rectRatio > this.ratio) {
102
- // 上下留白,扩大高度
103
- const height = rect.width / this.ratio;
104
- rect.y -= (height - rect.height) / 2;
105
- rect.height = height;
106
- calcRightBottom(rect);
107
- } else {
108
- // 左右留白,扩大宽度
109
- const width = rect.height * this.ratio;
110
- rect.x -= (width - rect.width) / 2;
111
- rect.width = width;
112
- calcRightBottom(rect);
113
- }
114
- const canvasRect = this.parent.canvasRect;
115
- let left = 0,
116
- top = 0;
117
- if (rect.x < 0) {
118
- left = -rect.x / rect.width;
119
- } else if (rect.x + rect.width > canvasRect.width) {
120
- let space = 0;
121
- if (canvasRect.width > rect.width) {
122
- // 均已左上角为起点,这种场景需要剪掉一个留白
123
- space = canvasRect.width - rect.width;
124
- }
125
- left = (-rect.x + space) / rect.width;
126
- }
127
-
128
- if (rect.y < 0) {
129
- top = -rect.y / rect.height;
130
- } else if (rect.y + rect.height > canvasRect.height) {
131
- let space = 0;
132
- if (canvasRect.height > rect.height) {
133
- space = canvasRect.height - rect.height;
134
- }
135
- top = (-rect.y + space) / rect.height;
136
- }
137
-
138
- const width =
139
- canvasRect.width > rect.width ? 1 : canvasRect.width / rect.width;
140
- const height =
141
- canvasRect.height > rect.height ? 1 : canvasRect.height / rect.height;
142
- this.view.style.left = this.padding + left * this.boxWidth + 'px';
143
- this.view.style.width = width * this.boxWidth + 'px';
144
- this.view.style.top = this.padding + top * this.boxHeight + 'px';
145
- this.view.style.height = height * this.boxHeight + 'px';
146
- }
147
- }
148
-
149
- private onMouseDown = (e: MouseEvent) => {
150
- e.preventDefault();
151
- e.stopPropagation();
152
- this.isDown = true;
153
- };
154
-
155
- private onMouseMove = (e: MouseEvent) => {
156
- e.preventDefault();
157
- e.stopPropagation();
158
-
159
- if (this.isDown) {
160
- try {
161
- this.parent.gotoView(
162
- e.offsetX / this.box.clientWidth,
163
- e.offsetY / this.box.clientHeight
164
- );
165
- } catch (e) {
166
- console.warn(e.message);
167
- this.isDown = false;
168
- }
169
- }
170
- };
171
-
172
- private onMouseUp = (e: MouseEvent) => {
173
- e.preventDefault();
174
- e.stopPropagation();
175
- try {
176
- this.parent.gotoView(
177
- e.offsetX / this.box.clientWidth,
178
- e.offsetY / this.box.clientHeight
179
- );
180
- } catch (e) {
181
- console.warn(e.message);
182
- } finally {
183
- this.isDown = false;
184
- }
185
- };
186
-
187
- private onWheel = (e: WheelEvent) => {
188
- //放大镜缩放
189
- let scaleOff = 0.015;
190
- if (this.parent.store.options.scaleOff) {
191
- scaleOff = this.parent.store.options.scaleOff;
192
- if (e.deltaY > 0) {
193
- scaleOff = -this.parent.store.options.scaleOff;
194
- }
195
- } else {
196
- let isMac = /mac os /i.test(navigator.userAgent);
197
- if (isMac) {
198
- if (!e.ctrlKey) {
199
- scaleOff *= (e as any).wheelDeltaY / 240;
200
- } else if (e.deltaY > 0) {
201
- scaleOff *= -1;
202
- }
203
- } else {
204
- let offset = 0.2;
205
- if (e.deltaY.toString().indexOf('.') !== -1) {
206
- offset = 0.01;
207
- }
208
- if (e.deltaY > 0) {
209
- scaleOff = -offset;
210
- } else {
211
- scaleOff = offset;
212
- }
213
- }
214
- }
215
- let { offsetX: x, offsetY: y } = e;
216
-
217
- const width =
218
- this.parent.store.data.width || this.parent.store.options.width;
219
- const height =
220
- this.parent.store.data.height || this.parent.store.options.height;
221
- if (width && height) {
222
- //大屏
223
- x =
224
- (x / this.boxWidth) * width * this.parent.store.data.scale +
225
- this.parent.store.data.origin.x +
226
- this.parent.store.data.x;
227
- y =
228
- (y / this.boxHeight) * height * this.parent.store.data.scale +
229
- this.parent.store.data.origin.y +
230
- this.parent.store.data.y;
231
- } else {
232
- const rect = this.parent.parent.getRect();
233
- x = (x / this.boxWidth) * rect.width + rect.x + this.parent.store.data.x;
234
- y =
235
- (y / this.boxHeight) * rect.height + rect.y + this.parent.store.data.y;
236
- }
237
- this.parent.scale(this.parent.store.data.scale + scaleOff, { x, y });
238
- };
239
- }