@meta2d/core 1.0.0

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 (202) hide show
  1. package/index.d.ts +9 -0
  2. package/index.js +10 -0
  3. package/index.js.map +1 -0
  4. package/package.json +39 -0
  5. package/src/canvas/canvas.d.ts +399 -0
  6. package/src/canvas/canvas.js +5920 -0
  7. package/src/canvas/canvas.js.map +1 -0
  8. package/src/canvas/canvasImage.d.ts +25 -0
  9. package/src/canvas/canvasImage.js +343 -0
  10. package/src/canvas/canvasImage.js.map +1 -0
  11. package/src/canvas/index.d.ts +2 -0
  12. package/src/canvas/index.js +3 -0
  13. package/src/canvas/index.js.map +1 -0
  14. package/src/canvas/magnifierCanvas.d.ts +20 -0
  15. package/src/canvas/magnifierCanvas.js +99 -0
  16. package/src/canvas/magnifierCanvas.js.map +1 -0
  17. package/src/canvas/offscreen.d.ts +2 -0
  18. package/src/canvas/offscreen.js +14 -0
  19. package/src/canvas/offscreen.js.map +1 -0
  20. package/src/core.d.ts +348 -0
  21. package/src/core.js +2465 -0
  22. package/src/core.js.map +1 -0
  23. package/src/data.d.ts +34 -0
  24. package/src/data.js +83 -0
  25. package/src/data.js.map +1 -0
  26. package/src/diagrams/arrow.d.ts +4 -0
  27. package/src/diagrams/arrow.js +47 -0
  28. package/src/diagrams/arrow.js.map +1 -0
  29. package/src/diagrams/circle.d.ts +2 -0
  30. package/src/diagrams/circle.js +9 -0
  31. package/src/diagrams/circle.js.map +1 -0
  32. package/src/diagrams/cloud.d.ts +2 -0
  33. package/src/diagrams/cloud.js +12 -0
  34. package/src/diagrams/cloud.js.map +1 -0
  35. package/src/diagrams/cube.d.ts +2 -0
  36. package/src/diagrams/cube.js +70 -0
  37. package/src/diagrams/cube.js.map +1 -0
  38. package/src/diagrams/diamond.d.ts +2 -0
  39. package/src/diagrams/diamond.js +13 -0
  40. package/src/diagrams/diamond.js.map +1 -0
  41. package/src/diagrams/file.d.ts +2 -0
  42. package/src/diagrams/file.js +18 -0
  43. package/src/diagrams/file.js.map +1 -0
  44. package/src/diagrams/gif.d.ts +5 -0
  45. package/src/diagrams/gif.js +80 -0
  46. package/src/diagrams/gif.js.map +1 -0
  47. package/src/diagrams/hexagon.d.ts +2 -0
  48. package/src/diagrams/hexagon.js +55 -0
  49. package/src/diagrams/hexagon.js.map +1 -0
  50. package/src/diagrams/iframe.d.ts +5 -0
  51. package/src/diagrams/iframe.js +52 -0
  52. package/src/diagrams/iframe.js.map +1 -0
  53. package/src/diagrams/index.d.ts +67 -0
  54. package/src/diagrams/index.js +72 -0
  55. package/src/diagrams/index.js.map +1 -0
  56. package/src/diagrams/line/curve.d.ts +16 -0
  57. package/src/diagrams/line/curve.js +233 -0
  58. package/src/diagrams/line/curve.js.map +1 -0
  59. package/src/diagrams/line/index.d.ts +4 -0
  60. package/src/diagrams/line/index.js +5 -0
  61. package/src/diagrams/line/index.js.map +1 -0
  62. package/src/diagrams/line/line.d.ts +42 -0
  63. package/src/diagrams/line/line.js +419 -0
  64. package/src/diagrams/line/line.js.map +1 -0
  65. package/src/diagrams/line/polyline.d.ts +10 -0
  66. package/src/diagrams/line/polyline.js +622 -0
  67. package/src/diagrams/line/polyline.js.map +1 -0
  68. package/src/diagrams/line/smooth.d.ts +3 -0
  69. package/src/diagrams/line/smooth.js +174 -0
  70. package/src/diagrams/line/smooth.js.map +1 -0
  71. package/src/diagrams/message.d.ts +2 -0
  72. package/src/diagrams/message.js +15 -0
  73. package/src/diagrams/message.js.map +1 -0
  74. package/src/diagrams/mindLine.d.ts +3 -0
  75. package/src/diagrams/mindLine.js +31 -0
  76. package/src/diagrams/mindLine.js.map +1 -0
  77. package/src/diagrams/mindNode.d.ts +3 -0
  78. package/src/diagrams/mindNode.js +189 -0
  79. package/src/diagrams/mindNode.js.map +1 -0
  80. package/src/diagrams/pentagon.d.ts +3 -0
  81. package/src/diagrams/pentagon.js +46 -0
  82. package/src/diagrams/pentagon.js.map +1 -0
  83. package/src/diagrams/pentagram.d.ts +3 -0
  84. package/src/diagrams/pentagram.js +77 -0
  85. package/src/diagrams/pentagram.js.map +1 -0
  86. package/src/diagrams/people.d.ts +2 -0
  87. package/src/diagrams/people.js +19 -0
  88. package/src/diagrams/people.js.map +1 -0
  89. package/src/diagrams/rectangle.d.ts +3 -0
  90. package/src/diagrams/rectangle.js +26 -0
  91. package/src/diagrams/rectangle.js.map +1 -0
  92. package/src/diagrams/svg/parse.d.ts +15 -0
  93. package/src/diagrams/svg/parse.js +326 -0
  94. package/src/diagrams/svg/parse.js.map +1 -0
  95. package/src/diagrams/svgPath.d.ts +2 -0
  96. package/src/diagrams/svgPath.js +30 -0
  97. package/src/diagrams/svgPath.js.map +1 -0
  98. package/src/diagrams/triangle.d.ts +3 -0
  99. package/src/diagrams/triangle.js +41 -0
  100. package/src/diagrams/triangle.js.map +1 -0
  101. package/src/diagrams/video.d.ts +5 -0
  102. package/src/diagrams/video.js +143 -0
  103. package/src/diagrams/video.js.map +1 -0
  104. package/src/event/event.d.ts +45 -0
  105. package/src/event/event.js +17 -0
  106. package/src/event/event.js.map +1 -0
  107. package/src/event/index.d.ts +1 -0
  108. package/src/event/index.js +2 -0
  109. package/src/event/index.js.map +1 -0
  110. package/src/map/index.d.ts +1 -0
  111. package/src/map/index.js +2 -0
  112. package/src/map/index.js.map +1 -0
  113. package/src/map/map.d.ts +20 -0
  114. package/src/map/map.js +143 -0
  115. package/src/map/map.js.map +1 -0
  116. package/src/options.d.ts +70 -0
  117. package/src/options.js +61 -0
  118. package/src/options.js.map +1 -0
  119. package/src/pen/arrow.d.ts +4 -0
  120. package/src/pen/arrow.js +186 -0
  121. package/src/pen/arrow.js.map +1 -0
  122. package/src/pen/index.d.ts +5 -0
  123. package/src/pen/index.js +6 -0
  124. package/src/pen/index.js.map +1 -0
  125. package/src/pen/math.d.ts +28 -0
  126. package/src/pen/math.js +304 -0
  127. package/src/pen/math.js.map +1 -0
  128. package/src/pen/model.d.ts +354 -0
  129. package/src/pen/model.js +172 -0
  130. package/src/pen/model.js.map +1 -0
  131. package/src/pen/render.d.ts +132 -0
  132. package/src/pen/render.js +1908 -0
  133. package/src/pen/render.js.map +1 -0
  134. package/src/pen/text.d.ts +7 -0
  135. package/src/pen/text.js +311 -0
  136. package/src/pen/text.js.map +1 -0
  137. package/src/pen/utils.d.ts +2 -0
  138. package/src/pen/utils.js +41 -0
  139. package/src/pen/utils.js.map +1 -0
  140. package/src/point/index.d.ts +1 -0
  141. package/src/point/index.js +2 -0
  142. package/src/point/index.js.map +1 -0
  143. package/src/point/point.d.ts +53 -0
  144. package/src/point/point.js +119 -0
  145. package/src/point/point.js.map +1 -0
  146. package/src/rect/index.d.ts +1 -0
  147. package/src/rect/index.js +2 -0
  148. package/src/rect/index.js.map +1 -0
  149. package/src/rect/rect.d.ts +49 -0
  150. package/src/rect/rect.js +446 -0
  151. package/src/rect/rect.js.map +1 -0
  152. package/src/rect/triangle.d.ts +2 -0
  153. package/src/rect/triangle.js +10 -0
  154. package/src/rect/triangle.js.map +1 -0
  155. package/src/scroll/index.d.ts +1 -0
  156. package/src/scroll/index.js +2 -0
  157. package/src/scroll/index.js.map +1 -0
  158. package/src/scroll/scroll.d.ts +32 -0
  159. package/src/scroll/scroll.js +193 -0
  160. package/src/scroll/scroll.js.map +1 -0
  161. package/src/store/global.d.ts +25 -0
  162. package/src/store/global.js +18 -0
  163. package/src/store/global.js.map +1 -0
  164. package/src/store/index.d.ts +2 -0
  165. package/src/store/index.js +3 -0
  166. package/src/store/index.js.map +1 -0
  167. package/src/store/store.d.ts +104 -0
  168. package/src/store/store.js +73 -0
  169. package/src/store/store.js.map +1 -0
  170. package/src/tooltip/index.d.ts +1 -0
  171. package/src/tooltip/index.js +2 -0
  172. package/src/tooltip/index.js.map +1 -0
  173. package/src/tooltip/tooltip.d.ts +40 -0
  174. package/src/tooltip/tooltip.js +162 -0
  175. package/src/tooltip/tooltip.js.map +1 -0
  176. package/src/utils/browser.d.ts +1 -0
  177. package/src/utils/browser.js +4 -0
  178. package/src/utils/browser.js.map +1 -0
  179. package/src/utils/clone.d.ts +8 -0
  180. package/src/utils/clone.js +73 -0
  181. package/src/utils/clone.js.map +1 -0
  182. package/src/utils/color.d.ts +3 -0
  183. package/src/utils/color.js +126 -0
  184. package/src/utils/color.js.map +1 -0
  185. package/src/utils/error.d.ts +2 -0
  186. package/src/utils/error.js +6 -0
  187. package/src/utils/error.js.map +1 -0
  188. package/src/utils/file.d.ts +2 -0
  189. package/src/utils/file.js +84 -0
  190. package/src/utils/file.js.map +1 -0
  191. package/src/utils/index.d.ts +7 -0
  192. package/src/utils/index.js +8 -0
  193. package/src/utils/index.js.map +1 -0
  194. package/src/utils/math.d.ts +18 -0
  195. package/src/utils/math.js +141 -0
  196. package/src/utils/math.js.map +1 -0
  197. package/src/utils/padding.d.ts +7 -0
  198. package/src/utils/padding.js +47 -0
  199. package/src/utils/padding.js.map +1 -0
  200. package/src/utils/uuid.d.ts +4 -0
  201. package/src/utils/uuid.js +13 -0
  202. package/src/utils/uuid.js.map +1 -0
@@ -0,0 +1,162 @@
1
+ var Tooltip = /** @class */ (function () {
2
+ function Tooltip(parentElement, store) {
3
+ var _this = this;
4
+ this.parentElement = parentElement;
5
+ this.store = store;
6
+ this.box = document.createElement('div');
7
+ this.text = document.createElement('div');
8
+ this.arrowUp = document.createElement('div');
9
+ this.arrowDown = document.createElement('div');
10
+ this.box.className = 'meta2d-tooltip';
11
+ this.text.className = 'text';
12
+ this.arrowUp.className = 'arrow';
13
+ this.arrowDown.className = 'arrow down';
14
+ this.box.appendChild(this.text);
15
+ this.box.appendChild(this.arrowUp);
16
+ this.box.appendChild(this.arrowDown);
17
+ parentElement.appendChild(this.box);
18
+ this.box.onmouseleave = function () {
19
+ _this.hide();
20
+ _this.store.lastHover = undefined;
21
+ };
22
+ var sheet;
23
+ for (var i = 0; i < document.styleSheets.length; i++) {
24
+ if (document.styleSheets[i].title === 'le5le.com/tooltip') {
25
+ sheet = document.styleSheets[i];
26
+ }
27
+ }
28
+ if (!sheet) {
29
+ var style = document.createElement('style');
30
+ style.type = 'text/css';
31
+ style.title = 'le5le.com/tooltip';
32
+ document.head.appendChild(style);
33
+ style = document.createElement('style');
34
+ style.type = 'text/css';
35
+ document.head.appendChild(style);
36
+ sheet = style.sheet;
37
+ sheet.insertRule('.meta2d-tooltip{position:absolute;padding:8px 0;z-index:10;left: -9999px;top: -9999px;}');
38
+ sheet.insertRule('.meta2d-tooltip .text{max-width:320px;min-height:30px;max-height:400px;outline:none;padding:8px 16px;border-radius:4px;background:#777777;color:#ffffff;line-height:1.8;overflow-y:auto;}');
39
+ sheet.insertRule('.meta2d-tooltip .arrow{position:absolute;border:6px solid transparent;background:transparent;top:-4px;left:50%;transform:translateX(-50%)}');
40
+ sheet.insertRule('.meta2d-tooltip .arrow.down{top:initial;bottom: 1.5px;}');
41
+ }
42
+ }
43
+ /**
44
+ * 通过 pen 的 titleFn titleFnJs title 来获取 title
45
+ * @returns 此次应该展示的 title
46
+ */
47
+ Tooltip.getTitle = function (pen) {
48
+ if (pen.titleFnJs && !pen.titleFn) {
49
+ try {
50
+ pen.titleFn = new Function('pen', pen.titleFnJs);
51
+ }
52
+ catch (error) {
53
+ console.log('titleFnJs', error);
54
+ }
55
+ }
56
+ return pen.titleFn ? pen.titleFn(pen) : String(pen.title);
57
+ };
58
+ /**
59
+ * 更改 tooltip dom 的文本
60
+ * @returns 返回设置前的 rect
61
+ */
62
+ Tooltip.prototype.setText = function (pen) {
63
+ var oldElemRect = this.box.getBoundingClientRect();
64
+ var marked = globalThis.marked;
65
+ var title = Tooltip.getTitle(pen);
66
+ if (marked) {
67
+ this.text.innerHTML = marked(title);
68
+ var a = this.text.getElementsByTagName('A');
69
+ for (var i = 0; i < a.length; ++i) {
70
+ a[i].setAttribute('target', '_blank');
71
+ }
72
+ }
73
+ else {
74
+ this.text.innerHTML = title;
75
+ }
76
+ return oldElemRect;
77
+ };
78
+ /**
79
+ * 更新文字
80
+ */
81
+ Tooltip.prototype.updateText = function (pen) {
82
+ var _a;
83
+ if (((_a = this.currentPen) === null || _a === void 0 ? void 0 : _a.id) !== pen.id) {
84
+ return;
85
+ }
86
+ if (Tooltip.titleEmpty(pen)) {
87
+ return;
88
+ }
89
+ var oldRect = this.setText(pen);
90
+ var newRect = this.box.getBoundingClientRect();
91
+ this.changePositionByText(oldRect, newRect);
92
+ };
93
+ /**
94
+ * 改变文字会 影响 box 的大小,需要重新设置位置
95
+ * @param oldRect 原
96
+ * @param newRect 新
97
+ */
98
+ Tooltip.prototype.changePositionByText = function (oldRect, newRect) {
99
+ this.x -= (newRect.width - oldRect.width) / 2;
100
+ this.y -= newRect.height - oldRect.height;
101
+ this.box.style.left = this.x + 'px';
102
+ this.box.style.top = this.y + 'px';
103
+ };
104
+ Tooltip.titleEmpty = function (pen) {
105
+ return !pen.title && !pen.titleFn && !pen.titleFnJs;
106
+ };
107
+ Tooltip.prototype.show = function (pen, pos) {
108
+ this.currentPen = pen;
109
+ if (Tooltip.titleEmpty(pen)) {
110
+ return;
111
+ }
112
+ this.setText(pen);
113
+ var elemRect = this.box.getBoundingClientRect();
114
+ var rect = pen.calculative.worldRect;
115
+ var x = pen.calculative.canvas.store.data.x + pos.x - elemRect.width / 2;
116
+ var y = pen.calculative.canvas.store.data.y + pos.y - elemRect.height;
117
+ if (!pen.type) {
118
+ x =
119
+ pen.calculative.canvas.store.data.x +
120
+ rect.x -
121
+ (elemRect.width - rect.width) / 2;
122
+ y =
123
+ pen.calculative.canvas.store.data.y +
124
+ rect.ey -
125
+ elemRect.height -
126
+ rect.height;
127
+ }
128
+ if (y > 0) {
129
+ this.arrowUp.style.borderBottomColor = 'transparent';
130
+ this.arrowDown.style.borderTopColor = '#777777';
131
+ }
132
+ else {
133
+ y += elemRect.height + rect.height + 5;
134
+ this.arrowUp.style.borderBottomColor = '#777777';
135
+ this.arrowDown.style.borderTopColor = 'transparent';
136
+ }
137
+ this.x = x;
138
+ this.y = y;
139
+ this.box.style.left = this.x + 'px';
140
+ this.box.style.top = this.y + 'px';
141
+ };
142
+ Tooltip.prototype.hide = function () {
143
+ this.currentPen = null;
144
+ this.x = -9999;
145
+ this.box.style.left = '-9999px';
146
+ };
147
+ Tooltip.prototype.translate = function (x, y) {
148
+ if (this.x < -1000) {
149
+ return;
150
+ }
151
+ this.x += x;
152
+ this.y += y;
153
+ this.box.style.left = this.x + 'px';
154
+ this.box.style.top = this.y + 'px';
155
+ };
156
+ Tooltip.prototype.destroy = function () {
157
+ this.box.onmouseleave = null;
158
+ };
159
+ return Tooltip;
160
+ }());
161
+ export { Tooltip };
162
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../../packages/core/src/tooltip/tooltip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function isMobile(): boolean;
@@ -0,0 +1,4 @@
1
+ export function isMobile() {
2
+ return /Android|webOS|iPad|iPhone|iPod|BlackBerry/i.test(navigator.userAgent);
3
+ }
4
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../packages/core/src/utils/browser.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO,4CAA4C,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 拷贝一个对象
3
+ * @param o - object to clone
4
+ * @param keepCalc 是否保留计算属性, false, 不保留, true, 保留(但 calculative.canvas 属性仍不保存)
5
+ * @returns 拷贝后的对象
6
+ */
7
+ export declare function deepClone<T>(o: T, keepCalc?: boolean): T;
8
+ export declare function deepSetValue<T>(o: any, keyWords: string, value: number): T;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * 拷贝一个对象
3
+ * @param o - object to clone
4
+ * @param keepCalc 是否保留计算属性, false, 不保留, true, 保留(但 calculative.canvas 属性仍不保存)
5
+ * @returns 拷贝后的对象
6
+ */
7
+ export function deepClone(o, keepCalc) {
8
+ if (keepCalc === void 0) { keepCalc = false; }
9
+ if (Array.isArray(o)) {
10
+ var arr_1 = [];
11
+ o.forEach(function (item) {
12
+ arr_1.push(deepClone(item, keepCalc));
13
+ });
14
+ return arr_1;
15
+ }
16
+ else if (typeof o === 'object') {
17
+ if (o === null) {
18
+ return null;
19
+ }
20
+ else if (o.constructor === RegExp) {
21
+ return o;
22
+ }
23
+ var _o = {};
24
+ for (var key in o) {
25
+ if (['canvas', 'lastFrame'].includes(key) ||
26
+ o[key] instanceof HTMLImageElement ||
27
+ o[key] instanceof HTMLMediaElement) {
28
+ continue;
29
+ }
30
+ else if (key === 'calculative' && !keepCalc) {
31
+ continue;
32
+ }
33
+ else if (key === 'singleton') {
34
+ if (keepCalc) {
35
+ _o[key] = {};
36
+ }
37
+ else {
38
+ _o[key] = o[key];
39
+ }
40
+ continue;
41
+ }
42
+ _o[key] = deepClone(o[key], keepCalc);
43
+ }
44
+ return _o;
45
+ }
46
+ return o;
47
+ }
48
+ export function deepSetValue(o, keyWords, value) {
49
+ if (Array.isArray(o)) {
50
+ var arr_2 = [];
51
+ o.forEach(function (item) {
52
+ arr_2.push(deepSetValue(item, keyWords, value));
53
+ });
54
+ return arr_2;
55
+ }
56
+ else if (typeof o === 'object') {
57
+ if (o === null) {
58
+ return null;
59
+ }
60
+ // const _o = {} as any;
61
+ for (var key in o) {
62
+ if (key === keyWords) {
63
+ o[key] = Number(o[key]) * value;
64
+ }
65
+ else {
66
+ o[key] = deepSetValue(o[key], keyWords, value);
67
+ }
68
+ }
69
+ return o;
70
+ }
71
+ return o;
72
+ }
73
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../../packages/core/src/utils/clone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAI,CAAI,EAAE,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IACjD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACpB,IAAM,KAAG,GAAG,EAAe,CAAC;QAC5B,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI;YACb,KAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,OAAO,KAAG,CAAC;KACZ;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAChC,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE;YACnC,OAAO,CAAC,CAAC;SACV;QACD,IAAM,EAAE,GAAG,EAAO,CAAC;QACnB,KAAK,IAAM,GAAG,IAAI,CAAC,EAAE;YACnB,IACE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACrC,CAAC,CAAC,GAAG,CAAC,YAAY,gBAAgB;gBAClC,CAAC,CAAC,GAAG,CAAC,YAAY,gBAAgB,EAClC;gBACA,SAAS;aACV;iBAAM,IAAI,GAAG,KAAK,aAAa,IAAI,CAAC,QAAQ,EAAE;gBAC7C,SAAS;aACV;iBAAM,IAAI,GAAG,KAAK,WAAW,EAAE;gBAC9B,IAAI,QAAQ,EAAE;oBACZ,EAAE,CAAC,GAAG,CAAC,GAAG,EAAS,CAAC;iBACrB;qBAAM;oBACL,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;iBAClB;gBACD,SAAS;aACV;YACD,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;SACvC;QACD,OAAO,EAAE,CAAC;KACX;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,CAAM,EAAE,QAAgB,EAAE,KAAa;IACrE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACpB,IAAM,KAAG,GAAG,EAAe,CAAC;QAC5B,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI;YACb,KAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO,KAAG,CAAC;KACZ;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAChC,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QACD,wBAAwB;QACxB,KAAK,IAAM,GAAG,IAAI,CAAC,EAAE;YACnB,IAAI,GAAG,KAAK,QAAQ,EAAE;gBACpB,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;aACjC;iBAAM;gBACL,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;aAChD;SACF;QACD,OAAO,CAAC,CAAC;KACV;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function pSBCr(d: any): any;
2
+ export declare function pSBC(p: any, c0: any, c1?: any, l?: any): string;
3
+ export declare function rgba(c: string, p: number): string;
@@ -0,0 +1,126 @@
1
+ // pSBC - Shade Blend Convert - Version 4.0 - 02/18/2019
2
+ // https://github.com/PimpTrizkit/PJs/edit/master/pSBC.js
3
+ var __read = (this && this.__read) || function (o, n) {
4
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
5
+ if (!m) return o;
6
+ var i = m.call(o), r, ar = [], e;
7
+ try {
8
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
9
+ }
10
+ catch (error) { e = { error: error }; }
11
+ finally {
12
+ try {
13
+ if (r && !r.done && (m = i["return"])) m.call(i);
14
+ }
15
+ finally { if (e) throw e.error; }
16
+ }
17
+ return ar;
18
+ };
19
+ export function pSBCr(d) {
20
+ var i = parseInt, m = Math.round;
21
+ var n = d.length, x = {};
22
+ if (n > 9) {
23
+ var _a = __read((d = d.split(',')), 4), r = _a[0], g = _a[1], b = _a[2], a = _a[3];
24
+ n = d.length;
25
+ if (n < 3 || n > 4)
26
+ return null;
27
+ (x.r = i(r[3] == 'a' ? r.slice(5) : r.slice(4))),
28
+ (x.g = i(g)),
29
+ (x.b = i(b)),
30
+ (x.a = a ? parseFloat(a) : -1);
31
+ }
32
+ else {
33
+ if (n == 8 || n == 6 || n < 4)
34
+ return null;
35
+ if (n < 6)
36
+ d =
37
+ '#' +
38
+ d[1] +
39
+ d[1] +
40
+ d[2] +
41
+ d[2] +
42
+ d[3] +
43
+ d[3] +
44
+ (n > 4 ? d[4] + d[4] : '');
45
+ d = i(d.slice(1), 16);
46
+ if (n == 9 || n == 5)
47
+ (x.r = (d >> 24) & 255),
48
+ (x.g = (d >> 16) & 255),
49
+ (x.b = (d >> 8) & 255),
50
+ (x.a = m((d & 255) / 0.255) / 1000);
51
+ else
52
+ (x.r = d >> 16), (x.g = (d >> 8) & 255), (x.b = d & 255), (x.a = -1);
53
+ }
54
+ return x;
55
+ }
56
+ /*
57
+ example:
58
+ pSBC ( 0.42, color1 ); // rgb(20,60,200) + [42% Lighter] => rgb(166,171,225)
59
+ pSBC ( -0.4, color5 ); // #F3A + [40% Darker] => #c62884
60
+
61
+ pSBC ( -0.5, color2, color8, true ); // rgba(20,60,200,0.67423) + rgba(200,60,20,0.98631) + [50% Blend] => rgba(110,60,110,0.83)
62
+ pSBC ( 0.7, color2, color7, true ); // rgba(20,60,200,0.67423) + rgb(200,60,20) + [70% Blend] => rgba(146,60,74,0.67423)
63
+
64
+ more:
65
+ https://github-wiki-see.page/m/PimpTrizkit/PJs/wiki/12.-Shade%2C-Blend-and-Convert-a-Web-Color-%28pSBC.js%29
66
+ */
67
+ export function pSBC(p, c0, c1, l) {
68
+ var r, g, b, P, f, t, h, m = Math.round, a = typeof c1 == 'string';
69
+ if (typeof p != 'number' ||
70
+ p < -1 ||
71
+ p > 1 ||
72
+ typeof c0 != 'string' ||
73
+ (c0[0] != 'r' && c0[0] != '#') ||
74
+ (c1 && !a))
75
+ return null;
76
+ (h = c0.length > 9),
77
+ (h = a ? (c1.length > 9 ? true : c1 == 'c' ? !h : false) : h),
78
+ (f = pSBCr(c0)),
79
+ (P = p < 0),
80
+ (t =
81
+ c1 && c1 != 'c'
82
+ ? pSBCr(c1)
83
+ : P
84
+ ? { r: 0, g: 0, b: 0, a: -1 }
85
+ : { r: 255, g: 255, b: 255, a: -1 }),
86
+ (p = P ? p * -1 : p),
87
+ (P = 1 - p);
88
+ if (!f || !t)
89
+ return null;
90
+ if (l)
91
+ (r = m(P * f.r + p * t.r)),
92
+ (g = m(P * f.g + p * t.g)),
93
+ (b = m(P * f.b + p * t.b));
94
+ else
95
+ (r = m(Math.pow((P * Math.pow(f.r, 2) + p * Math.pow(t.r, 2)), 0.5))),
96
+ (g = m(Math.pow((P * Math.pow(f.g, 2) + p * Math.pow(t.g, 2)), 0.5))),
97
+ (b = m(Math.pow((P * Math.pow(f.b, 2) + p * Math.pow(t.b, 2)), 0.5)));
98
+ (a = f.a),
99
+ (t = t.a),
100
+ (f = a >= 0 || t >= 0),
101
+ (a = f ? (a < 0 ? t : t < 0 ? a : a * P + t * p) : 0);
102
+ if (h)
103
+ return ('rgb' +
104
+ (f ? 'a(' : '(') +
105
+ r +
106
+ ',' +
107
+ g +
108
+ ',' +
109
+ b +
110
+ (f ? ',' + m(a * 1000) / 1000 : '') +
111
+ ')');
112
+ else
113
+ return ('#' +
114
+ (4294967296 + r * 16777216 + g * 65536 + b * 256 + (f ? m(a * 255) : 0))
115
+ .toString(16)
116
+ .slice(1, f ? undefined : -2));
117
+ }
118
+ globalThis.pSBC = pSBC;
119
+ export function rgba(c, p) {
120
+ var f = pSBCr(c) || { r: 0, g: 0, b: 0 };
121
+ if (f.a < 0) {
122
+ return "rgba(" + f.r + "," + f.g + "," + f.b + "," + p + ")";
123
+ }
124
+ return "rgba(" + f.r + "," + f.g + "," + f.b + "," + (p + f.a) + ")";
125
+ }
126
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../packages/core/src/utils/color.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Meta2dStore } from '../store';
2
+ export declare function lockedError(store: Meta2dStore): void;
@@ -0,0 +1,6 @@
1
+ export function lockedError(store) {
2
+ if (store.data.locked) {
3
+ throw new Error('canvas is locked');
4
+ }
5
+ }
6
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../packages/core/src/utils/error.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function fileToBase64(file: File): Promise<string>;
2
+ export declare function uploadFile(file: File, url: string, params: Record<string, any>, headers: Record<string, string>): Promise<string>;
@@ -0,0 +1,84 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ export function fileToBase64(file) {
38
+ return __awaiter(this, void 0, void 0, function () {
39
+ return __generator(this, function (_a) {
40
+ return [2 /*return*/, new Promise(function (resolve, reject) {
41
+ var reader = new FileReader();
42
+ reader.onload = function (e) {
43
+ resolve(e.target.result);
44
+ };
45
+ reader.onerror = function (e) {
46
+ reject(e);
47
+ };
48
+ reader.readAsDataURL(file);
49
+ })];
50
+ });
51
+ });
52
+ }
53
+ export function uploadFile(file, url, params, headers) {
54
+ return __awaiter(this, void 0, void 0, function () {
55
+ var formData, key, res;
56
+ return __generator(this, function (_a) {
57
+ switch (_a.label) {
58
+ case 0:
59
+ formData = new FormData();
60
+ // 后端接受的 formData 文件属性名一定为 file
61
+ formData.append('file', file);
62
+ if (params) {
63
+ for (key in params) {
64
+ if (params.hasOwnProperty(key)) {
65
+ formData.append(key, params[key]);
66
+ }
67
+ }
68
+ }
69
+ return [4 /*yield*/, fetch(url, {
70
+ method: 'POST',
71
+ headers: headers,
72
+ body: formData,
73
+ })];
74
+ case 1:
75
+ res = _a.sent();
76
+ return [4 /*yield*/, res.json()];
77
+ case 2:
78
+ // 后端返回的一级属性中,必须包含一个名为url的属性
79
+ return [2 /*return*/, (_a.sent()).url];
80
+ }
81
+ });
82
+ });
83
+ }
84
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../packages/core/src/utils/file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,UAAgB,YAAY,CAAC,IAAU;;;YAC3C,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBACjC,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAChC,MAAM,CAAC,MAAM,GAAG,UAAC,CAAC;wBAChB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAC;oBACrC,CAAC,CAAC;oBACF,MAAM,CAAC,OAAO,GAAG,UAAC,CAAC;wBACjB,MAAM,CAAC,CAAC,CAAC,CAAC;oBACZ,CAAC,CAAC;oBACF,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC,CAAC,EAAC;;;CACJ;AAED,MAAM,UAAgB,UAAU,CAC9B,IAAU,EACV,GAAW,EACX,MAA2B,EAC3B,OAA+B;;;;;;oBAEzB,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,+BAA+B;oBAC/B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC9B,IAAI,MAAM,EAAE;wBACV,KAAW,GAAG,IAAI,MAAM,EAAE;4BACxB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gCAC9B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;6BACnC;yBACF;qBACF;oBACW,qBAAM,KAAK,CAAC,GAAG,EAAE;4BAC3B,MAAM,EAAE,MAAM;4BACd,OAAO,SAAA;4BACP,IAAI,EAAE,QAAQ;yBACf,CAAC,EAAA;;oBAJI,GAAG,GAAG,SAIV;oBAEM,qBAAM,GAAG,CAAC,IAAI,EAAE,EAAA;;gBADxB,4BAA4B;gBAC5B,sBAAO,CAAC,SAAgB,CAAC,CAAC,GAAG,EAAC;;;;CAC/B"}
@@ -0,0 +1,7 @@
1
+ export * from './color';
2
+ export * from './math';
3
+ export * from './uuid';
4
+ export * from './browser';
5
+ export * from './padding';
6
+ export * from './clone';
7
+ export * from './file';
@@ -0,0 +1,8 @@
1
+ export * from './color';
2
+ export * from './math';
3
+ export * from './uuid';
4
+ export * from './browser';
5
+ export * from './padding';
6
+ export * from './clone';
7
+ export * from './file';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,18 @@
1
+ export declare function abs(num: number, percent: number | string): number;
2
+ /**
3
+ * 实际值是否在范围中, 数学上的开闭
4
+ * @param realValue 实际值
5
+ * @param collection 集合规范,与数学上相同,如[0, 100],前闭后闭;如[0, 100),前闭后开;
6
+ * @returns undefined 说明参数不规范 ,true 说明在范围内,false 说明不在范围内
7
+ */
8
+ export declare function valueInRange(realValue: number, collection: unknown): boolean;
9
+ /**
10
+ * 实际值是否在数组中,即是否属于
11
+ * 例如: [1,2,3] 只有 1 2 3 是属于 collection 的
12
+ * .. 范围值 30..50 等于 闭区间的 [30,50] ,即范围值
13
+ * [1,20,30..50,65] 只有 1 20 30..50 65 是属于 collection 的
14
+ * @param realValue 实际值
15
+ * @param collection 集合
16
+ * @returns undefined 说明参数不规范 ,true 说明在范围内,false 说明不在范围内
17
+ */
18
+ export declare function valueInArray(realValue: number, collection: unknown): boolean;