leafer-ui 1.0.2 → 1.0.4
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/README.md +6 -4
- package/dist/web.cjs +34 -21
- package/dist/web.esm.js +35 -22
- package/dist/web.esm.min.js +1 -1
- package/dist/web.js +412 -361
- package/dist/web.min.cjs +1 -1
- package/dist/web.min.js +1 -1
- package/dist/web.module.js +409 -358
- package/dist/web.module.min.js +1 -1
- package/package.json +11 -11
package/dist/web.module.js
CHANGED
|
@@ -119,11 +119,18 @@ const MathHelper = {
|
|
|
119
119
|
scaleData.scaleX = (typeof size === 'number' ? size : size.width) / originSize.width;
|
|
120
120
|
scaleData.scaleY = (typeof size === 'number' ? size : size.height) / originSize.height;
|
|
121
121
|
}
|
|
122
|
-
else if (scale)
|
|
123
|
-
scaleData
|
|
124
|
-
scaleData.scaleY = typeof scale === 'number' ? scale : scale.y;
|
|
125
|
-
}
|
|
122
|
+
else if (scale)
|
|
123
|
+
MathHelper.assignScale(scaleData, scale);
|
|
126
124
|
return scaleData;
|
|
125
|
+
},
|
|
126
|
+
assignScale(scaleData, scale) {
|
|
127
|
+
if (typeof scale === 'number') {
|
|
128
|
+
scaleData.scaleX = scaleData.scaleY = scale;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
scaleData.scaleX = scale.x;
|
|
132
|
+
scaleData.scaleY = scale.y;
|
|
133
|
+
}
|
|
127
134
|
}
|
|
128
135
|
};
|
|
129
136
|
const OneRadian = PI$4 / 180;
|
|
@@ -1255,7 +1262,6 @@ const AroundHelper = {
|
|
|
1255
1262
|
tempPoint: {},
|
|
1256
1263
|
get: get$4,
|
|
1257
1264
|
toPoint(around, bounds, to, onlySize, pointBounds) {
|
|
1258
|
-
to || (to = {});
|
|
1259
1265
|
const point = get$4(around);
|
|
1260
1266
|
to.x = point.x;
|
|
1261
1267
|
to.y = point.y;
|
|
@@ -1390,6 +1396,10 @@ const Run = {
|
|
|
1390
1396
|
};
|
|
1391
1397
|
const R = Run;
|
|
1392
1398
|
|
|
1399
|
+
function needPlugin(name) {
|
|
1400
|
+
console.error('need plugin: @leafer-in/' + name);
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1393
1403
|
const debug$f = Debug.get('UICreator');
|
|
1394
1404
|
const UICreator = {
|
|
1395
1405
|
list: {},
|
|
@@ -1652,6 +1662,9 @@ var Answer;
|
|
|
1652
1662
|
Answer[Answer["YesAndSkip"] = 3] = "YesAndSkip";
|
|
1653
1663
|
})(Answer || (Answer = {}));
|
|
1654
1664
|
const emptyData = {};
|
|
1665
|
+
function isNull(value) {
|
|
1666
|
+
return value === undefined || value === null;
|
|
1667
|
+
}
|
|
1655
1668
|
|
|
1656
1669
|
/******************************************************************************
|
|
1657
1670
|
Copyright (c) Microsoft Corporation.
|
|
@@ -2417,7 +2430,7 @@ const BezierHelper = {
|
|
|
2417
2430
|
let startY = y = rotationSin * radiusX * startCos + rotationCos * radiusY * startSin;
|
|
2418
2431
|
let fromX = cx + x, fromY = cy + y;
|
|
2419
2432
|
if (data)
|
|
2420
|
-
data.push(L$6, fromX, fromY);
|
|
2433
|
+
data.push(data.length ? L$6 : M$5, fromX, fromY);
|
|
2421
2434
|
if (setPointBounds)
|
|
2422
2435
|
setPoint$2(setPointBounds, fromX, fromY);
|
|
2423
2436
|
if (setStartPoint)
|
|
@@ -3086,8 +3099,7 @@ const PathBounds = {
|
|
|
3086
3099
|
toTwoPointBounds(data, setPointBounds) {
|
|
3087
3100
|
if (!data || !data.length)
|
|
3088
3101
|
return setPoint$1(setPointBounds, 0, 0);
|
|
3089
|
-
let command;
|
|
3090
|
-
let i = 0, x = 0, y = 0, x1, y1, toX, toY;
|
|
3102
|
+
let i = 0, x = 0, y = 0, x1, y1, toX, toY, command;
|
|
3091
3103
|
const len = data.length;
|
|
3092
3104
|
while (i < len) {
|
|
3093
3105
|
command = data[i];
|
|
@@ -3743,7 +3755,7 @@ function autoLayoutType(defaultValue) {
|
|
|
3743
3755
|
set(value) {
|
|
3744
3756
|
if (this.__setAttr(key, value)) {
|
|
3745
3757
|
this.__layout.matrixChanged || this.__layout.matrixChange();
|
|
3746
|
-
this.__hasAutoLayout = !!
|
|
3758
|
+
this.__hasAutoLayout = !!(this.origin || this.around || this.flow);
|
|
3747
3759
|
if (!this.__local)
|
|
3748
3760
|
this.__layout.createLocal();
|
|
3749
3761
|
}
|
|
@@ -3836,14 +3848,25 @@ function visibleType(defaultValue) {
|
|
|
3836
3848
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
3837
3849
|
set(value) {
|
|
3838
3850
|
const oldValue = this.visible;
|
|
3839
|
-
if (
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
3851
|
+
if (oldValue === true && value === 0) {
|
|
3852
|
+
if (this.animationOut)
|
|
3853
|
+
return this.__runAnimation('out', () => doVisible(this, key, value, oldValue));
|
|
3854
|
+
}
|
|
3855
|
+
else if (oldValue === 0 && value === true) {
|
|
3856
|
+
if (this.animation)
|
|
3857
|
+
this.__runAnimation('in');
|
|
3843
3858
|
}
|
|
3859
|
+
doVisible(this, key, value, oldValue);
|
|
3844
3860
|
}
|
|
3845
3861
|
}));
|
|
3846
3862
|
}
|
|
3863
|
+
function doVisible(leaf, key, value, oldValue) {
|
|
3864
|
+
if (leaf.__setAttr(key, value)) {
|
|
3865
|
+
leaf.__layout.opacityChanged || leaf.__layout.opacityChange();
|
|
3866
|
+
if (oldValue === 0 || value === 0)
|
|
3867
|
+
doBoundsType(leaf);
|
|
3868
|
+
}
|
|
3869
|
+
}
|
|
3847
3870
|
function sortType(defaultValue) {
|
|
3848
3871
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
3849
3872
|
set(value) {
|
|
@@ -3927,7 +3950,16 @@ function defineDataProcessor(target, key, defaultValue) {
|
|
|
3927
3950
|
if (defaultValue === undefined) {
|
|
3928
3951
|
property.get = function () { return this[computedKey]; };
|
|
3929
3952
|
}
|
|
3930
|
-
else if (
|
|
3953
|
+
else if (typeof defaultValue === 'object') {
|
|
3954
|
+
const { clone } = DataHelper;
|
|
3955
|
+
property.get = function () {
|
|
3956
|
+
let v = this[computedKey];
|
|
3957
|
+
if (v === undefined)
|
|
3958
|
+
this[computedKey] = v = clone(defaultValue);
|
|
3959
|
+
return v;
|
|
3960
|
+
};
|
|
3961
|
+
}
|
|
3962
|
+
if (key === 'width') {
|
|
3931
3963
|
property.get = function () {
|
|
3932
3964
|
const v = this[computedKey];
|
|
3933
3965
|
if (v === undefined) {
|
|
@@ -4451,15 +4483,16 @@ class LeafLayout {
|
|
|
4451
4483
|
}
|
|
4452
4484
|
getLayoutBounds(type, relative = 'world', unscale) {
|
|
4453
4485
|
const { leaf } = this;
|
|
4454
|
-
let point, matrix, bounds = this.getInnerBounds(type);
|
|
4486
|
+
let point, matrix, layoutBounds, bounds = this.getInnerBounds(type);
|
|
4455
4487
|
switch (relative) {
|
|
4456
4488
|
case 'world':
|
|
4457
4489
|
point = leaf.getWorldPoint(bounds);
|
|
4458
4490
|
matrix = leaf.__world;
|
|
4459
4491
|
break;
|
|
4460
4492
|
case 'local':
|
|
4493
|
+
const { scaleX, scaleY, rotation, skewX, skewY } = leaf.__;
|
|
4494
|
+
layoutBounds = { scaleX, scaleY, rotation, skewX, skewY };
|
|
4461
4495
|
point = leaf.getLocalPointByInner(bounds);
|
|
4462
|
-
matrix = leaf.__localMatrix;
|
|
4463
4496
|
break;
|
|
4464
4497
|
case 'inner':
|
|
4465
4498
|
point = bounds;
|
|
@@ -4471,7 +4504,8 @@ class LeafLayout {
|
|
|
4471
4504
|
point = leaf.getWorldPoint(bounds, relative);
|
|
4472
4505
|
matrix = getRelativeWorld$1(leaf, relative, true);
|
|
4473
4506
|
}
|
|
4474
|
-
|
|
4507
|
+
if (!layoutBounds)
|
|
4508
|
+
layoutBounds = MatrixHelper.getLayout(matrix);
|
|
4475
4509
|
copy$6(layoutBounds, bounds);
|
|
4476
4510
|
PointHelper.copy(layoutBounds, point);
|
|
4477
4511
|
if (unscale) {
|
|
@@ -4594,144 +4628,6 @@ class LeafLayout {
|
|
|
4594
4628
|
destroy() { }
|
|
4595
4629
|
}
|
|
4596
4630
|
|
|
4597
|
-
const empty = {};
|
|
4598
|
-
const LeafEventer = {
|
|
4599
|
-
on(type, listener, options) {
|
|
4600
|
-
let capture, once;
|
|
4601
|
-
if (options) {
|
|
4602
|
-
if (options === 'once') {
|
|
4603
|
-
once = true;
|
|
4604
|
-
}
|
|
4605
|
-
else if (typeof options === 'boolean') {
|
|
4606
|
-
capture = options;
|
|
4607
|
-
}
|
|
4608
|
-
else {
|
|
4609
|
-
capture = options.capture;
|
|
4610
|
-
once = options.once;
|
|
4611
|
-
}
|
|
4612
|
-
}
|
|
4613
|
-
let events;
|
|
4614
|
-
const map = __getListenerMap(this, capture, true);
|
|
4615
|
-
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4616
|
-
const item = once ? { listener, once } : { listener };
|
|
4617
|
-
typeList.forEach(type => {
|
|
4618
|
-
if (type) {
|
|
4619
|
-
events = map[type];
|
|
4620
|
-
if (events) {
|
|
4621
|
-
if (events.findIndex(item => item.listener === listener) === -1)
|
|
4622
|
-
events.push(item);
|
|
4623
|
-
}
|
|
4624
|
-
else {
|
|
4625
|
-
map[type] = [item];
|
|
4626
|
-
}
|
|
4627
|
-
}
|
|
4628
|
-
});
|
|
4629
|
-
},
|
|
4630
|
-
off(type, listener, options) {
|
|
4631
|
-
if (type) {
|
|
4632
|
-
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4633
|
-
if (listener) {
|
|
4634
|
-
let capture;
|
|
4635
|
-
if (options)
|
|
4636
|
-
capture = typeof options === 'boolean' ? options : (options === 'once' ? false : options.capture);
|
|
4637
|
-
let events, index;
|
|
4638
|
-
const map = __getListenerMap(this, capture);
|
|
4639
|
-
typeList.forEach(type => {
|
|
4640
|
-
if (type) {
|
|
4641
|
-
events = map[type];
|
|
4642
|
-
if (events) {
|
|
4643
|
-
index = events.findIndex(item => item.listener === listener);
|
|
4644
|
-
if (index > -1)
|
|
4645
|
-
events.splice(index, 1);
|
|
4646
|
-
if (!events.length)
|
|
4647
|
-
delete map[type];
|
|
4648
|
-
}
|
|
4649
|
-
}
|
|
4650
|
-
});
|
|
4651
|
-
}
|
|
4652
|
-
else {
|
|
4653
|
-
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4654
|
-
typeList.forEach(type => {
|
|
4655
|
-
if (b)
|
|
4656
|
-
delete b[type];
|
|
4657
|
-
if (c)
|
|
4658
|
-
delete c[type];
|
|
4659
|
-
});
|
|
4660
|
-
}
|
|
4661
|
-
}
|
|
4662
|
-
else {
|
|
4663
|
-
this.__bubbleMap = this.__captureMap = undefined;
|
|
4664
|
-
}
|
|
4665
|
-
},
|
|
4666
|
-
on_(type, listener, bind, options) {
|
|
4667
|
-
if (bind)
|
|
4668
|
-
listener = listener.bind(bind);
|
|
4669
|
-
this.on(type, listener, options);
|
|
4670
|
-
return { type, current: this, listener, options };
|
|
4671
|
-
},
|
|
4672
|
-
off_(id) {
|
|
4673
|
-
if (!id)
|
|
4674
|
-
return;
|
|
4675
|
-
const list = id instanceof Array ? id : [id];
|
|
4676
|
-
list.forEach(item => item.current.off(item.type, item.listener, item.options));
|
|
4677
|
-
list.length = 0;
|
|
4678
|
-
},
|
|
4679
|
-
once(type, listener, capture) {
|
|
4680
|
-
this.on(type, listener, { once: true, capture });
|
|
4681
|
-
},
|
|
4682
|
-
emit(type, event, capture) {
|
|
4683
|
-
if (!event && EventCreator.has(type))
|
|
4684
|
-
event = EventCreator.get(type, { type, target: this, current: this });
|
|
4685
|
-
const map = __getListenerMap(this, capture);
|
|
4686
|
-
const list = map[type];
|
|
4687
|
-
if (list) {
|
|
4688
|
-
let item;
|
|
4689
|
-
for (let i = 0, len = list.length; i < len; i++) {
|
|
4690
|
-
item = list[i];
|
|
4691
|
-
item.listener(event);
|
|
4692
|
-
if (item.once) {
|
|
4693
|
-
this.off(type, item.listener, capture);
|
|
4694
|
-
i--, len--;
|
|
4695
|
-
}
|
|
4696
|
-
if (event && event.isStopNow)
|
|
4697
|
-
break;
|
|
4698
|
-
}
|
|
4699
|
-
}
|
|
4700
|
-
this.syncEventer && this.syncEventer.emitEvent(event, capture);
|
|
4701
|
-
},
|
|
4702
|
-
emitEvent(event, capture) {
|
|
4703
|
-
event.current = this;
|
|
4704
|
-
this.emit(event.type, event, capture);
|
|
4705
|
-
},
|
|
4706
|
-
hasEvent(type, capture) {
|
|
4707
|
-
if (this.syncEventer && this.syncEventer.hasEvent(type, capture))
|
|
4708
|
-
return true;
|
|
4709
|
-
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4710
|
-
const hasB = b && b[type], hasC = c && c[type];
|
|
4711
|
-
return !!(capture === undefined ? (hasB || hasC) : (capture ? hasC : hasB));
|
|
4712
|
-
},
|
|
4713
|
-
};
|
|
4714
|
-
function __getListenerMap(eventer, capture, create) {
|
|
4715
|
-
if (capture) {
|
|
4716
|
-
const { __captureMap: c } = eventer;
|
|
4717
|
-
if (c) {
|
|
4718
|
-
return c;
|
|
4719
|
-
}
|
|
4720
|
-
else {
|
|
4721
|
-
return create ? eventer.__captureMap = {} : empty;
|
|
4722
|
-
}
|
|
4723
|
-
}
|
|
4724
|
-
else {
|
|
4725
|
-
const { __bubbleMap: b } = eventer;
|
|
4726
|
-
if (b) {
|
|
4727
|
-
return b;
|
|
4728
|
-
}
|
|
4729
|
-
else {
|
|
4730
|
-
return create ? eventer.__bubbleMap = {} : empty;
|
|
4731
|
-
}
|
|
4732
|
-
}
|
|
4733
|
-
}
|
|
4734
|
-
|
|
4735
4631
|
class Event {
|
|
4736
4632
|
constructor(type, target) {
|
|
4737
4633
|
this.bubbles = false;
|
|
@@ -4766,7 +4662,10 @@ class ChildEvent extends Event {
|
|
|
4766
4662
|
}
|
|
4767
4663
|
ChildEvent.ADD = 'child.add';
|
|
4768
4664
|
ChildEvent.REMOVE = 'child.remove';
|
|
4769
|
-
ChildEvent.
|
|
4665
|
+
ChildEvent.CREATED = 'created';
|
|
4666
|
+
ChildEvent.MOUNTED = 'mounted';
|
|
4667
|
+
ChildEvent.UNMOUNTED = 'unmounted';
|
|
4668
|
+
ChildEvent.DESTROY = 'destroy';
|
|
4770
4669
|
|
|
4771
4670
|
class PropertyEvent extends Event {
|
|
4772
4671
|
constructor(type, target, attrName, oldValue, newValue) {
|
|
@@ -4844,10 +4743,6 @@ LayoutEvent.AFTER = 'layout.after';
|
|
|
4844
4743
|
LayoutEvent.AGAIN = 'layout.again';
|
|
4845
4744
|
LayoutEvent.END = 'layout.end';
|
|
4846
4745
|
|
|
4847
|
-
class AnimateEvent extends Event {
|
|
4848
|
-
}
|
|
4849
|
-
AnimateEvent.FRAME = 'animate.frame';
|
|
4850
|
-
|
|
4851
4746
|
class RenderEvent extends Event {
|
|
4852
4747
|
constructor(type, times, bounds, options) {
|
|
4853
4748
|
super(type);
|
|
@@ -4880,6 +4775,157 @@ LeaferEvent.STOP = 'leafer.stop';
|
|
|
4880
4775
|
LeaferEvent.RESTART = 'leafer.restart';
|
|
4881
4776
|
LeaferEvent.END = 'leafer.end';
|
|
4882
4777
|
|
|
4778
|
+
const empty = {};
|
|
4779
|
+
class Eventer {
|
|
4780
|
+
set event(map) { this.on(map); }
|
|
4781
|
+
on(type, listener, options) {
|
|
4782
|
+
if (!listener) {
|
|
4783
|
+
let event, map = type;
|
|
4784
|
+
for (let key in map)
|
|
4785
|
+
event = map[key], event instanceof Array ? this.on(key, event[0], event[1]) : this.on(key, event);
|
|
4786
|
+
return;
|
|
4787
|
+
}
|
|
4788
|
+
let capture, once;
|
|
4789
|
+
if (options) {
|
|
4790
|
+
if (options === 'once') {
|
|
4791
|
+
once = true;
|
|
4792
|
+
}
|
|
4793
|
+
else if (typeof options === 'boolean') {
|
|
4794
|
+
capture = options;
|
|
4795
|
+
}
|
|
4796
|
+
else {
|
|
4797
|
+
capture = options.capture;
|
|
4798
|
+
once = options.once;
|
|
4799
|
+
}
|
|
4800
|
+
}
|
|
4801
|
+
let events;
|
|
4802
|
+
const map = __getListenerMap(this, capture, true);
|
|
4803
|
+
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4804
|
+
const item = once ? { listener, once } : { listener };
|
|
4805
|
+
typeList.forEach(type => {
|
|
4806
|
+
if (type) {
|
|
4807
|
+
events = map[type];
|
|
4808
|
+
if (events) {
|
|
4809
|
+
if (events.findIndex(item => item.listener === listener) === -1)
|
|
4810
|
+
events.push(item);
|
|
4811
|
+
}
|
|
4812
|
+
else {
|
|
4813
|
+
map[type] = [item];
|
|
4814
|
+
}
|
|
4815
|
+
}
|
|
4816
|
+
});
|
|
4817
|
+
}
|
|
4818
|
+
off(type, listener, options) {
|
|
4819
|
+
if (type) {
|
|
4820
|
+
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4821
|
+
if (listener) {
|
|
4822
|
+
let capture;
|
|
4823
|
+
if (options)
|
|
4824
|
+
capture = typeof options === 'boolean' ? options : (options === 'once' ? false : options.capture);
|
|
4825
|
+
let events, index;
|
|
4826
|
+
const map = __getListenerMap(this, capture);
|
|
4827
|
+
typeList.forEach(type => {
|
|
4828
|
+
if (type) {
|
|
4829
|
+
events = map[type];
|
|
4830
|
+
if (events) {
|
|
4831
|
+
index = events.findIndex(item => item.listener === listener);
|
|
4832
|
+
if (index > -1)
|
|
4833
|
+
events.splice(index, 1);
|
|
4834
|
+
if (!events.length)
|
|
4835
|
+
delete map[type];
|
|
4836
|
+
}
|
|
4837
|
+
}
|
|
4838
|
+
});
|
|
4839
|
+
}
|
|
4840
|
+
else {
|
|
4841
|
+
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4842
|
+
typeList.forEach(type => {
|
|
4843
|
+
if (b)
|
|
4844
|
+
delete b[type];
|
|
4845
|
+
if (c)
|
|
4846
|
+
delete c[type];
|
|
4847
|
+
});
|
|
4848
|
+
}
|
|
4849
|
+
}
|
|
4850
|
+
else {
|
|
4851
|
+
this.__bubbleMap = this.__captureMap = undefined;
|
|
4852
|
+
}
|
|
4853
|
+
}
|
|
4854
|
+
on_(type, listener, bind, options) {
|
|
4855
|
+
if (bind)
|
|
4856
|
+
listener = listener.bind(bind);
|
|
4857
|
+
this.on(type, listener, options);
|
|
4858
|
+
return { type, current: this, listener, options };
|
|
4859
|
+
}
|
|
4860
|
+
off_(id) {
|
|
4861
|
+
if (!id)
|
|
4862
|
+
return;
|
|
4863
|
+
const list = id instanceof Array ? id : [id];
|
|
4864
|
+
list.forEach(item => item.current.off(item.type, item.listener, item.options));
|
|
4865
|
+
list.length = 0;
|
|
4866
|
+
}
|
|
4867
|
+
once(type, listener, capture) {
|
|
4868
|
+
this.on(type, listener, { once: true, capture });
|
|
4869
|
+
}
|
|
4870
|
+
emit(type, event, capture) {
|
|
4871
|
+
if (!event && EventCreator.has(type))
|
|
4872
|
+
event = EventCreator.get(type, { type, target: this, current: this });
|
|
4873
|
+
const map = __getListenerMap(this, capture);
|
|
4874
|
+
const list = map[type];
|
|
4875
|
+
if (list) {
|
|
4876
|
+
let item;
|
|
4877
|
+
for (let i = 0, len = list.length; i < len; i++) {
|
|
4878
|
+
item = list[i];
|
|
4879
|
+
item.listener(event);
|
|
4880
|
+
if (item.once) {
|
|
4881
|
+
this.off(type, item.listener, capture);
|
|
4882
|
+
i--, len--;
|
|
4883
|
+
}
|
|
4884
|
+
if (event && event.isStopNow)
|
|
4885
|
+
break;
|
|
4886
|
+
}
|
|
4887
|
+
}
|
|
4888
|
+
this.syncEventer && this.syncEventer.emitEvent(event, capture);
|
|
4889
|
+
}
|
|
4890
|
+
emitEvent(event, capture) {
|
|
4891
|
+
event.current = this;
|
|
4892
|
+
this.emit(event.type, event, capture);
|
|
4893
|
+
}
|
|
4894
|
+
hasEvent(type, capture) {
|
|
4895
|
+
if (this.syncEventer && this.syncEventer.hasEvent(type, capture))
|
|
4896
|
+
return true;
|
|
4897
|
+
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4898
|
+
const hasB = b && b[type], hasC = c && c[type];
|
|
4899
|
+
return !!(capture === undefined ? (hasB || hasC) : (capture ? hasC : hasB));
|
|
4900
|
+
}
|
|
4901
|
+
destroy() {
|
|
4902
|
+
this.__captureMap = this.__bubbleMap = this.syncEventer = null;
|
|
4903
|
+
}
|
|
4904
|
+
}
|
|
4905
|
+
function __getListenerMap(eventer, capture, create) {
|
|
4906
|
+
if (capture) {
|
|
4907
|
+
const { __captureMap: c } = eventer;
|
|
4908
|
+
if (c) {
|
|
4909
|
+
return c;
|
|
4910
|
+
}
|
|
4911
|
+
else {
|
|
4912
|
+
return create ? eventer.__captureMap = {} : empty;
|
|
4913
|
+
}
|
|
4914
|
+
}
|
|
4915
|
+
else {
|
|
4916
|
+
const { __bubbleMap: b } = eventer;
|
|
4917
|
+
if (b) {
|
|
4918
|
+
return b;
|
|
4919
|
+
}
|
|
4920
|
+
else {
|
|
4921
|
+
return create ? eventer.__bubbleMap = {} : empty;
|
|
4922
|
+
}
|
|
4923
|
+
}
|
|
4924
|
+
}
|
|
4925
|
+
|
|
4926
|
+
const { on, on_, off, off_, once, emit: emit$2, emitEvent: emitEvent$1, hasEvent, destroy } = Eventer.prototype;
|
|
4927
|
+
const LeafEventer = { on, on_, off, off_, once, emit: emit$2, emitEvent: emitEvent$1, hasEvent, destroyEventer: destroy };
|
|
4928
|
+
|
|
4883
4929
|
const { isFinite } = Number;
|
|
4884
4930
|
const debug$8 = Debug.get('setAttr');
|
|
4885
4931
|
const LeafDataProxy = {
|
|
@@ -4891,9 +4937,7 @@ const LeafDataProxy = {
|
|
|
4891
4937
|
newValue = undefined;
|
|
4892
4938
|
}
|
|
4893
4939
|
if (typeof newValue === 'object' || oldValue !== newValue) {
|
|
4894
|
-
this.
|
|
4895
|
-
if (this.__proxyData)
|
|
4896
|
-
this.setProxyAttr(name, newValue);
|
|
4940
|
+
this.__realSetAttr(name, newValue);
|
|
4897
4941
|
const { CHANGE } = PropertyEvent;
|
|
4898
4942
|
const event = new PropertyEvent(CHANGE, this, name, oldValue, newValue);
|
|
4899
4943
|
if (this.isLeafer) {
|
|
@@ -4911,12 +4955,18 @@ const LeafDataProxy = {
|
|
|
4911
4955
|
}
|
|
4912
4956
|
}
|
|
4913
4957
|
else {
|
|
4914
|
-
this.
|
|
4915
|
-
if (this.__proxyData)
|
|
4916
|
-
this.setProxyAttr(name, newValue);
|
|
4958
|
+
this.__realSetAttr(name, newValue);
|
|
4917
4959
|
return true;
|
|
4918
4960
|
}
|
|
4919
4961
|
},
|
|
4962
|
+
__realSetAttr(name, newValue) {
|
|
4963
|
+
const data = this.__;
|
|
4964
|
+
data[name] = newValue;
|
|
4965
|
+
if (this.__proxyData)
|
|
4966
|
+
this.setProxyAttr(name, newValue);
|
|
4967
|
+
if (data.normalStyle)
|
|
4968
|
+
this.lockNormalStyle || data.normalStyle[name] === undefined || (data.normalStyle[name] = newValue);
|
|
4969
|
+
},
|
|
4920
4970
|
__getAttr(name) {
|
|
4921
4971
|
if (this.__proxyData)
|
|
4922
4972
|
return this.getProxyAttr(name);
|
|
@@ -5019,6 +5069,8 @@ const LeafBounds = {
|
|
|
5019
5069
|
layout.boundsChanged = false;
|
|
5020
5070
|
},
|
|
5021
5071
|
__updateLocalBoxBounds() {
|
|
5072
|
+
if (this.__hasMotionPath)
|
|
5073
|
+
this.__updateMotionPath();
|
|
5022
5074
|
if (this.__hasAutoLayout)
|
|
5023
5075
|
this.__updateAutoLayout();
|
|
5024
5076
|
toOuterOf$1(this.__layout.boxBounds, this.__local, this.__local);
|
|
@@ -5171,7 +5223,7 @@ const BranchRender = {
|
|
|
5171
5223
|
const { LEAF, create } = IncrementId;
|
|
5172
5224
|
const { toInnerPoint, toOuterPoint, multiplyParent } = MatrixHelper;
|
|
5173
5225
|
const { toOuterOf } = BoundsHelper;
|
|
5174
|
-
const { copy: copy$4 } = PointHelper;
|
|
5226
|
+
const { copy: copy$4, move: move$1 } = PointHelper;
|
|
5175
5227
|
const { moveLocal, zoomOfLocal, rotateOfLocal, skewOfLocal, moveWorld, zoomOfWorld, rotateOfWorld, skewOfWorld, transform, transformWorld, setTransform, getFlipTransform, getLocalOrigin, getRelativeWorld, drop } = LeafHelper;
|
|
5176
5228
|
let Leaf = class Leaf {
|
|
5177
5229
|
get tag() { return this.__tag; }
|
|
@@ -5198,13 +5250,16 @@ let Leaf = class Leaf {
|
|
|
5198
5250
|
get __ignoreHitWorld() { return (this.__hasMask || this.__hasEraser) && this.__.hitChildren; }
|
|
5199
5251
|
get __inLazyBounds() { const { leafer } = this; return leafer && leafer.created && leafer.lazyBounds.hit(this.__world); }
|
|
5200
5252
|
get pathInputed() { return this.__.__pathInputed; }
|
|
5201
|
-
set event(map) {
|
|
5202
|
-
event = map[key], event instanceof Array ? this.on(key, event[0], event[1]) : this.on(key, event); }
|
|
5253
|
+
set event(map) { this.on(map); }
|
|
5203
5254
|
constructor(data) {
|
|
5204
5255
|
this.innerId = create(LEAF);
|
|
5205
5256
|
this.reset(data);
|
|
5257
|
+
if (this.__bubbleMap)
|
|
5258
|
+
this.__emitLifeEvent(ChildEvent.CREATED);
|
|
5206
5259
|
}
|
|
5207
5260
|
reset(data) {
|
|
5261
|
+
if (this.leafer)
|
|
5262
|
+
this.leafer.forceRender(this.__world);
|
|
5208
5263
|
this.__world = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0, x: 0, y: 0, width: 0, height: 0, scaleX: 1, scaleY: 1 };
|
|
5209
5264
|
if (data !== null)
|
|
5210
5265
|
this.__local = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0, x: 0, y: 0, width: 0, height: 0 };
|
|
@@ -5226,12 +5281,12 @@ let Leaf = class Leaf {
|
|
|
5226
5281
|
waitParent(item, bind) {
|
|
5227
5282
|
if (bind)
|
|
5228
5283
|
item = item.bind(bind);
|
|
5229
|
-
this.parent ? item() :
|
|
5284
|
+
this.parent ? item() : this.on(ChildEvent.ADD, item, 'once');
|
|
5230
5285
|
}
|
|
5231
5286
|
waitLeafer(item, bind) {
|
|
5232
5287
|
if (bind)
|
|
5233
5288
|
item = item.bind(bind);
|
|
5234
|
-
this.leafer ? item() :
|
|
5289
|
+
this.leafer ? item() : this.on(ChildEvent.MOUNTED, item, 'once');
|
|
5235
5290
|
}
|
|
5236
5291
|
nextRender(item, bind, off) {
|
|
5237
5292
|
this.leafer ? this.leafer.nextRender(item, bind, off) : this.waitLeafer(() => this.leafer.nextRender(item, bind, off));
|
|
@@ -5240,18 +5295,21 @@ let Leaf = class Leaf {
|
|
|
5240
5295
|
this.nextRender(item, null, 'off');
|
|
5241
5296
|
}
|
|
5242
5297
|
__bindLeafer(leafer) {
|
|
5243
|
-
if (this.isLeafer)
|
|
5244
|
-
|
|
5245
|
-
leafer = this;
|
|
5246
|
-
}
|
|
5298
|
+
if (this.isLeafer && leafer !== null)
|
|
5299
|
+
leafer = this;
|
|
5247
5300
|
if (this.leafer && !leafer)
|
|
5248
5301
|
this.leafer.leafs--;
|
|
5249
5302
|
this.leafer = leafer;
|
|
5250
5303
|
if (leafer) {
|
|
5251
5304
|
leafer.leafs++;
|
|
5252
5305
|
this.__level = this.parent ? this.parent.__level + 1 : 1;
|
|
5253
|
-
if (this.
|
|
5254
|
-
|
|
5306
|
+
if (this.animation)
|
|
5307
|
+
this.__runAnimation('in');
|
|
5308
|
+
if (this.__bubbleMap)
|
|
5309
|
+
this.__emitLifeEvent(ChildEvent.MOUNTED);
|
|
5310
|
+
}
|
|
5311
|
+
else {
|
|
5312
|
+
this.__emitLifeEvent(ChildEvent.UNMOUNTED);
|
|
5255
5313
|
}
|
|
5256
5314
|
if (this.isBranch) {
|
|
5257
5315
|
const { children } = this;
|
|
@@ -5260,7 +5318,7 @@ let Leaf = class Leaf {
|
|
|
5260
5318
|
}
|
|
5261
5319
|
}
|
|
5262
5320
|
}
|
|
5263
|
-
set(_data) { }
|
|
5321
|
+
set(_data, _isTemp) { }
|
|
5264
5322
|
get(_name) { return undefined; }
|
|
5265
5323
|
setAttr(name, value) { this[name] = value; }
|
|
5266
5324
|
getAttr(name) { return this[name]; }
|
|
@@ -5285,6 +5343,7 @@ let Leaf = class Leaf {
|
|
|
5285
5343
|
findOne(_condition, _options) { return undefined; }
|
|
5286
5344
|
findId(_id) { return undefined; }
|
|
5287
5345
|
focus(_value) { }
|
|
5346
|
+
updateState() { }
|
|
5288
5347
|
updateLayout() {
|
|
5289
5348
|
this.__layout.update();
|
|
5290
5349
|
}
|
|
@@ -5392,11 +5451,24 @@ let Leaf = class Leaf {
|
|
|
5392
5451
|
if (relative)
|
|
5393
5452
|
relative.worldToInner(to ? to : inner, null, distance);
|
|
5394
5453
|
}
|
|
5454
|
+
getBoxPoint(world, relative, distance, change) {
|
|
5455
|
+
return this.getBoxPointByInner(this.getInnerPoint(world, relative, distance, change), null, null, true);
|
|
5456
|
+
}
|
|
5457
|
+
getBoxPointByInner(inner, _relative, _distance, change) {
|
|
5458
|
+
const point = change ? inner : Object.assign({}, inner), { x, y } = this.boxBounds;
|
|
5459
|
+
move$1(point, -x, -y);
|
|
5460
|
+
return point;
|
|
5461
|
+
}
|
|
5395
5462
|
getInnerPoint(world, relative, distance, change) {
|
|
5396
5463
|
const point = change ? world : {};
|
|
5397
5464
|
this.worldToInner(world, point, distance, relative);
|
|
5398
5465
|
return point;
|
|
5399
5466
|
}
|
|
5467
|
+
getInnerPointByBox(box, _relative, _distance, change) {
|
|
5468
|
+
const point = change ? box : Object.assign({}, box), { x, y } = this.boxBounds;
|
|
5469
|
+
move$1(point, x, y);
|
|
5470
|
+
return point;
|
|
5471
|
+
}
|
|
5400
5472
|
getInnerPointByLocal(local, _relative, distance, change) {
|
|
5401
5473
|
return this.getInnerPoint(local, this.parent, distance, change);
|
|
5402
5474
|
}
|
|
@@ -5408,20 +5480,23 @@ let Leaf = class Leaf {
|
|
|
5408
5480
|
getLocalPointByInner(inner, _relative, distance, change) {
|
|
5409
5481
|
return this.getWorldPoint(inner, this.parent, distance, change);
|
|
5410
5482
|
}
|
|
5483
|
+
getPagePoint(world, relative, distance, change) {
|
|
5484
|
+
const layer = this.leafer ? this.leafer.zoomLayer : this;
|
|
5485
|
+
return layer.getInnerPoint(world, relative, distance, change);
|
|
5486
|
+
}
|
|
5411
5487
|
getWorldPoint(inner, relative, distance, change) {
|
|
5412
5488
|
const point = change ? inner : {};
|
|
5413
5489
|
this.innerToWorld(inner, point, distance, relative);
|
|
5414
5490
|
return point;
|
|
5415
5491
|
}
|
|
5492
|
+
getWorldPointByBox(box, relative, distance, change) {
|
|
5493
|
+
return this.getWorldPoint(this.getInnerPointByBox(box, null, null, change), relative, distance, true);
|
|
5494
|
+
}
|
|
5416
5495
|
getWorldPointByLocal(local, relative, distance, change) {
|
|
5417
5496
|
const point = change ? local : {};
|
|
5418
5497
|
this.localToWorld(local, point, distance, relative);
|
|
5419
5498
|
return point;
|
|
5420
5499
|
}
|
|
5421
|
-
getPagePoint(world, relative, distance, change) {
|
|
5422
|
-
const layer = this.leafer ? this.leafer.zoomLayer : this;
|
|
5423
|
-
return layer.getInnerPoint(world, relative, distance, change);
|
|
5424
|
-
}
|
|
5425
5500
|
getWorldPointByPage(page, relative, distance, change) {
|
|
5426
5501
|
const layer = this.leafer ? this.leafer.zoomLayer : this;
|
|
5427
5502
|
return layer.getWorldPoint(page, relative, distance, change);
|
|
@@ -5490,6 +5565,17 @@ let Leaf = class Leaf {
|
|
|
5490
5565
|
__drawRenderPath(_canvas) { }
|
|
5491
5566
|
__updatePath() { }
|
|
5492
5567
|
__updateRenderPath() { }
|
|
5568
|
+
getMotionPathData() {
|
|
5569
|
+
return needPlugin('path');
|
|
5570
|
+
}
|
|
5571
|
+
getMotionPoint(_motionDistance) {
|
|
5572
|
+
return needPlugin('path');
|
|
5573
|
+
}
|
|
5574
|
+
getMotionTotal() {
|
|
5575
|
+
return 0;
|
|
5576
|
+
}
|
|
5577
|
+
__updateMotionPath() { }
|
|
5578
|
+
__runAnimation(_type, _complete) { }
|
|
5493
5579
|
__updateSortChildren() { }
|
|
5494
5580
|
add(_child, _index) { }
|
|
5495
5581
|
remove(_child, destroy) {
|
|
@@ -5515,6 +5601,10 @@ let Leaf = class Leaf {
|
|
|
5515
5601
|
fn = boundsType;
|
|
5516
5602
|
fn(defaultValue)(this.prototype, attrName);
|
|
5517
5603
|
}
|
|
5604
|
+
__emitLifeEvent(type) {
|
|
5605
|
+
if (this.hasEvent(type))
|
|
5606
|
+
this.emitEvent(new ChildEvent(type, this, this.parent));
|
|
5607
|
+
}
|
|
5518
5608
|
destroy() {
|
|
5519
5609
|
if (!this.destroyed) {
|
|
5520
5610
|
const { parent } = this;
|
|
@@ -5522,11 +5612,10 @@ let Leaf = class Leaf {
|
|
|
5522
5612
|
this.remove();
|
|
5523
5613
|
if (this.children)
|
|
5524
5614
|
this.removeAll(true);
|
|
5525
|
-
|
|
5526
|
-
this.emitEvent(new ChildEvent(ChildEvent.DESTROY, this, parent));
|
|
5615
|
+
this.__emitLifeEvent(ChildEvent.DESTROY);
|
|
5527
5616
|
this.__.destroy();
|
|
5528
5617
|
this.__layout.destroy();
|
|
5529
|
-
this.
|
|
5618
|
+
this.destroyEventer();
|
|
5530
5619
|
this.destroyed = true;
|
|
5531
5620
|
}
|
|
5532
5621
|
}
|
|
@@ -5592,8 +5681,8 @@ let Branch = class Branch extends Leaf {
|
|
|
5592
5681
|
this.__.__childBranchNumber = (this.__.__childBranchNumber || 0) + 1;
|
|
5593
5682
|
child.__layout.boxChanged || child.__layout.boxChange();
|
|
5594
5683
|
child.__layout.matrixChanged || child.__layout.matrixChange();
|
|
5595
|
-
if (child.
|
|
5596
|
-
|
|
5684
|
+
if (child.__bubbleMap)
|
|
5685
|
+
child.__emitLifeEvent(ChildEvent.ADD);
|
|
5597
5686
|
if (this.leafer) {
|
|
5598
5687
|
child.__bindLeafer(this.leafer);
|
|
5599
5688
|
if (this.leafer.created)
|
|
@@ -5606,16 +5695,10 @@ let Branch = class Branch extends Leaf {
|
|
|
5606
5695
|
}
|
|
5607
5696
|
remove(child, destroy) {
|
|
5608
5697
|
if (child) {
|
|
5609
|
-
|
|
5610
|
-
|
|
5611
|
-
|
|
5612
|
-
|
|
5613
|
-
this.__.__childBranchNumber = (this.__.__childBranchNumber || 1) - 1;
|
|
5614
|
-
this.__preRemove();
|
|
5615
|
-
this.__realRemoveChild(child);
|
|
5616
|
-
if (destroy)
|
|
5617
|
-
child.destroy();
|
|
5618
|
-
}
|
|
5698
|
+
if (child.animationOut)
|
|
5699
|
+
child.__runAnimation('out', () => this.__remove(child, destroy));
|
|
5700
|
+
else
|
|
5701
|
+
this.__remove(child, destroy);
|
|
5619
5702
|
}
|
|
5620
5703
|
else if (child === undefined) {
|
|
5621
5704
|
super.remove(null, destroy);
|
|
@@ -5637,6 +5720,18 @@ let Branch = class Branch extends Leaf {
|
|
|
5637
5720
|
clear() {
|
|
5638
5721
|
this.removeAll(true);
|
|
5639
5722
|
}
|
|
5723
|
+
__remove(child, destroy) {
|
|
5724
|
+
const index = this.children.indexOf(child);
|
|
5725
|
+
if (index > -1) {
|
|
5726
|
+
this.children.splice(index, 1);
|
|
5727
|
+
if (child.isBranch)
|
|
5728
|
+
this.__.__childBranchNumber = (this.__.__childBranchNumber || 1) - 1;
|
|
5729
|
+
this.__preRemove();
|
|
5730
|
+
this.__realRemoveChild(child);
|
|
5731
|
+
if (destroy)
|
|
5732
|
+
child.destroy();
|
|
5733
|
+
}
|
|
5734
|
+
}
|
|
5640
5735
|
__preRemove() {
|
|
5641
5736
|
if (this.__hasMask)
|
|
5642
5737
|
this.__updateMask();
|
|
@@ -5646,6 +5741,7 @@ let Branch = class Branch extends Leaf {
|
|
|
5646
5741
|
this.__layout.affectChildrenSort && this.__layout.childrenSortChange();
|
|
5647
5742
|
}
|
|
5648
5743
|
__realRemoveChild(child) {
|
|
5744
|
+
child.__emitLifeEvent(ChildEvent.REMOVE);
|
|
5649
5745
|
child.parent = null;
|
|
5650
5746
|
if (this.leafer) {
|
|
5651
5747
|
child.__bindLeafer(null);
|
|
@@ -5658,8 +5754,6 @@ let Branch = class Branch extends Leaf {
|
|
|
5658
5754
|
}
|
|
5659
5755
|
__emitChildEvent(type, child) {
|
|
5660
5756
|
const event = new ChildEvent(type, child, this);
|
|
5661
|
-
if (child.hasEvent(type))
|
|
5662
|
-
child.emitEvent(event);
|
|
5663
5757
|
if (this.hasEvent(type) && !this.isLeafer)
|
|
5664
5758
|
this.emitEvent(event);
|
|
5665
5759
|
this.leafer.emitEvent(event);
|
|
@@ -5822,8 +5916,7 @@ class LeafLevelList {
|
|
|
5822
5916
|
}
|
|
5823
5917
|
}
|
|
5824
5918
|
|
|
5825
|
-
const version = "1.0.
|
|
5826
|
-
const inviteCode = {};
|
|
5919
|
+
const version = "1.0.4";
|
|
5827
5920
|
|
|
5828
5921
|
const debug$7 = Debug.get('LeaferCanvas');
|
|
5829
5922
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
@@ -6223,9 +6316,13 @@ function updateBounds(boundsList) {
|
|
|
6223
6316
|
});
|
|
6224
6317
|
}
|
|
6225
6318
|
function updateChange(updateList) {
|
|
6319
|
+
let layout;
|
|
6226
6320
|
updateList.list.forEach(leaf => {
|
|
6227
|
-
|
|
6321
|
+
layout = leaf.__layout;
|
|
6322
|
+
if (layout.opacityChanged)
|
|
6228
6323
|
updateAllWorldOpacity(leaf);
|
|
6324
|
+
if (layout.stateStyleChanged)
|
|
6325
|
+
setTimeout(() => layout.stateStyleChanged && leaf.updateState());
|
|
6229
6326
|
leaf.__updateChange();
|
|
6230
6327
|
});
|
|
6231
6328
|
}
|
|
@@ -6591,7 +6688,6 @@ class Renderer {
|
|
|
6591
6688
|
Platform.requestRender(() => {
|
|
6592
6689
|
this.FPS = Math.min(60, Math.ceil(1000 / (Date.now() - startTime)));
|
|
6593
6690
|
if (this.running) {
|
|
6594
|
-
this.target.emit(AnimateEvent.FRAME);
|
|
6595
6691
|
if (this.changed && this.canvas.view)
|
|
6596
6692
|
this.render();
|
|
6597
6693
|
this.target.emit(RenderEvent.NEXT);
|
|
@@ -6936,36 +7032,6 @@ Object.assign(Creator, {
|
|
|
6936
7032
|
});
|
|
6937
7033
|
Platform.layout = Layouter.fullLayout;
|
|
6938
7034
|
|
|
6939
|
-
const TextConvert = {};
|
|
6940
|
-
const ColorConvert = {};
|
|
6941
|
-
const PathArrow = {};
|
|
6942
|
-
const Paint = {};
|
|
6943
|
-
const PaintImage = {};
|
|
6944
|
-
const PaintGradient = {};
|
|
6945
|
-
const Effect = {};
|
|
6946
|
-
const Export = {};
|
|
6947
|
-
const State = {};
|
|
6948
|
-
|
|
6949
|
-
function stateType(defaultValue) {
|
|
6950
|
-
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
6951
|
-
set(value) {
|
|
6952
|
-
this.__setAttr(key, value);
|
|
6953
|
-
this.waitLeafer(() => { if (State.setStyle)
|
|
6954
|
-
State.setStyle(this, key + 'Style', value); });
|
|
6955
|
-
}
|
|
6956
|
-
}));
|
|
6957
|
-
}
|
|
6958
|
-
function arrowType(defaultValue) {
|
|
6959
|
-
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
6960
|
-
set(value) {
|
|
6961
|
-
if (this.__setAttr(key, value)) {
|
|
6962
|
-
const data = this.__;
|
|
6963
|
-
data.__useArrow = data.startArrow !== 'none' || data.endArrow !== 'none';
|
|
6964
|
-
doStrokeType(this);
|
|
6965
|
-
}
|
|
6966
|
-
}
|
|
6967
|
-
}));
|
|
6968
|
-
}
|
|
6969
7035
|
function effectType(defaultValue) {
|
|
6970
7036
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
6971
7037
|
set(value) {
|
|
@@ -7000,10 +7066,33 @@ function zoomLayerType() {
|
|
|
7000
7066
|
};
|
|
7001
7067
|
}
|
|
7002
7068
|
|
|
7069
|
+
const TextConvert = {};
|
|
7070
|
+
const ColorConvert = {};
|
|
7071
|
+
const PathArrow = {};
|
|
7072
|
+
const Paint = {};
|
|
7073
|
+
const PaintImage = {};
|
|
7074
|
+
const PaintGradient = {};
|
|
7075
|
+
const Effect = {};
|
|
7076
|
+
const Export = {};
|
|
7077
|
+
const State = {
|
|
7078
|
+
setStyleName(_leaf, _styleName, _value) { return needPlugin('state'); },
|
|
7079
|
+
set(_leaf, _stateName) { return needPlugin('state'); }
|
|
7080
|
+
};
|
|
7081
|
+
const Transition = {
|
|
7082
|
+
list: {},
|
|
7083
|
+
register(attrName, fn) {
|
|
7084
|
+
Transition.list[attrName] = fn;
|
|
7085
|
+
},
|
|
7086
|
+
get(attrName) {
|
|
7087
|
+
return Transition.list[attrName];
|
|
7088
|
+
}
|
|
7089
|
+
};
|
|
7090
|
+
|
|
7003
7091
|
const { parse } = PathConvert;
|
|
7004
7092
|
const emptyPaint = {};
|
|
7005
7093
|
const debug$4 = Debug.get('UIData');
|
|
7006
7094
|
class UIData extends LeafData {
|
|
7095
|
+
get scale() { const { scaleX, scaleY } = this; return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX; }
|
|
7007
7096
|
get __strokeWidth() {
|
|
7008
7097
|
const { strokeWidth, strokeWidthFixed } = this;
|
|
7009
7098
|
if (strokeWidthFixed) {
|
|
@@ -7022,9 +7111,10 @@ class UIData extends LeafData {
|
|
|
7022
7111
|
get __autoSide() { return !this._width || !this._height; }
|
|
7023
7112
|
get __autoSize() { return !this._width && !this._height; }
|
|
7024
7113
|
setVisible(value) {
|
|
7025
|
-
if (this.__leaf.leafer)
|
|
7026
|
-
this.__leaf.leafer.watcher.hasVisible = true;
|
|
7027
7114
|
this._visible = value;
|
|
7115
|
+
const { leafer } = this.__leaf;
|
|
7116
|
+
if (leafer)
|
|
7117
|
+
leafer.watcher.hasVisible = true;
|
|
7028
7118
|
}
|
|
7029
7119
|
setWidth(value) {
|
|
7030
7120
|
if (value < 0) {
|
|
@@ -7215,7 +7305,7 @@ class ImageData extends RectData {
|
|
|
7215
7305
|
__setImageFill(value) {
|
|
7216
7306
|
if (this.__leaf.image)
|
|
7217
7307
|
this.__leaf.image = null;
|
|
7218
|
-
this.fill = value ? { type: 'image', mode: '
|
|
7308
|
+
this.fill = value ? { type: 'image', mode: 'stretch', url: value } : undefined;
|
|
7219
7309
|
}
|
|
7220
7310
|
__getData() {
|
|
7221
7311
|
const data = super.__getData();
|
|
@@ -7405,19 +7495,8 @@ var UI_1;
|
|
|
7405
7495
|
let UI = UI_1 = class UI extends Leaf {
|
|
7406
7496
|
get app() { return this.leafer && this.leafer.app; }
|
|
7407
7497
|
get isFrame() { return false; }
|
|
7408
|
-
set scale(value) {
|
|
7409
|
-
|
|
7410
|
-
this.scaleX = this.scaleY = value;
|
|
7411
|
-
}
|
|
7412
|
-
else {
|
|
7413
|
-
this.scaleX = value.x;
|
|
7414
|
-
this.scaleY = value.y;
|
|
7415
|
-
}
|
|
7416
|
-
}
|
|
7417
|
-
get scale() {
|
|
7418
|
-
const { scaleX, scaleY } = this;
|
|
7419
|
-
return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX;
|
|
7420
|
-
}
|
|
7498
|
+
set scale(value) { MathHelper.assignScale(this, value); }
|
|
7499
|
+
get scale() { return this.__.scale; }
|
|
7421
7500
|
get pen() {
|
|
7422
7501
|
const { path } = this.__;
|
|
7423
7502
|
pen.set(this.path = path || []);
|
|
@@ -7432,8 +7511,15 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7432
7511
|
super(data);
|
|
7433
7512
|
}
|
|
7434
7513
|
reset(_data) { }
|
|
7435
|
-
set(data) {
|
|
7436
|
-
|
|
7514
|
+
set(data, isTemp) {
|
|
7515
|
+
if (isTemp) {
|
|
7516
|
+
this.lockNormalStyle = true;
|
|
7517
|
+
Object.assign(this, data);
|
|
7518
|
+
this.lockNormalStyle = false;
|
|
7519
|
+
}
|
|
7520
|
+
else {
|
|
7521
|
+
Object.assign(this, data);
|
|
7522
|
+
}
|
|
7437
7523
|
}
|
|
7438
7524
|
get(name) {
|
|
7439
7525
|
return typeof name === 'string' ? this.__.__getInput(name) : this.__.__getInputData(name);
|
|
@@ -7496,11 +7582,18 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7496
7582
|
drawer.rect(x, y, width, height);
|
|
7497
7583
|
}
|
|
7498
7584
|
}
|
|
7585
|
+
animate(_keyframe, _options, _type, _isTemp) {
|
|
7586
|
+
return needPlugin('animate');
|
|
7587
|
+
}
|
|
7588
|
+
killAnimate(_type) { }
|
|
7499
7589
|
export(filename, options) {
|
|
7500
7590
|
return Export.export(this, filename, options);
|
|
7501
7591
|
}
|
|
7502
|
-
clone() {
|
|
7503
|
-
|
|
7592
|
+
clone(data) {
|
|
7593
|
+
const json = this.toJSON();
|
|
7594
|
+
if (data)
|
|
7595
|
+
Object.assign(json, data);
|
|
7596
|
+
return UI_1.one(json);
|
|
7504
7597
|
}
|
|
7505
7598
|
static one(data, x, y, width, height) {
|
|
7506
7599
|
return UICreator.get(data.tag || this.prototype.__tag, data, x, y, width, height);
|
|
@@ -7516,6 +7609,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7516
7609
|
static setEditInner(_editorName) { }
|
|
7517
7610
|
destroy() {
|
|
7518
7611
|
this.fill = this.stroke = null;
|
|
7612
|
+
if (this.__animate)
|
|
7613
|
+
this.killAnimate();
|
|
7519
7614
|
super.destroy();
|
|
7520
7615
|
}
|
|
7521
7616
|
};
|
|
@@ -7543,12 +7638,6 @@ __decorate([
|
|
|
7543
7638
|
__decorate([
|
|
7544
7639
|
visibleType(true)
|
|
7545
7640
|
], UI.prototype, "visible", void 0);
|
|
7546
|
-
__decorate([
|
|
7547
|
-
stateType(false)
|
|
7548
|
-
], UI.prototype, "selected", void 0);
|
|
7549
|
-
__decorate([
|
|
7550
|
-
stateType(false)
|
|
7551
|
-
], UI.prototype, "disabled", void 0);
|
|
7552
7641
|
__decorate([
|
|
7553
7642
|
surfaceType(false)
|
|
7554
7643
|
], UI.prototype, "locked", void 0);
|
|
@@ -7621,45 +7710,9 @@ __decorate([
|
|
|
7621
7710
|
__decorate([
|
|
7622
7711
|
pathType(true)
|
|
7623
7712
|
], UI.prototype, "closed", void 0);
|
|
7624
|
-
__decorate([
|
|
7625
|
-
autoLayoutType(false)
|
|
7626
|
-
], UI.prototype, "flow", void 0);
|
|
7627
7713
|
__decorate([
|
|
7628
7714
|
boundsType(0)
|
|
7629
7715
|
], UI.prototype, "padding", void 0);
|
|
7630
|
-
__decorate([
|
|
7631
|
-
boundsType(0)
|
|
7632
|
-
], UI.prototype, "gap", void 0);
|
|
7633
|
-
__decorate([
|
|
7634
|
-
boundsType('top-left')
|
|
7635
|
-
], UI.prototype, "flowAlign", void 0);
|
|
7636
|
-
__decorate([
|
|
7637
|
-
boundsType(false)
|
|
7638
|
-
], UI.prototype, "flowWrap", void 0);
|
|
7639
|
-
__decorate([
|
|
7640
|
-
boundsType('box')
|
|
7641
|
-
], UI.prototype, "itemBox", void 0);
|
|
7642
|
-
__decorate([
|
|
7643
|
-
boundsType(true)
|
|
7644
|
-
], UI.prototype, "inFlow", void 0);
|
|
7645
|
-
__decorate([
|
|
7646
|
-
boundsType()
|
|
7647
|
-
], UI.prototype, "autoWidth", void 0);
|
|
7648
|
-
__decorate([
|
|
7649
|
-
boundsType()
|
|
7650
|
-
], UI.prototype, "autoHeight", void 0);
|
|
7651
|
-
__decorate([
|
|
7652
|
-
boundsType()
|
|
7653
|
-
], UI.prototype, "lockRatio", void 0);
|
|
7654
|
-
__decorate([
|
|
7655
|
-
boundsType()
|
|
7656
|
-
], UI.prototype, "autoBox", void 0);
|
|
7657
|
-
__decorate([
|
|
7658
|
-
boundsType()
|
|
7659
|
-
], UI.prototype, "widthRange", void 0);
|
|
7660
|
-
__decorate([
|
|
7661
|
-
boundsType()
|
|
7662
|
-
], UI.prototype, "heightRange", void 0);
|
|
7663
7716
|
__decorate([
|
|
7664
7717
|
dataType(false)
|
|
7665
7718
|
], UI.prototype, "draggable", void 0);
|
|
@@ -7723,12 +7776,6 @@ __decorate([
|
|
|
7723
7776
|
__decorate([
|
|
7724
7777
|
strokeType(10)
|
|
7725
7778
|
], UI.prototype, "miterLimit", void 0);
|
|
7726
|
-
__decorate([
|
|
7727
|
-
arrowType('none')
|
|
7728
|
-
], UI.prototype, "startArrow", void 0);
|
|
7729
|
-
__decorate([
|
|
7730
|
-
arrowType('none')
|
|
7731
|
-
], UI.prototype, "endArrow", void 0);
|
|
7732
7779
|
__decorate([
|
|
7733
7780
|
pathType(0)
|
|
7734
7781
|
], UI.prototype, "cornerRadius", void 0);
|
|
@@ -7750,24 +7797,6 @@ __decorate([
|
|
|
7750
7797
|
__decorate([
|
|
7751
7798
|
effectType()
|
|
7752
7799
|
], UI.prototype, "grayscale", void 0);
|
|
7753
|
-
__decorate([
|
|
7754
|
-
dataType()
|
|
7755
|
-
], UI.prototype, "normalStyle", void 0);
|
|
7756
|
-
__decorate([
|
|
7757
|
-
dataType()
|
|
7758
|
-
], UI.prototype, "hoverStyle", void 0);
|
|
7759
|
-
__decorate([
|
|
7760
|
-
dataType()
|
|
7761
|
-
], UI.prototype, "pressStyle", void 0);
|
|
7762
|
-
__decorate([
|
|
7763
|
-
dataType()
|
|
7764
|
-
], UI.prototype, "focusStyle", void 0);
|
|
7765
|
-
__decorate([
|
|
7766
|
-
dataType()
|
|
7767
|
-
], UI.prototype, "selectedStyle", void 0);
|
|
7768
|
-
__decorate([
|
|
7769
|
-
dataType()
|
|
7770
|
-
], UI.prototype, "disabledStyle", void 0);
|
|
7771
7800
|
__decorate([
|
|
7772
7801
|
dataType({})
|
|
7773
7802
|
], UI.prototype, "data", void 0);
|
|
@@ -7794,7 +7823,7 @@ let Group = class Group extends UI {
|
|
|
7794
7823
|
if (!this.children)
|
|
7795
7824
|
this.children = [];
|
|
7796
7825
|
}
|
|
7797
|
-
set(data) {
|
|
7826
|
+
set(data, isTemp) {
|
|
7798
7827
|
if (data.children) {
|
|
7799
7828
|
const { children } = data;
|
|
7800
7829
|
delete data.children;
|
|
@@ -7804,7 +7833,7 @@ let Group = class Group extends UI {
|
|
|
7804
7833
|
else {
|
|
7805
7834
|
this.clear();
|
|
7806
7835
|
}
|
|
7807
|
-
super.set(data);
|
|
7836
|
+
super.set(data, isTemp);
|
|
7808
7837
|
let child;
|
|
7809
7838
|
children.forEach(childData => {
|
|
7810
7839
|
child = childData.__ ? childData : UICreator.get(childData.tag, childData);
|
|
@@ -7813,7 +7842,7 @@ let Group = class Group extends UI {
|
|
|
7813
7842
|
data.children = children;
|
|
7814
7843
|
}
|
|
7815
7844
|
else {
|
|
7816
|
-
super.set(data);
|
|
7845
|
+
super.set(data, isTemp);
|
|
7817
7846
|
}
|
|
7818
7847
|
}
|
|
7819
7848
|
toJSON(options) {
|
|
@@ -8140,7 +8169,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8140
8169
|
}
|
|
8141
8170
|
}
|
|
8142
8171
|
zoom(_zoomType, _padding, _fixedScale) {
|
|
8143
|
-
return
|
|
8172
|
+
return needPlugin('view');
|
|
8144
8173
|
}
|
|
8145
8174
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
8146
8175
|
getValidScale(changeScale) { return changeScale; }
|
|
@@ -8663,19 +8692,18 @@ let Canvas = class Canvas extends Rect {
|
|
|
8663
8692
|
this.paint();
|
|
8664
8693
|
}
|
|
8665
8694
|
paint() {
|
|
8666
|
-
this.
|
|
8695
|
+
this.forceRender();
|
|
8667
8696
|
}
|
|
8668
8697
|
__drawAfterFill(canvas, _options) {
|
|
8669
|
-
const
|
|
8670
|
-
|
|
8671
|
-
if (this.__.cornerRadius || this.pathInputed) {
|
|
8698
|
+
const { width, height, cornerRadius } = this.__, { view } = this.canvas;
|
|
8699
|
+
if (cornerRadius || this.pathInputed) {
|
|
8672
8700
|
canvas.save();
|
|
8673
8701
|
canvas.clip();
|
|
8674
|
-
canvas.drawImage(
|
|
8702
|
+
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
8675
8703
|
canvas.restore();
|
|
8676
8704
|
}
|
|
8677
8705
|
else {
|
|
8678
|
-
canvas.drawImage(
|
|
8706
|
+
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
8679
8707
|
}
|
|
8680
8708
|
}
|
|
8681
8709
|
__updateSize() {
|
|
@@ -9118,21 +9146,29 @@ class UIEvent extends Event {
|
|
|
9118
9146
|
constructor(params) {
|
|
9119
9147
|
super(params.type);
|
|
9120
9148
|
this.bubbles = true;
|
|
9149
|
+
this.getInner = this.getInnerPoint;
|
|
9150
|
+
this.getLocal = this.getLocalPoint;
|
|
9151
|
+
this.getPage = this.getPagePoint;
|
|
9121
9152
|
Object.assign(this, params);
|
|
9122
9153
|
}
|
|
9123
|
-
|
|
9124
|
-
|
|
9154
|
+
getBoxPoint(relative) {
|
|
9155
|
+
if (!relative)
|
|
9156
|
+
relative = this.current;
|
|
9157
|
+
return relative.getBoxPoint(this);
|
|
9125
9158
|
}
|
|
9126
|
-
|
|
9159
|
+
getInnerPoint(relative) {
|
|
9127
9160
|
if (!relative)
|
|
9128
9161
|
relative = this.current;
|
|
9129
9162
|
return relative.getInnerPoint(this);
|
|
9130
9163
|
}
|
|
9131
|
-
|
|
9164
|
+
getLocalPoint(relative) {
|
|
9132
9165
|
if (!relative)
|
|
9133
9166
|
relative = this.current;
|
|
9134
9167
|
return relative.getLocalPoint(this);
|
|
9135
9168
|
}
|
|
9169
|
+
getPagePoint() {
|
|
9170
|
+
return this.current.getPagePoint(this);
|
|
9171
|
+
}
|
|
9136
9172
|
static changeName(oldName, newName) {
|
|
9137
9173
|
EventCreator.changeName(oldName, newName);
|
|
9138
9174
|
}
|
|
@@ -9240,7 +9276,7 @@ let DragEvent = class DragEvent extends PointerEvent {
|
|
|
9240
9276
|
}
|
|
9241
9277
|
getPageBounds() {
|
|
9242
9278
|
const total = this.getPageTotal();
|
|
9243
|
-
const start = this.
|
|
9279
|
+
const start = this.getPagePoint();
|
|
9244
9280
|
const bounds = {};
|
|
9245
9281
|
BoundsHelper.set(bounds, start.x - total.x, start.y - total.y, total.x, total.y);
|
|
9246
9282
|
BoundsHelper.unsign(bounds);
|
|
@@ -9824,7 +9860,7 @@ function emitEvent(leaf, type, data, capture, excludePath) {
|
|
|
9824
9860
|
if (leaf.destroyed)
|
|
9825
9861
|
return false;
|
|
9826
9862
|
if (leaf.__.hitSelf && !exclude(leaf, excludePath)) {
|
|
9827
|
-
if (State.updateEventStyle)
|
|
9863
|
+
if (State.updateEventStyle && !capture)
|
|
9828
9864
|
State.updateEventStyle(leaf, type);
|
|
9829
9865
|
if (leaf.hasEvent(type, capture)) {
|
|
9830
9866
|
data.phase = capture ? 1 : ((leaf === data.target) ? 2 : 3);
|
|
@@ -9929,7 +9965,7 @@ class InteractionBase {
|
|
|
9929
9965
|
this.tapWait();
|
|
9930
9966
|
this.longPressWait(data);
|
|
9931
9967
|
}
|
|
9932
|
-
this.
|
|
9968
|
+
this.waitRightTap = PointerButton.right(data);
|
|
9933
9969
|
this.dragger.setDragData(data);
|
|
9934
9970
|
if (!this.isHoldRightKey)
|
|
9935
9971
|
this.updateCursor(data);
|
|
@@ -9957,7 +9993,7 @@ class InteractionBase {
|
|
|
9957
9993
|
if (canDrag) {
|
|
9958
9994
|
if (this.waitTap)
|
|
9959
9995
|
this.pointerWaitCancel();
|
|
9960
|
-
this.
|
|
9996
|
+
this.waitRightTap = false;
|
|
9961
9997
|
}
|
|
9962
9998
|
this.dragger.checkDrag(data, canDrag);
|
|
9963
9999
|
}
|
|
@@ -10011,10 +10047,15 @@ class InteractionBase {
|
|
|
10011
10047
|
menu(data) {
|
|
10012
10048
|
this.findPath(data);
|
|
10013
10049
|
this.emit(PointerEvent.MENU, data);
|
|
10050
|
+
this.waitMenuTap = true;
|
|
10051
|
+
if (!this.downData && this.waitRightTap)
|
|
10052
|
+
this.menuTap(data);
|
|
10014
10053
|
}
|
|
10015
10054
|
menuTap(data) {
|
|
10016
|
-
if (this.waitMenuTap)
|
|
10055
|
+
if (this.waitRightTap && this.waitMenuTap) {
|
|
10017
10056
|
this.emit(PointerEvent.MENU_TAP, data);
|
|
10057
|
+
this.waitRightTap = this.waitMenuTap = false;
|
|
10058
|
+
}
|
|
10018
10059
|
}
|
|
10019
10060
|
move(data) {
|
|
10020
10061
|
this.transformer.move(data);
|
|
@@ -11210,6 +11251,8 @@ function getPatternData(paint, box, image) {
|
|
|
11210
11251
|
let { width, height } = image;
|
|
11211
11252
|
if (paint.padding)
|
|
11212
11253
|
box = tempBox.set(box).shrink(paint.padding);
|
|
11254
|
+
if (paint.mode === 'strench')
|
|
11255
|
+
paint.mode = 'stretch';
|
|
11213
11256
|
const { opacity, mode, align, offset, scale, size, rotation, repeat } = paint;
|
|
11214
11257
|
const sameBox = box.width === width && box.height === height;
|
|
11215
11258
|
const data = { mode };
|
|
@@ -11238,7 +11281,7 @@ function getPatternData(paint, box, image) {
|
|
|
11238
11281
|
if (offset)
|
|
11239
11282
|
x += offset.x, y += offset.y;
|
|
11240
11283
|
switch (mode) {
|
|
11241
|
-
case '
|
|
11284
|
+
case 'stretch':
|
|
11242
11285
|
if (!sameBox)
|
|
11243
11286
|
width = box.width, height = box.height;
|
|
11244
11287
|
break;
|
|
@@ -11265,7 +11308,7 @@ function getPatternData(paint, box, image) {
|
|
|
11265
11308
|
translate(data.transform, box.x, box.y);
|
|
11266
11309
|
}
|
|
11267
11310
|
}
|
|
11268
|
-
if (scaleX && mode !== '
|
|
11311
|
+
if (scaleX && mode !== 'stretch') {
|
|
11269
11312
|
data.scaleX = scaleX;
|
|
11270
11313
|
data.scaleY = scaleY;
|
|
11271
11314
|
}
|
|
@@ -11369,7 +11412,7 @@ const { get: get$1, scale, copy: copy$1 } = MatrixHelper;
|
|
|
11369
11412
|
const { ceil, abs: abs$1 } = Math;
|
|
11370
11413
|
function createPattern(ui, paint, pixelRatio) {
|
|
11371
11414
|
let { scaleX, scaleY } = ImageManager.patternLocked ? ui.__world : ui.__nowWorld;
|
|
11372
|
-
const id = scaleX + '-' + scaleY;
|
|
11415
|
+
const id = scaleX + '-' + scaleY + '-' + pixelRatio;
|
|
11373
11416
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
11374
11417
|
scaleX = abs$1(scaleX);
|
|
11375
11418
|
scaleY = abs$1(scaleY);
|
|
@@ -11431,7 +11474,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
11431
11474
|
const { abs } = Math;
|
|
11432
11475
|
function checkImage(ui, canvas, paint, allowPaint) {
|
|
11433
11476
|
const { scaleX, scaleY } = ImageManager.patternLocked ? ui.__world : ui.__nowWorld;
|
|
11434
|
-
|
|
11477
|
+
const { pixelRatio } = canvas;
|
|
11478
|
+
if (!paint.data || (paint.patternId === scaleX + '-' + scaleY + '-' + pixelRatio && !Export.running)) {
|
|
11435
11479
|
return false;
|
|
11436
11480
|
}
|
|
11437
11481
|
else {
|
|
@@ -11439,8 +11483,8 @@ function checkImage(ui, canvas, paint, allowPaint) {
|
|
|
11439
11483
|
if (allowPaint) {
|
|
11440
11484
|
if (!data.repeat) {
|
|
11441
11485
|
let { width, height } = data;
|
|
11442
|
-
width *= abs(scaleX) *
|
|
11443
|
-
height *= abs(scaleY) *
|
|
11486
|
+
width *= abs(scaleX) * pixelRatio;
|
|
11487
|
+
height *= abs(scaleY) * pixelRatio;
|
|
11444
11488
|
if (data.scaleX) {
|
|
11445
11489
|
width *= data.scaleX;
|
|
11446
11490
|
height *= data.scaleY;
|
|
@@ -11466,14 +11510,14 @@ function checkImage(ui, canvas, paint, allowPaint) {
|
|
|
11466
11510
|
}
|
|
11467
11511
|
else {
|
|
11468
11512
|
if (!paint.style || paint.sync || Export.running) {
|
|
11469
|
-
createPattern(ui, paint,
|
|
11513
|
+
createPattern(ui, paint, pixelRatio);
|
|
11470
11514
|
}
|
|
11471
11515
|
else {
|
|
11472
11516
|
if (!paint.patternTask) {
|
|
11473
11517
|
paint.patternTask = ImageManager.patternTasker.add(() => __awaiter(this, void 0, void 0, function* () {
|
|
11474
11518
|
paint.patternTask = null;
|
|
11475
11519
|
if (canvas.bounds.hit(ui.__nowWorld))
|
|
11476
|
-
createPattern(ui, paint,
|
|
11520
|
+
createPattern(ui, paint, pixelRatio);
|
|
11477
11521
|
ui.forceUpdate('surface');
|
|
11478
11522
|
}), 300);
|
|
11479
11523
|
}
|
|
@@ -11537,14 +11581,16 @@ function linearGradient(paint, box) {
|
|
|
11537
11581
|
return data;
|
|
11538
11582
|
}
|
|
11539
11583
|
function applyStops(gradient, stops, opacity) {
|
|
11540
|
-
|
|
11541
|
-
|
|
11542
|
-
|
|
11543
|
-
|
|
11544
|
-
|
|
11545
|
-
|
|
11546
|
-
|
|
11547
|
-
|
|
11584
|
+
if (stops) {
|
|
11585
|
+
let stop;
|
|
11586
|
+
for (let i = 0, len = stops.length; i < len; i++) {
|
|
11587
|
+
stop = stops[i];
|
|
11588
|
+
if (typeof stop === 'string') {
|
|
11589
|
+
gradient.addColorStop(i / (len - 1), ColorConvert.string(stop, opacity));
|
|
11590
|
+
}
|
|
11591
|
+
else {
|
|
11592
|
+
gradient.addColorStop(stop.offset, ColorConvert.string(stop.color, opacity));
|
|
11593
|
+
}
|
|
11548
11594
|
}
|
|
11549
11595
|
}
|
|
11550
11596
|
}
|
|
@@ -12300,10 +12346,15 @@ const TextConvertModule = {
|
|
|
12300
12346
|
};
|
|
12301
12347
|
|
|
12302
12348
|
function string(color, opacity) {
|
|
12303
|
-
|
|
12304
|
-
|
|
12349
|
+
const doOpacity = typeof opacity === 'number' && opacity !== 1;
|
|
12350
|
+
if (typeof color === 'string') {
|
|
12351
|
+
if (doOpacity && ColorConvert.object)
|
|
12352
|
+
color = ColorConvert.object(color);
|
|
12353
|
+
else
|
|
12354
|
+
return color;
|
|
12355
|
+
}
|
|
12305
12356
|
let a = color.a === undefined ? 1 : color.a;
|
|
12306
|
-
if (
|
|
12357
|
+
if (doOpacity)
|
|
12307
12358
|
a *= opacity;
|
|
12308
12359
|
const rgb = color.r + ',' + color.g + ',' + color.b;
|
|
12309
12360
|
return a === 1 ? 'rgb(' + rgb + ')' : 'rgba(' + rgb + ',' + a + ')';
|
|
@@ -12515,4 +12566,4 @@ Object.assign(Creator, {
|
|
|
12515
12566
|
});
|
|
12516
12567
|
useCanvas();
|
|
12517
12568
|
|
|
12518
|
-
export { AlignHelper,
|
|
12569
|
+
export { AlignHelper, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragEvent, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Frame, FrameData, Group, GroupData, HitCanvasManager, Image$1 as 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, LeaferImage, LeaferTypeCreator, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MultiTouchHelper, MyDragEvent, MyImage, MyPointerEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, ZoomEvent, addInteractionWindow, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isNull, layoutProcessor, maskType, naturalBoundsType, needPlugin, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$3 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
|