@leafer-draw/worker 1.4.2 → 1.5.0

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.
@@ -4070,12 +4070,11 @@ function defineDataProcessor(target, key, defaultValue) {
4070
4070
  if (defaultValue === undefined) {
4071
4071
  property.get = function () { return this[computedKey]; };
4072
4072
  }
4073
- else if (typeof defaultValue === 'object') {
4074
- const { clone } = DataHelper;
4073
+ else if (typeof defaultValue === 'function') {
4075
4074
  property.get = function () {
4076
4075
  let v = this[computedKey];
4077
4076
  if (v === undefined)
4078
- this[computedKey] = v = clone(defaultValue);
4077
+ this[computedKey] = v = defaultValue(this.__leaf);
4079
4078
  return v;
4080
4079
  };
4081
4080
  }
@@ -5722,10 +5721,10 @@ let Leaf = class Leaf {
5722
5721
  static changeAttr(attrName, defaultValue, fn) {
5723
5722
  fn ? this.addAttr(attrName, defaultValue, fn) : defineDataProcessor(this.prototype, attrName, defaultValue);
5724
5723
  }
5725
- static addAttr(attrName, defaultValue, fn) {
5724
+ static addAttr(attrName, defaultValue, fn, helpValue) {
5726
5725
  if (!fn)
5727
5726
  fn = boundsType;
5728
- fn(defaultValue)(this.prototype, attrName);
5727
+ fn(defaultValue, helpValue)(this.prototype, attrName);
5729
5728
  }
5730
5729
  __emitLifeEvent(type) {
5731
5730
  if (this.hasEvent(type))
@@ -6052,7 +6051,7 @@ class LeafLevelList {
6052
6051
  }
6053
6052
  }
6054
6053
 
6055
- const version = "1.4.2";
6054
+ const version = "1.5.0";
6056
6055
 
6057
6056
  class LeaferCanvas extends LeaferCanvasBase {
6058
6057
  get allowBackgroundColor() { return true; }
@@ -6782,7 +6781,11 @@ const State = {
6782
6781
  setStyleName() { return Plugin.need('state'); },
6783
6782
  set() { return Plugin.need('state'); }
6784
6783
  };
6785
- const Transition = {};
6784
+ const Transition = {
6785
+ list: {},
6786
+ register(attrName, fn) { Transition.list[attrName] = fn; },
6787
+ get(attrName) { return Transition.list[attrName]; }
6788
+ };
6786
6789
 
6787
6790
  const { parse, objectToCanvasData } = PathConvert;
6788
6791
  const emptyPaint = {};
@@ -7206,9 +7209,6 @@ let UI = UI_1 = class UI extends Leaf {
7206
7209
  this.__drawPathByBox(pen);
7207
7210
  return pen;
7208
7211
  }
7209
- get editConfig() { return undefined; }
7210
- get editOuter() { return ''; }
7211
- get editInner() { return ''; }
7212
7212
  constructor(data) {
7213
7213
  super(data);
7214
7214
  }
@@ -7290,8 +7290,11 @@ let UI = UI_1 = class UI extends Leaf {
7290
7290
  export(_filename, _options) {
7291
7291
  return Plugin.need('export');
7292
7292
  }
7293
+ syncExport(_filename, _options) {
7294
+ return Plugin.need('export');
7295
+ }
7293
7296
  clone(data) {
7294
- const json = this.toJSON();
7297
+ const json = DataHelper.clone(this.toJSON());
7295
7298
  if (data)
7296
7299
  Object.assign(json, data);
7297
7300
  return UI_1.one(json);
@@ -7590,7 +7593,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
7590
7593
  get layoutLocked() { return !this.layouter.running; }
7591
7594
  get FPS() { return this.renderer ? this.renderer.FPS : 60; }
7592
7595
  get cursorPoint() { return (this.interaction && this.interaction.hoverData) || { x: this.width / 2, y: this.height / 2 }; }
7593
- get clientBounds() { return this.canvas && this.canvas.getClientBounds(); }
7596
+ get clientBounds() { return (this.canvas && this.canvas.getClientBounds(true)) || getBoundsData(); }
7594
7597
  constructor(userConfig, data) {
7595
7598
  super(data);
7596
7599
  this.config = {
@@ -7892,6 +7895,10 @@ let Leafer = Leafer_1 = class Leafer extends Group {
7892
7895
  getPagePointByClient(clientPoint, updateClient) {
7893
7896
  return this.getPagePoint(this.getWorldPointByClient(clientPoint, updateClient));
7894
7897
  }
7898
+ getClientPointByWorld(worldPoint) {
7899
+ const { x, y } = this.clientBounds;
7900
+ return { x: x + worldPoint.x, y: y + worldPoint.y };
7901
+ }
7895
7902
  updateClientBounds() {
7896
7903
  this.canvas && this.canvas.updateClientBounds();
7897
7904
  }
@@ -9927,13 +9934,14 @@ function toChar(data, charX, rowData, isOverflow) {
9927
9934
  }
9928
9935
 
9929
9936
  function layoutText(drawData, style) {
9930
- const { rows, bounds } = drawData;
9937
+ const { rows, bounds } = drawData, countRows = rows.length;
9931
9938
  const { __lineHeight, __baseLine, __letterSpacing, __clipText, textAlign, verticalAlign, paraSpacing, autoSizeAlign } = style;
9932
- let { x, y, width, height } = bounds, realHeight = __lineHeight * rows.length + (paraSpacing ? paraSpacing * (drawData.paraNumber - 1) : 0);
9939
+ let { x, y, width, height } = bounds, realHeight = __lineHeight * countRows + (paraSpacing ? paraSpacing * (drawData.paraNumber - 1) : 0);
9933
9940
  let starY = __baseLine;
9934
9941
  if (__clipText && realHeight > height) {
9935
9942
  realHeight = Math.max(height, __lineHeight);
9936
- drawData.overflow = rows.length;
9943
+ if (countRows > 1)
9944
+ drawData.overflow = countRows;
9937
9945
  }
9938
9946
  else if (height || autoSizeAlign) {
9939
9947
  switch (verticalAlign) {
@@ -9945,7 +9953,7 @@ function layoutText(drawData, style) {
9945
9953
  }
9946
9954
  starY += y;
9947
9955
  let row, rowX, rowWidth, layoutWidth = (width || autoSizeAlign) ? width : drawData.maxWidth;
9948
- for (let i = 0, len = rows.length; i < len; i++) {
9956
+ for (let i = 0, len = countRows; i < len; i++) {
9949
9957
  row = rows[i];
9950
9958
  row.x = x;
9951
9959
  if (row.width < width || (row.width > width && !__clipText)) {
@@ -10014,7 +10022,7 @@ function clipText(drawData, style, x, width) {
10014
10022
  if (i === end && charRight < right) {
10015
10023
  break;
10016
10024
  }
10017
- else if (charRight < right && char.char !== ' ') {
10025
+ else if ((charRight < right && char.char !== ' ') || !i) {
10018
10026
  row.data.splice(i + 1);
10019
10027
  row.width -= char.width;
10020
10028
  break;