@meta2d/core 1.0.17 → 1.0.18
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/package.json +1 -1
- package/src/canvas/canvas.d.ts +2 -1
- package/src/canvas/canvas.js +53 -27
- package/src/canvas/canvas.js.map +1 -1
- package/src/core.d.ts +6 -6
- package/src/core.js +274 -135
- package/src/core.js.map +1 -1
- package/src/diagrams/gif.js +1 -1
- package/src/diagrams/gif.js.map +1 -1
- package/src/pen/model.js +3 -0
- package/src/pen/model.js.map +1 -1
- package/src/pen/render.js +4 -0
- package/src/pen/render.js.map +1 -1
- package/src/store/store.d.ts +1 -0
- package/src/store/store.js.map +1 -1
- package/src/utils/file.d.ts +1 -0
- package/src/utils/file.js +8 -0
- package/src/utils/file.js.map +1 -1
package/package.json
CHANGED
package/src/canvas/canvas.d.ts
CHANGED
|
@@ -76,6 +76,7 @@ export declare class Canvas {
|
|
|
76
76
|
pointSize: 8;
|
|
77
77
|
pasteOffset: number;
|
|
78
78
|
opening: boolean;
|
|
79
|
+
maxZindex: number;
|
|
79
80
|
/**
|
|
80
81
|
* @deprecated 改用 beforeAddPens
|
|
81
82
|
*/
|
|
@@ -324,7 +325,7 @@ export declare class Canvas {
|
|
|
324
325
|
getFrameProps(pen: any): {};
|
|
325
326
|
animate(): void;
|
|
326
327
|
get clipboardName(): string;
|
|
327
|
-
copy(pens?: Pen[]): Promise<void>;
|
|
328
|
+
copy(pens?: Pen[], emit?: boolean): Promise<void>;
|
|
328
329
|
cut(pens?: Pen[]): void;
|
|
329
330
|
paste(): Promise<void>;
|
|
330
331
|
/**
|
package/src/canvas/canvas.js
CHANGED
|
@@ -125,6 +125,7 @@ var Canvas = /** @class */ (function () {
|
|
|
125
125
|
this.pointSize = 8;
|
|
126
126
|
this.pasteOffset = 10;
|
|
127
127
|
this.opening = false;
|
|
128
|
+
this.maxZindex = 4;
|
|
128
129
|
this.inputParent = document.createElement('div');
|
|
129
130
|
// input = document.createElement('textarea');
|
|
130
131
|
this.inputDiv = document.createElement('div');
|
|
@@ -238,11 +239,11 @@ var Canvas = /** @class */ (function () {
|
|
|
238
239
|
if (_this.pencil) {
|
|
239
240
|
return;
|
|
240
241
|
}
|
|
241
|
-
e.preventDefault();
|
|
242
|
-
e.stopPropagation();
|
|
243
242
|
if (_this.store.options.disableScale) {
|
|
244
243
|
return;
|
|
245
244
|
}
|
|
245
|
+
e.preventDefault();
|
|
246
|
+
e.stopPropagation();
|
|
246
247
|
if (_this.store.data.locked === LockState.Disable)
|
|
247
248
|
return;
|
|
248
249
|
if (_this.store.data.locked === LockState.DisableScale)
|
|
@@ -250,7 +251,7 @@ var Canvas = /** @class */ (function () {
|
|
|
250
251
|
if (_this.store.data.locked === LockState.DisableMoveScale)
|
|
251
252
|
return;
|
|
252
253
|
// e.ctrlKey: false - 平移; true - 缩放。老windows触摸板不支持
|
|
253
|
-
if (!e.ctrlKey) {
|
|
254
|
+
if (!e.ctrlKey && Math.abs(e.wheelDelta) < 100) {
|
|
254
255
|
if (_this.store.options.scroll && !e.metaKey && _this.scroll) {
|
|
255
256
|
_this.scroll.wheel(e.deltaY < 0);
|
|
256
257
|
return;
|
|
@@ -262,13 +263,26 @@ var Canvas = /** @class */ (function () {
|
|
|
262
263
|
if (_this.store.options.disableTouchPadScale) {
|
|
263
264
|
return;
|
|
264
265
|
}
|
|
265
|
-
var
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
var scaleOff = 0.015;
|
|
267
|
+
var isMac = /mac os /i.test(navigator.userAgent);
|
|
268
|
+
if (isMac) {
|
|
269
|
+
if (!e.ctrlKey) {
|
|
270
|
+
scaleOff *= e.wheelDeltaY / 240;
|
|
271
|
+
}
|
|
272
|
+
else if (e.deltaY > 0) {
|
|
273
|
+
scaleOff *= -1;
|
|
274
|
+
}
|
|
268
275
|
}
|
|
269
276
|
else {
|
|
270
|
-
|
|
277
|
+
if (e.deltaY > 0) {
|
|
278
|
+
scaleOff = -0.2;
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
scaleOff = 0.2;
|
|
282
|
+
}
|
|
271
283
|
}
|
|
284
|
+
var x = e.offsetX, y = e.offsetY;
|
|
285
|
+
_this.scale(_this.store.data.scale + scaleOff, { x: x, y: y });
|
|
272
286
|
_this.externalElements.focus(); // 聚焦
|
|
273
287
|
};
|
|
274
288
|
this.onkeydown = function (e) {
|
|
@@ -573,34 +587,40 @@ var Canvas = /** @class */ (function () {
|
|
|
573
587
|
console.warn('canvas is locked, can not drop');
|
|
574
588
|
return [2 /*return*/];
|
|
575
589
|
}
|
|
576
|
-
|
|
577
|
-
case 1:
|
|
578
|
-
_a.trys.push([1, 4, , 5]);
|
|
579
|
-
// TODO: 若画布锁定,阻止默认行为不再执行。在 firefox 上拖拽图片会打开新页
|
|
590
|
+
// Fix bug: 在 firefox 上拖拽图片会打开新页
|
|
580
591
|
event.preventDefault();
|
|
581
592
|
event.stopPropagation();
|
|
582
593
|
json = event.dataTransfer.getData('Meta2d') ||
|
|
583
594
|
event.dataTransfer.getData('Text');
|
|
584
595
|
obj = null;
|
|
585
|
-
|
|
596
|
+
_a.label = 1;
|
|
597
|
+
case 1:
|
|
598
|
+
_a.trys.push([1, 5, , 6]);
|
|
599
|
+
if (!json) return [3 /*break*/, 2];
|
|
600
|
+
obj = JSON.parse(json);
|
|
601
|
+
return [3 /*break*/, 4];
|
|
602
|
+
case 2:
|
|
586
603
|
files = event.dataTransfer.files;
|
|
587
|
-
if (!(files.length && files[0].type.match('image.*'))) return [3 /*break*/,
|
|
604
|
+
if (!(files.length && files[0].type.match('image.*'))) return [3 /*break*/, 4];
|
|
588
605
|
isGif = files[0].type === 'image/gif';
|
|
589
606
|
return [4 /*yield*/, this.fileToPen(files[0], isGif)];
|
|
590
|
-
case 2:
|
|
591
|
-
obj = _a.sent();
|
|
592
|
-
_a.label = 3;
|
|
593
607
|
case 3:
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
pt = { x: event.offsetX, y: event.offsetY };
|
|
597
|
-
this.calibrateMouse(pt);
|
|
598
|
-
this.dropPens(obj, pt);
|
|
599
|
-
return [3 /*break*/, 5];
|
|
608
|
+
obj = _a.sent();
|
|
609
|
+
_a.label = 4;
|
|
600
610
|
case 4:
|
|
611
|
+
if (obj && obj.draggable !== false) {
|
|
612
|
+
obj = Array.isArray(obj) ? obj : [obj];
|
|
613
|
+
pt = { x: event.offsetX, y: event.offsetY };
|
|
614
|
+
this.calibrateMouse(pt);
|
|
615
|
+
this.dropPens(obj, pt);
|
|
616
|
+
}
|
|
617
|
+
return [3 /*break*/, 6];
|
|
618
|
+
case 5:
|
|
601
619
|
e_1 = _a.sent();
|
|
602
|
-
return [3 /*break*/,
|
|
603
|
-
case
|
|
620
|
+
return [3 /*break*/, 6];
|
|
621
|
+
case 6:
|
|
622
|
+
this.store.emitter.emit('drop', obj || json);
|
|
623
|
+
return [2 /*return*/];
|
|
604
624
|
}
|
|
605
625
|
});
|
|
606
626
|
}); };
|
|
@@ -3651,6 +3671,7 @@ var Canvas = /** @class */ (function () {
|
|
|
3651
3671
|
else {
|
|
3652
3672
|
this.initImageCanvas(action.pens);
|
|
3653
3673
|
}
|
|
3674
|
+
this.parent.onSizeUpdate();
|
|
3654
3675
|
this.render();
|
|
3655
3676
|
this.store.emitter.emit(undo ? 'undo' : 'redo', action);
|
|
3656
3677
|
};
|
|
@@ -5244,7 +5265,8 @@ var Canvas = /** @class */ (function () {
|
|
|
5244
5265
|
enumerable: false,
|
|
5245
5266
|
configurable: true
|
|
5246
5267
|
});
|
|
5247
|
-
Canvas.prototype.copy = function (pens) {
|
|
5268
|
+
Canvas.prototype.copy = function (pens, emit) {
|
|
5269
|
+
if (emit === void 0) { emit = true; }
|
|
5248
5270
|
return __awaiter(this, void 0, void 0, function () {
|
|
5249
5271
|
var page, _a, origin, scale, copyPens, clipboard, _b;
|
|
5250
5272
|
var _this = this;
|
|
@@ -5294,14 +5316,17 @@ var Canvas = /** @class */ (function () {
|
|
|
5294
5316
|
case 5:
|
|
5295
5317
|
localStorage.setItem(this.clipboardName, JSON.stringify(clipboard));
|
|
5296
5318
|
_c.label = 6;
|
|
5297
|
-
case 6:
|
|
5319
|
+
case 6:
|
|
5320
|
+
emit && this.store.emitter.emit('copy', clipboard.pens);
|
|
5321
|
+
return [2 /*return*/];
|
|
5298
5322
|
}
|
|
5299
5323
|
});
|
|
5300
5324
|
});
|
|
5301
5325
|
};
|
|
5302
5326
|
Canvas.prototype.cut = function (pens) {
|
|
5303
|
-
this.copy(pens);
|
|
5327
|
+
this.copy(pens, false);
|
|
5304
5328
|
this.delete(pens);
|
|
5329
|
+
this.store.emitter.emit('cut', pens);
|
|
5305
5330
|
};
|
|
5306
5331
|
Canvas.prototype.paste = function () {
|
|
5307
5332
|
var _a;
|
|
@@ -5388,6 +5413,7 @@ var Canvas = /** @class */ (function () {
|
|
|
5388
5413
|
this.pushHistory({ type: EditType.Add, pens: this.store.clipboard.pens });
|
|
5389
5414
|
this.render();
|
|
5390
5415
|
this.store.emitter.emit('add', this.store.clipboard.pens);
|
|
5416
|
+
this.store.emitter.emit('paste', this.store.clipboard.pens);
|
|
5391
5417
|
return [2 /*return*/];
|
|
5392
5418
|
}
|
|
5393
5419
|
});
|