@leafer-game/miniapp 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.
- package/dist/miniapp.module.js +137 -68
- package/dist/miniapp.module.min.js +1 -1
- package/dist/miniapp.module.min.js.map +1 -1
- package/package.json +12 -12
package/dist/miniapp.module.js
CHANGED
|
@@ -817,6 +817,11 @@ const PointHelper = {
|
|
|
817
817
|
toOuterOf(t, matrix, to) {
|
|
818
818
|
toOuterPoint$3(matrix, t, to);
|
|
819
819
|
},
|
|
820
|
+
toVertical(t, rotation, verticalDistance, to) {
|
|
821
|
+
const r = rotation * OneRadian;
|
|
822
|
+
t.x += -Math.sin(r) * verticalDistance;
|
|
823
|
+
t.y += Math.cos(r) * verticalDistance;
|
|
824
|
+
},
|
|
820
825
|
getCenter(t, to) {
|
|
821
826
|
return {
|
|
822
827
|
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
|
|
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.
|
|
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(
|
|
6497
|
-
|
|
6498
|
-
|
|
6499
|
-
|
|
6500
|
-
|
|
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
|
-
|
|
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
|
|
7008
|
+
const version = "2.2.1";
|
|
6989
7009
|
|
|
6990
7010
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6991
7011
|
get allowBackgroundColor() {
|
|
@@ -7862,7 +7882,7 @@ class Picker {
|
|
|
7862
7882
|
for (let i = 0, len = list.length; i < len; i++) {
|
|
7863
7883
|
find = list[i];
|
|
7864
7884
|
if (ignoreHittable || LeafHelper.worldHittable(find)) {
|
|
7865
|
-
this.hitChild(find, point);
|
|
7885
|
+
this.hitChild(find, find.hitThrough ? this.point : point);
|
|
7866
7886
|
if (findList.length) {
|
|
7867
7887
|
if (find.isBranchLeaf && list.some(item => item !== find && LeafHelper.hasParent(item, find))) {
|
|
7868
7888
|
findList.reset();
|
|
@@ -7875,7 +7895,7 @@ class Picker {
|
|
|
7875
7895
|
}
|
|
7876
7896
|
if (bottomList) {
|
|
7877
7897
|
for (let i = 0, len = bottomList.length; i < len; i++) {
|
|
7878
|
-
this.hitChild(bottomList[i].target, this.point, bottomList[i].proxy);
|
|
7898
|
+
this.hitChild(bottomList[i].target, this.point, undefined, bottomList[i].proxy);
|
|
7879
7899
|
if (findList.length) return findList.list[0];
|
|
7880
7900
|
}
|
|
7881
7901
|
}
|
|
@@ -7933,42 +7953,38 @@ class Picker {
|
|
|
7933
7953
|
hitBranch(branch) {
|
|
7934
7954
|
this.eachFind(branch.children, branch.__onlyHitMask);
|
|
7935
7955
|
}
|
|
7936
|
-
eachFind(children,
|
|
7956
|
+
eachFind(children, onlyHitMask) {
|
|
7937
7957
|
let child, hit, data;
|
|
7938
7958
|
const {point: point} = this, len = children.length;
|
|
7939
7959
|
for (let i = len - 1; i > -1; i--) {
|
|
7940
7960
|
child = children[i], data = child.__;
|
|
7941
|
-
if (!data.visible ||
|
|
7961
|
+
if (!data.visible || onlyHitMask && !data.mask) continue;
|
|
7942
7962
|
hit = hitRadiusPoint$1(child.__world, data.hitRadius ? copyRadiusPoint$1(tempPoint$2, point, data.hitRadius) : point);
|
|
7943
7963
|
if (child.isBranch) {
|
|
7944
7964
|
if (hit || child.__ignoreHitWorld) {
|
|
7945
7965
|
if (child.isBranchLeaf && data.__clipAfterFill && !child.__hitWorld(point, true)) continue;
|
|
7946
7966
|
if (child.topChildren) this.eachFind(child.topChildren, false);
|
|
7947
7967
|
this.eachFind(child.children, child.__onlyHitMask);
|
|
7948
|
-
if (child.isBranchLeaf) this.hitChild(child, point);
|
|
7968
|
+
if (child.isBranchLeaf) this.hitChild(child, point, onlyHitMask);
|
|
7949
7969
|
}
|
|
7950
7970
|
} else {
|
|
7951
|
-
if (hit) this.hitChild(child, point);
|
|
7971
|
+
if (hit) this.hitChild(child, point, onlyHitMask);
|
|
7952
7972
|
}
|
|
7953
7973
|
}
|
|
7954
7974
|
}
|
|
7955
|
-
hitChild(child, point, proxy) {
|
|
7975
|
+
hitChild(child, point, onlyHitMask, proxy) {
|
|
7956
7976
|
if (this.exclude && this.exclude.has(child)) return;
|
|
7957
|
-
if (child.__hitWorld(point)) {
|
|
7958
|
-
const {parent: parent} = child;
|
|
7959
|
-
if (parent && parent.__hasMask && !
|
|
7960
|
-
|
|
7961
|
-
const {children: children} = parent;
|
|
7962
|
-
for (let i = 0, len = children.length; i < len; i++) {
|
|
7963
|
-
item = children[i];
|
|
7964
|
-
if (item.__.mask) findMasks.push(item);
|
|
7965
|
-
if (item === child) {
|
|
7966
|
-
if (findMasks && !findMasks.every(value => value.__hitWorld(point))) return;
|
|
7967
|
-
break;
|
|
7968
|
-
}
|
|
7969
|
-
}
|
|
7977
|
+
if (child.__hitWorld(point, onlyHitMask && child.mask === "path" ? true : undefined)) {
|
|
7978
|
+
const {parent: parent, mask: mask} = child;
|
|
7979
|
+
if (parent && parent.__hasMask && mask && !(mask === "clipping" || mask === "clipping-path")) {
|
|
7980
|
+
if (!parent.children.some(item => !item.mask && item.__hitWorld(point))) return;
|
|
7970
7981
|
}
|
|
7971
|
-
|
|
7982
|
+
const leaf = proxy || child, {hitThrough: hitThrough} = child, {findList: findList} = this;
|
|
7983
|
+
if (hitThrough) {
|
|
7984
|
+
const index = findList.list.findIndex(item => item[hitThrough] === child[hitThrough]);
|
|
7985
|
+
if (index > 0) return findList.addAt(leaf, index);
|
|
7986
|
+
}
|
|
7987
|
+
findList.add(leaf);
|
|
7972
7988
|
}
|
|
7973
7989
|
}
|
|
7974
7990
|
clear() {
|
|
@@ -8830,6 +8846,8 @@ __decorate([ dataType(false) ], UI.prototype, "editable", void 0);
|
|
|
8830
8846
|
|
|
8831
8847
|
__decorate([ hitType(true) ], UI.prototype, "hittable", void 0);
|
|
8832
8848
|
|
|
8849
|
+
__decorate([ hitType() ], UI.prototype, "hitThrough", void 0);
|
|
8850
|
+
|
|
8833
8851
|
__decorate([ hitType("path") ], UI.prototype, "hitFill", void 0);
|
|
8834
8852
|
|
|
8835
8853
|
__decorate([ strokeType("path") ], UI.prototype, "hitStroke", void 0);
|
|
@@ -9788,7 +9806,7 @@ let Text = class Text extends UI {
|
|
|
9788
9806
|
data.__font = `${italic ? "italic " : ""}${textCase === "small-caps" ? "small-caps " : ""}${fontWeight !== "normal" ? fontWeight + " " : ""}${fontSize || 12}px ${fontFamily || "caption"}`;
|
|
9789
9807
|
stintSet$1(data, "__padding", padding && MathHelper.fourNumber(padding));
|
|
9790
9808
|
stintSet$1(data, "__clipText", textOverflow !== "show" && !data.__autoSize);
|
|
9791
|
-
stintSet$1(data, "__isCharMode", width || height || data.__letterSpacing || textCase !== "none");
|
|
9809
|
+
stintSet$1(data, "__isCharMode", width || height || data.__letterSpacing || data.motionText || textCase !== "none");
|
|
9792
9810
|
data.__textDrawData = TextConvert.getDrawData((data.__isPlacehold = data.placeholder && data.text === "") ? data.placeholder : data.text, this.__);
|
|
9793
9811
|
}
|
|
9794
9812
|
__updateBoxBounds() {
|
|
@@ -9813,7 +9831,7 @@ let Text = class Text extends UI {
|
|
|
9813
9831
|
this.__updateNaturalSize();
|
|
9814
9832
|
} else super.__updateBoxBounds();
|
|
9815
9833
|
if (italic) b.width += fontSize * .16;
|
|
9816
|
-
DataHelper.stintSet(this, "isOverflow", !includes(b, contentBounds));
|
|
9834
|
+
DataHelper.stintSet(this, "isOverflow", !includes(b, contentBounds) && !data.motionText);
|
|
9817
9835
|
if (this.isOverflow) setList(data.__textBoxBounds = {}, [ b, contentBounds ]), layout.renderChanged = true; else data.__textBoxBounds = b;
|
|
9818
9836
|
}
|
|
9819
9837
|
__updateRenderSpread() {
|
|
@@ -10663,6 +10681,7 @@ class Dragger {
|
|
|
10663
10681
|
}
|
|
10664
10682
|
dragEnd(data) {
|
|
10665
10683
|
if (!this.dragging && !this.moving) return;
|
|
10684
|
+
setTimeout(() => this.interaction.pointerMove(data));
|
|
10666
10685
|
if (this.checkDragEndAnimate(data)) return;
|
|
10667
10686
|
this.dragEndReal(data);
|
|
10668
10687
|
}
|
|
@@ -11416,8 +11435,10 @@ ui$5.__hit = function(inner, forceHitFill) {
|
|
|
11416
11435
|
if (!needHitFillPath && !needHitStrokePath) return false;
|
|
11417
11436
|
const radiusWidth = inner.radiusX * 2;
|
|
11418
11437
|
let hitWidth = radiusWidth;
|
|
11438
|
+
let {strokeAlign: strokeAlign} = data;
|
|
11439
|
+
if (data.motionText) hitWidth += data.fontSize / 2, strokeAlign = "center";
|
|
11419
11440
|
if (needHitStrokePath) {
|
|
11420
|
-
switch (
|
|
11441
|
+
switch (strokeAlign) {
|
|
11421
11442
|
case "inside":
|
|
11422
11443
|
hitWidth += strokeWidth * 2;
|
|
11423
11444
|
if (!needHitFillPath && this.__hitFill(inner) && this.__hitStroke(inner, hitWidth)) return true;
|
|
@@ -11451,9 +11472,9 @@ rect.__hitFill = box$1.__hitFill = function(inner) {
|
|
|
11451
11472
|
};
|
|
11452
11473
|
|
|
11453
11474
|
Text.prototype.__drawHitPath = function(canvas) {
|
|
11454
|
-
const {__lineHeight: __lineHeight, fontSize: fontSize, __baseLine: __baseLine, __letterSpacing: __letterSpacing, __textDrawData:
|
|
11475
|
+
const data = this.__, {__lineHeight: __lineHeight, fontSize: fontSize, __baseLine: __baseLine, __letterSpacing: __letterSpacing, __textDrawData: drawData} = data;
|
|
11455
11476
|
canvas.beginPath();
|
|
11456
|
-
if (__letterSpacing < 0) this.__drawPathByBox(canvas); else
|
|
11477
|
+
if (data.motionText) this.__drawPathByData(canvas, data.__pathForMotionText); else if (__letterSpacing < 0) this.__drawPathByBox(canvas); else drawData.rows.forEach(row => canvas.rect(row.x, row.y - __baseLine, row.width, __lineHeight < fontSize ? fontSize : __lineHeight));
|
|
11457
11478
|
};
|
|
11458
11479
|
|
|
11459
11480
|
Group.prototype.pick = function(hitPoint, options) {
|
|
@@ -11640,7 +11661,8 @@ function fillPathOrText(ui, canvas, renderOptions) {
|
|
|
11640
11661
|
ui.__.__font ? Paint.fillText(ui, canvas, renderOptions) : ui.__.windingRule ? canvas.fill(ui.__.windingRule) : canvas.fill();
|
|
11641
11662
|
}
|
|
11642
11663
|
|
|
11643
|
-
function fillText(ui, canvas,
|
|
11664
|
+
function fillText(ui, canvas, renderOptions) {
|
|
11665
|
+
if (ui.motionText) return Paint.fillMotionText(ui, canvas, renderOptions);
|
|
11644
11666
|
const data = ui.__, {rows: rows, decorationY: decorationY} = data.__textDrawData;
|
|
11645
11667
|
if (data.__isPlacehold && data.placeholderColor) canvas.fillStyle = data.placeholderColor;
|
|
11646
11668
|
let row;
|
|
@@ -12032,7 +12054,7 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
|
|
|
12032
12054
|
data.__naturalWidth = image.width / data.pixelRatio;
|
|
12033
12055
|
data.__naturalHeight = image.height / data.pixelRatio;
|
|
12034
12056
|
if (data.__autoSide) {
|
|
12035
|
-
ui.forceUpdate(
|
|
12057
|
+
ui.forceUpdate();
|
|
12036
12058
|
LeafHelper.updateBounds(ui);
|
|
12037
12059
|
ui.__layout.boundsChanged = true;
|
|
12038
12060
|
if (ui.__proxyData) {
|
|
@@ -13002,7 +13024,8 @@ const TextMode = 2;
|
|
|
13002
13024
|
|
|
13003
13025
|
function layoutChar(drawData, style, width, _height) {
|
|
13004
13026
|
const {rows: rows} = drawData;
|
|
13005
|
-
const {textAlign: textAlign, paraIndent: paraIndent
|
|
13027
|
+
const {textAlign: textAlign, paraIndent: paraIndent} = style;
|
|
13028
|
+
const useLetter = style.__letterSpacing || style.motionText;
|
|
13006
13029
|
const justifyLast = width && textAlign.includes("both");
|
|
13007
13030
|
const justify = justifyLast || width && textAlign.includes("justify");
|
|
13008
13031
|
const justifyLetter = justify && textAlign.includes("letter");
|
|
@@ -13015,8 +13038,8 @@ function layoutChar(drawData, style, width, _height) {
|
|
|
13015
13038
|
remainingWidth = width - row.width - indentWidth;
|
|
13016
13039
|
if (justifyLetter) addLetterWidth = remainingWidth / (row.words.reduce((total, item) => total + item.data.length, 0) - 1); else addWordWidth = wordsLength > 1 ? remainingWidth / (wordsLength - 1) : 0;
|
|
13017
13040
|
}
|
|
13018
|
-
mode =
|
|
13019
|
-
if (row.isOverflow && !
|
|
13041
|
+
mode = useLetter || row.isOverflow || justifyLetter ? CharMode : addWordWidth ? WordMode : TextMode;
|
|
13042
|
+
if (row.isOverflow && !useLetter) row.textMode = true;
|
|
13020
13043
|
if (mode === TextMode) {
|
|
13021
13044
|
row.x += indentWidth;
|
|
13022
13045
|
toTextChar$1(row);
|
|
@@ -13217,6 +13240,7 @@ function getDrawData(content, style) {
|
|
|
13217
13240
|
let width = style.__getInput("width") || 0;
|
|
13218
13241
|
let height = style.__getInput("height") || 0;
|
|
13219
13242
|
const {__padding: padding} = style;
|
|
13243
|
+
if (style.motionText) width = height = 0;
|
|
13220
13244
|
if (padding) {
|
|
13221
13245
|
if (width) x = padding[left], width -= padding[right] + padding[left], !width && (width = .01); else if (!style.autoSizeAlign) x = padding[left];
|
|
13222
13246
|
if (height) y = padding[top], height -= padding[top] + padding[bottom], !height && (height = .01); else if (!style.autoSizeAlign) y = padding[top];
|
|
@@ -13429,7 +13453,7 @@ let Robot = class Robot extends UI {
|
|
|
13429
13453
|
const data = this.__;
|
|
13430
13454
|
const width = nowFrame.width / data.pixelRatio;
|
|
13431
13455
|
const height = nowFrame.height / data.pixelRatio;
|
|
13432
|
-
if (data.width !== width || data.height !== height) this.forceUpdate(
|
|
13456
|
+
if (data.width !== width || data.height !== height) this.forceUpdate();
|
|
13433
13457
|
data.__naturalWidth = width;
|
|
13434
13458
|
data.__naturalHeight = height;
|
|
13435
13459
|
}
|
|
@@ -15017,7 +15041,7 @@ const HighCurveHelper = {
|
|
|
15017
15041
|
},
|
|
15018
15042
|
getMotionPathData(data) {
|
|
15019
15043
|
let total = 0, distance, segments = [];
|
|
15020
|
-
let i = 0, x = 0, y = 0, toX, toY, command;
|
|
15044
|
+
let i = 0, x = 0, y = 0, toX, toY, command, closed;
|
|
15021
15045
|
const len = data.length;
|
|
15022
15046
|
while (i < len) {
|
|
15023
15047
|
command = data[i];
|
|
@@ -15042,6 +15066,7 @@ const HighCurveHelper = {
|
|
|
15042
15066
|
break;
|
|
15043
15067
|
|
|
15044
15068
|
case Z:
|
|
15069
|
+
closed = true;
|
|
15045
15070
|
i += 1;
|
|
15046
15071
|
|
|
15047
15072
|
default:
|
|
@@ -15053,13 +15078,16 @@ const HighCurveHelper = {
|
|
|
15053
15078
|
return {
|
|
15054
15079
|
total: total,
|
|
15055
15080
|
segments: segments,
|
|
15056
|
-
data: data
|
|
15081
|
+
data: data,
|
|
15082
|
+
closed: closed
|
|
15057
15083
|
};
|
|
15058
15084
|
},
|
|
15059
|
-
getDistancePoint(distanceData, motionDistance, motionPrecision) {
|
|
15060
|
-
const {segments: segments, data: data} = distanceData;
|
|
15061
|
-
motionDistance = UnitConvert.number(motionDistance,
|
|
15062
|
-
|
|
15085
|
+
getDistancePoint(distanceData, motionDistance, motionPrecision, offsetX) {
|
|
15086
|
+
const {segments: segments, data: data, total: total} = distanceData;
|
|
15087
|
+
motionDistance = UnitConvert.number(motionDistance, total);
|
|
15088
|
+
if (offsetX) motionDistance += offsetX;
|
|
15089
|
+
if (motionDistance > total) motionDistance = motionDistance % total;
|
|
15090
|
+
let nowDistance = 0, distance, to = {};
|
|
15063
15091
|
let i = 0, index = 0, x = 0, y = 0, toX, toY, command;
|
|
15064
15092
|
let x1, y1, x2, y2, t;
|
|
15065
15093
|
const len = data.length;
|
|
@@ -15071,15 +15099,20 @@ const HighCurveHelper = {
|
|
|
15071
15099
|
toX = data[i + 1];
|
|
15072
15100
|
toY = data[i + 2];
|
|
15073
15101
|
distance = segments[index];
|
|
15074
|
-
if (
|
|
15075
|
-
if (!i) x = toX, y = toY;
|
|
15076
|
-
tempFrom.x = x;
|
|
15077
|
-
tempFrom.y = y;
|
|
15102
|
+
if (nowDistance + distance >= motionDistance || !distanceData.total) {
|
|
15078
15103
|
to.x = toX;
|
|
15079
15104
|
to.y = toY;
|
|
15080
|
-
|
|
15081
|
-
|
|
15082
|
-
|
|
15105
|
+
if (i) {
|
|
15106
|
+
tempFrom.x = x;
|
|
15107
|
+
tempFrom.y = y;
|
|
15108
|
+
PointHelper.getDistancePoint(tempFrom, to, motionDistance - nowDistance, true);
|
|
15109
|
+
to.rotation = PointHelper.getAngle(tempFrom, to);
|
|
15110
|
+
return to;
|
|
15111
|
+
} else {
|
|
15112
|
+
const nextPoint = HighCurveHelper.getDistancePoint(distanceData, motionPrecision, motionPrecision, offsetX);
|
|
15113
|
+
to.rotation = nextPoint.rotation;
|
|
15114
|
+
return to;
|
|
15115
|
+
}
|
|
15083
15116
|
}
|
|
15084
15117
|
x = toX;
|
|
15085
15118
|
y = toY;
|
|
@@ -15090,9 +15123,9 @@ const HighCurveHelper = {
|
|
|
15090
15123
|
toX = data[i + 5];
|
|
15091
15124
|
toY = data[i + 6];
|
|
15092
15125
|
distance = segments[index];
|
|
15093
|
-
if (
|
|
15126
|
+
if (nowDistance + distance >= motionDistance) {
|
|
15094
15127
|
x1 = data[i + 1], y1 = data[i + 2], x2 = data[i + 3], y2 = data[i + 4];
|
|
15095
|
-
t = HighBezierHelper.getT(motionDistance -
|
|
15128
|
+
t = HighBezierHelper.getT(motionDistance - nowDistance, distance, x, y, x1, y1, x2, y2, toX, toY, motionPrecision);
|
|
15096
15129
|
BezierHelper.getPointAndSet(t, x, y, x1, y1, x2, y2, toX, toY, to);
|
|
15097
15130
|
to.rotation = HighBezierHelper.getRotation(t, x, y, x1, y1, x2, y2, toX, toY);
|
|
15098
15131
|
return to;
|
|
@@ -15109,7 +15142,7 @@ const HighCurveHelper = {
|
|
|
15109
15142
|
distance = 0;
|
|
15110
15143
|
}
|
|
15111
15144
|
index++;
|
|
15112
|
-
|
|
15145
|
+
nowDistance += distance;
|
|
15113
15146
|
}
|
|
15114
15147
|
return to;
|
|
15115
15148
|
},
|
|
@@ -15208,26 +15241,57 @@ const {updateMatrix: updateMatrix, updateAllMatrix: updateAllMatrix} = LeafHelpe
|
|
|
15208
15241
|
|
|
15209
15242
|
const {updateBounds: updateBounds} = BranchHelper;
|
|
15210
15243
|
|
|
15244
|
+
const {toVertical: toVertical} = PointHelper;
|
|
15245
|
+
|
|
15211
15246
|
UI.addAttr("motionPath", undefined, motionPathType);
|
|
15212
15247
|
|
|
15213
15248
|
UI.addAttr("motionPrecision", 1, motionPathType);
|
|
15214
15249
|
|
|
15215
15250
|
UI.addAttr("motion", undefined, motionPathType);
|
|
15216
15251
|
|
|
15252
|
+
UI.addAttr("motionVertical", "below", motionPathType);
|
|
15253
|
+
|
|
15217
15254
|
UI.addAttr("motionRotation", true, motionPathType);
|
|
15218
15255
|
|
|
15256
|
+
ui$1.getMotionPath = function() {
|
|
15257
|
+
return getMotionPath(this);
|
|
15258
|
+
};
|
|
15259
|
+
|
|
15219
15260
|
ui$1.getMotionPathData = function() {
|
|
15220
15261
|
return getMotionPathData(getMotionPath(this));
|
|
15221
15262
|
};
|
|
15222
15263
|
|
|
15223
|
-
ui$1.
|
|
15224
|
-
|
|
15225
|
-
|
|
15264
|
+
ui$1.getMotionContentHeight = function() {
|
|
15265
|
+
return this.__layout.boxBounds.height;
|
|
15266
|
+
};
|
|
15267
|
+
|
|
15268
|
+
ui$1.getMotionPoint = function(motionDistance, motionVertical, pathElement, offsetX = 0, offsetY = 0) {
|
|
15269
|
+
if (!pathElement) pathElement = getMotionPath(this);
|
|
15270
|
+
const data = getMotionPathData(pathElement);
|
|
15226
15271
|
if (!data.total) return {};
|
|
15227
|
-
const point = HighCurveHelper.getDistancePoint(data, motionDistance,
|
|
15228
|
-
MatrixHelper.toOuterPoint(path.localTransform, point);
|
|
15272
|
+
const point = HighCurveHelper.getDistancePoint(data, motionDistance, pathElement.motionPrecision, offsetX);
|
|
15229
15273
|
const {motionRotation: motionRotation} = this;
|
|
15230
|
-
if (
|
|
15274
|
+
if (isNumber(motionRotation)) point.rotation += motionRotation;
|
|
15275
|
+
let verticalType, verticalOffset;
|
|
15276
|
+
if (isObject(motionVertical)) verticalType = motionVertical.type, verticalOffset = motionVertical.offset; else if (isNumber(motionVertical)) verticalOffset = motionVertical; else verticalType = motionVertical;
|
|
15277
|
+
if (verticalType !== "below" || offsetY) {
|
|
15278
|
+
const {rotation: rotation} = point, height = this.getMotionContentHeight();
|
|
15279
|
+
if (verticalOffset) offsetY += verticalType === "above" ? -verticalOffset : verticalOffset;
|
|
15280
|
+
switch (verticalType) {
|
|
15281
|
+
case "above":
|
|
15282
|
+
toVertical(point, rotation, -height + offsetY);
|
|
15283
|
+
break;
|
|
15284
|
+
|
|
15285
|
+
case "center":
|
|
15286
|
+
toVertical(point, rotation, -height / 2 + offsetY);
|
|
15287
|
+
break;
|
|
15288
|
+
|
|
15289
|
+
case "below":
|
|
15290
|
+
default:
|
|
15291
|
+
toVertical(point, rotation, offsetY);
|
|
15292
|
+
}
|
|
15293
|
+
}
|
|
15294
|
+
MatrixHelper.toOuterPoint(pathElement.localTransform, point);
|
|
15231
15295
|
return point;
|
|
15232
15296
|
};
|
|
15233
15297
|
|
|
@@ -15259,7 +15323,11 @@ function updateMotion(leaf) {
|
|
|
15259
15323
|
const data = getMotionPathData(leaf);
|
|
15260
15324
|
if (data.total) leaf.__.__pathForRender = HighCurveHelper.getDistancePath(data, motion, leaf.motionPrecision);
|
|
15261
15325
|
} else {
|
|
15262
|
-
leaf.
|
|
15326
|
+
if (leaf.motionText) leaf.__updateMotionText(); else {
|
|
15327
|
+
const point = leaf.getMotionPoint(motion);
|
|
15328
|
+
if (leaf.motionRotation === false) delete point.rotation;
|
|
15329
|
+
leaf.set(point);
|
|
15330
|
+
}
|
|
15263
15331
|
if (!leaf.__hasAutoLayout) {
|
|
15264
15332
|
if (leaf.isBranch) updateAllMatrix(leaf), updateBounds(leaf, leaf); else updateMatrix(leaf);
|
|
15265
15333
|
}
|
|
@@ -15281,7 +15349,8 @@ function getMotionPath(leaf) {
|
|
|
15281
15349
|
function getMotionPathData(leaf) {
|
|
15282
15350
|
const data = leaf.__;
|
|
15283
15351
|
if (data.__pathForMotion) return data.__pathForMotion;
|
|
15284
|
-
|
|
15352
|
+
const path = data.__pathForMotion = HighCurveHelper.getMotionPathData(leaf.getPath(true, true));
|
|
15353
|
+
return path;
|
|
15285
15354
|
}
|
|
15286
15355
|
|
|
15287
15356
|
const {Yes: Yes, NoAndSkip: NoAndSkip, YesAndSkip: YesAndSkip} = Answer;
|
|
@@ -15442,4 +15511,4 @@ LeafHelper.cacheId = function(t) {
|
|
|
15442
15511
|
if (leafer.cacheInnerId) leafer.app.innerIdMap[t.innerId] = t;
|
|
15443
15512
|
};
|
|
15444
15513
|
|
|
15445
|
-
export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Finder, FourNumberHelper, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, Interaction, InteractionBase, InteractionHelper, KeyEvent, Keyboard, 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, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, MyTouchEvent, 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, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Robot, RobotData, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, ZoomEvent, 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, motionPathType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$5 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|
|
15514
|
+
export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Finder, FourNumberHelper, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, Interaction, InteractionBase, InteractionHelper, KeyEvent, Keyboard, 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, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, MyTouchEvent, 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, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Robot, RobotData, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, ZoomEvent, 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, motionPathType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$5 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|