@logicflow/extension 2.0.0-beta.2 → 2.0.0-beta.4

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 (44) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/dist/index.min.js +2 -2
  3. package/es/components/menu/index.d.ts +1 -1
  4. package/es/components/menu/index.js +9 -10
  5. package/es/components/menu/index.js.map +1 -1
  6. package/es/index.d.ts +1 -0
  7. package/es/index.js +1 -0
  8. package/es/index.js.map +1 -1
  9. package/es/insert-node-in-polyline/index.js +3 -3
  10. package/es/insert-node-in-polyline/index.js.map +1 -1
  11. package/es/materials/node-selection/index.d.ts +2 -1
  12. package/es/materials/node-selection/index.js +64 -56
  13. package/es/materials/node-selection/index.js.map +1 -1
  14. package/es/tools/snapshot/index.d.ts +101 -11
  15. package/es/tools/snapshot/index.js +331 -147
  16. package/es/tools/snapshot/index.js.map +1 -1
  17. package/es/tools/snapshot/utils.d.ts +35 -0
  18. package/es/tools/snapshot/utils.js +238 -0
  19. package/es/tools/snapshot/utils.js.map +1 -0
  20. package/lib/components/menu/index.d.ts +1 -1
  21. package/lib/components/menu/index.js +9 -10
  22. package/lib/components/menu/index.js.map +1 -1
  23. package/lib/index.d.ts +1 -0
  24. package/lib/index.js +1 -0
  25. package/lib/index.js.map +1 -1
  26. package/lib/insert-node-in-polyline/index.js +2 -2
  27. package/lib/insert-node-in-polyline/index.js.map +1 -1
  28. package/lib/materials/node-selection/index.d.ts +2 -1
  29. package/lib/materials/node-selection/index.js +63 -55
  30. package/lib/materials/node-selection/index.js.map +1 -1
  31. package/lib/tools/snapshot/index.d.ts +101 -11
  32. package/lib/tools/snapshot/index.js +331 -147
  33. package/lib/tools/snapshot/index.js.map +1 -1
  34. package/lib/tools/snapshot/utils.d.ts +35 -0
  35. package/lib/tools/snapshot/utils.js +247 -0
  36. package/lib/tools/snapshot/utils.js.map +1 -0
  37. package/package.json +7 -4
  38. package/src/components/menu/index.ts +16 -13
  39. package/src/index.ts +1 -0
  40. package/src/insert-node-in-polyline/index.ts +3 -3
  41. package/src/materials/node-selection/index.ts +72 -69
  42. package/src/tools/snapshot/README.md +130 -5
  43. package/src/tools/snapshot/index.ts +264 -98
  44. package/src/tools/snapshot/utils.ts +163 -0
@@ -1,6 +1,43 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.Snapshot = void 0;
40
+ var utils_1 = require("./utils");
4
41
  /**
5
42
  * 快照插件,生成视图
6
43
  */
@@ -8,29 +45,76 @@ var Snapshot = /** @class */ (function () {
8
45
  function Snapshot(_a) {
9
46
  var lf = _a.lf;
10
47
  var _this = this;
11
- this.fileName = 'snapshot.png';
12
48
  this.lf = lf;
13
49
  this.customCssRules = '';
14
50
  this.useGlobalRules = true;
15
51
  /* 下载快照 */
16
- lf.getSnapshot = function (fileName, backgroundColor) {
17
- _this.getSnapshot(fileName, backgroundColor);
18
- };
52
+ lf.getSnapshot = function (fileName, toImageOptions) { return __awaiter(_this, void 0, void 0, function () {
53
+ var curPartial, _a, partial;
54
+ var _this = this;
55
+ return __generator(this, function (_b) {
56
+ switch (_b.label) {
57
+ case 0:
58
+ curPartial = this.lf.graphModel.getPartial();
59
+ _a = (toImageOptions !== null && toImageOptions !== void 0 ? toImageOptions : {}).partial, partial = _a === void 0 ? curPartial : _a;
60
+ if (!(curPartial !== partial)) return [3 /*break*/, 1];
61
+ this.lf.graphModel.setPartial(partial);
62
+ this.lf.graphModel.eventCenter.once('graph:updated', function () { return __awaiter(_this, void 0, void 0, function () {
63
+ return __generator(this, function (_a) {
64
+ switch (_a.label) {
65
+ case 0: return [4 /*yield*/, this.getSnapshot(fileName, toImageOptions)
66
+ // 恢复原来渲染模式
67
+ ];
68
+ case 1:
69
+ _a.sent();
70
+ // 恢复原来渲染模式
71
+ this.lf.graphModel.setPartial(curPartial);
72
+ return [2 /*return*/];
73
+ }
74
+ });
75
+ }); });
76
+ return [3 /*break*/, 3];
77
+ case 1: return [4 /*yield*/, this.getSnapshot(fileName, toImageOptions)];
78
+ case 2:
79
+ _b.sent();
80
+ _b.label = 3;
81
+ case 3: return [2 /*return*/];
82
+ }
83
+ });
84
+ }); };
19
85
  /* 获取Blob对象,用户图片上传 */
20
- lf.getSnapshotBlob = function (backgroundColor) {
21
- return _this.getSnapshotBlob(backgroundColor);
22
- };
86
+ lf.getSnapshotBlob = function (backgroundColor, fileType) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
87
+ switch (_a.label) {
88
+ case 0: return [4 /*yield*/, this.getSnapshotBlob(backgroundColor, fileType)
89
+ /* 获取Base64对象,用户图片上传 */
90
+ ];
91
+ case 1: return [2 /*return*/, _a.sent()
92
+ /* 获取Base64对象,用户图片上传 */
93
+ ];
94
+ }
95
+ }); }); };
23
96
  /* 获取Base64对象,用户图片上传 */
24
- lf.getSnapshotBase64 = function (backgroundColor) {
25
- return _this.getSnapshotBase64(backgroundColor);
26
- };
97
+ lf.getSnapshotBase64 = function (backgroundColor, fileType) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
98
+ switch (_a.label) {
99
+ case 0: return [4 /*yield*/, this.getSnapshotBase64(backgroundColor, fileType)];
100
+ case 1: return [2 /*return*/, _a.sent()];
101
+ }
102
+ }); }); };
27
103
  }
28
- /* 获取svgRoot对象 */
104
+ /**
105
+ * 获取svgRoot对象dom: 画布元素(不包含grid背景)
106
+ * @param lf LogicFlow
107
+ * @returns
108
+ */
29
109
  Snapshot.prototype.getSvgRootElement = function (lf) {
30
110
  var svgRootElement = lf.container.querySelector('.lf-canvas-overlay');
31
111
  return svgRootElement;
32
112
  };
33
- Snapshot.prototype.triggerDownload = function (imgURI) {
113
+ /**
114
+ * 通过 imgUrl 下载图片
115
+ * @param imgUrl
116
+ */
117
+ Snapshot.prototype.triggerDownload = function (imgUrl) {
34
118
  var evt = new MouseEvent('click', {
35
119
  view: document.defaultView,
36
120
  bubbles: false,
@@ -38,10 +122,14 @@ var Snapshot = /** @class */ (function () {
38
122
  });
39
123
  var a = document.createElement('a');
40
124
  a.setAttribute('download', this.fileName);
41
- a.setAttribute('href', imgURI);
125
+ a.setAttribute('href', imgUrl);
42
126
  a.setAttribute('target', '_blank');
43
127
  a.dispatchEvent(evt);
44
128
  };
129
+ /**
130
+ * 删除锚点
131
+ * @param element ChildNode
132
+ */
45
133
  Snapshot.prototype.removeAnchor = function (element) {
46
134
  var childNodes = element.childNodes;
47
135
  var childLength = element.childNodes && element.childNodes.length;
@@ -55,6 +143,10 @@ var Snapshot = /** @class */ (function () {
55
143
  }
56
144
  }
57
145
  };
146
+ /**
147
+ * 删除旋转按钮
148
+ * @param element
149
+ */
58
150
  Snapshot.prototype.removeRotateControl = function (element) {
59
151
  var childNodes = element.childNodes;
60
152
  var childLength = element.childNodes && element.childNodes.length;
@@ -68,51 +160,116 @@ var Snapshot = /** @class */ (function () {
68
160
  }
69
161
  }
70
162
  };
71
- /* 下载图片 */
72
- Snapshot.prototype.getSnapshot = function (fileName, backgroundColor) {
73
- var _this = this;
74
- this.fileName = fileName || "logic-flow.".concat(Date.now(), ".png");
75
- var svg = this.getSvgRootElement(this.lf);
76
- this.getCanvasData(svg, backgroundColor).then(function (canvas) {
77
- var imgURI = canvas
78
- .toDataURL('image/png')
79
- .replace('image/png', 'image/octet-stream');
80
- _this.triggerDownload(imgURI);
163
+ /**
164
+ * 下载图片
165
+ * @param fileName string
166
+ * @param toImageOptions
167
+ */
168
+ Snapshot.prototype.getSnapshot = function (fileName, toImageOptions) {
169
+ return __awaiter(this, void 0, void 0, function () {
170
+ var _a, _b, fileType, quality, svg, copy, svgString, blob, url;
171
+ var _this = this;
172
+ return __generator(this, function (_c) {
173
+ switch (_c.label) {
174
+ case 0:
175
+ _a = toImageOptions !== null && toImageOptions !== void 0 ? toImageOptions : {}, _b = _a.fileType, fileType = _b === void 0 ? 'png' : _b, quality = _a.quality;
176
+ this.fileName = "".concat(fileName !== null && fileName !== void 0 ? fileName : "logic-flow.".concat(Date.now()), ".").concat(fileType);
177
+ svg = this.getSvgRootElement(this.lf);
178
+ return [4 /*yield*/, (0, utils_1.updateImageSource)(svg)];
179
+ case 1:
180
+ _c.sent();
181
+ if (fileType === 'svg') {
182
+ copy = this.cloneSvg(svg);
183
+ svgString = new XMLSerializer().serializeToString(copy);
184
+ blob = new Blob([svgString], {
185
+ type: 'image/svg+xml;charset=utf-8',
186
+ });
187
+ url = URL.createObjectURL(blob);
188
+ this.triggerDownload(url);
189
+ }
190
+ else {
191
+ this.getCanvasData(svg, toImageOptions !== null && toImageOptions !== void 0 ? toImageOptions : {}).then(function (canvas) {
192
+ // canvas元素 => url image/octet-stream: 确保所有浏览器都能正常下载
193
+ var imgUrl = canvas
194
+ .toDataURL("image/".concat(fileType), quality)
195
+ .replace("image/".concat(fileType), 'image/octet-stream');
196
+ _this.triggerDownload(imgUrl);
197
+ });
198
+ }
199
+ return [2 /*return*/];
200
+ }
201
+ });
81
202
  });
82
203
  };
83
- /* 获取base64对象 */
84
- Snapshot.prototype.getSnapshotBase64 = function (backgroundColor) {
85
- var _this = this;
86
- var svg = this.getSvgRootElement(this.lf);
87
- return new Promise(function (resolve) {
88
- _this.getCanvasData(svg, backgroundColor).then(function (canvas) {
89
- var base64 = canvas.toDataURL('image/png');
90
- // 输出图片数据以及图片宽高
91
- resolve({
92
- data: base64,
93
- width: canvas.width,
94
- height: canvas.height,
95
- });
204
+ /**
205
+ * 获取base64对象
206
+ * @param backgroundColor string | undefined
207
+ * @param fileType string | undefined
208
+ * @returns Promise<SnapshotResponse>
209
+ */
210
+ Snapshot.prototype.getSnapshotBase64 = function (backgroundColor, fileType) {
211
+ return __awaiter(this, void 0, void 0, function () {
212
+ var svg;
213
+ var _this = this;
214
+ return __generator(this, function (_a) {
215
+ switch (_a.label) {
216
+ case 0:
217
+ svg = this.getSvgRootElement(this.lf);
218
+ return [4 /*yield*/, (0, utils_1.updateImageSource)(svg)];
219
+ case 1:
220
+ _a.sent();
221
+ return [2 /*return*/, new Promise(function (resolve) {
222
+ _this.getCanvasData(svg, { backgroundColor: backgroundColor }).then(function (canvas) {
223
+ var base64 = canvas.toDataURL("image/".concat(fileType !== null && fileType !== void 0 ? fileType : 'png'));
224
+ // 输出图片数据以及图片宽高
225
+ resolve({
226
+ data: base64,
227
+ width: canvas.width,
228
+ height: canvas.height,
229
+ });
230
+ });
231
+ })];
232
+ }
96
233
  });
97
234
  });
98
235
  };
99
- /* 获取Blob对象 */
100
- Snapshot.prototype.getSnapshotBlob = function (backgroundColor) {
101
- var _this = this;
102
- var svg = this.getSvgRootElement(this.lf);
103
- return new Promise(function (resolve) {
104
- _this.getCanvasData(svg, backgroundColor).then(function (canvas) {
105
- canvas.toBlob(function (blob) {
106
- // 输出图片数据以及图片宽高
107
- resolve({
108
- data: blob,
109
- width: canvas.width,
110
- height: canvas.height,
111
- });
112
- }, 'image/png');
236
+ /**
237
+ * 获取Blob对象
238
+ * @param backgroundColor string | undefined
239
+ * @param fileType string | undefined
240
+ * @returns
241
+ */
242
+ Snapshot.prototype.getSnapshotBlob = function (backgroundColor, fileType) {
243
+ return __awaiter(this, void 0, void 0, function () {
244
+ var svg;
245
+ var _this = this;
246
+ return __generator(this, function (_a) {
247
+ switch (_a.label) {
248
+ case 0:
249
+ svg = this.getSvgRootElement(this.lf);
250
+ return [4 /*yield*/, (0, utils_1.updateImageSource)(svg)];
251
+ case 1:
252
+ _a.sent();
253
+ return [2 /*return*/, new Promise(function (resolve) {
254
+ _this.getCanvasData(svg, { backgroundColor: backgroundColor }).then(function (canvas) {
255
+ canvas.toBlob(function (blob) {
256
+ // 输出图片数据以及图片宽高
257
+ resolve({
258
+ data: blob,
259
+ width: canvas.width,
260
+ height: canvas.height,
261
+ });
262
+ }, "image/".concat(fileType !== null && fileType !== void 0 ? fileType : 'png'));
263
+ });
264
+ })];
265
+ }
113
266
  });
114
267
  });
115
268
  };
269
+ /**
270
+ * 获取脚本css样式
271
+ * @returns rules string
272
+ */
116
273
  Snapshot.prototype.getClassRules = function () {
117
274
  var rules = '';
118
275
  if (this.useGlobalRules) {
@@ -129,11 +286,124 @@ var Snapshot = /** @class */ (function () {
129
286
  }
130
287
  return rules;
131
288
  };
132
- // 获取图片生成中中间产物canvas对象,用户转换为其他需要的格式
133
- Snapshot.prototype.getCanvasData = function (svg, backgroundColor) {
289
+ /**
290
+ * 获取图片生成中间产物canvas对象,用户转换为其他需要的格式
291
+ * @param svg Element
292
+ * @param toImageOptions ToImageOptions
293
+ * @returns Promise<HTMLCanvasElement>
294
+ */
295
+ Snapshot.prototype.getCanvasData = function (svg, toImageOptions) {
296
+ return __awaiter(this, void 0, void 0, function () {
297
+ var width, height, backgroundColor, _a, padding, copy, dpr, base, bbox, layoutCanvas, layout, offsetX, offsetY, graphModel, transformModel, SCALE_X, SCALE_Y, TRANSLATE_X, TRANSLATE_Y, bboxWidth, bboxHeight, canvas, ctx, img, style, foreignObject;
298
+ return __generator(this, function (_b) {
299
+ width = toImageOptions.width, height = toImageOptions.height, backgroundColor = toImageOptions.backgroundColor, _a = toImageOptions.padding, padding = _a === void 0 ? 40 : _a;
300
+ copy = this.cloneSvg(svg, false);
301
+ dpr = window.devicePixelRatio || 1;
302
+ if (dpr < 1) {
303
+ // https://github.com/didi/LogicFlow/issues/1222
304
+ // canvas.width = bboxWidth * dpr配合ctx.scale(dpr, dpr)是为了解决绘制模糊
305
+ // 比如dpr=2,先让canvas.width放大到等同于屏幕的物理像素宽高,然后自适应缩放适配canvas.style.width
306
+ // 由于所有元素都缩放了一半,因此需要ctx.scale(dpr, dpr)放大2倍整体绘制的内容
307
+ // 当用户缩放浏览器时,window.devicePixelRatio会随着变小
308
+ // 当window.devicePixelRatio变小到一定程度,会导致canvas.width<canvas.style.width
309
+ // 由于导出图片的svg的大小是canvas.style.width+canvas.style.height
310
+ // 因此会导致导出的svg图片无法完整绘制到canvas(因为canvas.width小于svg的宽)
311
+ // 从而导致canvas导出图片是缺失的svg
312
+ // 而dpr>=1就能保证canvas.width>=canvas.style.width
313
+ // 当dpr小于1的时候,我们强制转化为1,并不会产生绘制模糊等问题
314
+ dpr = 1;
315
+ }
316
+ base = this.lf.graphModel.rootEl.querySelector('.lf-base');
317
+ bbox = base.getBoundingClientRect();
318
+ layoutCanvas = this.lf.container.querySelector('.lf-canvas-overlay');
319
+ layout = layoutCanvas.getBoundingClientRect();
320
+ offsetX = bbox.x - layout.x;
321
+ offsetY = bbox.y - layout.y;
322
+ graphModel = this.lf.graphModel;
323
+ transformModel = graphModel.transformModel;
324
+ SCALE_X = transformModel.SCALE_X, SCALE_Y = transformModel.SCALE_Y, TRANSLATE_X = transformModel.TRANSLATE_X, TRANSLATE_Y = transformModel.TRANSLATE_Y;
325
+ copy.lastChild.style.transform = "matrix(1, 0, 0, 1, ".concat((-offsetX + TRANSLATE_X) * (1 / SCALE_X), ", ").concat((-offsetY + TRANSLATE_Y) * (1 / SCALE_Y), ")");
326
+ bboxWidth = Math.ceil(bbox.width / SCALE_X);
327
+ bboxHeight = Math.ceil(bbox.height / SCALE_Y);
328
+ canvas = document.createElement('canvas');
329
+ canvas.style.width = "".concat(bboxWidth, "px");
330
+ canvas.style.height = "".concat(bboxHeight, "px");
331
+ // 宽高值 默认加padding 40,保证图形不会紧贴着下载图片
332
+ canvas.width = bboxWidth * dpr + padding * 2;
333
+ canvas.height = bboxHeight * dpr + padding * 2;
334
+ ctx = canvas.getContext('2d');
335
+ if (ctx) {
336
+ // 清空canvas
337
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
338
+ ctx.scale(dpr, dpr);
339
+ // 如果有背景色,设置流程图导出的背景色
340
+ if (backgroundColor) {
341
+ ctx.fillStyle = backgroundColor;
342
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
343
+ }
344
+ else {
345
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
346
+ }
347
+ }
348
+ img = new Image();
349
+ style = document.createElement('style');
350
+ style.innerHTML = this.getClassRules();
351
+ foreignObject = document.createElement('foreignObject');
352
+ foreignObject.appendChild(style);
353
+ copy.appendChild(foreignObject);
354
+ return [2 /*return*/, new Promise(function (resolve) {
355
+ img.onload = function () {
356
+ var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;
357
+ try {
358
+ if (isFirefox) {
359
+ createImageBitmap(img, {
360
+ resizeWidth: width && height
361
+ ? (0, utils_1.copyCanvas)(canvas, width, height).width
362
+ : canvas.width,
363
+ resizeHeight: width && height
364
+ ? (0, utils_1.copyCanvas)(canvas, width, height).height
365
+ : canvas.height,
366
+ }).then(function (imageBitmap) {
367
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(imageBitmap, padding / dpr, padding / dpr);
368
+ resolve(width && height ? (0, utils_1.copyCanvas)(canvas, width, height) : canvas);
369
+ });
370
+ }
371
+ else {
372
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, padding / dpr, padding / dpr);
373
+ resolve(width && height ? (0, utils_1.copyCanvas)(canvas, width, height) : canvas);
374
+ }
375
+ // 如果局部渲染本来是开启的,继续开启
376
+ // partial && this.lf.graphModel.setPartial(true)
377
+ }
378
+ catch (e) {
379
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, padding / dpr, padding / dpr);
380
+ resolve(width && height ? (0, utils_1.copyCanvas)(canvas, width, height) : canvas);
381
+ }
382
+ };
383
+ /*
384
+ 因为svg中存在dom存放在foreignObject元素中
385
+ svg dom => Base64编码字符串 挂载到img上
386
+ fixme: XMLSerializer的中的css background url不会下载图片
387
+ */
388
+ var svg2Img = "data:image/svg+xml;charset=utf-8,".concat(new XMLSerializer().serializeToString(copy));
389
+ var imgSrc = svg2Img
390
+ .replace(/\n/g, '')
391
+ .replace(/\t/g, '')
392
+ .replace(/#/g, '%23');
393
+ img.src = imgSrc;
394
+ })];
395
+ });
396
+ });
397
+ };
398
+ /**
399
+ * 克隆并处理画布节点
400
+ * @param svg Node
401
+ * @returns
402
+ */
403
+ Snapshot.prototype.cloneSvg = function (svg, addStyle) {
134
404
  var _this = this;
135
405
  var _a;
136
- // TODO: 确认返回 Promise 的类型
406
+ if (addStyle === void 0) { addStyle = true; }
137
407
  var copy = svg.cloneNode(true);
138
408
  var graph = copy.lastChild;
139
409
  var childLength = (_a = graph === null || graph === void 0 ? void 0 : graph.childNodes) === null || _a === void 0 ? void 0 : _a.length;
@@ -159,101 +429,15 @@ var Snapshot = /** @class */ (function () {
159
429
  }
160
430
  }
161
431
  }
162
- var dpr = window.devicePixelRatio || 1;
163
- if (dpr < 1) {
164
- // https://github.com/didi/LogicFlow/issues/1222
165
- // canvas.width = bboxWidth * dpr配合ctx.scale(dpr, dpr)是为了解决绘制模糊
166
- // 比如dpr=2,先让canvas.width放大到等同于屏幕的物理像素宽高,然后自适应缩放适配canvas.style.width
167
- // 由于所有元素都缩放了一半,因此需要ctx.scale(dpr, dpr)放大2倍整体绘制的内容
168
- // 当用户缩放浏览器时,window.devicePixelRatio会随着变小
169
- // 当window.devicePixelRatio变小到一定程度,会导致canvas.width<canvas.style.width
170
- // 由于导出图片的svg的大小是canvas.style.width+canvas.style.height
171
- // 因此会导致导出的svg图片无法完整绘制到canvas(因为canvas.width小于svg的宽)
172
- // 从而导致canvas导出图片是缺失的svg
173
- // 而dpr>=1就能保证canvas.width>=canvas.style.width
174
- // 当dpr小于1的时候,我们强制转化为1,并不会产生绘制模糊等问题
175
- dpr = 1;
176
- }
177
- var canvas = document.createElement('canvas');
178
- /*
179
- 为了计算真实宽高需要取图的真实dom
180
- 真实dom存在缩放影响其宽高数值
181
- 在得到真实宽高后除以缩放比例即可得到正常宽高
182
- */
183
- var base = this.lf.graphModel.rootEl.querySelector('.lf-base');
184
- var bbox = base.getBoundingClientRect();
185
- var layout = this.lf.container
186
- .querySelector('.lf-canvas-overlay')
187
- .getBoundingClientRect();
188
- var offsetX = bbox.x - layout.x;
189
- var offsetY = bbox.y - layout.y;
190
- var graphModel = this.lf.graphModel;
191
- var transformModel = graphModel.transformModel;
192
- var SCALE_X = transformModel.SCALE_X, SCALE_Y = transformModel.SCALE_Y, TRANSLATE_X = transformModel.TRANSLATE_X, TRANSLATE_Y = transformModel.TRANSLATE_Y;
193
- copy.lastChild.style.transform = "matrix(1, 0, 0, 1, ".concat((-offsetX + TRANSLATE_X) * (1 / SCALE_X) + 10, ", ").concat((-offsetY + TRANSLATE_Y) * (1 / SCALE_Y) + 10, ")");
194
- var bboxWidth = Math.ceil(bbox.width / SCALE_X);
195
- var bboxHeight = Math.ceil(bbox.height / SCALE_Y);
196
- // width,height 值加40,保证图形不会紧贴着下载图片的右边和下边
197
- canvas.style.width = "".concat(bboxWidth, "px");
198
- canvas.style.height = "".concat(bboxHeight, "px");
199
- canvas.width = bboxWidth * dpr + 80;
200
- canvas.height = bboxHeight * dpr + 80;
201
- var ctx = canvas.getContext('2d');
202
- if (ctx) {
203
- ctx.clearRect(0, 0, canvas.width, canvas.height);
204
- ctx.scale(dpr, dpr);
205
- // 如果有背景色,设置流程图导出的背景色
206
- if (backgroundColor) {
207
- ctx.fillStyle = backgroundColor;
208
- ctx.fillRect(0, 0, bboxWidth * dpr + 80, bboxHeight * dpr + 80);
209
- }
210
- else {
211
- ctx.clearRect(0, 0, bboxWidth, bboxHeight);
212
- }
432
+ // 设置css样式
433
+ if (addStyle) {
434
+ var style = document.createElement('style');
435
+ style.innerHTML = this.getClassRules();
436
+ var foreignObject = document.createElement('foreignObject');
437
+ foreignObject.appendChild(style);
438
+ copy.appendChild(foreignObject);
213
439
  }
214
- var img = new Image();
215
- var style = document.createElement('style');
216
- style.innerHTML = this.getClassRules();
217
- var foreignObject = document.createElement('foreignObject');
218
- foreignObject.appendChild(style);
219
- copy.appendChild(foreignObject);
220
- return new Promise(function (resolve) {
221
- img.onload = function () {
222
- var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;
223
- try {
224
- if (isFirefox) {
225
- createImageBitmap(img, {
226
- resizeWidth: canvas.width,
227
- resizeHeight: canvas.height,
228
- }).then(function (imageBitmap) {
229
- // 在回调函数中使用 drawImage() 方法绘制图像
230
- ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(imageBitmap, 0, 0);
231
- resolve(canvas);
232
- });
233
- }
234
- else {
235
- ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0);
236
- resolve(canvas);
237
- }
238
- }
239
- catch (e) {
240
- ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0);
241
- resolve(canvas);
242
- }
243
- };
244
- /*
245
- 因为svg中存在dom存放在foreignObject元素中
246
- SVG图形转成img对象
247
- todo: 会导致一些清晰度问题这个需要再解决
248
- fixme: XMLSerializer的中的css background url不会下载图片
249
- */
250
- var svg2Img = "data:image/svg+xml;charset=utf-8,".concat(new XMLSerializer().serializeToString(copy));
251
- var imgSrc = svg2Img
252
- .replace(/\n/g, '')
253
- .replace(/\t/g, '')
254
- .replace(/#/g, '%23');
255
- img.src = imgSrc;
256
- });
440
+ return copy;
257
441
  };
258
442
  Snapshot.pluginName = 'snapshot';
259
443
  return Snapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/snapshot/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH;IASE,kBAAY,EAAM;YAAJ,EAAE,QAAA;QAAhB,iBAcC;QAlBD,aAAQ,GAAW,cAAc,CAAA;QAK/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,UAAU;QACV,EAAE,CAAC,WAAW,GAAG,UAAC,QAAgB,EAAE,eAAuB;YACzD,KAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;QAC7C,CAAC,CAAA;QACD,qBAAqB;QACrB,EAAE,CAAC,eAAe,GAAG,UAAC,eAAuB;YAC3C,OAAA,KAAI,CAAC,eAAe,CAAC,eAAe,CAAC;QAArC,CAAqC,CAAA;QACvC,uBAAuB;QACvB,EAAE,CAAC,iBAAiB,GAAG,UAAC,eAAuB;YAC7C,OAAA,KAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC;QAAvC,CAAuC,CAAA;IAC3C,CAAC;IAED,iBAAiB;IACjB,oCAAiB,GAAjB,UAAkB,EAAE;QAClB,IAAM,cAAc,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAA;QACvE,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,kCAAe,GAAf,UAAgB,MAAc;QAC5B,IAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE;YAClC,IAAI,EAAE,QAAQ,CAAC,WAAW;YAC1B,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAA;QACF,IAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAClC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,+BAAY,GAAZ,UAAa,OAAO;QACV,IAAA,UAAU,GAAK,OAAO,WAAZ,CAAY;QAC9B,IAAI,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAuB,CAAA;YACjD,IAAM,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;YACxE,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1C,WAAW,EAAE,CAAA;gBACb,CAAC,EAAE,CAAA;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,sCAAmB,GAAnB,UAAoB,OAAO;QACjB,IAAA,UAAU,GAAK,OAAO,WAAZ,CAAY;QAC9B,IAAI,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAuB,CAAA;YACjD,IAAM,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;YACxE,IAAI,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1C,WAAW,EAAE,CAAA;gBACb,CAAC,EAAE,CAAA;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU;IACV,8BAAW,GAAX,UAAY,QAAgB,EAAE,eAAuB;QAArD,iBAWC;QAVC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,qBAAc,IAAI,CAAC,GAAG,EAAE,SAAM,CAAA;QAC1D,IAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,IAAI,CAC3C,UAAC,MAAyB;YACxB,IAAM,MAAM,GAAG,MAAM;iBAClB,SAAS,CAAC,WAAW,CAAC;iBACtB,OAAO,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;YAC7C,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC9B,CAAC,CACF,CAAA;IACH,CAAC;IAED,gBAAgB;IAChB,oCAAiB,GAAjB,UAAkB,eAAuB;QAAzC,iBAeC;QAdC,IAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACzB,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,IAAI,CAC3C,UAAC,MAAyB;gBACxB,IAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;gBAC5C,eAAe;gBACf,OAAO,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAA;YACJ,CAAC,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,cAAc;IACd,kCAAe,GAAf,UAAgB,eAAuB;QAAvC,iBAgBC;QAfC,IAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACzB,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,IAAI,CAC3C,UAAC,MAAyB;gBACxB,MAAM,CAAC,MAAM,CAAC,UAAC,IAAI;oBACjB,eAAe;oBACf,OAAO,CAAC;wBACN,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB,CAAC,CAAA;gBACJ,CAAC,EAAE,WAAW,CAAC,CAAA;YACjB,CAAC,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,gCAAa,GAAb;QACE,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAChB,IAAA,WAAW,GAAK,QAAQ,YAAb,CAAa;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,KAAK,IAAI,IAAI,CAAC,cAAc,CAAA;QAC9B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mCAAmC;IACnC,gCAAa,GAAb,UACE,GAAuB,EACvB,eAAuB;QAFzB,iBA+HC;;QA3HC,yBAAyB;QACzB,IAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAChC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAA;QAC5B,IAAI,WAAW,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAE,MAAM,CAAA;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAM,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,CAAC,CAAC,CAAuB,CAAA;gBAC1D,4BAA4B;gBAC5B,IAAM,cAAc,GAClB,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBACpD,IAAI,cAAc,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5D,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;oBACvC,WAAW,EAAE,CAAA;oBACb,CAAC,EAAE,CAAA;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO;oBACP,IAAM,MAAM,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,CAAC,CAAC,CAAC,CAAA;oBACnC,MAAM;wBACJ,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,IAAI;4BAC7B,IAAM,OAAO,GAAG,IAA0B,CAAA;4BAC1C,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;4BACrC,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;wBAC9C,CAAC,CAAC,CAAA;gBACN,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAA;QACtC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,gDAAgD;YAChD,+DAA+D;YAC/D,oEAAoE;YACpE,kDAAkD;YAClD,yCAAyC;YACzC,qEAAqE;YACrE,uDAAuD;YACvD,oDAAoD;YACpD,wBAAwB;YACxB,8CAA8C;YAC9C,mCAAmC;YACnC,GAAG,GAAG,CAAC,CAAA;QACT,CAAC;QACD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC/C;;;;UAIE;QACF,IAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAChE,IAAM,IAAI,GAAI,IAAgB,CAAC,qBAAqB,EAAE,CAAA;QACtD,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS;aAC7B,aAAa,CAAC,oBAAoB,CAAC;aACnC,qBAAqB,EAAE,CAAA;QAC1B,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QACjC,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QACzB,IAAA,UAAU,GAAK,IAAI,CAAC,EAAE,WAAZ,CAAY;QACtB,IAAA,cAAc,GAAK,UAAU,eAAf,CAAe;QAC7B,IAAA,OAAO,GAAwC,cAAc,QAAtD,EAAE,OAAO,GAA+B,cAAc,QAA7C,EAAE,WAAW,GAAkB,cAAc,YAAhC,EAAE,WAAW,GAAK,cAAc,YAAnB,CAEjD;QAAC,IAAI,CAAC,SAAyB,CAAC,KAAK,CAAC,SAAS,GAAG,6BACjD,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,eAC1C,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,MAAG,CAAA;QACrD,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAA;QACjD,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAA;QACnD,wCAAwC;QACxC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,UAAG,SAAS,OAAI,CAAA;QACrC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,UAAG,UAAU,OAAI,CAAA;QACvC,MAAM,CAAC,KAAK,GAAG,SAAS,GAAG,GAAG,GAAG,EAAE,CAAA;QACnC,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,GAAG,GAAG,EAAE,CAAA;QACrC,IAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAChD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACnB,qBAAqB;YACrB,IAAI,eAAe,EAAE,CAAC;gBACpB,GAAG,CAAC,SAAS,GAAG,eAAe,CAAA;gBAC/B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,GAAG,GAAG,EAAE,EAAE,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC,CAAA;YACjE,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QACD,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;QACvB,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC7C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtC,IAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QAC7D,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;QAC/B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACzB,GAAG,CAAC,MAAM,GAAG;gBACX,IAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC7D,IAAI,CAAC;oBACH,IAAI,SAAS,EAAE,CAAC;wBACd,iBAAiB,CAAC,GAAG,EAAE;4BACrB,WAAW,EAAE,MAAM,CAAC,KAAK;4BACzB,YAAY,EAAE,MAAM,CAAC,MAAM;yBAC5B,CAAC,CAAC,IAAI,CAAC,UAAC,WAAW;4BAClB,8BAA8B;4BAC9B,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;4BACjC,OAAO,CAAC,MAAM,CAAC,CAAA;wBACjB,CAAC,CAAC,CAAA;oBACJ,CAAC;yBAAM,CAAC;wBACN,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;wBACzB,OAAO,CAAC,MAAM,CAAC,CAAA;oBACjB,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;oBACzB,OAAO,CAAC,MAAM,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC,CAAA;YACD;;;;;cAKE;YACF,IAAM,OAAO,GAAG,2CAAoC,IAAI,aAAa,EAAE,CAAC,iBAAiB,CACvF,IAAI,CACL,CAAE,CAAA;YACH,IAAM,MAAM,GAAG,OAAO;iBACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;iBAClB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;iBAClB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACvB,GAAG,CAAC,GAAG,GAAG,MAAM,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC;IA3QM,mBAAU,GAAG,UAAU,AAAb,CAAa;IA4QhC,eAAC;CAAA,AA7QD,IA6QC;AA7QY,4BAAQ;AA+QrB,kBAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/snapshot/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 当获取图片失败时会返回失败信息,是 text/plain 类型的数据
3
+ * @param str - 图片内容
4
+ * @returns
5
+ */
6
+ export declare function isTextPlainBase64(str: string): boolean;
7
+ /**
8
+ * 将网络图片转为 base64
9
+ * @param url - 图片地址
10
+ * @returns
11
+ */
12
+ export declare function convertImageToBase64(url: string): Promise<string>;
13
+ /**
14
+ * 使用 base64 的图片替换 img 标签的 src 或 image 标签的 href
15
+ * @param node - html 节点或 svg 节点
16
+ */
17
+ export declare function updateImageSrcOrHrefWithBase64Image(node: HTMLImageElement | SVGImageElement, attrName: 'src' | 'href'): Promise<void>;
18
+ /**
19
+ * 使用 base64 的图片替换背景图片
20
+ * @param node - html 节点
21
+ * @param styleAttr - 样式属性名称
22
+ */
23
+ export declare function updateBackgroundImageWithBase64Image(node: HTMLElement, url: string): Promise<void>;
24
+ /**
25
+ * 更新图片数据
26
+ * @param node - 节点
27
+ */
28
+ export declare function updateImageSource(node: HTMLElement | SVGElement): Promise<void>;
29
+ /**
30
+ * 重新复制canvas 用于在不裁剪原canvas的基础上通过拉伸方式达到自定义宽高目的
31
+ * @param originCanvas HTMLCanvasElement
32
+ * @param targetWidth number
33
+ * @param targetHeight number
34
+ */
35
+ export declare function copyCanvas(originCanvas: HTMLCanvasElement, targetWidth: number, targetHeight: number): HTMLCanvasElement;