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