@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meta2d/core",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "description": "@meta2d/core: Powerful, Beautiful, Simple, Open - Web-Based 2D At Its Best .",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -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
  /**
@@ -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 x = e.offsetX, y = e.offsetY;
266
- if (e.deltaY < 0) {
267
- _this.scale(_this.store.data.scale + 0.015, { x: x, y: y });
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
- _this.scale(_this.store.data.scale - 0.015, { x: x, y: y });
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
- _a.label = 1;
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
- if (!!json) return [3 /*break*/, 3];
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*/, 3];
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
- !obj && (obj = JSON.parse(json));
595
- obj = Array.isArray(obj) ? obj : [obj];
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*/, 5];
603
- case 5: return [2 /*return*/];
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: return [2 /*return*/];
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
  });