@visactor/vchart 1.13.11-alpha.2 → 1.13.12

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 (88) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +376 -184
  3. package/build/index.js +376 -184
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/histogram/base/histogram-base-transformer.js +1 -1
  7. package/cjs/chart/histogram/base/histogram-base-transformer.js.map +1 -1
  8. package/cjs/component/brush/brush.d.ts +1 -1
  9. package/cjs/component/brush/brush.js +18 -15
  10. package/cjs/component/brush/brush.js.map +1 -1
  11. package/cjs/component/crosshair/base.js +4 -3
  12. package/cjs/component/crosshair/base.js.map +1 -1
  13. package/cjs/component/crosshair/cartesian.js +3 -2
  14. package/cjs/component/crosshair/cartesian.js.map +1 -1
  15. package/cjs/component/crosshair/interface/common.d.ts +3 -1
  16. package/cjs/component/crosshair/interface/common.js.map +1 -1
  17. package/cjs/component/crosshair/interface/spec.d.ts +1 -0
  18. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  19. package/cjs/component/crosshair/interface/theme.d.ts +2 -0
  20. package/cjs/component/crosshair/interface/theme.js.map +1 -1
  21. package/cjs/component/crosshair/utils/cartesian.js +15 -13
  22. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  23. package/cjs/component/crosshair/utils/common.js +9 -5
  24. package/cjs/component/crosshair/utils/common.js.map +1 -1
  25. package/cjs/component/data-zoom/data-filter-base-component.js +7 -6
  26. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  27. package/cjs/component/data-zoom/util.d.ts +1 -0
  28. package/cjs/component/data-zoom/util.js +13 -10
  29. package/cjs/component/data-zoom/util.js.map +1 -1
  30. package/cjs/component/marker/utils.js +14 -9
  31. package/cjs/component/marker/utils.js.map +1 -1
  32. package/cjs/component/tooltip/interface/theme.d.ts +3 -0
  33. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  34. package/cjs/component/tooltip/tooltip-transformer.js +3 -1
  35. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  36. package/cjs/core/expression-function.js +1 -2
  37. package/cjs/core/index.d.ts +1 -1
  38. package/cjs/core/index.js +3 -2
  39. package/cjs/core/index.js.map +1 -1
  40. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +2 -3
  41. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  42. package/cjs/series/bar/bar.d.ts +3 -0
  43. package/cjs/series/bar/bar.js +28 -7
  44. package/cjs/series/bar/bar.js.map +1 -1
  45. package/cjs/series/bar/interface.d.ts +1 -0
  46. package/cjs/series/bar/interface.js.map +1 -1
  47. package/esm/chart/histogram/base/histogram-base-transformer.js +1 -1
  48. package/esm/chart/histogram/base/histogram-base-transformer.js.map +1 -1
  49. package/esm/component/brush/brush.d.ts +1 -1
  50. package/esm/component/brush/brush.js +18 -15
  51. package/esm/component/brush/brush.js.map +1 -1
  52. package/esm/component/crosshair/base.js +4 -3
  53. package/esm/component/crosshair/base.js.map +1 -1
  54. package/esm/component/crosshair/cartesian.js +3 -2
  55. package/esm/component/crosshair/cartesian.js.map +1 -1
  56. package/esm/component/crosshair/interface/common.d.ts +3 -1
  57. package/esm/component/crosshair/interface/common.js.map +1 -1
  58. package/esm/component/crosshair/interface/spec.d.ts +1 -0
  59. package/esm/component/crosshair/interface/spec.js.map +1 -1
  60. package/esm/component/crosshair/interface/theme.d.ts +2 -0
  61. package/esm/component/crosshair/interface/theme.js.map +1 -1
  62. package/esm/component/crosshair/utils/cartesian.js +15 -13
  63. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  64. package/esm/component/crosshair/utils/common.js +8 -4
  65. package/esm/component/crosshair/utils/common.js.map +1 -1
  66. package/esm/component/data-zoom/data-filter-base-component.js +6 -4
  67. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  68. package/esm/component/data-zoom/util.d.ts +1 -0
  69. package/esm/component/data-zoom/util.js +13 -9
  70. package/esm/component/data-zoom/util.js.map +1 -1
  71. package/esm/component/marker/utils.js +15 -8
  72. package/esm/component/marker/utils.js.map +1 -1
  73. package/esm/component/tooltip/interface/theme.d.ts +3 -0
  74. package/esm/component/tooltip/interface/theme.js.map +1 -1
  75. package/esm/component/tooltip/tooltip-transformer.js +3 -1
  76. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  77. package/esm/core/expression-function.js +1 -2
  78. package/esm/core/index.d.ts +1 -1
  79. package/esm/core/index.js +3 -2
  80. package/esm/core/index.js.map +1 -1
  81. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +2 -3
  82. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  83. package/esm/series/bar/bar.d.ts +3 -0
  84. package/esm/series/bar/bar.js +26 -7
  85. package/esm/series/bar/bar.js.map +1 -1
  86. package/esm/series/bar/interface.d.ts +1 -0
  87. package/esm/series/bar/interface.js.map +1 -1
  88. package/package.json +13 -13
package/build/index.es.js CHANGED
@@ -7840,11 +7840,14 @@ class Container {
7840
7840
  const ContributionProvider = Symbol("ContributionProvider");
7841
7841
  class ContributionProviderCache {
7842
7842
  constructor(serviceIdentifier, container) {
7843
- this.serviceIdentifier = serviceIdentifier, this.container = container;
7843
+ this.serviceIdentifier = serviceIdentifier, this.container = container, ContributionStore.setStore(this.serviceIdentifier, this);
7844
7844
  }
7845
7845
  getContributions() {
7846
7846
  return this.caches || (this.caches = [], this.container && this.container.isBound(this.serviceIdentifier) && this.caches.push(...this.container.getAll(this.serviceIdentifier))), this.caches;
7847
7847
  }
7848
+ refresh() {
7849
+ this.caches && (this.caches.length = 0, this.container && this.container.isBound(this.serviceIdentifier) && this.caches.push(...this.container.getAll(this.serviceIdentifier)));
7850
+ }
7848
7851
  }
7849
7852
  function bindContributionProvider(bind, id) {
7850
7853
  bind(ContributionProvider).toDynamicValue(_ref => {
@@ -7862,6 +7865,20 @@ function bindContributionProviderNoSingletonScope(bind, id) {
7862
7865
  return new ContributionProviderCache(id, container);
7863
7866
  }).whenTargetNamed(id);
7864
7867
  }
7868
+ class ContributionStore {
7869
+ static getStore(id) {
7870
+ return this.store.get(id);
7871
+ }
7872
+ static setStore(id, cache) {
7873
+ this.store.set(id, cache);
7874
+ }
7875
+ static refreshAllContributions() {
7876
+ this.store.forEach(cache => {
7877
+ cache.refresh();
7878
+ });
7879
+ }
7880
+ }
7881
+ ContributionStore.store = new Map();
7865
7882
 
7866
7883
  class Hook {
7867
7884
  constructor(args, name) {
@@ -7928,6 +7945,48 @@ const EnvContribution = Symbol.for("EnvContribution");
7928
7945
  const VGlobal = Symbol.for("VGlobal");
7929
7946
  const DEFAULT_TEXT_FONT_FAMILY$1 = "PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol";
7930
7947
 
7948
+ class EventListenerManager {
7949
+ constructor() {
7950
+ this._listenerMap = new Map(), this._eventListenerTransformer = event => event;
7951
+ }
7952
+ setEventListenerTransformer(transformer) {
7953
+ this._eventListenerTransformer = transformer || (event => event);
7954
+ }
7955
+ addEventListener(type, listener, options) {
7956
+ if (!listener) return;
7957
+ const wrappedListener = event => {
7958
+ const transformedEvent = this._eventListenerTransformer(event);
7959
+ "function" == typeof listener ? listener(transformedEvent) : listener.handleEvent && listener.handleEvent(transformedEvent);
7960
+ };
7961
+ this._listenerMap.has(type) || this._listenerMap.set(type, new Map()), this._listenerMap.get(type).set(listener, wrappedListener), this._nativeAddEventListener(type, wrappedListener, options);
7962
+ }
7963
+ removeEventListener(type, listener, options) {
7964
+ var _a;
7965
+ if (!listener) return;
7966
+ const wrappedListener = null === (_a = this._listenerMap.get(type)) || void 0 === _a ? void 0 : _a.get(listener);
7967
+ wrappedListener && (this._nativeRemoveEventListener(type, wrappedListener, options), this._listenerMap.get(type).delete(listener), 0 === this._listenerMap.get(type).size && this._listenerMap.delete(type));
7968
+ }
7969
+ dispatchEvent(event) {
7970
+ return this._nativeDispatchEvent(event);
7971
+ }
7972
+ clearAllEventListeners() {
7973
+ this._listenerMap.forEach((listenersMap, type) => {
7974
+ listenersMap.forEach((wrappedListener, originalListener) => {
7975
+ this._nativeRemoveEventListener(type, wrappedListener, void 0);
7976
+ });
7977
+ }), this._listenerMap.clear();
7978
+ }
7979
+ _nativeAddEventListener(type, listener, options) {
7980
+ throw new Error("_nativeAddEventListener must be implemented by derived classes");
7981
+ }
7982
+ _nativeRemoveEventListener(type, listener, options) {
7983
+ throw new Error("_nativeRemoveEventListener must be implemented by derived classes");
7984
+ }
7985
+ _nativeDispatchEvent(event) {
7986
+ throw new Error("_nativeDispatchEvent must be implemented by derived classes");
7987
+ }
7988
+ }
7989
+
7931
7990
  var __decorate$1B = undefined && undefined.__decorate || function (decorators, target, key, desc) {
7932
7991
  var d,
7933
7992
  c = arguments.length,
@@ -7968,7 +8027,7 @@ var __decorate$1B = undefined && undefined.__decorate || function (decorators, t
7968
8027
  step((generator = generator.apply(thisArg, _arguments || [])).next());
7969
8028
  });
7970
8029
  };
7971
- let DefaultGlobal = class {
8030
+ let DefaultGlobal = class extends EventListenerManager {
7972
8031
  get env() {
7973
8032
  return this._env;
7974
8033
  }
@@ -8012,10 +8071,19 @@ let DefaultGlobal = class {
8012
8071
  this._env || this.setEnv("browser"), this.envContribution.applyStyles = support;
8013
8072
  }
8014
8073
  constructor(contributions) {
8015
- this.contributions = contributions, this._isImageAnonymous = !0, this.id = Generator.GenAutoIncrementId(), this.hooks = {
8074
+ super(), this.contributions = contributions, this._isImageAnonymous = !0, this.eventListenerTransformer = event => event, this.id = Generator.GenAutoIncrementId(), this.hooks = {
8016
8075
  onSetEnv: new SyncHook(["lastEnv", "env", "global"])
8017
8076
  }, this.measureTextMethod = "native", this.optimizeVisible = !1;
8018
8077
  }
8078
+ _nativeAddEventListener(type, listener, options) {
8079
+ return this._env || this.setEnv("browser"), this.envContribution.addEventListener(type, listener, options);
8080
+ }
8081
+ _nativeRemoveEventListener(type, listener, options) {
8082
+ return this._env || this.setEnv("browser"), this.envContribution.removeEventListener(type, listener, options);
8083
+ }
8084
+ _nativeDispatchEvent(event) {
8085
+ return this._env || this.setEnv("browser"), this.envContribution.dispatchEvent(event);
8086
+ }
8019
8087
  bindContribution(params) {
8020
8088
  const promiseArr = [];
8021
8089
  if (this.contributions.getContributions().forEach(contribution => {
@@ -8056,15 +8124,6 @@ let DefaultGlobal = class {
8056
8124
  releaseCanvas(canvas) {
8057
8125
  return this._env || this.setEnv("browser"), this.envContribution.releaseCanvas(canvas);
8058
8126
  }
8059
- addEventListener(type, listener, options) {
8060
- return this._env || this.setEnv("browser"), this.envContribution.addEventListener(type, listener, options);
8061
- }
8062
- removeEventListener(type, listener, options) {
8063
- return this._env || this.setEnv("browser"), this.envContribution.removeEventListener(type, listener, options);
8064
- }
8065
- dispatchEvent(event) {
8066
- return this._env || this.setEnv("browser"), this.envContribution.dispatchEvent(event);
8067
- }
8068
8127
  getRequestAnimationFrame() {
8069
8128
  return this._env || this.setEnv("browser"), this.envContribution.getRequestAnimationFrame();
8070
8129
  }
@@ -11093,7 +11152,7 @@ var __decorate$1y = undefined && undefined.__decorate || function (decorators, t
11093
11152
  };
11094
11153
  const VWindow = Symbol.for("VWindow");
11095
11154
  const WindowHandlerContribution = Symbol.for("WindowHandlerContribution");
11096
- let DefaultWindow = class {
11155
+ let DefaultWindow = class extends EventListenerManager {
11097
11156
  get width() {
11098
11157
  if (this._handler) {
11099
11158
  const wh = this._handler.getWH();
@@ -11112,7 +11171,7 @@ let DefaultWindow = class {
11112
11171
  return this._handler.getDpr();
11113
11172
  }
11114
11173
  constructor() {
11115
- this.hooks = {
11174
+ super(), this.hooks = {
11116
11175
  onChange: new SyncHook(["x", "y", "width", "height"])
11117
11176
  }, this.active = () => {
11118
11177
  const global = this.global;
@@ -11120,6 +11179,15 @@ let DefaultWindow = class {
11120
11179
  container.getNamed(WindowHandlerContribution, global.env).configure(this, global), this.actived = !0;
11121
11180
  }, this._uid = Generator.GenAutoIncrementId(), this.global = application.global, this.postInit();
11122
11181
  }
11182
+ _nativeAddEventListener(type, listener, options) {
11183
+ return this._handler.addEventListener(type, listener, options);
11184
+ }
11185
+ _nativeRemoveEventListener(type, listener, options) {
11186
+ return this._handler.removeEventListener(type, listener, options);
11187
+ }
11188
+ _nativeDispatchEvent(event) {
11189
+ return this._handler.dispatchEvent(event);
11190
+ }
11123
11191
  postInit() {
11124
11192
  this.global.hooks.onSetEnv.tap("window", this.active), this.active();
11125
11193
  }
@@ -11159,7 +11227,7 @@ let DefaultWindow = class {
11159
11227
  throw new Error("暂不支持");
11160
11228
  }
11161
11229
  release() {
11162
- return this.global.hooks.onSetEnv.unTap("window", this.active), this._handler.releaseWindow();
11230
+ return this.global.hooks.onSetEnv.unTap("window", this.active), this.clearAllEventListeners(), this._handler.releaseWindow();
11163
11231
  }
11164
11232
  getContext() {
11165
11233
  return this._handler.getContext();
@@ -11170,15 +11238,6 @@ let DefaultWindow = class {
11170
11238
  getImageBuffer(type) {
11171
11239
  return this._handler.getImageBuffer ? this._handler.getImageBuffer(type) : null;
11172
11240
  }
11173
- addEventListener(type, listener, options) {
11174
- return this._handler.addEventListener(type, listener, options);
11175
- }
11176
- removeEventListener(type, listener, options) {
11177
- return this._handler.removeEventListener(type, listener, options);
11178
- }
11179
- dispatchEvent(event) {
11180
- return this._handler.dispatchEvent(event);
11181
- }
11182
11241
  getBoundingClientRect() {
11183
11242
  return this._handler.getBoundingClientRect();
11184
11243
  }
@@ -12387,19 +12446,17 @@ class EventSystem {
12387
12446
  globalObj: globalObj,
12388
12447
  domElement: domElement
12389
12448
  } = this;
12390
- this.supportsPointerEvents ? (globalObj.getDocument() ? (globalObj.getDocument().addEventListener("pointermove", this.onPointerMove, !0), globalObj.getDocument().addEventListener("pointerup", this.onPointerUp, !0)) : (domElement.addEventListener("pointermove", this.onPointerMove, !0), domElement.addEventListener("pointerup", this.onPointerUp, !0)), domElement.addEventListener("pointerdown", this.onPointerDown, !0), domElement.addEventListener("pointerleave", this.onPointerOverOut, !0), domElement.addEventListener("pointerover", this.onPointerOverOut, !0)) : (globalObj.getDocument() ? (globalObj.getDocument().addEventListener("mousemove", this.onPointerMove, !0), globalObj.getDocument().addEventListener("mouseup", this.onPointerUp, !0)) : (domElement.addEventListener("mousemove", this.onPointerMove, !0), domElement.addEventListener("mouseup", this.onPointerUp, !0)), domElement.addEventListener("mousedown", this.onPointerDown, !0), domElement.addEventListener("mouseout", this.onPointerOverOut, !0), domElement.addEventListener("mouseover", this.onPointerOverOut, !0)), this.supportsTouchEvents && (domElement.addEventListener("touchstart", this.onPointerDown, !0), domElement.addEventListener("touchend", this.onPointerUp, !0), domElement.addEventListener("touchmove", this.onPointerMove, !0)), domElement.addEventListener("wheel", this.onWheel, {
12449
+ this.supportsPointerEvents ? (globalObj.getDocument() ? (globalObj.addEventListener("pointermove", this.onPointerMove, !0), globalObj.addEventListener("pointerup", this.onPointerUp, !0)) : (domElement.addEventListener("pointermove", this.onPointerMove, !0), domElement.addEventListener("pointerup", this.onPointerUp, !0)), domElement.addEventListener("pointerdown", this.onPointerDown, !0), domElement.addEventListener("pointerleave", this.onPointerOverOut, !0), domElement.addEventListener("pointerover", this.onPointerOverOut, !0)) : (globalObj.getDocument() ? (globalObj.addEventListener("mousemove", this.onPointerMove, !0), globalObj.addEventListener("mouseup", this.onPointerUp, !0)) : (domElement.addEventListener("mousemove", this.onPointerMove, !0), domElement.addEventListener("mouseup", this.onPointerUp, !0)), domElement.addEventListener("mousedown", this.onPointerDown, !0), domElement.addEventListener("mouseout", this.onPointerOverOut, !0), domElement.addEventListener("mouseover", this.onPointerOverOut, !0)), this.supportsTouchEvents && (domElement.addEventListener("touchstart", this.onPointerDown, !0), domElement.addEventListener("touchend", this.onPointerUp, !0), domElement.addEventListener("touchmove", this.onPointerMove, !0)), domElement.addEventListener("wheel", this.onWheel, {
12391
12450
  capture: !0
12392
12451
  }), this.eventsAdded = !0;
12393
12452
  }
12394
12453
  removeEvents() {
12395
- var _a;
12396
12454
  if (!this.eventsAdded || !this.domElement) return;
12397
12455
  const {
12398
- globalObj: globalObj,
12399
- domElement: domElement
12400
- } = this,
12401
- globalDocument = null !== (_a = globalObj.getDocument()) && void 0 !== _a ? _a : domElement;
12402
- this.supportsPointerEvents ? (globalDocument.removeEventListener("pointermove", this.onPointerMove, !0), globalDocument.removeEventListener("pointerup", this.onPointerUp, !0), domElement.removeEventListener("pointerdown", this.onPointerDown, !0), domElement.removeEventListener("pointerleave", this.onPointerOverOut, !0), domElement.removeEventListener("pointerover", this.onPointerOverOut, !0)) : (globalDocument.removeEventListener("mousemove", this.onPointerMove, !0), globalDocument.removeEventListener("mouseup", this.onPointerUp, !0), domElement.removeEventListener("mousedown", this.onPointerDown, !0), domElement.removeEventListener("mouseout", this.onPointerOverOut, !0), domElement.removeEventListener("mouseover", this.onPointerOverOut, !0)), this.supportsTouchEvents && (domElement.removeEventListener("touchstart", this.onPointerDown, !0), domElement.removeEventListener("touchend", this.onPointerUp, !0), domElement.removeEventListener("touchmove", this.onPointerMove, !0)), domElement.removeEventListener("wheel", this.onWheel, !0), this.domElement = null, this.eventsAdded = !1;
12456
+ globalObj: globalObj,
12457
+ domElement: domElement
12458
+ } = this;
12459
+ this.supportsPointerEvents ? (globalObj.getDocument() ? (globalObj.removeEventListener("pointermove", this.onPointerMove, !0), globalObj.removeEventListener("pointerup", this.onPointerUp, !0)) : (domElement.removeEventListener("pointermove", this.onPointerMove, !0), domElement.removeEventListener("pointerup", this.onPointerUp, !0)), domElement.removeEventListener("pointerdown", this.onPointerDown, !0), domElement.removeEventListener("pointerleave", this.onPointerOverOut, !0), domElement.removeEventListener("pointerover", this.onPointerOverOut, !0)) : (globalObj.getDocument() ? (globalObj.removeEventListener("mousemove", this.onPointerMove, !0), globalObj.removeEventListener("mouseup", this.onPointerUp, !0)) : (domElement.removeEventListener("mousemove", this.onPointerMove, !0), domElement.removeEventListener("mouseup", this.onPointerUp, !0)), domElement.removeEventListener("mousedown", this.onPointerDown, !0), domElement.removeEventListener("mouseout", this.onPointerOverOut, !0), domElement.removeEventListener("mouseover", this.onPointerOverOut, !0)), this.supportsTouchEvents && (domElement.removeEventListener("touchstart", this.onPointerDown, !0), domElement.removeEventListener("touchend", this.onPointerUp, !0), domElement.removeEventListener("touchmove", this.onPointerMove, !0)), domElement.removeEventListener("wheel", this.onWheel, !0), this.domElement = null, this.eventsAdded = !1;
12403
12460
  }
12404
12461
  mapToViewportPoint(event) {
12405
12462
  return this.domElement.pointTransform ? this.domElement.pointTransform(event.x, event.y) : event;
@@ -13653,23 +13710,27 @@ class TagPointsUpdate extends ACustomAnimate {
13653
13710
  isValidNumber$1(lastClipRange * this.clipRange) && (this.clipRange *= lastClipRange);
13654
13711
  }
13655
13712
  onUpdate(end, ratio, out) {
13656
- if (this.points = this.points.map((point, index) => {
13657
- const newPoint = pointInterpolation(this.interpolatePoints[index][0], this.interpolatePoints[index][1], ratio);
13658
- return newPoint.context = point.context, newPoint;
13659
- }), this.clipRange) {
13660
- if (this.shrinkClipRange) return void (end ? (out.points = this.toPoints, out.clipRange = 1) : (out.points = this.fromPoints, out.clipRange = this.clipRange - (this.clipRange - this.shrinkClipRange) * ratio));
13661
- out.clipRange = this.clipRange + (1 - this.clipRange) * ratio;
13662
- }
13663
- if (this.segmentsCache && this.to.segments) {
13664
- let start = 0;
13665
- out.segments = this.to.segments.map((segment, index) => {
13666
- const end = start + this.segmentsCache[index],
13667
- points = this.points.slice(start, end);
13668
- return start = end, Object.assign(Object.assign({}, segment), {
13669
- points: points
13713
+ if (end) Object.keys(this.to).forEach(k => {
13714
+ out[k] = this.to[k];
13715
+ });else {
13716
+ if (this.points = this.points.map((point, index) => {
13717
+ const newPoint = pointInterpolation(this.interpolatePoints[index][0], this.interpolatePoints[index][1], ratio);
13718
+ return newPoint.context = point.context, newPoint;
13719
+ }), this.clipRange) {
13720
+ if (this.shrinkClipRange) return void (end ? (out.points = this.toPoints, out.clipRange = 1) : (out.points = this.fromPoints, out.clipRange = this.clipRange - (this.clipRange - this.shrinkClipRange) * ratio));
13721
+ out.clipRange = this.clipRange + (1 - this.clipRange) * ratio;
13722
+ }
13723
+ if (this.segmentsCache && this.to.segments) {
13724
+ let start = 0;
13725
+ out.segments = this.to.segments.map((segment, index) => {
13726
+ const end = start + this.segmentsCache[index],
13727
+ points = this.points.slice(start, end);
13728
+ return start = end, Object.assign(Object.assign({}, segment), {
13729
+ points: points
13730
+ });
13670
13731
  });
13671
- });
13672
- } else out.points = this.points;
13732
+ } else out.points = this.points;
13733
+ }
13673
13734
  }
13674
13735
  }
13675
13736
  class ClipGraphicAnimate extends ACustomAnimate {
@@ -21074,6 +21135,9 @@ class BaseRender {
21074
21135
  init(contributions) {
21075
21136
  contributions && (this._renderContribitions = contributions.getContributions()), this._renderContribitions || (this._renderContribitions = []), this.builtinContributions || (this.builtinContributions = []), this.builtinContributions.push(defaultBaseClipRenderBeforeContribution), this.builtinContributions.push(defaultBaseClipRenderAfterContribution), this.builtinContributions.forEach(item => this._renderContribitions.push(item)), this._renderContribitions.length && (this._renderContribitions.sort((a, b) => b.order - a.order), this._beforeRenderContribitions = this._renderContribitions.filter(c => c.time === BaseRenderContributionTime.beforeFillStroke), this._afterRenderContribitions = this._renderContribitions.filter(c => c.time === BaseRenderContributionTime.afterFillStroke));
21076
21137
  }
21138
+ reInit() {
21139
+ this.init(this.graphicRenderContributions);
21140
+ }
21077
21141
  beforeRenderStep(graphic, context, x, y, doFill, doStroke, fVisible, sVisible, graphicAttribute, drawContext, fillCb, strokeCb, params) {
21078
21142
  this._beforeRenderContribitions && this._beforeRenderContribitions.forEach(c => {
21079
21143
  if (c.supportedAppName && graphic.stage && graphic.stage.params && graphic.stage.params.context && graphic.stage.params.context.appName) {
@@ -21243,8 +21307,8 @@ var __decorate$1s = undefined && undefined.__decorate || function (decorators, t
21243
21307
  };
21244
21308
  };
21245
21309
  let DefaultCanvasArcRender = class extends BaseRender {
21246
- constructor(arcRenderContribitions) {
21247
- super(), this.arcRenderContribitions = arcRenderContribitions, this.numberType = ARC_NUMBER_TYPE, this.builtinContributions = [defaultArcRenderContribution, defaultArcBackgroundRenderContribution, defaultArcTextureRenderContribution], this.init(arcRenderContribitions);
21310
+ constructor(graphicRenderContributions) {
21311
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = ARC_NUMBER_TYPE, this.builtinContributions = [defaultArcRenderContribution, defaultArcBackgroundRenderContribution, defaultArcTextureRenderContribution], this.init(graphicRenderContributions);
21248
21312
  }
21249
21313
  drawArcTailCapPath(arc, context, cx, cy, outerRadius, innerRadius, _sa, _ea) {
21250
21314
  const capAngle = _ea - _sa,
@@ -21419,8 +21483,8 @@ var __decorate$1r = undefined && undefined.__decorate || function (decorators, t
21419
21483
  };
21420
21484
  };
21421
21485
  let DefaultCanvasCircleRender = class extends BaseRender {
21422
- constructor(circleRenderContribitions) {
21423
- super(), this.circleRenderContribitions = circleRenderContribitions, this.numberType = CIRCLE_NUMBER_TYPE, this.builtinContributions = [defaultCircleRenderContribution, defaultCircleBackgroundRenderContribution, defaultCircleTextureRenderContribution], this.init(circleRenderContribitions);
21486
+ constructor(graphicRenderContributions) {
21487
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = CIRCLE_NUMBER_TYPE, this.builtinContributions = [defaultCircleRenderContribution, defaultCircleBackgroundRenderContribution, defaultCircleTextureRenderContribution], this.init(graphicRenderContributions);
21424
21488
  }
21425
21489
  drawShape(circle, context, x, y, drawContext, params, fillCb, strokeCb) {
21426
21490
  const circleAttribute = getTheme$1(circle, null == params ? void 0 : params.theme).circle,
@@ -21806,8 +21870,8 @@ var __decorate$1p = undefined && undefined.__decorate || function (decorators, t
21806
21870
  };
21807
21871
  };
21808
21872
  let DefaultCanvasAreaRender = class extends BaseRender {
21809
- constructor(areaRenderContribitions) {
21810
- super(), this.areaRenderContribitions = areaRenderContribitions, this.numberType = AREA_NUMBER_TYPE, this.builtinContributions = [defaultAreaTextureRenderContribution, defaultAreaBackgroundRenderContribution], this.init(areaRenderContribitions);
21873
+ constructor(graphicRenderContributions) {
21874
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = AREA_NUMBER_TYPE, this.builtinContributions = [defaultAreaTextureRenderContribution, defaultAreaBackgroundRenderContribution], this.init(graphicRenderContributions);
21811
21875
  }
21812
21876
  drawLinearAreaHighPerformance(area, context, fill, stroke, fillOpacity, strokeOpacity, offsetX, offsetY, areaAttribute, drawContext, params, fillCb, strokeCb) {
21813
21877
  var _a, _b, _c;
@@ -22050,8 +22114,8 @@ var __decorate$1o = undefined && undefined.__decorate || function (decorators, t
22050
22114
  };
22051
22115
  };
22052
22116
  let DefaultCanvasPathRender = class extends BaseRender {
22053
- constructor(pathRenderContribitions) {
22054
- super(), this.pathRenderContribitions = pathRenderContribitions, this.numberType = PATH_NUMBER_TYPE, this.builtinContributions = [defaultPathBackgroundRenderContribution, defaultPathTextureRenderContribution], this.init(pathRenderContribitions);
22117
+ constructor(graphicRenderContributions) {
22118
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = PATH_NUMBER_TYPE, this.builtinContributions = [defaultPathBackgroundRenderContribution, defaultPathTextureRenderContribution], this.init(graphicRenderContributions);
22055
22119
  }
22056
22120
  drawShape(path, context, x, y, drawContext, params, fillCb, strokeCb) {
22057
22121
  var _a, _b, _c;
@@ -22106,8 +22170,8 @@ var __decorate$1n = undefined && undefined.__decorate || function (decorators, t
22106
22170
  };
22107
22171
  };
22108
22172
  let DefaultCanvasRectRender = class extends BaseRender {
22109
- constructor(rectRenderContribitions) {
22110
- super(), this.rectRenderContribitions = rectRenderContribitions, this.type = "rect", this.numberType = RECT_NUMBER_TYPE, this.builtinContributions = [defaultRectRenderContribution, defaultRectBackgroundRenderContribution, defaultRectTextureRenderContribution], this.init(rectRenderContribitions);
22173
+ constructor(graphicRenderContributions) {
22174
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.type = "rect", this.numberType = RECT_NUMBER_TYPE, this.builtinContributions = [defaultRectRenderContribution, defaultRectBackgroundRenderContribution, defaultRectTextureRenderContribution], this.init(graphicRenderContributions);
22111
22175
  }
22112
22176
  drawShape(rect, context, x, y, drawContext, params, fillCb, strokeCb) {
22113
22177
  var _a;
@@ -22178,8 +22242,8 @@ var __decorate$1m = undefined && undefined.__decorate || function (decorators, t
22178
22242
  };
22179
22243
  };
22180
22244
  let DefaultCanvasSymbolRender = class extends BaseRender {
22181
- constructor(symbolRenderContribitions) {
22182
- super(), this.symbolRenderContribitions = symbolRenderContribitions, this.numberType = SYMBOL_NUMBER_TYPE, this.builtinContributions = [defaultSymbolRenderContribution, defaultSymbolBackgroundRenderContribution, defaultSymbolTextureRenderContribution, defaultSymbolClipRangeStrokeRenderContribution], this.init(symbolRenderContribitions);
22245
+ constructor(graphicRenderContributions) {
22246
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = SYMBOL_NUMBER_TYPE, this.builtinContributions = [defaultSymbolRenderContribution, defaultSymbolBackgroundRenderContribution, defaultSymbolTextureRenderContribution, defaultSymbolClipRangeStrokeRenderContribution], this.init(graphicRenderContributions);
22183
22247
  }
22184
22248
  drawShape(symbol, context, x, y, drawContext, params, fillCb, strokeCb) {
22185
22249
  var _a;
@@ -22350,8 +22414,8 @@ var __decorate$1l = undefined && undefined.__decorate || function (decorators, t
22350
22414
  };
22351
22415
  };
22352
22416
  let DefaultCanvasTextRender = class extends BaseRender {
22353
- constructor(textRenderContribitions) {
22354
- super(), this.textRenderContribitions = textRenderContribitions, this.numberType = TEXT_NUMBER_TYPE, this.builtinContributions = [defaultTextBackgroundRenderContribution], this.init(textRenderContribitions);
22417
+ constructor(graphicRenderContributions) {
22418
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = TEXT_NUMBER_TYPE, this.builtinContributions = [defaultTextBackgroundRenderContribution], this.init(graphicRenderContributions);
22355
22419
  }
22356
22420
  drawShape(text, context, x, y, drawContext, params, fillCb, strokeCb) {
22357
22421
  var _a, _b, _c;
@@ -22555,8 +22619,8 @@ var __decorate$1k = undefined && undefined.__decorate || function (decorators, t
22555
22619
  };
22556
22620
  };
22557
22621
  let DefaultCanvasPolygonRender = class extends BaseRender {
22558
- constructor(polygonRenderContribitions) {
22559
- super(), this.polygonRenderContribitions = polygonRenderContribitions, this.numberType = POLYGON_NUMBER_TYPE, this.builtinContributions = [defaultPolygonBackgroundRenderContribution, defaultPolygonTextureRenderContribution], this.init(polygonRenderContribitions);
22622
+ constructor(graphicRenderContributions) {
22623
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = POLYGON_NUMBER_TYPE, this.builtinContributions = [defaultPolygonBackgroundRenderContribution, defaultPolygonTextureRenderContribution], this.init(graphicRenderContributions);
22560
22624
  }
22561
22625
  drawShape(polygon, context, x, y, drawContext, params, fillCb, strokeCb) {
22562
22626
  const polygonAttribute = getTheme$1(polygon, null == params ? void 0 : params.theme).polygon,
@@ -22611,6 +22675,9 @@ let DefaultCanvasGroupRender = class {
22611
22675
  constructor(groupRenderContribitions) {
22612
22676
  this.groupRenderContribitions = groupRenderContribitions, this.numberType = GROUP_NUMBER_TYPE;
22613
22677
  }
22678
+ reInit() {
22679
+ this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [], this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);
22680
+ }
22614
22681
  drawShape(group, context, x, y, drawContext, params, fillCb, strokeCb) {
22615
22682
  const groupAttribute = getTheme$1(group, null == params ? void 0 : params.theme).group,
22616
22683
  {
@@ -22741,8 +22808,8 @@ var __decorate$1i = undefined && undefined.__decorate || function (decorators, t
22741
22808
  };
22742
22809
  const repeatStr = ["", "repeat-x", "repeat-y", "repeat"];
22743
22810
  let DefaultCanvasImageRender = class extends BaseRender {
22744
- constructor(imageRenderContribitions) {
22745
- super(), this.imageRenderContribitions = imageRenderContribitions, this.numberType = IMAGE_NUMBER_TYPE, this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution], this.init(imageRenderContribitions);
22811
+ constructor(graphicRenderContributions) {
22812
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = IMAGE_NUMBER_TYPE, this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution], this.init(graphicRenderContributions);
22746
22813
  }
22747
22814
  drawShape(image, context, x, y, drawContext, params, fillCb, strokeCb) {
22748
22815
  const imageAttribute = getTheme$1(image).image,
@@ -23069,6 +23136,9 @@ let DefaultRenderService = class {
23069
23136
  afterDraw(params) {
23070
23137
  this.drawContribution.afterDraw && this.drawContribution.afterDraw(this, Object.assign({}, this.drawParams));
23071
23138
  }
23139
+ reInit() {
23140
+ this.drawContribution.reInit();
23141
+ }
23072
23142
  render(groups, params) {
23073
23143
  this.renderTreeRoots = groups, this.drawParams = params;
23074
23144
  const updateBounds = params.updateBounds;
@@ -23470,6 +23540,11 @@ let DefaultDrawContribution = class {
23470
23540
  constructor(contributions, drawItemInterceptorContributions) {
23471
23541
  this.contributions = contributions, this.drawItemInterceptorContributions = drawItemInterceptorContributions, this.currentRenderMap = new Map(), this.defaultRenderMap = new Map(), this.styleRenderMap = new Map(), this.dirtyBounds = new Bounds(), this.backupDirtyBounds = new Bounds(), this.global = application.global, this.layerService = application.layerService, isArray$1(this.contributions) || (this.contributions = [this.contributions]), this.init();
23472
23542
  }
23543
+ reInit() {
23544
+ this.init(), this.contributions.forEach(item => {
23545
+ item.reInit();
23546
+ });
23547
+ }
23473
23548
  init() {
23474
23549
  this.contributions.forEach(item => {
23475
23550
  if (item.style) {
@@ -24589,6 +24664,9 @@ class Stage extends Group$1 {
24589
24664
  getPickerService() {
24590
24665
  return this.pickerService || (this.pickerService = container.get(PickerService)), this.pickerService;
24591
24666
  }
24667
+ reInit() {
24668
+ this.renderService.reInit(), this.pickerService.reInit();
24669
+ }
24592
24670
  }
24593
24671
 
24594
24672
  function createStage(params) {
@@ -25186,6 +25264,9 @@ let DefaultPickService = class {
25186
25264
  constructor(pickItemInterceptorContributions, pickServiceInterceptorContributions) {
25187
25265
  this.pickItemInterceptorContributions = pickItemInterceptorContributions, this.pickServiceInterceptorContributions = pickServiceInterceptorContributions, this.type = "default", this.global = application.global;
25188
25266
  }
25267
+ reInit() {
25268
+ this._init();
25269
+ }
25189
25270
  _init() {
25190
25271
  this.InterceptorContributions = this.pickItemInterceptorContributions.getContributions().sort((a, b) => a.order - b.order), this.pickerServiceInterceptorContributions = this.pickServiceInterceptorContributions.getContributions().sort((a, b) => a.order - b.order);
25191
25272
  }
@@ -25354,6 +25435,7 @@ let DefaultCanvasGlyphRender = class {
25354
25435
  constructor() {
25355
25436
  this.numberType = GLYPH_NUMBER_TYPE;
25356
25437
  }
25438
+ reInit() {}
25357
25439
  drawShape(glyph, context, x, y, drawContext, params, fillCb, strokeCb) {
25358
25440
  drawContext.drawContribution && glyph.getSubGraphic().forEach(item => {
25359
25441
  const renderer = drawContext.drawContribution.getRenderContribution(item);
@@ -26578,6 +26660,18 @@ class AbstractComponent extends Group$1 {
26578
26660
  const changeEvent = new CustomEvent(eventName, details);
26579
26661
  changeEvent.manager = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventSystem.manager, this.dispatchEvent(changeEvent);
26580
26662
  }
26663
+ eventPosToStagePos(e) {
26664
+ var _a, _b;
26665
+ const result = {
26666
+ x: 0,
26667
+ y: 0
26668
+ },
26669
+ stagePoints = null !== (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventPointTransform(e)) && void 0 !== _b ? _b : {
26670
+ x: 0,
26671
+ y: 0
26672
+ };
26673
+ return this.globalTransMatrix.transformPoint(stagePoints, result), result;
26674
+ }
26581
26675
  }
26582
26676
 
26583
26677
  const MathPickerContribution = Symbol.for("MathPickerContribution");
@@ -35342,7 +35436,7 @@ const labelOverlap = function (prevLabel, nextLabel) {
35342
35436
  const MIN_TICK_GAP = 12;
35343
35437
  const calculateFlushPos = (basePosition, size, rangePosition, otherEnd) => rangePosition < basePosition ? Math.max(basePosition - size / 2, rangePosition) : rangePosition > basePosition ? Math.min(basePosition - size / 2, rangePosition - size) : rangePosition < otherEnd ? rangePosition : rangePosition - size;
35344
35438
  const getCartesianLabelBounds = (scale, domain, op) => {
35345
- var _a;
35439
+ var _a, _b, _c;
35346
35440
  const {
35347
35441
  labelStyle: labelStyle,
35348
35442
  axisOrientType: axisOrientType,
@@ -35358,27 +35452,32 @@ const getCartesianLabelBounds = (scale, domain, op) => {
35358
35452
  scaleY = 0;
35359
35453
  isHorizontal || (isVertical ? (scaleX = 0, scaleY = 1) : startAngle && (scaleX = Math.cos(startAngle), scaleY = -Math.sin(startAngle)));
35360
35454
  const textMeasure = initTextMeasure$1(labelStyle),
35361
- range = scale.range(),
35362
- labelBoundsList = domain.map((v, i) => {
35363
- var _a, _b;
35364
- const str = labelFormatter ? labelFormatter(v) : `${v}`,
35365
- {
35366
- width: width,
35367
- height: height
35368
- } = textMeasure.quickMeasure(str),
35369
- textWidth = Math.max(width, 12),
35370
- textHeight = Math.max(height, 12),
35371
- pos = scale.scale(v),
35372
- baseTextX = scaleX * pos,
35373
- baseTextY = scaleY * pos;
35374
- let align,
35375
- baseline,
35376
- textX = baseTextX,
35377
- textY = baseTextY;
35378
- labelFlush && isHorizontal && 0 === i ? textX = calculateFlushPos(baseTextX, textWidth, range[0], range[range.length - 1]) : labelFlush && isHorizontal && i === domain.length - 1 ? textX = calculateFlushPos(baseTextX, textWidth, range[range.length - 1], range[0]) : align = null !== (_a = labelStyle.textAlign) && void 0 !== _a ? _a : "center", "right" === align ? textX -= textWidth : "center" === align && (textX -= textWidth / 2), labelFlush && isVertical && 0 === i ? textY = calculateFlushPos(baseTextY, textHeight, range[0], range[range.length - 1]) : labelFlush && isVertical && i === domain.length - 1 ? textY = calculateFlushPos(baseTextY, textHeight, range[range.length - 1], range[0]) : baseline = null !== (_b = labelStyle.textBaseline) && void 0 !== _b ? _b : "middle", "bottom" === baseline ? textY -= textHeight : "middle" === baseline && (textY -= textHeight / 2);
35379
- const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);
35380
- return labelAngle && bounds.rotate(labelAngle, baseTextX, baseTextY), bounds;
35381
- });
35455
+ range = scale.range();
35456
+ let labelBoundsList = [];
35457
+ for (let i = 0; i < domain.length; i++) {
35458
+ const v = domain[i],
35459
+ str = labelFormatter ? labelFormatter(v) : `${v}`;
35460
+ if (isPlainObject$1(str)) {
35461
+ labelBoundsList = void 0;
35462
+ break;
35463
+ }
35464
+ const {
35465
+ width: width,
35466
+ height: height
35467
+ } = textMeasure.quickMeasure(str),
35468
+ textWidth = Math.max(width, 12),
35469
+ textHeight = Math.max(height, 12),
35470
+ pos = scale.scale(v),
35471
+ baseTextX = scaleX * pos,
35472
+ baseTextY = scaleY * pos;
35473
+ let align,
35474
+ baseline,
35475
+ textX = baseTextX,
35476
+ textY = baseTextY;
35477
+ labelFlush && isHorizontal && 0 === i ? textX = calculateFlushPos(baseTextX, textWidth, range[0], range[range.length - 1]) : labelFlush && isHorizontal && i === domain.length - 1 ? textX = calculateFlushPos(baseTextX, textWidth, range[range.length - 1], range[0]) : align = null !== (_b = labelStyle.textAlign) && void 0 !== _b ? _b : "center", "right" === align ? textX -= textWidth : "center" === align && (textX -= textWidth / 2), labelFlush && isVertical && 0 === i ? textY = calculateFlushPos(baseTextY, textHeight, range[0], range[range.length - 1]) : labelFlush && isVertical && i === domain.length - 1 ? textY = calculateFlushPos(baseTextY, textHeight, range[range.length - 1], range[0]) : baseline = null !== (_c = labelStyle.textBaseline) && void 0 !== _c ? _c : "middle", "bottom" === baseline ? textY -= textHeight : "middle" === baseline && (textY -= textHeight / 2);
35478
+ const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);
35479
+ labelAngle && bounds.rotate(labelAngle, baseTextX, baseTextY), labelBoundsList.push(bounds);
35480
+ }
35382
35481
  return labelBoundsList;
35383
35482
  };
35384
35483
  const isAxisHorizontal = axisOrientType => ["bottom", "top", "z"].includes(axisOrientType);
@@ -36427,7 +36526,7 @@ function forceItemVisible(sourceItem, items, check, comparator) {
36427
36526
  }
36428
36527
  }
36429
36528
  const continuousTicks = (scale, op) => {
36430
- var _a, _b;
36529
+ var _a, _b, _c, _d;
36431
36530
  if (!isContinuous(scale.type)) return convertDomainToTickData(scale.domain());
36432
36531
  const range = scale.range(),
36433
36532
  rangeSize = Math.abs(range[range.length - 1] - range[0]);
@@ -36479,23 +36578,25 @@ const continuousTicks = (scale, op) => {
36479
36578
  step = Math.floor(scaleTicks.length * MIN_FONT_SIZE / rangeSize);
36480
36579
  scaleTicks.forEach((tick, index) => {
36481
36580
  index % step != 0 && index !== scaleTicks.length - 1 || samplingScaleTicks.push(tick);
36482
- }), items = getCartesianLabelBounds(scale, samplingScaleTicks, op).map((bounds, i) => ({
36581
+ }), items = null === (_c = getCartesianLabelBounds(scale, samplingScaleTicks, op)) || void 0 === _c ? void 0 : _c.map((bounds, i) => ({
36483
36582
  AABBBounds: bounds,
36484
36583
  value: samplingScaleTicks[i]
36485
36584
  }));
36486
- } else items = getCartesianLabelBounds(scale, scaleTicks, op).map((bounds, i) => ({
36585
+ } else items = null === (_d = getCartesianLabelBounds(scale, scaleTicks, op)) || void 0 === _d ? void 0 : _d.map((bounds, i) => ({
36487
36586
  AABBBounds: bounds,
36488
36587
  value: scaleTicks[i]
36489
36588
  }));
36490
- const firstSourceItem = items[0],
36491
- lastSourceItem = last(items),
36492
- samplingMethod = breakData && breakData() ? methods$1.greedy : methods$1.parity;
36493
- for (; items.length >= 3 && hasOverlap$1(items, labelGap);) items = samplingMethod(items, labelGap);
36494
- const checkFirst = op.labelFirstVisible;
36495
- let checkLast = op.labelLastVisible;
36496
- textIntersect(firstSourceItem, lastSourceItem, labelGap) && items.includes(lastSourceItem) && items.length > 1 && checkFirst && checkLast && (items.splice(items.indexOf(lastSourceItem), 1), checkLast = !1), forceItemVisible(firstSourceItem, items, checkFirst, item => textIntersect(item, firstSourceItem, labelGap)), forceItemVisible(lastSourceItem, items, checkLast, item => textIntersect(item, lastSourceItem, labelGap) || !(!checkFirst || item === firstSourceItem) && textIntersect(item, firstSourceItem, labelGap), !0);
36497
- const ticks = items.map(item => item.value);
36498
- ticks.length < 3 && labelFlush && (ticks.length > 1 && ticks.pop(), last(ticks) !== last(scaleTicks) && ticks.push(last(scaleTicks))), scaleTicks = ticks;
36589
+ if (items) {
36590
+ const firstSourceItem = items[0],
36591
+ lastSourceItem = last(items),
36592
+ samplingMethod = breakData && breakData() ? methods$1.greedy : methods$1.parity;
36593
+ for (; items.length >= 3 && hasOverlap$1(items, labelGap);) items = samplingMethod(items, labelGap);
36594
+ const checkFirst = op.labelFirstVisible;
36595
+ let checkLast = op.labelLastVisible;
36596
+ textIntersect(firstSourceItem, lastSourceItem, labelGap) && items.includes(lastSourceItem) && items.length > 1 && checkFirst && checkLast && (items.splice(items.indexOf(lastSourceItem), 1), checkLast = !1), forceItemVisible(firstSourceItem, items, checkFirst, item => textIntersect(item, firstSourceItem, labelGap)), forceItemVisible(lastSourceItem, items, checkLast, item => textIntersect(item, lastSourceItem, labelGap) || !(!checkFirst || item === firstSourceItem) && textIntersect(item, firstSourceItem, labelGap), !0);
36597
+ const ticks = items.map(item => item.value);
36598
+ ticks.length < 3 && labelFlush && (ticks.length > 1 && ticks.pop(), last(ticks) !== last(scaleTicks) && ticks.push(last(scaleTicks))), scaleTicks = ticks;
36599
+ }
36499
36600
  }
36500
36601
  return convertDomainToTickData(scaleTicks);
36501
36602
  };
@@ -36509,7 +36610,10 @@ const methods$1 = {
36509
36610
  }
36510
36611
  };
36511
36612
 
36512
- const getOneDimensionalLabelBounds = (scale, domain, op, isHorizontal) => getCartesianLabelBounds(scale, domain, op).map(bounds => isHorizontal ? [bounds.x1, bounds.x2, bounds.width()] : [bounds.y1, bounds.y2, bounds.height()]),
36613
+ const getOneDimensionalLabelBounds = (scale, domain, op, isHorizontal) => {
36614
+ const labelBoundsList = getCartesianLabelBounds(scale, domain, op);
36615
+ return labelBoundsList && labelBoundsList.map(bounds => isHorizontal ? [bounds.x1, bounds.x2, bounds.width()] : [bounds.y1, bounds.y2, bounds.height()]);
36616
+ },
36513
36617
  boundsOverlap = function (prevBounds, nextBounds) {
36514
36618
  let gap = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
36515
36619
  return Math.max(prevBounds[0], nextBounds[0]) - gap / 2 <= Math.min(prevBounds[1], nextBounds[1]) + gap / 2;
@@ -36543,23 +36647,27 @@ const linearDiscreteTicks = (scale, op) => {
36543
36647
  rangeStart = minInArray(range),
36544
36648
  rangeEnd = maxInArray(range);
36545
36649
  if (domain.length <= rangeSize / fontSize) {
36546
- const incrementUnit = (rangeEnd - rangeStart) / domain.length,
36547
- labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal),
36548
- minBoundsLength = Math.min(...labelBoundsList.map(bounds => bounds[2])),
36549
- stepResult = getStep$1(domain, labelBoundsList, labelGap, op.labelLastVisible, Math.floor(minBoundsLength / incrementUnit), !1);
36550
- scaleTicks = scale.stepTicks(stepResult.step), op.labelLastVisible && (stepResult.delCount && (scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount)), scaleTicks.push(domain[domain.length - 1]));
36650
+ const labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal);
36651
+ if (labelBoundsList) {
36652
+ const minBoundsLength = Math.min(...labelBoundsList.map(bounds => bounds[2])),
36653
+ incrementUnit = (rangeEnd - rangeStart) / domain.length,
36654
+ stepResult = getStep$1(domain, labelBoundsList, labelGap, op.labelLastVisible, Math.floor(minBoundsLength / incrementUnit), !1);
36655
+ scaleTicks = scale.stepTicks(stepResult.step), op.labelLastVisible && (stepResult.delCount && (scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount)), scaleTicks.push(domain[domain.length - 1]));
36656
+ }
36551
36657
  } else {
36552
36658
  const tempDomain = [domain[0], domain[Math.floor(domain.length / 2)], domain[domain.length - 1]],
36553
36659
  tempList = getOneDimensionalLabelBounds(scale, tempDomain, op, isHorizontal);
36554
- let maxBounds = null;
36555
- tempList.forEach(current => {
36556
- maxBounds ? maxBounds[2] < current[2] && (maxBounds = current) : maxBounds = current;
36557
- });
36558
- const step = rangeEnd - rangeStart - labelGap > 0 ? Math.ceil(domain.length * (labelGap + maxBounds[2]) / (rangeEnd - rangeStart - labelGap)) : domain.length - 1;
36559
- scaleTicks = scale.stepTicks(step), !op.labelLastVisible || scaleTicks.length && scaleTicks[scaleTicks.length - 1] === domain[domain.length - 1] || (scaleTicks.length && Math.abs(scale.scale(scaleTicks[scaleTicks.length - 1]) - scale.scale(domain[domain.length - 1])) < maxBounds[2] && (scaleTicks = scaleTicks.slice(0, -1)), scaleTicks.push(domain[domain.length - 1]));
36660
+ if (tempList) {
36661
+ let maxBounds = null;
36662
+ tempList.forEach(current => {
36663
+ maxBounds ? maxBounds[2] < current[2] && (maxBounds = current) : maxBounds = current;
36664
+ });
36665
+ const step = rangeEnd - rangeStart - labelGap > 0 ? Math.ceil(domain.length * (labelGap + maxBounds[2]) / (rangeEnd - rangeStart - labelGap)) : domain.length - 1;
36666
+ scaleTicks = scale.stepTicks(step), !op.labelLastVisible || scaleTicks.length && scaleTicks[scaleTicks.length - 1] === domain[domain.length - 1] || (scaleTicks.length && Math.abs(scale.scale(scaleTicks[scaleTicks.length - 1]) - scale.scale(domain[domain.length - 1])) < maxBounds[2] && (scaleTicks = scaleTicks.slice(0, -1)), scaleTicks.push(domain[domain.length - 1]));
36667
+ }
36560
36668
  }
36561
- } else scaleTicks = scale.domain();
36562
- return convertDomainToTickData(scaleTicks);
36669
+ }
36670
+ return isNil$1(scaleTicks) && (scaleTicks = scale.domain()), convertDomainToTickData(scaleTicks);
36563
36671
  };
36564
36672
  const getStep$1 = (domain, labelBoundsList, labelGap, labelLastVisible, defaultStep, areAllBoundsSame) => {
36565
36673
  let resultDelCount = 0,
@@ -39525,13 +39633,6 @@ let DataZoom$1 = class DataZoom extends AbstractComponent {
39525
39633
  end: end
39526
39634
  }));
39527
39635
  }
39528
- eventPosToStagePos(e) {
39529
- var _a, _b;
39530
- return null !== (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventPointTransform(e)) && void 0 !== _b ? _b : {
39531
- x: 0,
39532
- y: 0
39533
- };
39534
- }
39535
39636
  _clearDragEvents() {
39536
39637
  const evtTarget = "browser" === vglobal.env ? vglobal : this.stage,
39537
39638
  triggers = getEndTriggersOfDrag();
@@ -39690,7 +39791,13 @@ let DataZoom$1 = class DataZoom extends AbstractComponent {
39690
39791
  } = this.attribute.startTextStyle;
39691
39792
  if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {
39692
39793
  const direction = "bottom" === this.attribute.orient || "right" === this.attribute.orient ? -1 : 1;
39693
- this._isHorizontal ? this._startText.setAttribute("dy", startTextDy + direction * Math.abs(endTextBounds.y1 - endTextBounds.y2)) : this._startText.setAttribute("dx", startTextDx + direction * Math.abs(endTextBounds.x1 - endTextBounds.x2));
39794
+ if (this._isHorizontal) {
39795
+ const boundsYDiff = Math.abs(endTextBounds.y1 - endTextBounds.y2);
39796
+ this._startText.setAttribute("dy", startTextDy + direction * (Number.isFinite(boundsYDiff) ? boundsYDiff : 0));
39797
+ } else {
39798
+ const boundsXDiff = Math.abs(endTextBounds.x1 - endTextBounds.x2);
39799
+ this._startText.setAttribute("dx", startTextDx + direction * (Number.isFinite(boundsXDiff) ? boundsXDiff : 0));
39800
+ }
39694
39801
  } else this._isHorizontal ? this._startText.setAttribute("dy", startTextDy) : this._startText.setAttribute("dx", startTextDx);
39695
39802
  }
39696
39803
  getLayoutAttrFromConfig() {
@@ -44885,8 +44992,7 @@ const delayMap$1 = {
44885
44992
  loadBrushComponent();
44886
44993
  let Brush$1 = class Brush extends AbstractComponent {
44887
44994
  constructor(attributes, options) {
44888
- super((null == options ? void 0 : options.skipDefault) ? attributes : merge$1({}, Brush.defaultAttributes, attributes)), this.name = "brush", this._activeDrawState = !1, this._cacheDrawPoints = [], this._activeMoveState = !1, this._operatingMaskMoveDx = 0, this._operatingMaskMoveDy = 0, this._operatingMaskMoveRangeX = [-1 / 0, 1 / 0], this._operatingMaskMoveRangeY = [-1 / 0, 1 / 0], this._brushMaskAABBBoundsDict = {}, this._firstUpdate = !0, this._onBrushStart = e => {
44889
- if (this._outOfInteractiveRange(e)) return void (this._isEmptyMask() || (this._clearMask(), this._dispatchBrushEvent(IOperateType.brushClear, e)));
44995
+ super((null == options ? void 0 : options.skipDefault) ? attributes : merge$1({}, Brush.defaultAttributes, attributes)), this.name = "brush", this._activeBrushState = !1, this._activeDrawState = !1, this._cacheDrawPoints = [], this._activeMoveState = !1, this._operatingMaskMoveDx = 0, this._operatingMaskMoveDy = 0, this._operatingMaskMoveRangeX = [-1 / 0, 1 / 0], this._operatingMaskMoveRangeY = [-1 / 0, 1 / 0], this._brushMaskAABBBoundsDict = {}, this._firstUpdate = !0, this._onBrushStart = e => {
44890
44996
  const {
44891
44997
  updateTrigger = DEFAULT_BRUSH_ATTRIBUTES.updateTrigger,
44892
44998
  endTrigger = DEFAULT_BRUSH_ATTRIBUTES.endTrigger,
@@ -44914,7 +45020,7 @@ let Brush$1 = class Brush extends AbstractComponent {
44914
45020
  brushMode: brushMode
44915
45021
  } = this.attribute,
44916
45022
  pos = this.eventPosToStagePos(e);
44917
- this._cacheDrawPoints.push(pos), "single" === brushMode && this._clearMask(), this._addBrushMask(), this._dispatchBrushEvent(IOperateType.drawStart, e), 1 === Object.keys(this._brushMaskAABBBoundsDict).length && this._dispatchBrushEvent(IOperateType.brushActive, e);
45023
+ this._cacheDrawPoints.push(pos), "single" === brushMode && this._clearMask(), this._addBrushMask(), this._dispatchBrushEvent(IOperateType.drawStart, e), this._activeBrushState = !1;
44918
45024
  }
44919
45025
  _initMove(e) {
44920
45026
  var _a, _b;
@@ -44944,7 +45050,8 @@ let Brush$1 = class Brush extends AbstractComponent {
44944
45050
  var _a;
44945
45051
  const pos = this.eventPosToStagePos(e),
44946
45052
  {
44947
- brushType: brushType
45053
+ brushType: brushType,
45054
+ sizeThreshold = DEFAULT_SIZE_THRESHOLD
44948
45055
  } = this.attribute,
44949
45056
  cacheLength = this._cacheDrawPoints.length;
44950
45057
  if (cacheLength > 0) {
@@ -44953,7 +45060,16 @@ let Brush$1 = class Brush extends AbstractComponent {
44953
45060
  }
44954
45061
  "polygon" === brushType || cacheLength <= 1 ? this._cacheDrawPoints.push(pos) : this._cacheDrawPoints[cacheLength - 1] = pos;
44955
45062
  const maskPoints = this._computeMaskPoints();
44956
- this._operatingMask.setAttribute("points", maskPoints), this._dispatchBrushEvent(IOperateType.drawing, e);
45063
+ this._operatingMask.setAttribute("points", maskPoints);
45064
+ const {
45065
+ x: x1,
45066
+ y: y1
45067
+ } = this._startPos,
45068
+ {
45069
+ x: x2,
45070
+ y: y2
45071
+ } = this.eventPosToStagePos(e);
45072
+ (Math.abs(x2 - x1) > sizeThreshold || Math.abs(y1 - y2) > sizeThreshold) && (1 !== Object.keys(this._brushMaskAABBBoundsDict).length || this._activeBrushState ? this._dispatchBrushEvent(IOperateType.drawing, e) : (this._activeBrushState = !0, this._dispatchBrushEvent(IOperateType.brushActive, e)));
44957
45073
  }
44958
45074
  _moving(e) {
44959
45075
  const startPos = this._cacheMovePoint,
@@ -45093,9 +45209,6 @@ let Brush$1 = class Brush extends AbstractComponent {
45093
45209
  pos = this.eventPosToStagePos(e);
45094
45210
  return pos.x > maxX || pos.x < minX || pos.y > maxY || pos.y < minY;
45095
45211
  }
45096
- eventPosToStagePos(e) {
45097
- return this.stage.eventPointTransform(e);
45098
- }
45099
45212
  _dispatchBrushEvent(operateType, e) {
45100
45213
  this._dispatchEvent(operateType, {
45101
45214
  operateMask: this._operatingMask,
@@ -45104,7 +45217,7 @@ let Brush$1 = class Brush extends AbstractComponent {
45104
45217
  });
45105
45218
  }
45106
45219
  _clearMask() {
45107
- this._brushMaskAABBBoundsDict = {}, this._container.incrementalClearChild(), this._operatingMask = null;
45220
+ this._brushMaskAABBBoundsDict = {}, this._container.removeAllChild(), this._operatingMask = null;
45108
45221
  }
45109
45222
  _isEmptyMask() {
45110
45223
  return isEmpty(this._brushMaskAABBBoundsDict) || Object.keys(this._brushMaskAABBBoundsDict).every(key => this._brushMaskAABBBoundsDict[key].empty());
@@ -64117,7 +64230,7 @@ const registerVChartCore = () => {
64117
64230
  };
64118
64231
  registerVChartCore();
64119
64232
 
64120
- const version = "1.13.11-alpha.2";
64233
+ const version = "1.13.12";
64121
64234
 
64122
64235
  const addVChartProperty = (data, op) => {
64123
64236
  const context = op.beforeCall();
@@ -67706,7 +67819,8 @@ function getDatumByValue(data, value, startField, endField) {
67706
67819
  const getCartesianCrosshairTheme = (chartTheme, chartSpec) => {
67707
67820
  var _a, _b;
67708
67821
  const axes = array((_a = chartSpec.axes) !== null && _a !== void 0 ? _a : []);
67709
- const { bandField, linearField, xField, yField } = (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme)) !== null && _b !== void 0 ? _b : {};
67822
+ const crosshairTheme = (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme)) !== null && _b !== void 0 ? _b : {};
67823
+ const { bandField, linearField, xField, yField, trigger, triggerOff } = crosshairTheme;
67710
67824
  const xAxis = axes.find(axis => isXAxis(axis.orient));
67711
67825
  let newXField;
67712
67826
  if (isValid$1(xAxis)) {
@@ -67725,13 +67839,15 @@ const getCartesianCrosshairTheme = (chartTheme, chartSpec) => {
67725
67839
  }
67726
67840
  return {
67727
67841
  xField: newXField,
67728
- yField: newYField
67842
+ yField: newYField,
67843
+ trigger,
67844
+ triggerOff
67729
67845
  };
67730
67846
  };
67731
67847
  const getPolarCrosshairTheme = (chartTheme, chartSpec) => {
67732
67848
  var _a, _b;
67733
67849
  const axes = array((_a = chartSpec.axes) !== null && _a !== void 0 ? _a : []);
67734
- const { bandField, linearField, categoryField, valueField } = (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme)) !== null && _b !== void 0 ? _b : {};
67850
+ const { bandField, linearField, categoryField, valueField, trigger, triggerOff } = (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme)) !== null && _b !== void 0 ? _b : {};
67735
67851
  const angleAxis = axes.find(axis => axis.orient === 'angle');
67736
67852
  let newAngleField;
67737
67853
  if (isValid$1(angleAxis)) {
@@ -67750,7 +67866,9 @@ const getPolarCrosshairTheme = (chartTheme, chartSpec) => {
67750
67866
  }
67751
67867
  return {
67752
67868
  categoryField: newAngleField,
67753
- valueField: newRadiusField
67869
+ valueField: newRadiusField,
67870
+ trigger,
67871
+ triggerOff
67754
67872
  };
67755
67873
  };
67756
67874
 
@@ -72736,6 +72854,26 @@ class BarSeries extends CartesianSeries {
72736
72854
  this._barMarkType = "rect";
72737
72855
  this.transformerConstructor = BarSeriesSpecTransformer;
72738
72856
  this._bandPosition = 0;
72857
+ this._getLinearBarRange = (start, end) => {
72858
+ let [x, x1] = [start, end].sort((a, b) => a - b);
72859
+ const realBarWidth = x1 - x;
72860
+ if (this._spec.barGap) {
72861
+ const halfBarGap = this._spec.barGap * 0.5;
72862
+ const tempX = x + halfBarGap;
72863
+ const tempX1 = x1 - halfBarGap;
72864
+ x = tempX;
72865
+ x1 = tempX1;
72866
+ }
72867
+ const curBarWidth = x1 - x;
72868
+ const barMinWidth = getActualNumValue(this._spec.barMinWidth || 2, realBarWidth);
72869
+ if (curBarWidth < barMinWidth) {
72870
+ const widthDiff = barMinWidth - curBarWidth;
72871
+ const halfWidthDiff = widthDiff / 2;
72872
+ x -= halfWidthDiff;
72873
+ x1 += halfWidthDiff;
72874
+ }
72875
+ return [x, x1];
72876
+ };
72739
72877
  this._getBarXStart = (datum, scale, useWholeRange) => {
72740
72878
  if (this._shouldDoPreCalculate()) {
72741
72879
  this._calculateStackRectPosition(false);
@@ -72753,6 +72891,11 @@ class BarSeries extends CartesianSeries {
72753
72891
  }
72754
72892
  return valueInScaleRange(this._dataToPosX1(datum), scale, useWholeRange);
72755
72893
  };
72894
+ this._getLinearBarXRange = (datum, scale, useWholeRange) => {
72895
+ const x = valueInScaleRange(this._dataToPosX(datum), scale, useWholeRange);
72896
+ const x1 = valueInScaleRange(this._dataToPosX1(datum), scale, useWholeRange);
72897
+ return this._getLinearBarRange(x, x1);
72898
+ };
72756
72899
  this._getBarYStart = (datum, scale) => {
72757
72900
  if (this._shouldDoPreCalculate()) {
72758
72901
  this._calculateStackRectPosition(true);
@@ -72770,6 +72913,11 @@ class BarSeries extends CartesianSeries {
72770
72913
  }
72771
72914
  return valueInScaleRange(this._dataToPosY1(datum), scale);
72772
72915
  };
72916
+ this._getLinearBarYRange = (datum, scale, useWholeRange) => {
72917
+ const y = valueInScaleRange(this._dataToPosY(datum), scale, useWholeRange);
72918
+ const y1 = valueInScaleRange(this._dataToPosY1(datum), scale, useWholeRange);
72919
+ return this._getLinearBarRange(y, y1);
72920
+ };
72773
72921
  this._getBarBackgroundXStart = (scale) => {
72774
72922
  const range = scale.range();
72775
72923
  const min = Math.min(range[0], range[range.length - 1]);
@@ -73137,8 +73285,8 @@ class BarSeries extends CartesianSeries {
73137
73285
  if (this.direction === "horizontal") {
73138
73286
  const yChannels = isValid$1(this._fieldY2)
73139
73287
  ? {
73140
- y: (datum) => valueInScaleRange(this._dataToPosY(datum), yScale, true),
73141
- y1: (datum) => valueInScaleRange(this._dataToPosY1(datum), yScale, true)
73288
+ y: (datum) => this._getLinearBarYRange(datum, yScale, true)[0],
73289
+ y1: (datum) => this._getLinearBarYRange(datum, yScale, true)[1]
73142
73290
  }
73143
73291
  : {
73144
73292
  y: (datum) => valueInScaleRange(this._dataToPosY(datum) - this._getBarWidth(this._yAxisHelper) / 2, yScale, true),
@@ -73150,8 +73298,8 @@ class BarSeries extends CartesianSeries {
73150
73298
  else {
73151
73299
  const xChannels = isValid$1(this._fieldX2)
73152
73300
  ? {
73153
- x: (datum) => valueInScaleRange(this._dataToPosX(datum), xScale, true),
73154
- x1: (datum) => valueInScaleRange(this._dataToPosX1(datum), xScale, true)
73301
+ x: (datum) => this._getLinearBarXRange(datum, xScale, true)[0],
73302
+ x1: (datum) => this._getLinearBarXRange(datum, xScale, true)[1]
73155
73303
  }
73156
73304
  : {
73157
73305
  x: (datum) => valueInScaleRange(this._dataToPosX(datum) - this._getBarWidth(this._xAxisHelper) / 2, xScale, true),
@@ -91655,7 +91803,7 @@ class BaseHistogramChartSpecTransformer extends CartesianChartSpecTransformer {
91655
91803
  spec.axes.forEach((axis) => (axis.type = 'linear'));
91656
91804
  }
91657
91805
  _getDefaultSeriesSpec(spec) {
91658
- return super._getDefaultSeriesSpec(spec, ['x2Field', 'y2Field', 'barMinHeight', 'barBackground']);
91806
+ return super._getDefaultSeriesSpec(spec, ['x2Field', 'y2Field', 'barMinHeight', 'barBackground', 'barGap']);
91659
91807
  }
91660
91808
  }
91661
91809
 
@@ -94176,11 +94324,13 @@ class TooltipSpecTransformer extends BaseComponentSpecTransformer {
94176
94324
  return false;
94177
94325
  }
94178
94326
  _initTheme(spec, chartSpec) {
94179
- var _a;
94327
+ var _a, _b, _c;
94180
94328
  const { spec: newSpec, theme } = super._initTheme(spec, chartSpec);
94181
94329
  newSpec.style = mergeSpec({}, this._theme, newSpec.style);
94182
94330
  newSpec.offset = mergeSpec({}, theme.offset, spec.offset);
94183
94331
  newSpec.transitionDuration = (_a = spec.transitionDuration) !== null && _a !== void 0 ? _a : theme.transitionDuration;
94332
+ newSpec.trigger = (_b = spec.trigger) !== null && _b !== void 0 ? _b : theme.trigger;
94333
+ newSpec.triggerOff = (_c = spec.triggerOff) !== null && _c !== void 0 ? _c : theme.triggerOff;
94184
94334
  return { spec: newSpec, theme };
94185
94335
  }
94186
94336
  _transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo) {
@@ -95133,7 +95283,7 @@ class BaseCrossHair extends BaseComponent {
95133
95283
  }
95134
95284
  }
95135
95285
  _parseField(field, fieldName) {
95136
- var _a, _b;
95286
+ var _a, _b, _c;
95137
95287
  const hair = {};
95138
95288
  const { line = {}, label = {}, visible } = field;
95139
95289
  hair.visible = visible;
@@ -95144,7 +95294,7 @@ class BaseCrossHair extends BaseComponent {
95144
95294
  else {
95145
95295
  const style = line.style || {};
95146
95296
  const { stroke, fill, lineWidth } = style;
95147
- const _c = style, { strokeOpacity, fillOpacity, opacity } = _c, restStyle = __rest$e(_c, ["strokeOpacity", "fillOpacity", "opacity"]);
95297
+ const _d = style, { strokeOpacity, fillOpacity, opacity } = _d, restStyle = __rest$e(_d, ["strokeOpacity", "fillOpacity", "opacity"]);
95148
95298
  const isLineType = hair.type === 'line';
95149
95299
  let finalOpacity = isLineType ? strokeOpacity : fillOpacity;
95150
95300
  if (isNumber$1(opacity)) {
@@ -95172,8 +95322,9 @@ class BaseCrossHair extends BaseComponent {
95172
95322
  }
95173
95323
  if (!!label.visible) {
95174
95324
  const labelBackground = label.labelBackground || {};
95325
+ const syncAxisLabelAngle = (_c = label.syncAxisLabelAngle) !== null && _c !== void 0 ? _c : false;
95175
95326
  const labelStyle = label.style || {};
95176
- const _d = labelBackground.style || {}, { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, outerBorder } = _d, rectStyle = __rest$e(_d, ["fill", "stroke", "outerBorder"]);
95327
+ const _e = labelBackground.style || {}, { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, outerBorder } = _e, rectStyle = __rest$e(_e, ["fill", "stroke", "outerBorder"]);
95177
95328
  hair.label = {
95178
95329
  visible: true,
95179
95330
  formatMethod: label.formatMethod,
@@ -95181,6 +95332,7 @@ class BaseCrossHair extends BaseComponent {
95181
95332
  minWidth: labelBackground.minWidth,
95182
95333
  maxWidth: labelBackground.maxWidth,
95183
95334
  padding: labelBackground.padding,
95335
+ syncAxisLabelAngle,
95184
95336
  textStyle: Object.assign(Object.assign({ fontSize: 14, pickable: false }, labelStyle), { fill: labelStyle.fill || '#fff', stroke: get$1(labelStyle, 'stroke') }),
95185
95337
  panel: (isBoolean$1(labelBackground.visible) ? labelBackground.visible : !!labelBackground)
95186
95338
  ? Object.assign({ visible: true, pickable: false, fill: rectFill, stroke: rectStroke, outerBorder: Object.assign({ stroke: rectFill, distance: 0, lineWidth: 3 }, outerBorder) }, rectStyle) : { visible: false },
@@ -95273,9 +95425,11 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
95273
95425
  layoutStartPoint = { x: 0, y: 0 };
95274
95426
  }
95275
95427
  Object.keys(stateByField).forEach(field => {
95428
+ var _a, _b, _c, _d, _e;
95276
95429
  const { currentValue, cacheInfo, labelsComp, attributes, coordKey } = stateByField[field];
95277
95430
  let axis = null;
95278
95431
  let coord = 0;
95432
+ let axisLabel = null;
95279
95433
  if (currentValue.size) {
95280
95434
  const item = Array.from(currentValue.values())[0];
95281
95435
  coord =
@@ -95283,6 +95437,8 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
95283
95437
  item.axis.getLayoutStartPoint()[coordKey] -
95284
95438
  layoutStartPoint[coordKey];
95285
95439
  axis = item.axis;
95440
+ axisLabel = (_e = (_d = (_c = (_b = (_a = axis
95441
+ .getVRenderComponents()[0]) === null || _a === void 0 ? void 0 : _a.children[0]) === null || _b === void 0 ? void 0 : _b.children[0]) === null || _c === void 0 ? void 0 : _c.getChildByName('axis-label-container')) === null || _d === void 0 ? void 0 : _d.getChildByName('axis-label-container-layer-0')) === null || _e === void 0 ? void 0 : _e.children[0];
95286
95442
  }
95287
95443
  const isVisible = !!currentValue.size && Number.isFinite(coord) && !Number.isNaN(coord);
95288
95444
  const useCache = enableRemain && !isVisible && isValid$1(cacheInfo);
@@ -95300,7 +95456,8 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
95300
95456
  }, {})
95301
95457
  : null,
95302
95458
  visible: isVisible,
95303
- axis
95459
+ axis,
95460
+ axisLabel: axisLabel
95304
95461
  };
95305
95462
  if (newCacheInfo) {
95306
95463
  newCacheInfo._isCache = useCache;
@@ -95309,7 +95466,7 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
95309
95466
  let offsetSize = 0;
95310
95467
  if (attributes) {
95311
95468
  currentValue.forEach(({ axis, datum: value = '' }) => {
95312
- var _a;
95469
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
95313
95470
  let niceLabelFormatter = null;
95314
95471
  const scale = axis.getScale();
95315
95472
  if (isDiscrete(scale.type)) {
@@ -95338,36 +95495,37 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
95338
95495
  if (newCacheInfo && ((_a = attributes.label) === null || _a === void 0 ? void 0 : _a.visible) && !useCache) {
95339
95496
  const labelOffset = getAxisLabelOffset(axis.getSpec());
95340
95497
  const axisOrient = axis.getOrient();
95498
+ const syncAxisLabelAngle = (_b = attributes.label) === null || _b === void 0 ? void 0 : _b.syncAxisLabelAngle;
95341
95499
  if (newCacheInfo.labels[axisOrient]) {
95342
95500
  newCacheInfo.labels[axisOrient].visible = true;
95343
95501
  newCacheInfo.labels[axisOrient].text = value;
95344
95502
  if (axisOrient === 'left') {
95345
95503
  newCacheInfo.labels[axisOrient].dx = -labelOffset;
95346
95504
  newCacheInfo.labelsTextStyle[axisOrient] = {
95347
- textAlign: 'right',
95348
- textBaseline: 'middle'
95505
+ textAlign: syncAxisLabelAngle && axisLabel ? ((_c = axisLabel.attribute.textAlign) !== null && _c !== void 0 ? _c : 'right') : 'right',
95506
+ textBaseline: syncAxisLabelAngle && axisLabel ? ((_d = axisLabel.attribute.textBaseline) !== null && _d !== void 0 ? _d : 'middle') : 'middle'
95349
95507
  };
95350
95508
  }
95351
95509
  else if (axisOrient === 'right') {
95352
95510
  newCacheInfo.labels[axisOrient].dx = labelOffset;
95353
95511
  newCacheInfo.labelsTextStyle[axisOrient] = {
95354
- textAlign: 'left',
95355
- textBaseline: 'middle'
95512
+ textAlign: syncAxisLabelAngle && axisLabel ? ((_e = axisLabel.attribute.textAlign) !== null && _e !== void 0 ? _e : 'left') : 'left',
95513
+ textBaseline: syncAxisLabelAngle && axisLabel ? ((_f = axisLabel.attribute.textBaseline) !== null && _f !== void 0 ? _f : 'middle') : 'middle'
95356
95514
  };
95357
95515
  }
95358
95516
  else if (axisOrient === 'top') {
95359
95517
  newCacheInfo.labels[axisOrient].y = 0;
95360
95518
  newCacheInfo.labels[axisOrient].dy = -labelOffset;
95361
95519
  newCacheInfo.labelsTextStyle[axisOrient] = {
95362
- textAlign: 'center',
95363
- textBaseline: 'bottom'
95520
+ textAlign: syncAxisLabelAngle && axisLabel ? ((_g = axisLabel.attribute.textAlign) !== null && _g !== void 0 ? _g : 'center') : 'center',
95521
+ textBaseline: syncAxisLabelAngle && axisLabel ? ((_h = axisLabel.attribute.textBaseline) !== null && _h !== void 0 ? _h : 'bottom') : 'bottom'
95364
95522
  };
95365
95523
  }
95366
95524
  else if (axisOrient === 'bottom') {
95367
95525
  newCacheInfo.labels[axisOrient].dy = labelOffset;
95368
95526
  newCacheInfo.labelsTextStyle[axisOrient] = {
95369
- textAlign: 'center',
95370
- textBaseline: 'top'
95527
+ textAlign: syncAxisLabelAngle && axisLabel ? ((_j = axisLabel.attribute.textAlign) !== null && _j !== void 0 ? _j : 'center') : 'center',
95528
+ textBaseline: syncAxisLabelAngle && axisLabel ? ((_k = axisLabel.attribute.textBaseline) !== null && _k !== void 0 ? _k : 'top') : 'top'
95371
95529
  };
95372
95530
  }
95373
95531
  newCacheInfo.labels[axisOrient].defaultFormatter = niceLabelFormatter;
@@ -95611,9 +95769,9 @@ class CartesianCrossHair extends BaseCrossHair {
95611
95769
  const positionAttribute = layoutCrosshair$1(this._stateByField[field]);
95612
95770
  this._updateCrosshairByField(field, positionAttribute);
95613
95771
  Object.keys(labels).forEach(labelKey => {
95614
- var _a;
95772
+ var _a, _b, _c;
95615
95773
  if (labels[labelKey].visible) {
95616
- const updateAttrs = Object.assign(Object.assign(Object.assign({ [coordKey]: coord + bandSize / 2 }, labels[labelKey]), attributes.label), { textStyle: Object.assign(Object.assign({}, (_a = attributes.label) === null || _a === void 0 ? void 0 : _a.textStyle), labelsTextStyle[labelKey]), zIndex: this.labelZIndex, visible: true });
95774
+ const updateAttrs = Object.assign(Object.assign(Object.assign({ [coordKey]: coord + bandSize / 2 }, labels[labelKey]), attributes.label), { angle: attributes.label.syncAxisLabelAngle ? ((_b = (_a = cacheInfo.axisLabel) === null || _a === void 0 ? void 0 : _a.attribute.angle) !== null && _b !== void 0 ? _b : 0) : 0, textStyle: Object.assign(Object.assign({}, (_c = attributes.label) === null || _c === void 0 ? void 0 : _c.textStyle), labelsTextStyle[labelKey]), zIndex: this.labelZIndex, visible: true });
95617
95775
  this._updateCrosshairLabel(labelsComp[labelKey], updateAttrs, label => {
95618
95776
  label.name = `crosshair-${field.replace('Field', '')}-${labelKey}-label`;
95619
95777
  labelsComp[labelKey] = label;
@@ -96029,10 +96187,12 @@ const dataFilterWithNewDomain = (data, op) => {
96029
96187
  return data.filter(filter);
96030
96188
  };
96031
96189
  const dataFilterComputeDomain = (data, op) => {
96032
- const { stateFields, valueFields, dataCollection } = op.input;
96190
+ const { stateFields, valueFields, dataCollection, isCategoryState } = op.input;
96033
96191
  const { stateField, valueField } = op.output;
96034
96192
  const resultObj = {};
96035
96193
  const resultData = [];
96194
+ const stateValues = [];
96195
+ let hasLockDomain = false;
96036
96196
  dataCollection.forEach((dv, i) => {
96037
96197
  var _a;
96038
96198
  if (isNil$1(stateFields[i])) {
@@ -96040,14 +96200,19 @@ const dataFilterComputeDomain = (data, op) => {
96040
96200
  }
96041
96201
  const stateFieldInfo = (_a = dv.getFields()) === null || _a === void 0 ? void 0 : _a[stateFields[i]];
96042
96202
  if (stateFieldInfo && stateFieldInfo.lockStatisticsByDomain) {
96203
+ hasLockDomain = true;
96043
96204
  stateFieldInfo.domain.forEach((d) => {
96044
- resultObj[d] = 0;
96205
+ if (isNil$1(resultObj[d])) {
96206
+ stateValues.push(d);
96207
+ resultObj[d] = 0;
96208
+ }
96045
96209
  });
96046
96210
  }
96047
96211
  dv.latestData.forEach((d) => {
96048
96212
  array(stateFields[i]).forEach(state => {
96049
96213
  if (!isNil$1(d[state])) {
96050
96214
  if (isNil$1(resultObj[d[state]])) {
96215
+ stateValues.push(d[state]);
96051
96216
  resultObj[d[state]] = 0;
96052
96217
  }
96053
96218
  if (!isNil$1(valueFields[i])) {
@@ -96057,10 +96222,15 @@ const dataFilterComputeDomain = (data, op) => {
96057
96222
  });
96058
96223
  });
96059
96224
  });
96060
- Object.keys(resultObj).forEach((d, i) => {
96061
- const res = { [stateField]: d };
96225
+ const sortedStateValues = hasLockDomain
96226
+ ? stateValues
96227
+ : isCategoryState === false
96228
+ ? stateValues.sort((a, b) => a - b)
96229
+ : Object.keys(resultObj);
96230
+ sortedStateValues.forEach(state => {
96231
+ const res = { [stateField]: state };
96062
96232
  if (valueField) {
96063
- res[valueField] = resultObj[d];
96233
+ res[valueField] = resultObj[state];
96064
96234
  }
96065
96235
  resultData.push(res);
96066
96236
  });
@@ -96410,6 +96580,7 @@ class DataFilterBaseComponent extends BaseComponent {
96410
96580
  const dataCollection = [];
96411
96581
  const stateFields = [];
96412
96582
  const valueFields = [];
96583
+ let isCategoryState;
96413
96584
  if (this._relatedAxisComponent) {
96414
96585
  const originalStateFields = {};
96415
96586
  eachSeries(this._regions, s => {
@@ -96435,8 +96606,6 @@ class DataFilterBaseComponent extends BaseComponent {
96435
96606
  ? xAxisHelper
96436
96607
  : yAxisHelper;
96437
96608
  const valueAxisHelper = stateAxisHelper === xAxisHelper ? yAxisHelper : xAxisHelper;
96438
- const isValidateValueAxis = isContinuous(valueAxisHelper.getScale(0).type);
96439
- const isValidateStateAxis = isContinuous(stateAxisHelper.getScale(0).type);
96440
96609
  dataCollection.push(s.getRawData());
96441
96610
  const seriesSpec = s.getSpec();
96442
96611
  const xField = s.coordinate === 'cartesian'
@@ -96447,7 +96616,8 @@ class DataFilterBaseComponent extends BaseComponent {
96447
96616
  : array((_b = seriesSpec.radiusField) !== null && _b !== void 0 ? _b : seriesSpec.valueField);
96448
96617
  originalStateFields[s.id] =
96449
96618
  s.type === 'link' ? ['from_xField'] : stateAxisHelper === xAxisHelper ? xField : yField;
96450
- if (isValidateStateAxis) {
96619
+ if (isContinuous(stateAxisHelper.getScale(0).type)) {
96620
+ isCategoryState = false;
96451
96621
  stateFields.push(originalStateFields[s.id]);
96452
96622
  }
96453
96623
  else {
@@ -96455,7 +96625,7 @@ class DataFilterBaseComponent extends BaseComponent {
96455
96625
  }
96456
96626
  if (this._valueField) {
96457
96627
  const valueField = s.type === 'link' ? ['from_yField'] : valueAxisHelper === xAxisHelper ? xField : yField;
96458
- if (isValidateValueAxis) {
96628
+ if (isContinuous(valueAxisHelper.getScale(0).type)) {
96459
96629
  valueFields.push(...valueField);
96460
96630
  }
96461
96631
  }
@@ -96487,7 +96657,8 @@ class DataFilterBaseComponent extends BaseComponent {
96487
96657
  input: {
96488
96658
  dataCollection: dataCollection,
96489
96659
  stateFields,
96490
- valueFields
96660
+ valueFields,
96661
+ isCategoryState
96491
96662
  },
96492
96663
  output: {
96493
96664
  stateField: this._stateField,
@@ -97606,7 +97777,9 @@ function getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStar
97606
97777
  x = convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x;
97607
97778
  }
97608
97779
  else {
97609
- x = relativeSeries.getXAxisHelper().dataToPosition([datum.x]) + regionStartLayoutStartPoint.x;
97780
+ x =
97781
+ convertDatumToValue(relativeSeries.getXAxisHelper(), [datum.x]) +
97782
+ regionStartLayoutStartPoint.x;
97610
97783
  }
97611
97784
  return x;
97612
97785
  }
@@ -97621,7 +97794,9 @@ function getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionSta
97621
97794
  y = convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y;
97622
97795
  }
97623
97796
  else {
97624
- y = relativeSeries.getYAxisHelper().dataToPosition([datum.y]) + regionStartLayoutStartPoint.y;
97797
+ y =
97798
+ convertDatumToValue(relativeSeries.getYAxisHelper(), [datum.y]) +
97799
+ regionStartLayoutStartPoint.y;
97625
97800
  }
97626
97801
  return y;
97627
97802
  }
@@ -97631,7 +97806,7 @@ function getAngleValue(datum, angleDomain, autoRange, refSeries) {
97631
97806
  isNumber$1(datum.angle) &&
97632
97807
  isNeedExtendDomain(angleDomain, datum.angle, autoRange) &&
97633
97808
  ((_b = (_a = relativeSeries.angleAxisHelper) === null || _a === void 0 ? void 0 : _a.setExtendDomain) === null || _b === void 0 ? void 0 : _b.call(_a, 'marker_angleAxis_extend', datum.angle));
97634
- return relativeSeries.angleAxisHelper.dataToPosition([datum.angle]);
97809
+ return convertDatumToValue(relativeSeries.angleAxisHelper, [datum.angle]);
97635
97810
  }
97636
97811
  function getRadiusValue(datum, radiusDomain, autoRange, refSeries) {
97637
97812
  var _a, _b;
@@ -97639,11 +97814,18 @@ function getRadiusValue(datum, radiusDomain, autoRange, refSeries) {
97639
97814
  isNumber$1(datum.radius) &&
97640
97815
  isNeedExtendDomain(radiusDomain, datum.radius, autoRange) &&
97641
97816
  ((_b = (_a = relativeSeries.radiusAxisHelper) === null || _a === void 0 ? void 0 : _a.setExtendDomain) === null || _b === void 0 ? void 0 : _b.call(_a, 'marker_radiusAxis_extend', datum.radius));
97642
- return relativeSeries.radiusAxisHelper.dataToPosition([datum.radius]);
97817
+ return convertDatumToValue(relativeSeries.radiusAxisHelper, [datum.radius]);
97643
97818
  }
97644
97819
  function convertPercentToValue(percent, relativeLength) {
97645
97820
  return (Number(percent.substring(0, percent.length - 1)) * relativeLength) / 100;
97646
97821
  }
97822
+ function convertDatumToValue(axisHelper, datum) {
97823
+ const scale = axisHelper.getScale(0);
97824
+ if (isContinuous(scale.type) && scale.domain()[0] === scale.domain()[1] && datum[0] !== scale.domain()[0]) {
97825
+ return NaN;
97826
+ }
97827
+ return axisHelper.dataToPosition(datum);
97828
+ }
97647
97829
  function isAggrSpec(spec) {
97648
97830
  return AGGR_TYPE.includes(spec);
97649
97831
  }
@@ -97808,8 +97990,8 @@ function cartesianCoordinateLayout(data, relativeSeries, autoRange, coordinatesO
97808
97990
  isNeedExtendDomain(yDomain, yValue[0], autoRange) &&
97809
97991
  ((_d = (_c = refRelativeSeries.getYAxisHelper()) === null || _c === void 0 ? void 0 : _c.setExtendDomain) === null || _d === void 0 ? void 0 : _d.call(_c, 'marker_yAxis_extend', yValue[0]));
97810
97992
  points.push({
97811
- x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x + offsetX,
97812
- y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y + offsetY
97993
+ x: convertDatumToValue(refRelativeSeries.getXAxisHelper(), xValue) + regionStartLayoutStartPoint.x + offsetX,
97994
+ y: convertDatumToValue(refRelativeSeries.getYAxisHelper(), yValue) + regionStartLayoutStartPoint.y + offsetY
97813
97995
  });
97814
97996
  });
97815
97997
  return points;
@@ -97833,8 +98015,8 @@ function polarCoordinateLayout(data, relativeSeries, autoRange) {
97833
98015
  isNeedExtendDomain(radiusDomain, radiusValue[0], autoRange) &&
97834
98016
  ((_d = (_c = refRelativeSeries.radiusAxisHelper) === null || _c === void 0 ? void 0 : _c.setExtendDomain) === null || _d === void 0 ? void 0 : _d.call(_c, 'marker_yAxis_extend', radiusValue[0]));
97835
98017
  points.push({
97836
- angle: refRelativeSeries.angleAxisHelper.dataToPosition(angleValue),
97837
- radius: refRelativeSeries.radiusAxisHelper.dataToPosition(radiusValue)
98018
+ angle: convertDatumToValue(refRelativeSeries.angleAxisHelper, angleValue),
98019
+ radius: convertDatumToValue(refRelativeSeries.radiusAxisHelper, radiusValue)
97838
98020
  });
97839
98021
  });
97840
98022
  return points;
@@ -100588,7 +100770,6 @@ class Brush extends BaseComponent {
100588
100770
  this._linkedInBrushElementsMap = {};
100589
100771
  this._linkedOutOfBrushElementsMap = {};
100590
100772
  this._cacheInteractiveRangeAttrs = [];
100591
- this._needDisablePickable = false;
100592
100773
  this._releatedAxes = [];
100593
100774
  this._regionAxisMap = {};
100594
100775
  this._axisDataZoomMap = {};
@@ -100744,34 +100925,36 @@ class Brush extends BaseComponent {
100744
100925
  this._emitEvent(ChartEvent.brushActive, region);
100745
100926
  });
100746
100927
  brush.addEventListener(IOperateType.drawStart, (e) => {
100928
+ this._setRegionMarkPickable(region, true);
100747
100929
  this._emitEvent(ChartEvent.brushStart, region);
100748
100930
  });
100749
100931
  brush.addEventListener(IOperateType.moveStart, (e) => {
100932
+ this._setRegionMarkPickable(region, true);
100750
100933
  this._emitEvent(ChartEvent.brushStart, region);
100751
100934
  });
100752
100935
  brush.addEventListener(IOperateType.drawing, (e) => {
100753
- this._needDisablePickable = true;
100936
+ this._setRegionMarkPickable(region, false);
100754
100937
  this._handleBrushChange(region, e);
100755
100938
  this._emitEvent(ChartEvent.brushChange, region);
100756
100939
  });
100757
100940
  brush.addEventListener(IOperateType.moving, (e) => {
100941
+ this._setRegionMarkPickable(region, false);
100758
100942
  this._handleBrushChange(region, e);
100759
100943
  this._emitEvent(ChartEvent.brushChange, region);
100760
100944
  });
100761
100945
  brush.addEventListener(IOperateType.brushClear, (e) => {
100946
+ this._setRegionMarkPickable(region, true);
100762
100947
  this._initMarkBrushState(componentIndex, '');
100763
- this._needDisablePickable = false;
100764
100948
  this._emitEvent(ChartEvent.brushClear, region);
100765
100949
  });
100766
100950
  brush.addEventListener(IOperateType.drawEnd, (e) => {
100767
100951
  var _a;
100768
- this._needDisablePickable = false;
100952
+ this._setRegionMarkPickable(region, true);
100769
100953
  const { operateMask } = e.detail;
100770
100954
  if ((_a = this._spec) === null || _a === void 0 ? void 0 : _a.onBrushEnd) {
100771
100955
  if (this._spec.onBrushEnd(e) === true) {
100772
100956
  this.clearGraphic();
100773
100957
  this._initMarkBrushState(componentIndex, '');
100774
- this._needDisablePickable = false;
100775
100958
  this._emitEvent(ChartEvent.brushClear, region);
100776
100959
  }
100777
100960
  else {
@@ -100788,6 +100971,7 @@ class Brush extends BaseComponent {
100788
100971
  }
100789
100972
  });
100790
100973
  brush.addEventListener(IOperateType.moveEnd, (e) => {
100974
+ this._setRegionMarkPickable(region, true);
100791
100975
  const { operateMask } = e.detail;
100792
100976
  const inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
100793
100977
  if (!this._spec.zoomWhenEmpty && inBrushData.length > 0) {
@@ -100915,7 +101099,6 @@ class Brush extends BaseComponent {
100915
101099
  this._outOfBrushElementsMap[elementKey] = el;
100916
101100
  delete this._inBrushElementsMap[operateMask.name][elementKey];
100917
101101
  }
100918
- graphicItem.setAttribute('pickable', !this._needDisablePickable);
100919
101102
  });
100920
101103
  });
100921
101104
  }
@@ -100974,7 +101157,6 @@ class Brush extends BaseComponent {
100974
101157
  el.addState(OUT_BRUSH_STATE);
100975
101158
  this._linkedOutOfBrushElementsMap[elementKey] = el;
100976
101159
  }
100977
- graphicItem.setAttribute('pickable', !this._needDisablePickable);
100978
101160
  });
100979
101161
  });
100980
101162
  }
@@ -101056,6 +101238,12 @@ class Brush extends BaseComponent {
101056
101238
  });
101057
101239
  });
101058
101240
  }
101241
+ _setRegionMarkPickable(region, pickable) {
101242
+ region
101243
+ .getGroupMark()
101244
+ .getProduct()
101245
+ .elements.forEach(el => el.getGraphicItem().setAttribute('childrenPickable', pickable));
101246
+ }
101059
101247
  _stateClamp(state) {
101060
101248
  return Math.min(Math.max(0, state), 1);
101061
101249
  }
@@ -101135,7 +101323,6 @@ class Brush extends BaseComponent {
101135
101323
  const container = this.getContainer();
101136
101324
  this._brushComponents.forEach((brush, index) => {
101137
101325
  this._initMarkBrushState(index, '');
101138
- this._needDisablePickable = false;
101139
101326
  brush.removeAllChild();
101140
101327
  brush.releaseBrushEvents();
101141
101328
  if (container) {
@@ -103068,12 +103255,18 @@ class DomTooltipHandler extends BaseTooltipHandler {
103068
103255
  const rowStyle = this._domStyle.row;
103069
103256
  const chilren = [...this._rootDom.children];
103070
103257
  let titleDom = chilren.find(child => child.className.includes(TOOLTIP_TITLE_CLASS_NAME));
103258
+ let contentDom = chilren.find(child => child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME));
103071
103259
  if (!titleDom && title.visible !== false) {
103072
103260
  titleDom = document.createElement('h2');
103073
103261
  const span = document.createElement('span');
103074
103262
  titleDom.appendChild(span);
103075
103263
  titleDom.classList.add(TOOLTIP_TITLE_CLASS_NAME);
103076
- this._rootDom.appendChild(titleDom);
103264
+ if (this._rootDom.firstChild) {
103265
+ this._rootDom.insertBefore(titleDom, this._rootDom.firstChild);
103266
+ }
103267
+ else {
103268
+ this._rootDom.appendChild(titleDom);
103269
+ }
103077
103270
  }
103078
103271
  if (titleDom && title.visible !== false) {
103079
103272
  setStyleToDom(titleDom, Object.assign(Object.assign(Object.assign({}, this._domStyle.title), (hasContent ? rowStyle : { marginBottom: '0px' })), { marginTop: '0px' }));
@@ -103082,7 +103275,6 @@ class DomTooltipHandler extends BaseTooltipHandler {
103082
103275
  else if (titleDom && title.visible === false) {
103083
103276
  titleDom.parentNode.removeChild(titleDom);
103084
103277
  }
103085
- let contentDom = chilren.find(child => child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME));
103086
103278
  const columns = ['shape', 'key', 'value'];
103087
103279
  if (!contentDom && hasContent) {
103088
103280
  contentDom = document.createElement('div');