@leafer-game/worker 2.1.4 → 2.1.6

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 +1 @@
1
- {"version":3,"file":"worker.esm.min.js","sources":["../../../../../../../src/leafer/packages/interface/src/path/IPathCommand.ts"],"sourcesContent":["import { IPointData } from '../math/IMath'\nimport { IWindingRule } from '../canvas/ICanvas'\n\ntype Command = number\ntype x = number\ntype y = number\ntype x1 = number\ntype y1 = number\ntype x2 = number\ntype y2 = number\ntype radiusX = number\ntype radiusY = number\ntype xAxisRotation = number\ntype largeArcFlag = number\ntype sweepFlag = number\n\n\nexport type MCommandData = [Command, x, y]\nexport type HCommandData = [Command, x]\nexport type VCommandData = [Command, y]\nexport type LCommandData = MCommandData\n\nexport type CCommandData = [Command, x1, y1, x2, y2, x, y]\nexport type SCommandData = [Command, x2, y2, x, y]\n\nexport type QCommandData = [Command, x1, y1, x, y]\nexport type TCommandData = [Command, x, y]\n\nexport type ZCommandData = [Command]\n\nexport type ACommandData = [Command, radiusX, radiusY, xAxisRotation, largeArcFlag, sweepFlag, x, y]\n\n\n// 非svg标准的canvas绘图命令\ntype width = number\ntype height = number\ntype rotation = number\ntype startAngle = number\ntype endAngle = number\ntype anticlockwise = boolean\ntype cornerRadius = number | number[]\ntype radius = number\n\nexport type RectCommandData = [Command, x, y, width, height]\nexport type RoundRectCommandData = [Command, x, y, width, height, cornerRadius]\nexport type EllipseCommandData = [Command, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise]\nexport type ArcCommandData = [Command, x, y, radius, startAngle, endAngle, anticlockwise]\nexport type ArcToCommandData = [Command, x1, y1, x2, y2, radius]\n\n\nexport type CanvasPathCommand = 1 | 2 | 5 | 7 | 11 // M | L | C | Q | Z canvas可以绘制的命令\n\nexport type IPathCommandData = number[] // ...(MCommandData | LCommandData | CCommandData | QCommandData | ZCommandData)\n\nexport interface IPathCommandDataWithRadius {\n data: IPathCommandData\n radius: number[]\n}\n\nexport interface IPathCommandDataWithWindingRule {\n data: IPathCommandData\n windingRule?: IWindingRule\n}\n\n// 路径命令对象\nexport interface MoveToCommandObject {\n name: 'M'\n x: number\n y: number\n}\nexport interface LineToCommandObject {\n name: 'L'\n x: number\n y: number\n}\n\nexport interface BezierCurveToCommandObject {\n name: 'C'\n x1: number\n y1: number\n x2: number\n y2: number\n x: number\n y: number\n}\n\nexport interface QuadraticCurveToCommandObject {\n name: 'Q'\n x1: number\n y1: number\n x: number\n y: number\n}\n\nexport interface ClosePathCommandObject {\n name: 'Z'\n}\n\nexport type IPathCommandObject = MoveToCommandObject | LineToCommandObject | BezierCurveToCommandObject | QuadraticCurveToCommandObject | ClosePathCommandObject // M | L | C | Q | Z canvas可以绘制的命令\n\n\n// 可视化路径节点\n\nexport interface IPathCommandNodeBase {\n name: 'M^' | 'L^' | 'C^' | 'Z^'\n x: number\n y: number\n r?: number // 圆角半径\n a?: IPointData // 第一个手柄,连接上一个节点\n b?: IPointData // 第二个手柄,连接下一个节点\n ab?: PathNodeHandleType // 手柄类型\n}\n\nexport interface MoveToCommandNode extends IPathCommandNodeBase {\n name: 'M^'\n}\nexport interface LineToCommandNode extends IPathCommandNodeBase {\n name: 'L^'\n}\n\nexport interface BezierCurveToCommandNode extends IPathCommandNodeBase {\n name: 'C^'\n}\n\nexport interface ClosePathCommandNode {\n name: 'Z^'\n x?: number\n y?: number\n r?: number // 圆角半径\n a?: IPointData\n b?: IPointData\n ab?: PathNodeHandleType\n}\n\nexport type IPathCommandNode = MoveToCommandNode | LineToCommandNode | BezierCurveToCommandNode | ClosePathCommandNode // M | L | C | Z 路径节点命令(适合可视化编辑)\n\nexport enum PathNodeHandleType { // 手柄类型\n none = 1, // 无手柄\n free = 2, // 每个手柄自由控制\n mirrorAngle = 3, // 仅镜像角度\n mirror = 4, // 镜像角度和长度\n}\n\nexport type PathNodeHandleName = 'a' | 'b' // 手柄名称\n\nexport interface IPathNodeBase {\n pathNode: IPathCommandNode\n}"],"names":["PathNodeHandleType"],"mappings":"gMAwIYA,GAAZ,SAAYA,GACRA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,OAAA,GAAA,QACH,CALD,CAAYA,IAAAA,EAAkB,CAAA"}
1
+ {"version":3,"file":"worker.esm.min.js","sources":["../../../../../../../src/leafer/packages/interface/src/path/IPathCommand.ts"],"sourcesContent":["import { IPointData } from '../math/IMath'\nimport { IWindingRule } from '../canvas/ICanvas'\n\ntype Command = number\ntype x = number\ntype y = number\ntype x1 = number\ntype y1 = number\ntype x2 = number\ntype y2 = number\ntype radiusX = number\ntype radiusY = number\ntype xAxisRotation = number\ntype largeArcFlag = number\ntype sweepFlag = number\n\n\nexport type MCommandData = [Command, x, y]\nexport type HCommandData = [Command, x]\nexport type VCommandData = [Command, y]\nexport type LCommandData = MCommandData\n\nexport type CCommandData = [Command, x1, y1, x2, y2, x, y]\nexport type SCommandData = [Command, x2, y2, x, y]\n\nexport type QCommandData = [Command, x1, y1, x, y]\nexport type TCommandData = [Command, x, y]\n\nexport type ZCommandData = [Command]\n\nexport type ACommandData = [Command, radiusX, radiusY, xAxisRotation, largeArcFlag, sweepFlag, x, y]\n\n\n// 非svg标准的canvas绘图命令\ntype width = number\ntype height = number\ntype rotation = number\ntype startAngle = number\ntype endAngle = number\ntype anticlockwise = boolean\ntype cornerRadius = number | number[]\ntype radius = number\n\nexport type RectCommandData = [Command, x, y, width, height]\nexport type RoundRectCommandData = [Command, x, y, width, height, cornerRadius]\nexport type EllipseCommandData = [Command, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise]\nexport type ArcCommandData = [Command, x, y, radius, startAngle, endAngle, anticlockwise]\nexport type ArcToCommandData = [Command, x1, y1, x2, y2, radius]\n\n\nexport type CanvasPathCommand = 1 | 2 | 5 | 7 | 11 // M | L | C | Q | Z canvas可以绘制的命令\n\nexport type IPathCommandData = number[] // ...(MCommandData | LCommandData | CCommandData | QCommandData | ZCommandData)\n\nexport interface IPathCommandDataWithRadius {\n data: IPathCommandData\n radius: number[]\n}\n\nexport interface IPathCommandDataWithWindingRule {\n data: IPathCommandData\n windingRule?: IWindingRule\n}\n\n// 路径命令对象\nexport interface MoveToCommandObject {\n name: 'M'\n x: number\n y: number\n pressure?: number // 压感\n}\nexport interface LineToCommandObject {\n name: 'L'\n x: number\n y: number\n pressure?: number\n}\n\nexport interface BezierCurveToCommandObject {\n name: 'C'\n x1: number\n y1: number\n x2: number\n y2: number\n x: number\n y: number\n pressure?: number\n}\n\nexport interface QuadraticCurveToCommandObject {\n name: 'Q'\n x1: number\n y1: number\n x: number\n y: number\n pressure?: number\n}\n\nexport interface ClosePathCommandObject {\n name: 'Z'\n}\n\nexport type IPathCommandObject = MoveToCommandObject | LineToCommandObject | BezierCurveToCommandObject | QuadraticCurveToCommandObject | ClosePathCommandObject // M | L | C | Q | Z canvas可以绘制的命令\n\n\n// 可视化路径节点\n\nexport interface IPathCommandNodeBase {\n name: 'M^' | 'L^' | 'C^' | 'Z^'\n x: number\n y: number\n r?: number // 圆角半径\n a?: IPointData // 第一个手柄,连接上一个节点\n b?: IPointData // 第二个手柄,连接下一个节点\n ab?: PathNodeHandleType // 手柄类型\n pressure?: number // 压感\n}\n\nexport interface MoveToCommandNode extends IPathCommandNodeBase {\n name: 'M^'\n}\nexport interface LineToCommandNode extends IPathCommandNodeBase {\n name: 'L^'\n}\n\nexport interface BezierCurveToCommandNode extends IPathCommandNodeBase {\n name: 'C^'\n}\n\nexport interface ClosePathCommandNode {\n name: 'Z^'\n x?: number\n y?: number\n r?: number // 圆角半径\n a?: IPointData\n b?: IPointData\n ab?: PathNodeHandleType\n}\n\nexport type IPathCommandNode = MoveToCommandNode | LineToCommandNode | BezierCurveToCommandNode | ClosePathCommandNode // M | L | C | Z 路径节点命令(适合可视化编辑)\n\nexport enum PathNodeHandleType { // 手柄类型\n none = 1, // 无手柄\n free = 2, // 每个手柄自由控制\n mirrorAngle = 3, // 仅镜像角度\n mirror = 4, // 镜像角度和长度\n}\n\nexport type PathNodeHandleName = 'a' | 'b' // 手柄名称\n\nexport interface IPathNodeBase {\n pathNode: IPathCommandNode\n}"],"names":["PathNodeHandleType"],"mappings":"gMA6IYA,GAAZ,SAAYA,GACRA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,OAAA,GAAA,QACH,CALD,CAAYA,IAAAA,EAAkB,CAAA"}
package/dist/worker.js CHANGED
@@ -240,7 +240,7 @@ var LeaferUI = function(exports) {
240
240
  RUNTIME: "runtime",
241
241
  LEAF: "leaf",
242
242
  TASK: "task",
243
- CNAVAS: "canvas",
243
+ CANVAS: "canvas",
244
244
  IMAGE: "image",
245
245
  types: {},
246
246
  create(typeName) {
@@ -869,7 +869,7 @@ var LeaferUI = function(exports) {
869
869
  return quick ? t.x === point.x && t.y === point.y : float$4(t.x) === float$4(point.x) && float$4(t.y) === float$4(point.y);
870
870
  },
871
871
  reset(t) {
872
- P$5.reset(t);
872
+ t.x = t.y = 0;
873
873
  }
874
874
  };
875
875
  const P$5 = PointHelper;
@@ -1073,6 +1073,7 @@ var LeaferUI = function(exports) {
1073
1073
  }
1074
1074
  reset() {
1075
1075
  MatrixHelper.reset(this);
1076
+ return this;
1076
1077
  }
1077
1078
  }
1078
1079
  const tempMatrix$2 = new Matrix;
@@ -2177,7 +2178,7 @@ var LeaferUI = function(exports) {
2177
2178
  this.worldTransform = {};
2178
2179
  if (!config) config = minSize;
2179
2180
  this.manager = manager;
2180
- this.innerId = IncrementId.create(IncrementId.CNAVAS);
2181
+ this.innerId = IncrementId.create(IncrementId.CANVAS);
2181
2182
  const {width: width, height: height, pixelRatio: pixelRatio} = config;
2182
2183
  this.autoLayout = !width || !height;
2183
2184
  this.size.pixelRatio = pixelRatio || Platform.devicePixelRatio;
@@ -2327,6 +2328,7 @@ var LeaferUI = function(exports) {
2327
2328
  }
2328
2329
  useGrayscaleAlpha(bounds) {
2329
2330
  this.setTempPixelBounds(bounds, true, true);
2331
+ if (!tempPixelBounds.width || !tempPixelBounds.height) return;
2330
2332
  let alpha, pixel;
2331
2333
  const {context: context} = this, imageData = context.getImageData(tempPixelBounds.x, tempPixelBounds.y, tempPixelBounds.width, tempPixelBounds.height), {data: data} = imageData;
2332
2334
  for (let i = 0, len = data.length; i < len; i += 4) {
@@ -3497,7 +3499,7 @@ var LeaferUI = function(exports) {
3497
3499
  const {arcTo: arcTo} = PathCommandDataHelper;
3498
3500
  const PathCorner = {
3499
3501
  smooth(data, cornerRadius, _cornerSmoothing) {
3500
- let command, lastCommand, commandLen;
3502
+ let command, lastCommand, commandLen, startXIndex, startYIndex, smoothLen;
3501
3503
  let i = 0, x = 0, y = 0, startX = 0, startY = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0;
3502
3504
  if (isArray(cornerRadius)) cornerRadius = cornerRadius[0] || 0;
3503
3505
  const len = data.length, three = len === 9;
@@ -3506,6 +3508,11 @@ var LeaferUI = function(exports) {
3506
3508
  command = data[i];
3507
3509
  switch (command) {
3508
3510
  case M$1:
3511
+ smoothLen = smooth.length;
3512
+ if (smoothLen && lastCommand !== Z$1) {
3513
+ smooth[startXIndex] = startX;
3514
+ smooth[startYIndex] = startY;
3515
+ }
3509
3516
  startX = lastX = data[i + 1];
3510
3517
  startY = lastY = data[i + 2];
3511
3518
  i += 3;
@@ -3516,6 +3523,8 @@ var LeaferUI = function(exports) {
3516
3523
  } else {
3517
3524
  smooth.push(M$1, startX, startY);
3518
3525
  }
3526
+ startXIndex = smoothLen + 1;
3527
+ startYIndex = smoothLen + 2;
3519
3528
  break;
3520
3529
 
3521
3530
  case L$2:
@@ -3554,8 +3563,8 @@ var LeaferUI = function(exports) {
3554
3563
  lastCommand = command;
3555
3564
  }
3556
3565
  if (command !== Z$1) {
3557
- smooth[1] = startX;
3558
- smooth[2] = startY;
3566
+ smooth[startXIndex] = startX;
3567
+ smooth[startYIndex] = startY;
3559
3568
  }
3560
3569
  return smooth;
3561
3570
  }
@@ -5207,6 +5216,7 @@ var LeaferUI = function(exports) {
5207
5216
  this.renderChanged = true;
5208
5217
  this.renderSpread || (this.renderSpread = 1);
5209
5218
  this.boundsChanged = true;
5219
+ this.hitCanvasChanged = true;
5210
5220
  }
5211
5221
  scaleChange() {
5212
5222
  this.scaleChanged = true;
@@ -6053,10 +6063,6 @@ var LeaferUI = function(exports) {
6053
6063
  }
6054
6064
  }
6055
6065
  }
6056
- set(_data, _isTemp) {}
6057
- get(_name) {
6058
- return undefined;
6059
- }
6060
6066
  setAttr(name, value) {
6061
6067
  this[name] = value;
6062
6068
  }
@@ -6073,37 +6079,10 @@ var LeaferUI = function(exports) {
6073
6079
  toString(options) {
6074
6080
  return JSON.stringify(this.toJSON(options));
6075
6081
  }
6076
- toSVG() {
6077
- return undefined;
6078
- }
6079
- __SVG(_data) {}
6080
- toHTML() {
6081
- return undefined;
6082
- }
6083
- __setAttr(_attrName, _newValue) {
6084
- return true;
6085
- }
6086
- __getAttr(_attrName) {
6087
- return undefined;
6088
- }
6089
- setProxyAttr(_attrName, _newValue) {}
6090
- getProxyAttr(_attrName) {
6091
- return undefined;
6092
- }
6093
- find(_condition, _options) {
6094
- return undefined;
6095
- }
6096
- findTag(_tag) {
6097
- return undefined;
6098
- }
6099
- findOne(_condition, _options) {
6100
- return undefined;
6101
- }
6102
- findId(_id) {
6103
- return undefined;
6082
+ scaleResize(scaleX, scaleY = scaleX, _noResize, _boundsType) {
6083
+ this.scaleX *= scaleX;
6084
+ this.scaleY *= scaleY;
6104
6085
  }
6105
- focus(_value) {}
6106
- updateState() {}
6107
6086
  updateLayout() {
6108
6087
  this.__layout.update();
6109
6088
  }
@@ -6119,27 +6098,6 @@ var LeaferUI = function(exports) {
6119
6098
  __extraUpdate() {
6120
6099
  if (this.leaferIsReady) this.leafer.layouter.addExtra(this);
6121
6100
  }
6122
- __updateWorldMatrix() {}
6123
- __updateLocalMatrix() {}
6124
- __updateWorldBounds() {}
6125
- __updateLocalBounds() {}
6126
- __updateLocalBoxBounds() {}
6127
- __updateLocalStrokeBounds() {}
6128
- __updateLocalRenderBounds() {}
6129
- __updateBoxBounds(_secondLayout, _bounds) {}
6130
- __updateContentBounds() {}
6131
- __updateStrokeBounds(_bounds) {}
6132
- __updateRenderBounds(_bounds) {}
6133
- __updateAutoLayout() {}
6134
- __updateFlowLayout() {}
6135
- __updateNaturalSize() {}
6136
- __updateStrokeSpread() {
6137
- return 0;
6138
- }
6139
- __updateRenderSpread() {
6140
- return 0;
6141
- }
6142
- __onUpdateSize() {}
6143
6101
  __updateEraser(value) {
6144
6102
  this.__hasEraser = value ? true : this.children.some(item => item.__.eraser);
6145
6103
  }
@@ -6153,7 +6111,6 @@ var LeaferUI = function(exports) {
6153
6111
  __updateMask(_value) {
6154
6112
  this.__hasMask = this.children.some(item => item.__.mask && item.__.visible && item.__.opacity);
6155
6113
  }
6156
- __renderMask(_canvas, _options) {}
6157
6114
  __getNowWorld(options) {
6158
6115
  if (options.matrix) {
6159
6116
  if (!this.__cameraWorld) this.__cameraWorld = {};
@@ -6309,76 +6266,12 @@ var LeaferUI = function(exports) {
6309
6266
  flip(axis, transition) {
6310
6267
  transform(this, getFlipTransform(this, axis), false, transition);
6311
6268
  }
6312
- scaleResize(scaleX, scaleY = scaleX, _noResize, _boundsType) {
6313
- this.scaleX *= scaleX;
6314
- this.scaleY *= scaleY;
6315
- }
6316
- __scaleResize(_scaleX, _scaleY) {}
6317
- resizeWidth(_width) {}
6318
- resizeHeight(_height) {}
6319
- hit(_world, _hitRadius) {
6320
- return true;
6321
- }
6322
- __hitWorld(_point, _forceHitFill) {
6323
- return true;
6324
- }
6325
- __hit(_local, _forceHitFill) {
6326
- return true;
6327
- }
6328
- __hitFill(_inner) {
6329
- return true;
6330
- }
6331
- __hitStroke(_inner, _strokeWidth) {
6332
- return true;
6333
- }
6334
- __hitPixel(_inner) {
6335
- return true;
6336
- }
6337
- __drawHitPath(_canvas) {}
6338
- __updateHitCanvas() {}
6339
- __render(_canvas, _options) {}
6340
- __drawFast(_canvas, _options) {}
6341
- __draw(_canvas, _options, _originCanvas) {}
6342
- __clip(_canvas, _options) {}
6343
- __renderShape(_canvas, _options) {}
6344
- __drawShape(_canvas, _options) {}
6345
- __updateWorldOpacity() {}
6346
- __updateChange() {}
6347
- __drawPath(_canvas) {}
6348
- __drawRenderPath(_canvas) {}
6349
- __updatePath() {}
6350
- __updateRenderPath(_updateCache) {}
6351
- getMotionPathData() {
6352
- return Plugin.need("path");
6353
- }
6354
- getMotionPoint(_motionDistance) {
6355
- return Plugin.need("path");
6356
- }
6357
- getMotionTotal() {
6358
- return 0;
6359
- }
6360
- __updateMotionPath() {}
6361
- __runAnimation(_type, _complete) {}
6362
- __updateSortChildren() {}
6363
- add(_child, _index) {}
6364
6269
  remove(_child, destroy) {
6365
6270
  if (this.parent) this.parent.remove(this, destroy);
6366
6271
  }
6367
6272
  dropTo(parent, index, resize) {
6368
6273
  drop(this, parent, index, resize);
6369
6274
  }
6370
- on(_type, _listener, _options) {}
6371
- off(_type, _listener, _options) {}
6372
- on_(_type, _listener, _bind, _options) {
6373
- return undefined;
6374
- }
6375
- off_(_id) {}
6376
- once(_type, _listener, _captureOrBind, _capture) {}
6377
- emit(_type, _event, _capture) {}
6378
- emitEvent(_event, _capture) {}
6379
- hasEvent(_type, _capture) {
6380
- return false;
6381
- }
6382
6275
  static changeAttr(attrName, defaultValue, fn) {
6383
6276
  fn ? this.addAttr(attrName, defaultValue, fn) : defineDataProcessor(this.prototype, attrName, defaultValue);
6384
6277
  }
@@ -6674,7 +6567,7 @@ var LeaferUI = function(exports) {
6674
6567
  this.levelMap = null;
6675
6568
  }
6676
6569
  }
6677
- const version = "2.1.4";
6570
+ const version = "2.1.6";
6678
6571
  class LeaferCanvas extends LeaferCanvasBase {
6679
6572
  get allowBackgroundColor() {
6680
6573
  return true;
@@ -8080,17 +7973,12 @@ var LeaferUI = function(exports) {
8080
7973
  if (!path) this.__drawPathByBox(pen);
8081
7974
  return pen;
8082
7975
  }
8083
- reset(_data) {}
8084
7976
  set(data, _transition) {
8085
7977
  if (data) Object.assign(this, data);
8086
7978
  }
8087
7979
  get(name) {
8088
7980
  return isString(name) ? this.__.__getInput(name) : this.__.__getInputData(name);
8089
7981
  }
8090
- createProxyData() {
8091
- return undefined;
8092
- }
8093
- clearProxyData() {}
8094
7982
  find(_condition, _options) {
8095
7983
  return Plugin.need("find");
8096
7984
  }
@@ -8128,6 +8016,7 @@ var LeaferUI = function(exports) {
8128
8016
  data.lazy && !this.__inLazyBounds && !Export.running ? data.__needComputePaint = true : data.__computePaint();
8129
8017
  }
8130
8018
  }
8019
+ __updatePath() {}
8131
8020
  __updateRenderPath(updateCache) {
8132
8021
  const data = this.__;
8133
8022
  if (data.path) {
@@ -8163,7 +8052,6 @@ var LeaferUI = function(exports) {
8163
8052
  this.set(keyframe);
8164
8053
  return Plugin.need("animate");
8165
8054
  }
8166
- killAnimate(_type, _nextStyle) {}
8167
8055
  export(_filename, _options) {
8168
8056
  return Plugin.need("export");
8169
8057
  }
@@ -8266,7 +8154,6 @@ var LeaferUI = function(exports) {
8266
8154
  __decorate([ surfaceType() ], exports.UI.prototype, "placeholderColor", void 0);
8267
8155
  __decorate([ dataType(100) ], exports.UI.prototype, "placeholderDelay", void 0);
8268
8156
  __decorate([ dataType({}) ], exports.UI.prototype, "data", void 0);
8269
- __decorate([ rewrite(exports.Leaf.prototype.reset) ], exports.UI.prototype, "reset", null);
8270
8157
  exports.UI = UI_1 = __decorate([ useModule(UIBounds), useModule(UIRender), rewriteAble() ], exports.UI);
8271
8158
  exports.Group = class Group extends exports.UI {
8272
8159
  get __tag() {
@@ -8302,9 +8189,6 @@ var LeaferUI = function(exports) {
8302
8189
  }
8303
8190
  return data;
8304
8191
  }
8305
- pick(_hitPoint, _options) {
8306
- return undefined;
8307
- }
8308
8192
  addAt(child, index) {
8309
8193
  this.add(child, index);
8310
8194
  }
@@ -8314,11 +8198,6 @@ var LeaferUI = function(exports) {
8314
8198
  addBefore(child, before) {
8315
8199
  this.add(child, this.children.indexOf(before));
8316
8200
  }
8317
- add(_child, _index) {}
8318
- addMany(..._children) {}
8319
- remove(_child, _destroy) {}
8320
- removeAll(_destroy) {}
8321
- clear() {}
8322
8201
  };
8323
8202
  __decorate([ dataProcessor(GroupData) ], exports.Group.prototype, "__", void 0);
8324
8203
  __decorate([ boundsType(0) ], exports.Group.prototype, "width", void 0);
@@ -9172,51 +9051,6 @@ var LeaferUI = function(exports) {
9172
9051
  this.add(path);
9173
9052
  return this;
9174
9053
  }
9175
- beginPath() {
9176
- return this;
9177
- }
9178
- moveTo(_x, _y) {
9179
- return this;
9180
- }
9181
- lineTo(_x, _y) {
9182
- return this;
9183
- }
9184
- bezierCurveTo(_x1, _y1, _x2, _y2, _x, _y) {
9185
- return this;
9186
- }
9187
- quadraticCurveTo(_x1, _y1, _x, _y) {
9188
- return this;
9189
- }
9190
- closePath() {
9191
- return this;
9192
- }
9193
- rect(_x, _y, _width, _height) {
9194
- return this;
9195
- }
9196
- roundRect(_x, _y, _width, _height, _cornerRadius) {
9197
- return this;
9198
- }
9199
- ellipse(_x, _y, _radiusX, _radiusY, _rotation, _startAngle, _endAngle, _anticlockwise) {
9200
- return this;
9201
- }
9202
- arc(_x, _y, _radius, _startAngle, _endAngle, _anticlockwise) {
9203
- return this;
9204
- }
9205
- arcTo(_x1, _y1, _x2, _y2, _radius) {
9206
- return this;
9207
- }
9208
- drawEllipse(_x, _y, _radiusX, _radiusY, _rotation, _startAngle, _endAngle, _anticlockwise) {
9209
- return this;
9210
- }
9211
- drawArc(_x, _y, _radius, _startAngle, _endAngle, _anticlockwise) {
9212
- return this;
9213
- }
9214
- drawPoints(_points, _curve, _close) {
9215
- return this;
9216
- }
9217
- clearPath() {
9218
- return this;
9219
- }
9220
9054
  paint() {
9221
9055
  const {pathElement: pathElement} = this;
9222
9056
  if (!pathElement.__layout.boxChanged) pathElement.forceUpdate("path");
@@ -11042,7 +10876,7 @@ var LeaferUI = function(exports) {
11042
10876
  needUpdate = false;
11043
10877
  }
11044
10878
  }
11045
- if (paint.mode === "brush") PaintImage.brush(leafPaint, ui);
10879
+ if (paint.mode === "brush") PaintImage.brush(leafPaint, ui, attrName);
11046
10880
  if (!leafPaint.data) {
11047
10881
  PaintImage.createData(leafPaint, image, paint, boxBounds);
11048
10882
  const {transform: transform} = leafPaint.data, {opacity: opacity} = paint;
@@ -11126,8 +10960,9 @@ var LeaferUI = function(exports) {
11126
10960
  break;
11127
10961
 
11128
10962
  case "repeat":
11129
- case "brush":
11130
10963
  if (!sameBox || scaleX || rotation || skew) PaintImage.repeatMode(data, box, width, height, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, align, paint.freeTransform);
10964
+
10965
+ case "brush":
11131
10966
  if (!repeat) data.repeat = "repeat";
11132
10967
  const count = isObject(repeat);
11133
10968
  if (gap || count) data.gap = getGapData(gap, count && repeat, tempImage.width, tempImage.height, box);
@@ -11138,7 +10973,7 @@ var LeaferUI = function(exports) {
11138
10973
  default:
11139
10974
  if (scaleX) PaintImage.fillOrFitMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation);
11140
10975
  }
11141
- if (!data.transform) {
10976
+ if (!data.transform && mode !== "brush") {
11142
10977
  if (box.x || box.y) translate$1(data.transform = get$3(), box.x, box.y);
11143
10978
  }
11144
10979
  if (scaleX) {
@@ -11254,8 +11089,9 @@ var LeaferUI = function(exports) {
11254
11089
  let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
11255
11090
  if (paint.patternId !== id && !ui.destroyed) {
11256
11091
  if (!(Platform.image.isLarge(paint.image, scaleX, scaleY) && !paint.data.repeat)) {
11257
- const {image: image, brush: brush, data: data} = paint, {opacity: opacity} = paint.originPaint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
11258
- let imageMatrix, xGap, yGap, {width: width, height: height} = image;
11092
+ const {image: image, brush: brush, data: data} = paint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
11093
+ let imageMatrix, xGap, yGap, {width: width, height: height} = image, {opacity: opacity} = paint.originPaint;
11094
+ if (brush || opacity === 1) opacity = undefined;
11259
11095
  if (fixScale) scaleX *= fixScale, scaleY *= fixScale;
11260
11096
  width *= scaleX;
11261
11097
  height *= scaleY;
@@ -1 +1 @@
1
- {"version":3,"file":"worker.min.cjs","sources":["../../../../../../../src/leafer/packages/interface/src/path/IPathCommand.ts"],"sourcesContent":["import { IPointData } from '../math/IMath'\nimport { IWindingRule } from '../canvas/ICanvas'\n\ntype Command = number\ntype x = number\ntype y = number\ntype x1 = number\ntype y1 = number\ntype x2 = number\ntype y2 = number\ntype radiusX = number\ntype radiusY = number\ntype xAxisRotation = number\ntype largeArcFlag = number\ntype sweepFlag = number\n\n\nexport type MCommandData = [Command, x, y]\nexport type HCommandData = [Command, x]\nexport type VCommandData = [Command, y]\nexport type LCommandData = MCommandData\n\nexport type CCommandData = [Command, x1, y1, x2, y2, x, y]\nexport type SCommandData = [Command, x2, y2, x, y]\n\nexport type QCommandData = [Command, x1, y1, x, y]\nexport type TCommandData = [Command, x, y]\n\nexport type ZCommandData = [Command]\n\nexport type ACommandData = [Command, radiusX, radiusY, xAxisRotation, largeArcFlag, sweepFlag, x, y]\n\n\n// 非svg标准的canvas绘图命令\ntype width = number\ntype height = number\ntype rotation = number\ntype startAngle = number\ntype endAngle = number\ntype anticlockwise = boolean\ntype cornerRadius = number | number[]\ntype radius = number\n\nexport type RectCommandData = [Command, x, y, width, height]\nexport type RoundRectCommandData = [Command, x, y, width, height, cornerRadius]\nexport type EllipseCommandData = [Command, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise]\nexport type ArcCommandData = [Command, x, y, radius, startAngle, endAngle, anticlockwise]\nexport type ArcToCommandData = [Command, x1, y1, x2, y2, radius]\n\n\nexport type CanvasPathCommand = 1 | 2 | 5 | 7 | 11 // M | L | C | Q | Z canvas可以绘制的命令\n\nexport type IPathCommandData = number[] // ...(MCommandData | LCommandData | CCommandData | QCommandData | ZCommandData)\n\nexport interface IPathCommandDataWithRadius {\n data: IPathCommandData\n radius: number[]\n}\n\nexport interface IPathCommandDataWithWindingRule {\n data: IPathCommandData\n windingRule?: IWindingRule\n}\n\n// 路径命令对象\nexport interface MoveToCommandObject {\n name: 'M'\n x: number\n y: number\n}\nexport interface LineToCommandObject {\n name: 'L'\n x: number\n y: number\n}\n\nexport interface BezierCurveToCommandObject {\n name: 'C'\n x1: number\n y1: number\n x2: number\n y2: number\n x: number\n y: number\n}\n\nexport interface QuadraticCurveToCommandObject {\n name: 'Q'\n x1: number\n y1: number\n x: number\n y: number\n}\n\nexport interface ClosePathCommandObject {\n name: 'Z'\n}\n\nexport type IPathCommandObject = MoveToCommandObject | LineToCommandObject | BezierCurveToCommandObject | QuadraticCurveToCommandObject | ClosePathCommandObject // M | L | C | Q | Z canvas可以绘制的命令\n\n\n// 可视化路径节点\n\nexport interface IPathCommandNodeBase {\n name: 'M^' | 'L^' | 'C^' | 'Z^'\n x: number\n y: number\n r?: number // 圆角半径\n a?: IPointData // 第一个手柄,连接上一个节点\n b?: IPointData // 第二个手柄,连接下一个节点\n ab?: PathNodeHandleType // 手柄类型\n}\n\nexport interface MoveToCommandNode extends IPathCommandNodeBase {\n name: 'M^'\n}\nexport interface LineToCommandNode extends IPathCommandNodeBase {\n name: 'L^'\n}\n\nexport interface BezierCurveToCommandNode extends IPathCommandNodeBase {\n name: 'C^'\n}\n\nexport interface ClosePathCommandNode {\n name: 'Z^'\n x?: number\n y?: number\n r?: number // 圆角半径\n a?: IPointData\n b?: IPointData\n ab?: PathNodeHandleType\n}\n\nexport type IPathCommandNode = MoveToCommandNode | LineToCommandNode | BezierCurveToCommandNode | ClosePathCommandNode // M | L | C | Z 路径节点命令(适合可视化编辑)\n\nexport enum PathNodeHandleType { // 手柄类型\n none = 1, // 无手柄\n free = 2, // 每个手柄自由控制\n mirrorAngle = 3, // 仅镜像角度\n mirror = 4, // 镜像角度和长度\n}\n\nexport type PathNodeHandleName = 'a' | 'b' // 手柄名称\n\nexport interface IPathNodeBase {\n pathNode: IPathCommandNode\n}"],"names":["PathNodeHandleType"],"mappings":"iBAwIYA,8LAAAA,QAAAA,wBAAAA,GAAAA,EAAAA,QAAAA,qBAAAA,2BAAkB,CAAA,IAC1BA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,OAAA,GAAA"}
1
+ {"version":3,"file":"worker.min.cjs","sources":["../../../../../../../src/leafer/packages/interface/src/path/IPathCommand.ts"],"sourcesContent":["import { IPointData } from '../math/IMath'\nimport { IWindingRule } from '../canvas/ICanvas'\n\ntype Command = number\ntype x = number\ntype y = number\ntype x1 = number\ntype y1 = number\ntype x2 = number\ntype y2 = number\ntype radiusX = number\ntype radiusY = number\ntype xAxisRotation = number\ntype largeArcFlag = number\ntype sweepFlag = number\n\n\nexport type MCommandData = [Command, x, y]\nexport type HCommandData = [Command, x]\nexport type VCommandData = [Command, y]\nexport type LCommandData = MCommandData\n\nexport type CCommandData = [Command, x1, y1, x2, y2, x, y]\nexport type SCommandData = [Command, x2, y2, x, y]\n\nexport type QCommandData = [Command, x1, y1, x, y]\nexport type TCommandData = [Command, x, y]\n\nexport type ZCommandData = [Command]\n\nexport type ACommandData = [Command, radiusX, radiusY, xAxisRotation, largeArcFlag, sweepFlag, x, y]\n\n\n// 非svg标准的canvas绘图命令\ntype width = number\ntype height = number\ntype rotation = number\ntype startAngle = number\ntype endAngle = number\ntype anticlockwise = boolean\ntype cornerRadius = number | number[]\ntype radius = number\n\nexport type RectCommandData = [Command, x, y, width, height]\nexport type RoundRectCommandData = [Command, x, y, width, height, cornerRadius]\nexport type EllipseCommandData = [Command, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise]\nexport type ArcCommandData = [Command, x, y, radius, startAngle, endAngle, anticlockwise]\nexport type ArcToCommandData = [Command, x1, y1, x2, y2, radius]\n\n\nexport type CanvasPathCommand = 1 | 2 | 5 | 7 | 11 // M | L | C | Q | Z canvas可以绘制的命令\n\nexport type IPathCommandData = number[] // ...(MCommandData | LCommandData | CCommandData | QCommandData | ZCommandData)\n\nexport interface IPathCommandDataWithRadius {\n data: IPathCommandData\n radius: number[]\n}\n\nexport interface IPathCommandDataWithWindingRule {\n data: IPathCommandData\n windingRule?: IWindingRule\n}\n\n// 路径命令对象\nexport interface MoveToCommandObject {\n name: 'M'\n x: number\n y: number\n pressure?: number // 压感\n}\nexport interface LineToCommandObject {\n name: 'L'\n x: number\n y: number\n pressure?: number\n}\n\nexport interface BezierCurveToCommandObject {\n name: 'C'\n x1: number\n y1: number\n x2: number\n y2: number\n x: number\n y: number\n pressure?: number\n}\n\nexport interface QuadraticCurveToCommandObject {\n name: 'Q'\n x1: number\n y1: number\n x: number\n y: number\n pressure?: number\n}\n\nexport interface ClosePathCommandObject {\n name: 'Z'\n}\n\nexport type IPathCommandObject = MoveToCommandObject | LineToCommandObject | BezierCurveToCommandObject | QuadraticCurveToCommandObject | ClosePathCommandObject // M | L | C | Q | Z canvas可以绘制的命令\n\n\n// 可视化路径节点\n\nexport interface IPathCommandNodeBase {\n name: 'M^' | 'L^' | 'C^' | 'Z^'\n x: number\n y: number\n r?: number // 圆角半径\n a?: IPointData // 第一个手柄,连接上一个节点\n b?: IPointData // 第二个手柄,连接下一个节点\n ab?: PathNodeHandleType // 手柄类型\n pressure?: number // 压感\n}\n\nexport interface MoveToCommandNode extends IPathCommandNodeBase {\n name: 'M^'\n}\nexport interface LineToCommandNode extends IPathCommandNodeBase {\n name: 'L^'\n}\n\nexport interface BezierCurveToCommandNode extends IPathCommandNodeBase {\n name: 'C^'\n}\n\nexport interface ClosePathCommandNode {\n name: 'Z^'\n x?: number\n y?: number\n r?: number // 圆角半径\n a?: IPointData\n b?: IPointData\n ab?: PathNodeHandleType\n}\n\nexport type IPathCommandNode = MoveToCommandNode | LineToCommandNode | BezierCurveToCommandNode | ClosePathCommandNode // M | L | C | Z 路径节点命令(适合可视化编辑)\n\nexport enum PathNodeHandleType { // 手柄类型\n none = 1, // 无手柄\n free = 2, // 每个手柄自由控制\n mirrorAngle = 3, // 仅镜像角度\n mirror = 4, // 镜像角度和长度\n}\n\nexport type PathNodeHandleName = 'a' | 'b' // 手柄名称\n\nexport interface IPathNodeBase {\n pathNode: IPathCommandNode\n}"],"names":["PathNodeHandleType"],"mappings":"iBA6IYA,8LAAAA,QAAAA,wBAAAA,GAAAA,EAAAA,QAAAA,qBAAAA,2BAAkB,CAAA,IAC1BA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,OAAA,GAAA"}