@visactor/vchart 1.1.0-beta.2 → 1.1.0-beta.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 (227) hide show
  1. package/build/index.js +857 -454
  2. package/build/index.min.js +2 -2
  3. package/cjs/chart/base-chart.d.ts +5 -2
  4. package/cjs/chart/base-chart.js +46 -1
  5. package/cjs/chart/base-chart.js.map +1 -1
  6. package/cjs/chart/interface/chart.d.ts +13 -4
  7. package/cjs/chart/interface/chart.js.map +1 -1
  8. package/cjs/chart/word-cloud/word-cloud-3d.js +1 -2
  9. package/cjs/chart/word-cloud/word-cloud-3d.js.map +1 -1
  10. package/cjs/chart/word-cloud/word-cloud.js +1 -2
  11. package/cjs/chart/word-cloud/word-cloud.js.map +1 -1
  12. package/cjs/compile/compiler.js +2 -1
  13. package/cjs/compile/compiler.js.map +1 -1
  14. package/cjs/compile/interface/compilable-item.d.ts +1 -0
  15. package/cjs/compile/interface/compilable-item.js.map +1 -1
  16. package/cjs/component/axis/base-axis.d.ts +6 -14
  17. package/cjs/component/axis/base-axis.js +8 -12
  18. package/cjs/component/axis/base-axis.js.map +1 -1
  19. package/cjs/component/axis/cartesian/axis.d.ts +1 -1
  20. package/cjs/component/axis/cartesian/axis.js +8 -3
  21. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  22. package/cjs/component/axis/cartesian/interface/spec.d.ts +9 -2
  23. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  24. package/cjs/component/axis/interface.d.ts +10 -0
  25. package/cjs/component/axis/interface.js.map +1 -1
  26. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +16 -0
  27. package/cjs/component/axis/mixin/band-axis-mixin.js +15 -1
  28. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  29. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +4 -0
  30. package/cjs/component/axis/mixin/linear-axis-mixin.js +6 -1
  31. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  32. package/cjs/component/base/base-component.js +4 -2
  33. package/cjs/component/base/base-component.js.map +1 -1
  34. package/cjs/component/crosshair/base.js +26 -18
  35. package/cjs/component/crosshair/base.js.map +1 -1
  36. package/cjs/component/crosshair/cartesian.d.ts +2 -0
  37. package/cjs/component/crosshair/cartesian.js +11 -2
  38. package/cjs/component/crosshair/cartesian.js.map +1 -1
  39. package/cjs/component/crosshair/interface/spec.d.ts +6 -1
  40. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  41. package/cjs/component/marker/base-marker.js +2 -1
  42. package/cjs/component/marker/base-marker.js.map +1 -1
  43. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +6 -7
  44. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  45. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +0 -1
  46. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.js +4 -2
  47. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.js.map +1 -1
  48. package/cjs/component/tooltip/interface/common.d.ts +6 -0
  49. package/cjs/component/tooltip/interface/common.js.map +1 -1
  50. package/cjs/component/tooltip/tooltip.d.ts +3 -2
  51. package/cjs/component/tooltip/tooltip.js +4 -2
  52. package/cjs/component/tooltip/tooltip.js.map +1 -1
  53. package/cjs/constant/event.d.ts +1 -0
  54. package/cjs/constant/event.js +4 -4
  55. package/cjs/constant/event.js.map +1 -1
  56. package/cjs/core/index.d.ts +1 -1
  57. package/cjs/core/index.js +1 -1
  58. package/cjs/core/index.js.map +1 -1
  59. package/cjs/core/vchart.d.ts +2 -1
  60. package/cjs/core/vchart.js +4 -0
  61. package/cjs/core/vchart.js.map +1 -1
  62. package/cjs/data/transforms/legend-data/discrete/discrete.js +3 -3
  63. package/cjs/data/transforms/legend-data/discrete/discrete.js.map +1 -1
  64. package/cjs/event/event-dispatcher.d.ts +2 -2
  65. package/cjs/event/event-dispatcher.js +23 -18
  66. package/cjs/event/event-dispatcher.js.map +1 -1
  67. package/cjs/event/event.d.ts +6 -2
  68. package/cjs/event/event.js +5 -2
  69. package/cjs/event/event.js.map +1 -1
  70. package/cjs/event/events/dimension/base.d.ts +4 -0
  71. package/cjs/event/events/dimension/base.js +16 -1
  72. package/cjs/event/events/dimension/base.js.map +1 -1
  73. package/cjs/event/events/dimension/util/cartesian.d.ts +4 -0
  74. package/cjs/event/events/dimension/util/cartesian.js +37 -46
  75. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  76. package/cjs/event/interface.d.ts +7 -2
  77. package/cjs/event/interface.js.map +1 -1
  78. package/cjs/interaction/dimension-trigger.js +3 -3
  79. package/cjs/interaction/dimension-trigger.js.map +1 -1
  80. package/cjs/interaction/drill/drillable.js +3 -2
  81. package/cjs/interaction/drill/drillable.js.map +1 -1
  82. package/cjs/interaction/zoom/zoomable.d.ts +1 -1
  83. package/cjs/interaction/zoom/zoomable.js +16 -15
  84. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  85. package/cjs/plugin/components/axis-sync-plugin/axis-sync.d.ts +11 -0
  86. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js +53 -0
  87. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -0
  88. package/cjs/plugin/components/axis-sync-plugin/index.d.ts +1 -0
  89. package/cjs/plugin/components/axis-sync-plugin/index.js +21 -0
  90. package/cjs/plugin/components/axis-sync-plugin/index.js.map +1 -0
  91. package/cjs/plugin/components/axis-sync-plugin/tick-align-transform.d.ts +7 -0
  92. package/cjs/plugin/components/axis-sync-plugin/tick-align-transform.js +36 -0
  93. package/cjs/plugin/components/axis-sync-plugin/tick-align-transform.js.map +1 -0
  94. package/cjs/plugin/components/axis-sync-plugin/zero-align-transform.d.ts +15 -0
  95. package/cjs/plugin/components/axis-sync-plugin/zero-align-transform.js +123 -0
  96. package/cjs/plugin/components/axis-sync-plugin/zero-align-transform.js.map +1 -0
  97. package/cjs/plugin/components/index.d.ts +2 -0
  98. package/cjs/plugin/components/index.js +3 -2
  99. package/cjs/plugin/components/index.js.map +1 -1
  100. package/cjs/plugin/components/interface.d.ts +2 -0
  101. package/cjs/plugin/components/interface.js.map +1 -1
  102. package/cjs/series/word-cloud/base.d.ts +2 -2
  103. package/cjs/series/word-cloud/base.js +42 -43
  104. package/cjs/series/word-cloud/base.js.map +1 -1
  105. package/cjs/series/word-cloud/interface.d.ts +1 -2
  106. package/cjs/series/word-cloud/interface.js.map +1 -1
  107. package/cjs/series/word-cloud/word-cloud-3d.js +37 -37
  108. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  109. package/cjs/util/env.d.ts +1 -0
  110. package/cjs/util/env.js +3 -2
  111. package/cjs/util/env.js.map +1 -1
  112. package/esm/chart/base-chart.d.ts +5 -2
  113. package/esm/chart/base-chart.js +47 -0
  114. package/esm/chart/base-chart.js.map +1 -1
  115. package/esm/chart/interface/chart.d.ts +13 -4
  116. package/esm/chart/interface/chart.js.map +1 -1
  117. package/esm/chart/word-cloud/word-cloud-3d.js +1 -2
  118. package/esm/chart/word-cloud/word-cloud-3d.js.map +1 -1
  119. package/esm/chart/word-cloud/word-cloud.js +1 -2
  120. package/esm/chart/word-cloud/word-cloud.js.map +1 -1
  121. package/esm/compile/compiler.js +2 -1
  122. package/esm/compile/compiler.js.map +1 -1
  123. package/esm/compile/interface/compilable-item.d.ts +1 -0
  124. package/esm/compile/interface/compilable-item.js.map +1 -1
  125. package/esm/component/axis/base-axis.d.ts +6 -14
  126. package/esm/component/axis/base-axis.js +8 -12
  127. package/esm/component/axis/base-axis.js.map +1 -1
  128. package/esm/component/axis/cartesian/axis.d.ts +1 -1
  129. package/esm/component/axis/cartesian/axis.js +8 -3
  130. package/esm/component/axis/cartesian/axis.js.map +1 -1
  131. package/esm/component/axis/cartesian/interface/spec.d.ts +9 -2
  132. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  133. package/esm/component/axis/interface.d.ts +10 -0
  134. package/esm/component/axis/interface.js.map +1 -1
  135. package/esm/component/axis/mixin/band-axis-mixin.d.ts +16 -0
  136. package/esm/component/axis/mixin/band-axis-mixin.js +16 -0
  137. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  138. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +4 -0
  139. package/esm/component/axis/mixin/linear-axis-mixin.js +6 -1
  140. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  141. package/esm/component/base/base-component.js +4 -2
  142. package/esm/component/base/base-component.js.map +1 -1
  143. package/esm/component/crosshair/base.js +25 -17
  144. package/esm/component/crosshair/base.js.map +1 -1
  145. package/esm/component/crosshair/cartesian.d.ts +2 -0
  146. package/esm/component/crosshair/cartesian.js +12 -1
  147. package/esm/component/crosshair/cartesian.js.map +1 -1
  148. package/esm/component/crosshair/interface/spec.d.ts +6 -1
  149. package/esm/component/crosshair/interface/spec.js.map +1 -1
  150. package/esm/component/marker/base-marker.js +2 -1
  151. package/esm/component/marker/base-marker.js.map +1 -1
  152. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +3 -4
  153. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  154. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +0 -1
  155. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.js +1 -1
  156. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.js.map +1 -1
  157. package/esm/component/tooltip/interface/common.d.ts +6 -0
  158. package/esm/component/tooltip/interface/common.js.map +1 -1
  159. package/esm/component/tooltip/tooltip.d.ts +3 -2
  160. package/esm/component/tooltip/tooltip.js +5 -3
  161. package/esm/component/tooltip/tooltip.js.map +1 -1
  162. package/esm/constant/event.d.ts +1 -0
  163. package/esm/constant/event.js +4 -4
  164. package/esm/constant/event.js.map +1 -1
  165. package/esm/core/index.d.ts +1 -1
  166. package/esm/core/index.js +1 -1
  167. package/esm/core/index.js.map +1 -1
  168. package/esm/core/vchart.d.ts +2 -1
  169. package/esm/core/vchart.js +4 -0
  170. package/esm/core/vchart.js.map +1 -1
  171. package/esm/data/transforms/legend-data/discrete/discrete.js +3 -3
  172. package/esm/data/transforms/legend-data/discrete/discrete.js.map +1 -1
  173. package/esm/event/event-dispatcher.d.ts +2 -2
  174. package/esm/event/event-dispatcher.js +23 -18
  175. package/esm/event/event-dispatcher.js.map +1 -1
  176. package/esm/event/event.d.ts +6 -2
  177. package/esm/event/event.js +5 -2
  178. package/esm/event/event.js.map +1 -1
  179. package/esm/event/events/dimension/base.d.ts +4 -0
  180. package/esm/event/events/dimension/base.js +18 -1
  181. package/esm/event/events/dimension/base.js.map +1 -1
  182. package/esm/event/events/dimension/util/cartesian.d.ts +4 -0
  183. package/esm/event/events/dimension/util/cartesian.js +32 -44
  184. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  185. package/esm/event/interface.d.ts +7 -2
  186. package/esm/event/interface.js.map +1 -1
  187. package/esm/interaction/dimension-trigger.js +2 -4
  188. package/esm/interaction/dimension-trigger.js.map +1 -1
  189. package/esm/interaction/drill/drillable.js +3 -2
  190. package/esm/interaction/drill/drillable.js.map +1 -1
  191. package/esm/interaction/zoom/zoomable.d.ts +1 -1
  192. package/esm/interaction/zoom/zoomable.js +16 -15
  193. package/esm/interaction/zoom/zoomable.js.map +1 -1
  194. package/esm/plugin/components/axis-sync-plugin/axis-sync.d.ts +11 -0
  195. package/esm/plugin/components/axis-sync-plugin/axis-sync.js +55 -0
  196. package/esm/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -0
  197. package/esm/plugin/components/axis-sync-plugin/index.d.ts +1 -0
  198. package/esm/plugin/components/axis-sync-plugin/index.js +2 -0
  199. package/esm/plugin/components/axis-sync-plugin/index.js.map +1 -0
  200. package/esm/plugin/components/axis-sync-plugin/tick-align-transform.d.ts +7 -0
  201. package/esm/plugin/components/axis-sync-plugin/tick-align-transform.js +30 -0
  202. package/esm/plugin/components/axis-sync-plugin/tick-align-transform.js.map +1 -0
  203. package/esm/plugin/components/axis-sync-plugin/zero-align-transform.d.ts +15 -0
  204. package/esm/plugin/components/axis-sync-plugin/zero-align-transform.js +115 -0
  205. package/esm/plugin/components/axis-sync-plugin/zero-align-transform.js.map +1 -0
  206. package/esm/plugin/components/index.d.ts +2 -0
  207. package/esm/plugin/components/index.js +4 -1
  208. package/esm/plugin/components/index.js.map +1 -1
  209. package/esm/plugin/components/interface.d.ts +2 -0
  210. package/esm/plugin/components/interface.js.map +1 -1
  211. package/esm/series/word-cloud/base.d.ts +2 -2
  212. package/esm/series/word-cloud/base.js +42 -43
  213. package/esm/series/word-cloud/base.js.map +1 -1
  214. package/esm/series/word-cloud/interface.d.ts +1 -2
  215. package/esm/series/word-cloud/interface.js.map +1 -1
  216. package/esm/series/word-cloud/word-cloud-3d.js +37 -37
  217. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  218. package/esm/util/env.d.ts +1 -0
  219. package/esm/util/env.js +2 -0
  220. package/esm/util/env.js.map +1 -1
  221. package/package.json +9 -8
  222. package/cjs/series/treemap/config.d.ts +0 -44
  223. package/cjs/series/treemap/config.js +0 -51
  224. package/cjs/series/treemap/config.js.map +0 -1
  225. package/esm/series/treemap/config.d.ts +0 -44
  226. package/esm/series/treemap/config.js +0 -49
  227. package/esm/series/treemap/config.js.map +0 -1
package/build/index.js CHANGED
@@ -7392,6 +7392,7 @@
7392
7392
  };
7393
7393
 
7394
7394
  const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
7395
+ const domDocument = isBrowser && globalThis.document;
7395
7396
  function isTrueBrowser(mode) {
7396
7397
  return (mode === 'desktop-browser' || mode === 'mobile-browser') && isBrowser;
7397
7398
  }
@@ -15570,7 +15571,7 @@
15570
15571
  return referenceNode.parent !== this ? null : (newNode.parent && newNode.parent.removeChild(newNode), newNode.parent = this, referenceNode._next ? (referenceNode._next._prev = newNode, newNode._next = referenceNode._next) : this._lastChild = newNode, referenceNode._next = newNode, newNode._prev = referenceNode, this._idMap || (this._idMap = new Map()), this._idMap.set(newNode._uid, newNode), this._structEdit = !0, this.setCount(newNode.count), newNode);
15571
15572
  }
15572
15573
  insertInto(newNode, idx) {
15573
- if (this._nodeList && console.warn("insertIntoKeepIdx和insertInto混用可能会存在错误"), idx >= this.childrenCount) return this.appendChild(newNode);
15574
+ if (!this._ignoreWarn && this._nodeList && console.warn("insertIntoKeepIdx和insertInto混用可能会存在错误"), idx >= this.childrenCount) return this.appendChild(newNode);
15574
15575
  if (this._uid === newNode._uid) return null;
15575
15576
  if (newNode.isAncestorsOf(this)) throw new Error("【Node::insertBefore】不能将父辈元素insert为子元素");
15576
15577
  if (newNode.parent && newNode.parent.removeChild(newNode), newNode.parent = this, 0 === idx) newNode._next = this._firstChild, this._firstChild && (this._firstChild._prev = newNode), newNode._prev = null, this._firstChild = newNode;else {
@@ -15592,7 +15593,10 @@
15592
15593
  let node;
15593
15594
  this._nodeList[idx] = newNode;
15594
15595
  for (let i = idx - 1; i >= 0 && (node = this._nodeList[i], !node); i--);
15595
- return node ? node._next ? this.insertBefore(newNode, node._next) : this.appendChild(newNode) : this.insertInto(newNode, 0);
15596
+ if (node) return node._next ? this.insertBefore(newNode, node._next) : this.appendChild(newNode);
15597
+ this._ignoreWarn = !0;
15598
+ const data = this.insertInto(newNode, 0);
15599
+ return this._ignoreWarn = !1, data;
15596
15600
  }
15597
15601
  removeChild(child) {
15598
15602
  if (!this._idMap) return null;
@@ -23609,6 +23613,7 @@
23609
23613
  function getTextBounds(params) {
23610
23614
  return text.setAttributes(params), text.AABBBounds;
23611
23615
  }
23616
+ createRichText({});
23612
23617
 
23613
23618
  class DefaultCanvasAllocate {
23614
23619
  constructor() {
@@ -23995,7 +24000,7 @@
23995
24000
  isFullStroke: isFullStroke,
23996
24001
  stroke: arrayStroke
23997
24002
  } = parseStroke(stroke);
23998
- if ((doFill || isFullStroke) && (context.beginPath(), drawArcPath$1(arc, context, x, y, outerRadius, innerRadius), this._arcRenderContribitions || (this._arcRenderContribitions = this.arcRenderContribitions.getContributions() || [], this._arcRenderContribitions.sort((a, b) => b.order - a.order)), this._arcRenderContribitions.forEach(c => {
24003
+ if ((doFill || isFullStroke || background) && (context.beginPath(), drawArcPath$1(arc, context, x, y, outerRadius, innerRadius), this._arcRenderContribitions || (this._arcRenderContribitions = this.arcRenderContribitions.getContributions() || [], this._arcRenderContribitions.sort((a, b) => b.order - a.order)), this._arcRenderContribitions.forEach(c => {
23999
24004
  c.time === BaseRenderContributionTime.beforeFillStroke && c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, fillCb, strokeCb);
24000
24005
  }), context.setShadowStyle && context.setShadowStyle(arc, arc.attribute, arcAttribute), doFill && (fillCb ? fillCb(context, arc.attribute, arcAttribute) : fVisible && (context.setCommonStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute), context.fill())), doStroke && isFullStroke && (strokeCb ? strokeCb(context, arc.attribute, arcAttribute) : sVisible && (context.setStrokeStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute), context.stroke()))), !isFullStroke && doStroke) {
24001
24006
  context.beginPath();
@@ -28590,6 +28595,25 @@
28590
28595
  _context.setLineDash(lineDash);
28591
28596
  }
28592
28597
  }
28598
+ _setStrokeStyle(params, attribute, offsetX, offsetY, defaultParams) {
28599
+ const _context = this.nativeContext;
28600
+ defaultParams || (defaultParams = this.strokeAttributes);
28601
+ const {
28602
+ strokeOpacity = defaultParams.strokeOpacity,
28603
+ opacity = defaultParams.opacity
28604
+ } = attribute;
28605
+ if (strokeOpacity > 1e-12 && opacity > 1e-12) {
28606
+ const {
28607
+ lineWidth = defaultParams.lineWidth,
28608
+ stroke = defaultParams.stroke,
28609
+ lineJoin = defaultParams.lineJoin,
28610
+ lineDash = defaultParams.lineDash,
28611
+ lineCap = defaultParams.lineCap,
28612
+ miterLimit = defaultParams.miterLimit
28613
+ } = attribute;
28614
+ _context.globalAlpha = strokeOpacity * opacity, _context.lineWidth = getScaledStroke(this, lineWidth, this.dpr), _context.strokeStyle = createColor(this, stroke, params, offsetX, offsetY), _context.lineJoin = lineJoin, 0 === lineDash[0] && 0 === lineDash[1] || _context.setLineDash(lineDash), _context.lineCap = lineCap, _context.miterLimit = miterLimit;
28615
+ }
28616
+ }
28593
28617
  draw() {
28594
28618
  const _context = this.nativeContext;
28595
28619
  this.drawPromise = new Promise(resolve => {
@@ -33752,7 +33776,7 @@
33752
33776
  encodeGraphic() {
33753
33777
  this.coordinateTransformEncode(this.items);
33754
33778
  const graphicAttributes = this.transformElementItems(this.items, this.mark.markType);
33755
- this.graphicItem ? this.applyGraphicAttributes(graphicAttributes) : this.initGraphicItem(graphicAttributes), this.diffState !== DiffState.enter && this.diffState !== DiffState.update || !this.states.length || (this.graphicItem.clearStates(), this.graphicItem.states = {}, this.useStates(this.states)), this.mark.markType === GrammarMarkType.shape && (this.graphicItem.datum = this.items[0].datum), this.items.forEach(item => {
33779
+ this.graphicItem ? (this.graphicItem.clearStates(), this.graphicItem.states = {}, this.graphicItem.stateProxy = null, this.applyGraphicAttributes(graphicAttributes)) : this.initGraphicItem(graphicAttributes), this.diffState !== DiffState.enter && this.diffState !== DiffState.update || !this.states.length || this.useStates(this.states), this.mark.markType === GrammarMarkType.shape && (this.graphicItem.datum = this.items[0].datum), this.items.forEach(item => {
33756
33780
  item.nextAttrs = {};
33757
33781
  }), this._setCutomizedShape();
33758
33782
  }
@@ -33823,7 +33847,7 @@
33823
33847
  const item = items[0];
33824
33848
  if (!item.nextAttrs || 0 === Object.keys(item.nextAttrs).length) return {};
33825
33849
  let nextAttrs = null == item ? void 0 : item.nextAttrs;
33826
- if (items && items.length && isNil(null === (_a = item.nextAttrs) || void 0 === _a ? void 0 : _a.points) && !1 !== computePoints && isPointsMarkType(markType)) {
33850
+ if (items && items.length && isNil(null === (_a = item.nextAttrs) || void 0 === _a ? void 0 : _a.points) && (!0 === computePoints || isValidPointsChannel(Object.keys(item.nextAttrs), this.mark.markType)) && isPointsMarkType(markType)) {
33827
33851
  const lastPoints = this.getGraphicAttribute("points", !1),
33828
33852
  lastSegments = this.getGraphicAttribute("segments", !1),
33829
33853
  enableSegments = null !== (_b = item.nextAttrs.enableSegments) && void 0 !== _b ? _b : this.getGraphicAttribute("enableSegments", !1),
@@ -36730,7 +36754,7 @@
36730
36754
  constructor(view, markType, group) {
36731
36755
  super(view), this.grammarType = "mark", this.elements = [], this.elementMap = new Map(), this.isUpdated = !0, this.animate = new Animate(this, {}), this.differ = new Differ([]), this.evaluateSync = (data, parameters) => {
36732
36756
  var _a;
36733
- return this.evaluateMainTasks(data, parameters), (null === (_a = this.renderContext) || void 0 === _a ? void 0 : _a.progressive) || this.evaluateTransformSync(this.transforms, this.elements, parameters), this;
36757
+ return this.evaluateMainTasks(data, parameters), (null === (_a = this.renderContext) || void 0 === _a ? void 0 : _a.progressive) || this.evaluateTransformSync(this._getTransformsAfterEncode(), this.elements, parameters), this;
36734
36758
  }, this.markType = markType, this.spec.type = markType, this.spec.encode = {
36735
36759
  update: {}
36736
36760
  }, this.spec.group = group, group && (this.group = group, this.attach(group), group.appendChild(this));
@@ -36791,7 +36815,7 @@
36791
36815
  evaluate(data, parameters) {
36792
36816
  var _a;
36793
36817
  return __awaiter$7(this, void 0, void 0, function* () {
36794
- return this.evaluateMainTasks(data, parameters), (null === (_a = this.renderContext) || void 0 === _a ? void 0 : _a.progressive) || (yield this.evaluateTransform(this.transforms, this.elements, parameters)), this;
36818
+ return this.evaluateMainTasks(data, parameters), (null === (_a = this.renderContext) || void 0 === _a ? void 0 : _a.progressive) || (yield this.evaluateTransform(this._getTransformsAfterEncode(), this.elements, parameters)), this;
36795
36819
  });
36796
36820
  }
36797
36821
  output() {
@@ -37509,143 +37533,25 @@
37509
37533
  return "#" + rgbToHex(r, g, b);
37510
37534
  }
37511
37535
 
37512
- /**
37513
- * Common utilities
37514
- * @module glMatrix
37515
- */
37516
- var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;
37517
- if (!Math.hypot) Math.hypot = function () {
37518
- var y = 0,
37519
- i = arguments.length;
37520
- while (i--) {
37521
- y += arguments[i] * arguments[i];
37522
- }
37523
- return Math.sqrt(y);
37524
- };
37525
-
37526
- /**
37527
- * 2 Dimensional Vector
37528
- * @module vec2
37529
- */
37530
-
37531
- /**
37532
- * Creates a new, empty vec2
37533
- *
37534
- * @returns {vec2} a new 2D vector
37535
- */
37536
-
37537
- function create$2() {
37538
- var out = new ARRAY_TYPE(2);
37539
- if (ARRAY_TYPE != Float32Array) {
37540
- out[0] = 0;
37541
- out[1] = 0;
37542
- }
37543
- return out;
37544
- }
37545
- /**
37546
- * Scales a vec2 by a scalar number
37547
- *
37548
- * @param {vec2} out the receiving vector
37549
- * @param {ReadonlyVec2} a the vector to scale
37550
- * @param {Number} b amount to scale the vector by
37551
- * @returns {vec2} out
37552
- */
37553
-
37554
- function scale(out, a, b) {
37555
- out[0] = a[0] * b;
37556
- out[1] = a[1] * b;
37557
- return out;
37536
+ function scale(vector, scale) {
37537
+ return [vector[0] * scale, vector[1] * scale];
37558
37538
  }
37559
- /**
37560
- * Calculates the length of a vec2
37561
- *
37562
- * @param {ReadonlyVec2} a vector to calculate length of
37563
- * @returns {Number} length of a
37564
- */
37565
-
37566
- function length(a) {
37567
- var x = a[0],
37568
- y = a[1];
37569
- return Math.hypot(x, y);
37539
+ function length(vector) {
37540
+ const [x, y] = vector;
37541
+ return Math.sqrt(x * x + y * y);
37570
37542
  }
37571
- /**
37572
- * Normalize a vec2
37573
- *
37574
- * @param {vec2} out the receiving vector
37575
- * @param {ReadonlyVec2} a vector to normalize
37576
- * @returns {vec2} out
37577
- */
37578
-
37579
- function normalize(out, a) {
37580
- var x = a[0],
37581
- y = a[1];
37582
- var len = x * x + y * y;
37583
- if (len > 0) {
37584
- //TODO: evaluate use of glm_invsqrt here?
37585
- len = 1 / Math.sqrt(len);
37586
- }
37587
- out[0] = a[0] * len;
37588
- out[1] = a[1] * len;
37589
- return out;
37543
+ function normalize(vector) {
37544
+ const [x, y] = vector;
37545
+ let len = x * x + y * y;
37546
+ return len > 0 && (len = 1 / Math.sqrt(len)), [vector[0] * len, vector[1] * len];
37590
37547
  }
37591
- /**
37592
- * Get the angle between two 2D vectors
37593
- * @param {ReadonlyVec2} a The first operand
37594
- * @param {ReadonlyVec2} b The second operand
37595
- * @returns {Number} The angle in radians
37596
- */
37597
-
37598
- function angle(a, b) {
37599
- var x1 = a[0],
37600
- y1 = a[1],
37601
- x2 = b[0],
37602
- y2 = b[1],
37603
- // mag is the product of the magnitudes of a and b
37604
- mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2),
37605
- // mag &&.. short circuits if mag == 0
37606
- cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1
37607
-
37548
+ function angle(vector1, vector2) {
37549
+ const [x1, y1] = vector1,
37550
+ [x2, y2] = vector2,
37551
+ mag = Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2)),
37552
+ cosine = mag && (x1 * x2 + y1 * y2) / mag;
37608
37553
  return Math.acos(Math.min(Math.max(cosine, -1), 1));
37609
37554
  }
37610
- /**
37611
- * Perform some operation over an array of vec2s.
37612
- *
37613
- * @param {Array} a the array of vectors to iterate over
37614
- * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed
37615
- * @param {Number} offset Number of elements to skip at the beginning of the array
37616
- * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array
37617
- * @param {Function} fn Function to call for each vector in the array
37618
- * @param {Object} [arg] additional argument to pass to fn
37619
- * @returns {Array} a
37620
- * @function
37621
- */
37622
-
37623
- (function () {
37624
- var vec = create$2();
37625
- return function (a, stride, offset, count, fn, arg) {
37626
- var i, l;
37627
- if (!stride) {
37628
- stride = 2;
37629
- }
37630
- if (!offset) {
37631
- offset = 0;
37632
- }
37633
- if (count) {
37634
- l = Math.min(count * stride + offset, a.length);
37635
- } else {
37636
- l = a.length;
37637
- }
37638
- for (i = offset; i < l; i += stride) {
37639
- vec[0] = a[i];
37640
- vec[1] = a[i + 1];
37641
- fn(vec, vec, arg);
37642
- a[i] = vec[0];
37643
- a[i + 1] = vec[1];
37644
- }
37645
- return a;
37646
- };
37647
- })();
37648
-
37649
37555
  function direction(v1, v2) {
37650
37556
  return v1[0] * v2[1] - v2[0] * v1[1];
37651
37557
  }
@@ -39190,11 +39096,10 @@
39190
39096
  axisTitle.name = AXIS_ELEMENT_NAME.title, axisTitle.id = this._getNodeId("title"), container.add(axisTitle);
39191
39097
  }
39192
39098
  renderGrid(container) {
39193
- this._renderGridByType("grid", container);
39194
39099
  const {
39195
39100
  visible: visible
39196
39101
  } = this.attribute.subGrid || {};
39197
- visible && this._renderGridByType("subGrid", container);
39102
+ visible && this._renderGridByType("subGrid", container), this._renderGridByType("grid", container);
39198
39103
  }
39199
39104
  getVerticalCoord(point, offset, inside) {
39200
39105
  const vector = this.getVerticalVector(offset, inside, point);
@@ -39429,9 +39334,9 @@
39429
39334
  verticalFactor = 1
39430
39335
  } = this.attribute,
39431
39336
  axisVector = this.getRelativeVector(),
39432
- normalize$1 = normalize([0, 0], axisVector),
39433
- verticalVector = [normalize$1[1], -1 * normalize$1[0]];
39434
- return scale([0, 0], verticalVector, offset * (inside ? 1 : -1) * verticalFactor);
39337
+ normalizedAxisVector = normalize(axisVector),
39338
+ verticalVector = [normalizedAxisVector[1], -1 * normalizedAxisVector[0]];
39339
+ return scale(verticalVector, offset * (inside ? 1 : -1) * verticalFactor);
39435
39340
  }
39436
39341
  getTitleAttribute() {
39437
39342
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -39673,7 +39578,7 @@
39673
39578
  center: center
39674
39579
  } = this.attribute,
39675
39580
  vector = [point.x - center.x, point.y - center.y];
39676
- return scale(vector, vector, (inside ? -1 : 1) * (axisInside ? -1 : 1) * offset / length(vector)), vector;
39581
+ return scale(vector, (inside ? -1 : 1) * (axisInside ? -1 : 1) * offset / length(vector));
39677
39582
  }
39678
39583
  getRelativeVector(point) {
39679
39584
  const {
@@ -41143,7 +41048,8 @@
41143
41048
  } = handler;
41144
41049
  preShape || (preShape = isHorizontal ? "triangleLeft" : "triangleUp"), nextShape || (nextShape = isHorizontal ? "triangleRight" : "triangleDown");
41145
41050
  const preHandler = createSymbol(Object.assign(Object.assign({
41146
- strokeBoundsBuffer: 0
41051
+ strokeBoundsBuffer: 0,
41052
+ pickMode: "imprecise"
41147
41053
  }, handlerStyle), {
41148
41054
  x: 0,
41149
41055
  y: 0,
@@ -41170,7 +41076,8 @@
41170
41076
  }, textStyle));
41171
41077
  this.text = text, container.add(text);
41172
41078
  const nextHandler = createSymbol(Object.assign(Object.assign({
41173
- strokeBoundsBuffer: 0
41079
+ strokeBoundsBuffer: 0,
41080
+ pickMode: "imprecise"
41174
41081
  }, handlerStyle), {
41175
41082
  x: isHorizontal ? handlerSizeX + 2 * handlerSpace + maxTextWidth : 0,
41176
41083
  y: isHorizontal ? 0 : handlerSizeY + 2 * handlerSpace + maxTextHeight,
@@ -41400,14 +41307,16 @@
41400
41307
  const itemGroup = this._renderEachItem(item, !!isEmpty(defaultSelected) || (null == defaultSelected ? void 0 : defaultSelected.includes(item.label)), index),
41401
41308
  itemWidth = itemGroup.attribute.width,
41402
41309
  itemHeight = itemGroup.attribute.height;
41403
- this._itemHeight = Math.max(this._itemHeight, itemHeight), maxWidthInCol = Math.max(itemWidth, maxWidthInCol), this._itemMaxWidth = Math.max(itemWidth, this._itemMaxWidth), isHorizontal ? (maxPages = maxRow, isValid(maxWidth) && maxWidth < startX + itemWidth && (doWrap = !0, startX = 0, startY += itemHeight + spaceRow, pages += 1), index > 0 && itemGroup.setAttributes({
41310
+ this._itemHeight = Math.max(this._itemHeight, itemHeight), maxWidthInCol = Math.max(itemWidth, maxWidthInCol), this._itemMaxWidth = Math.max(itemWidth, this._itemMaxWidth), isHorizontal ? (maxPages = maxRow, isValid(maxWidth) && (itemWidth >= maxWidth ? (doWrap = !0, index > 0 && (startX = 0, startY += itemHeight + spaceRow, pages += 1)) : maxWidth < startX + itemWidth && (doWrap = !0, startX = 0, startY += itemHeight + spaceRow, pages += 1)), index > 0 && itemGroup.setAttributes({
41404
41311
  x: startX,
41405
41312
  y: startY
41406
41313
  }), startX += spaceCol + itemWidth) : (maxPages = maxCol, isValid(maxHeight) && maxHeight < startY + itemHeight && (doWrap = !0, startY = 0, startX += maxWidthInCol + spaceCol, maxWidthInCol = 0, pages += 1), index > 0 && itemGroup.setAttributes({
41407
41314
  x: startX,
41408
41315
  y: startY
41409
41316
  }), startY += spaceRow + itemHeight), itemsContainer.add(itemGroup);
41410
- }), doWrap && autoPage && pages > maxPages ? this._renderPager(isHorizontal) : (itemsContainer.setAttribute("y", this._title ? this._title.AABBBounds.height() + get(this.attribute, "title.space", 8) : 0), this._innerView.add(itemsContainer));
41317
+ });
41318
+ let pagerRendered = !1;
41319
+ doWrap && autoPage && pages > maxPages && (pagerRendered = this._renderPager(isHorizontal)), pagerRendered || (itemsContainer.setAttribute("y", this._title ? this._title.AABBBounds.height() + get(this.attribute, "title.space", 8) : 0), this._innerView.add(itemsContainer));
41411
41320
  }
41412
41321
  _bindEvents() {
41413
41322
  if (!this._itemsContainer) return;
@@ -41539,43 +41448,50 @@
41539
41448
  startX = 0,
41540
41449
  startY = 0,
41541
41450
  pages = 1;
41542
- isHorizontal ? (pagerComp = new Pager(Object.assign({
41543
- layout: 1 === maxRow ? "horizontal" : "vertical",
41544
- total: 99
41545
- }, merge$1({
41546
- handler: {
41547
- preShape: "triangleUp",
41548
- nextShape: "triangleDown"
41549
- }
41550
- }, pageStyle))), this._pager = pagerComp, this._innerView.add(pagerComp), pageHeight = (maxRow - 1) * spaceRow + this._itemHeight * maxRow, pageWidth = maxWidth - pagerComp.AABBBounds.width() - pagerSpace, itemsContainer.getChildren().forEach((item, index) => {
41551
- const {
41552
- width: width,
41553
- height: height
41554
- } = item.attribute;
41555
- pageWidth < startX + width && (startX = 0, startY += height + spaceRow, pages += 1), index > 0 && item.setAttributes({
41556
- x: startX,
41557
- y: startY
41558
- }), startX += spaceCol + width;
41559
- }), pagerComp.setAttributes({
41560
- total: Math.ceil(pages / maxRow),
41561
- x: pageWidth,
41562
- y: renderStartY + pageHeight / 2 - pagerComp.AABBBounds.height() / 2
41563
- })) : (pagerComp = new Pager(Object.assign({
41564
- layout: "horizontal",
41565
- total: 99
41566
- }, pageStyle)), this._pager = pagerComp, this._innerView.add(pagerComp), pageWidth = this._itemMaxWidth * maxCol + (maxCol - 1) * spaceCol, pageHeight = maxHeight - pagerComp.AABBBounds.height() - pagerSpace - renderStartY, itemsContainer.getChildren().forEach((item, index) => {
41567
- const {
41568
- height: height
41569
- } = item.attribute;
41570
- pageHeight < startY + height && (startY = 0, startX += this._itemMaxWidth + spaceCol, pages += 1), index > 0 && item.setAttributes({
41571
- x: startX,
41572
- y: startY
41573
- }), startY += spaceRow + height;
41574
- }), pagerComp.setAttributes({
41575
- total: Math.ceil(pages / maxCol),
41576
- x: (pageWidth - pagerComp.AABBBounds.width()) / 2,
41577
- y: maxHeight - pagerComp.AABBBounds.height()
41578
- })), pager.defaultCurrent > 1 && (isHorizontal ? itemsContainer.setAttribute("y", -(pager.defaultCurrent - 1) * (pageHeight + spaceRow)) : itemsContainer.setAttribute("x", -(pager.defaultCurrent - 1) * (pageWidth + spaceCol)));
41451
+ if (isHorizontal) {
41452
+ if (pagerComp = new Pager(Object.assign({
41453
+ layout: 1 === maxRow ? "horizontal" : "vertical",
41454
+ total: 99
41455
+ }, merge$1({
41456
+ handler: {
41457
+ preShape: "triangleUp",
41458
+ nextShape: "triangleDown"
41459
+ }
41460
+ }, pageStyle))), this._pager = pagerComp, this._innerView.add(pagerComp), pageHeight = (maxRow - 1) * spaceRow + this._itemHeight * maxRow, pageWidth = maxWidth - pagerComp.AABBBounds.width() - pagerSpace, pageWidth <= 0) return this._innerView.removeChild(pagerComp), !1;
41461
+ itemsContainer.getChildren().forEach((item, index) => {
41462
+ const {
41463
+ width: width,
41464
+ height: height
41465
+ } = item.attribute;
41466
+ pageWidth < startX + width && (startX = 0, startY += height + spaceRow, pages += 1), index > 0 && item.setAttributes({
41467
+ x: startX,
41468
+ y: startY
41469
+ }), startX += spaceCol + width;
41470
+ }), pagerComp.setAttributes({
41471
+ total: Math.ceil(pages / maxRow),
41472
+ x: pageWidth,
41473
+ y: renderStartY + pageHeight / 2 - pagerComp.AABBBounds.height() / 2
41474
+ });
41475
+ } else {
41476
+ if (pagerComp = new Pager(Object.assign({
41477
+ layout: "horizontal",
41478
+ total: 99
41479
+ }, pageStyle)), this._pager = pagerComp, this._innerView.add(pagerComp), pageWidth = this._itemMaxWidth * maxCol + (maxCol - 1) * spaceCol, pageHeight = maxHeight - pagerComp.AABBBounds.height() - pagerSpace - renderStartY, pageHeight <= 0) return this._innerView.removeChild(pagerComp), !1;
41480
+ itemsContainer.getChildren().forEach((item, index) => {
41481
+ const {
41482
+ height: height
41483
+ } = item.attribute;
41484
+ pageHeight < startY + height && (startY = 0, startX += this._itemMaxWidth + spaceCol, pages += 1), index > 0 && item.setAttributes({
41485
+ x: startX,
41486
+ y: startY
41487
+ }), startY += spaceRow + height;
41488
+ }), pagerComp.setAttributes({
41489
+ total: Math.ceil(pages / maxCol),
41490
+ x: (pageWidth - pagerComp.AABBBounds.width()) / 2,
41491
+ y: maxHeight - pagerComp.AABBBounds.height()
41492
+ });
41493
+ }
41494
+ pager.defaultCurrent > 1 && (isHorizontal ? itemsContainer.setAttribute("y", -(pager.defaultCurrent - 1) * (pageHeight + spaceRow)) : itemsContainer.setAttribute("x", -(pager.defaultCurrent - 1) * (pageWidth + spaceCol)));
41579
41495
  const clipGroup = createGroup({
41580
41496
  x: 0,
41581
41497
  y: renderStartY,
@@ -41595,7 +41511,7 @@
41595
41511
  x: -(current - 1) * (pageWidth + spaceCol)
41596
41512
  }, animationDuration, animationEasing) : isHorizontal ? itemsContainer.setAttribute("y", -(current - 1) * (pageHeight + spaceRow)) : itemsContainer.setAttribute("x", -(current - 1) * (pageWidth + spaceCol));
41597
41513
  };
41598
- this._pager.addEventListener("toPrev", onPaging), this._pager.addEventListener("toNext", onPaging);
41514
+ return this._pager.addEventListener("toPrev", onPaging), this._pager.addEventListener("toNext", onPaging), !0;
41599
41515
  }
41600
41516
  _setLegendItemState(legendItem, stateName) {
41601
41517
  let keepCurrentStates = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !0;
@@ -47984,6 +47900,7 @@
47984
47900
  ChartEvent["viewDataStatisticsUpdate"] = "viewDataStatisticsUpdate";
47985
47901
  ChartEvent["markDeltaYUpdate"] = "markDeltaYUpdate";
47986
47902
  ChartEvent["viewDataLabelUpdate"] = "viewDataLabelUpdate";
47903
+ ChartEvent["scaleDomainUpdate"] = "scaleDomainUpdate";
47987
47904
  ChartEvent["scaleUpdate"] = "scaleUpdate";
47988
47905
  ChartEvent["dataZoomChange"] = "dataZoomChange";
47989
47906
  ChartEvent["drill"] = "drill";
@@ -49564,6 +49481,64 @@
49564
49481
  return data;
49565
49482
  };
49566
49483
 
49484
+ const DEFAULT_SMOOTH_INTERPOLATE = 'monotone';
49485
+ const DEFAULT_LINEAR_CLOSED_INTERPOLATE = 'linearClosed';
49486
+
49487
+ var ShapeTypeEnum;
49488
+ (function (ShapeTypeEnum) {
49489
+ ShapeTypeEnum["circle"] = "circle";
49490
+ ShapeTypeEnum["triangle"] = "triangle";
49491
+ ShapeTypeEnum["triangleUp"] = "triangleUp";
49492
+ ShapeTypeEnum["triangleLeft"] = "triangleLeft";
49493
+ ShapeTypeEnum["triangleRight"] = "triangleRight";
49494
+ ShapeTypeEnum["triangleDown"] = "triangleDown";
49495
+ ShapeTypeEnum["thinTriangle"] = "thinTriangle";
49496
+ ShapeTypeEnum["rect"] = "rect";
49497
+ ShapeTypeEnum["diamond"] = "diamond";
49498
+ ShapeTypeEnum["square"] = "square";
49499
+ ShapeTypeEnum["arrowLeft"] = "arrowLeft";
49500
+ ShapeTypeEnum["arrow2Left"] = "arrow2Left";
49501
+ ShapeTypeEnum["arrowRight"] = "arrowRight";
49502
+ ShapeTypeEnum["arrow2Right"] = "arrow2Right";
49503
+ ShapeTypeEnum["cross"] = "cross";
49504
+ ShapeTypeEnum["wedge"] = "wedge";
49505
+ ShapeTypeEnum["star"] = "star";
49506
+ ShapeTypeEnum["wye"] = "wye";
49507
+ })(ShapeTypeEnum || (ShapeTypeEnum = {}));
49508
+
49509
+ const DEFAULT_CLOSE_STROKE_JOIN = 'bevel';
49510
+
49511
+ var TooltipFixedPosition;
49512
+ (function (TooltipFixedPosition) {
49513
+ TooltipFixedPosition["top"] = "top";
49514
+ TooltipFixedPosition["left"] = "left";
49515
+ TooltipFixedPosition["right"] = "right";
49516
+ TooltipFixedPosition["bottom"] = "bottom";
49517
+ TooltipFixedPosition["inside"] = "inside";
49518
+ })(TooltipFixedPosition || (TooltipFixedPosition = {}));
49519
+
49520
+ function isXAxis(orient) {
49521
+ return orient === 'bottom' || orient === 'top';
49522
+ }
49523
+ function isYAxis(orient) {
49524
+ return orient === 'left' || orient === 'right';
49525
+ }
49526
+ function isZAxis(orient) {
49527
+ return orient === 'z';
49528
+ }
49529
+ function autoAxisType(orient, isHorizontal) {
49530
+ if (isHorizontal) {
49531
+ return isXAxis(orient) ? 'linear' : 'band';
49532
+ }
49533
+ return isXAxis(orient) ? 'band' : 'linear';
49534
+ }
49535
+ function getOrient(spec, whiteList) {
49536
+ return isValidOrient(spec.orient) || (whiteList && whiteList.includes(spec.orient)) ? spec.orient : 'left';
49537
+ }
49538
+ function getDirectionByOrient(orient) {
49539
+ return orient === 'top' || orient === 'bottom' ? Direction$2.horizontal : Direction$2.vertical;
49540
+ }
49541
+
49567
49542
  const getAxis$1 = (chart, type, pos) => {
49568
49543
  const axesComponents = chart
49569
49544
  .getAllComponents()
@@ -49591,6 +49566,8 @@
49591
49566
  }
49592
49567
  return null;
49593
49568
  };
49569
+ const XAxisGetDimensionField = (series) => series.fieldX[0];
49570
+ const YAxisGetDimensionField = (series) => series.fieldY[0];
49594
49571
  const getCartesianDimensionInfo = (chart, pos) => {
49595
49572
  if (!chart) {
49596
49573
  return null;
@@ -49604,49 +49581,15 @@
49604
49581
  const yAxisList = getAxis$1(chart, 'y', pos);
49605
49582
  const targetAxisInfo = [];
49606
49583
  if (xAxisList) {
49607
- const getDimensionField = (series) => series.fieldX[0];
49608
49584
  xAxisList.forEach(axis => {
49609
- const xScale = axis.getScale();
49610
- if (xScale && isDiscrete(xScale.type)) {
49611
- const xValue = x - axis.getLayoutStartPoint().x;
49612
- if ((xValue - xScale.range()[0]) * (xValue - xScale.range()[1]) > 0) {
49613
- return;
49614
- }
49615
- const value = xScale.invert(xValue);
49616
- if (isNil(value)) {
49617
- return;
49618
- }
49619
- const domain = xScale.domain();
49620
- let index = domain.findIndex((v) => v?.toString() === value.toString());
49621
- if (index < 0) {
49622
- index = undefined;
49623
- }
49624
- const data = getDimensionData(value, axis, 'cartesian', getDimensionField);
49625
- targetAxisInfo.push({ index, value, axis, data });
49626
- }
49585
+ const info = getDiscreteAxisDimensionInfo(axis, x, 'x', XAxisGetDimensionField);
49586
+ info && targetAxisInfo.push(info);
49627
49587
  });
49628
49588
  }
49629
49589
  if (yAxisList) {
49630
- const getDimensionField = (series) => series.fieldY[0];
49631
49590
  yAxisList.forEach(axis => {
49632
- const yScale = axis.getScale();
49633
- if (yScale && isDiscrete(yScale.type)) {
49634
- const yValue = y - axis.getLayoutStartPoint().y;
49635
- if ((yValue - yScale.range()[0]) * (yValue - yScale.range()[1]) > 0) {
49636
- return;
49637
- }
49638
- const value = yScale.invert(yValue);
49639
- if (isNil(value)) {
49640
- return;
49641
- }
49642
- const domain = yScale.domain();
49643
- let index = domain.findIndex((v) => v?.toString() === value.toString());
49644
- if (index < 0) {
49645
- index = undefined;
49646
- }
49647
- const data = getDimensionData(value, axis, 'cartesian', getDimensionField);
49648
- targetAxisInfo.push({ index, value, axis, data });
49649
- }
49591
+ const info = getDiscreteAxisDimensionInfo(axis, y, 'y', YAxisGetDimensionField);
49592
+ info && targetAxisInfo.push(info);
49650
49593
  });
49651
49594
  }
49652
49595
  if (!targetAxisInfo.length) {
@@ -49654,6 +49597,31 @@
49654
49597
  }
49655
49598
  return targetAxisInfo;
49656
49599
  };
49600
+ const getDiscreteAxisDimensionInfo = (axis, posValue, posKey, getDimensionField) => {
49601
+ const scale = axis.getScale();
49602
+ const scalePos = posValue - axis.getLayoutStartPoint()[posKey];
49603
+ if ((scalePos - scale.range()[0]) * (scalePos - scale.range()[1]) > 0) {
49604
+ return null;
49605
+ }
49606
+ const value = scale.invert(scalePos);
49607
+ return getDimensionInfoInAxis(axis, value, getDimensionField);
49608
+ };
49609
+ const getDimensionInfoInAxis = (axis, value, getDimensionField) => {
49610
+ const scale = axis.getScale();
49611
+ if (!scale || !isDiscrete(scale.type)) {
49612
+ return null;
49613
+ }
49614
+ if (isNil(value)) {
49615
+ return null;
49616
+ }
49617
+ const domain = scale.domain();
49618
+ let index = domain.findIndex((v) => v?.toString() === value.toString());
49619
+ if (index < 0) {
49620
+ index = undefined;
49621
+ }
49622
+ const data = getDimensionData(value, axis, 'cartesian', getDimensionField ?? (isXAxis(axis.orient) ? XAxisGetDimensionField : YAxisGetDimensionField));
49623
+ return { index, value, axis, data };
49624
+ };
49657
49625
 
49658
49626
  const getAxis = (chart, type, pos) => {
49659
49627
  const axesComponents = chart
@@ -49804,6 +49772,33 @@
49804
49772
  }
49805
49773
  return result;
49806
49774
  }
49775
+ dispatch(v, opt) {
49776
+ const axis = this._chart?.getAllComponents().filter(c => {
49777
+ if (c.specKey !== 'axes') {
49778
+ return false;
49779
+ }
49780
+ const scale = c.getScale();
49781
+ if (!isDiscrete(scale.type)) {
49782
+ return false;
49783
+ }
49784
+ if (opt?.filter) {
49785
+ return opt.filter(c);
49786
+ }
49787
+ return true;
49788
+ });
49789
+ const dimensionInfo = [];
49790
+ axis.forEach(a => {
49791
+ const info = getDimensionInfoInAxis(a, v);
49792
+ if (info) {
49793
+ dimensionInfo.push(info);
49794
+ }
49795
+ });
49796
+ this._callback.call(null, {
49797
+ action: 'enter',
49798
+ dimensionInfo
49799
+ });
49800
+ return dimensionInfo;
49801
+ }
49807
49802
  }
49808
49803
 
49809
49804
  class DimensionClickEvent extends DimensionEvent {
@@ -49924,6 +49919,9 @@
49924
49919
  _eventDispatcher;
49925
49920
  _mode;
49926
49921
  _composedEventMap = new Map();
49922
+ getComposedEventMap() {
49923
+ return this._composedEventMap;
49924
+ }
49927
49925
  constructor(eventDispatcher, mode) {
49928
49926
  this._eventDispatcher = eventDispatcher;
49929
49927
  this._mode = mode;
@@ -49987,8 +49985,8 @@
49987
49985
  }
49988
49986
  return this;
49989
49987
  }
49990
- emit(eType, params) {
49991
- this._eventDispatcher.dispatch(eType, params);
49988
+ emit(eType, params, level) {
49989
+ this._eventDispatcher.dispatch(eType, params, level);
49992
49990
  return this;
49993
49991
  }
49994
49992
  release() {
@@ -50104,25 +50102,31 @@
50104
50102
  }
50105
50103
  return this;
50106
50104
  }
50107
- dispatch(eType, params) {
50105
+ dispatch(eType, params, level) {
50108
50106
  const bubble = this.getEventBubble(params.source || Event_Source_Type.chart).get(eType);
50109
50107
  if (!bubble) {
50110
50108
  return this;
50111
50109
  }
50112
50110
  let stopBubble = false;
50113
- const handlers = bubble.getHandlers(Event_Bubble_Level.mark);
50114
- stopBubble = this._invoke(handlers, eType, params);
50115
- if (!stopBubble) {
50116
- const handlers = bubble.getHandlers(Event_Bubble_Level.model);
50117
- stopBubble = this._invoke(handlers, eType, params);
50118
- }
50119
- if (!stopBubble) {
50120
- const handlers = bubble.getHandlers(Event_Bubble_Level.chart);
50111
+ if (level) {
50112
+ const handlers = bubble.getHandlers(level);
50121
50113
  stopBubble = this._invoke(handlers, eType, params);
50122
50114
  }
50123
- if (!stopBubble) {
50124
- const handlers = bubble.getHandlers(Event_Bubble_Level.vchart);
50115
+ else {
50116
+ const handlers = bubble.getHandlers(Event_Bubble_Level.mark);
50125
50117
  stopBubble = this._invoke(handlers, eType, params);
50118
+ if (!stopBubble) {
50119
+ const handlers = bubble.getHandlers(Event_Bubble_Level.model);
50120
+ stopBubble = this._invoke(handlers, eType, params);
50121
+ }
50122
+ if (!stopBubble) {
50123
+ const handlers = bubble.getHandlers(Event_Bubble_Level.chart);
50124
+ stopBubble = this._invoke(handlers, eType, params);
50125
+ }
50126
+ if (!stopBubble) {
50127
+ const handlers = bubble.getHandlers(Event_Bubble_Level.vchart);
50128
+ stopBubble = this._invoke(handlers, eType, params);
50129
+ }
50126
50130
  }
50127
50131
  return this;
50128
50132
  }
@@ -50151,7 +50155,7 @@
50151
50155
  if (filter.nodeName && get(params, 'node.name') !== filter.nodeName) {
50152
50156
  return false;
50153
50157
  }
50154
- if (filter.markName && !params?.itemMap.has(filter.markName)) {
50158
+ if (filter.markName && params?.mark?.name !== filter.markName) {
50155
50159
  return false;
50156
50160
  }
50157
50161
  let modelType = params.model?.type;
@@ -50167,8 +50171,9 @@
50167
50171
  return true;
50168
50172
  }
50169
50173
  _prepareParams(filter, params) {
50170
- if (filter.markName && params.itemMap) {
50171
- const item = params.itemMap.get(filter.markName);
50174
+ if (filter.markName && params.mark && params.itemMap) {
50175
+ const markId = params.mark.getProductId();
50176
+ const item = params.itemMap.get(markId);
50172
50177
  const datum = item?.getDatum();
50173
50178
  return { ...params, item, datum };
50174
50179
  }
@@ -50628,6 +50633,7 @@
50628
50633
  return;
50629
50634
  }
50630
50635
  chart.compile();
50636
+ chart.afterCompile();
50631
50637
  this.updateDepend();
50632
50638
  }
50633
50639
  async renderAsync(morphConfig) {
@@ -51474,6 +51480,9 @@
51474
51480
  getComponents() {
51475
51481
  return this._chart.getAllComponents();
51476
51482
  }
51483
+ setDimensionIndex(value, opt = {}) {
51484
+ return this._chart?.setDimensionIndex(value, opt);
51485
+ }
51477
51486
  }
51478
51487
 
51479
51488
  var STATE_VALUE_ENUM;
@@ -51578,7 +51587,7 @@
51578
51587
  }
51579
51588
  constructor(option) {
51580
51589
  this._option = option;
51581
- this.event = new Event$1(option.eventDispatcher, option.mode);
51590
+ this.event = this._option.model.getOption().getChart().getEvent();
51582
51591
  this.interaction = option.interaction;
51583
51592
  this.initConfig(option.mode);
51584
51593
  }
@@ -51611,7 +51620,9 @@
51611
51620
  const items = [];
51612
51621
  params.dimensionInfo.forEach(df => {
51613
51622
  df.data.forEach(dd => {
51614
- const seriesMark = (reverse ? this._markReverse : this._marks).getMarks().filter(m => m.model === dd.series);
51623
+ const seriesMark = (reverse ? this._markReverse : this._marks)
51624
+ .getMarks()
51625
+ .filter(m => m.model === dd.series && m.getVisible());
51615
51626
  seriesMark.forEach(m => {
51616
51627
  const elements = m
51617
51628
  .getProduct()
@@ -54101,7 +54112,7 @@
54101
54112
  VChart.useMark([ComponentMark, GroupMark]);
54102
54113
  Factory.registerRegion('region', Region);
54103
54114
  Factory.registerLayout('base', Layout);
54104
- const version = "1.1.0-beta.2";
54115
+ const version = "1.1.0-beta.4";
54105
54116
 
54106
54117
  var SeriesMarkNameEnum;
54107
54118
  (function (SeriesMarkNameEnum) {
@@ -54589,6 +54600,9 @@
54589
54600
  _globalScale;
54590
54601
  _idMap = new Map();
54591
54602
  _event;
54603
+ getEvent() {
54604
+ return this._event;
54605
+ }
54592
54606
  _dataSet;
54593
54607
  _layoutTag = true;
54594
54608
  getLayoutTag() {
@@ -55278,6 +55292,17 @@
55278
55292
  this.compileSeries();
55279
55293
  this.compileComponents();
55280
55294
  }
55295
+ afterCompile() {
55296
+ this.getAllRegions().forEach(r => {
55297
+ r.afterCompile?.();
55298
+ });
55299
+ this.getAllSeries().forEach(s => {
55300
+ s.afterCompile?.();
55301
+ });
55302
+ this.getAllComponents().forEach(c => {
55303
+ c.afterCompile?.();
55304
+ });
55305
+ }
55281
55306
  compileLayout() {
55282
55307
  const { width, height } = this.getCanvasRect();
55283
55308
  this.getCompiler().setSize(width, height);
@@ -55459,6 +55484,51 @@
55459
55484
  }
55460
55485
  });
55461
55486
  }
55487
+ setDimensionIndex(value, opt) {
55488
+ let dimensionInfo = null;
55489
+ Array.from(this._event.getComposedEventMap().values()).forEach(e => {
55490
+ const { eventType, event } = e;
55491
+ if (eventType === DimensionEventEnum.dimensionHover || eventType === DimensionEventEnum.dimensionClick) {
55492
+ const info = event.dispatch(value, opt);
55493
+ if (info?.length) {
55494
+ dimensionInfo = info;
55495
+ }
55496
+ }
55497
+ });
55498
+ if (!dimensionInfo) {
55499
+ return;
55500
+ }
55501
+ if (opt.tooltip) {
55502
+ const tooltip = this._components.find(c => c.type === ComponentTypeEnum.tooltip);
55503
+ if (tooltip.getVisible()) {
55504
+ const dataFilter = {};
55505
+ dimensionInfo.forEach((d) => {
55506
+ const { axis, value, data } = d;
55507
+ const isY = axis.orient === 'left' || axis.orient === 'right';
55508
+ data.forEach(d => {
55509
+ if (isY) {
55510
+ dataFilter[d.series.fieldY[0]] = value;
55511
+ }
55512
+ else {
55513
+ dataFilter[d.series.fieldX[0]] = value;
55514
+ }
55515
+ });
55516
+ });
55517
+ tooltip.showTooltip(dataFilter, opt.showTooltipOption);
55518
+ }
55519
+ }
55520
+ if (opt.crosshair) {
55521
+ const crosshair = this._components.find(c => c.type === ComponentTypeEnum.cartesianCrosshair);
55522
+ if (crosshair && crosshair.clearAxisValue && crosshair.setAxisValue) {
55523
+ dimensionInfo.forEach((d) => {
55524
+ const { axis, value } = d;
55525
+ crosshair.clearAxisValue();
55526
+ crosshair.setAxisValue(value, axis);
55527
+ crosshair.layoutByValue();
55528
+ });
55529
+ }
55530
+ }
55531
+ }
55462
55532
  }
55463
55533
 
55464
55534
  class CartesianChart extends BaseChart {
@@ -55580,42 +55650,6 @@
55580
55650
  ChartTypeEnum["heatmap"] = "heatmap";
55581
55651
  })(ChartTypeEnum || (ChartTypeEnum = {}));
55582
55652
 
55583
- const DEFAULT_SMOOTH_INTERPOLATE = 'monotone';
55584
- const DEFAULT_LINEAR_CLOSED_INTERPOLATE = 'linearClosed';
55585
-
55586
- var ShapeTypeEnum;
55587
- (function (ShapeTypeEnum) {
55588
- ShapeTypeEnum["circle"] = "circle";
55589
- ShapeTypeEnum["triangle"] = "triangle";
55590
- ShapeTypeEnum["triangleUp"] = "triangleUp";
55591
- ShapeTypeEnum["triangleLeft"] = "triangleLeft";
55592
- ShapeTypeEnum["triangleRight"] = "triangleRight";
55593
- ShapeTypeEnum["triangleDown"] = "triangleDown";
55594
- ShapeTypeEnum["thinTriangle"] = "thinTriangle";
55595
- ShapeTypeEnum["rect"] = "rect";
55596
- ShapeTypeEnum["diamond"] = "diamond";
55597
- ShapeTypeEnum["square"] = "square";
55598
- ShapeTypeEnum["arrowLeft"] = "arrowLeft";
55599
- ShapeTypeEnum["arrow2Left"] = "arrow2Left";
55600
- ShapeTypeEnum["arrowRight"] = "arrowRight";
55601
- ShapeTypeEnum["arrow2Right"] = "arrow2Right";
55602
- ShapeTypeEnum["cross"] = "cross";
55603
- ShapeTypeEnum["wedge"] = "wedge";
55604
- ShapeTypeEnum["star"] = "star";
55605
- ShapeTypeEnum["wye"] = "wye";
55606
- })(ShapeTypeEnum || (ShapeTypeEnum = {}));
55607
-
55608
- const DEFAULT_CLOSE_STROKE_JOIN = 'bevel';
55609
-
55610
- var TooltipFixedPosition;
55611
- (function (TooltipFixedPosition) {
55612
- TooltipFixedPosition["top"] = "top";
55613
- TooltipFixedPosition["left"] = "left";
55614
- TooltipFixedPosition["right"] = "right";
55615
- TooltipFixedPosition["bottom"] = "bottom";
55616
- TooltipFixedPosition["inside"] = "inside";
55617
- })(TooltipFixedPosition || (TooltipFixedPosition = {}));
55618
-
55619
55653
  function setDefaultCrosshairForCartesianChart(spec) {
55620
55654
  spec.crosshair = array(spec.crosshair || {}).map(crosshairCfg => {
55621
55655
  return merge$1({
@@ -65513,28 +65547,6 @@
65513
65547
  }
65514
65548
  mixin(RadarSeries, LineLikeSeriesMixin);
65515
65549
 
65516
- function isXAxis(orient) {
65517
- return orient === 'bottom' || orient === 'top';
65518
- }
65519
- function isYAxis(orient) {
65520
- return orient === 'left' || orient === 'right';
65521
- }
65522
- function isZAxis(orient) {
65523
- return orient === 'z';
65524
- }
65525
- function autoAxisType(orient, isHorizontal) {
65526
- if (isHorizontal) {
65527
- return isXAxis(orient) ? 'linear' : 'band';
65528
- }
65529
- return isXAxis(orient) ? 'band' : 'linear';
65530
- }
65531
- function getOrient(spec, whiteList) {
65532
- return isValidOrient(spec.orient) || (whiteList && whiteList.includes(spec.orient)) ? spec.orient : 'left';
65533
- }
65534
- function getDirectionByOrient(orient) {
65535
- return orient === 'top' || orient === 'bottom' ? Direction$2.horizontal : Direction$2.vertical;
65536
- }
65537
-
65538
65550
  class DotSeriesTooltipHelper extends BaseSeriesTooltipHelper {
65539
65551
  updateTooltipSpec() {
65540
65552
  super.updateTooltipSpec();
@@ -68714,14 +68726,10 @@
68714
68726
  _fillingFontPadding;
68715
68727
  _wordCloudConfig;
68716
68728
  _wordCloudShapeConfig;
68717
- _paddingLeft;
68718
- _paddingTop;
68729
+ _padding;
68719
68730
  setAttrFromSpec() {
68720
68731
  super.setAttrFromSpec();
68721
- this._paddingLeft =
68722
- this._spec?.chartPadding?.left ?? this._spec.chartPadding ?? 0;
68723
- this._paddingTop =
68724
- this._spec?.chartPadding?.top ?? this._spec.chartPadding ?? 0;
68732
+ this._padding = this._option.getChart().padding;
68725
68733
  this._nameField = this._spec.nameField;
68726
68734
  this._fontFamilyField = this._spec.fontFamilyField;
68727
68735
  this._fontWeightField = this._spec.fontWeightField;
@@ -68883,7 +68891,10 @@
68883
68891
  wordCloudTransforms.push({
68884
68892
  type: 'wordcloud',
68885
68893
  layoutType: !isTrueBrowser(this._option.mode) ? 'fast' : this._wordCloudConfig.layoutMode,
68886
- size: [srView.width() - this._paddingLeft, srView.height() - this._paddingTop],
68894
+ size: [
68895
+ srView.width() - this._padding?.left || 0 - this._padding?.right || 0,
68896
+ srView.height() - this._padding?.top || 0 - this._padding?.bottom || 0
68897
+ ],
68887
68898
  shape: this._maskShape,
68888
68899
  dataIndexKey: DEFAULT_DATA_KEY,
68889
68900
  text: { field: textField },
@@ -69040,7 +69051,10 @@
69040
69051
  wordCloudTransforms.push({
69041
69052
  type: 'wordcloud',
69042
69053
  layoutType: this._wordCloudConfig.layoutMode,
69043
- size: [srView.width() - this._paddingLeft, srView.height() - this._paddingTop],
69054
+ size: [
69055
+ srView.width() - this._padding?.left || 0 - this._padding?.right || 0,
69056
+ srView.height() - this._padding?.top || 0 - this._padding?.bottom || 0
69057
+ ],
69044
69058
  shape: this._maskShape,
69045
69059
  postProjection: this._spec.postProjection ?? 'StereographicProjection',
69046
69060
  dataIndexKey: DEFAULT_DATA_KEY,
@@ -69168,8 +69182,8 @@
69168
69182
  if (this._wordMark) {
69169
69183
  this._wordMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.wordCloud3d(() => {
69170
69184
  const srView = this.getCompiler().getVGrammarView();
69171
- const width = srView.width() - this._paddingLeft;
69172
- const height = srView.height() - this._paddingTop;
69185
+ const width = srView.width() - this._padding?.left || 0 - this._padding?.right || 0;
69186
+ const height = srView.height() - this._padding?.top || 0 - this._padding?.bottom || 0;
69173
69187
  const r = Math.max(width, height) / 2;
69174
69188
  return {
69175
69189
  center: { x: r, y: r, z: this._spec.depth_3d ?? r },
@@ -69180,8 +69194,8 @@
69180
69194
  if (this._fillingWordMark) {
69181
69195
  this._fillingWordMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.wordCloud3d(() => {
69182
69196
  const srView = this.getCompiler().getVGrammarView();
69183
- const width = srView.width() - this._paddingLeft;
69184
- const height = srView.height() - this._paddingTop;
69197
+ const width = srView.width() - this._padding?.left || 0 - this._padding?.right || 0;
69198
+ const height = srView.height() - this._padding?.top || 0 - this._padding?.bottom || 0;
69185
69199
  const r = Math.max(width, height) / 2;
69186
69200
  return {
69187
69201
  center: { x: r, y: r, z: this._spec.depth_3d ?? r },
@@ -70887,7 +70901,7 @@
70887
70901
  _drillInfo;
70888
70902
  _getTriggerEvent(type) {
70889
70903
  const { mode } = this._drillParams;
70890
- return defaultTriggerEvent[mode][type];
70904
+ return defaultTriggerEvent[mode]?.[type];
70891
70905
  }
70892
70906
  _hideTooltip() {
70893
70907
  const tooltip = this
@@ -70913,22 +70927,24 @@
70913
70927
  bindDrillEvent() {
70914
70928
  const { event, getRawData, drillField } = this._drillParams;
70915
70929
  const keyField = drillField();
70916
- event.on(this._getTriggerEvent('start'), e => {
70917
- if (isNil(e.datum) || isNil(e.datum?.[keyField])) {
70918
- this.drillUp();
70919
- return;
70920
- }
70921
- this._hideTooltip();
70922
- const dataKey = e.datum[keyField];
70923
- const selectPath = this._drillInfo?.path ?? [];
70924
- const clickedPath = findHierarchyPath(getRawData().rawData, dataKey, keyField, 'children');
70925
- if (selectPath[selectPath.length - 1] === clickedPath[clickedPath.length - 1]) {
70926
- this.drillUp();
70927
- }
70928
- else {
70929
- this.drillDown(clickedPath);
70930
- }
70931
- });
70930
+ if (this._getTriggerEvent('start')) {
70931
+ event.on(this._getTriggerEvent('start'), e => {
70932
+ if (isNil(e.datum) || isNil(e.datum?.[keyField])) {
70933
+ this.drillUp();
70934
+ return;
70935
+ }
70936
+ this._hideTooltip();
70937
+ const dataKey = e.datum[keyField];
70938
+ const selectPath = this._drillInfo?.path ?? [];
70939
+ const clickedPath = findHierarchyPath(getRawData().rawData, dataKey, keyField, 'children');
70940
+ if (selectPath[selectPath.length - 1] === clickedPath[clickedPath.length - 1]) {
70941
+ this.drillUp();
70942
+ }
70943
+ else {
70944
+ this.drillDown(clickedPath);
70945
+ }
70946
+ });
70947
+ }
70932
70948
  }
70933
70949
  drillDown(drillPath = []) {
70934
70950
  const { getRawData, event } = this._drillParams;
@@ -72924,17 +72940,19 @@
72924
72940
  initZoomable(evt, mode = exports.RenderModeEnum['desktop-browser']) {
72925
72941
  this._eventObj = evt;
72926
72942
  this._renderMode = mode;
72927
- this._clickEnable = true;
72928
- this._zoomableTrigger = new (this.getTriggerEvent('trigger'))();
72943
+ if (defaultTriggerEvent[this._renderMode]) {
72944
+ this._clickEnable = true;
72945
+ this._zoomableTrigger = new (this._getTriggerEvent('trigger'))();
72946
+ }
72929
72947
  }
72930
- getTriggerEvent(type) {
72948
+ _getTriggerEvent(type) {
72931
72949
  return defaultTriggerEvent[this._renderMode][type];
72932
72950
  }
72933
72951
  _bindZoomEventAsRegion(eventObj, regionOrSeries, callback) {
72934
- eventObj.on(this.getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }, params => {
72952
+ eventObj.on(this._getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }, params => {
72935
72953
  this._zoomableTrigger.clearZoom();
72936
72954
  });
72937
- eventObj.on(this.getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }, params => {
72955
+ eventObj.on(this._getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }, params => {
72938
72956
  if (!params.event) {
72939
72957
  return;
72940
72958
  }
@@ -72965,44 +72983,52 @@
72965
72983
  });
72966
72984
  }
72967
72985
  initZoomEventOfSeries(s, callback) {
72968
- this._bindZoomEventAsRegion(s.event, s, callback);
72986
+ if (defaultTriggerEvent[this._renderMode]) {
72987
+ this._bindZoomEventAsRegion(s.event, s, callback);
72988
+ }
72969
72989
  }
72970
72990
  initZoomEventOfRegions(regions, filter, callback) {
72971
- regions.forEach(r => {
72972
- if (filter) {
72973
- r.getSeries().forEach(s => {
72974
- if (filter(s)) {
72975
- this._bindZoomEventAsRegion(s.event, s, callback);
72976
- }
72977
- });
72978
- }
72979
- else {
72980
- this._bindZoomEventAsRegion(this._eventObj, r, callback);
72981
- }
72982
- });
72991
+ if (defaultTriggerEvent[this._renderMode]) {
72992
+ regions.forEach(r => {
72993
+ if (filter) {
72994
+ r.getSeries().forEach(s => {
72995
+ if (filter(s)) {
72996
+ this._bindZoomEventAsRegion(s.event, s, callback);
72997
+ }
72998
+ });
72999
+ }
73000
+ else {
73001
+ this._bindZoomEventAsRegion(this._eventObj, r, callback);
73002
+ }
73003
+ });
73004
+ }
72983
73005
  }
72984
73006
  initScrollEventOfSeries(s, callback) {
72985
- this._bindScrollEventAsRegion(s.event, s, callback);
73007
+ if (defaultTriggerEvent[this._renderMode]) {
73008
+ this._bindScrollEventAsRegion(s.event, s, callback);
73009
+ }
72986
73010
  }
72987
73011
  initScrollEventOfRegions(regions, filter, callback) {
72988
- regions.forEach(r => {
72989
- if (filter) {
72990
- r.getSeries().forEach(s => {
72991
- if (filter(s)) {
72992
- this._bindScrollEventAsRegion(s.event, s, callback);
72993
- }
72994
- });
72995
- }
72996
- else {
72997
- this._bindScrollEventAsRegion(this._eventObj, r, callback);
72998
- }
72999
- });
73012
+ if (defaultTriggerEvent[this._renderMode]) {
73013
+ regions.forEach(r => {
73014
+ if (filter) {
73015
+ r.getSeries().forEach(s => {
73016
+ if (filter(s)) {
73017
+ this._bindScrollEventAsRegion(s.event, s, callback);
73018
+ }
73019
+ });
73020
+ }
73021
+ else {
73022
+ this._bindScrollEventAsRegion(this._eventObj, r, callback);
73023
+ }
73024
+ });
73025
+ }
73000
73026
  }
73001
73027
  _bindScrollEventAsRegion(eventObj, regionOrSeries, callback) {
73002
- eventObj.on(this.getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }, params => {
73028
+ eventObj.on(this._getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }, params => {
73003
73029
  this._zoomableTrigger.clearScroll();
73004
73030
  });
73005
- eventObj.on(this.getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }, params => {
73031
+ eventObj.on(this._getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }, params => {
73006
73032
  if (!params.event) {
73007
73033
  return;
73008
73034
  }
@@ -73033,7 +73059,7 @@
73033
73059
  });
73034
73060
  }
73035
73061
  _bindDragEventAsRegion(eventObj, regionOrSeries, callback) {
73036
- eventObj.on(this.getTriggerEvent('start'), { level: Event_Bubble_Level.chart }, params => {
73062
+ eventObj.on(this._getTriggerEvent('start'), { level: Event_Bubble_Level.chart }, params => {
73037
73063
  if (!params.event) {
73038
73064
  return;
73039
73065
  }
@@ -73054,36 +73080,40 @@
73054
73080
  });
73055
73081
  }
73056
73082
  initDragEventOfSeries(s, callback) {
73057
- s.event.on(this.getTriggerEvent('start'), { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id }, params => {
73058
- this._handleDrag(params, callback);
73059
- });
73083
+ if (defaultTriggerEvent[this._renderMode]) {
73084
+ s.event.on(this._getTriggerEvent('start'), { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id }, params => {
73085
+ this._handleDrag(params, callback);
73086
+ });
73087
+ }
73060
73088
  }
73061
73089
  initDragEventOfRegions(regions, filter, callback) {
73062
- regions.forEach(r => {
73063
- if (filter) {
73064
- r.getSeries().forEach(s => {
73065
- if (filter(s)) {
73066
- s.event.on(this.getTriggerEvent('start'), { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id }, params => {
73067
- this._handleDrag(params, callback);
73068
- });
73069
- s.event.on('click', { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id }, () => {
73070
- return !this._clickEnable;
73071
- });
73072
- }
73073
- });
73074
- }
73075
- else {
73076
- this._bindDragEventAsRegion(this._eventObj, r, callback);
73077
- }
73078
- });
73090
+ if (defaultTriggerEvent[this._renderMode]) {
73091
+ regions.forEach(r => {
73092
+ if (filter) {
73093
+ r.getSeries().forEach(s => {
73094
+ if (filter(s)) {
73095
+ s.event.on(this._getTriggerEvent('start'), { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id }, params => {
73096
+ this._handleDrag(params, callback);
73097
+ });
73098
+ s.event.on('click', { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id }, () => {
73099
+ return !this._clickEnable;
73100
+ });
73101
+ }
73102
+ });
73103
+ }
73104
+ else {
73105
+ this._bindDragEventAsRegion(this._eventObj, r, callback);
73106
+ }
73107
+ });
73108
+ }
73079
73109
  }
73080
73110
  _handleDrag(params, callback) {
73081
73111
  this._clickEnable = true;
73082
73112
  if (!this._zoomableTrigger.parserDragEvent(params.event)) {
73083
73113
  return;
73084
73114
  }
73085
- const move = this.getTriggerEvent('move');
73086
- const end = this.getTriggerEvent('end');
73115
+ const move = this._getTriggerEvent('move');
73116
+ const end = this._getTriggerEvent('end');
73087
73117
  const event = params.event;
73088
73118
  let x = event.canvasX;
73089
73119
  let y = event.canvasY;
@@ -75395,8 +75425,7 @@
75395
75425
  wordCloudConfig: spec.wordCloudConfig,
75396
75426
  wordCloudShapeConfig: spec.wordCloudShapeConfig,
75397
75427
  word: spec.word,
75398
- fillingWord: spec.fillingWord,
75399
- chartPadding: spec.padding
75428
+ fillingWord: spec.fillingWord
75400
75429
  };
75401
75430
  const seriesType = this.seriesType;
75402
75431
  if (seriesType) {
@@ -75435,8 +75464,7 @@
75435
75464
  wordCloudConfig: spec.wordCloudConfig,
75436
75465
  wordCloudShapeConfig: spec.wordCloudShapeConfig,
75437
75466
  word: spec.word,
75438
- fillingWord: spec.fillingWord,
75439
- chartPadding: spec.padding
75467
+ fillingWord: spec.fillingWord
75440
75468
  };
75441
75469
  const seriesType = this.seriesType;
75442
75470
  if (seriesType) {
@@ -75630,6 +75658,8 @@
75630
75658
  }
75631
75659
  clear() {
75632
75660
  this._container = null;
75661
+ this.pluginService?.disposeAll();
75662
+ this.pluginService = null;
75633
75663
  }
75634
75664
  compile() {
75635
75665
  this.compileSignal();
@@ -75654,7 +75684,7 @@
75654
75684
  datum: null,
75655
75685
  source: Event_Source_Type.chart,
75656
75686
  chart: this._option?.globalInstance?.getChart()
75657
- });
75687
+ }, 'model');
75658
75688
  };
75659
75689
  }
75660
75690
 
@@ -77498,16 +77528,216 @@
77498
77528
  }
77499
77529
  }
77500
77530
 
77501
- var pluginMap = {
77502
- AxisLabelOverlapPlugin
77503
- };
77504
-
77505
- const scaleParser = (scale) => {
77506
- return scale;
77531
+ function isValidAlignDomain(domain) {
77532
+ return domain.length === 2 && isValidNumber(domain[0]) && isValidNumber(domain[1]) && domain[1] >= domain[0];
77533
+ }
77534
+ function getScaleInfo(axis, domain) {
77535
+ const total = domain[1] - domain[0];
77536
+ const includeZero = domain[1] * domain[0] < 0;
77537
+ let negative = domain[0] <= 0 ? 0 - domain[0] : 0;
77538
+ let positive = domain[1] > 0 ? domain[1] - 0 : 0;
77539
+ if (total === 0) {
77540
+ if (domain[0] < 0) {
77541
+ negative = 1;
77542
+ positive = 0;
77543
+ }
77544
+ else if (domain[0] > 0) {
77545
+ negative = 0;
77546
+ positive = 1;
77547
+ }
77548
+ }
77549
+ else {
77550
+ negative = negative / total;
77551
+ positive = positive / total;
77552
+ }
77553
+ const domainSpec = axis.getDomainSpec();
77554
+ return {
77555
+ total,
77556
+ negative,
77557
+ positive,
77558
+ includeZero,
77559
+ domain,
77560
+ extendable_min: !isValidNumber(domainSpec.min),
77561
+ extendable_max: !isValidNumber(domainSpec.max)
77562
+ };
77563
+ }
77564
+ function inDifferentCrossZero(info1, info2) {
77565
+ const { positive: positive1, negative: negative1, extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, domain: domain1 } = info1;
77566
+ const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, extendable_max: s2Extendable_max, domain: domain2 } = info2;
77567
+ if (positive2 > 0) {
77568
+ if (!s2Extendable_min) {
77569
+ return false;
77570
+ }
77571
+ let comp = negative1 / positive1;
77572
+ if (s1Extendable_max) {
77573
+ comp = negative1 / Math.max(positive1, positive2);
77574
+ domain1[1] = -domain1[0] / comp;
77575
+ }
77576
+ domain2[0] = -domain2[1] * comp;
77577
+ }
77578
+ else if (negative2 > 0) {
77579
+ if (!s2Extendable_max) {
77580
+ return false;
77581
+ }
77582
+ let comp = positive1 / negative1;
77583
+ if (s1Extendable_min) {
77584
+ comp = positive1 / Math.max(negative1, negative1);
77585
+ domain1[0] = -domain1[1] / comp;
77586
+ }
77587
+ domain2[1] = -domain2[0] * comp;
77588
+ }
77589
+ return true;
77590
+ }
77591
+ function inOnlyZeroDomain(info1, info2) {
77592
+ const { extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, domain: domain1 } = info1;
77593
+ const { positive: positive2, negative: negative2, domain: domain2 } = info2;
77594
+ if (positive2 === 0 && negative2 === 0) {
77595
+ return false;
77596
+ }
77597
+ if (positive2 > 0 && !s1Extendable_max) {
77598
+ return false;
77599
+ }
77600
+ if (negative2 > 0 && !s1Extendable_min) {
77601
+ return false;
77602
+ }
77603
+ domain1[0] = domain2[0];
77604
+ domain1[1] = domain2[1];
77605
+ return true;
77606
+ }
77607
+ function inAllCrossZero(info1, info2) {
77608
+ const { positive: positive1, negative: negative1, extendable_max: s1Extendable_max, domain: domain1 } = info1;
77609
+ const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, domain: domain2 } = info2;
77610
+ if (s1Extendable_max && s2Extendable_min) {
77611
+ const comp = Math.max(negative1, negative2) / Math.max(positive1, positive2);
77612
+ domain1[1] = -domain1[0] / comp;
77613
+ domain2[0] = -domain2[1] * comp;
77614
+ }
77615
+ else if (s2Extendable_min) {
77616
+ const comp = negative1 / positive1;
77617
+ domain2[0] = -domain2[1] * comp;
77618
+ }
77619
+ else if (s1Extendable_max) {
77620
+ const comp = negative2 / positive2;
77621
+ domain1[1] = -domain1[0] / comp;
77622
+ }
77623
+ else {
77624
+ return false;
77625
+ }
77626
+ return true;
77627
+ }
77628
+ function inNoCrossDifferentSide(info1, info2) {
77629
+ const { extendable_min: s1Extendable_min, domain: domain1 } = info1;
77630
+ const { extendable_max: s2Extendable_max, domain: domain2 } = info2;
77631
+ if (!s1Extendable_min || !s2Extendable_max) {
77632
+ return false;
77633
+ }
77634
+ domain1[0] = -domain1[1];
77635
+ domain2[1] = -domain2[0];
77636
+ return true;
77637
+ }
77638
+ const zeroAlign = (targetAxis, currentAxis) => {
77639
+ const s1 = targetAxis.getScale();
77640
+ const s2 = currentAxis.getScale();
77641
+ if (!s1 || !s2) {
77642
+ return;
77643
+ }
77644
+ if (!isContinuous(s1.type) || !isContinuous(s2.type)) {
77645
+ return;
77646
+ }
77647
+ const domain1 = [...s1.domain()];
77648
+ const domain2 = [...s2.domain()];
77649
+ if (!isValidAlignDomain(domain1) || !isValidAlignDomain(domain2)) {
77650
+ return;
77651
+ }
77652
+ const info1 = getScaleInfo(targetAxis, domain1);
77653
+ const info2 = getScaleInfo(currentAxis, domain2);
77654
+ const { positive: positive1, negative: negative1, extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, includeZero: includeZero1 } = info1;
77655
+ const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, extendable_max: s2Extendable_max, includeZero: includeZero2 } = info2;
77656
+ if (positive1 === 0 && negative1 === 0) {
77657
+ if (!inOnlyZeroDomain(info1, info2)) {
77658
+ return;
77659
+ }
77660
+ }
77661
+ else if (positive2 === 0 && negative2 === 0) {
77662
+ if (!inOnlyZeroDomain(info2, info1)) {
77663
+ return;
77664
+ }
77665
+ }
77666
+ else if (!includeZero1 && !includeZero2) {
77667
+ if (negative1 === 0 && positive2 === 0) {
77668
+ if (!inNoCrossDifferentSide(info1, info2)) {
77669
+ return;
77670
+ }
77671
+ }
77672
+ else if (negative2 === 0 && positive1 === 0) {
77673
+ if (!inNoCrossDifferentSide(info2, info1)) {
77674
+ return;
77675
+ }
77676
+ }
77677
+ if (negative1 === 0 && negative2 === 0) {
77678
+ if (domain1[0] === 0 && domain2[0] > 0) {
77679
+ if (!s2Extendable_min) {
77680
+ return;
77681
+ }
77682
+ domain2[0] = 0;
77683
+ }
77684
+ else if (domain2[0] === 0 && domain1[0] > 0) {
77685
+ if (!s1Extendable_min) {
77686
+ return;
77687
+ }
77688
+ domain1[0] = 0;
77689
+ }
77690
+ else {
77691
+ return;
77692
+ }
77693
+ }
77694
+ if (positive1 === 0 && positive2 === 0) {
77695
+ if (domain1[1] === 0 && domain2[1] > 0) {
77696
+ if (!s2Extendable_max) {
77697
+ return;
77698
+ }
77699
+ domain2[1] = 0;
77700
+ }
77701
+ else if (domain2[1] === 0 && domain1[1] > 0) {
77702
+ if (!s1Extendable_max) {
77703
+ return;
77704
+ }
77705
+ domain1[1] = 0;
77706
+ }
77707
+ else {
77708
+ return;
77709
+ }
77710
+ }
77711
+ }
77712
+ else if (includeZero1 && !includeZero2) {
77713
+ if (!inDifferentCrossZero(info1, info2)) {
77714
+ return;
77715
+ }
77716
+ }
77717
+ else if (includeZero2 && !includeZero1) {
77718
+ if (!inDifferentCrossZero(info2, info1)) {
77719
+ return;
77720
+ }
77721
+ }
77722
+ else {
77723
+ if (negative1 === negative2) {
77724
+ return;
77725
+ }
77726
+ else if (negative1 > negative2) {
77727
+ if (!inAllCrossZero(info1, info2)) {
77728
+ return;
77729
+ }
77730
+ }
77731
+ else {
77732
+ if (!inAllCrossZero(info2, info1)) {
77733
+ return;
77734
+ }
77735
+ }
77736
+ }
77737
+ s1.domain(domain1);
77738
+ s2.domain(domain2);
77507
77739
  };
77508
77740
 
77509
- const DEFAULT_CONTINUOUS_TICK_COUNT = 5;
77510
-
77511
77741
  const convertDomainToTickData = (domain, op) => {
77512
77742
  const ticks = domain.map((t, index) => {
77513
77743
  return {
@@ -77639,6 +77869,124 @@
77639
77869
  return labelBoundsList;
77640
77870
  };
77641
77871
 
77872
+ const tickAlign = (data, op) => {
77873
+ if (!data) {
77874
+ return data;
77875
+ }
77876
+ const targetAxis = op?.targetAxis?.();
77877
+ if (!targetAxis) {
77878
+ return data;
77879
+ }
77880
+ const currentAxis = op?.currentAxis?.();
77881
+ if (!currentAxis) {
77882
+ return data;
77883
+ }
77884
+ const currentData = currentAxis.getTickData()?.getDataView();
77885
+ if (!currentData) {
77886
+ return data;
77887
+ }
77888
+ const currentTickTransform = currentData.transformsArr.find(t => t.type === 'ticks');
77889
+ if (!currentTickTransform) {
77890
+ return data;
77891
+ }
77892
+ const currentScale = currentAxis.getScale();
77893
+ if (!currentScale) {
77894
+ return data;
77895
+ }
77896
+ const targetData = targetAxis.getTickData()?.getDataView()?.latestData;
77897
+ if (!targetData?.length) {
77898
+ return data;
77899
+ }
77900
+ const targetScale = targetAxis.getScale();
77901
+ if (!targetScale) {
77902
+ return data;
77903
+ }
77904
+ const targetDomain = targetScale.domain();
77905
+ const targetRange = targetDomain[1] - targetDomain[0];
77906
+ if (targetRange === 0) {
77907
+ return data;
77908
+ }
77909
+ const currentDomain = currentScale.domain();
77910
+ const currentRange = currentDomain[1] - currentDomain[0];
77911
+ if (targetRange === 0) {
77912
+ return data;
77913
+ }
77914
+ const newTicks = targetData.map((d) => {
77915
+ const percent = (d.value - targetDomain[0]) / targetRange;
77916
+ return currentRange * percent + currentDomain[0];
77917
+ });
77918
+ return convertDomainToTickData(newTicks, currentTickTransform.options);
77919
+ };
77920
+
77921
+ class AxisSyncPlugin extends BasicComponentPlugin {
77922
+ Name = 'AxisSyncPlugin';
77923
+ constructor() {
77924
+ super(AxisSyncPlugin.Name);
77925
+ }
77926
+ _checkEnableSync(axis) {
77927
+ if (!isContinuous(axis.getScale().type)) {
77928
+ return false;
77929
+ }
77930
+ const sync = axis.getSpec().sync;
77931
+ if (!sync?.axisId) {
77932
+ return false;
77933
+ }
77934
+ return sync;
77935
+ }
77936
+ _getTargetAxis(axis, sync) {
77937
+ const targetAxis = axis.getOption().getChart().getComponentByUserId(sync.axisId);
77938
+ if (!targetAxis?.type.startsWith('cartesianAxis')) {
77939
+ return null;
77940
+ }
77941
+ return targetAxis;
77942
+ }
77943
+ onInit(service, axis) {
77944
+ const sync = this._checkEnableSync(axis);
77945
+ if (!sync) {
77946
+ return;
77947
+ }
77948
+ if (!sync.zeroAlign) {
77949
+ return;
77950
+ }
77951
+ const targetAxis = this._getTargetAxis(axis, sync);
77952
+ if (!targetAxis) {
77953
+ return;
77954
+ }
77955
+ axis.event.on(ChartEvent.scaleDomainUpdate, { filter: ({ model }) => model.id === axis.id }, () => {
77956
+ zeroAlign(targetAxis, axis);
77957
+ });
77958
+ }
77959
+ onDidCompile(service, axis) {
77960
+ const sync = this._checkEnableSync(axis);
77961
+ if (!sync) {
77962
+ return;
77963
+ }
77964
+ const targetAxis = this._getTargetAxis(axis, sync);
77965
+ if (!targetAxis) {
77966
+ return;
77967
+ }
77968
+ if (sync.tickAlign) {
77969
+ registerDataSetInstanceTransform(axis.getOption().dataSet, 'tickAlign', tickAlign);
77970
+ const opt = {
77971
+ targetAxis: () => targetAxis,
77972
+ currentAxis: () => axis
77973
+ };
77974
+ axis.addTransformToTickData({ type: 'tickAlign', options: opt, level: Number.MAX_SAFE_INTEGER }, false);
77975
+ }
77976
+ }
77977
+ }
77978
+
77979
+ var pluginMap = {
77980
+ AxisLabelOverlapPlugin,
77981
+ AxisSyncPlugin
77982
+ };
77983
+
77984
+ const scaleParser = (scale) => {
77985
+ return scale;
77986
+ };
77987
+
77988
+ const DEFAULT_CONTINUOUS_TICK_COUNT = 5;
77989
+
77642
77990
  const continuousTicks = (scale, op) => {
77643
77991
  if (!isContinuous(scale.type)) {
77644
77992
  return convertDomainToTickData(scale.domain(), op);
@@ -77890,6 +78238,9 @@
77890
78238
  return this._scales;
77891
78239
  }
77892
78240
  _tickData;
78241
+ getTickData() {
78242
+ return this._tickData;
78243
+ }
77893
78244
  _statisticsDomain = { domain: [], index: {} };
77894
78245
  getStatisticsDomain() {
77895
78246
  return this._statisticsDomain;
@@ -78017,17 +78368,6 @@
78017
78368
  });
78018
78369
  }
78019
78370
  updateScaleDomain() {
78020
- if (!this.isSeriesDataEnable()) {
78021
- return;
78022
- }
78023
- this.computeStatisticsDomain();
78024
- for (let i = 0; i < this._scales.length; i++) {
78025
- const data = this.collectData(i);
78026
- const domain = this.computeDomain(data);
78027
- this._scales[i].domain(domain);
78028
- }
78029
- this.transformScaleDomain();
78030
- this.event.emit(ChartEvent.scaleUpdate, { model: this });
78031
78371
  }
78032
78372
  computeData() {
78033
78373
  this._tickData.getDataView().reRunAllTransform();
@@ -78193,9 +78533,12 @@
78193
78533
  }
78194
78534
  };
78195
78535
  }
78536
+ addTransformToTickData(options, execute) {
78537
+ this._tickData?.getDataView()?.transform(options, execute);
78538
+ }
78196
78539
  }
78197
78540
 
78198
- const CartesianAxisPlugin = [pluginMap.AxisLabelOverlapPlugin];
78541
+ const CartesianAxisPlugin = [pluginMap.AxisLabelOverlapPlugin, pluginMap.AxisSyncPlugin];
78199
78542
  class CartesianAxis extends AxisComponent {
78200
78543
  static type = ComponentTypeEnum.cartesianAxis;
78201
78544
  type = ComponentTypeEnum.cartesianAxis;
@@ -78350,6 +78693,9 @@
78350
78693
  init(option) {
78351
78694
  super.init(option);
78352
78695
  this.pluginService?.load(CartesianAxisPlugin.map(P => new P()));
78696
+ this.callPlugin(plugin => {
78697
+ this.pluginService && plugin.onInit && plugin.onInit(this.pluginService, this);
78698
+ });
78353
78699
  }
78354
78700
  setAttrFromSpec() {
78355
78701
  super.setAttrFromSpec();
@@ -78414,7 +78760,7 @@
78414
78760
  getAxisId: () => this.id
78415
78761
  };
78416
78762
  }
78417
- onLayoutStart(ctx) {
78763
+ afterCompile() {
78418
78764
  const product = this.getMarks()[0]?.getProduct();
78419
78765
  if (product) {
78420
78766
  product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {
@@ -78435,6 +78781,9 @@
78435
78781
  }
78436
78782
  });
78437
78783
  }
78784
+ this.callPlugin(plugin => {
78785
+ this.pluginService && plugin.onDidCompile && plugin.onDidCompile(this.pluginService, this);
78786
+ });
78438
78787
  }
78439
78788
  onLayoutEnd(ctx) {
78440
78789
  const isRangeChange = this.updateScaleRange();
@@ -78899,6 +79248,9 @@
78899
79248
  temp < domain[min] && (domain[min] = temp);
78900
79249
  }
78901
79250
  }
79251
+ getDomainSpec() {
79252
+ return this._domain;
79253
+ }
78902
79254
  setDomainMinMax(domain) {
78903
79255
  if (!this._domain) {
78904
79256
  return;
@@ -78930,6 +79282,7 @@
78930
79282
  this.niceDomain(domain);
78931
79283
  this._scale.domain(domain, this._nice);
78932
79284
  this.niceMinMax();
79285
+ this.event.emit(ChartEvent.scaleDomainUpdate, { model: this });
78933
79286
  this.event.emit(ChartEvent.scaleUpdate, { model: this });
78934
79287
  }
78935
79288
  }
@@ -79024,6 +79377,26 @@
79024
79377
  }
79025
79378
  return Array.from(tempSet);
79026
79379
  }
79380
+ updateScaleDomain() {
79381
+ if (!this.isSeriesDataEnable()) {
79382
+ return;
79383
+ }
79384
+ this.computeStatisticsDomain();
79385
+ const userDomain = this._spec.domain;
79386
+ for (let i = 0; i < this._scales.length; i++) {
79387
+ if (userDomain && userDomain.length && i === 0) {
79388
+ this._scales[i].domain(userDomain);
79389
+ }
79390
+ else {
79391
+ const data = this.collectData(i);
79392
+ const domain = this.computeDomain(data);
79393
+ this._scales[i].domain(domain);
79394
+ }
79395
+ }
79396
+ this.transformScaleDomain();
79397
+ this.event.emit(ChartEvent.scaleDomainUpdate, { model: this });
79398
+ this.event.emit(ChartEvent.scaleUpdate, { model: this });
79399
+ }
79027
79400
  }
79028
79401
 
79029
79402
  class CartesianBandAxis extends CartesianAxis {
@@ -79707,7 +80080,8 @@
79707
80080
  }
79708
80081
 
79709
80082
  const discreteLegendDataMake = (data, op) => {
79710
- const result = {};
80083
+ const result = [];
80084
+ const tempKey = {};
79711
80085
  const { series, seriesField } = op;
79712
80086
  series().forEach(s => {
79713
80087
  const field = seriesField(s);
@@ -79719,13 +80093,14 @@
79719
80093
  infoList = s.getSeriesInfoInField(field);
79720
80094
  }
79721
80095
  infoList.forEach(info => {
79722
- if (result[info.key]) {
80096
+ if (tempKey[info.key]) {
79723
80097
  return;
79724
80098
  }
79725
- result[info.key] = info;
80099
+ tempKey[info.key] = true;
80100
+ result.push(info);
79726
80101
  });
79727
80102
  });
79728
- return Object.values(result);
80103
+ return result;
79729
80104
  };
79730
80105
  const discreteLegendFilter = (data, op) => {
79731
80106
  const { selected, field, data: legendData } = op;
@@ -81090,12 +81465,14 @@
81090
81465
  return result;
81091
81466
  }
81092
81467
  _initEvent() {
81093
- const { in: triggerEvent, out: outTriggerEvent } = this._getTriggerEvent();
81094
- if (isArray(triggerEvent)) {
81095
- triggerEvent.forEach((eventName, index) => this._registerEvent(eventName, isArray(outTriggerEvent) ? outTriggerEvent[index] : outTriggerEvent));
81096
- }
81097
- else {
81098
- this._registerEvent(triggerEvent, outTriggerEvent);
81468
+ if (this._getTriggerEvent()) {
81469
+ const { in: triggerEvent, out: outTriggerEvent } = this._getTriggerEvent();
81470
+ if (isArray(triggerEvent)) {
81471
+ triggerEvent.forEach((eventName, index) => this._registerEvent(eventName, isArray(outTriggerEvent) ? outTriggerEvent[index] : outTriggerEvent));
81472
+ }
81473
+ else {
81474
+ this._registerEvent(triggerEvent, outTriggerEvent);
81475
+ }
81099
81476
  }
81100
81477
  }
81101
81478
  _registerEvent(inEventName, outEventName) {
@@ -81123,24 +81500,27 @@
81123
81500
  }, 10);
81124
81501
  _getTriggerEvent() {
81125
81502
  const { mode = exports.RenderModeEnum['desktop-browser'] } = this._option;
81126
- const trigger = this.trigger || 'hover';
81127
- const outTrigger = (trigger) => (trigger === 'click' ? 'clickOut' : 'hoverOut');
81128
- if (isArray(trigger)) {
81129
- let inResult = [];
81130
- let outResult = [];
81131
- trigger.forEach(item => {
81132
- inResult = inResult.concat(defaultCrosshairTriggerEvent[mode][item]);
81133
- outResult = outResult.concat(defaultCrosshairTriggerEvent[mode][outTrigger(item)]);
81134
- });
81503
+ if (defaultCrosshairTriggerEvent[mode]) {
81504
+ const trigger = this.trigger || 'hover';
81505
+ const outTrigger = (trigger) => (trigger === 'click' ? 'clickOut' : 'hoverOut');
81506
+ if (isArray(trigger)) {
81507
+ let inResult = [];
81508
+ let outResult = [];
81509
+ trigger.forEach(item => {
81510
+ inResult = inResult.concat(defaultCrosshairTriggerEvent[mode][item]);
81511
+ outResult = outResult.concat(defaultCrosshairTriggerEvent[mode][outTrigger(item)]);
81512
+ });
81513
+ return {
81514
+ in: inResult,
81515
+ out: outResult
81516
+ };
81517
+ }
81135
81518
  return {
81136
- in: inResult,
81137
- out: outResult
81519
+ in: defaultCrosshairTriggerEvent[mode][trigger],
81520
+ out: defaultCrosshairTriggerEvent[mode][outTrigger(trigger)]
81138
81521
  };
81139
81522
  }
81140
- return {
81141
- in: defaultCrosshairTriggerEvent[mode][trigger],
81142
- out: defaultCrosshairTriggerEvent[mode][outTrigger(trigger)]
81143
- };
81523
+ return null;
81144
81524
  }
81145
81525
  _getAxisInfoByField(field) {
81146
81526
  const axesComponents = this._option.getComponentsByKey('axes');
@@ -81192,18 +81572,20 @@
81192
81572
  onRender(ctx) {
81193
81573
  }
81194
81574
  _releaseEvent() {
81195
- const { in: triggerEvent, out: outTriggerEvent } = this._getTriggerEvent();
81196
- if (isArray(triggerEvent)) {
81197
- triggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));
81198
- }
81199
- else {
81200
- this._eventOff(triggerEvent);
81201
- }
81202
- if (isArray(outTriggerEvent)) {
81203
- outTriggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));
81204
- }
81205
- else {
81206
- this._eventOff(outTriggerEvent);
81575
+ if (this._getTriggerEvent()) {
81576
+ const { in: triggerEvent, out: outTriggerEvent } = this._getTriggerEvent();
81577
+ if (isArray(triggerEvent)) {
81578
+ triggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));
81579
+ }
81580
+ else {
81581
+ this._eventOff(triggerEvent);
81582
+ }
81583
+ if (isArray(outTriggerEvent)) {
81584
+ outTriggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));
81585
+ }
81586
+ else {
81587
+ this._eventOff(outTriggerEvent);
81588
+ }
81207
81589
  }
81208
81590
  }
81209
81591
  _firstSeries() {
@@ -81459,6 +81841,24 @@
81459
81841
  }
81460
81842
  return value;
81461
81843
  }
81844
+ clearAxisValue() {
81845
+ this.currValueX.clear();
81846
+ this.currValueY.clear();
81847
+ }
81848
+ setAxisValue(v, axis) {
81849
+ if (isXAxis(axis.orient)) {
81850
+ this.currValueX.set(axis.getSpecIndex(), {
81851
+ v,
81852
+ axis
81853
+ });
81854
+ }
81855
+ else {
81856
+ this.currValueX.set(axis.getSpecIndex(), {
81857
+ v,
81858
+ axis
81859
+ });
81860
+ }
81861
+ }
81462
81862
  getAllAxisValues(axisMap, p, currValue, vertical) {
81463
81863
  let discrete = false;
81464
81864
  axisMap.forEach(item => {
@@ -81509,7 +81909,7 @@
81509
81909
  this._yLeftLabel && this._yLeftLabel.hideAll();
81510
81910
  this._yRightLabel && this._yRightLabel.hideAll();
81511
81911
  }
81512
- layoutByValue(tag) {
81912
+ layoutByValue(tag = LayoutType$1.ALL) {
81513
81913
  if (!this.enable) {
81514
81914
  return;
81515
81915
  }
@@ -82857,6 +83257,7 @@
82857
83257
  if (markerVisible) {
82858
83258
  if (!this._markerComponent) {
82859
83259
  this._createMarkerComponent();
83260
+ this._markerComponent.on('*', (event, type) => this._delegateEvent(this._markerComponent, event, type));
82860
83261
  }
82861
83262
  this._bindSeries();
82862
83263
  this._initDataView();
@@ -84308,7 +84709,6 @@
84308
84709
  return styleObj;
84309
84710
  }
84310
84711
 
84311
- const domDocument = globalThis.document;
84312
84712
  class BaseTooltipModel {
84313
84713
  static type = 'tooltipModel';
84314
84714
  static isInstance(obj) {
@@ -84942,7 +85342,7 @@
84942
85342
 
84943
85343
  class DomTooltipHandler extends BaseTooltipHandler {
84944
85344
  type = TooltipHandlerType.dom;
84945
- _tooltipContainer = globalThis.document?.body;
85345
+ _tooltipContainer = domDocument?.body;
84946
85346
  _domStyle;
84947
85347
  _tooltipActual;
84948
85348
  model;
@@ -85478,7 +85878,7 @@
85478
85878
  this._spec.parentElement = userSpec.parentElement;
85479
85879
  }
85480
85880
  else if (isTrueBrowser(this._option.mode)) {
85481
- this._spec.parentElement = globalThis.document?.body;
85881
+ this._spec.parentElement = domDocument?.body;
85482
85882
  }
85483
85883
  if (isValid(userSpec.confine)) {
85484
85884
  this._spec.confine = userSpec.confine;
@@ -85572,6 +85972,9 @@
85572
85972
  }
85573
85973
  return false;
85574
85974
  }
85975
+ getVisible() {
85976
+ return this._spec.visible === true;
85977
+ }
85575
85978
  }
85576
85979
 
85577
85980
  function barLabel(labelInfo) {