@logicflow/extension 2.0.0-beta.3 → 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 (39) hide show
  1. package/.turbo/turbo-build.log +6 -6
  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/materials/node-selection/index.d.ts +2 -1
  10. package/es/materials/node-selection/index.js +64 -56
  11. package/es/materials/node-selection/index.js.map +1 -1
  12. package/es/tools/snapshot/index.d.ts +101 -11
  13. package/es/tools/snapshot/index.js +331 -147
  14. package/es/tools/snapshot/index.js.map +1 -1
  15. package/es/tools/snapshot/utils.d.ts +35 -0
  16. package/es/tools/snapshot/utils.js +238 -0
  17. package/es/tools/snapshot/utils.js.map +1 -0
  18. package/lib/components/menu/index.d.ts +1 -1
  19. package/lib/components/menu/index.js +9 -10
  20. package/lib/components/menu/index.js.map +1 -1
  21. package/lib/index.d.ts +1 -0
  22. package/lib/index.js +1 -0
  23. package/lib/index.js.map +1 -1
  24. package/lib/materials/node-selection/index.d.ts +2 -1
  25. package/lib/materials/node-selection/index.js +63 -55
  26. package/lib/materials/node-selection/index.js.map +1 -1
  27. package/lib/tools/snapshot/index.d.ts +101 -11
  28. package/lib/tools/snapshot/index.js +331 -147
  29. package/lib/tools/snapshot/index.js.map +1 -1
  30. package/lib/tools/snapshot/utils.d.ts +35 -0
  31. package/lib/tools/snapshot/utils.js +247 -0
  32. package/lib/tools/snapshot/utils.js.map +1 -0
  33. package/package.json +3 -3
  34. package/src/components/menu/index.ts +16 -13
  35. package/src/index.ts +1 -0
  36. package/src/materials/node-selection/index.ts +72 -69
  37. package/src/tools/snapshot/README.md +130 -5
  38. package/src/tools/snapshot/index.ts +264 -98
  39. package/src/tools/snapshot/utils.ts +163 -0
@@ -1,3 +1,40 @@
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 (g && (g = 0, op[0] && (_ = 0)), _) 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
+ import { updateImageSource, copyCanvas } from './utils';
1
38
  /**
2
39
  * 快照插件,生成视图
3
40
  */
@@ -5,29 +42,76 @@ var Snapshot = /** @class */ (function () {
5
42
  function Snapshot(_a) {
6
43
  var lf = _a.lf;
7
44
  var _this = this;
8
- this.fileName = 'snapshot.png';
9
45
  this.lf = lf;
10
46
  this.customCssRules = '';
11
47
  this.useGlobalRules = true;
12
48
  /* 下载快照 */
13
- lf.getSnapshot = function (fileName, backgroundColor) {
14
- _this.getSnapshot(fileName, backgroundColor);
15
- };
49
+ lf.getSnapshot = function (fileName, toImageOptions) { return __awaiter(_this, void 0, void 0, function () {
50
+ var curPartial, _a, partial;
51
+ var _this = this;
52
+ return __generator(this, function (_b) {
53
+ switch (_b.label) {
54
+ case 0:
55
+ curPartial = this.lf.graphModel.getPartial();
56
+ _a = (toImageOptions !== null && toImageOptions !== void 0 ? toImageOptions : {}).partial, partial = _a === void 0 ? curPartial : _a;
57
+ if (!(curPartial !== partial)) return [3 /*break*/, 1];
58
+ this.lf.graphModel.setPartial(partial);
59
+ this.lf.graphModel.eventCenter.once('graph:updated', function () { return __awaiter(_this, void 0, void 0, function () {
60
+ return __generator(this, function (_a) {
61
+ switch (_a.label) {
62
+ case 0: return [4 /*yield*/, this.getSnapshot(fileName, toImageOptions)
63
+ // 恢复原来渲染模式
64
+ ];
65
+ case 1:
66
+ _a.sent();
67
+ // 恢复原来渲染模式
68
+ this.lf.graphModel.setPartial(curPartial);
69
+ return [2 /*return*/];
70
+ }
71
+ });
72
+ }); });
73
+ return [3 /*break*/, 3];
74
+ case 1: return [4 /*yield*/, this.getSnapshot(fileName, toImageOptions)];
75
+ case 2:
76
+ _b.sent();
77
+ _b.label = 3;
78
+ case 3: return [2 /*return*/];
79
+ }
80
+ });
81
+ }); };
16
82
  /* 获取Blob对象,用户图片上传 */
17
- lf.getSnapshotBlob = function (backgroundColor) {
18
- return _this.getSnapshotBlob(backgroundColor);
19
- };
83
+ lf.getSnapshotBlob = function (backgroundColor, fileType) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
84
+ switch (_a.label) {
85
+ case 0: return [4 /*yield*/, this.getSnapshotBlob(backgroundColor, fileType)
86
+ /* 获取Base64对象,用户图片上传 */
87
+ ];
88
+ case 1: return [2 /*return*/, _a.sent()
89
+ /* 获取Base64对象,用户图片上传 */
90
+ ];
91
+ }
92
+ }); }); };
20
93
  /* 获取Base64对象,用户图片上传 */
21
- lf.getSnapshotBase64 = function (backgroundColor) {
22
- return _this.getSnapshotBase64(backgroundColor);
23
- };
94
+ lf.getSnapshotBase64 = function (backgroundColor, fileType) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
95
+ switch (_a.label) {
96
+ case 0: return [4 /*yield*/, this.getSnapshotBase64(backgroundColor, fileType)];
97
+ case 1: return [2 /*return*/, _a.sent()];
98
+ }
99
+ }); }); };
24
100
  }
25
- /* 获取svgRoot对象 */
101
+ /**
102
+ * 获取svgRoot对象dom: 画布元素(不包含grid背景)
103
+ * @param lf LogicFlow
104
+ * @returns
105
+ */
26
106
  Snapshot.prototype.getSvgRootElement = function (lf) {
27
107
  var svgRootElement = lf.container.querySelector('.lf-canvas-overlay');
28
108
  return svgRootElement;
29
109
  };
30
- Snapshot.prototype.triggerDownload = function (imgURI) {
110
+ /**
111
+ * 通过 imgUrl 下载图片
112
+ * @param imgUrl
113
+ */
114
+ Snapshot.prototype.triggerDownload = function (imgUrl) {
31
115
  var evt = new MouseEvent('click', {
32
116
  view: document.defaultView,
33
117
  bubbles: false,
@@ -35,10 +119,14 @@ var Snapshot = /** @class */ (function () {
35
119
  });
36
120
  var a = document.createElement('a');
37
121
  a.setAttribute('download', this.fileName);
38
- a.setAttribute('href', imgURI);
122
+ a.setAttribute('href', imgUrl);
39
123
  a.setAttribute('target', '_blank');
40
124
  a.dispatchEvent(evt);
41
125
  };
126
+ /**
127
+ * 删除锚点
128
+ * @param element ChildNode
129
+ */
42
130
  Snapshot.prototype.removeAnchor = function (element) {
43
131
  var childNodes = element.childNodes;
44
132
  var childLength = element.childNodes && element.childNodes.length;
@@ -52,6 +140,10 @@ var Snapshot = /** @class */ (function () {
52
140
  }
53
141
  }
54
142
  };
143
+ /**
144
+ * 删除旋转按钮
145
+ * @param element
146
+ */
55
147
  Snapshot.prototype.removeRotateControl = function (element) {
56
148
  var childNodes = element.childNodes;
57
149
  var childLength = element.childNodes && element.childNodes.length;
@@ -65,51 +157,116 @@ var Snapshot = /** @class */ (function () {
65
157
  }
66
158
  }
67
159
  };
68
- /* 下载图片 */
69
- Snapshot.prototype.getSnapshot = function (fileName, backgroundColor) {
70
- var _this = this;
71
- this.fileName = fileName || "logic-flow.".concat(Date.now(), ".png");
72
- var svg = this.getSvgRootElement(this.lf);
73
- this.getCanvasData(svg, backgroundColor).then(function (canvas) {
74
- var imgURI = canvas
75
- .toDataURL('image/png')
76
- .replace('image/png', 'image/octet-stream');
77
- _this.triggerDownload(imgURI);
160
+ /**
161
+ * 下载图片
162
+ * @param fileName string
163
+ * @param toImageOptions
164
+ */
165
+ Snapshot.prototype.getSnapshot = function (fileName, toImageOptions) {
166
+ return __awaiter(this, void 0, void 0, function () {
167
+ var _a, _b, fileType, quality, svg, copy, svgString, blob, url;
168
+ var _this = this;
169
+ return __generator(this, function (_c) {
170
+ switch (_c.label) {
171
+ case 0:
172
+ _a = toImageOptions !== null && toImageOptions !== void 0 ? toImageOptions : {}, _b = _a.fileType, fileType = _b === void 0 ? 'png' : _b, quality = _a.quality;
173
+ this.fileName = "".concat(fileName !== null && fileName !== void 0 ? fileName : "logic-flow.".concat(Date.now()), ".").concat(fileType);
174
+ svg = this.getSvgRootElement(this.lf);
175
+ return [4 /*yield*/, updateImageSource(svg)];
176
+ case 1:
177
+ _c.sent();
178
+ if (fileType === 'svg') {
179
+ copy = this.cloneSvg(svg);
180
+ svgString = new XMLSerializer().serializeToString(copy);
181
+ blob = new Blob([svgString], {
182
+ type: 'image/svg+xml;charset=utf-8',
183
+ });
184
+ url = URL.createObjectURL(blob);
185
+ this.triggerDownload(url);
186
+ }
187
+ else {
188
+ this.getCanvasData(svg, toImageOptions !== null && toImageOptions !== void 0 ? toImageOptions : {}).then(function (canvas) {
189
+ // canvas元素 => url image/octet-stream: 确保所有浏览器都能正常下载
190
+ var imgUrl = canvas
191
+ .toDataURL("image/".concat(fileType), quality)
192
+ .replace("image/".concat(fileType), 'image/octet-stream');
193
+ _this.triggerDownload(imgUrl);
194
+ });
195
+ }
196
+ return [2 /*return*/];
197
+ }
198
+ });
78
199
  });
79
200
  };
80
- /* 获取base64对象 */
81
- Snapshot.prototype.getSnapshotBase64 = function (backgroundColor) {
82
- var _this = this;
83
- var svg = this.getSvgRootElement(this.lf);
84
- return new Promise(function (resolve) {
85
- _this.getCanvasData(svg, backgroundColor).then(function (canvas) {
86
- var base64 = canvas.toDataURL('image/png');
87
- // 输出图片数据以及图片宽高
88
- resolve({
89
- data: base64,
90
- width: canvas.width,
91
- height: canvas.height,
92
- });
201
+ /**
202
+ * 获取base64对象
203
+ * @param backgroundColor string | undefined
204
+ * @param fileType string | undefined
205
+ * @returns Promise<SnapshotResponse>
206
+ */
207
+ Snapshot.prototype.getSnapshotBase64 = function (backgroundColor, fileType) {
208
+ return __awaiter(this, void 0, void 0, function () {
209
+ var svg;
210
+ var _this = this;
211
+ return __generator(this, function (_a) {
212
+ switch (_a.label) {
213
+ case 0:
214
+ svg = this.getSvgRootElement(this.lf);
215
+ return [4 /*yield*/, updateImageSource(svg)];
216
+ case 1:
217
+ _a.sent();
218
+ return [2 /*return*/, new Promise(function (resolve) {
219
+ _this.getCanvasData(svg, { backgroundColor: backgroundColor }).then(function (canvas) {
220
+ var base64 = canvas.toDataURL("image/".concat(fileType !== null && fileType !== void 0 ? fileType : 'png'));
221
+ // 输出图片数据以及图片宽高
222
+ resolve({
223
+ data: base64,
224
+ width: canvas.width,
225
+ height: canvas.height,
226
+ });
227
+ });
228
+ })];
229
+ }
93
230
  });
94
231
  });
95
232
  };
96
- /* 获取Blob对象 */
97
- Snapshot.prototype.getSnapshotBlob = function (backgroundColor) {
98
- var _this = this;
99
- var svg = this.getSvgRootElement(this.lf);
100
- return new Promise(function (resolve) {
101
- _this.getCanvasData(svg, backgroundColor).then(function (canvas) {
102
- canvas.toBlob(function (blob) {
103
- // 输出图片数据以及图片宽高
104
- resolve({
105
- data: blob,
106
- width: canvas.width,
107
- height: canvas.height,
108
- });
109
- }, 'image/png');
233
+ /**
234
+ * 获取Blob对象
235
+ * @param backgroundColor string | undefined
236
+ * @param fileType string | undefined
237
+ * @returns
238
+ */
239
+ Snapshot.prototype.getSnapshotBlob = function (backgroundColor, fileType) {
240
+ return __awaiter(this, void 0, void 0, function () {
241
+ var svg;
242
+ var _this = this;
243
+ return __generator(this, function (_a) {
244
+ switch (_a.label) {
245
+ case 0:
246
+ svg = this.getSvgRootElement(this.lf);
247
+ return [4 /*yield*/, updateImageSource(svg)];
248
+ case 1:
249
+ _a.sent();
250
+ return [2 /*return*/, new Promise(function (resolve) {
251
+ _this.getCanvasData(svg, { backgroundColor: backgroundColor }).then(function (canvas) {
252
+ canvas.toBlob(function (blob) {
253
+ // 输出图片数据以及图片宽高
254
+ resolve({
255
+ data: blob,
256
+ width: canvas.width,
257
+ height: canvas.height,
258
+ });
259
+ }, "image/".concat(fileType !== null && fileType !== void 0 ? fileType : 'png'));
260
+ });
261
+ })];
262
+ }
110
263
  });
111
264
  });
112
265
  };
266
+ /**
267
+ * 获取脚本css样式
268
+ * @returns rules string
269
+ */
113
270
  Snapshot.prototype.getClassRules = function () {
114
271
  var rules = '';
115
272
  if (this.useGlobalRules) {
@@ -126,11 +283,124 @@ var Snapshot = /** @class */ (function () {
126
283
  }
127
284
  return rules;
128
285
  };
129
- // 获取图片生成中中间产物canvas对象,用户转换为其他需要的格式
130
- Snapshot.prototype.getCanvasData = function (svg, backgroundColor) {
286
+ /**
287
+ * 获取图片生成中间产物canvas对象,用户转换为其他需要的格式
288
+ * @param svg Element
289
+ * @param toImageOptions ToImageOptions
290
+ * @returns Promise<HTMLCanvasElement>
291
+ */
292
+ Snapshot.prototype.getCanvasData = function (svg, toImageOptions) {
293
+ return __awaiter(this, void 0, void 0, function () {
294
+ 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;
295
+ return __generator(this, function (_b) {
296
+ width = toImageOptions.width, height = toImageOptions.height, backgroundColor = toImageOptions.backgroundColor, _a = toImageOptions.padding, padding = _a === void 0 ? 40 : _a;
297
+ copy = this.cloneSvg(svg, false);
298
+ dpr = window.devicePixelRatio || 1;
299
+ if (dpr < 1) {
300
+ // https://github.com/didi/LogicFlow/issues/1222
301
+ // canvas.width = bboxWidth * dpr配合ctx.scale(dpr, dpr)是为了解决绘制模糊
302
+ // 比如dpr=2,先让canvas.width放大到等同于屏幕的物理像素宽高,然后自适应缩放适配canvas.style.width
303
+ // 由于所有元素都缩放了一半,因此需要ctx.scale(dpr, dpr)放大2倍整体绘制的内容
304
+ // 当用户缩放浏览器时,window.devicePixelRatio会随着变小
305
+ // 当window.devicePixelRatio变小到一定程度,会导致canvas.width<canvas.style.width
306
+ // 由于导出图片的svg的大小是canvas.style.width+canvas.style.height
307
+ // 因此会导致导出的svg图片无法完整绘制到canvas(因为canvas.width小于svg的宽)
308
+ // 从而导致canvas导出图片是缺失的svg
309
+ // 而dpr>=1就能保证canvas.width>=canvas.style.width
310
+ // 当dpr小于1的时候,我们强制转化为1,并不会产生绘制模糊等问题
311
+ dpr = 1;
312
+ }
313
+ base = this.lf.graphModel.rootEl.querySelector('.lf-base');
314
+ bbox = base.getBoundingClientRect();
315
+ layoutCanvas = this.lf.container.querySelector('.lf-canvas-overlay');
316
+ layout = layoutCanvas.getBoundingClientRect();
317
+ offsetX = bbox.x - layout.x;
318
+ offsetY = bbox.y - layout.y;
319
+ graphModel = this.lf.graphModel;
320
+ transformModel = graphModel.transformModel;
321
+ SCALE_X = transformModel.SCALE_X, SCALE_Y = transformModel.SCALE_Y, TRANSLATE_X = transformModel.TRANSLATE_X, TRANSLATE_Y = transformModel.TRANSLATE_Y;
322
+ copy.lastChild.style.transform = "matrix(1, 0, 0, 1, ".concat((-offsetX + TRANSLATE_X) * (1 / SCALE_X), ", ").concat((-offsetY + TRANSLATE_Y) * (1 / SCALE_Y), ")");
323
+ bboxWidth = Math.ceil(bbox.width / SCALE_X);
324
+ bboxHeight = Math.ceil(bbox.height / SCALE_Y);
325
+ canvas = document.createElement('canvas');
326
+ canvas.style.width = "".concat(bboxWidth, "px");
327
+ canvas.style.height = "".concat(bboxHeight, "px");
328
+ // 宽高值 默认加padding 40,保证图形不会紧贴着下载图片
329
+ canvas.width = bboxWidth * dpr + padding * 2;
330
+ canvas.height = bboxHeight * dpr + padding * 2;
331
+ ctx = canvas.getContext('2d');
332
+ if (ctx) {
333
+ // 清空canvas
334
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
335
+ ctx.scale(dpr, dpr);
336
+ // 如果有背景色,设置流程图导出的背景色
337
+ if (backgroundColor) {
338
+ ctx.fillStyle = backgroundColor;
339
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
340
+ }
341
+ else {
342
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
343
+ }
344
+ }
345
+ img = new Image();
346
+ style = document.createElement('style');
347
+ style.innerHTML = this.getClassRules();
348
+ foreignObject = document.createElement('foreignObject');
349
+ foreignObject.appendChild(style);
350
+ copy.appendChild(foreignObject);
351
+ return [2 /*return*/, new Promise(function (resolve) {
352
+ img.onload = function () {
353
+ var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;
354
+ try {
355
+ if (isFirefox) {
356
+ createImageBitmap(img, {
357
+ resizeWidth: width && height
358
+ ? copyCanvas(canvas, width, height).width
359
+ : canvas.width,
360
+ resizeHeight: width && height
361
+ ? copyCanvas(canvas, width, height).height
362
+ : canvas.height,
363
+ }).then(function (imageBitmap) {
364
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(imageBitmap, padding / dpr, padding / dpr);
365
+ resolve(width && height ? copyCanvas(canvas, width, height) : canvas);
366
+ });
367
+ }
368
+ else {
369
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, padding / dpr, padding / dpr);
370
+ resolve(width && height ? copyCanvas(canvas, width, height) : canvas);
371
+ }
372
+ // 如果局部渲染本来是开启的,继续开启
373
+ // partial && this.lf.graphModel.setPartial(true)
374
+ }
375
+ catch (e) {
376
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, padding / dpr, padding / dpr);
377
+ resolve(width && height ? copyCanvas(canvas, width, height) : canvas);
378
+ }
379
+ };
380
+ /*
381
+ 因为svg中存在dom存放在foreignObject元素中
382
+ svg dom => Base64编码字符串 挂载到img上
383
+ fixme: XMLSerializer的中的css background url不会下载图片
384
+ */
385
+ var svg2Img = "data:image/svg+xml;charset=utf-8,".concat(new XMLSerializer().serializeToString(copy));
386
+ var imgSrc = svg2Img
387
+ .replace(/\n/g, '')
388
+ .replace(/\t/g, '')
389
+ .replace(/#/g, '%23');
390
+ img.src = imgSrc;
391
+ })];
392
+ });
393
+ });
394
+ };
395
+ /**
396
+ * 克隆并处理画布节点
397
+ * @param svg Node
398
+ * @returns
399
+ */
400
+ Snapshot.prototype.cloneSvg = function (svg, addStyle) {
131
401
  var _this = this;
132
402
  var _a;
133
- // TODO: 确认返回 Promise 的类型
403
+ if (addStyle === void 0) { addStyle = true; }
134
404
  var copy = svg.cloneNode(true);
135
405
  var graph = copy.lastChild;
136
406
  var childLength = (_a = graph === null || graph === void 0 ? void 0 : graph.childNodes) === null || _a === void 0 ? void 0 : _a.length;
@@ -156,101 +426,15 @@ var Snapshot = /** @class */ (function () {
156
426
  }
157
427
  }
158
428
  }
159
- var dpr = window.devicePixelRatio || 1;
160
- if (dpr < 1) {
161
- // https://github.com/didi/LogicFlow/issues/1222
162
- // canvas.width = bboxWidth * dpr配合ctx.scale(dpr, dpr)是为了解决绘制模糊
163
- // 比如dpr=2,先让canvas.width放大到等同于屏幕的物理像素宽高,然后自适应缩放适配canvas.style.width
164
- // 由于所有元素都缩放了一半,因此需要ctx.scale(dpr, dpr)放大2倍整体绘制的内容
165
- // 当用户缩放浏览器时,window.devicePixelRatio会随着变小
166
- // 当window.devicePixelRatio变小到一定程度,会导致canvas.width<canvas.style.width
167
- // 由于导出图片的svg的大小是canvas.style.width+canvas.style.height
168
- // 因此会导致导出的svg图片无法完整绘制到canvas(因为canvas.width小于svg的宽)
169
- // 从而导致canvas导出图片是缺失的svg
170
- // 而dpr>=1就能保证canvas.width>=canvas.style.width
171
- // 当dpr小于1的时候,我们强制转化为1,并不会产生绘制模糊等问题
172
- dpr = 1;
173
- }
174
- var canvas = document.createElement('canvas');
175
- /*
176
- 为了计算真实宽高需要取图的真实dom
177
- 真实dom存在缩放影响其宽高数值
178
- 在得到真实宽高后除以缩放比例即可得到正常宽高
179
- */
180
- var base = this.lf.graphModel.rootEl.querySelector('.lf-base');
181
- var bbox = base.getBoundingClientRect();
182
- var layout = this.lf.container
183
- .querySelector('.lf-canvas-overlay')
184
- .getBoundingClientRect();
185
- var offsetX = bbox.x - layout.x;
186
- var offsetY = bbox.y - layout.y;
187
- var graphModel = this.lf.graphModel;
188
- var transformModel = graphModel.transformModel;
189
- var SCALE_X = transformModel.SCALE_X, SCALE_Y = transformModel.SCALE_Y, TRANSLATE_X = transformModel.TRANSLATE_X, TRANSLATE_Y = transformModel.TRANSLATE_Y;
190
- 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, ")");
191
- var bboxWidth = Math.ceil(bbox.width / SCALE_X);
192
- var bboxHeight = Math.ceil(bbox.height / SCALE_Y);
193
- // width,height 值加40,保证图形不会紧贴着下载图片的右边和下边
194
- canvas.style.width = "".concat(bboxWidth, "px");
195
- canvas.style.height = "".concat(bboxHeight, "px");
196
- canvas.width = bboxWidth * dpr + 80;
197
- canvas.height = bboxHeight * dpr + 80;
198
- var ctx = canvas.getContext('2d');
199
- if (ctx) {
200
- ctx.clearRect(0, 0, canvas.width, canvas.height);
201
- ctx.scale(dpr, dpr);
202
- // 如果有背景色,设置流程图导出的背景色
203
- if (backgroundColor) {
204
- ctx.fillStyle = backgroundColor;
205
- ctx.fillRect(0, 0, bboxWidth * dpr + 80, bboxHeight * dpr + 80);
206
- }
207
- else {
208
- ctx.clearRect(0, 0, bboxWidth, bboxHeight);
209
- }
429
+ // 设置css样式
430
+ if (addStyle) {
431
+ var style = document.createElement('style');
432
+ style.innerHTML = this.getClassRules();
433
+ var foreignObject = document.createElement('foreignObject');
434
+ foreignObject.appendChild(style);
435
+ copy.appendChild(foreignObject);
210
436
  }
211
- var img = new Image();
212
- var style = document.createElement('style');
213
- style.innerHTML = this.getClassRules();
214
- var foreignObject = document.createElement('foreignObject');
215
- foreignObject.appendChild(style);
216
- copy.appendChild(foreignObject);
217
- return new Promise(function (resolve) {
218
- img.onload = function () {
219
- var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;
220
- try {
221
- if (isFirefox) {
222
- createImageBitmap(img, {
223
- resizeWidth: canvas.width,
224
- resizeHeight: canvas.height,
225
- }).then(function (imageBitmap) {
226
- // 在回调函数中使用 drawImage() 方法绘制图像
227
- ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(imageBitmap, 0, 0);
228
- resolve(canvas);
229
- });
230
- }
231
- else {
232
- ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0);
233
- resolve(canvas);
234
- }
235
- }
236
- catch (e) {
237
- ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0);
238
- resolve(canvas);
239
- }
240
- };
241
- /*
242
- 因为svg中存在dom存放在foreignObject元素中
243
- SVG图形转成img对象
244
- todo: 会导致一些清晰度问题这个需要再解决
245
- fixme: XMLSerializer的中的css background url不会下载图片
246
- */
247
- var svg2Img = "data:image/svg+xml;charset=utf-8,".concat(new XMLSerializer().serializeToString(copy));
248
- var imgSrc = svg2Img
249
- .replace(/\n/g, '')
250
- .replace(/\t/g, '')
251
- .replace(/#/g, '%23');
252
- img.src = imgSrc;
253
- });
437
+ return copy;
254
438
  };
255
439
  Snapshot.pluginName = 'snapshot';
256
440
  return Snapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/snapshot/index.ts"],"names":[],"mappings":"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"}
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;