@leafer-draw/worker 2.1.11 → 2.2.1

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.
@@ -856,6 +856,11 @@ const PointHelper = {
856
856
  toOuterOf(t, matrix, to) {
857
857
  toOuterPoint$3(matrix, t, to);
858
858
  },
859
+ toVertical(t, rotation, verticalDistance, to) {
860
+ const r = rotation * OneRadian;
861
+ t.x += -Math.sin(r) * verticalDistance;
862
+ t.y += Math.cos(r) * verticalDistance;
863
+ },
859
864
  getCenter(t, to) {
860
865
  return {
861
866
  x: t.x + (to.x - t.x) / 2,
@@ -4526,11 +4531,15 @@ function affectRenderBoundsType(defaultValue) {
4526
4531
  function surfaceType(defaultValue) {
4527
4532
  return decorateLeafAttr(defaultValue, key => attr({
4528
4533
  set(value) {
4529
- this.__setAttr(key, value) && (this.__layout.surfaceChanged || this.__layout.surfaceChange());
4534
+ this.__setAttr(key, value) && doSurfaceType(this);
4530
4535
  }
4531
4536
  }));
4532
4537
  }
4533
4538
 
4539
+ function doSurfaceType(leaf) {
4540
+ leaf.__layout.surfaceChanged || leaf.__layout.surfaceChange();
4541
+ }
4542
+
4534
4543
  function dimType(defaultValue) {
4535
4544
  return decorateLeafAttr(defaultValue, key => attr({
4536
4545
  set(value) {
@@ -4596,12 +4605,12 @@ function sortType(defaultValue) {
4596
4605
  }));
4597
4606
  }
4598
4607
 
4599
- function maskType(defaultValue) {
4608
+ function maskType(defaultValue, updateSelf) {
4600
4609
  return decorateLeafAttr(defaultValue, key => attr({
4601
4610
  set(value) {
4602
4611
  if (this.__setAttr(key, value)) {
4603
4612
  this.__layout.boxChanged || this.__layout.boxChange();
4604
- this.waitParent(() => {
4613
+ updateSelf ? this.__updateMask() : this.waitParent(() => {
4605
4614
  this.parent.__updateMask(value);
4606
4615
  });
4607
4616
  }
@@ -6253,7 +6262,8 @@ const BranchRender = {
6253
6262
  if (this.__worldOpacity && hasSize(nowWorld)) {
6254
6263
  const data = this.__;
6255
6264
  if (data.__useDim) {
6256
- if (data.dim) options.dimOpacity = data.dim === true ? .2 : data.dim; else if (data.bright && !options.topRendering) return options.topList.add(this); else if (data.dimskip) options.dimOpacity && (options.dimOpacity = 0);
6265
+ if (data.bright && !options.topRendering) return options.topList.add(this);
6266
+ if (data.dim) options.dimOpacity = data.dim === true ? .2 : data.dim; else if (data.dimskip) options.dimOpacity && (options.dimOpacity = 0);
6257
6267
  }
6258
6268
  if (data.__single && !this.isBranchLeaf) {
6259
6269
  if (data.eraser === "path") return this.__renderEraser(canvas, options);
@@ -6277,6 +6287,7 @@ const BranchRender = {
6277
6287
  child = children[i];
6278
6288
  excludeRenderBounds$1(child, options) || (child.__hasComplex ? LeafHelper.renderComplex(child, canvas, options) : child.__render(canvas, options));
6279
6289
  }
6290
+ if (this.__hasMask === 0) this.__rerenderMask(canvas, options);
6280
6291
  }
6281
6292
  },
6282
6293
  __clip(canvas, options) {
@@ -6493,11 +6504,19 @@ let Leaf = class Leaf {
6493
6504
  updateLayout() {
6494
6505
  this.__layout.update();
6495
6506
  }
6496
- forceUpdate(attrName) {
6497
- if (isUndefined(attrName)) attrName = "width"; else if (attrName === "surface") attrName = "blendMode";
6498
- const value = this.__.__getInput(attrName);
6499
- this.__[attrName] = isUndefined(value) ? null : undefined;
6500
- this[attrName] = value;
6507
+ forceUpdate(typeOrAttrName) {
6508
+ let quick;
6509
+ if (!typeOrAttrName || typeOrAttrName === "bounds") doBoundsType(this), quick = true; else if (typeOrAttrName === "surface") doSurfaceType(this),
6510
+ quick = true; else if (typeOrAttrName === "stroke") doStrokeType(this), quick = true;
6511
+ if (quick) {
6512
+ const {leafer: leafer} = this;
6513
+ return leafer && leafer.watcher && leafer.watcher.__onAttrChange({
6514
+ target: this
6515
+ });
6516
+ }
6517
+ const value = this.__.__getInput(typeOrAttrName);
6518
+ this.__[typeOrAttrName] = isUndefined(value) ? null : undefined;
6519
+ this[typeOrAttrName] = value;
6501
6520
  }
6502
6521
  forceRender(_bounds, _sync) {
6503
6522
  this.forceUpdate("surface");
@@ -6516,7 +6535,8 @@ let Leaf = class Leaf {
6516
6535
  canvas.restore();
6517
6536
  }
6518
6537
  __updateMask(_value) {
6519
- this.__hasMask = this.children.some(item => item.__.mask && item.__.visible && item.__.opacity);
6538
+ const hasMask = this.children.some(item => item.__.mask && item.__.visible && item.__.opacity);
6539
+ this.__hasMask = this.__.maskskip ? hasMask && 0 : hasMask;
6520
6540
  }
6521
6541
  __getNowWorld(options) {
6522
6542
  if (options.matrix) {
@@ -6985,7 +7005,7 @@ class LeafLevelList {
6985
7005
  }
6986
7006
  }
6987
7007
 
6988
- const version = "2.1.11";
7008
+ const version = "2.2.1";
6989
7009
 
6990
7010
  class LeaferCanvas extends LeaferCanvasBase {
6991
7011
  get allowBackgroundColor() {
@@ -8471,6 +8491,8 @@ __decorate([ dataType(false) ], UI.prototype, "editable", void 0);
8471
8491
 
8472
8492
  __decorate([ hitType(true) ], UI.prototype, "hittable", void 0);
8473
8493
 
8494
+ __decorate([ hitType() ], UI.prototype, "hitThrough", void 0);
8495
+
8474
8496
  __decorate([ hitType("path") ], UI.prototype, "hitFill", void 0);
8475
8497
 
8476
8498
  __decorate([ strokeType("path") ], UI.prototype, "hitStroke", void 0);
@@ -9429,7 +9451,7 @@ let Text = class Text extends UI {
9429
9451
  data.__font = `${italic ? "italic " : ""}${textCase === "small-caps" ? "small-caps " : ""}${fontWeight !== "normal" ? fontWeight + " " : ""}${fontSize || 12}px ${fontFamily || "caption"}`;
9430
9452
  stintSet$1(data, "__padding", padding && MathHelper.fourNumber(padding));
9431
9453
  stintSet$1(data, "__clipText", textOverflow !== "show" && !data.__autoSize);
9432
- stintSet$1(data, "__isCharMode", width || height || data.__letterSpacing || textCase !== "none");
9454
+ stintSet$1(data, "__isCharMode", width || height || data.__letterSpacing || data.motionText || textCase !== "none");
9433
9455
  data.__textDrawData = TextConvert.getDrawData((data.__isPlacehold = data.placeholder && data.text === "") ? data.placeholder : data.text, this.__);
9434
9456
  }
9435
9457
  __updateBoxBounds() {
@@ -9454,7 +9476,7 @@ let Text = class Text extends UI {
9454
9476
  this.__updateNaturalSize();
9455
9477
  } else super.__updateBoxBounds();
9456
9478
  if (italic) b.width += fontSize * .16;
9457
- DataHelper.stintSet(this, "isOverflow", !includes(b, contentBounds));
9479
+ DataHelper.stintSet(this, "isOverflow", !includes(b, contentBounds) && !data.motionText);
9458
9480
  if (this.isOverflow) setList(data.__textBoxBounds = {}, [ b, contentBounds ]), layout.renderChanged = true; else data.__textBoxBounds = b;
9459
9481
  }
9460
9482
  __updateRenderSpread() {
@@ -9639,7 +9661,8 @@ function fillPathOrText(ui, canvas, renderOptions) {
9639
9661
  ui.__.__font ? Paint.fillText(ui, canvas, renderOptions) : ui.__.windingRule ? canvas.fill(ui.__.windingRule) : canvas.fill();
9640
9662
  }
9641
9663
 
9642
- function fillText(ui, canvas, _renderOptions) {
9664
+ function fillText(ui, canvas, renderOptions) {
9665
+ if (ui.motionText) return Paint.fillMotionText(ui, canvas, renderOptions);
9643
9666
  const data = ui.__, {rows: rows, decorationY: decorationY} = data.__textDrawData;
9644
9667
  if (data.__isPlacehold && data.placeholderColor) canvas.fillStyle = data.placeholderColor;
9645
9668
  let row;
@@ -10031,7 +10054,7 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
10031
10054
  data.__naturalWidth = image.width / data.pixelRatio;
10032
10055
  data.__naturalHeight = image.height / data.pixelRatio;
10033
10056
  if (data.__autoSide) {
10034
- ui.forceUpdate("width");
10057
+ ui.forceUpdate();
10035
10058
  LeafHelper.updateBounds(ui);
10036
10059
  ui.__layout.boundsChanged = true;
10037
10060
  if (ui.__proxyData) {
@@ -11001,7 +11024,8 @@ const TextMode = 2;
11001
11024
 
11002
11025
  function layoutChar(drawData, style, width, _height) {
11003
11026
  const {rows: rows} = drawData;
11004
- const {textAlign: textAlign, paraIndent: paraIndent, __letterSpacing: __letterSpacing} = style;
11027
+ const {textAlign: textAlign, paraIndent: paraIndent} = style;
11028
+ const useLetter = style.__letterSpacing || style.motionText;
11005
11029
  const justifyLast = width && textAlign.includes("both");
11006
11030
  const justify = justifyLast || width && textAlign.includes("justify");
11007
11031
  const justifyLetter = justify && textAlign.includes("letter");
@@ -11014,8 +11038,8 @@ function layoutChar(drawData, style, width, _height) {
11014
11038
  remainingWidth = width - row.width - indentWidth;
11015
11039
  if (justifyLetter) addLetterWidth = remainingWidth / (row.words.reduce((total, item) => total + item.data.length, 0) - 1); else addWordWidth = wordsLength > 1 ? remainingWidth / (wordsLength - 1) : 0;
11016
11040
  }
11017
- mode = __letterSpacing || row.isOverflow || justifyLetter ? CharMode : addWordWidth ? WordMode : TextMode;
11018
- if (row.isOverflow && !__letterSpacing) row.textMode = true;
11041
+ mode = useLetter || row.isOverflow || justifyLetter ? CharMode : addWordWidth ? WordMode : TextMode;
11042
+ if (row.isOverflow && !useLetter) row.textMode = true;
11019
11043
  if (mode === TextMode) {
11020
11044
  row.x += indentWidth;
11021
11045
  toTextChar$1(row);
@@ -11216,6 +11240,7 @@ function getDrawData(content, style) {
11216
11240
  let width = style.__getInput("width") || 0;
11217
11241
  let height = style.__getInput("height") || 0;
11218
11242
  const {__padding: padding} = style;
11243
+ if (style.motionText) width = height = 0;
11219
11244
  if (padding) {
11220
11245
  if (width) x = padding[left], width -= padding[right] + padding[left], !width && (width = .01); else if (!style.autoSizeAlign) x = padding[left];
11221
11246
  if (height) y = padding[top], height -= padding[top] + padding[bottom], !height && (height = .01); else if (!style.autoSizeAlign) y = padding[top];
@@ -11303,4 +11328,4 @@ Object.assign(Effect, EffectModule);
11303
11328
 
11304
11329
  useCanvas();
11305
11330
 
11306
- 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, LeaferFilm, LeaferImage, LeaferVideo, 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, UnitConvertHelper, 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$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
11331
+ 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, LeaferFilm, LeaferImage, LeaferVideo, 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, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, doSurfaceType, 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$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };