@visactor/vrender-components 0.14.0-alpha.0 → 0.14.0-alpha.10
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/cjs/axis/base.d.ts +4 -2
- package/cjs/axis/base.js +9 -18
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/circle.d.ts +3 -1
- package/cjs/axis/circle.js +7 -5
- package/cjs/axis/circle.js.map +1 -1
- package/cjs/axis/constant.d.ts +2 -1
- package/cjs/axis/constant.js +1 -1
- package/cjs/axis/constant.js.map +1 -1
- package/cjs/axis/line.d.ts +6 -2
- package/cjs/axis/line.js +70 -13
- package/cjs/axis/line.js.map +1 -1
- package/cjs/axis/overlap/auto-limit.js +1 -1
- package/cjs/axis/overlap/auto-limit.js.map +1 -1
- package/cjs/axis/overlap/auto-rotate.d.ts +2 -0
- package/cjs/axis/overlap/auto-rotate.js +2 -2
- package/cjs/axis/overlap/auto-rotate.js.map +1 -1
- package/cjs/axis/type.d.ts +11 -7
- package/cjs/axis/type.js.map +1 -1
- package/cjs/brush/brush.d.ts +3 -3
- package/cjs/brush/brush.js.map +1 -1
- package/cjs/data-zoom/config.d.ts +2 -0
- package/cjs/data-zoom/config.js +3 -1
- package/cjs/data-zoom/config.js.map +1 -1
- package/cjs/data-zoom/data-zoom.d.ts +2 -0
- package/cjs/data-zoom/data-zoom.js +21 -11
- package/cjs/data-zoom/data-zoom.js.map +1 -1
- package/cjs/data-zoom/type.d.ts +4 -3
- package/cjs/data-zoom/type.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/label/base.d.ts +12 -11
- package/cjs/label/base.js +83 -62
- package/cjs/label/base.js.map +1 -1
- package/cjs/label/overlap/bitmap.d.ts +1 -1
- package/cjs/label/overlap/bitmap.js +2 -0
- package/cjs/label/overlap/bitmap.js.map +1 -1
- package/cjs/label/overlap/place.d.ts +8 -4
- package/cjs/label/overlap/place.js +14 -2
- package/cjs/label/overlap/place.js.map +1 -1
- package/cjs/label/rect.d.ts +5 -3
- package/cjs/label/rect.js.map +1 -1
- package/cjs/label/symbol.d.ts +5 -3
- package/cjs/label/symbol.js.map +1 -1
- package/cjs/label/type.d.ts +12 -7
- package/cjs/label/type.js.map +1 -1
- package/cjs/legend/discrete/discrete.js +2 -1
- package/cjs/legend/discrete/discrete.js.map +1 -1
- package/cjs/marker/type.d.ts +4 -5
- package/cjs/marker/type.js.map +1 -1
- package/cjs/player/continuous-player.d.ts +1 -2
- package/cjs/player/continuous-player.js +5 -5
- package/cjs/player/continuous-player.js.map +1 -1
- package/cjs/player/discrete-player.d.ts +1 -2
- package/cjs/player/discrete-player.js +4 -4
- package/cjs/player/discrete-player.js.map +1 -1
- package/cjs/poptip/contribution.js +1 -1
- package/cjs/poptip/contribution.js.map +1 -1
- package/cjs/poptip/poptip.js +10 -3
- package/cjs/poptip/poptip.js.map +1 -1
- package/cjs/scrollbar/scrollbar.js +4 -4
- package/cjs/scrollbar/scrollbar.js.map +1 -1
- package/cjs/segment/segment.js +4 -1
- package/cjs/segment/segment.js.map +1 -1
- package/cjs/segment/type.d.ts +1 -0
- package/cjs/segment/type.js.map +1 -1
- package/cjs/slider/slider.d.ts +1 -1
- package/cjs/slider/slider.js +8 -8
- package/cjs/slider/slider.js.map +1 -1
- package/cjs/tag/type.d.ts +3 -3
- package/cjs/tag/type.js.map +1 -1
- package/cjs/util/align.d.ts +2 -0
- package/cjs/util/align.js +60 -0
- package/cjs/util/align.js.map +1 -0
- package/cjs/util/common.d.ts +3 -1
- package/cjs/util/common.js +14 -2
- package/cjs/util/common.js.map +1 -1
- package/dist/index.js +442 -177
- package/dist/index.min.js +1 -1
- package/es/axis/base.d.ts +4 -2
- package/es/axis/base.js +10 -19
- package/es/axis/base.js.map +1 -1
- package/es/axis/circle.d.ts +3 -1
- package/es/axis/circle.js +7 -5
- package/es/axis/circle.js.map +1 -1
- package/es/axis/constant.d.ts +2 -1
- package/es/axis/constant.js +1 -1
- package/es/axis/constant.js.map +1 -1
- package/es/axis/line.d.ts +6 -2
- package/es/axis/line.js +73 -14
- package/es/axis/line.js.map +1 -1
- package/es/axis/overlap/auto-limit.js +1 -1
- package/es/axis/overlap/auto-limit.js.map +1 -1
- package/es/axis/overlap/auto-rotate.d.ts +2 -0
- package/es/axis/overlap/auto-rotate.js +2 -2
- package/es/axis/overlap/auto-rotate.js.map +1 -1
- package/es/axis/type.d.ts +11 -7
- package/es/axis/type.js.map +1 -1
- package/es/brush/brush.d.ts +3 -3
- package/es/brush/brush.js.map +1 -1
- package/es/data-zoom/config.d.ts +2 -0
- package/es/data-zoom/config.js +3 -1
- package/es/data-zoom/config.js.map +1 -1
- package/es/data-zoom/data-zoom.d.ts +2 -0
- package/es/data-zoom/data-zoom.js +22 -12
- package/es/data-zoom/data-zoom.js.map +1 -1
- package/es/data-zoom/type.d.ts +4 -3
- package/es/data-zoom/type.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/label/base.d.ts +12 -11
- package/es/label/base.js +85 -65
- package/es/label/base.js.map +1 -1
- package/es/label/overlap/bitmap.d.ts +1 -1
- package/es/label/overlap/bitmap.js +2 -0
- package/es/label/overlap/bitmap.js.map +1 -1
- package/es/label/overlap/place.d.ts +8 -4
- package/es/label/overlap/place.js +11 -0
- package/es/label/overlap/place.js.map +1 -1
- package/es/label/rect.d.ts +5 -3
- package/es/label/rect.js.map +1 -1
- package/es/label/symbol.d.ts +5 -3
- package/es/label/symbol.js.map +1 -1
- package/es/label/type.d.ts +12 -7
- package/es/label/type.js.map +1 -1
- package/es/legend/discrete/discrete.js +1 -1
- package/es/legend/discrete/discrete.js.map +1 -1
- package/es/marker/type.d.ts +4 -5
- package/es/marker/type.js.map +1 -1
- package/es/player/continuous-player.d.ts +1 -2
- package/es/player/continuous-player.js +5 -5
- package/es/player/continuous-player.js.map +1 -1
- package/es/player/discrete-player.d.ts +1 -2
- package/es/player/discrete-player.js +5 -5
- package/es/player/discrete-player.js.map +1 -1
- package/es/poptip/contribution.js +1 -1
- package/es/poptip/contribution.js.map +1 -1
- package/es/poptip/poptip.js +11 -4
- package/es/poptip/poptip.js.map +1 -1
- package/es/scrollbar/scrollbar.js +5 -5
- package/es/scrollbar/scrollbar.js.map +1 -1
- package/es/segment/segment.js +4 -1
- package/es/segment/segment.js.map +1 -1
- package/es/segment/type.d.ts +1 -0
- package/es/segment/type.js.map +1 -1
- package/es/slider/slider.d.ts +1 -1
- package/es/slider/slider.js +9 -9
- package/es/slider/slider.js.map +1 -1
- package/es/tag/type.d.ts +3 -3
- package/es/tag/type.js.map +1 -1
- package/es/util/align.d.ts +2 -0
- package/es/util/align.js +54 -0
- package/es/util/align.js.map +1 -0
- package/es/util/common.d.ts +3 -1
- package/es/util/common.js +12 -0
- package/es/util/common.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -273,9 +273,9 @@
|
|
|
273
273
|
e.stopPropagation();
|
|
274
274
|
const { direction } = this.attribute;
|
|
275
275
|
this._prePos = direction === 'horizontal' ? e.clientX : e.clientY;
|
|
276
|
-
if (vrender.
|
|
277
|
-
vrender.
|
|
278
|
-
vrender.
|
|
276
|
+
if (vrender.global.env === 'browser') {
|
|
277
|
+
vrender.global.addEventListener('pointermove', this._onSliderPointerMove);
|
|
278
|
+
vrender.global.addEventListener('pointerup', this._onSliderPointerUp);
|
|
279
279
|
}
|
|
280
280
|
else {
|
|
281
281
|
this._slider.addEventListener('pointermove', this._onSliderPointerMove);
|
|
@@ -306,9 +306,9 @@
|
|
|
306
306
|
};
|
|
307
307
|
_onSliderPointerUp = (e) => {
|
|
308
308
|
e.preventDefault();
|
|
309
|
-
if (vrender.
|
|
310
|
-
vrender.
|
|
311
|
-
vrender.
|
|
309
|
+
if (vrender.global.env === 'browser') {
|
|
310
|
+
vrender.global.removeEventListener('pointermove', this._onSliderPointerMove);
|
|
311
|
+
vrender.global.removeEventListener('pointerup', this._onSliderPointerUp);
|
|
312
312
|
}
|
|
313
313
|
else {
|
|
314
314
|
this._slider.removeEventListener('pointermove', this._onSliderPointerMove);
|
|
@@ -341,6 +341,26 @@
|
|
|
341
341
|
}
|
|
342
342
|
return obj.visible !== false;
|
|
343
343
|
};
|
|
344
|
+
function getMarksByName(root, name) {
|
|
345
|
+
if (!name) {
|
|
346
|
+
return [];
|
|
347
|
+
}
|
|
348
|
+
const group = root.find(node => node.name === name, true);
|
|
349
|
+
if (!group) {
|
|
350
|
+
return [];
|
|
351
|
+
}
|
|
352
|
+
return group.getChildren();
|
|
353
|
+
}
|
|
354
|
+
function getNoneGroupMarksByName(root, name) {
|
|
355
|
+
if (!name) {
|
|
356
|
+
return [];
|
|
357
|
+
}
|
|
358
|
+
const group = root.find(node => node.name === name, true);
|
|
359
|
+
if (!group) {
|
|
360
|
+
return [];
|
|
361
|
+
}
|
|
362
|
+
return group.findAll(node => node.type !== 'group', true);
|
|
363
|
+
}
|
|
344
364
|
|
|
345
365
|
const defaultAlternativeColors = ['#ffffff', '#000000'];
|
|
346
366
|
function labelSmartInvert(foregroundColorOrigin, backgroundColorOrogin, textType, contrastRatiosThreshold, alternativeColors) {
|
|
@@ -751,8 +771,10 @@
|
|
|
751
771
|
? [this.stage.width, this.stage.height]
|
|
752
772
|
: undefined;
|
|
753
773
|
const layout = position === 'auto';
|
|
754
|
-
|
|
755
|
-
|
|
774
|
+
let minifyBBoxI;
|
|
775
|
+
let minifyBBoxSize = Infinity;
|
|
776
|
+
for (let i = 0; i < this.positionList.length + 1; i++) {
|
|
777
|
+
const p = layout ? this.positionList[i === this.positionList.length ? minifyBBoxI : i] : position;
|
|
756
778
|
const { angle, offset, rectOffset } = this.getAngleAndOffset(p, popTipWidth, poptipHeight, vutils.isArray(spaceSize) ? spaceSize : [spaceSize, spaceSize - lineWidth]);
|
|
757
779
|
if (vutils.isBoolean(bgVisible)) {
|
|
758
780
|
const offsetX = (vutils.isArray(symbolSize) ? symbolSize[0] : symbolSize) / 4;
|
|
@@ -761,6 +783,8 @@
|
|
|
761
783
|
visible: bgVisible && (contentVisible || titleVisible),
|
|
762
784
|
x: offsetX,
|
|
763
785
|
y: 0,
|
|
786
|
+
strokeBoundsBuffer: -1,
|
|
787
|
+
boundsPadding: -2,
|
|
764
788
|
anchor: [0, 0],
|
|
765
789
|
symbolType: 'arrow2Left',
|
|
766
790
|
angle: angle,
|
|
@@ -779,7 +803,7 @@
|
|
|
779
803
|
y: 0,
|
|
780
804
|
width: popTipWidth,
|
|
781
805
|
height: poptipHeight,
|
|
782
|
-
zIndex: -
|
|
806
|
+
zIndex: -8
|
|
783
807
|
}, 'rect');
|
|
784
808
|
if (!vutils.isEmpty(state?.panel)) {
|
|
785
809
|
bgRect.states = state.panel;
|
|
@@ -795,6 +819,14 @@
|
|
|
795
819
|
if (vutils.rectInsideAnotherRect(b, stageBounds, false)) {
|
|
796
820
|
break;
|
|
797
821
|
}
|
|
822
|
+
else {
|
|
823
|
+
const bbox = vutils.getRectIntersect(b, stageBounds, false);
|
|
824
|
+
const size = (bbox.x2 - bbox.x1) * (bbox.y2 - bbox.y1);
|
|
825
|
+
if (size < minifyBBoxSize) {
|
|
826
|
+
minifyBBoxSize = size;
|
|
827
|
+
minifyBBoxI = i;
|
|
828
|
+
}
|
|
829
|
+
}
|
|
798
830
|
}
|
|
799
831
|
else {
|
|
800
832
|
break;
|
|
@@ -951,6 +983,7 @@
|
|
|
951
983
|
x: matrix.e,
|
|
952
984
|
y: matrix.f
|
|
953
985
|
});
|
|
986
|
+
drawContext.stage.tryInitInteractiveLayer();
|
|
954
987
|
const interactiveLayer = drawContext.stage.getLayer('_builtin_interactive');
|
|
955
988
|
if (interactiveLayer) {
|
|
956
989
|
interactiveLayer.add(this.poptipComponent);
|
|
@@ -1298,6 +1331,9 @@
|
|
|
1298
1331
|
_clear(index >>> DIV, ~(1 << (index & MOD)));
|
|
1299
1332
|
},
|
|
1300
1333
|
getRange: ({ x1, y1, x2, y2 }) => {
|
|
1334
|
+
if (x2 < 0 || y2 < 0 || x1 > w || y1 > h) {
|
|
1335
|
+
return true;
|
|
1336
|
+
}
|
|
1301
1337
|
let r = y2;
|
|
1302
1338
|
let start;
|
|
1303
1339
|
let end;
|
|
@@ -1330,6 +1366,9 @@
|
|
|
1330
1366
|
return false;
|
|
1331
1367
|
},
|
|
1332
1368
|
setRange: ({ x1, y1, x2, y2 }) => {
|
|
1369
|
+
if (x2 < 0 || y2 < 0 || x1 > w || y1 > h) {
|
|
1370
|
+
return;
|
|
1371
|
+
}
|
|
1333
1372
|
let start;
|
|
1334
1373
|
let end;
|
|
1335
1374
|
let indexStart;
|
|
@@ -1501,6 +1540,28 @@
|
|
|
1501
1540
|
return DefaultPositions;
|
|
1502
1541
|
}
|
|
1503
1542
|
}
|
|
1543
|
+
function clampText(text, width, height) {
|
|
1544
|
+
const { x1, x2, y1, y2 } = text.AABBBounds;
|
|
1545
|
+
const minX = Math.min(x1, x2);
|
|
1546
|
+
const maxX = Math.max(x1, x2);
|
|
1547
|
+
const minY = Math.min(y1, y2);
|
|
1548
|
+
const maxY = Math.max(y1, y2);
|
|
1549
|
+
let dx = 0;
|
|
1550
|
+
let dy = 0;
|
|
1551
|
+
if (minX < 0 && maxX - minX <= width) {
|
|
1552
|
+
dx = -minX;
|
|
1553
|
+
}
|
|
1554
|
+
else if (maxX > width && minX - (maxX - width) >= 0) {
|
|
1555
|
+
dx = width - maxX;
|
|
1556
|
+
}
|
|
1557
|
+
if (minY < 0 && maxY - minY <= height) {
|
|
1558
|
+
dy = -minY;
|
|
1559
|
+
}
|
|
1560
|
+
else if (maxY > height && minY - (maxY - height) >= 0) {
|
|
1561
|
+
dy = height - maxY;
|
|
1562
|
+
}
|
|
1563
|
+
return { dx, dy };
|
|
1564
|
+
}
|
|
1504
1565
|
|
|
1505
1566
|
const fadeIn = (textAttribute = {}) => {
|
|
1506
1567
|
return {
|
|
@@ -1551,17 +1612,37 @@
|
|
|
1551
1612
|
setBitmapTool(bmpTool) {
|
|
1552
1613
|
this._bmpTool = bmpTool;
|
|
1553
1614
|
}
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
_textMap;
|
|
1615
|
+
_graphicToText;
|
|
1616
|
+
_idToGraphic;
|
|
1557
1617
|
onAfterLabelOverlap;
|
|
1558
1618
|
_lastHover;
|
|
1559
1619
|
_lastSelect;
|
|
1560
1620
|
_enableAnimation;
|
|
1561
1621
|
render() {
|
|
1562
|
-
|
|
1563
|
-
const
|
|
1564
|
-
this.
|
|
1622
|
+
this._prepare();
|
|
1623
|
+
const { overlap, smartInvert, dataFilter, customLayoutFunc, customOverlapFunc } = this.attribute;
|
|
1624
|
+
let data = this.attribute.data;
|
|
1625
|
+
if (vutils.isFunction(dataFilter)) {
|
|
1626
|
+
data = dataFilter(data);
|
|
1627
|
+
}
|
|
1628
|
+
let labels;
|
|
1629
|
+
if (vutils.isFunction(customLayoutFunc)) {
|
|
1630
|
+
labels = customLayoutFunc(data, (d) => this._idToGraphic.get(d.id));
|
|
1631
|
+
}
|
|
1632
|
+
else {
|
|
1633
|
+
labels = this.layout(data);
|
|
1634
|
+
if (vutils.isFunction(customOverlapFunc)) {
|
|
1635
|
+
labels = customOverlapFunc(labels, (d) => this._idToGraphic.get(d.id));
|
|
1636
|
+
}
|
|
1637
|
+
else {
|
|
1638
|
+
if (overlap !== false) {
|
|
1639
|
+
labels = this._overlapping(labels);
|
|
1640
|
+
}
|
|
1641
|
+
}
|
|
1642
|
+
}
|
|
1643
|
+
if (smartInvert !== false) {
|
|
1644
|
+
this._smartInvert(labels);
|
|
1645
|
+
}
|
|
1565
1646
|
this._renderLabels(labels);
|
|
1566
1647
|
}
|
|
1567
1648
|
_bindEvent(target) {
|
|
@@ -1638,67 +1719,66 @@
|
|
|
1638
1719
|
this._setStates(text);
|
|
1639
1720
|
return text;
|
|
1640
1721
|
}
|
|
1641
|
-
|
|
1642
|
-
const baseMarks = this.
|
|
1722
|
+
_prepare() {
|
|
1723
|
+
const baseMarks = getMarksByName(this.getRootNode(), this.attribute.baseMarkGroupName);
|
|
1643
1724
|
const currentBaseMarks = [];
|
|
1644
1725
|
baseMarks.forEach(mark => {
|
|
1645
1726
|
if (mark.releaseStatus !== 'willRelease') {
|
|
1646
1727
|
currentBaseMarks.push(mark);
|
|
1647
1728
|
}
|
|
1648
1729
|
});
|
|
1649
|
-
this.
|
|
1650
|
-
this.
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
layout(currentMarks) {
|
|
1654
|
-
const { textStyle, position, offset } = this.attribute;
|
|
1655
|
-
let { data } = this.attribute;
|
|
1656
|
-
if (vutils.isFunction(data)) {
|
|
1657
|
-
data = data({});
|
|
1730
|
+
this._idToGraphic?.clear();
|
|
1731
|
+
this._baseMarks = currentBaseMarks;
|
|
1732
|
+
if (!currentBaseMarks || currentBaseMarks.length === 0) {
|
|
1733
|
+
return;
|
|
1658
1734
|
}
|
|
1735
|
+
const { data } = this.attribute;
|
|
1659
1736
|
if (!data || data.length === 0) {
|
|
1660
|
-
return
|
|
1737
|
+
return;
|
|
1661
1738
|
}
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
currentMarks = currentMarks.sort(this.attribute.sort);
|
|
1739
|
+
if (!this._idToGraphic) {
|
|
1740
|
+
this._idToGraphic = new Map();
|
|
1665
1741
|
}
|
|
1666
|
-
|
|
1667
|
-
|
|
1742
|
+
for (let i = 0; i < currentBaseMarks.length; i++) {
|
|
1743
|
+
const textData = data[i];
|
|
1744
|
+
const baseMark = currentBaseMarks[i];
|
|
1745
|
+
if (textData && baseMark) {
|
|
1746
|
+
if (!vutils.isValid(textData.id)) {
|
|
1747
|
+
textData.id = `vrender-component-${this.name}-${i}`;
|
|
1748
|
+
}
|
|
1749
|
+
this._idToGraphic.set(textData.id, baseMark);
|
|
1750
|
+
}
|
|
1668
1751
|
}
|
|
1752
|
+
}
|
|
1753
|
+
layout(data = []) {
|
|
1754
|
+
const { textStyle = {}, position, offset } = this.attribute;
|
|
1755
|
+
const labels = [];
|
|
1669
1756
|
for (let i = 0; i < data.length; i++) {
|
|
1670
1757
|
const textData = data[i];
|
|
1671
|
-
const baseMark =
|
|
1758
|
+
const baseMark = this._idToGraphic.get(textData.id);
|
|
1672
1759
|
const labelAttribute = {
|
|
1673
1760
|
...textStyle,
|
|
1674
|
-
...textData
|
|
1675
|
-
_relatedIndex: i
|
|
1761
|
+
...textData
|
|
1676
1762
|
};
|
|
1677
|
-
this.
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
const textAttributes = this.labeling(textBounds, graphicBounds, vutils.isFunction(position) ? position(textData) : position, offset);
|
|
1684
|
-
if (!textAttributes) {
|
|
1685
|
-
continue;
|
|
1686
|
-
}
|
|
1687
|
-
labelAttribute.x = textAttributes.x;
|
|
1688
|
-
labelAttribute.y = textAttributes.y;
|
|
1689
|
-
labels.push(labelAttribute);
|
|
1763
|
+
const text = this._createLabelText(labelAttribute);
|
|
1764
|
+
const textBounds = this.getGraphicBounds(text);
|
|
1765
|
+
const graphicBounds = this.getGraphicBounds(baseMark, { x: textData.x, y: textData.y });
|
|
1766
|
+
const textLocation = this.labeling(textBounds, graphicBounds, vutils.isFunction(position) ? position(textData) : position, offset);
|
|
1767
|
+
if (!textLocation) {
|
|
1768
|
+
continue;
|
|
1690
1769
|
}
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
labels
|
|
1770
|
+
labelAttribute.x = textLocation.x;
|
|
1771
|
+
labelAttribute.y = textLocation.y;
|
|
1772
|
+
text.setAttributes(textLocation);
|
|
1773
|
+
labels.push(text);
|
|
1695
1774
|
}
|
|
1696
1775
|
return labels;
|
|
1697
1776
|
}
|
|
1698
|
-
|
|
1777
|
+
_overlapping(labels) {
|
|
1699
1778
|
if (labels.length === 0) {
|
|
1700
1779
|
return [];
|
|
1701
1780
|
}
|
|
1781
|
+
const option = this.attribute.overlap;
|
|
1702
1782
|
const result = [];
|
|
1703
1783
|
const baseMarkGroup = this.getBaseMarkGroup();
|
|
1704
1784
|
const size = option.size ?? {
|
|
@@ -1708,7 +1788,7 @@
|
|
|
1708
1788
|
if (size.width === 0 || size.height === 0) {
|
|
1709
1789
|
return labels;
|
|
1710
1790
|
}
|
|
1711
|
-
const { avoidBaseMark, strategy = [], hideOnHit = true, clampForce = true } = option;
|
|
1791
|
+
const { avoidBaseMark, strategy = [], hideOnHit = true, clampForce = true, avoidMarks = [] } = option;
|
|
1712
1792
|
const bmpTool = this._bmpTool || bitmapTool(size.width, size.height);
|
|
1713
1793
|
const bitmap = this._bitmap || bmpTool.bitmap();
|
|
1714
1794
|
const checkBounds = strategy.some(s => s.type === 'bound');
|
|
@@ -1717,22 +1797,34 @@
|
|
|
1717
1797
|
mark.AABBBounds && bitmap.setRange(boundToRange(bmpTool, mark.AABBBounds, true));
|
|
1718
1798
|
});
|
|
1719
1799
|
}
|
|
1800
|
+
if (avoidMarks.length > 0) {
|
|
1801
|
+
avoidMarks.forEach(avoid => {
|
|
1802
|
+
if (vutils.isString(avoid)) {
|
|
1803
|
+
getNoneGroupMarksByName(this.getRootNode(), avoid).forEach(avoidMark => {
|
|
1804
|
+
avoidMark.AABBBounds && bitmap.setRange(boundToRange(bmpTool, avoidMark.AABBBounds, true));
|
|
1805
|
+
});
|
|
1806
|
+
}
|
|
1807
|
+
else if (avoid.AABBBounds) {
|
|
1808
|
+
bitmap.setRange(boundToRange(bmpTool, avoid.AABBBounds, true));
|
|
1809
|
+
}
|
|
1810
|
+
});
|
|
1811
|
+
}
|
|
1720
1812
|
for (let i = 0; i < labels.length; i++) {
|
|
1721
1813
|
if (labels[i].visible === false) {
|
|
1722
1814
|
continue;
|
|
1723
1815
|
}
|
|
1724
|
-
const text =
|
|
1725
|
-
const baseMark = this.
|
|
1816
|
+
const text = labels[i];
|
|
1817
|
+
const baseMark = this._idToGraphic.get(text.attribute.id);
|
|
1726
1818
|
text.update();
|
|
1727
1819
|
if (canPlace(bmpTool, bitmap, text.AABBBounds, clampForce)) {
|
|
1728
1820
|
if (!checkBounds) {
|
|
1729
1821
|
bitmap.setRange(boundToRange(bmpTool, text.AABBBounds, true));
|
|
1730
|
-
result.push(
|
|
1822
|
+
result.push(text);
|
|
1731
1823
|
continue;
|
|
1732
1824
|
}
|
|
1733
1825
|
if (checkBounds && baseMark?.AABBBounds && canPlaceInside(text.AABBBounds, baseMark?.AABBBounds)) {
|
|
1734
1826
|
bitmap.setRange(boundToRange(bmpTool, text.AABBBounds, true));
|
|
1735
|
-
result.push(
|
|
1827
|
+
result.push(text);
|
|
1736
1828
|
continue;
|
|
1737
1829
|
}
|
|
1738
1830
|
}
|
|
@@ -1740,28 +1832,33 @@
|
|
|
1740
1832
|
for (let j = 0; j < strategy.length; j++) {
|
|
1741
1833
|
hasPlace = place(bmpTool, bitmap, strategy[j], this.attribute, text, this.getGraphicBounds(baseMark, labels[i]), this.labeling);
|
|
1742
1834
|
if (hasPlace !== false) {
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
x: hasPlace.x,
|
|
1746
|
-
y: hasPlace.y
|
|
1747
|
-
});
|
|
1835
|
+
text.setAttributes({ x: hasPlace.x, y: hasPlace.y });
|
|
1836
|
+
result.push(text);
|
|
1748
1837
|
break;
|
|
1749
1838
|
}
|
|
1750
1839
|
}
|
|
1751
|
-
!hasPlace &&
|
|
1840
|
+
if (!hasPlace && clampForce) {
|
|
1841
|
+
const { dx = 0, dy = 0 } = clampText(text, bmpTool.width, bmpTool.height);
|
|
1842
|
+
if (!(dx === 0 && dy === 0) &&
|
|
1843
|
+
canPlace(bmpTool, bitmap, {
|
|
1844
|
+
x1: text.AABBBounds.x1 + dx,
|
|
1845
|
+
x2: text.AABBBounds.x2 + dx,
|
|
1846
|
+
y1: text.AABBBounds.y1 + dy,
|
|
1847
|
+
y2: text.AABBBounds.y2 + dy
|
|
1848
|
+
})) {
|
|
1849
|
+
text.setAttributes({ x: text.attribute.x + dx, y: text.attribute.y + dy });
|
|
1850
|
+
bitmap.setRange(boundToRange(bmpTool, text.AABBBounds, true));
|
|
1851
|
+
result.push(text);
|
|
1852
|
+
continue;
|
|
1853
|
+
}
|
|
1854
|
+
}
|
|
1855
|
+
!hasPlace && !hideOnHit && result.push(text);
|
|
1752
1856
|
}
|
|
1753
1857
|
if (vutils.isFunction(this.onAfterLabelOverlap)) {
|
|
1754
1858
|
this.onAfterLabelOverlap(bitmap);
|
|
1755
1859
|
}
|
|
1756
1860
|
return result;
|
|
1757
1861
|
}
|
|
1758
|
-
getBaseMarks() {
|
|
1759
|
-
const baseMarkGroup = this.getBaseMarkGroup();
|
|
1760
|
-
if (!baseMarkGroup) {
|
|
1761
|
-
return;
|
|
1762
|
-
}
|
|
1763
|
-
return baseMarkGroup.getChildren();
|
|
1764
|
-
}
|
|
1765
1862
|
getBaseMarkGroup() {
|
|
1766
1863
|
const { baseMarkGroupName } = this.attribute;
|
|
1767
1864
|
if (!baseMarkGroupName) {
|
|
@@ -1786,17 +1883,16 @@
|
|
|
1786
1883
|
const easing = animationConfig.easing ?? DefaultLabelAnimation.easing;
|
|
1787
1884
|
const delay = animationConfig.delay ?? 0;
|
|
1788
1885
|
const currentTextMap = new Map();
|
|
1789
|
-
const prevTextMap = this.
|
|
1886
|
+
const prevTextMap = this._graphicToText || new Map();
|
|
1790
1887
|
const texts = [];
|
|
1791
|
-
labels.forEach((
|
|
1792
|
-
const
|
|
1793
|
-
const relatedGraphic = this._relationMap.get(label._relatedIndex);
|
|
1888
|
+
labels.forEach((text, index) => {
|
|
1889
|
+
const relatedGraphic = this._idToGraphic.get(text.attribute.id);
|
|
1794
1890
|
const state = prevTextMap?.get(relatedGraphic) ? 'update' : 'enter';
|
|
1795
1891
|
if (state === 'enter') {
|
|
1796
1892
|
texts.push(text);
|
|
1797
1893
|
currentTextMap.set(relatedGraphic, text);
|
|
1798
1894
|
if (!disableAnimation && relatedGraphic) {
|
|
1799
|
-
const { from, to } = getAnimationAttributes(
|
|
1895
|
+
const { from, to } = getAnimationAttributes(text.attribute, 'fadeIn');
|
|
1800
1896
|
this.add(text);
|
|
1801
1897
|
relatedGraphic.onAnimateBind = () => {
|
|
1802
1898
|
text.setAttributes(from);
|
|
@@ -1846,7 +1942,7 @@
|
|
|
1846
1942
|
});
|
|
1847
1943
|
}
|
|
1848
1944
|
});
|
|
1849
|
-
this.
|
|
1945
|
+
this._graphicToText = currentTextMap;
|
|
1850
1946
|
}
|
|
1851
1947
|
_afterRelatedGraphicAttributeUpdate(text, texts, index, relatedGraphic, { mode, duration, easing, to, delay }) {
|
|
1852
1948
|
const listener = (event) => {
|
|
@@ -1897,30 +1993,34 @@
|
|
|
1897
1993
|
return listener;
|
|
1898
1994
|
}
|
|
1899
1995
|
_smartInvert(labels) {
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
}
|
|
1996
|
+
const option = (this.attribute.smartInvert || {});
|
|
1997
|
+
const { textType, contrastRatiosThreshold, alternativeColors } = option;
|
|
1903
1998
|
for (let i = 0; i < labels.length; i++) {
|
|
1904
|
-
const label = labels
|
|
1999
|
+
const label = labels[i];
|
|
1905
2000
|
if (!label) {
|
|
1906
2001
|
continue;
|
|
1907
2002
|
}
|
|
1908
|
-
const
|
|
1909
|
-
|
|
1910
|
-
|
|
2003
|
+
const baseMark = this._idToGraphic.get(label.attribute.id);
|
|
2004
|
+
const isInside = canPlaceInside(label.AABBBounds, baseMark?.AABBBounds);
|
|
2005
|
+
if (label.attribute.stroke && label.attribute.lineWidth > 0) {
|
|
2006
|
+
label.setAttributes({
|
|
2007
|
+
fill: labelSmartInvert(label.attribute.fill, label.attribute.stroke, textType, contrastRatiosThreshold, alternativeColors)
|
|
2008
|
+
});
|
|
1911
2009
|
}
|
|
1912
2010
|
else if (isInside) {
|
|
1913
|
-
const baseMark = this._relationMap.get(label._relatedIndex);
|
|
1914
2011
|
const backgroundColor = baseMark.attribute.fill;
|
|
1915
|
-
const foregroundColor = label.fill;
|
|
1916
|
-
label.
|
|
2012
|
+
const foregroundColor = label.attribute.fill;
|
|
2013
|
+
label.setAttributes({
|
|
2014
|
+
fill: labelSmartInvert(foregroundColor, backgroundColor, textType, contrastRatiosThreshold, alternativeColors)
|
|
2015
|
+
});
|
|
1917
2016
|
}
|
|
1918
|
-
else if (label.lineWidth > 0) {
|
|
1919
|
-
const
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
2017
|
+
else if (label.attribute.lineWidth > 0) {
|
|
2018
|
+
const backgroundColor = label.attribute.stroke;
|
|
2019
|
+
const foregroundColor = label.attribute.fill;
|
|
2020
|
+
label.setAttributes({
|
|
2021
|
+
stroke: baseMark.attribute.fill,
|
|
2022
|
+
fill: labelSmartInvert(foregroundColor, backgroundColor, textType, contrastRatiosThreshold, alternativeColors)
|
|
2023
|
+
});
|
|
1924
2024
|
}
|
|
1925
2025
|
}
|
|
1926
2026
|
}
|
|
@@ -2375,6 +2475,7 @@
|
|
|
2375
2475
|
},
|
|
2376
2476
|
startSymbol: {
|
|
2377
2477
|
visible: false,
|
|
2478
|
+
autoRotate: true,
|
|
2378
2479
|
symbolType: 'triangle',
|
|
2379
2480
|
size: 12,
|
|
2380
2481
|
refX: 0,
|
|
@@ -2387,6 +2488,7 @@
|
|
|
2387
2488
|
},
|
|
2388
2489
|
endSymbol: {
|
|
2389
2490
|
visible: false,
|
|
2491
|
+
autoRotate: true,
|
|
2390
2492
|
symbolType: 'triangle',
|
|
2391
2493
|
size: 12,
|
|
2392
2494
|
refX: 0,
|
|
@@ -2458,6 +2560,7 @@
|
|
|
2458
2560
|
this.add(line);
|
|
2459
2561
|
}
|
|
2460
2562
|
renderSymbol(attribute, dim) {
|
|
2563
|
+
const { autoRotate = true } = attribute;
|
|
2461
2564
|
let symbol;
|
|
2462
2565
|
if (attribute?.visible) {
|
|
2463
2566
|
const startAngle = this._startAngle;
|
|
@@ -2486,7 +2589,7 @@
|
|
|
2486
2589
|
...position,
|
|
2487
2590
|
symbolType: symbolType,
|
|
2488
2591
|
size,
|
|
2489
|
-
angle: rotate + refAngle,
|
|
2592
|
+
angle: autoRotate ? rotate + refAngle : 0,
|
|
2490
2593
|
strokeBoundsBuffer: 0,
|
|
2491
2594
|
...style
|
|
2492
2595
|
});
|
|
@@ -2522,6 +2625,7 @@
|
|
|
2522
2625
|
AXIS_ELEMENT_NAME["gridRegion"] = "axis-grid-region";
|
|
2523
2626
|
AXIS_ELEMENT_NAME["line"] = "axis-line";
|
|
2524
2627
|
AXIS_ELEMENT_NAME["background"] = "axis-background";
|
|
2628
|
+
AXIS_ELEMENT_NAME["axisLabelBackground"] = "axis-label-background";
|
|
2525
2629
|
})(exports.AXIS_ELEMENT_NAME || (exports.AXIS_ELEMENT_NAME = {}));
|
|
2526
2630
|
exports.AxisStateValue = void 0;
|
|
2527
2631
|
(function (AxisStateValue) {
|
|
@@ -2704,7 +2808,7 @@
|
|
|
2704
2808
|
}
|
|
2705
2809
|
};
|
|
2706
2810
|
_renderInner(container) {
|
|
2707
|
-
const { title, label, tick, line, grid, items
|
|
2811
|
+
const { title, label, tick, line, grid, items } = this.attribute;
|
|
2708
2812
|
const axisContainer = vrender.createGroup({ x: 0, y: 0, zIndex: 1 });
|
|
2709
2813
|
axisContainer.name = exports.AXIS_ELEMENT_NAME.axisContainer;
|
|
2710
2814
|
axisContainer.id = this._getNodeId('container');
|
|
@@ -2728,7 +2832,9 @@
|
|
|
2728
2832
|
items.forEach((axisItems, layer) => {
|
|
2729
2833
|
const layerLabelGroup = this.renderLabels(labelGroup, axisItems, layer);
|
|
2730
2834
|
const labels = layerLabelGroup.getChildren();
|
|
2731
|
-
this.
|
|
2835
|
+
this.beforeLabelsOverlap(labels, axisItems, layerLabelGroup, layer, items.length);
|
|
2836
|
+
this.handleLabelsOverlap(labels, axisItems, layerLabelGroup, layer, items.length);
|
|
2837
|
+
this.afterLabelsOverlap(labels, axisItems, layerLabelGroup, layer, items.length);
|
|
2732
2838
|
});
|
|
2733
2839
|
}
|
|
2734
2840
|
if (grid?.visible) {
|
|
@@ -2738,22 +2844,6 @@
|
|
|
2738
2844
|
if (title?.visible) {
|
|
2739
2845
|
this.renderTitle(axisContainer);
|
|
2740
2846
|
}
|
|
2741
|
-
if (panel && panel.visible) {
|
|
2742
|
-
const axisContainerBounds = axisContainer.AABBBounds;
|
|
2743
|
-
const bgRect = vrender.createRect({
|
|
2744
|
-
x: axisContainerBounds.x1,
|
|
2745
|
-
y: axisContainerBounds.y1,
|
|
2746
|
-
width: axisContainerBounds.width(),
|
|
2747
|
-
height: axisContainerBounds.height(),
|
|
2748
|
-
...panel.style
|
|
2749
|
-
});
|
|
2750
|
-
bgRect.name = exports.AXIS_ELEMENT_NAME.background;
|
|
2751
|
-
bgRect.id = this._getNodeId('background');
|
|
2752
|
-
if (!vutils.isEmpty(panel.state)) {
|
|
2753
|
-
bgRect.states = vutils.merge({}, DEFAULT_STATES$2, panel.state);
|
|
2754
|
-
}
|
|
2755
|
-
axisContainer.insertBefore(bgRect, axisContainer.firstChild);
|
|
2756
|
-
}
|
|
2757
2847
|
}
|
|
2758
2848
|
renderTicks(container) {
|
|
2759
2849
|
const tickLineItems = this.getTickLineItems();
|
|
@@ -2768,7 +2858,7 @@
|
|
|
2768
2858
|
line.name = exports.AXIS_ELEMENT_NAME.tick;
|
|
2769
2859
|
line.id = this._getNodeId(item.id);
|
|
2770
2860
|
if (vutils.isEmpty(this.attribute.tick?.state)) {
|
|
2771
|
-
line.states =
|
|
2861
|
+
line.states = DEFAULT_STATES$2;
|
|
2772
2862
|
}
|
|
2773
2863
|
else {
|
|
2774
2864
|
const data = this.data[index];
|
|
@@ -2794,7 +2884,7 @@
|
|
|
2794
2884
|
line.name = exports.AXIS_ELEMENT_NAME.subTick;
|
|
2795
2885
|
line.id = this._getNodeId(`${index}`);
|
|
2796
2886
|
if (vutils.isEmpty(subTick.state)) {
|
|
2797
|
-
line.states =
|
|
2887
|
+
line.states = DEFAULT_STATES$2;
|
|
2798
2888
|
}
|
|
2799
2889
|
else {
|
|
2800
2890
|
const subTickLineState = vutils.merge({}, DEFAULT_STATES$2, subTick.state);
|
|
@@ -2831,7 +2921,7 @@
|
|
|
2831
2921
|
text.name = exports.AXIS_ELEMENT_NAME.label;
|
|
2832
2922
|
text.id = this._getNodeId(`layer${layer}-label-${item.id}`);
|
|
2833
2923
|
if (vutils.isEmpty(this.attribute.label?.state)) {
|
|
2834
|
-
text.states =
|
|
2924
|
+
text.states = DEFAULT_STATES$2;
|
|
2835
2925
|
}
|
|
2836
2926
|
else {
|
|
2837
2927
|
const labelState = vutils.merge({}, DEFAULT_STATES$2, this.attribute.label.state);
|
|
@@ -3280,7 +3370,7 @@
|
|
|
3280
3370
|
? orient === 'top' || orient === 'bottom'
|
|
3281
3371
|
? null
|
|
3282
3372
|
: limitLength
|
|
3283
|
-
: limitLength / Math.sin(label.attribute.angle);
|
|
3373
|
+
: Math.abs(limitLength / Math.sin(label.attribute.angle));
|
|
3284
3374
|
label.setAttributes({
|
|
3285
3375
|
maxLineWidth: limitLabelLength,
|
|
3286
3376
|
ellipsis
|
|
@@ -3288,6 +3378,67 @@
|
|
|
3288
3378
|
});
|
|
3289
3379
|
}
|
|
3290
3380
|
|
|
3381
|
+
function alignAxisLabels(labels, start, containerSize, orient, align) {
|
|
3382
|
+
if (orient === 'right' || orient === 'left') {
|
|
3383
|
+
if (align === 'left') {
|
|
3384
|
+
const flag = orient === 'right' ? 0 : -1;
|
|
3385
|
+
labels.forEach(label => {
|
|
3386
|
+
label.setAttributes({
|
|
3387
|
+
x: start + containerSize * flag,
|
|
3388
|
+
textAlign: 'left'
|
|
3389
|
+
});
|
|
3390
|
+
});
|
|
3391
|
+
}
|
|
3392
|
+
else if (align === 'right') {
|
|
3393
|
+
const flag = orient === 'right' ? 1 : 0;
|
|
3394
|
+
labels.forEach(label => {
|
|
3395
|
+
label.setAttributes({
|
|
3396
|
+
x: start + containerSize * flag,
|
|
3397
|
+
textAlign: 'right'
|
|
3398
|
+
});
|
|
3399
|
+
});
|
|
3400
|
+
}
|
|
3401
|
+
else if (align === 'center') {
|
|
3402
|
+
const flag = orient === 'right' ? 1 : -1;
|
|
3403
|
+
labels.forEach(label => {
|
|
3404
|
+
label.setAttributes({
|
|
3405
|
+
x: start + containerSize * 0.5 * flag,
|
|
3406
|
+
textAlign: 'center'
|
|
3407
|
+
});
|
|
3408
|
+
});
|
|
3409
|
+
}
|
|
3410
|
+
}
|
|
3411
|
+
else if (orient === 'bottom' || orient === 'top') {
|
|
3412
|
+
if (align === 'top') {
|
|
3413
|
+
const flag = orient === 'bottom' ? 0 : -1;
|
|
3414
|
+
labels.forEach(label => {
|
|
3415
|
+
label.setAttributes({
|
|
3416
|
+
y: start + containerSize * flag,
|
|
3417
|
+
textBaseline: 'top'
|
|
3418
|
+
});
|
|
3419
|
+
});
|
|
3420
|
+
}
|
|
3421
|
+
else if (align === 'bottom') {
|
|
3422
|
+
const flag = orient === 'bottom' ? 1 : 0;
|
|
3423
|
+
labels.forEach(label => {
|
|
3424
|
+
label.setAttributes({
|
|
3425
|
+
y: start + containerSize * flag,
|
|
3426
|
+
textBaseline: 'bottom'
|
|
3427
|
+
});
|
|
3428
|
+
});
|
|
3429
|
+
}
|
|
3430
|
+
else if (align === 'middle') {
|
|
3431
|
+
const flag = orient === 'bottom' ? 1 : -1;
|
|
3432
|
+
labels.forEach(label => {
|
|
3433
|
+
label.setAttributes({
|
|
3434
|
+
y: start + containerSize * 0.5 * flag,
|
|
3435
|
+
textBaseline: 'middle'
|
|
3436
|
+
});
|
|
3437
|
+
});
|
|
3438
|
+
}
|
|
3439
|
+
}
|
|
3440
|
+
}
|
|
3441
|
+
|
|
3291
3442
|
function getCirclePoints(center, count, radius, startAngle, endAngle) {
|
|
3292
3443
|
const points = [];
|
|
3293
3444
|
const range = endAngle - startAngle;
|
|
@@ -3305,6 +3456,25 @@
|
|
|
3305
3456
|
this.setMode(mode);
|
|
3306
3457
|
}
|
|
3307
3458
|
}
|
|
3459
|
+
_renderInner(container) {
|
|
3460
|
+
super._renderInner(container);
|
|
3461
|
+
const { panel } = this.attribute;
|
|
3462
|
+
if (panel && panel.visible) {
|
|
3463
|
+
const axisContainer = this.axisContainer;
|
|
3464
|
+
const axisContainerBounds = axisContainer.AABBBounds;
|
|
3465
|
+
const bgRect = vrender.createRect({
|
|
3466
|
+
x: axisContainerBounds.x1,
|
|
3467
|
+
y: axisContainerBounds.y1,
|
|
3468
|
+
width: axisContainerBounds.width(),
|
|
3469
|
+
height: axisContainerBounds.height(),
|
|
3470
|
+
...panel.style
|
|
3471
|
+
});
|
|
3472
|
+
bgRect.name = exports.AXIS_ELEMENT_NAME.background;
|
|
3473
|
+
bgRect.id = this._getNodeId('background');
|
|
3474
|
+
bgRect.states = vutils.merge({}, DEFAULT_STATES$1, panel.state ?? {});
|
|
3475
|
+
axisContainer.insertBefore(bgRect, axisContainer.firstChild);
|
|
3476
|
+
}
|
|
3477
|
+
}
|
|
3308
3478
|
renderLine(container) {
|
|
3309
3479
|
const { start, end, line } = this.attribute;
|
|
3310
3480
|
const { startSymbol, endSymbol, style, breakRange, breakShape, breakShapeStyle, state, ...restLineAttrs } = line;
|
|
@@ -3469,13 +3639,11 @@
|
|
|
3469
3639
|
textBaseline,
|
|
3470
3640
|
...textStyle
|
|
3471
3641
|
},
|
|
3472
|
-
state:
|
|
3473
|
-
|
|
3474
|
-
: {
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
panel: state.background
|
|
3478
|
-
}
|
|
3642
|
+
state: {
|
|
3643
|
+
text: vutils.merge({}, DEFAULT_STATES$1, state?.text),
|
|
3644
|
+
shape: vutils.merge({}, DEFAULT_STATES$1, state?.shape),
|
|
3645
|
+
panel: vutils.merge({}, DEFAULT_STATES$1, state?.background)
|
|
3646
|
+
}
|
|
3479
3647
|
};
|
|
3480
3648
|
attrs.angle = angle;
|
|
3481
3649
|
if (shape && shape.visible) {
|
|
@@ -3612,24 +3780,21 @@
|
|
|
3612
3780
|
}
|
|
3613
3781
|
return base;
|
|
3614
3782
|
}
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3783
|
+
beforeLabelsOverlap(labelShapes, labelData, labelContainer, layer, layerCount) {
|
|
3784
|
+
const orient = this.attribute.orient;
|
|
3785
|
+
if (orient === 'left' || orient === 'right') {
|
|
3786
|
+
rotateYAxis(orient, labelShapes);
|
|
3618
3787
|
}
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
let limitLength = verticalLimitSize;
|
|
3622
|
-
let titleHeight = 0;
|
|
3623
|
-
let titleSpacing = 0;
|
|
3624
|
-
const axisLineWidth = line?.visible ? line.style.lineWidth ?? 1 : 0;
|
|
3625
|
-
const tickLength = tick?.visible ? tick.length ?? 4 : 0;
|
|
3626
|
-
if (title?.visible) {
|
|
3627
|
-
titleHeight = measureTextSize(title.text, title.textStyle).height;
|
|
3628
|
-
titleSpacing = title.space;
|
|
3788
|
+
else if (orient === 'bottom' || orient === 'top') {
|
|
3789
|
+
rotateXAxis(orient, labelShapes);
|
|
3629
3790
|
}
|
|
3630
|
-
|
|
3631
|
-
|
|
3791
|
+
}
|
|
3792
|
+
handleLabelsOverlap(labelShapes, labelData, labelContainer, layer, layerCount) {
|
|
3793
|
+
if (vutils.isEmpty(labelShapes)) {
|
|
3794
|
+
return;
|
|
3632
3795
|
}
|
|
3796
|
+
const { verticalLimitSize, label, orient } = this.attribute;
|
|
3797
|
+
const limitLength = this._getAxisLabelLimitLength(verticalLimitSize, layerCount);
|
|
3633
3798
|
const { layoutFunc, autoRotate: autoRotate$1, autoRotateAngle, autoLimit: autoLimit$1, limitEllipsis, autoHide: autoHide$1, autoHideMethod, autoHideSeparation } = label;
|
|
3634
3799
|
if (vutils.isFunction(layoutFunc)) {
|
|
3635
3800
|
layoutFunc(labelShapes, labelData, layer, this);
|
|
@@ -3657,6 +3822,79 @@
|
|
|
3657
3822
|
}
|
|
3658
3823
|
}
|
|
3659
3824
|
}
|
|
3825
|
+
afterLabelsOverlap(labelShapes, labelData, labelContainer, layer, layerCount) {
|
|
3826
|
+
const { verticalLimitSize, orient } = this.attribute;
|
|
3827
|
+
const isHorizontal = orient === 'bottom' || orient === 'top';
|
|
3828
|
+
const axisLabelContainerBounds = labelContainer.AABBBounds;
|
|
3829
|
+
let axisLabelContainerSize = isHorizontal ? axisLabelContainerBounds.height() : axisLabelContainerBounds.width();
|
|
3830
|
+
const { verticalMinSize } = this.attribute;
|
|
3831
|
+
if (vutils.isValidNumber(verticalMinSize) && (!vutils.isValidNumber(verticalLimitSize) || verticalMinSize <= verticalLimitSize)) {
|
|
3832
|
+
const minSize = this._getAxisLabelLimitLength(verticalMinSize, layerCount);
|
|
3833
|
+
axisLabelContainerSize = Math.max(axisLabelContainerSize, minSize);
|
|
3834
|
+
let x;
|
|
3835
|
+
let y;
|
|
3836
|
+
if (orient === 'left') {
|
|
3837
|
+
x = axisLabelContainerBounds.x2 - axisLabelContainerSize;
|
|
3838
|
+
y = axisLabelContainerBounds.y1;
|
|
3839
|
+
}
|
|
3840
|
+
else if (orient === 'right') {
|
|
3841
|
+
x = axisLabelContainerBounds.x1;
|
|
3842
|
+
y = axisLabelContainerBounds.y1;
|
|
3843
|
+
}
|
|
3844
|
+
else if (orient === 'top') {
|
|
3845
|
+
x = axisLabelContainerBounds.x1;
|
|
3846
|
+
y = axisLabelContainerBounds.y2 - axisLabelContainerSize;
|
|
3847
|
+
}
|
|
3848
|
+
else if (orient === 'bottom') {
|
|
3849
|
+
x = axisLabelContainerBounds.x1;
|
|
3850
|
+
y = axisLabelContainerBounds.y1;
|
|
3851
|
+
}
|
|
3852
|
+
const bgRect = vrender.createRect({
|
|
3853
|
+
x,
|
|
3854
|
+
y,
|
|
3855
|
+
width: isHorizontal ? axisLabelContainerBounds.width() : axisLabelContainerSize,
|
|
3856
|
+
height: isHorizontal ? axisLabelContainerSize : axisLabelContainerBounds.height(),
|
|
3857
|
+
pickable: false
|
|
3858
|
+
});
|
|
3859
|
+
bgRect.name = exports.AXIS_ELEMENT_NAME.axisLabelBackground;
|
|
3860
|
+
bgRect.id = this._getNodeId('axis-label-background');
|
|
3861
|
+
labelContainer.insertBefore(bgRect, labelContainer.firstChild);
|
|
3862
|
+
}
|
|
3863
|
+
if (vutils.isValid(this.attribute.label.containerAlign)) {
|
|
3864
|
+
let start;
|
|
3865
|
+
if (orient === 'left') {
|
|
3866
|
+
start = axisLabelContainerBounds.x2;
|
|
3867
|
+
}
|
|
3868
|
+
else if (orient === 'right') {
|
|
3869
|
+
start = axisLabelContainerBounds.x1;
|
|
3870
|
+
}
|
|
3871
|
+
else if (orient === 'top') {
|
|
3872
|
+
start = axisLabelContainerBounds.y2;
|
|
3873
|
+
}
|
|
3874
|
+
else if (orient === 'bottom') {
|
|
3875
|
+
start = axisLabelContainerBounds.y1;
|
|
3876
|
+
}
|
|
3877
|
+
alignAxisLabels(labelShapes, start, axisLabelContainerSize, orient, this.attribute.label.containerAlign);
|
|
3878
|
+
}
|
|
3879
|
+
}
|
|
3880
|
+
_getAxisLabelLimitLength(limitSize, layerCount) {
|
|
3881
|
+
const { label, title, line, tick } = this.attribute;
|
|
3882
|
+
const labelSpace = label.space ?? 4;
|
|
3883
|
+
let limitLength = limitSize;
|
|
3884
|
+
let titleHeight = 0;
|
|
3885
|
+
let titleSpacing = 0;
|
|
3886
|
+
const axisLineWidth = line?.visible ? line.style.lineWidth ?? 1 : 0;
|
|
3887
|
+
const tickLength = tick?.visible ? tick.length ?? 4 : 0;
|
|
3888
|
+
if (title?.visible) {
|
|
3889
|
+
titleHeight = measureTextSize(title.text, title.textStyle).height;
|
|
3890
|
+
const padding = vutils.normalizePadding(title.padding);
|
|
3891
|
+
titleSpacing = title.space + padding[0] + padding[2];
|
|
3892
|
+
}
|
|
3893
|
+
if (limitLength) {
|
|
3894
|
+
limitLength = (limitLength - labelSpace - titleSpacing - titleHeight - axisLineWidth - tickLength) / layerCount;
|
|
3895
|
+
}
|
|
3896
|
+
return limitLength;
|
|
3897
|
+
}
|
|
3660
3898
|
}
|
|
3661
3899
|
|
|
3662
3900
|
class CircleAxis extends AxisBase {
|
|
@@ -3753,13 +3991,11 @@
|
|
|
3753
3991
|
textAlign: 'center',
|
|
3754
3992
|
...textStyle
|
|
3755
3993
|
},
|
|
3756
|
-
state:
|
|
3757
|
-
|
|
3758
|
-
: {
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
panel: state.background
|
|
3762
|
-
}
|
|
3994
|
+
state: {
|
|
3995
|
+
text: vutils.merge({}, DEFAULT_STATES$1, state?.text),
|
|
3996
|
+
shape: vutils.merge({}, DEFAULT_STATES$1, state?.shape),
|
|
3997
|
+
panel: vutils.merge({}, DEFAULT_STATES$1, state?.background)
|
|
3998
|
+
}
|
|
3763
3999
|
};
|
|
3764
4000
|
const { angle } = restAttrs;
|
|
3765
4001
|
attrs.angle = angle;
|
|
@@ -3911,7 +4147,13 @@
|
|
|
3911
4147
|
}
|
|
3912
4148
|
return base;
|
|
3913
4149
|
}
|
|
3914
|
-
|
|
4150
|
+
beforeLabelsOverlap(labelShapes, labelData, labelContainer, layer, layerCount) {
|
|
4151
|
+
return;
|
|
4152
|
+
}
|
|
4153
|
+
handleLabelsOverlap(labelShapes, labelData, labelContainer, layer, layerCount) {
|
|
4154
|
+
return;
|
|
4155
|
+
}
|
|
4156
|
+
afterLabelsOverlap(labelShapes, labelData, labelContainer, layer, layerCount) {
|
|
3915
4157
|
return;
|
|
3916
4158
|
}
|
|
3917
4159
|
}
|
|
@@ -4124,7 +4366,7 @@
|
|
|
4124
4366
|
}
|
|
4125
4367
|
},
|
|
4126
4368
|
middleHandlerStyle: {
|
|
4127
|
-
visible:
|
|
4369
|
+
visible: true,
|
|
4128
4370
|
background: {
|
|
4129
4371
|
size: 8,
|
|
4130
4372
|
style: {
|
|
@@ -4142,12 +4384,14 @@
|
|
|
4142
4384
|
}
|
|
4143
4385
|
},
|
|
4144
4386
|
startHandlerStyle: {
|
|
4387
|
+
visible: true,
|
|
4145
4388
|
symbolType: 'M -0.0544 0.25 C -0.0742 0.25 -0.0901 0.234 -0.0901 0.2143 L -0.0901 -0.1786 C -0.0901 -0.1983 -0.0742 -0.2143 -0.0544 -0.2143 L -0.0187 -0.2143 L -0.0187 -0.5 L 0.017 -0.5 L 0.017 -0.2143 L 0.0527 -0.2143 C 0.0724 -0.2143 0.0884 -0.1983 0.0884 -0.1786 L 0.0884 0.2143 C 0.0884 0.234 0.0724 0.25 0.0527 0.25 L 0.017 0.25 L 0.017 0.5 L -0.0187 0.5 L -0.0187 0.25 L -0.0544 0.25 Z M -0.0187 -0.1429 L -0.0544 -0.1429 L -0.0544 0.1786 L -0.0187 0.1786 L -0.0187 -0.1429 Z M 0.0527 -0.1429 L 0.017 -0.1429 L 0.017 0.1786 L 0.0527 0.1786 L 0.0527 -0.1429 Z',
|
|
4146
4389
|
fill: 'white',
|
|
4147
4390
|
stroke: '#B0C8F9',
|
|
4148
4391
|
lineWidth: 0.5
|
|
4149
4392
|
},
|
|
4150
4393
|
endHandlerStyle: {
|
|
4394
|
+
visible: true,
|
|
4151
4395
|
symbolType: 'M -0.0544 0.25 C -0.0742 0.25 -0.0901 0.234 -0.0901 0.2143 L -0.0901 -0.1786 C -0.0901 -0.1983 -0.0742 -0.2143 -0.0544 -0.2143 L -0.0187 -0.2143 L -0.0187 -0.5 L 0.017 -0.5 L 0.017 -0.2143 L 0.0527 -0.2143 C 0.0724 -0.2143 0.0884 -0.1983 0.0884 -0.1786 L 0.0884 0.2143 C 0.0884 0.234 0.0724 0.25 0.0527 0.25 L 0.017 0.25 L 0.017 0.5 L -0.0187 0.5 L -0.0187 0.25 L -0.0544 0.25 Z M -0.0187 -0.1429 L -0.0544 -0.1429 L -0.0544 0.1786 L -0.0187 0.1786 L -0.0187 -0.1429 Z M 0.0527 -0.1429 L 0.017 -0.1429 L 0.017 0.1786 L 0.0527 0.1786 L 0.0527 -0.1429 Z',
|
|
4152
4396
|
fill: 'white',
|
|
4153
4397
|
stroke: '#B0C8F9',
|
|
@@ -4219,7 +4463,7 @@
|
|
|
4219
4463
|
_layoutAttrFromConfig;
|
|
4220
4464
|
constructor(attributes) {
|
|
4221
4465
|
super(vutils.merge({}, DataZoom.defaultAttributes, attributes));
|
|
4222
|
-
const { start, end, size, orient, showDetail, position, previewData, previewCallbackX, previewCallbackY, previewCallbackX1, previewCallbackY1 } = this.attribute;
|
|
4466
|
+
const { start, end, size, orient, showDetail, position, previewData, previewCallbackX, previewCallbackY, previewCallbackX1, previewCallbackY1, updateStateCallback } = this.attribute;
|
|
4223
4467
|
const { width, height } = size;
|
|
4224
4468
|
start && (this.state.start = start);
|
|
4225
4469
|
end && (this.state.end = end);
|
|
@@ -4240,6 +4484,7 @@
|
|
|
4240
4484
|
vutils.isFunction(previewCallbackY) && (this._previewCallbackY = previewCallbackY);
|
|
4241
4485
|
vutils.isFunction(previewCallbackX1) && (this._previewCallbackX1 = previewCallbackX1);
|
|
4242
4486
|
vutils.isFunction(previewCallbackY1) && (this._previewCallbackY1 = previewCallbackY1);
|
|
4487
|
+
vutils.isFunction(updateStateCallback) && (this._updateStateCallback = updateStateCallback);
|
|
4243
4488
|
}
|
|
4244
4489
|
bindEvents() {
|
|
4245
4490
|
const { showDetail, brushSelect } = this.attribute;
|
|
@@ -4268,9 +4513,9 @@
|
|
|
4268
4513
|
if (this._selectedPreviewGroup) {
|
|
4269
4514
|
this._selectedPreviewGroup.addEventListener('pointerdown', (e) => this._onHandlerPointerDown(e, selectedTag));
|
|
4270
4515
|
}
|
|
4271
|
-
if (vrender.
|
|
4272
|
-
vrender.
|
|
4273
|
-
vrender.
|
|
4516
|
+
if (vrender.global.env === 'browser') {
|
|
4517
|
+
vrender.global.addEventListener('pointermove', this._onHandlerPointerMove.bind(this));
|
|
4518
|
+
vrender.global.addEventListener('pointerup', this._onHandlerPointerUp.bind(this));
|
|
4274
4519
|
}
|
|
4275
4520
|
this.addEventListener('pointermove', this._onHandlerPointerMove);
|
|
4276
4521
|
this.addEventListener('pointerup', this._onHandlerPointerUp);
|
|
@@ -4514,7 +4759,7 @@
|
|
|
4514
4759
|
if (this._layoutAttrFromConfig) {
|
|
4515
4760
|
return this._layoutAttrFromConfig;
|
|
4516
4761
|
}
|
|
4517
|
-
const { position: positionConfig, size, orient, middleHandlerStyle } = this.attribute;
|
|
4762
|
+
const { position: positionConfig, size, orient, middleHandlerStyle, startHandlerStyle, endHandlerStyle } = this.attribute;
|
|
4518
4763
|
const { width: widthConfig, height: heightConfig } = size;
|
|
4519
4764
|
const middleHandlerSize = middleHandlerStyle?.background?.size ?? 10;
|
|
4520
4765
|
let width;
|
|
@@ -4543,6 +4788,24 @@
|
|
|
4543
4788
|
height = heightConfig;
|
|
4544
4789
|
position = positionConfig;
|
|
4545
4790
|
}
|
|
4791
|
+
const startHandlerSize = startHandlerStyle?.size ?? (this._isHorizontal ? height : width);
|
|
4792
|
+
const endHandlerSize = endHandlerStyle?.size ?? (this._isHorizontal ? height : width);
|
|
4793
|
+
if (startHandlerStyle?.visible) {
|
|
4794
|
+
if (this._isHorizontal) {
|
|
4795
|
+
width -= (startHandlerSize + endHandlerSize) / 2;
|
|
4796
|
+
position = {
|
|
4797
|
+
x: position.x + startHandlerSize / 2,
|
|
4798
|
+
y: position.y
|
|
4799
|
+
};
|
|
4800
|
+
}
|
|
4801
|
+
else {
|
|
4802
|
+
height -= (startHandlerSize + endHandlerSize) / 2;
|
|
4803
|
+
position = {
|
|
4804
|
+
x: position.x,
|
|
4805
|
+
y: position.y + startHandlerSize
|
|
4806
|
+
};
|
|
4807
|
+
}
|
|
4808
|
+
}
|
|
4546
4809
|
this._layoutAttrFromConfig = {
|
|
4547
4810
|
position,
|
|
4548
4811
|
width,
|
|
@@ -4797,10 +5060,9 @@
|
|
|
4797
5060
|
else {
|
|
4798
5061
|
this._selectedPreviewArea = this._selectedPreviewGroup.createOrUpdateChild('selectedPreviewArea', { curveType: 'basis' }, 'area');
|
|
4799
5062
|
}
|
|
4800
|
-
const {
|
|
4801
|
-
const { width, height } = size;
|
|
5063
|
+
const { selectedBackgroundChartStyle } = this.attribute;
|
|
4802
5064
|
const { start, end } = this.state;
|
|
4803
|
-
this.
|
|
5065
|
+
const { position, width, height } = this.getLayoutAttrFromConfig();
|
|
4804
5066
|
this._selectedPreviewGroupClip.setAttributes({
|
|
4805
5067
|
x: this._isHorizontal ? position.x + start * width : position.x,
|
|
4806
5068
|
y: this._isHorizontal ? position.y : position.y + start * height,
|
|
@@ -4850,6 +5112,7 @@
|
|
|
4850
5112
|
this.state.end = end;
|
|
4851
5113
|
if (startAttr !== this.state.start || endAttr !== this.state.end) {
|
|
4852
5114
|
this.setAttributes({ start, end });
|
|
5115
|
+
this._updateStateCallback && this._updateStateCallback(start, end);
|
|
4853
5116
|
}
|
|
4854
5117
|
}
|
|
4855
5118
|
}
|
|
@@ -6233,7 +6496,9 @@
|
|
|
6233
6496
|
const innerGroupBounds = innerGroup.AABBBounds;
|
|
6234
6497
|
const innerGroupWidth = innerGroupBounds.width();
|
|
6235
6498
|
const innerGroupHeight = innerGroupBounds.height();
|
|
6236
|
-
const itemGroupWidth = this.
|
|
6499
|
+
const itemGroupWidth = vutils.isValid(this.attribute.item.width)
|
|
6500
|
+
? this.attribute.item.width
|
|
6501
|
+
: innerGroupWidth + parsedPadding[1] + parsedPadding[3];
|
|
6237
6502
|
const itemGroupHeight = this._itemHeightByUser || innerGroupHeight + parsedPadding[0] + parsedPadding[2];
|
|
6238
6503
|
itemGroup.attribute.width = itemGroupWidth;
|
|
6239
6504
|
itemGroup.attribute.height = itemGroupHeight;
|
|
@@ -6925,9 +7190,9 @@
|
|
|
6925
7190
|
e.stopPropagation();
|
|
6926
7191
|
this._currentHandler = e.target;
|
|
6927
7192
|
this._prePos = this._isHorizontal ? e.clientX : e.clientY;
|
|
6928
|
-
if (vrender.
|
|
6929
|
-
vrender.
|
|
6930
|
-
vrender.
|
|
7193
|
+
if (vrender.global.env === 'browser') {
|
|
7194
|
+
vrender.global.addEventListener('pointermove', this._onHandlerPointerMove);
|
|
7195
|
+
vrender.global.addEventListener('pointerup', this._onHandlerPointerUp);
|
|
6931
7196
|
}
|
|
6932
7197
|
else {
|
|
6933
7198
|
this._currentHandler.addEventListener('pointermove', this._onHandlerPointerMove);
|
|
@@ -6969,9 +7234,9 @@
|
|
|
6969
7234
|
_onHandlerPointerUp = (e) => {
|
|
6970
7235
|
e.preventDefault();
|
|
6971
7236
|
this._currentHandler = null;
|
|
6972
|
-
if (vrender.
|
|
6973
|
-
vrender.
|
|
6974
|
-
vrender.
|
|
7237
|
+
if (vrender.global.env === 'browser') {
|
|
7238
|
+
vrender.global.removeEventListener('pointermove', this._onHandlerPointerMove);
|
|
7239
|
+
vrender.global.removeEventListener('pointerup', this._onHandlerPointerUp);
|
|
6975
7240
|
}
|
|
6976
7241
|
else {
|
|
6977
7242
|
const currentTarget = e.target;
|
|
@@ -6983,9 +7248,9 @@
|
|
|
6983
7248
|
_onTrackPointerdown = (e) => {
|
|
6984
7249
|
e.stopPropagation();
|
|
6985
7250
|
this._prePos = this._isHorizontal ? e.clientX : e.clientY;
|
|
6986
|
-
if (vrender.
|
|
6987
|
-
vrender.
|
|
6988
|
-
vrender.
|
|
7251
|
+
if (vrender.global.env === 'browser') {
|
|
7252
|
+
vrender.global.addEventListener('pointermove', this._onTrackPointerMove);
|
|
7253
|
+
vrender.global.addEventListener('pointerup', this._onTrackPointerUp);
|
|
6989
7254
|
}
|
|
6990
7255
|
else {
|
|
6991
7256
|
this._track.addEventListener('pointermove', this._onTrackPointerMove);
|
|
@@ -7037,9 +7302,9 @@
|
|
|
7037
7302
|
};
|
|
7038
7303
|
_onTrackPointerUp = (e) => {
|
|
7039
7304
|
e.preventDefault();
|
|
7040
|
-
if (vrender.
|
|
7041
|
-
vrender.
|
|
7042
|
-
vrender.
|
|
7305
|
+
if (vrender.global.env === 'browser') {
|
|
7306
|
+
vrender.global.removeEventListener('pointermove', this._onTrackPointerMove);
|
|
7307
|
+
vrender.global.removeEventListener('pointerup', this._onTrackPointerUp);
|
|
7043
7308
|
}
|
|
7044
7309
|
else {
|
|
7045
7310
|
this._track.removeEventListener('pointermove', this._onTrackPointerMove);
|
|
@@ -8580,7 +8845,7 @@
|
|
|
8580
8845
|
this.dispatchCustomEvent(exports.PlayerEventEnum.OnPlay);
|
|
8581
8846
|
this._isReachEnd = false;
|
|
8582
8847
|
this._tickTime = Date.now();
|
|
8583
|
-
this._rafId = vrender.
|
|
8848
|
+
this._rafId = vrender.global.getRequestAnimationFrame()(this._play.bind(this, true));
|
|
8584
8849
|
};
|
|
8585
8850
|
_play = (isFirstPlay) => {
|
|
8586
8851
|
const now = Date.now();
|
|
@@ -8603,7 +8868,7 @@
|
|
|
8603
8868
|
(this._direction === 'reverse' && this._dataIndex <= this._minIndex)) {
|
|
8604
8869
|
this._isReachEnd = true;
|
|
8605
8870
|
}
|
|
8606
|
-
this._rafId = vrender.
|
|
8871
|
+
this._rafId = vrender.global.getRequestAnimationFrame()(this._play.bind(this, false));
|
|
8607
8872
|
};
|
|
8608
8873
|
_updateDataIndex = (dataIndex) => {
|
|
8609
8874
|
this._dataIndex = dataIndex;
|
|
@@ -8612,7 +8877,7 @@
|
|
|
8612
8877
|
_playEnd = () => {
|
|
8613
8878
|
this._isPlaying = false;
|
|
8614
8879
|
this._controller.togglePlay();
|
|
8615
|
-
vrender.
|
|
8880
|
+
vrender.global.getCancelAnimationFrame()(this._rafId);
|
|
8616
8881
|
this._activeIndex = -1;
|
|
8617
8882
|
this.dispatchCustomEvent(exports.PlayerEventEnum.OnEnd);
|
|
8618
8883
|
};
|
|
@@ -8621,7 +8886,7 @@
|
|
|
8621
8886
|
return;
|
|
8622
8887
|
}
|
|
8623
8888
|
this._isPlaying = false;
|
|
8624
|
-
vrender.
|
|
8889
|
+
vrender.global.getCancelAnimationFrame()(this._rafId);
|
|
8625
8890
|
this._controller.togglePlay();
|
|
8626
8891
|
this.dispatchCustomEvent(exports.PlayerEventEnum.OnPause);
|
|
8627
8892
|
};
|
|
@@ -8732,7 +8997,7 @@
|
|
|
8732
8997
|
}
|
|
8733
8998
|
this._startTime = Date.now() - this._elapsed;
|
|
8734
8999
|
this.dispatchCustomEvent(exports.PlayerEventEnum.OnPlay);
|
|
8735
|
-
this._rafId = vrender.
|
|
9000
|
+
this._rafId = vrender.global.getRequestAnimationFrame()(this._play.bind(this));
|
|
8736
9001
|
};
|
|
8737
9002
|
_play = () => {
|
|
8738
9003
|
this._elapsed = Date.now() - this._startTime;
|
|
@@ -8742,11 +9007,11 @@
|
|
|
8742
9007
|
this._playEnd();
|
|
8743
9008
|
return;
|
|
8744
9009
|
}
|
|
8745
|
-
this._rafId = vrender.
|
|
9010
|
+
this._rafId = vrender.global.getRequestAnimationFrame()(this._play.bind(this));
|
|
8746
9011
|
};
|
|
8747
9012
|
_playEnd = () => {
|
|
8748
9013
|
this._isPlaying = false;
|
|
8749
|
-
vrender.
|
|
9014
|
+
vrender.global.getCancelAnimationFrame()(this._rafId);
|
|
8750
9015
|
this._controller.togglePlay();
|
|
8751
9016
|
this.dispatchCustomEvent(exports.PlayerEventEnum.OnEnd);
|
|
8752
9017
|
};
|
|
@@ -8756,7 +9021,7 @@
|
|
|
8756
9021
|
}
|
|
8757
9022
|
this._isPlaying = false;
|
|
8758
9023
|
this._elapsed = Date.now() - this._startTime;
|
|
8759
|
-
vrender.
|
|
9024
|
+
vrender.global.getCancelAnimationFrame()(this._rafId);
|
|
8760
9025
|
this._controller.togglePlay();
|
|
8761
9026
|
this.dispatchCustomEvent(exports.PlayerEventEnum.OnPause);
|
|
8762
9027
|
};
|
|
@@ -9501,7 +9766,7 @@
|
|
|
9501
9766
|
}
|
|
9502
9767
|
}
|
|
9503
9768
|
|
|
9504
|
-
const version = "0.14.0-alpha.
|
|
9769
|
+
const version = "0.14.0-alpha.10";
|
|
9505
9770
|
|
|
9506
9771
|
exports.AbstractComponent = AbstractComponent;
|
|
9507
9772
|
exports.BasePlayer = BasePlayer;
|