@leafer-draw/worker 1.11.1 → 1.12.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.
@@ -1,3 +1,12 @@
1
+ var PathNodeHandleType;
2
+
3
+ (function(PathNodeHandleType) {
4
+ PathNodeHandleType[PathNodeHandleType["none"] = 1] = "none";
5
+ PathNodeHandleType[PathNodeHandleType["free"] = 2] = "free";
6
+ PathNodeHandleType[PathNodeHandleType["mirrorAngle"] = 3] = "mirrorAngle";
7
+ PathNodeHandleType[PathNodeHandleType["mirror"] = 4] = "mirror";
8
+ })(PathNodeHandleType || (PathNodeHandleType = {}));
9
+
1
10
  var Answer;
2
11
 
3
12
  (function(Answer) {
@@ -4047,16 +4056,27 @@ const ImageManager = {
4047
4056
  recycle(image) {
4048
4057
  image.use--;
4049
4058
  setTimeout(() => {
4050
- if (!image.use) I.recycledList.push(image);
4059
+ if (!image.use) {
4060
+ if (Platform.image.isLarge(image)) {
4061
+ if (image.url) Resource.remove(image.url);
4062
+ } else {
4063
+ image.clearLevels();
4064
+ I.recycledList.push(image);
4065
+ }
4066
+ }
4051
4067
  });
4052
4068
  },
4053
- clearRecycled() {
4069
+ recyclePaint(paint) {
4070
+ I.recycle(paint.image);
4071
+ },
4072
+ clearRecycled(force) {
4054
4073
  const list = I.recycledList;
4055
- if (list.length > I.maxRecycled) {
4056
- list.forEach(image => !image.use && image.url && Resource.remove(image.url));
4074
+ if (list.length > I.maxRecycled || force) {
4075
+ list.forEach(image => (!image.use || force) && image.url && Resource.remove(image.url));
4057
4076
  list.length = 0;
4058
4077
  }
4059
4078
  },
4079
+ clearLevels() {},
4060
4080
  hasAlphaPixel(config) {
4061
4081
  return FileHelper.alphaPixelTypes.some(item => I.isFormat(item, config));
4062
4082
  },
@@ -4071,7 +4091,7 @@ const ImageManager = {
4071
4091
  return false;
4072
4092
  },
4073
4093
  destroy() {
4074
- I.recycledList = [];
4094
+ this.clearRecycled(true);
4075
4095
  }
4076
4096
  };
4077
4097
 
@@ -4174,11 +4194,15 @@ class LeaferImage {
4174
4194
  Platform.image.setPatternTransform(pattern, transform, paint);
4175
4195
  return pattern;
4176
4196
  }
4197
+ clearLevels(_checkUse) {}
4177
4198
  destroy() {
4199
+ this.clearLevels();
4200
+ const {view: view} = this;
4201
+ if (view && view.close) view.close();
4178
4202
  this.config = {
4179
4203
  url: ""
4180
4204
  };
4181
- this.cache = null;
4205
+ this.cache = this.view = null;
4182
4206
  this.waitComplete.length = 0;
4183
4207
  }
4184
4208
  }
@@ -5957,6 +5981,7 @@ const LeafBounds = {
5957
5981
  const LeafRender = {
5958
5982
  __render(canvas, options) {
5959
5983
  if (options.shape) return this.__renderShape(canvas, options);
5984
+ if (options.cellList && !options.cellList.has(this)) return;
5960
5985
  if (this.__worldOpacity) {
5961
5986
  const data = this.__;
5962
5987
  if (data.bright && !options.topRendering) return options.topList.add(this);
@@ -6855,7 +6880,7 @@ class LeafLevelList {
6855
6880
  }
6856
6881
  }
6857
6882
 
6858
- const version = "1.11.1";
6883
+ const version = "1.12.0";
6859
6884
 
6860
6885
  class LeaferCanvas extends LeaferCanvasBase {
6861
6886
  get allowBackgroundColor() {
@@ -6972,7 +6997,7 @@ class Watcher {
6972
6997
  return this.hasAdd || this.hasRemove || this.hasVisible;
6973
6998
  }
6974
6999
  get updatedList() {
6975
- if (this.hasRemove) {
7000
+ if (this.hasRemove && this.config.usePartLayout) {
6976
7001
  const updatedList = new LeafList;
6977
7002
  this.__updatedList.list.forEach(item => {
6978
7003
  if (item.leafer) updatedList.add(item);
@@ -7007,16 +7032,18 @@ class Watcher {
7007
7032
  if (this.running) this.target.emit(RenderEvent.REQUEST);
7008
7033
  }
7009
7034
  __onAttrChange(event) {
7010
- this.__updatedList.add(event.target);
7035
+ if (this.config.usePartLayout) this.__updatedList.add(event.target);
7011
7036
  this.update();
7012
7037
  }
7013
7038
  __onChildEvent(event) {
7014
- if (event.type === ChildEvent.ADD) {
7015
- this.hasAdd = true;
7016
- this.__pushChild(event.child);
7017
- } else {
7018
- this.hasRemove = true;
7019
- this.__updatedList.add(event.parent);
7039
+ if (this.config.usePartLayout) {
7040
+ if (event.type === ChildEvent.ADD) {
7041
+ this.hasAdd = true;
7042
+ this.__pushChild(event.child);
7043
+ } else {
7044
+ this.hasRemove = true;
7045
+ this.__updatedList.add(event.parent);
7046
+ }
7020
7047
  }
7021
7048
  this.update();
7022
7049
  }
@@ -7133,7 +7160,9 @@ const debug$3 = Debug.get("Layouter");
7133
7160
  class Layouter {
7134
7161
  constructor(target, userConfig) {
7135
7162
  this.totalTimes = 0;
7136
- this.config = {};
7163
+ this.config = {
7164
+ usePartLayout: true
7165
+ };
7137
7166
  this.__levelList = new LeafLevelList;
7138
7167
  this.target = target;
7139
7168
  if (userConfig) this.config = DataHelper.default(userConfig, this.config);
@@ -7178,7 +7207,7 @@ class Layouter {
7178
7207
  this.totalTimes++;
7179
7208
  this.layouting = true;
7180
7209
  this.target.emit(WatchEvent.REQUEST);
7181
- if (this.totalTimes > 1) {
7210
+ if (this.totalTimes > 1 && this.config.usePartLayout) {
7182
7211
  this.partLayout();
7183
7212
  } else {
7184
7213
  this.fullLayout();
@@ -7295,7 +7324,7 @@ class Renderer {
7295
7324
  }
7296
7325
  update(change = true) {
7297
7326
  if (!this.changed) this.changed = change;
7298
- this.__requestRender();
7327
+ if (!this.requestTime) this.__requestRender();
7299
7328
  }
7300
7329
  requestLayout() {
7301
7330
  this.target.emit(LayoutEvent.REQUEST);
@@ -7402,7 +7431,7 @@ class Renderer {
7402
7431
  Run.end(t);
7403
7432
  }
7404
7433
  __render(bounds, realBounds) {
7405
- const {canvas: canvas} = this, includes = bounds.includes(this.target.__world), options = includes ? {
7434
+ const {canvas: canvas, target: target} = this, includes = bounds.includes(target.__world), options = includes ? {
7406
7435
  includes: includes
7407
7436
  } : {
7408
7437
  bounds: bounds,
@@ -7410,12 +7439,16 @@ class Renderer {
7410
7439
  };
7411
7440
  if (this.needFill) canvas.fillWorld(bounds, this.config.fill);
7412
7441
  if (Debug.showRepaint) Debug.drawRepaint(canvas, bounds);
7413
- Platform.render(this.target, canvas, options);
7442
+ if (this.config.useCellRender) options.cellList = this.getCellList();
7443
+ Platform.render(target, canvas, options);
7414
7444
  this.renderBounds = realBounds = realBounds || bounds;
7415
7445
  this.renderOptions = options;
7416
7446
  this.totalBounds.isEmpty() ? this.totalBounds = realBounds : this.totalBounds.add(realBounds);
7417
7447
  canvas.updateRender(realBounds);
7418
7448
  }
7449
+ getCellList() {
7450
+ return undefined;
7451
+ }
7419
7452
  addBlock(block) {
7420
7453
  if (!this.updateBlocks) this.updateBlocks = [];
7421
7454
  this.updateBlocks.push(block);
@@ -7876,6 +7909,11 @@ class TextData extends UIData {
7876
7909
  }
7877
7910
  this._boxStyle = value;
7878
7911
  }
7912
+ __getInputData(names, options) {
7913
+ const data = super.__getInputData(names, options);
7914
+ if (data.textEditing) delete data.textEditing;
7915
+ return data;
7916
+ }
7879
7917
  }
7880
7918
 
7881
7919
  class ImageData extends RectData {
@@ -9722,6 +9760,7 @@ function getLeafPaint(attrName, paint, ui) {
9722
9760
  const {boxBounds: boxBounds} = ui.__layout;
9723
9761
  switch (paint.type) {
9724
9762
  case "image":
9763
+ if (!paint.url) return undefined;
9725
9764
  leafPaint = PaintImage.image(ui, attrName, paint, boxBounds, !recycleMap || !recycleMap[paint.url]);
9726
9765
  break;
9727
9766
 
@@ -10126,7 +10165,7 @@ function checkImage(paint, drawImage, ui, canvas, renderOptions) {
10126
10165
  if (data.repeat) {
10127
10166
  drawImage = false;
10128
10167
  } else if (!(originPaint.changeful || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || exporting)) {
10129
- drawImage = Platform.image.isLarge(image, scaleX, scaleY);
10168
+ drawImage = Platform.image.isLarge(image, scaleX, scaleY) || image.width * scaleX > 8096 || image.height * scaleY > 8096;
10130
10169
  }
10131
10170
  }
10132
10171
  if (drawImage) {
@@ -10185,7 +10224,7 @@ function recycleImage(attrName, data) {
10185
10224
  if (url) {
10186
10225
  if (!recycleMap) recycleMap = {};
10187
10226
  recycleMap[url] = true;
10188
- ImageManager.recycle(image);
10227
+ ImageManager.recyclePaint(paint);
10189
10228
  if (image.loading) {
10190
10229
  if (!input) {
10191
10230
  input = data.__input && data.__input[attrName] || [];
@@ -11095,4 +11134,4 @@ Object.assign(Effect, EffectModule);
11095
11134
 
11096
11135
  useCanvas();
11097
11136
 
11098
- export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MyImage, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$2 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
11137
+ export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MyImage, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$2 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };