@visactor/vchart 1.13.4-alpha.0 → 1.13.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.
Files changed (128) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +119 -186
  3. package/build/index.js +119 -186
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/spec.d.ts +9 -7
  7. package/cjs/animation/spec.js.map +1 -1
  8. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  9. package/cjs/component/axis/interface/common.js.map +1 -1
  10. package/cjs/component/axis/interface/spec.js.map +1 -1
  11. package/cjs/component/common/trigger/config.d.ts +2 -2
  12. package/cjs/component/common/trigger/config.js +2 -2
  13. package/cjs/component/common/trigger/config.js.map +1 -1
  14. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  15. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  16. package/cjs/component/label/interface.js.map +1 -1
  17. package/cjs/component/legend/continuous/interface.js.map +1 -1
  18. package/cjs/component/legend/interface.js.map +1 -1
  19. package/cjs/component/marker/interface.js.map +1 -1
  20. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  21. package/cjs/component/marker/mark-area/interface/theme.js.map +1 -1
  22. package/cjs/component/title/interface/spec.js.map +1 -1
  23. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  24. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  25. package/cjs/component/tooltip/tooltip.js +9 -7
  26. package/cjs/component/tooltip/tooltip.js.map +1 -1
  27. package/cjs/core/index.d.ts +1 -1
  28. package/cjs/core/index.js +1 -1
  29. package/cjs/core/index.js.map +1 -1
  30. package/cjs/interaction/interface.js.map +1 -1
  31. package/cjs/interaction/zoom/zoomable.js +13 -9
  32. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  33. package/cjs/layout/interface.js.map +1 -1
  34. package/cjs/mark/interface/common.js.map +1 -1
  35. package/cjs/plugin/components/tooltip-handler/base.js +5 -1
  36. package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
  37. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +5 -6
  38. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  39. package/cjs/plugin/components/tooltip-handler/utils/style.d.ts +2 -1
  40. package/cjs/plugin/components/tooltip-handler/utils/style.js +13 -8
  41. package/cjs/plugin/components/tooltip-handler/utils/style.js.map +1 -1
  42. package/cjs/region/interface.js.map +1 -1
  43. package/cjs/region/region.js +3 -1
  44. package/cjs/region/region.js.map +1 -1
  45. package/cjs/series/area/interface.d.ts +3 -1
  46. package/cjs/series/area/interface.js.map +1 -1
  47. package/cjs/series/box-plot/interface.d.ts +1 -1
  48. package/cjs/series/box-plot/interface.js.map +1 -1
  49. package/cjs/series/circle-packing/interface.js.map +1 -1
  50. package/cjs/series/interface/common.js.map +1 -1
  51. package/cjs/series/map/interface.js.map +1 -1
  52. package/cjs/series/mixin/interface.js.map +1 -1
  53. package/cjs/series/polar/interface.js.map +1 -1
  54. package/cjs/series/progress/linear/interface.d.ts +1 -1
  55. package/cjs/series/progress/linear/interface.js.map +1 -1
  56. package/cjs/series/radar/interface.js.map +1 -1
  57. package/cjs/series/scatter/interface.js.map +1 -1
  58. package/cjs/series/word-cloud/interface.d.ts +1 -1
  59. package/cjs/series/word-cloud/interface.js.map +1 -1
  60. package/cjs/typings/layout.js.map +1 -1
  61. package/cjs/typings/spec/common.d.ts +18 -9
  62. package/cjs/typings/spec/common.js.map +1 -1
  63. package/cjs/typings/tooltip/line.js.map +1 -1
  64. package/cjs/typings/tooltip/shape.js.map +1 -1
  65. package/cjs/typings/tooltip/tooltip.js.map +1 -1
  66. package/cjs/typings/visual.js.map +1 -1
  67. package/esm/animation/spec.d.ts +9 -7
  68. package/esm/animation/spec.js.map +1 -1
  69. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  70. package/esm/component/axis/interface/common.js.map +1 -1
  71. package/esm/component/axis/interface/spec.js.map +1 -1
  72. package/esm/component/common/trigger/config.d.ts +2 -2
  73. package/esm/component/common/trigger/config.js +2 -2
  74. package/esm/component/common/trigger/config.js.map +1 -1
  75. package/esm/component/crosshair/interface/spec.js.map +1 -1
  76. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  77. package/esm/component/label/interface.js.map +1 -1
  78. package/esm/component/legend/continuous/interface.js.map +1 -1
  79. package/esm/component/legend/interface.js.map +1 -1
  80. package/esm/component/marker/interface.js.map +1 -1
  81. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  82. package/esm/component/marker/mark-area/interface/theme.js.map +1 -1
  83. package/esm/component/title/interface/spec.js.map +1 -1
  84. package/esm/component/tooltip/interface/spec.js.map +1 -1
  85. package/esm/component/tooltip/interface/theme.js.map +1 -1
  86. package/esm/component/tooltip/tooltip.js +9 -7
  87. package/esm/component/tooltip/tooltip.js.map +1 -1
  88. package/esm/core/index.d.ts +1 -1
  89. package/esm/core/index.js +1 -1
  90. package/esm/core/index.js.map +1 -1
  91. package/esm/interaction/interface.js.map +1 -1
  92. package/esm/interaction/zoom/zoomable.js +13 -9
  93. package/esm/interaction/zoom/zoomable.js.map +1 -1
  94. package/esm/layout/interface.js.map +1 -1
  95. package/esm/mark/interface/common.js.map +1 -1
  96. package/esm/plugin/components/tooltip-handler/base.js +5 -1
  97. package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
  98. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +5 -4
  99. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  100. package/esm/plugin/components/tooltip-handler/utils/style.d.ts +2 -1
  101. package/esm/plugin/components/tooltip-handler/utils/style.js +11 -6
  102. package/esm/plugin/components/tooltip-handler/utils/style.js.map +1 -1
  103. package/esm/region/interface.js.map +1 -1
  104. package/esm/region/region.js +3 -1
  105. package/esm/region/region.js.map +1 -1
  106. package/esm/series/area/interface.d.ts +3 -1
  107. package/esm/series/area/interface.js.map +1 -1
  108. package/esm/series/box-plot/interface.d.ts +1 -1
  109. package/esm/series/box-plot/interface.js.map +1 -1
  110. package/esm/series/circle-packing/interface.js.map +1 -1
  111. package/esm/series/interface/common.js.map +1 -1
  112. package/esm/series/map/interface.js.map +1 -1
  113. package/esm/series/mixin/interface.js.map +1 -1
  114. package/esm/series/polar/interface.js.map +1 -1
  115. package/esm/series/progress/linear/interface.d.ts +1 -1
  116. package/esm/series/progress/linear/interface.js.map +1 -1
  117. package/esm/series/radar/interface.js.map +1 -1
  118. package/esm/series/scatter/interface.js.map +1 -1
  119. package/esm/series/word-cloud/interface.d.ts +1 -1
  120. package/esm/series/word-cloud/interface.js.map +1 -1
  121. package/esm/typings/layout.js.map +1 -1
  122. package/esm/typings/spec/common.d.ts +18 -9
  123. package/esm/typings/spec/common.js.map +1 -1
  124. package/esm/typings/tooltip/line.js.map +1 -1
  125. package/esm/typings/tooltip/shape.js.map +1 -1
  126. package/esm/typings/tooltip/tooltip.js.map +1 -1
  127. package/esm/typings/visual.js.map +1 -1
  128. package/package.json +15 -15
package/build/index.es.js CHANGED
@@ -8785,7 +8785,7 @@ let Step$1 = class Step {
8785
8785
  default:
8786
8786
  if (this._t <= 0) this.context.lineTo(this._x, y, !1 !== this._lastDefined && !1 !== p.defined, this.lastPoint), this.context.lineTo(x, y, !1 !== this._lastDefined && !1 !== p.defined, p);else {
8787
8787
  const x1 = this._x * (1 - this._t) + x * this._t;
8788
- this.context.lineTo(x1, this._y, !1 !== this._lastDefined && !1 !== p.defined, this.lastPoint), this.context.lineTo(x1, y, !1 !== this._lastDefined && !1 !== p.defined, p);
8788
+ .5 === this._t ? this.context.lineTo(x1, this._y, !1 !== this._lastDefined, this.lastPoint) : this.context.lineTo(x1, this._y, !1 !== this._lastDefined && !1 !== p.defined, this.lastPoint), this.context.lineTo(x1, y, !1 !== this._lastDefined && !1 !== p.defined, p);
8789
8789
  }
8790
8790
  }
8791
8791
  this._lastDefined = p.defined, this._x = x, this._y = y, this.lastPoint = p;
@@ -12515,7 +12515,7 @@ let Animate$1 = class Animate {
12515
12515
  let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Generator.GenAutoIncrementId();
12516
12516
  let timeline = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTimeline;
12517
12517
  let slience = arguments.length > 2 ? arguments[2] : undefined;
12518
- this.id = id, this.timeline = timeline, this.status = AnimateStatus.INITIAL, this.tailAnimate = new SubAnimate(this), this.subAnimates = [this.tailAnimate], this.timeScale = 1, this.rawPosition = -1, this._startTime = 0, this._duringTime = 0, this.timeline.addAnimate(this), this.slience = slience;
12518
+ this.id = id, this.timeline = timeline || defaultTimeline, this.status = AnimateStatus.INITIAL, this.tailAnimate = new SubAnimate(this), this.subAnimates = [this.tailAnimate], this.timeScale = 1, this.rawPosition = -1, this._startTime = 0, this._duringTime = 0, this.timeline.addAnimate(this), this.slience = slience;
12519
12519
  }
12520
12520
  setTimeline(timeline) {
12521
12521
  timeline !== this.timeline && (this.timeline.removeAnimate(this, !1), timeline.addAnimate(this));
@@ -14377,7 +14377,7 @@ class ResourceLoader {
14377
14377
  }
14378
14378
  static GetFile(url, type) {
14379
14379
  let data = ResourceLoader.cache.get(url);
14380
- return data ? "init" === data.loadState || "fail" === data.loadState ? Promise.reject() : "loading" === data.loadState ? data.dataPromise.then(data => data.data) : Promise.resolve(data.data) : (data = {
14380
+ return data ? "fail" === data.loadState ? Promise.reject() : "init" === data.loadState || "loading" === data.loadState ? data.dataPromise.then(data => data.data) : Promise.resolve(data.data) : (data = {
14381
14381
  type: type,
14382
14382
  loadState: "init"
14383
14383
  }, ResourceLoader.cache.set(url, data), "arrayBuffer" === type ? data.dataPromise = application.global.loadArrayBuffer(url) : "blob" === type ? data.dataPromise = application.global.loadBlob(url) : "json" === type && (data.dataPromise = application.global.loadJson(url)), data.dataPromise.then(data => data.data));
@@ -17178,8 +17178,8 @@ class DefaultImageRenderContribution extends DefaultRectRenderContribution {
17178
17178
  constructor() {
17179
17179
  super(...arguments), this.time = BaseRenderContributionTime.afterFillStroke, this.useStyle = !0, this.order = 0;
17180
17180
  }
17181
- drawShape(rect, context, x, y, doFill, doStroke, fVisible, sVisible, rectAttribute, drawContext, fillCb, strokeCb) {
17182
- return super.drawShape(rect, context, x, y, doFill, doStroke, fVisible, sVisible, rectAttribute, drawContext, fillCb, strokeCb);
17181
+ drawShape(image, context, x, y, doFill, doStroke, fVisible, sVisible, rectAttribute, drawContext, fillCb, strokeCb) {
17182
+ return super.drawShape(image, context, x, y, doFill, doStroke, fVisible, sVisible, rectAttribute, drawContext, fillCb, strokeCb);
17183
17183
  }
17184
17184
  }
17185
17185
  const defaultImageRenderContribution = new DefaultImageRenderContribution();
@@ -17614,7 +17614,7 @@ let DefaultCanvasLineRender = class extends BaseRender {
17614
17614
  this._draw(line, lineAttribute, !1, drawContext, params);
17615
17615
  }
17616
17616
  drawSegmentItem(context, cache, fill, stroke, fillOpacity, strokeOpacity, attribute, defaultAttribute, clipRange, clipRangeByDimension, offsetX, offsetY, line, fillCb, strokeCb) {
17617
- var _a, _b, _c, _d, _e;
17617
+ var _a;
17618
17618
  if (!cache) return;
17619
17619
  context.beginPath();
17620
17620
  const z = null !== (_a = this.z) && void 0 !== _a ? _a : 0;
@@ -17627,27 +17627,7 @@ let DefaultCanvasLineRender = class extends BaseRender {
17627
17627
  x: originX = 0,
17628
17628
  x: originY = 0
17629
17629
  } = attribute;
17630
- !1 !== fill && (fillCb ? fillCb(context, attribute, defaultAttribute) : fillOpacity && (context.setCommonStyle(line, attribute, originX - offsetX, originY - offsetY, defaultAttribute), context.fill())), !1 !== stroke && (strokeCb ? strokeCb(context, attribute, defaultAttribute) : strokeOpacity && (context.setStrokeStyle(line, attribute, originX - offsetX, originY - offsetY, defaultAttribute), context.stroke()));
17631
- let {
17632
- connectedType: connectedType,
17633
- connectedX: connectedX,
17634
- connectedY: connectedY,
17635
- connectedStyle: connectedStyle
17636
- } = attribute;
17637
- if (isArray$1(defaultAttribute) ? (connectedType = null !== (_b = null != connectedType ? connectedType : defaultAttribute[0].connectedType) && void 0 !== _b ? _b : defaultAttribute[1].connectedType, connectedX = null !== (_c = null != connectedX ? connectedX : defaultAttribute[0].connectedX) && void 0 !== _c ? _c : defaultAttribute[1].connectedX, connectedY = null !== (_d = null != connectedY ? connectedY : defaultAttribute[0].connectedY) && void 0 !== _d ? _d : defaultAttribute[1].connectedY, connectedStyle = null !== (_e = null != connectedStyle ? connectedStyle : defaultAttribute[0].connectedStyle) && void 0 !== _e ? _e : defaultAttribute[1].connectedStyle) : (connectedType = null != connectedType ? connectedType : defaultAttribute.connectedType, connectedX = null != connectedX ? connectedX : defaultAttribute.connectedX, connectedY = null != connectedY ? connectedY : defaultAttribute.connectedY, connectedStyle = null != connectedStyle ? connectedStyle : defaultAttribute.connectedStyle), "connect" !== connectedType && "zero" !== connectedType && (connectedType = "none"), "none" !== connectedType) {
17638
- context.beginPath(), drawSegments(context.camera ? context : context.nativeContext, cache, clipRange, clipRangeByDimension, {
17639
- offsetX: offsetX,
17640
- offsetY: offsetY,
17641
- offsetZ: z,
17642
- drawConnect: !0,
17643
- mode: connectedType,
17644
- zeroX: connectedX,
17645
- zeroY: connectedY
17646
- });
17647
- const da = [];
17648
- isArray$1(defaultAttribute) ? defaultAttribute.forEach(i => da.push(i)) : da.push(defaultAttribute), da.push(attribute), !1 !== fill && (fillCb ? fillCb(context, attribute, defaultAttribute) : fillOpacity && (context.setCommonStyle(line, connectedStyle, originX - offsetX, originY - offsetY, da), context.fill())), !1 !== stroke && (strokeCb ? strokeCb(context, attribute, defaultAttribute) : strokeOpacity && (context.setStrokeStyle(line, connectedStyle, originX - offsetX, originY - offsetY, da), context.stroke()));
17649
- }
17650
- return !1;
17630
+ return !1 !== fill && (fillCb ? fillCb(context, attribute, defaultAttribute) : fillOpacity && (context.setCommonStyle(line, attribute, originX - offsetX, originY - offsetY, defaultAttribute), context.fill())), !1 !== stroke && (strokeCb ? strokeCb(context, attribute, defaultAttribute) : strokeOpacity && (context.setStrokeStyle(line, attribute, originX - offsetX, originY - offsetY, defaultAttribute), context.stroke())), !1;
17651
17631
  }
17652
17632
  drawLinearLineHighPerformance(line, context, fill, stroke, fillOpacity, strokeOpacity, offsetX, offsetY, lineAttribute, drawContext, params, fillCb, strokeCb) {
17653
17633
  var _a;
@@ -17679,7 +17659,8 @@ let DefaultCanvasLineRender = class extends BaseRender {
17679
17659
  segments: segments,
17680
17660
  points: points,
17681
17661
  closePath: closePath,
17682
- curveTension = lineAttribute.curveTension
17662
+ curveTension = lineAttribute.curveTension,
17663
+ connectedType = lineAttribute.connectedType
17683
17664
  } = line.attribute;
17684
17665
  if (!this.valid(line, lineAttribute, fillCb, strokeCb)) return;
17685
17666
  let {
@@ -17691,6 +17672,9 @@ let DefaultCanvasLineRender = class extends BaseRender {
17691
17672
  clipRangeByDimension = lineAttribute.clipRangeByDimension
17692
17673
  } = line.attribute;
17693
17674
  if (1 === clipRange && !segments && !points.some(p => !1 === p.defined) && "linear" === curveType) return this.drawLinearLineHighPerformance(line, context, !!fill, !!stroke, fillOpacity, strokeOpacity, x, y, lineAttribute, drawContext, params, fillCb, strokeCb);
17675
+ function parsePoint(points, connectedType) {
17676
+ return "none" === connectedType ? points : points.filter(p => !1 !== p.defined);
17677
+ }
17694
17678
  if (line.shouldUpdateShape()) {
17695
17679
  const {
17696
17680
  points: points,
@@ -17712,7 +17696,7 @@ let DefaultCanvasLineRender = class extends BaseRender {
17712
17696
  y: lastSeg.endY,
17713
17697
  defined: lastSeg.curves[lastSeg.curves.length - 1].defined
17714
17698
  } : index > 1 && (startPoint.x = lastSeg.endX, startPoint.y = lastSeg.endY, startPoint.defined = lastSeg.curves[lastSeg.curves.length - 1].defined);
17715
- const data = calcLineCache(seg.points, curveType, {
17699
+ const data = calcLineCache(parsePoint(seg.points, connectedType), curveType, {
17716
17700
  startPoint: startPoint,
17717
17701
  curveTension: curveTension
17718
17702
  });
@@ -17731,7 +17715,7 @@ let DefaultCanvasLineRender = class extends BaseRender {
17731
17715
  }
17732
17716
  } else {
17733
17717
  if (!points || !points.length) return line.cache = null, void line.clearUpdateShapeTag();
17734
- line.cache = calcLineCache(_points, curveType, {
17718
+ line.cache = calcLineCache(parsePoint(_points, connectedType), curveType, {
17735
17719
  curveTension: curveTension
17736
17720
  });
17737
17721
  }
@@ -17763,11 +17747,6 @@ DefaultCanvasLineRender = __decorate$1q([injectable()], DefaultCanvasLineRender)
17763
17747
 
17764
17748
  function drawAreaSegments(path, segPath, percent, params) {
17765
17749
  var _a;
17766
- const {
17767
- drawConnect = !1,
17768
- mode = "none"
17769
- } = params || {};
17770
- if (drawConnect && "none" === mode) return;
17771
17750
  const {
17772
17751
  top: top,
17773
17752
  bottom: bottom
@@ -17777,34 +17756,11 @@ function drawAreaSegments(path, segPath, percent, params) {
17777
17756
  const topList = [],
17778
17757
  bottomList = [];
17779
17758
  let lastDefined = !0;
17780
- if (drawConnect) {
17781
- let lastCurve,
17782
- lastBottomCurve,
17783
- defined0 = !0;
17784
- const n = top.curves.length;
17785
- top.curves.forEach((curve, i) => {
17786
- const bototmCurve = bottom.curves[n - i - 1];
17787
- let currentTopCurve = curve,
17788
- currentBottomCurve = bototmCurve;
17789
- if (curve.originP1 === curve.originP2) return lastCurve = curve, void (lastBottomCurve = bototmCurve);
17790
- if (lastCurve && lastCurve.originP1 === lastCurve.originP2 && (currentTopCurve = lastCurve, currentBottomCurve = lastBottomCurve), curve.defined) defined0 || (topList.push(currentTopCurve), bottomList.push(currentBottomCurve), drawAreaConnectBlock(path, topList, bottomList, params), topList.length = 0, bottomList.length = 0, defined0 = !defined0);else {
17791
- const {
17792
- originP1: originP1,
17793
- originP2: originP2
17794
- } = curve;
17795
- let validTopCurve, validBottomCurve;
17796
- originP1 && !1 !== originP1.defined ? (validTopCurve = currentTopCurve, validBottomCurve = currentBottomCurve) : originP1 && !1 !== originP2.defined && (validTopCurve = curve, validBottomCurve = bototmCurve), defined0 ? (defined0 = !defined0, topList.push(validTopCurve || curve), bottomList.push(validBottomCurve || bototmCurve)) : validTopCurve && (defined0 = !defined0, topList.push(validTopCurve || curve), bottomList.push(validBottomCurve || bototmCurve), drawAreaConnectBlock(path, topList, bottomList, params), topList.length = 0, bottomList.length = 0);
17797
- }
17798
- lastCurve = curve;
17799
- }), drawAreaConnectBlock(path, topList, bottomList, params);
17800
- } else {
17801
- for (let i = 0, n = top.curves.length; i < n; i++) {
17802
- const topCurve = top.curves[i];
17803
- lastDefined !== topCurve.defined ? (lastDefined ? (drawAreaBlock(path, topList, bottomList, params), topList.length = 0, bottomList.length = 0) : (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1])), lastDefined = !lastDefined) : lastDefined && (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1]));
17804
- }
17805
- drawAreaBlock(path, topList, bottomList, params);
17759
+ for (let i = 0, n = top.curves.length; i < n; i++) {
17760
+ const topCurve = top.curves[i];
17761
+ lastDefined !== topCurve.defined ? (lastDefined ? (drawAreaBlock(path, topList, bottomList, params), topList.length = 0, bottomList.length = 0) : (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1])), lastDefined = !lastDefined) : lastDefined && (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1]));
17806
17762
  }
17807
- return;
17763
+ return void drawAreaBlock(path, topList, bottomList, params);
17808
17764
  }
17809
17765
  if (percent <= 0) return;
17810
17766
  let {
@@ -17822,51 +17778,17 @@ function drawAreaSegments(path, segPath, percent, params) {
17822
17778
  lastDefined = !0;
17823
17779
  const topList = [],
17824
17780
  bottomList = [];
17825
- let lastTopCurve,
17826
- lastBottomCurve,
17827
- defined0 = !0;
17828
17781
  for (let i = 0, n = top.curves.length; i < n; i++) {
17829
17782
  const topCurve = top.curves[i],
17830
17783
  curCurveLength = topCurve.getLength(direction),
17831
17784
  percent = (totalDrawLength - drawedLengthUntilLast) / curCurveLength;
17832
17785
  if (percent < 0) break;
17833
- if (drawedLengthUntilLast += curCurveLength, drawConnect) {
17834
- const bototmCurve = bottom.curves[n - i - 1];
17835
- let currentTopCurve = topCurve,
17836
- currentBottomCurve = bototmCurve;
17837
- if (topCurve.originP1 === topCurve.originP2) {
17838
- lastTopCurve = topCurve, lastBottomCurve = bototmCurve;
17839
- continue;
17840
- }
17841
- if (lastTopCurve && lastTopCurve.originP1 === lastTopCurve.originP2 && (currentTopCurve = lastTopCurve, currentBottomCurve = lastBottomCurve), topCurve.defined) defined0 || (topList.push(currentTopCurve), bottomList.push(currentBottomCurve), drawAreaConnectBlock(path, topList, bottomList, params), topList.length = 0, bottomList.length = 0, defined0 = !defined0);else {
17842
- const {
17843
- originP1: originP1,
17844
- originP2: originP2
17845
- } = topCurve;
17846
- let validTopCurve, validBottomCurve;
17847
- originP1 && !1 !== originP1.defined ? (validTopCurve = currentTopCurve, validBottomCurve = currentBottomCurve) : originP1 && !1 !== originP2.defined && (validTopCurve = topCurve, validBottomCurve = bototmCurve), defined0 ? (defined0 = !defined0, topList.push(validTopCurve || topCurve), bottomList.push(validBottomCurve || bototmCurve)) : validTopCurve && (defined0 = !defined0, topList.push(validTopCurve || topCurve), bottomList.push(validBottomCurve || bototmCurve), drawAreaConnectBlock(path, topList, bottomList, params), topList.length = 0, bottomList.length = 0);
17848
- }
17849
- lastTopCurve = topCurve;
17850
- } else {
17851
- let tc = null,
17852
- bc = null;
17853
- lastDefined !== topCurve.defined ? (lastDefined ? (drawAreaBlock(path, topList, bottomList, params), topList.length = 0, bottomList.length = 0) : (tc = topCurve, bc = bottom.curves[n - i - 1]), lastDefined = !lastDefined) : lastDefined && (tc = topCurve, bc = bottom.curves[n - i - 1]), tc && bc && (percent < 1 && (tc = tc.p2 && tc.p3 ? divideCubic(tc, percent)[0] : divideLinear(tc, percent)[0], bc = bc.p2 && bc.p3 ? divideCubic(bc, 1 - percent)[1] : divideLinear(bc, 1 - percent)[1]), tc.defined = lastDefined, bc.defined = lastDefined, topList.push(tc), bottomList.push(bc)), tc = null, bc = null;
17854
- }
17786
+ drawedLengthUntilLast += curCurveLength;
17787
+ let tc = null,
17788
+ bc = null;
17789
+ lastDefined !== topCurve.defined ? (lastDefined ? (drawAreaBlock(path, topList, bottomList, params), topList.length = 0, bottomList.length = 0) : (tc = topCurve, bc = bottom.curves[n - i - 1]), lastDefined = !lastDefined) : lastDefined && (tc = topCurve, bc = bottom.curves[n - i - 1]), tc && bc && (percent < 1 && (tc = tc.p2 && tc.p3 ? divideCubic(tc, percent)[0] : divideLinear(tc, percent)[0], bc = bc.p2 && bc.p3 ? divideCubic(bc, 1 - percent)[1] : divideLinear(bc, 1 - percent)[1]), tc.defined = lastDefined, bc.defined = lastDefined, topList.push(tc), bottomList.push(bc)), tc = null, bc = null;
17855
17790
  }
17856
- drawConnect ? drawAreaConnectBlock(path, topList, bottomList, params) : drawAreaBlock(path, topList, bottomList, params);
17857
- }
17858
- function drawAreaConnectBlock(path, topList, bottomList, params) {
17859
- if (topList.length < 2) return;
17860
- const {
17861
- offsetX = 0,
17862
- offsetY = 0,
17863
- offsetZ = 0,
17864
- mode: mode
17865
- } = params || {};
17866
- let curve = topList[0];
17867
- path.moveTo(curve.p0.x + offsetX, curve.p0.y + offsetY, offsetZ), curve = topList[topList.length - 1];
17868
- let end = curve.p3 || curve.p1;
17869
- path.lineTo(end.x + offsetX, end.y + offsetY, offsetZ), curve = bottomList[bottomList.length - 1], path.lineTo(curve.p0.x + offsetX, curve.p0.y + offsetY, offsetZ), curve = bottomList[0], end = curve.p3 || curve.p1, path.lineTo(end.x + offsetX, end.y + offsetY, offsetZ), path.closePath();
17791
+ drawAreaBlock(path, topList, bottomList, params);
17870
17792
  }
17871
17793
  function drawAreaBlock(path, topList, bottomList, params) {
17872
17794
  const {
@@ -17967,7 +17889,8 @@ let DefaultCanvasAreaRender = class extends BaseRender {
17967
17889
  fillOpacity = areaAttribute.fillOpacity,
17968
17890
  z = areaAttribute.z,
17969
17891
  strokeOpacity = areaAttribute.strokeOpacity,
17970
- curveTension = areaAttribute.curveTension
17892
+ curveTension = areaAttribute.curveTension,
17893
+ connectedType = areaAttribute.connectedType
17971
17894
  } = area.attribute,
17972
17895
  data = this.valid(area, areaAttribute, fillCb, strokeCb);
17973
17896
  if (!data) return;
@@ -17984,6 +17907,9 @@ let DefaultCanvasAreaRender = class extends BaseRender {
17984
17907
  let {
17985
17908
  curveType = areaAttribute.curveType
17986
17909
  } = area.attribute;
17910
+ function parsePoint(points, connectedType) {
17911
+ return "connect" !== connectedType ? points : points.filter(p => !1 !== p.defined);
17912
+ }
17987
17913
  if (closePath && "linear" === curveType && (curveType = "linearClosed"), 1 === clipRange && !segments && !points.some(p => !1 === p.defined) && "linear" === curveType) return this.drawLinearAreaHighPerformance(area, context, !!fill, doStroke, fillOpacity, strokeOpacity, x, y, areaAttribute, drawContext, params, fillCb, strokeCb);
17988
17914
  if (area.shouldUpdateShape()) {
17989
17915
  if (segments && segments.length) {
@@ -17997,7 +17923,7 @@ let DefaultCanvasAreaRender = class extends BaseRender {
17997
17923
  x: lastTopSeg.endX,
17998
17924
  y: lastTopSeg.endY
17999
17925
  } : index > 1 && (startPoint.x = lastTopSeg.endX, startPoint.y = lastTopSeg.endY);
18000
- const data = calcLineCache(seg.points, curveType, {
17926
+ const data = calcLineCache(parsePoint(seg.points, connectedType), curveType, {
18001
17927
  startPoint: startPoint,
18002
17928
  curveTension: curveTension
18003
17929
  });
@@ -18020,7 +17946,7 @@ let DefaultCanvasAreaRender = class extends BaseRender {
18020
17946
  y: null !== (_d = endPoint.y1) && void 0 !== _d ? _d : endPoint.y
18021
17947
  });
18022
17948
  }
18023
- bottomPoints.length > 1 && (lastBottomSeg = calcLineCache(bottomPoints, "stepBefore" === curveType ? "stepAfter" : "stepAfter" === curveType ? "stepBefore" : curveType, {
17949
+ bottomPoints.length > 1 && (lastBottomSeg = calcLineCache(parsePoint(bottomPoints, connectedType), "stepBefore" === curveType ? "stepAfter" : "stepAfter" === curveType ? "stepBefore" : curveType, {
18024
17950
  curveTension: curveTension
18025
17951
  }), bottomCaches.unshift(lastBottomSeg));
18026
17952
  }
@@ -18031,11 +17957,11 @@ let DefaultCanvasAreaRender = class extends BaseRender {
18031
17957
  } else {
18032
17958
  if (!points || !points.length) return area.cacheArea = null, void area.clearUpdateShapeTag();
18033
17959
  {
18034
- const topPoints = points,
17960
+ const topPoints = parsePoint(points, connectedType),
18035
17961
  bottomPoints = [];
18036
- for (let i = points.length - 1; i >= 0; i--) bottomPoints.push({
18037
- x: null !== (_e = points[i].x1) && void 0 !== _e ? _e : points[i].x,
18038
- y: null !== (_f = points[i].y1) && void 0 !== _f ? _f : points[i].y
17962
+ for (let i = topPoints.length - 1; i >= 0; i--) bottomPoints.push({
17963
+ x: null !== (_e = topPoints[i].x1) && void 0 !== _e ? _e : topPoints[i].x,
17964
+ y: null !== (_f = topPoints[i].y1) && void 0 !== _f ? _f : topPoints[i].y
18039
17965
  });
18040
17966
  const topCache = calcLineCache(topPoints, curveType, {
18041
17967
  curveTension: curveTension
@@ -18077,20 +18003,10 @@ let DefaultCanvasAreaRender = class extends BaseRender {
18077
18003
  this._draw(area, areaAttribute, !1, drawContext, params);
18078
18004
  }
18079
18005
  drawSegmentItem(context, cache, fill, fillOpacity, stroke, strokeOpacity, attribute, defaultAttribute, clipRange, offsetX, offsetY, offsetZ, area, drawContext, fillCb, strokeCb) {
18080
- let ret = !1;
18081
- return ret = ret || this._drawSegmentItem(context, cache, fill, fillOpacity, stroke, strokeOpacity, attribute, defaultAttribute, clipRange, offsetX, offsetY, offsetZ, area, drawContext, !1, fillCb, strokeCb), ret = ret || this._drawSegmentItem(context, cache, fill, fillOpacity, stroke, strokeOpacity, attribute, defaultAttribute, clipRange, offsetX, offsetY, offsetZ, area, drawContext, !0, fillCb, strokeCb), ret;
18006
+ return this._drawSegmentItem(context, cache, fill, fillOpacity, stroke, strokeOpacity, attribute, defaultAttribute, clipRange, offsetX, offsetY, offsetZ, area, drawContext, fillCb, strokeCb);
18082
18007
  }
18083
- _drawSegmentItem(context, cache, fill, fillOpacity, stroke, strokeOpacity, attribute, defaultAttribute, clipRange, offsetX, offsetY, offsetZ, area, drawContext, connect, fillCb, strokeCb) {
18084
- var _a, _b, _c, _d;
18008
+ _drawSegmentItem(context, cache, fill, fillOpacity, stroke, strokeOpacity, attribute, defaultAttribute, clipRange, offsetX, offsetY, offsetZ, area, drawContext, fillCb, strokeCb) {
18085
18009
  if (!(cache && cache.top && cache.bottom && cache.top.curves && cache.top.curves.length && cache.bottom.curves && cache.bottom.curves.length)) return;
18086
- let {
18087
- connectedType: connectedType,
18088
- connectedX: connectedX,
18089
- connectedY: connectedY,
18090
- connectedStyle: connectedStyle
18091
- } = attribute;
18092
- const da = [];
18093
- if (connect && (isArray$1(defaultAttribute) ? (connectedType = null !== (_a = null != connectedType ? connectedType : defaultAttribute[0].connectedType) && void 0 !== _a ? _a : defaultAttribute[1].connectedType, connectedX = null !== (_b = null != connectedX ? connectedX : defaultAttribute[0].connectedX) && void 0 !== _b ? _b : defaultAttribute[1].connectedX, connectedY = null !== (_c = null != connectedY ? connectedY : defaultAttribute[0].connectedY) && void 0 !== _c ? _c : defaultAttribute[1].connectedY, connectedStyle = null !== (_d = null != connectedStyle ? connectedStyle : defaultAttribute[0].connectedStyle) && void 0 !== _d ? _d : defaultAttribute[1].connectedStyle) : (connectedType = null != connectedType ? connectedType : defaultAttribute.connectedType, connectedX = null != connectedX ? connectedX : defaultAttribute.connectedX, connectedY = null != connectedY ? connectedY : defaultAttribute.connectedY, connectedStyle = null != connectedStyle ? connectedStyle : defaultAttribute.connectedStyle), "connect" !== connectedType && "zero" !== connectedType && (connectedType = "none"), isArray$1(defaultAttribute) ? defaultAttribute.forEach(i => da.push(i)) : da.push(defaultAttribute), da.push(attribute)), connect && "none" === connectedType) return !1;
18094
18010
  context.beginPath();
18095
18011
  const {
18096
18012
  points: points,
@@ -18109,11 +18025,7 @@ let DefaultCanvasAreaRender = class extends BaseRender {
18109
18025
  offsetX: offsetX,
18110
18026
  offsetY: offsetY,
18111
18027
  offsetZ: offsetZ,
18112
- direction: direction,
18113
- drawConnect: connect,
18114
- mode: connectedType,
18115
- zeroX: connectedX,
18116
- zeroY: connectedY
18028
+ direction: direction
18117
18029
  }), this.beforeRenderStep(area, context, offsetX, offsetY, !!fillOpacity, !1, fill, !1, defaultAttribute, drawContext, fillCb, null, {
18118
18030
  attribute: attribute
18119
18031
  }), context.setShadowBlendStyle && context.setShadowBlendStyle(area, attribute, defaultAttribute);
@@ -18121,7 +18033,7 @@ let DefaultCanvasAreaRender = class extends BaseRender {
18121
18033
  x: originX = 0,
18122
18034
  x: originY = 0
18123
18035
  } = attribute;
18124
- return !1 !== fill && (fillCb ? fillCb(context, attribute, defaultAttribute) : fillOpacity && (context.setCommonStyle(area, connect ? connectedStyle : attribute, originX - offsetX, originY - offsetY, connect ? da : defaultAttribute), context.fill())), this.afterRenderStep(area, context, offsetX, offsetY, !!fillOpacity, !1, fill, !1, defaultAttribute, drawContext, fillCb, null, {
18036
+ return !1 !== fill && (fillCb ? fillCb(context, attribute, defaultAttribute) : fillOpacity && (context.setCommonStyle(area, attribute, originX - offsetX, originY - offsetY, defaultAttribute), context.fill())), this.afterRenderStep(area, context, offsetX, offsetY, !!fillOpacity, !1, fill, !1, defaultAttribute, drawContext, fillCb, null, {
18125
18037
  attribute: attribute
18126
18038
  }), (() => {
18127
18039
  if (!1 !== stroke) if (strokeCb) strokeCb(context, attribute, defaultAttribute);else {
@@ -18131,12 +18043,8 @@ let DefaultCanvasAreaRender = class extends BaseRender {
18131
18043
  isArray$1(stroke) && (stroke[0] || stroke[2]) && !1 === stroke[1] && (context.beginPath(), drawSegments(context.camera ? context : context.nativeContext, stroke[0] ? cache.top : cache.bottom, clipRange, direction === Direction$1.ROW ? "x" : "y", {
18132
18044
  offsetX: offsetX,
18133
18045
  offsetY: offsetY,
18134
- offsetZ: offsetZ,
18135
- drawConnect: connect,
18136
- mode: connectedType,
18137
- zeroX: connectedX,
18138
- zeroY: connectedY
18139
- })), context.setStrokeStyle(area, connect ? connectedStyle : attribute, originX - offsetX, originY - offsetY, connect ? da : defaultAttribute), context.stroke();
18046
+ offsetZ: offsetZ
18047
+ })), context.setStrokeStyle(area, attribute, originX - offsetX, originY - offsetY, defaultAttribute), context.stroke();
18140
18048
  }
18141
18049
  })(), !1;
18142
18050
  }
@@ -20436,7 +20344,7 @@ let Line$1 = class Line extends Graphic {
20436
20344
  } = attribute,
20437
20345
  b = aabbBounds;
20438
20346
  return points.forEach(p => {
20439
- !1 === p.defined && "zero" !== connectedType && "connect" !== connectedType || b.add(p.x, p.y);
20347
+ !1 === p.defined && "connect" !== connectedType || b.add(p.x, p.y);
20440
20348
  }), b;
20441
20349
  }
20442
20350
  updateLineAABBBoundsBySegments(attribute, lineTheme, aabbBounds, graphic) {
@@ -20447,7 +20355,7 @@ let Line$1 = class Line extends Graphic {
20447
20355
  b = aabbBounds;
20448
20356
  return segments.forEach(s => {
20449
20357
  s.points.forEach(p => {
20450
- !1 === p.defined && "zero" !== connectedType && "connect" !== connectedType || b.add(p.x, p.y);
20358
+ !1 === p.defined && "connect" !== connectedType || b.add(p.x, p.y);
20451
20359
  });
20452
20360
  }), b;
20453
20361
  }
@@ -27738,6 +27646,7 @@ var __decorate$G = undefined && undefined.__decorate || function (decorators, ta
27738
27646
  function makeUpCanvas$4(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanvasList, pixelRatio) {
27739
27647
  const dpr = null != pixelRatio ? pixelRatio : tt.getSystemInfoSync().pixelRatio;
27740
27648
  canvasIdLists.forEach((id, i) => {
27649
+ if (canvasMap.has(id)) return;
27741
27650
  const ctx = tt.createCanvasContext(id),
27742
27651
  canvas = new CanvasWrapDisableWH(ctx.canvas || {}, ctx, dpr, domref.width, domref.height, id);
27743
27652
  ctx.canvas = canvas, canvasMap.set(id, canvas), i >= freeCanvasIdx && freeCanvasList.push(canvas);
@@ -27872,7 +27781,13 @@ let LynxContext2d = class extends BrowserContext2d {
27872
27781
  measureText(text) {
27873
27782
  let method = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : application.global.measureTextMethod;
27874
27783
  this.setTransform(1, 0, 0, 1, 0, 0, !0, application.global.devicePixelRatio);
27875
- return super.measureText(text, method);
27784
+ return {
27785
+ width: super.measureText(text, method).width,
27786
+ fontBoundingBoxDescent: void 0,
27787
+ fontBoundingBoxAscent: void 0,
27788
+ actualBoundingBoxAscent: void 0,
27789
+ actualBoundingBoxDescent: void 0
27790
+ };
27876
27791
  }
27877
27792
  createPattern(image, repetition) {
27878
27793
  return null;
@@ -29066,7 +28981,7 @@ function makeUpCanvas$1(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCan
29066
28981
  const dpr = wx.getSystemInfoSync().pixelRatio;
29067
28982
  for (let i = 0; i < canvasIdLists.length; i++) {
29068
28983
  const id = canvasIdLists[i];
29069
- yield new Promise(resolve => {
28984
+ canvasMap.has(id) || (yield new Promise(resolve => {
29070
28985
  let data = wx.createSelectorQuery();
29071
28986
  component && (data = data.in(component)), data.select(`#${id}`).fields({
29072
28987
  node: !0,
@@ -29078,7 +28993,7 @@ function makeUpCanvas$1(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCan
29078
28993
  height = res[0].height;
29079
28994
  canvas.width = width * dpr, canvas.height = height * dpr, canvasMap.set(id, canvas), i >= freeCanvasIdx && freeCanvasList.push(canvas), resolve(null);
29080
28995
  });
29081
- });
28996
+ }));
29082
28997
  }
29083
28998
  });
29084
28999
  }
@@ -29396,7 +29311,7 @@ function makeUpCanvas(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanva
29396
29311
  const dpr = tt.getSystemInfoSync().pixelRatio;
29397
29312
  for (let i = 0; i < canvasIdLists.length; i++) {
29398
29313
  const id = canvasIdLists[i];
29399
- yield new Promise(resolve => {
29314
+ canvasMap.has(id) || (yield new Promise(resolve => {
29400
29315
  let data = tt.createSelectorQuery();
29401
29316
  component && (data = data.in(component)), data.select(`#${id}`).node().exec(res => {
29402
29317
  const canvas = res[0].node,
@@ -29404,7 +29319,7 @@ function makeUpCanvas(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanva
29404
29319
  height = canvas.height;
29405
29320
  canvas.width = width * dpr, canvas.height = height * dpr, canvasMap.set(id, canvas), i >= freeCanvasIdx && freeCanvasList.push(canvas), resolve(null);
29406
29321
  });
29407
- });
29322
+ }));
29408
29323
  }
29409
29324
  });
29410
29325
  }
@@ -36058,7 +35973,10 @@ class LabelBase extends AbstractComponent {
36058
35973
  customOverlapFunc: customOverlapFunc
36059
35974
  } = this.attribute;
36060
35975
  let data = this.attribute.data;
36061
- isFunction$1(dataFilter) && (data = dataFilter(data));
35976
+ if (isFunction$1(dataFilter) && (data = dataFilter(data)), data && data.length) {
35977
+ const seenIds = new Set();
35978
+ data = data.filter(d => !seenIds.has(d.id) && seenIds.add(d.id));
35979
+ }
36062
35980
  let labels = this._initText(data);
36063
35981
  labels = isFunction$1(customLayoutFunc) ? customLayoutFunc(data, labels, this.getRelatedGraphic.bind(this), this._isCollectionBase ? d => this._idToPoint.get(d.id) : null) : this._layout(labels), isFunction$1(customOverlapFunc) ? labels = customOverlapFunc(labels, this.getRelatedGraphic.bind(this), this._isCollectionBase ? d => this._idToPoint.get(d.id) : null) : !1 !== overlap && (labels = this._overlapping(labels)), isFunction$1(this.attribute.onAfterOverlapping) && this.attribute.onAfterOverlapping(labels, this.getRelatedGraphic.bind(this), this._isCollectionBase ? d => this._idToPoint.get(d.id) : null), labels && labels.length && labels.forEach(label => {
36064
35982
  this._bindEvent(label), this._setStatesOfText(label);
@@ -39667,27 +39585,16 @@ class MarkArea extends Marker {
39667
39585
  }
39668
39586
  getPointAttrByPosition(position) {
39669
39587
  const {
39670
- x1: x1,
39671
- x2: x2,
39672
- y1: y1,
39673
- y2: y2
39674
- } = this._area.AABBBounds;
39675
- return position.includes("left") || position.includes("Left") ? {
39676
- x: x1,
39677
- y: (y1 + y2) / 2
39678
- } : position.includes("right") || position.includes("Right") ? {
39679
- x: x2,
39680
- y: (y1 + y2) / 2
39681
- } : position.includes("top") || position.includes("Top") ? {
39682
- x: (x1 + x2) / 2,
39683
- y: y1
39684
- } : position.includes("bottom") || position.includes("Bottom") ? {
39685
- x: (x1 + x2) / 2,
39686
- y: y2
39687
- } : {
39688
- x: (x1 + x2) / 2,
39689
- y: (y1 + y2) / 2
39690
- };
39588
+ x1: x1,
39589
+ x2: x2,
39590
+ y1: y1,
39591
+ y2: y2
39592
+ } = this._area.AABBBounds,
39593
+ result = {
39594
+ x: (x1 + x2) / 2,
39595
+ y: (y1 + y2) / 2
39596
+ };
39597
+ return (position.includes("left") || position.includes("Left")) && (result.x = x1), (position.includes("right") || position.includes("Right")) && (result.x = x2), (position.includes("top") || position.includes("Top")) && (result.y = y1), (position.includes("bottom") || position.includes("Bottom")) && (result.y = y2), result;
39691
39598
  }
39692
39599
  setLabelPos() {
39693
39600
  var _a;
@@ -59116,6 +59023,9 @@ class Region extends LayoutModel {
59116
59023
  super.created();
59117
59024
  const clip = (_a = this._spec.clip) !== null && _a !== void 0 ? _a : this._getClipDefaultValue();
59118
59025
  this._groupMark = this._createGroupMark('regionGroup', this.userId, this.layoutZIndex);
59026
+ if (this._spec.roam) {
59027
+ this._groupMark.setMarkConfig({ interactive: true });
59028
+ }
59119
59029
  this._interactionMark = this._createGroupMark('regionInteractionGroup', ((_b = this.userId) !== null && _b !== void 0 ? _b : this.type) + '_interaction', LayoutZIndex.Interaction);
59120
59030
  if (!isEmpty(this._spec.style)) {
59121
59031
  this._backgroundMark = this._createMark({ type: "rect", name: 'regionBackground' });
@@ -62582,7 +62492,7 @@ const registerVChartCore = () => {
62582
62492
  };
62583
62493
  registerVChartCore();
62584
62494
 
62585
- const version = "1.13.4-alpha.0";
62495
+ const version = "1.13.4";
62586
62496
 
62587
62497
  const addVChartProperty = (data, op) => {
62588
62498
  const context = op.beforeCall();
@@ -72713,7 +72623,7 @@ function getDefaultTriggerEventByMode(mode) {
72713
72623
  return {
72714
72624
  start: 'pointerdown',
72715
72625
  move: 'pointermove',
72716
- end: 'pointerup',
72626
+ end: ['pointerup', 'pointerupoutside'],
72717
72627
  zoom: 'wheel',
72718
72628
  zoomEnd: 'pointerup',
72719
72629
  scroll: 'wheel',
@@ -72724,7 +72634,7 @@ function getDefaultTriggerEventByMode(mode) {
72724
72634
  return {
72725
72635
  start: 'pointerdown',
72726
72636
  move: 'pointermove',
72727
- end: 'pointerup',
72637
+ end: ['pointerup', 'pointerupoutside'],
72728
72638
  zoom: 'pinch',
72729
72639
  zoomEnd: 'pinchend',
72730
72640
  scroll: 'pan',
@@ -72995,15 +72905,17 @@ class Zoomable {
72995
72905
  });
72996
72906
  this._zoomableTrigger.pointerId = null;
72997
72907
  this._eventObj.off(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove);
72998
- this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup);
72999
- this._eventObj.allow(end);
72908
+ end.forEach(endEventType => {
72909
+ this._eventObj.off(endEventType, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup);
72910
+ this._eventObj.allow(endEventType);
72911
+ });
73000
72912
  }, delayTime);
73001
72913
  const mousemove = delayMap[delayType]((params) => {
73002
72914
  if (!this._zoomableTrigger.parserDragEvent(params.event)) {
73003
72915
  return;
73004
72916
  }
73005
72917
  this._clickEnable = false;
73006
- this._eventObj.prevent(end, mouseup);
72918
+ end.forEach(endEventType => this._eventObj.prevent(endEventType, mouseup));
73007
72919
  const event = params.event;
73008
72920
  const dx = event.canvasX - moveX;
73009
72921
  const dy = event.canvasY - moveY;
@@ -73019,7 +72931,9 @@ class Zoomable {
73019
72931
  });
73020
72932
  }, delayTime);
73021
72933
  this._eventObj.on(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove);
73022
- this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup);
72934
+ end.forEach(endEventType => {
72935
+ this._eventObj.on(endEventType, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup);
72936
+ });
73023
72937
  }
73024
72938
  }
73025
72939
 
@@ -92551,7 +92465,7 @@ class Tooltip extends BaseComponent {
92551
92465
  }
92552
92466
  };
92553
92467
  this._getMouseOutHandler = (needPointerDetection) => (params) => {
92554
- var _a, _b, _c, _d;
92468
+ var _a, _b, _c, _d, _e;
92555
92469
  if (this._isReleased) {
92556
92470
  return;
92557
92471
  }
@@ -92569,14 +92483,14 @@ class Tooltip extends BaseComponent {
92569
92483
  if (this._enterable) {
92570
92484
  this._outTimer = setTimeout(() => {
92571
92485
  this._handleChartMouseOut(params);
92572
- }, (_d = this._spec.showDelay) !== null && _d !== void 0 ? _d : DEFAULT_SHOW_DELAY);
92486
+ }, (_e = (_d = this._spec) === null || _d === void 0 ? void 0 : _d.showDelay) !== null && _e !== void 0 ? _e : DEFAULT_SHOW_DELAY);
92573
92487
  }
92574
92488
  else {
92575
92489
  this._handleChartMouseOut(params);
92576
92490
  }
92577
92491
  };
92578
92492
  this._handleChartMouseOut = (params) => {
92579
- if (this._alwaysShow) {
92493
+ if (this._alwaysShow || this._isReleased) {
92580
92494
  return;
92581
92495
  }
92582
92496
  if (this._spec.triggerOff !== 'none') {
@@ -92591,7 +92505,7 @@ class Tooltip extends BaseComponent {
92591
92505
  }
92592
92506
  };
92593
92507
  this._getMouseMoveHandler = (isClick) => (params) => {
92594
- var _a, _b, _c;
92508
+ var _a, _b, _c, _d;
92595
92509
  if (this._isReleased) {
92596
92510
  return;
92597
92511
  }
@@ -92621,13 +92535,16 @@ class Tooltip extends BaseComponent {
92621
92535
  }
92622
92536
  this._showTimer = setTimeout(() => {
92623
92537
  this._handleChartMouseMove(params, isClick);
92624
- }, (_c = this._spec.showDelay) !== null && _c !== void 0 ? _c : DEFAULT_SHOW_DELAY);
92538
+ }, (_d = (_c = this._spec) === null || _c === void 0 ? void 0 : _c.showDelay) !== null && _d !== void 0 ? _d : DEFAULT_SHOW_DELAY);
92625
92539
  }
92626
92540
  else {
92627
92541
  this._handleChartMouseMove(params, isClick);
92628
92542
  }
92629
92543
  };
92630
92544
  this._handleChartMouseMove = (params, isClick) => {
92545
+ if (this._isReleased) {
92546
+ return;
92547
+ }
92631
92548
  const mouseEventData = this._getMouseEventData(params);
92632
92549
  const { tooltipInfo: { dimension: dimensionInfo }, ignore: { mark: ignoreMark } } = mouseEventData;
92633
92550
  const success = {
@@ -92730,6 +92647,9 @@ class Tooltip extends BaseComponent {
92730
92647
  return 1;
92731
92648
  };
92732
92649
  this.hideTooltip = () => {
92650
+ if (this._isReleased) {
92651
+ return false;
92652
+ }
92733
92653
  const params = {
92734
92654
  changePositionOnly: false,
92735
92655
  tooltip: this,
@@ -92842,7 +92762,7 @@ class Tooltip extends BaseComponent {
92842
92762
  }
92843
92763
  });
92844
92764
  element.addEventListener('pointerleave', () => {
92845
- var _a, _b;
92765
+ var _a, _b, _c;
92846
92766
  if (!this._enterable) {
92847
92767
  return;
92848
92768
  }
@@ -92851,7 +92771,7 @@ class Tooltip extends BaseComponent {
92851
92771
  if (newRect &&
92852
92772
  Object.keys(this._cacheEnterableRect).every(k => this._cacheEnterableRect[k] === newRect[k])) {
92853
92773
  this._cacheEnterableRect = null;
92854
- this._outTimer = setTimeout(this.hideTooltip, (_b = this._spec.showDelay) !== null && _b !== void 0 ? _b : DEFAULT_SHOW_DELAY);
92774
+ this._outTimer = setTimeout(this.hideTooltip, (_c = (_b = this._spec) === null || _b === void 0 ? void 0 : _b.showDelay) !== null && _c !== void 0 ? _c : DEFAULT_SHOW_DELAY);
92855
92775
  }
92856
92776
  }
92857
92777
  });
@@ -101076,8 +100996,14 @@ class BaseTooltipHandler extends BasePlugin {
101076
100996
  this._isReleased = true;
101077
100997
  }
101078
100998
  _getDefaultOption() {
100999
+ var _a, _b;
101079
101000
  const { offset } = this._component.getSpec();
101080
- return offset ? Object.assign(Object.assign({}, DEFAULT_OPTIONS), offset) : DEFAULT_OPTIONS;
101001
+ return offset
101002
+ ? {
101003
+ offsetX: (_a = offset.x) !== null && _a !== void 0 ? _a : DEFAULT_OPTIONS.offsetX,
101004
+ offsetY: (_b = offset.y) !== null && _b !== void 0 ? _b : DEFAULT_OPTIONS.offsetY
101005
+ }
101006
+ : DEFAULT_OPTIONS;
101081
101007
  }
101082
101008
  _getParentElement(spec) {
101083
101009
  return spec.parentElement;
@@ -101106,9 +101032,8 @@ const getPixelPropertyStr = (num, defaultStr) => {
101106
101032
  }
101107
101033
  return defaultStr !== null && defaultStr !== void 0 ? defaultStr : 'initial';
101108
101034
  };
101109
- const getTextStyle = (style = {}) => {
101035
+ const getTextStyle = (style = {}, textStyle = {}) => {
101110
101036
  var _a, _b;
101111
- const textStyle = {};
101112
101037
  if (isValid$1(style.fontFamily)) {
101113
101038
  textStyle.fontFamily = style.fontFamily;
101114
101039
  }
@@ -101138,8 +101063,15 @@ const getTextStyle = (style = {}) => {
101138
101063
  }
101139
101064
  return textStyle;
101140
101065
  };
101066
+ const getLineHeight = (style = {}) => {
101067
+ const { lineHeight } = style;
101068
+ if (style.fontSize) {
101069
+ return calcLayoutNumber(lineHeight, style.fontSize);
101070
+ }
101071
+ return 0;
101072
+ };
101141
101073
  const getDomStyle = (spec = {}) => {
101142
- var _a, _b, _c, _d, _e;
101074
+ var _a, _b, _c, _d;
101143
101075
  const { style = {}, enterable, transitionDuration } = spec;
101144
101076
  const { panel = {}, titleLabel, shape, keyLabel, valueLabel, spaceRow: commonSpaceRow, align } = style;
101145
101077
  const { panelStyle, panelPadding } = getPanelStyle(panel);
@@ -101177,10 +101109,8 @@ const getDomStyle = (spec = {}) => {
101177
101109
  shapeStyle[marginKey] = getPixelPropertyStr((_b = shape.spacing) !== null && _b !== void 0 ? _b : DEFAULT_SHAPE_SPACING);
101178
101110
  keyStyle[marginKey] = getPixelPropertyStr((_c = keyLabel.spacing) !== null && _c !== void 0 ? _c : DEFAULT_KEY_SPACING);
101179
101111
  valueStyle[marginKey] = getPixelPropertyStr((_d = valueLabel.spacing) !== null && _d !== void 0 ? _d : DEFAULT_VALUE_SPACING);
101180
- const lineHeight = (_e = keyStyle.lineHeight) !== null && _e !== void 0 ? _e : valueStyle.lineHeight;
101181
- if (isValid$1(lineHeight)) {
101182
- rowStyle.lineHeight = /^[0-9]*$/.test(`${lineHeight}`) ? `${lineHeight}px` : `${lineHeight}`;
101183
- }
101112
+ const lineHeight = Math.max(getLineHeight(valueLabel), getLineHeight(keyLabel));
101113
+ rowStyle.lineHeight = lineHeight > 0 ? `${lineHeight}px` : '20px';
101184
101114
  return {
101185
101115
  panelPadding,
101186
101116
  row: rowStyle,
@@ -101472,19 +101402,22 @@ class DomTooltipHandler extends BaseTooltipHandler {
101472
101402
  row.classList.add(`${TOOLTIP_PREFIX}-${colName}`);
101473
101403
  colDiv.appendChild(row);
101474
101404
  }
101475
- let styleByRow = index === content.length - 1 ? {} : Object.assign({}, rowStyle);
101405
+ const styleByRow = Object.assign({}, rowStyle);
101406
+ if (index === content.length - 1) {
101407
+ styleByRow.marginBottom = '0px';
101408
+ }
101476
101409
  styleByRow.display = entry.visible === false ? 'none' : 'block';
101477
101410
  styleByRow.height = 'initial';
101478
101411
  if (colName === 'key') {
101479
101412
  row.innerHTML = formatContent(entry.key);
101480
101413
  if (entry.keyStyle) {
101481
- styleByRow = Object.assign(Object.assign({}, styleByRow), getTextStyle(entry.keyStyle));
101414
+ getTextStyle(entry.keyStyle, styleByRow);
101482
101415
  }
101483
101416
  }
101484
101417
  else if (colName === 'value') {
101485
101418
  row.innerHTML = formatContent(entry.value);
101486
101419
  if (entry.valueStyle) {
101487
- styleByRow = Object.assign(Object.assign({}, styleByRow), getTextStyle(entry.valueStyle));
101420
+ getTextStyle(entry.valueStyle, styleByRow);
101488
101421
  }
101489
101422
  }
101490
101423
  else if (colName === 'shape') {