leafer-draw 1.9.3 → 1.9.5
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/web.cjs +62 -33
- package/dist/web.esm.js +63 -34
- package/dist/web.esm.min.js +1 -1
- package/dist/web.esm.min.js.map +1 -1
- package/dist/web.js +150 -165
- package/dist/web.min.cjs +1 -1
- package/dist/web.min.cjs.map +1 -1
- package/dist/web.min.js +1 -1
- package/dist/web.min.js.map +1 -1
- package/dist/web.module.js +152 -168
- package/dist/web.module.min.js +1 -1
- package/dist/web.module.min.js.map +1 -1
- package/package.json +3 -3
package/dist/web.js
CHANGED
|
@@ -49,7 +49,7 @@ var LeaferUI = function(exports) {
|
|
|
49
49
|
return value === undefined;
|
|
50
50
|
}
|
|
51
51
|
function isNull(value) {
|
|
52
|
-
return value
|
|
52
|
+
return value == null;
|
|
53
53
|
}
|
|
54
54
|
function isString(value) {
|
|
55
55
|
return typeof value === "string";
|
|
@@ -119,6 +119,9 @@ var LeaferUI = function(exports) {
|
|
|
119
119
|
const {path: path} = this;
|
|
120
120
|
return path && path.length === 6 && path[0] === 1;
|
|
121
121
|
}
|
|
122
|
+
get __usePathBox() {
|
|
123
|
+
return this.__pathInputed;
|
|
124
|
+
}
|
|
122
125
|
get __blendMode() {
|
|
123
126
|
if (this.eraser && this.eraser !== "path") return "destination-out";
|
|
124
127
|
const {blendMode: blendMode} = this;
|
|
@@ -285,6 +288,9 @@ var LeaferUI = function(exports) {
|
|
|
285
288
|
num = round$3(num * a) / a;
|
|
286
289
|
return num === -0 ? 0 : num;
|
|
287
290
|
},
|
|
291
|
+
sign(num) {
|
|
292
|
+
return num < 0 ? -1 : 1;
|
|
293
|
+
},
|
|
288
294
|
getScaleData(scale, size, originSize, scaleData) {
|
|
289
295
|
if (!scaleData) scaleData = {};
|
|
290
296
|
if (size) {
|
|
@@ -1077,10 +1083,10 @@ var LeaferUI = function(exports) {
|
|
|
1077
1083
|
toPoint$5(align, box, to, onlyBoxSize, content, onlyContentSize);
|
|
1078
1084
|
}
|
|
1079
1085
|
};
|
|
1080
|
-
const {tempPointBounds: tempPointBounds$1, setPoint: setPoint$2, addPoint: addPoint$2, toBounds: toBounds$
|
|
1086
|
+
const {tempPointBounds: tempPointBounds$1, setPoint: setPoint$2, addPoint: addPoint$2, toBounds: toBounds$2} = TwoPointBoundsHelper;
|
|
1081
1087
|
const {toOuterPoint: toOuterPoint$2} = MatrixHelper;
|
|
1082
1088
|
const {float: float, fourNumber: fourNumber} = MathHelper;
|
|
1083
|
-
const {floor: floor$2, ceil: ceil$
|
|
1089
|
+
const {floor: floor$2, ceil: ceil$2} = Math;
|
|
1084
1090
|
let right$1, bottom$1, boundsRight, boundsBottom;
|
|
1085
1091
|
const point = {};
|
|
1086
1092
|
const toPoint$4 = {};
|
|
@@ -1204,7 +1210,7 @@ var LeaferUI = function(exports) {
|
|
|
1204
1210
|
point.x = t.x;
|
|
1205
1211
|
toOuterPoint$2(matrix, point, toPoint$4);
|
|
1206
1212
|
addPoint$2(tempPointBounds$1, toPoint$4.x, toPoint$4.y);
|
|
1207
|
-
toBounds$
|
|
1213
|
+
toBounds$2(tempPointBounds$1, to);
|
|
1208
1214
|
}
|
|
1209
1215
|
},
|
|
1210
1216
|
toInnerOf(t, matrix, to) {
|
|
@@ -1242,8 +1248,8 @@ var LeaferUI = function(exports) {
|
|
|
1242
1248
|
const {x: x, y: y} = t;
|
|
1243
1249
|
t.x = floor$2(t.x);
|
|
1244
1250
|
t.y = floor$2(t.y);
|
|
1245
|
-
t.width = x > t.x ? ceil$
|
|
1246
|
-
t.height = y > t.y ? ceil$
|
|
1251
|
+
t.width = x > t.x ? ceil$2(t.width + x - t.x) : ceil$2(t.width);
|
|
1252
|
+
t.height = y > t.y ? ceil$2(t.height + y - t.y) : ceil$2(t.height);
|
|
1247
1253
|
},
|
|
1248
1254
|
unsign(t) {
|
|
1249
1255
|
if (t.width < 0) {
|
|
@@ -1303,7 +1309,7 @@ var LeaferUI = function(exports) {
|
|
|
1303
1309
|
},
|
|
1304
1310
|
setPoints(t, points) {
|
|
1305
1311
|
points.forEach((point, index) => index === 0 ? setPoint$2(tempPointBounds$1, point.x, point.y) : addPoint$2(tempPointBounds$1, point.x, point.y));
|
|
1306
|
-
toBounds$
|
|
1312
|
+
toBounds$2(tempPointBounds$1, t);
|
|
1307
1313
|
},
|
|
1308
1314
|
setPoint(t, point) {
|
|
1309
1315
|
B.set(t, point.x, point.y);
|
|
@@ -2060,15 +2066,15 @@ var LeaferUI = function(exports) {
|
|
|
2060
2066
|
DataHelper.copyAttrs(s, size, canvasSizeAttrs);
|
|
2061
2067
|
canvasSizeAttrs.forEach(key => s[key] || (s[key] = 1));
|
|
2062
2068
|
this.bounds = new Bounds(0, 0, this.width, this.height);
|
|
2063
|
-
|
|
2064
|
-
this.updateViewSize();
|
|
2065
|
-
this.smooth = this.config.smooth;
|
|
2066
|
-
}
|
|
2069
|
+
this.updateViewSize();
|
|
2067
2070
|
this.updateClientBounds();
|
|
2068
|
-
if (this.context
|
|
2069
|
-
this.
|
|
2070
|
-
this.
|
|
2071
|
-
|
|
2071
|
+
if (this.context) {
|
|
2072
|
+
this.smooth = this.config.smooth;
|
|
2073
|
+
if (!this.unreal && takeCanvas) {
|
|
2074
|
+
this.clearWorld(takeCanvas.bounds);
|
|
2075
|
+
this.copyWorld(takeCanvas);
|
|
2076
|
+
takeCanvas.recycle();
|
|
2077
|
+
}
|
|
2072
2078
|
}
|
|
2073
2079
|
}
|
|
2074
2080
|
updateViewSize() {}
|
|
@@ -2369,7 +2375,7 @@ var LeaferUI = function(exports) {
|
|
|
2369
2375
|
data[0] ? drawer.arcTo(x, y, right, y, data[0]) : drawer.lineTo(x, y);
|
|
2370
2376
|
}
|
|
2371
2377
|
};
|
|
2372
|
-
const {sin: sin$3, cos: cos$3, atan2: atan2$1, ceil: ceil, abs: abs$2, PI: PI$2, sqrt: sqrt$1, pow: pow} = Math;
|
|
2378
|
+
const {sin: sin$3, cos: cos$3, hypot: hypot, atan2: atan2$1, ceil: ceil$1, abs: abs$2, PI: PI$2, sqrt: sqrt$1, pow: pow} = Math;
|
|
2373
2379
|
const {setPoint: setPoint$1, addPoint: addPoint$1} = TwoPointBoundsHelper;
|
|
2374
2380
|
const {set: set, toNumberPoints: toNumberPoints} = PointHelper;
|
|
2375
2381
|
const {M: M$5, L: L$6, C: C$4, Q: Q$4, Z: Z$5} = PathCommandMap;
|
|
@@ -2435,9 +2441,11 @@ var LeaferUI = function(exports) {
|
|
|
2435
2441
|
const CBy = toY - y1;
|
|
2436
2442
|
let startRadian = atan2$1(BAy, BAx);
|
|
2437
2443
|
let endRadian = atan2$1(CBy, CBx);
|
|
2444
|
+
const lenBA = hypot(BAx, BAy);
|
|
2445
|
+
const lenCB = hypot(CBx, CBy);
|
|
2438
2446
|
let totalRadian = endRadian - startRadian;
|
|
2439
2447
|
if (totalRadian < 0) totalRadian += PI2;
|
|
2440
|
-
if (
|
|
2448
|
+
if (lenBA < 1e-12 || lenCB < 1e-12 || totalRadian < 1e-12 || abs$2(totalRadian - PI$2) < 1e-12) {
|
|
2441
2449
|
if (data) data.push(L$6, x1, y1);
|
|
2442
2450
|
if (setPointBounds) {
|
|
2443
2451
|
setPoint$1(setPointBounds, fromX, fromY);
|
|
@@ -2470,7 +2478,7 @@ var LeaferUI = function(exports) {
|
|
|
2470
2478
|
let totalRadian = endRadian - startRadian;
|
|
2471
2479
|
if (totalRadian < 0) totalRadian += PI2; else if (totalRadian > PI2) totalRadian -= PI2;
|
|
2472
2480
|
if (anticlockwise) totalRadian -= PI2;
|
|
2473
|
-
const parts = ceil(abs$2(totalRadian / PI_2));
|
|
2481
|
+
const parts = ceil$1(abs$2(totalRadian / PI_2));
|
|
2474
2482
|
const partRadian = totalRadian / parts;
|
|
2475
2483
|
const partRadian4Sin = sin$3(partRadian / 4);
|
|
2476
2484
|
const control = 8 / 3 * partRadian4Sin * partRadian4Sin / sin$3(partRadian / 2);
|
|
@@ -3010,11 +3018,7 @@ var LeaferUI = function(exports) {
|
|
|
3010
3018
|
this.set(path);
|
|
3011
3019
|
}
|
|
3012
3020
|
set(path) {
|
|
3013
|
-
|
|
3014
|
-
this.__path = isString(path) ? PathHelper.parse(path) : path;
|
|
3015
|
-
} else {
|
|
3016
|
-
this.__path = [];
|
|
3017
|
-
}
|
|
3021
|
+
this.__path = path ? isString(path) ? PathHelper.parse(path) : path : [];
|
|
3018
3022
|
return this;
|
|
3019
3023
|
}
|
|
3020
3024
|
beginPath() {
|
|
@@ -3176,7 +3180,7 @@ var LeaferUI = function(exports) {
|
|
|
3176
3180
|
};
|
|
3177
3181
|
const {M: M$1, L: L$2, C: C, Q: Q, Z: Z$1, N: N, D: D$1, X: X, G: G, F: F$1, O: O, P: P, U: U} = PathCommandMap;
|
|
3178
3182
|
const {toTwoPointBounds: toTwoPointBounds, toTwoPointBoundsByQuadraticCurve: toTwoPointBoundsByQuadraticCurve, arcTo: arcTo$1, arc: arc, ellipse: ellipse$1} = BezierHelper;
|
|
3179
|
-
const {addPointBounds: addPointBounds, copy: copy$6, addPoint: addPoint, setPoint: setPoint, addBounds: addBounds, toBounds: toBounds$
|
|
3183
|
+
const {addPointBounds: addPointBounds, copy: copy$6, addPoint: addPoint, setPoint: setPoint, addBounds: addBounds, toBounds: toBounds$1} = TwoPointBoundsHelper;
|
|
3180
3184
|
const debug$a = Debug.get("PathBounds");
|
|
3181
3185
|
let radius, radiusX, radiusY;
|
|
3182
3186
|
const tempPointBounds = {};
|
|
@@ -3185,7 +3189,7 @@ var LeaferUI = function(exports) {
|
|
|
3185
3189
|
const PathBounds = {
|
|
3186
3190
|
toBounds(data, setBounds) {
|
|
3187
3191
|
PathBounds.toTwoPointBounds(data, setPointBounds);
|
|
3188
|
-
toBounds$
|
|
3192
|
+
toBounds$1(setPointBounds, setBounds);
|
|
3189
3193
|
},
|
|
3190
3194
|
toTwoPointBounds(data, setPointBounds) {
|
|
3191
3195
|
if (!data || !data.length) return setPoint(setPointBounds, 0, 0);
|
|
@@ -3367,10 +3371,13 @@ var LeaferUI = function(exports) {
|
|
|
3367
3371
|
return smooth;
|
|
3368
3372
|
}
|
|
3369
3373
|
};
|
|
3370
|
-
|
|
3374
|
+
function path(path) {
|
|
3375
|
+
return new PathCreator(path);
|
|
3376
|
+
}
|
|
3377
|
+
const pen = path();
|
|
3378
|
+
PathHelper.creator = path();
|
|
3371
3379
|
PathHelper.parse = PathConvert.parse;
|
|
3372
3380
|
PathHelper.convertToCanvasData = PathConvert.toCanvasData;
|
|
3373
|
-
const pen = new PathCreator;
|
|
3374
3381
|
const {drawRoundRect: drawRoundRect} = RectHelper;
|
|
3375
3382
|
function roundRect(drawer) {
|
|
3376
3383
|
if (drawer && !drawer.roundRect) {
|
|
@@ -3723,7 +3730,7 @@ var LeaferUI = function(exports) {
|
|
|
3723
3730
|
return FileHelper.alphaPixelTypes.some(item => I.isFormat(item, config));
|
|
3724
3731
|
},
|
|
3725
3732
|
isFormat(format, config) {
|
|
3726
|
-
if (config.format
|
|
3733
|
+
if (config.format) return config.format === format;
|
|
3727
3734
|
const {url: url} = config;
|
|
3728
3735
|
if (url.startsWith("data:")) {
|
|
3729
3736
|
if (url.startsWith("data:" + FileHelper.mineType(format))) return true;
|
|
@@ -3813,7 +3820,7 @@ var LeaferUI = function(exports) {
|
|
|
3813
3820
|
getFull(_filters) {
|
|
3814
3821
|
return this.view;
|
|
3815
3822
|
}
|
|
3816
|
-
getCanvas(width, height, opacity, _filters, xGap, yGap) {
|
|
3823
|
+
getCanvas(width, height, opacity, _filters, xGap, yGap, smooth) {
|
|
3817
3824
|
width || (width = this.width);
|
|
3818
3825
|
height || (height = this.height);
|
|
3819
3826
|
if (this.cache) {
|
|
@@ -3829,6 +3836,7 @@ var LeaferUI = function(exports) {
|
|
|
3829
3836
|
const canvas = Platform.origin.createCanvas(max$1(floor$1(width + (xGap || 0)), 1), max$1(floor$1(height + (yGap || 0)), 1));
|
|
3830
3837
|
const ctx = canvas.getContext("2d");
|
|
3831
3838
|
if (opacity) ctx.globalAlpha = opacity;
|
|
3839
|
+
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
3832
3840
|
ctx.drawImage(this.view, 0, 0, width, height);
|
|
3833
3841
|
this.cache = this.use > 1 ? {
|
|
3834
3842
|
data: canvas,
|
|
@@ -3867,7 +3875,7 @@ var LeaferUI = function(exports) {
|
|
|
3867
3875
|
return {
|
|
3868
3876
|
get() {
|
|
3869
3877
|
const v = this[privateKey];
|
|
3870
|
-
return
|
|
3878
|
+
return v == null ? defaultValue : v;
|
|
3871
3879
|
},
|
|
3872
3880
|
set(value) {
|
|
3873
3881
|
this[privateKey] = value;
|
|
@@ -4120,21 +4128,21 @@ var LeaferUI = function(exports) {
|
|
|
4120
4128
|
};
|
|
4121
4129
|
} else if (typeof defaultValue === "function") {
|
|
4122
4130
|
property.get = function() {
|
|
4123
|
-
|
|
4124
|
-
return v
|
|
4131
|
+
const v = this[computedKey];
|
|
4132
|
+
return v == null ? defaultValue(this.__leaf) : v;
|
|
4125
4133
|
};
|
|
4126
4134
|
} else if (isObject(defaultValue)) {
|
|
4127
4135
|
const isEmpty = isEmptyData(defaultValue);
|
|
4128
4136
|
property.get = function() {
|
|
4129
|
-
|
|
4130
|
-
return v
|
|
4137
|
+
const v = this[computedKey];
|
|
4138
|
+
return v == null ? this[computedKey] = isEmpty ? {} : DataHelper.clone(defaultValue) : v;
|
|
4131
4139
|
};
|
|
4132
4140
|
}
|
|
4133
4141
|
const isBox = target.isBranchLeaf;
|
|
4134
4142
|
if (key === "width") {
|
|
4135
4143
|
property.get = function() {
|
|
4136
4144
|
const v = this[computedKey];
|
|
4137
|
-
if (v
|
|
4145
|
+
if (v == null) {
|
|
4138
4146
|
const t = this, naturalWidth = t.__naturalWidth, leaf = t.__leaf;
|
|
4139
4147
|
if (!defaultValue || leaf.pathInputed) return leaf.boxBounds.width;
|
|
4140
4148
|
if (naturalWidth) return t._height && t.__useNaturalRatio ? t._height * naturalWidth / t.__naturalHeight : naturalWidth;
|
|
@@ -4144,7 +4152,7 @@ var LeaferUI = function(exports) {
|
|
|
4144
4152
|
} else if (key === "height") {
|
|
4145
4153
|
property.get = function() {
|
|
4146
4154
|
const v = this[computedKey];
|
|
4147
|
-
if (v
|
|
4155
|
+
if (v == null) {
|
|
4148
4156
|
const t = this, naturalHeight = t.__naturalHeight, leaf = t.__leaf;
|
|
4149
4157
|
if (!defaultValue || leaf.pathInputed) return leaf.boxBounds.height;
|
|
4150
4158
|
if (naturalHeight) return t._width && t.__useNaturalRatio ? t._width * naturalHeight / t.__naturalWidth : naturalHeight;
|
|
@@ -4428,8 +4436,9 @@ var LeaferUI = function(exports) {
|
|
|
4428
4436
|
};
|
|
4429
4437
|
const L = LeafHelper;
|
|
4430
4438
|
const {updateAllMatrix: updateAllMatrix$3, updateMatrix: updateMatrix$2, updateAllWorldOpacity: updateAllWorldOpacity, updateAllChange: updateAllChange$1, updateChange: updateChange$1} = L;
|
|
4431
|
-
function getTempLocal(t,
|
|
4432
|
-
|
|
4439
|
+
function getTempLocal(t, worldPoint) {
|
|
4440
|
+
t.updateLayout();
|
|
4441
|
+
return t.parent ? PointHelper.tempToInnerOf(worldPoint, t.parent.scrollWorldTransform) : worldPoint;
|
|
4433
4442
|
}
|
|
4434
4443
|
const LeafBoundsHelper = {
|
|
4435
4444
|
worldBounds(target) {
|
|
@@ -4876,7 +4885,7 @@ var LeaferUI = function(exports) {
|
|
|
4876
4885
|
}
|
|
4877
4886
|
boxChange() {
|
|
4878
4887
|
this.boxChanged = true;
|
|
4879
|
-
this.localBoxChanged || this.localBoxChange();
|
|
4888
|
+
this.localBoxChanged ? this.boundsChanged || (this.boundsChanged = true) : this.localBoxChange();
|
|
4880
4889
|
this.hitCanvasChanged = true;
|
|
4881
4890
|
}
|
|
4882
4891
|
localBoxChange() {
|
|
@@ -4910,7 +4919,7 @@ var LeaferUI = function(exports) {
|
|
|
4910
4919
|
}
|
|
4911
4920
|
matrixChange() {
|
|
4912
4921
|
this.matrixChanged = true;
|
|
4913
|
-
this.localBoxChanged || this.localBoxChange();
|
|
4922
|
+
this.localBoxChanged ? this.boundsChanged || (this.boundsChanged = true) : this.localBoxChange();
|
|
4914
4923
|
}
|
|
4915
4924
|
surfaceChange() {
|
|
4916
4925
|
this.surfaceChanged = true;
|
|
@@ -5354,7 +5363,7 @@ var LeaferUI = function(exports) {
|
|
|
5354
5363
|
const {updateMatrix: updateMatrix$1, updateAllMatrix: updateAllMatrix$2} = LeafHelper;
|
|
5355
5364
|
const {updateBounds: updateBounds$1} = BranchHelper;
|
|
5356
5365
|
const {toOuterOf: toOuterOf$1, copyAndSpread: copyAndSpread$1, copy: copy$3} = BoundsHelper;
|
|
5357
|
-
const {toBounds: toBounds
|
|
5366
|
+
const {toBounds: toBounds} = PathBounds;
|
|
5358
5367
|
const LeafBounds = {
|
|
5359
5368
|
__updateWorldBounds() {
|
|
5360
5369
|
const layout = this.__layout;
|
|
@@ -5425,8 +5434,8 @@ var LeaferUI = function(exports) {
|
|
|
5425
5434
|
__updateBoxBounds(_secondLayout, _bounds) {
|
|
5426
5435
|
const b = this.__layout.boxBounds;
|
|
5427
5436
|
const data = this.__;
|
|
5428
|
-
if (data.
|
|
5429
|
-
toBounds
|
|
5437
|
+
if (data.__usePathBox) {
|
|
5438
|
+
toBounds(data.path, b);
|
|
5430
5439
|
} else {
|
|
5431
5440
|
b.x = 0;
|
|
5432
5441
|
b.y = 0;
|
|
@@ -5884,10 +5893,10 @@ var LeaferUI = function(exports) {
|
|
|
5884
5893
|
relative.innerToWorld(world, to, distance);
|
|
5885
5894
|
world = to ? to : world;
|
|
5886
5895
|
}
|
|
5887
|
-
toInnerPoint(this.
|
|
5896
|
+
toInnerPoint(this.scrollWorldTransform, world, to, distance);
|
|
5888
5897
|
}
|
|
5889
5898
|
innerToWorld(inner, to, distance, relative) {
|
|
5890
|
-
toOuterPoint(this.
|
|
5899
|
+
toOuterPoint(this.scrollWorldTransform, inner, to, distance);
|
|
5891
5900
|
if (relative) relative.worldToInner(to ? to : inner, null, distance);
|
|
5892
5901
|
}
|
|
5893
5902
|
getBoxPoint(world, relative, distance, change) {
|
|
@@ -6341,7 +6350,7 @@ var LeaferUI = function(exports) {
|
|
|
6341
6350
|
this.levelMap = null;
|
|
6342
6351
|
}
|
|
6343
6352
|
}
|
|
6344
|
-
const version = "1.9.
|
|
6353
|
+
const version = "1.9.5";
|
|
6345
6354
|
const debug$4 = Debug.get("LeaferCanvas");
|
|
6346
6355
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6347
6356
|
set zIndex(zIndex) {
|
|
@@ -6430,10 +6439,22 @@ var LeaferUI = function(exports) {
|
|
|
6430
6439
|
updateViewSize() {
|
|
6431
6440
|
const {width: width, height: height, pixelRatio: pixelRatio} = this;
|
|
6432
6441
|
const {style: style} = this.view;
|
|
6433
|
-
|
|
6434
|
-
|
|
6435
|
-
|
|
6436
|
-
|
|
6442
|
+
if (this.unreal) {
|
|
6443
|
+
const {config: config, autoWidthStr: autoWidthStr, autoHeightStr: autoHeightStr} = this;
|
|
6444
|
+
if (config.width) {
|
|
6445
|
+
if (isUndefined(autoWidthStr)) this.autoWidthStr = style.width || "";
|
|
6446
|
+
style.width = config.width + "px";
|
|
6447
|
+
} else if (!isUndefined(autoWidthStr)) style.width = autoWidthStr;
|
|
6448
|
+
if (config.height) {
|
|
6449
|
+
if (isUndefined(autoHeightStr)) this.autoHeightStr = style.height || "";
|
|
6450
|
+
style.height = config.height + "px";
|
|
6451
|
+
} else if (!isUndefined(autoHeightStr)) style.height = autoHeightStr;
|
|
6452
|
+
} else {
|
|
6453
|
+
style.width = width + "px";
|
|
6454
|
+
style.height = height + "px";
|
|
6455
|
+
this.view.width = Math.ceil(width * pixelRatio);
|
|
6456
|
+
this.view.height = Math.ceil(height * pixelRatio);
|
|
6457
|
+
}
|
|
6437
6458
|
}
|
|
6438
6459
|
updateClientBounds() {
|
|
6439
6460
|
if (this.view.parentElement) this.clientBounds = this.view.getBoundingClientRect();
|
|
@@ -6442,6 +6463,7 @@ var LeaferUI = function(exports) {
|
|
|
6442
6463
|
this.resizeListener = listener;
|
|
6443
6464
|
if (autoBounds) {
|
|
6444
6465
|
this.autoBounds = autoBounds;
|
|
6466
|
+
if (this.resizeObserver) return;
|
|
6445
6467
|
try {
|
|
6446
6468
|
this.resizeObserver = new ResizeObserver(entries => {
|
|
6447
6469
|
this.updateClientBounds();
|
|
@@ -6458,18 +6480,10 @@ var LeaferUI = function(exports) {
|
|
|
6458
6480
|
} catch (_a) {
|
|
6459
6481
|
this.imitateResizeObserver();
|
|
6460
6482
|
}
|
|
6483
|
+
this.stopListenPixelRatio();
|
|
6461
6484
|
} else {
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
if (!this.config.pixelRatio && this.pixelRatio !== pixelRatio) {
|
|
6465
|
-
const {width: width, height: height} = this;
|
|
6466
|
-
this.emitResize({
|
|
6467
|
-
width: width,
|
|
6468
|
-
height: height,
|
|
6469
|
-
pixelRatio: pixelRatio
|
|
6470
|
-
});
|
|
6471
|
-
}
|
|
6472
|
-
});
|
|
6485
|
+
this.listenPixelRatio();
|
|
6486
|
+
if (this.unreal) this.updateViewSize();
|
|
6473
6487
|
}
|
|
6474
6488
|
}
|
|
6475
6489
|
imitateResizeObserver() {
|
|
@@ -6478,6 +6492,25 @@ var LeaferUI = function(exports) {
|
|
|
6478
6492
|
Platform.requestRender(this.imitateResizeObserver.bind(this));
|
|
6479
6493
|
}
|
|
6480
6494
|
}
|
|
6495
|
+
listenPixelRatio() {
|
|
6496
|
+
if (!this.windowListener) window.addEventListener("resize", this.windowListener = () => {
|
|
6497
|
+
const pixelRatio = Platform.devicePixelRatio;
|
|
6498
|
+
if (!this.config.pixelRatio && this.pixelRatio !== pixelRatio) {
|
|
6499
|
+
const {width: width, height: height} = this;
|
|
6500
|
+
this.emitResize({
|
|
6501
|
+
width: width,
|
|
6502
|
+
height: height,
|
|
6503
|
+
pixelRatio: pixelRatio
|
|
6504
|
+
});
|
|
6505
|
+
}
|
|
6506
|
+
});
|
|
6507
|
+
}
|
|
6508
|
+
stopListenPixelRatio() {
|
|
6509
|
+
if (this.windowListener) {
|
|
6510
|
+
window.removeEventListener("resize", this.windowListener);
|
|
6511
|
+
this.windowListener = null;
|
|
6512
|
+
}
|
|
6513
|
+
}
|
|
6481
6514
|
checkAutoBounds(parentSize) {
|
|
6482
6515
|
const view = this.view;
|
|
6483
6516
|
const {x: x, y: y, width: width, height: height} = this.autoBounds.getBoundsFrom(parentSize);
|
|
@@ -6515,10 +6548,7 @@ var LeaferUI = function(exports) {
|
|
|
6515
6548
|
destroy() {
|
|
6516
6549
|
if (this.view) {
|
|
6517
6550
|
this.stopAutoLayout();
|
|
6518
|
-
|
|
6519
|
-
window.removeEventListener("resize", this.windowListener);
|
|
6520
|
-
this.windowListener = null;
|
|
6521
|
-
}
|
|
6551
|
+
this.stopListenPixelRatio();
|
|
6522
6552
|
if (!this.unreal) {
|
|
6523
6553
|
const view = this.view;
|
|
6524
6554
|
if (view.parentElement) view.remove();
|
|
@@ -6922,7 +6952,7 @@ var LeaferUI = function(exports) {
|
|
|
6922
6952
|
this.times = 0;
|
|
6923
6953
|
this.config = {
|
|
6924
6954
|
usePartRender: true,
|
|
6925
|
-
maxFPS:
|
|
6955
|
+
maxFPS: 120
|
|
6926
6956
|
};
|
|
6927
6957
|
this.target = target;
|
|
6928
6958
|
this.canvas = canvas;
|
|
@@ -7077,11 +7107,15 @@ var LeaferUI = function(exports) {
|
|
|
7077
7107
|
if (this.requestTime || !target) return;
|
|
7078
7108
|
if (target.parentApp) return target.parentApp.requestRender(false);
|
|
7079
7109
|
const requestTime = this.requestTime = Date.now();
|
|
7080
|
-
|
|
7081
|
-
|
|
7110
|
+
const render = () => {
|
|
7111
|
+
const nowFPS = 1e3 / (Date.now() - requestTime);
|
|
7112
|
+
const {maxFPS: maxFPS} = this.config;
|
|
7113
|
+
if (maxFPS && nowFPS > maxFPS - .5) return Platform.requestRender(render);
|
|
7114
|
+
this.FPS = Math.min(120, Math.ceil(nowFPS));
|
|
7082
7115
|
this.requestTime = 0;
|
|
7083
7116
|
this.checkRender();
|
|
7084
|
-
}
|
|
7117
|
+
};
|
|
7118
|
+
Platform.requestRender(render);
|
|
7085
7119
|
}
|
|
7086
7120
|
__onResize(e) {
|
|
7087
7121
|
if (this.canvas.unreal) return;
|
|
@@ -7124,7 +7158,8 @@ var LeaferUI = function(exports) {
|
|
|
7124
7158
|
if (this.target) {
|
|
7125
7159
|
this.stop();
|
|
7126
7160
|
this.__removeListenEvents();
|
|
7127
|
-
this.
|
|
7161
|
+
this.config = {};
|
|
7162
|
+
this.target = this.canvas = null;
|
|
7128
7163
|
}
|
|
7129
7164
|
}
|
|
7130
7165
|
}
|
|
@@ -7401,7 +7436,11 @@ var LeaferUI = function(exports) {
|
|
|
7401
7436
|
}
|
|
7402
7437
|
}
|
|
7403
7438
|
class FrameData extends BoxData {}
|
|
7404
|
-
class LineData extends UIData {
|
|
7439
|
+
class LineData extends UIData {
|
|
7440
|
+
get __usePathBox() {
|
|
7441
|
+
return this.points || this.__pathInputed;
|
|
7442
|
+
}
|
|
7443
|
+
}
|
|
7405
7444
|
class RectData extends UIData {
|
|
7406
7445
|
get __boxStroke() {
|
|
7407
7446
|
return !this.__pathInputed;
|
|
@@ -7412,7 +7451,7 @@ var LeaferUI = function(exports) {
|
|
|
7412
7451
|
return !this.__pathInputed;
|
|
7413
7452
|
}
|
|
7414
7453
|
}
|
|
7415
|
-
class PolygonData extends
|
|
7454
|
+
class PolygonData extends LineData {}
|
|
7416
7455
|
class StarData extends UIData {}
|
|
7417
7456
|
class PathData extends UIData {
|
|
7418
7457
|
get __pathInputed() {
|
|
@@ -7706,20 +7745,9 @@ var LeaferUI = function(exports) {
|
|
|
7706
7745
|
if (!path) this.__drawPathByBox(pen);
|
|
7707
7746
|
return pen;
|
|
7708
7747
|
}
|
|
7709
|
-
constructor(data) {
|
|
7710
|
-
super(data);
|
|
7711
|
-
}
|
|
7712
7748
|
reset(_data) {}
|
|
7713
|
-
set(data,
|
|
7714
|
-
if (data)
|
|
7715
|
-
if (transition) {
|
|
7716
|
-
if (transition === "temp") {
|
|
7717
|
-
this.lockNormalStyle = true;
|
|
7718
|
-
Object.assign(this, data);
|
|
7719
|
-
this.lockNormalStyle = false;
|
|
7720
|
-
} else this.animate(data, transition);
|
|
7721
|
-
} else Object.assign(this, data);
|
|
7722
|
-
}
|
|
7749
|
+
set(data, _transition) {
|
|
7750
|
+
if (data) Object.assign(this, data);
|
|
7723
7751
|
}
|
|
7724
7752
|
get(name) {
|
|
7725
7753
|
return isString(name) ? this.__.__getInput(name) : this.__.__getInputData(name);
|
|
@@ -7765,7 +7793,7 @@ var LeaferUI = function(exports) {
|
|
|
7765
7793
|
const data = this.__;
|
|
7766
7794
|
if (data.path) {
|
|
7767
7795
|
data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
|
|
7768
|
-
if (data.__useArrow) PathArrow.addArrows(this
|
|
7796
|
+
if (data.__useArrow) PathArrow.addArrows(this);
|
|
7769
7797
|
} else data.__pathForRender && (data.__pathForRender = undefined);
|
|
7770
7798
|
}
|
|
7771
7799
|
__drawRenderPath(canvas) {
|
|
@@ -7789,7 +7817,8 @@ var LeaferUI = function(exports) {
|
|
|
7789
7817
|
drawImagePlaceholder(canvas, _image) {
|
|
7790
7818
|
Paint.fill(this.__.placeholderColor, this, canvas);
|
|
7791
7819
|
}
|
|
7792
|
-
animate(
|
|
7820
|
+
animate(keyframe, _options, _type, _isTemp) {
|
|
7821
|
+
this.set(keyframe);
|
|
7793
7822
|
return Plugin.need("animate");
|
|
7794
7823
|
}
|
|
7795
7824
|
killAnimate(_type, _nextStyle) {}
|
|
@@ -7903,9 +7932,6 @@ var LeaferUI = function(exports) {
|
|
|
7903
7932
|
get isBranch() {
|
|
7904
7933
|
return true;
|
|
7905
7934
|
}
|
|
7906
|
-
constructor(data) {
|
|
7907
|
-
super(data);
|
|
7908
|
-
}
|
|
7909
7935
|
reset(data) {
|
|
7910
7936
|
this.__setBranch();
|
|
7911
7937
|
super.reset(data);
|
|
@@ -8023,7 +8049,7 @@ var LeaferUI = function(exports) {
|
|
|
8023
8049
|
const canvas = this.canvas = Creator.canvas(config);
|
|
8024
8050
|
this.__controllers.push(this.renderer = Creator.renderer(this, canvas, config), this.watcher = Creator.watcher(this, config), this.layouter = Creator.layouter(this, config));
|
|
8025
8051
|
if (this.isApp) this.__setApp();
|
|
8026
|
-
this.__checkAutoLayout(
|
|
8052
|
+
this.__checkAutoLayout();
|
|
8027
8053
|
this.view = canvas.view;
|
|
8028
8054
|
if (!parentApp) {
|
|
8029
8055
|
this.selector = Creator.selector(this);
|
|
@@ -8122,7 +8148,8 @@ var LeaferUI = function(exports) {
|
|
|
8122
8148
|
this.leafer = leafer;
|
|
8123
8149
|
this.__level = 1;
|
|
8124
8150
|
}
|
|
8125
|
-
__checkAutoLayout(
|
|
8151
|
+
__checkAutoLayout() {
|
|
8152
|
+
const {config: config, parentApp: parentApp} = this;
|
|
8126
8153
|
if (!parentApp) {
|
|
8127
8154
|
if (!config.width || !config.height) this.autoLayout = new AutoBounds(config);
|
|
8128
8155
|
this.canvas.startAutoLayout(this.autoLayout, this.__onResize.bind(this));
|
|
@@ -8148,9 +8175,10 @@ var LeaferUI = function(exports) {
|
|
|
8148
8175
|
return super.__getAttr(attrName);
|
|
8149
8176
|
}
|
|
8150
8177
|
__changeCanvasSize(attrName, newValue) {
|
|
8151
|
-
const
|
|
8152
|
-
data
|
|
8153
|
-
|
|
8178
|
+
const {config: config, canvas: canvas} = this;
|
|
8179
|
+
const data = DataHelper.copyAttrs({}, canvas, canvasSizeAttrs);
|
|
8180
|
+
data[attrName] = config[attrName] = newValue;
|
|
8181
|
+
config.width && config.height ? canvas.stopAutoLayout() : this.__checkAutoLayout();
|
|
8154
8182
|
this.__doResize(data);
|
|
8155
8183
|
}
|
|
8156
8184
|
__changeFill(newValue) {
|
|
@@ -8297,9 +8325,9 @@ var LeaferUI = function(exports) {
|
|
|
8297
8325
|
if (!this.parent) {
|
|
8298
8326
|
if (this.selector) this.selector.destroy();
|
|
8299
8327
|
if (this.hitCanvasManager) this.hitCanvasManager.destroy();
|
|
8300
|
-
this.canvasManager.destroy();
|
|
8328
|
+
if (this.canvasManager) this.canvasManager.destroy();
|
|
8301
8329
|
}
|
|
8302
|
-
this.canvas.destroy();
|
|
8330
|
+
if (this.canvas) this.canvas.destroy();
|
|
8303
8331
|
this.config.view = this.view = this.parentApp = null;
|
|
8304
8332
|
if (this.userConfig) this.userConfig.view = null;
|
|
8305
8333
|
super.destroy();
|
|
@@ -8322,9 +8350,6 @@ var LeaferUI = function(exports) {
|
|
|
8322
8350
|
get __tag() {
|
|
8323
8351
|
return "Rect";
|
|
8324
8352
|
}
|
|
8325
|
-
constructor(data) {
|
|
8326
|
-
super(data);
|
|
8327
|
-
}
|
|
8328
8353
|
};
|
|
8329
8354
|
__decorate([ dataProcessor(RectData) ], exports.Rect.prototype, "__", void 0);
|
|
8330
8355
|
exports.Rect = __decorate([ useModule(RectRender), rewriteAble(), registerUI() ], exports.Rect);
|
|
@@ -8373,29 +8398,24 @@ var LeaferUI = function(exports) {
|
|
|
8373
8398
|
}
|
|
8374
8399
|
__updateStrokeBounds() {}
|
|
8375
8400
|
__updateRenderBounds() {
|
|
8376
|
-
let isOverflow;
|
|
8401
|
+
let isOverflow, isScrollMode;
|
|
8377
8402
|
if (this.children.length) {
|
|
8378
|
-
const data = this.__, layout = this.__layout, {renderBounds: renderBounds, boxBounds: boxBounds} = layout;
|
|
8403
|
+
const data = this.__, layout = this.__layout, {renderBounds: renderBounds, boxBounds: boxBounds} = layout, {overflow: overflow} = data;
|
|
8379
8404
|
const childrenRenderBounds = layout.childrenRenderBounds || (layout.childrenRenderBounds = getBoundsData());
|
|
8380
8405
|
super.__updateRenderBounds(childrenRenderBounds);
|
|
8381
|
-
if (
|
|
8406
|
+
if (isScrollMode = overflow.includes("scroll")) {
|
|
8382
8407
|
add(childrenRenderBounds, boxBounds);
|
|
8383
8408
|
scroll(childrenRenderBounds, data);
|
|
8384
8409
|
}
|
|
8385
8410
|
this.__updateRectRenderBounds();
|
|
8386
8411
|
isOverflow = !includes$1(boxBounds, childrenRenderBounds);
|
|
8387
|
-
if (isOverflow &&
|
|
8412
|
+
if (isOverflow && overflow === "show") add(renderBounds, childrenRenderBounds);
|
|
8388
8413
|
} else this.__updateRectRenderBounds();
|
|
8389
8414
|
DataHelper.stintSet(this, "isOverflow", isOverflow);
|
|
8390
|
-
this.__checkScroll();
|
|
8415
|
+
this.__checkScroll(isScrollMode);
|
|
8391
8416
|
}
|
|
8392
8417
|
__updateRectRenderBounds() {}
|
|
8393
|
-
|
|
8394
|
-
if (this.hasScroller) this.__updateScroll();
|
|
8395
|
-
super.__updateWorldBounds();
|
|
8396
|
-
}
|
|
8397
|
-
__checkScroll() {}
|
|
8398
|
-
__updateScroll() {}
|
|
8418
|
+
__checkScroll(_isScrollMode) {}
|
|
8399
8419
|
__updateRectChange() {}
|
|
8400
8420
|
__updateChange() {
|
|
8401
8421
|
super.__updateChange();
|
|
@@ -8441,9 +8461,6 @@ var LeaferUI = function(exports) {
|
|
|
8441
8461
|
get isFrame() {
|
|
8442
8462
|
return true;
|
|
8443
8463
|
}
|
|
8444
|
-
constructor(data) {
|
|
8445
|
-
super(data);
|
|
8446
|
-
}
|
|
8447
8464
|
};
|
|
8448
8465
|
__decorate([ dataProcessor(FrameData) ], exports.Frame.prototype, "__", void 0);
|
|
8449
8466
|
__decorate([ surfaceType("#FFFFFF") ], exports.Frame.prototype, "fill", void 0);
|
|
@@ -8454,9 +8471,6 @@ var LeaferUI = function(exports) {
|
|
|
8454
8471
|
get __tag() {
|
|
8455
8472
|
return "Ellipse";
|
|
8456
8473
|
}
|
|
8457
|
-
constructor(data) {
|
|
8458
|
-
super(data);
|
|
8459
|
-
}
|
|
8460
8474
|
__updatePath() {
|
|
8461
8475
|
const {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} = this.__;
|
|
8462
8476
|
const rx = width / 2, ry = height / 2;
|
|
@@ -8492,7 +8506,6 @@ var LeaferUI = function(exports) {
|
|
|
8492
8506
|
exports.Ellipse = __decorate([ registerUI() ], exports.Ellipse);
|
|
8493
8507
|
const {moveTo: moveTo$2, lineTo: lineTo$2, drawPoints: drawPoints$1} = PathCommandDataHelper;
|
|
8494
8508
|
const {rotate: rotate$1, getAngle: getAngle$1, getDistance: getDistance$2, defaultPoint: defaultPoint} = PointHelper;
|
|
8495
|
-
const {toBounds: toBounds} = PathBounds;
|
|
8496
8509
|
exports.Line = class Line extends exports.UI {
|
|
8497
8510
|
get __tag() {
|
|
8498
8511
|
return "Line";
|
|
@@ -8509,31 +8522,16 @@ var LeaferUI = function(exports) {
|
|
|
8509
8522
|
this.rotation = getAngle$1(defaultPoint, value);
|
|
8510
8523
|
if (this.height) this.height = 0;
|
|
8511
8524
|
}
|
|
8512
|
-
constructor(data) {
|
|
8513
|
-
super(data);
|
|
8514
|
-
}
|
|
8515
8525
|
__updatePath() {
|
|
8516
8526
|
const data = this.__;
|
|
8517
8527
|
const path = data.path = [];
|
|
8518
8528
|
if (data.points) {
|
|
8519
|
-
drawPoints$1(path, data.points,
|
|
8529
|
+
drawPoints$1(path, data.points, data.curve, data.closed);
|
|
8520
8530
|
} else {
|
|
8521
8531
|
moveTo$2(path, 0, 0);
|
|
8522
8532
|
lineTo$2(path, this.width, 0);
|
|
8523
8533
|
}
|
|
8524
8534
|
}
|
|
8525
|
-
__updateRenderPath() {
|
|
8526
|
-
const data = this.__;
|
|
8527
|
-
if (!this.pathInputed && data.points && data.curve) {
|
|
8528
|
-
drawPoints$1(data.__pathForRender = [], data.points, data.curve, data.closed);
|
|
8529
|
-
if (data.__useArrow) PathArrow.addArrows(this, false);
|
|
8530
|
-
} else super.__updateRenderPath();
|
|
8531
|
-
}
|
|
8532
|
-
__updateBoxBounds() {
|
|
8533
|
-
if (this.points) {
|
|
8534
|
-
toBounds(this.__.__pathForRender, this.__layout.boxBounds);
|
|
8535
|
-
} else super.__updateBoxBounds();
|
|
8536
|
-
}
|
|
8537
8535
|
};
|
|
8538
8536
|
__decorate([ dataProcessor(LineData) ], exports.Line.prototype, "__", void 0);
|
|
8539
8537
|
__decorate([ affectStrokeBoundsType("center") ], exports.Line.prototype, "strokeAlign", void 0);
|
|
@@ -8549,15 +8547,13 @@ var LeaferUI = function(exports) {
|
|
|
8549
8547
|
get __tag() {
|
|
8550
8548
|
return "Polygon";
|
|
8551
8549
|
}
|
|
8552
|
-
constructor(data) {
|
|
8553
|
-
super(data);
|
|
8554
|
-
}
|
|
8555
8550
|
__updatePath() {
|
|
8556
|
-
const
|
|
8557
|
-
|
|
8558
|
-
|
|
8551
|
+
const data = this.__;
|
|
8552
|
+
const path = data.path = [];
|
|
8553
|
+
if (data.points) {
|
|
8554
|
+
drawPoints(path, data.points, data.curve, true);
|
|
8559
8555
|
} else {
|
|
8560
|
-
const {width: width, height: height, sides: sides} =
|
|
8556
|
+
const {width: width, height: height, sides: sides} = data;
|
|
8561
8557
|
const rx = width / 2, ry = height / 2;
|
|
8562
8558
|
moveTo$1(path, rx, 0);
|
|
8563
8559
|
for (let i = 1; i < sides; i++) {
|
|
@@ -8582,9 +8578,6 @@ var LeaferUI = function(exports) {
|
|
|
8582
8578
|
get __tag() {
|
|
8583
8579
|
return "Star";
|
|
8584
8580
|
}
|
|
8585
|
-
constructor(data) {
|
|
8586
|
-
super(data);
|
|
8587
|
-
}
|
|
8588
8581
|
__updatePath() {
|
|
8589
8582
|
const {width: width, height: height, corners: corners, innerRadius: innerRadius} = this.__;
|
|
8590
8583
|
const rx = width / 2, ry = height / 2;
|
|
@@ -8612,9 +8605,6 @@ var LeaferUI = function(exports) {
|
|
|
8612
8605
|
const {fill: fill} = this.__;
|
|
8613
8606
|
return isArray(fill) && fill[0].image;
|
|
8614
8607
|
}
|
|
8615
|
-
constructor(data) {
|
|
8616
|
-
super(data);
|
|
8617
|
-
}
|
|
8618
8608
|
};
|
|
8619
8609
|
__decorate([ dataProcessor(ImageData) ], exports.Image.prototype, "__", void 0);
|
|
8620
8610
|
__decorate([ boundsType("") ], exports.Image.prototype, "url", void 0);
|
|
@@ -8699,9 +8689,6 @@ var LeaferUI = function(exports) {
|
|
|
8699
8689
|
this.updateLayout();
|
|
8700
8690
|
return this.__.__textDrawData;
|
|
8701
8691
|
}
|
|
8702
|
-
constructor(data) {
|
|
8703
|
-
super(data);
|
|
8704
|
-
}
|
|
8705
8692
|
__updateTextDrawData() {
|
|
8706
8693
|
const data = this.__;
|
|
8707
8694
|
const {lineHeight: lineHeight, letterSpacing: letterSpacing, fontFamily: fontFamily, fontSize: fontSize, fontWeight: fontWeight, italic: italic, textCase: textCase, textOverflow: textOverflow, padding: padding} = data;
|
|
@@ -8805,9 +8792,6 @@ var LeaferUI = function(exports) {
|
|
|
8805
8792
|
get __tag() {
|
|
8806
8793
|
return "Path";
|
|
8807
8794
|
}
|
|
8808
|
-
constructor(data) {
|
|
8809
|
-
super(data);
|
|
8810
|
-
}
|
|
8811
8795
|
};
|
|
8812
8796
|
__decorate([ dataProcessor(PathData) ], exports.Path.prototype, "__", void 0);
|
|
8813
8797
|
__decorate([ affectStrokeBoundsType("center") ], exports.Path.prototype, "strokeAlign", void 0);
|
|
@@ -8816,9 +8800,6 @@ var LeaferUI = function(exports) {
|
|
|
8816
8800
|
get __tag() {
|
|
8817
8801
|
return "Pen";
|
|
8818
8802
|
}
|
|
8819
|
-
constructor(data) {
|
|
8820
|
-
super(data);
|
|
8821
|
-
}
|
|
8822
8803
|
setStyle(data) {
|
|
8823
8804
|
const path = this.pathElement = new exports.Path(data);
|
|
8824
8805
|
this.pathStyle = data;
|
|
@@ -9464,7 +9445,7 @@ var LeaferUI = function(exports) {
|
|
|
9464
9445
|
if (leafer && leafer.viewReady) leafer.renderer.ignore = value;
|
|
9465
9446
|
}
|
|
9466
9447
|
const {get: get$1, scale: scale, copy: copy$1} = MatrixHelper;
|
|
9467
|
-
const {floor: floor, max: max, abs: abs} = Math;
|
|
9448
|
+
const {floor: floor, ceil: ceil, max: max, abs: abs} = Math;
|
|
9468
9449
|
function createPattern(ui, paint, pixelRatio) {
|
|
9469
9450
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
9470
9451
|
const id = scaleX + "-" + scaleY + "-" + pixelRatio;
|
|
@@ -9473,8 +9454,6 @@ var LeaferUI = function(exports) {
|
|
|
9473
9454
|
let imageScale, imageMatrix, {width: width, height: height, scaleX: sx, scaleY: sy, transform: transform, repeat: repeat, gap: gap} = data;
|
|
9474
9455
|
scaleX *= pixelRatio;
|
|
9475
9456
|
scaleY *= pixelRatio;
|
|
9476
|
-
const xGap = gap && gap.x * scaleX;
|
|
9477
|
-
const yGap = gap && gap.y * scaleY;
|
|
9478
9457
|
if (sx) {
|
|
9479
9458
|
sx = abs(sx);
|
|
9480
9459
|
sy = abs(sy);
|
|
@@ -9491,7 +9470,10 @@ var LeaferUI = function(exports) {
|
|
|
9491
9470
|
if (size > Platform.image.maxCacheSize) return false;
|
|
9492
9471
|
}
|
|
9493
9472
|
let maxSize = Platform.image.maxPatternSize;
|
|
9494
|
-
if (
|
|
9473
|
+
if (image.isSVG) {
|
|
9474
|
+
const ws = width / image.width;
|
|
9475
|
+
if (ws > 1) imageScale = ws / ceil(ws);
|
|
9476
|
+
} else {
|
|
9495
9477
|
const imageSize = image.width * image.height;
|
|
9496
9478
|
if (maxSize > imageSize) maxSize = imageSize;
|
|
9497
9479
|
}
|
|
@@ -9506,18 +9488,20 @@ var LeaferUI = function(exports) {
|
|
|
9506
9488
|
scaleX /= sx;
|
|
9507
9489
|
scaleY /= sy;
|
|
9508
9490
|
}
|
|
9491
|
+
const xGap = gap && gap.x * scaleX;
|
|
9492
|
+
const yGap = gap && gap.y * scaleY;
|
|
9509
9493
|
if (transform || scaleX !== 1 || scaleY !== 1) {
|
|
9494
|
+
const canvasWidth = width + (xGap || 0);
|
|
9495
|
+
const canvasHeight = height + (yGap || 0);
|
|
9496
|
+
scaleX /= canvasWidth / max(floor(canvasWidth), 1);
|
|
9497
|
+
scaleY /= canvasHeight / max(floor(canvasHeight), 1);
|
|
9510
9498
|
if (!imageMatrix) {
|
|
9511
9499
|
imageMatrix = get$1();
|
|
9512
9500
|
if (transform) copy$1(imageMatrix, transform);
|
|
9513
9501
|
}
|
|
9514
9502
|
scale(imageMatrix, 1 / scaleX, 1 / scaleY);
|
|
9515
9503
|
}
|
|
9516
|
-
|
|
9517
|
-
const canvasWidth = width + (xGap || 0), canvasHeight = height + (yGap || 0);
|
|
9518
|
-
scale(imageMatrix, canvasWidth / max(floor(canvasWidth), 1), canvasHeight / max(floor(canvasHeight), 1));
|
|
9519
|
-
}
|
|
9520
|
-
const canvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap);
|
|
9504
|
+
const canvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth);
|
|
9521
9505
|
const pattern = image.getPattern(canvas, repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
|
|
9522
9506
|
paint.style = pattern;
|
|
9523
9507
|
paint.patternId = id;
|
|
@@ -10513,6 +10497,7 @@ var LeaferUI = function(exports) {
|
|
|
10513
10497
|
exports.maskType = maskType;
|
|
10514
10498
|
exports.naturalBoundsType = naturalBoundsType;
|
|
10515
10499
|
exports.opacityType = opacityType;
|
|
10500
|
+
exports.path = path;
|
|
10516
10501
|
exports.pathInputType = pathInputType;
|
|
10517
10502
|
exports.pathType = pathType;
|
|
10518
10503
|
exports.pen = pen;
|