@visactor/vchart 1.13.11 → 1.13.13-alpha.0

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 (68) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +313 -164
  3. package/build/index.js +313 -164
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/base/base-chart.d.ts +1 -0
  7. package/cjs/chart/base/base-chart.js +3 -0
  8. package/cjs/chart/base/base-chart.js.map +1 -1
  9. package/cjs/chart/interface/chart.d.ts +1 -0
  10. package/cjs/chart/interface/chart.js.map +1 -1
  11. package/cjs/compile/compiler.js +7 -2
  12. package/cjs/compile/compiler.js.map +1 -1
  13. package/cjs/component/brush/brush.d.ts +1 -1
  14. package/cjs/component/brush/brush.js +18 -15
  15. package/cjs/component/brush/brush.js.map +1 -1
  16. package/cjs/component/crosshair/base.d.ts +1 -0
  17. package/cjs/component/crosshair/base.js +8 -4
  18. package/cjs/component/crosshair/base.js.map +1 -1
  19. package/cjs/component/crosshair/cartesian.js +3 -2
  20. package/cjs/component/crosshair/cartesian.js.map +1 -1
  21. package/cjs/component/crosshair/interface/common.d.ts +3 -1
  22. package/cjs/component/crosshair/interface/common.js.map +1 -1
  23. package/cjs/component/crosshair/interface/spec.d.ts +1 -0
  24. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  25. package/cjs/component/crosshair/utils/cartesian.js +15 -13
  26. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  27. package/cjs/component/marker/utils.js +14 -9
  28. package/cjs/component/marker/utils.js.map +1 -1
  29. package/cjs/core/index.d.ts +1 -1
  30. package/cjs/core/index.js +1 -1
  31. package/cjs/core/index.js.map +1 -1
  32. package/cjs/model/base-model.d.ts +1 -0
  33. package/cjs/model/base-model.js +1 -0
  34. package/cjs/model/base-model.js.map +1 -1
  35. package/cjs/model/interface.d.ts +1 -0
  36. package/cjs/model/interface.js.map +1 -1
  37. package/esm/chart/base/base-chart.d.ts +1 -0
  38. package/esm/chart/base/base-chart.js +3 -0
  39. package/esm/chart/base/base-chart.js.map +1 -1
  40. package/esm/chart/interface/chart.d.ts +1 -0
  41. package/esm/chart/interface/chart.js.map +1 -1
  42. package/esm/compile/compiler.js +7 -2
  43. package/esm/compile/compiler.js.map +1 -1
  44. package/esm/component/brush/brush.d.ts +1 -1
  45. package/esm/component/brush/brush.js +18 -15
  46. package/esm/component/brush/brush.js.map +1 -1
  47. package/esm/component/crosshair/base.d.ts +1 -0
  48. package/esm/component/crosshair/base.js +8 -4
  49. package/esm/component/crosshair/base.js.map +1 -1
  50. package/esm/component/crosshair/cartesian.js +3 -2
  51. package/esm/component/crosshair/cartesian.js.map +1 -1
  52. package/esm/component/crosshair/interface/common.d.ts +3 -1
  53. package/esm/component/crosshair/interface/common.js.map +1 -1
  54. package/esm/component/crosshair/interface/spec.d.ts +1 -0
  55. package/esm/component/crosshair/interface/spec.js.map +1 -1
  56. package/esm/component/crosshair/utils/cartesian.js +15 -13
  57. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  58. package/esm/component/marker/utils.js +15 -8
  59. package/esm/component/marker/utils.js.map +1 -1
  60. package/esm/core/index.d.ts +1 -1
  61. package/esm/core/index.js +1 -1
  62. package/esm/core/index.js.map +1 -1
  63. package/esm/model/base-model.d.ts +1 -0
  64. package/esm/model/base-model.js +1 -0
  65. package/esm/model/base-model.js.map +1 -1
  66. package/esm/model/interface.d.ts +1 -0
  67. package/esm/model/interface.js.map +1 -1
  68. package/package.json +15 -15
package/build/index.js CHANGED
@@ -7846,11 +7846,14 @@
7846
7846
  const ContributionProvider = Symbol("ContributionProvider");
7847
7847
  class ContributionProviderCache {
7848
7848
  constructor(serviceIdentifier, container) {
7849
- this.serviceIdentifier = serviceIdentifier, this.container = container;
7849
+ this.serviceIdentifier = serviceIdentifier, this.container = container, ContributionStore.setStore(this.serviceIdentifier, this);
7850
7850
  }
7851
7851
  getContributions() {
7852
7852
  return this.caches || (this.caches = [], this.container && this.container.isBound(this.serviceIdentifier) && this.caches.push(...this.container.getAll(this.serviceIdentifier))), this.caches;
7853
7853
  }
7854
+ refresh() {
7855
+ this.caches && (this.caches.length = 0, this.container && this.container.isBound(this.serviceIdentifier) && this.caches.push(...this.container.getAll(this.serviceIdentifier)));
7856
+ }
7854
7857
  }
7855
7858
  function bindContributionProvider(bind, id) {
7856
7859
  bind(ContributionProvider).toDynamicValue(_ref => {
@@ -7868,6 +7871,20 @@
7868
7871
  return new ContributionProviderCache(id, container);
7869
7872
  }).whenTargetNamed(id);
7870
7873
  }
7874
+ class ContributionStore {
7875
+ static getStore(id) {
7876
+ return this.store.get(id);
7877
+ }
7878
+ static setStore(id, cache) {
7879
+ this.store.set(id, cache);
7880
+ }
7881
+ static refreshAllContributions() {
7882
+ this.store.forEach(cache => {
7883
+ cache.refresh();
7884
+ });
7885
+ }
7886
+ }
7887
+ ContributionStore.store = new Map();
7871
7888
 
7872
7889
  class Hook {
7873
7890
  constructor(args, name) {
@@ -7934,6 +7951,48 @@
7934
7951
  const VGlobal = Symbol.for("VGlobal");
7935
7952
  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";
7936
7953
 
7954
+ class EventListenerManager {
7955
+ constructor() {
7956
+ this._listenerMap = new Map(), this._eventListenerTransformer = event => event;
7957
+ }
7958
+ setEventListenerTransformer(transformer) {
7959
+ this._eventListenerTransformer = transformer || (event => event);
7960
+ }
7961
+ addEventListener(type, listener, options) {
7962
+ if (!listener) return;
7963
+ const wrappedListener = event => {
7964
+ const transformedEvent = this._eventListenerTransformer(event);
7965
+ "function" == typeof listener ? listener(transformedEvent) : listener.handleEvent && listener.handleEvent(transformedEvent);
7966
+ };
7967
+ this._listenerMap.has(type) || this._listenerMap.set(type, new Map()), this._listenerMap.get(type).set(listener, wrappedListener), this._nativeAddEventListener(type, wrappedListener, options);
7968
+ }
7969
+ removeEventListener(type, listener, options) {
7970
+ var _a;
7971
+ if (!listener) return;
7972
+ const wrappedListener = null === (_a = this._listenerMap.get(type)) || void 0 === _a ? void 0 : _a.get(listener);
7973
+ wrappedListener && (this._nativeRemoveEventListener(type, wrappedListener, options), this._listenerMap.get(type).delete(listener), 0 === this._listenerMap.get(type).size && this._listenerMap.delete(type));
7974
+ }
7975
+ dispatchEvent(event) {
7976
+ return this._nativeDispatchEvent(event);
7977
+ }
7978
+ clearAllEventListeners() {
7979
+ this._listenerMap.forEach((listenersMap, type) => {
7980
+ listenersMap.forEach((wrappedListener, originalListener) => {
7981
+ this._nativeRemoveEventListener(type, wrappedListener, void 0);
7982
+ });
7983
+ }), this._listenerMap.clear();
7984
+ }
7985
+ _nativeAddEventListener(type, listener, options) {
7986
+ throw new Error("_nativeAddEventListener must be implemented by derived classes");
7987
+ }
7988
+ _nativeRemoveEventListener(type, listener, options) {
7989
+ throw new Error("_nativeRemoveEventListener must be implemented by derived classes");
7990
+ }
7991
+ _nativeDispatchEvent(event) {
7992
+ throw new Error("_nativeDispatchEvent must be implemented by derived classes");
7993
+ }
7994
+ }
7995
+
7937
7996
  var __decorate$1B = undefined && undefined.__decorate || function (decorators, target, key, desc) {
7938
7997
  var d,
7939
7998
  c = arguments.length,
@@ -7974,7 +8033,7 @@
7974
8033
  step((generator = generator.apply(thisArg, _arguments || [])).next());
7975
8034
  });
7976
8035
  };
7977
- let DefaultGlobal = class {
8036
+ let DefaultGlobal = class extends EventListenerManager {
7978
8037
  get env() {
7979
8038
  return this._env;
7980
8039
  }
@@ -8018,10 +8077,19 @@
8018
8077
  this._env || this.setEnv("browser"), this.envContribution.applyStyles = support;
8019
8078
  }
8020
8079
  constructor(contributions) {
8021
- this.contributions = contributions, this._isImageAnonymous = !0, this.id = Generator.GenAutoIncrementId(), this.hooks = {
8080
+ super(), this.contributions = contributions, this._isImageAnonymous = !0, this.eventListenerTransformer = event => event, this.id = Generator.GenAutoIncrementId(), this.hooks = {
8022
8081
  onSetEnv: new SyncHook(["lastEnv", "env", "global"])
8023
8082
  }, this.measureTextMethod = "native", this.optimizeVisible = !1;
8024
8083
  }
8084
+ _nativeAddEventListener(type, listener, options) {
8085
+ return this._env || this.setEnv("browser"), this.envContribution.addEventListener(type, listener, options);
8086
+ }
8087
+ _nativeRemoveEventListener(type, listener, options) {
8088
+ return this._env || this.setEnv("browser"), this.envContribution.removeEventListener(type, listener, options);
8089
+ }
8090
+ _nativeDispatchEvent(event) {
8091
+ return this._env || this.setEnv("browser"), this.envContribution.dispatchEvent(event);
8092
+ }
8025
8093
  bindContribution(params) {
8026
8094
  const promiseArr = [];
8027
8095
  if (this.contributions.getContributions().forEach(contribution => {
@@ -8062,15 +8130,6 @@
8062
8130
  releaseCanvas(canvas) {
8063
8131
  return this._env || this.setEnv("browser"), this.envContribution.releaseCanvas(canvas);
8064
8132
  }
8065
- addEventListener(type, listener, options) {
8066
- return this._env || this.setEnv("browser"), this.envContribution.addEventListener(type, listener, options);
8067
- }
8068
- removeEventListener(type, listener, options) {
8069
- return this._env || this.setEnv("browser"), this.envContribution.removeEventListener(type, listener, options);
8070
- }
8071
- dispatchEvent(event) {
8072
- return this._env || this.setEnv("browser"), this.envContribution.dispatchEvent(event);
8073
- }
8074
8133
  getRequestAnimationFrame() {
8075
8134
  return this._env || this.setEnv("browser"), this.envContribution.getRequestAnimationFrame();
8076
8135
  }
@@ -11099,7 +11158,7 @@
11099
11158
  };
11100
11159
  const VWindow = Symbol.for("VWindow");
11101
11160
  const WindowHandlerContribution = Symbol.for("WindowHandlerContribution");
11102
- let DefaultWindow = class {
11161
+ let DefaultWindow = class extends EventListenerManager {
11103
11162
  get width() {
11104
11163
  if (this._handler) {
11105
11164
  const wh = this._handler.getWH();
@@ -11118,7 +11177,7 @@
11118
11177
  return this._handler.getDpr();
11119
11178
  }
11120
11179
  constructor() {
11121
- this.hooks = {
11180
+ super(), this.hooks = {
11122
11181
  onChange: new SyncHook(["x", "y", "width", "height"])
11123
11182
  }, this.active = () => {
11124
11183
  const global = this.global;
@@ -11126,6 +11185,15 @@
11126
11185
  container.getNamed(WindowHandlerContribution, global.env).configure(this, global), this.actived = !0;
11127
11186
  }, this._uid = Generator.GenAutoIncrementId(), this.global = application.global, this.postInit();
11128
11187
  }
11188
+ _nativeAddEventListener(type, listener, options) {
11189
+ return this._handler.addEventListener(type, listener, options);
11190
+ }
11191
+ _nativeRemoveEventListener(type, listener, options) {
11192
+ return this._handler.removeEventListener(type, listener, options);
11193
+ }
11194
+ _nativeDispatchEvent(event) {
11195
+ return this._handler.dispatchEvent(event);
11196
+ }
11129
11197
  postInit() {
11130
11198
  this.global.hooks.onSetEnv.tap("window", this.active), this.active();
11131
11199
  }
@@ -11165,7 +11233,7 @@
11165
11233
  throw new Error("暂不支持");
11166
11234
  }
11167
11235
  release() {
11168
- return this.global.hooks.onSetEnv.unTap("window", this.active), this._handler.releaseWindow();
11236
+ return this.global.hooks.onSetEnv.unTap("window", this.active), this.clearAllEventListeners(), this._handler.releaseWindow();
11169
11237
  }
11170
11238
  getContext() {
11171
11239
  return this._handler.getContext();
@@ -11176,15 +11244,6 @@
11176
11244
  getImageBuffer(type) {
11177
11245
  return this._handler.getImageBuffer ? this._handler.getImageBuffer(type) : null;
11178
11246
  }
11179
- addEventListener(type, listener, options) {
11180
- return this._handler.addEventListener(type, listener, options);
11181
- }
11182
- removeEventListener(type, listener, options) {
11183
- return this._handler.removeEventListener(type, listener, options);
11184
- }
11185
- dispatchEvent(event) {
11186
- return this._handler.dispatchEvent(event);
11187
- }
11188
11247
  getBoundingClientRect() {
11189
11248
  return this._handler.getBoundingClientRect();
11190
11249
  }
@@ -12393,19 +12452,17 @@
12393
12452
  globalObj: globalObj,
12394
12453
  domElement: domElement
12395
12454
  } = this;
12396
- 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, {
12455
+ 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, {
12397
12456
  capture: !0
12398
12457
  }), this.eventsAdded = !0;
12399
12458
  }
12400
12459
  removeEvents() {
12401
- var _a;
12402
12460
  if (!this.eventsAdded || !this.domElement) return;
12403
12461
  const {
12404
- globalObj: globalObj,
12405
- domElement: domElement
12406
- } = this,
12407
- globalDocument = null !== (_a = globalObj.getDocument()) && void 0 !== _a ? _a : domElement;
12408
- 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;
12462
+ globalObj: globalObj,
12463
+ domElement: domElement
12464
+ } = this;
12465
+ 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;
12409
12466
  }
12410
12467
  mapToViewportPoint(event) {
12411
12468
  return this.domElement.pointTransform ? this.domElement.pointTransform(event.x, event.y) : event;
@@ -13659,23 +13716,27 @@
13659
13716
  isValidNumber$1(lastClipRange * this.clipRange) && (this.clipRange *= lastClipRange);
13660
13717
  }
13661
13718
  onUpdate(end, ratio, out) {
13662
- if (this.points = this.points.map((point, index) => {
13663
- const newPoint = pointInterpolation(this.interpolatePoints[index][0], this.interpolatePoints[index][1], ratio);
13664
- return newPoint.context = point.context, newPoint;
13665
- }), this.clipRange) {
13666
- 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));
13667
- out.clipRange = this.clipRange + (1 - this.clipRange) * ratio;
13668
- }
13669
- if (this.segmentsCache && this.to.segments) {
13670
- let start = 0;
13671
- out.segments = this.to.segments.map((segment, index) => {
13672
- const end = start + this.segmentsCache[index],
13673
- points = this.points.slice(start, end);
13674
- return start = end, Object.assign(Object.assign({}, segment), {
13675
- points: points
13719
+ if (end) Object.keys(this.to).forEach(k => {
13720
+ out[k] = this.to[k];
13721
+ });else {
13722
+ if (this.points = this.points.map((point, index) => {
13723
+ const newPoint = pointInterpolation(this.interpolatePoints[index][0], this.interpolatePoints[index][1], ratio);
13724
+ return newPoint.context = point.context, newPoint;
13725
+ }), this.clipRange) {
13726
+ 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));
13727
+ out.clipRange = this.clipRange + (1 - this.clipRange) * ratio;
13728
+ }
13729
+ if (this.segmentsCache && this.to.segments) {
13730
+ let start = 0;
13731
+ out.segments = this.to.segments.map((segment, index) => {
13732
+ const end = start + this.segmentsCache[index],
13733
+ points = this.points.slice(start, end);
13734
+ return start = end, Object.assign(Object.assign({}, segment), {
13735
+ points: points
13736
+ });
13676
13737
  });
13677
- });
13678
- } else out.points = this.points;
13738
+ } else out.points = this.points;
13739
+ }
13679
13740
  }
13680
13741
  }
13681
13742
  class ClipGraphicAnimate extends ACustomAnimate {
@@ -21080,6 +21141,9 @@
21080
21141
  init(contributions) {
21081
21142
  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));
21082
21143
  }
21144
+ reInit() {
21145
+ this.init(this.graphicRenderContributions);
21146
+ }
21083
21147
  beforeRenderStep(graphic, context, x, y, doFill, doStroke, fVisible, sVisible, graphicAttribute, drawContext, fillCb, strokeCb, params) {
21084
21148
  this._beforeRenderContribitions && this._beforeRenderContribitions.forEach(c => {
21085
21149
  if (c.supportedAppName && graphic.stage && graphic.stage.params && graphic.stage.params.context && graphic.stage.params.context.appName) {
@@ -21249,8 +21313,8 @@
21249
21313
  };
21250
21314
  };
21251
21315
  let DefaultCanvasArcRender = class extends BaseRender {
21252
- constructor(arcRenderContribitions) {
21253
- super(), this.arcRenderContribitions = arcRenderContribitions, this.numberType = ARC_NUMBER_TYPE, this.builtinContributions = [defaultArcRenderContribution, defaultArcBackgroundRenderContribution, defaultArcTextureRenderContribution], this.init(arcRenderContribitions);
21316
+ constructor(graphicRenderContributions) {
21317
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = ARC_NUMBER_TYPE, this.builtinContributions = [defaultArcRenderContribution, defaultArcBackgroundRenderContribution, defaultArcTextureRenderContribution], this.init(graphicRenderContributions);
21254
21318
  }
21255
21319
  drawArcTailCapPath(arc, context, cx, cy, outerRadius, innerRadius, _sa, _ea) {
21256
21320
  const capAngle = _ea - _sa,
@@ -21425,8 +21489,8 @@
21425
21489
  };
21426
21490
  };
21427
21491
  let DefaultCanvasCircleRender = class extends BaseRender {
21428
- constructor(circleRenderContribitions) {
21429
- super(), this.circleRenderContribitions = circleRenderContribitions, this.numberType = CIRCLE_NUMBER_TYPE, this.builtinContributions = [defaultCircleRenderContribution, defaultCircleBackgroundRenderContribution, defaultCircleTextureRenderContribution], this.init(circleRenderContribitions);
21492
+ constructor(graphicRenderContributions) {
21493
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = CIRCLE_NUMBER_TYPE, this.builtinContributions = [defaultCircleRenderContribution, defaultCircleBackgroundRenderContribution, defaultCircleTextureRenderContribution], this.init(graphicRenderContributions);
21430
21494
  }
21431
21495
  drawShape(circle, context, x, y, drawContext, params, fillCb, strokeCb) {
21432
21496
  const circleAttribute = getTheme$1(circle, null == params ? void 0 : params.theme).circle,
@@ -21812,8 +21876,8 @@
21812
21876
  };
21813
21877
  };
21814
21878
  let DefaultCanvasAreaRender = class extends BaseRender {
21815
- constructor(areaRenderContribitions) {
21816
- super(), this.areaRenderContribitions = areaRenderContribitions, this.numberType = AREA_NUMBER_TYPE, this.builtinContributions = [defaultAreaTextureRenderContribution, defaultAreaBackgroundRenderContribution], this.init(areaRenderContribitions);
21879
+ constructor(graphicRenderContributions) {
21880
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = AREA_NUMBER_TYPE, this.builtinContributions = [defaultAreaTextureRenderContribution, defaultAreaBackgroundRenderContribution], this.init(graphicRenderContributions);
21817
21881
  }
21818
21882
  drawLinearAreaHighPerformance(area, context, fill, stroke, fillOpacity, strokeOpacity, offsetX, offsetY, areaAttribute, drawContext, params, fillCb, strokeCb) {
21819
21883
  var _a, _b, _c;
@@ -22056,8 +22120,8 @@
22056
22120
  };
22057
22121
  };
22058
22122
  let DefaultCanvasPathRender = class extends BaseRender {
22059
- constructor(pathRenderContribitions) {
22060
- super(), this.pathRenderContribitions = pathRenderContribitions, this.numberType = PATH_NUMBER_TYPE, this.builtinContributions = [defaultPathBackgroundRenderContribution, defaultPathTextureRenderContribution], this.init(pathRenderContribitions);
22123
+ constructor(graphicRenderContributions) {
22124
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = PATH_NUMBER_TYPE, this.builtinContributions = [defaultPathBackgroundRenderContribution, defaultPathTextureRenderContribution], this.init(graphicRenderContributions);
22061
22125
  }
22062
22126
  drawShape(path, context, x, y, drawContext, params, fillCb, strokeCb) {
22063
22127
  var _a, _b, _c;
@@ -22112,8 +22176,8 @@
22112
22176
  };
22113
22177
  };
22114
22178
  let DefaultCanvasRectRender = class extends BaseRender {
22115
- constructor(rectRenderContribitions) {
22116
- super(), this.rectRenderContribitions = rectRenderContribitions, this.type = "rect", this.numberType = RECT_NUMBER_TYPE, this.builtinContributions = [defaultRectRenderContribution, defaultRectBackgroundRenderContribution, defaultRectTextureRenderContribution], this.init(rectRenderContribitions);
22179
+ constructor(graphicRenderContributions) {
22180
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.type = "rect", this.numberType = RECT_NUMBER_TYPE, this.builtinContributions = [defaultRectRenderContribution, defaultRectBackgroundRenderContribution, defaultRectTextureRenderContribution], this.init(graphicRenderContributions);
22117
22181
  }
22118
22182
  drawShape(rect, context, x, y, drawContext, params, fillCb, strokeCb) {
22119
22183
  var _a;
@@ -22184,8 +22248,8 @@
22184
22248
  };
22185
22249
  };
22186
22250
  let DefaultCanvasSymbolRender = class extends BaseRender {
22187
- constructor(symbolRenderContribitions) {
22188
- super(), this.symbolRenderContribitions = symbolRenderContribitions, this.numberType = SYMBOL_NUMBER_TYPE, this.builtinContributions = [defaultSymbolRenderContribution, defaultSymbolBackgroundRenderContribution, defaultSymbolTextureRenderContribution, defaultSymbolClipRangeStrokeRenderContribution], this.init(symbolRenderContribitions);
22251
+ constructor(graphicRenderContributions) {
22252
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = SYMBOL_NUMBER_TYPE, this.builtinContributions = [defaultSymbolRenderContribution, defaultSymbolBackgroundRenderContribution, defaultSymbolTextureRenderContribution, defaultSymbolClipRangeStrokeRenderContribution], this.init(graphicRenderContributions);
22189
22253
  }
22190
22254
  drawShape(symbol, context, x, y, drawContext, params, fillCb, strokeCb) {
22191
22255
  var _a;
@@ -22356,8 +22420,8 @@
22356
22420
  };
22357
22421
  };
22358
22422
  let DefaultCanvasTextRender = class extends BaseRender {
22359
- constructor(textRenderContribitions) {
22360
- super(), this.textRenderContribitions = textRenderContribitions, this.numberType = TEXT_NUMBER_TYPE, this.builtinContributions = [defaultTextBackgroundRenderContribution], this.init(textRenderContribitions);
22423
+ constructor(graphicRenderContributions) {
22424
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = TEXT_NUMBER_TYPE, this.builtinContributions = [defaultTextBackgroundRenderContribution], this.init(graphicRenderContributions);
22361
22425
  }
22362
22426
  drawShape(text, context, x, y, drawContext, params, fillCb, strokeCb) {
22363
22427
  var _a, _b, _c;
@@ -22561,8 +22625,8 @@
22561
22625
  };
22562
22626
  };
22563
22627
  let DefaultCanvasPolygonRender = class extends BaseRender {
22564
- constructor(polygonRenderContribitions) {
22565
- super(), this.polygonRenderContribitions = polygonRenderContribitions, this.numberType = POLYGON_NUMBER_TYPE, this.builtinContributions = [defaultPolygonBackgroundRenderContribution, defaultPolygonTextureRenderContribution], this.init(polygonRenderContribitions);
22628
+ constructor(graphicRenderContributions) {
22629
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = POLYGON_NUMBER_TYPE, this.builtinContributions = [defaultPolygonBackgroundRenderContribution, defaultPolygonTextureRenderContribution], this.init(graphicRenderContributions);
22566
22630
  }
22567
22631
  drawShape(polygon, context, x, y, drawContext, params, fillCb, strokeCb) {
22568
22632
  const polygonAttribute = getTheme$1(polygon, null == params ? void 0 : params.theme).polygon,
@@ -22617,6 +22681,9 @@
22617
22681
  constructor(groupRenderContribitions) {
22618
22682
  this.groupRenderContribitions = groupRenderContribitions, this.numberType = GROUP_NUMBER_TYPE;
22619
22683
  }
22684
+ reInit() {
22685
+ this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [], this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);
22686
+ }
22620
22687
  drawShape(group, context, x, y, drawContext, params, fillCb, strokeCb) {
22621
22688
  const groupAttribute = getTheme$1(group, null == params ? void 0 : params.theme).group,
22622
22689
  {
@@ -22747,8 +22814,8 @@
22747
22814
  };
22748
22815
  const repeatStr = ["", "repeat-x", "repeat-y", "repeat"];
22749
22816
  let DefaultCanvasImageRender = class extends BaseRender {
22750
- constructor(imageRenderContribitions) {
22751
- super(), this.imageRenderContribitions = imageRenderContribitions, this.numberType = IMAGE_NUMBER_TYPE, this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution], this.init(imageRenderContribitions);
22817
+ constructor(graphicRenderContributions) {
22818
+ super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = IMAGE_NUMBER_TYPE, this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution], this.init(graphicRenderContributions);
22752
22819
  }
22753
22820
  drawShape(image, context, x, y, drawContext, params, fillCb, strokeCb) {
22754
22821
  const imageAttribute = getTheme$1(image).image,
@@ -23075,6 +23142,9 @@
23075
23142
  afterDraw(params) {
23076
23143
  this.drawContribution.afterDraw && this.drawContribution.afterDraw(this, Object.assign({}, this.drawParams));
23077
23144
  }
23145
+ reInit() {
23146
+ this.drawContribution.reInit();
23147
+ }
23078
23148
  render(groups, params) {
23079
23149
  this.renderTreeRoots = groups, this.drawParams = params;
23080
23150
  const updateBounds = params.updateBounds;
@@ -23476,6 +23546,11 @@
23476
23546
  constructor(contributions, drawItemInterceptorContributions) {
23477
23547
  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();
23478
23548
  }
23549
+ reInit() {
23550
+ this.init(), this.contributions.forEach(item => {
23551
+ item.reInit();
23552
+ });
23553
+ }
23479
23554
  init() {
23480
23555
  this.contributions.forEach(item => {
23481
23556
  if (item.style) {
@@ -24595,6 +24670,9 @@
24595
24670
  getPickerService() {
24596
24671
  return this.pickerService || (this.pickerService = container.get(PickerService)), this.pickerService;
24597
24672
  }
24673
+ reInit() {
24674
+ this.renderService.reInit(), this.pickerService.reInit();
24675
+ }
24598
24676
  }
24599
24677
 
24600
24678
  function createStage(params) {
@@ -25192,6 +25270,9 @@
25192
25270
  constructor(pickItemInterceptorContributions, pickServiceInterceptorContributions) {
25193
25271
  this.pickItemInterceptorContributions = pickItemInterceptorContributions, this.pickServiceInterceptorContributions = pickServiceInterceptorContributions, this.type = "default", this.global = application.global;
25194
25272
  }
25273
+ reInit() {
25274
+ this._init();
25275
+ }
25195
25276
  _init() {
25196
25277
  this.InterceptorContributions = this.pickItemInterceptorContributions.getContributions().sort((a, b) => a.order - b.order), this.pickerServiceInterceptorContributions = this.pickServiceInterceptorContributions.getContributions().sort((a, b) => a.order - b.order);
25197
25278
  }
@@ -25360,6 +25441,7 @@
25360
25441
  constructor() {
25361
25442
  this.numberType = GLYPH_NUMBER_TYPE;
25362
25443
  }
25444
+ reInit() {}
25363
25445
  drawShape(glyph, context, x, y, drawContext, params, fillCb, strokeCb) {
25364
25446
  drawContext.drawContribution && glyph.getSubGraphic().forEach(item => {
25365
25447
  const renderer = drawContext.drawContribution.getRenderContribution(item);
@@ -26584,6 +26666,18 @@
26584
26666
  const changeEvent = new CustomEvent(eventName, details);
26585
26667
  changeEvent.manager = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventSystem.manager, this.dispatchEvent(changeEvent);
26586
26668
  }
26669
+ eventPosToStagePos(e) {
26670
+ var _a, _b;
26671
+ const result = {
26672
+ x: 0,
26673
+ y: 0
26674
+ },
26675
+ stagePoints = null !== (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventPointTransform(e)) && void 0 !== _b ? _b : {
26676
+ x: 0,
26677
+ y: 0
26678
+ };
26679
+ return this.globalTransMatrix.transformPoint(stagePoints, result), result;
26680
+ }
26587
26681
  }
26588
26682
 
26589
26683
  const MathPickerContribution = Symbol.for("MathPickerContribution");
@@ -35348,7 +35442,7 @@
35348
35442
  const MIN_TICK_GAP = 12;
35349
35443
  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;
35350
35444
  const getCartesianLabelBounds = (scale, domain, op) => {
35351
- var _a;
35445
+ var _a, _b, _c;
35352
35446
  const {
35353
35447
  labelStyle: labelStyle,
35354
35448
  axisOrientType: axisOrientType,
@@ -35364,27 +35458,32 @@
35364
35458
  scaleY = 0;
35365
35459
  isHorizontal || (isVertical ? (scaleX = 0, scaleY = 1) : startAngle && (scaleX = Math.cos(startAngle), scaleY = -Math.sin(startAngle)));
35366
35460
  const textMeasure = initTextMeasure$1(labelStyle),
35367
- range = scale.range(),
35368
- labelBoundsList = domain.map((v, i) => {
35369
- var _a, _b;
35370
- const str = labelFormatter ? labelFormatter(v) : `${v}`,
35371
- {
35372
- width: width,
35373
- height: height
35374
- } = textMeasure.quickMeasure(str),
35375
- textWidth = Math.max(width, 12),
35376
- textHeight = Math.max(height, 12),
35377
- pos = scale.scale(v),
35378
- baseTextX = scaleX * pos,
35379
- baseTextY = scaleY * pos;
35380
- let align,
35381
- baseline,
35382
- textX = baseTextX,
35383
- textY = baseTextY;
35384
- 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);
35385
- const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);
35386
- return labelAngle && bounds.rotate(labelAngle, baseTextX, baseTextY), bounds;
35387
- });
35461
+ range = scale.range();
35462
+ let labelBoundsList = [];
35463
+ for (let i = 0; i < domain.length; i++) {
35464
+ const v = domain[i],
35465
+ str = labelFormatter ? labelFormatter(v) : `${v}`;
35466
+ if (isPlainObject$1(str)) {
35467
+ labelBoundsList = void 0;
35468
+ break;
35469
+ }
35470
+ const {
35471
+ width: width,
35472
+ height: height
35473
+ } = textMeasure.quickMeasure(str),
35474
+ textWidth = Math.max(width, 12),
35475
+ textHeight = Math.max(height, 12),
35476
+ pos = scale.scale(v),
35477
+ baseTextX = scaleX * pos,
35478
+ baseTextY = scaleY * pos;
35479
+ let align,
35480
+ baseline,
35481
+ textX = baseTextX,
35482
+ textY = baseTextY;
35483
+ 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);
35484
+ const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);
35485
+ labelAngle && bounds.rotate(labelAngle, baseTextX, baseTextY), labelBoundsList.push(bounds);
35486
+ }
35388
35487
  return labelBoundsList;
35389
35488
  };
35390
35489
  const isAxisHorizontal = axisOrientType => ["bottom", "top", "z"].includes(axisOrientType);
@@ -36433,7 +36532,7 @@
36433
36532
  }
36434
36533
  }
36435
36534
  const continuousTicks = (scale, op) => {
36436
- var _a, _b;
36535
+ var _a, _b, _c, _d;
36437
36536
  if (!isContinuous(scale.type)) return convertDomainToTickData(scale.domain());
36438
36537
  const range = scale.range(),
36439
36538
  rangeSize = Math.abs(range[range.length - 1] - range[0]);
@@ -36485,23 +36584,25 @@
36485
36584
  step = Math.floor(scaleTicks.length * MIN_FONT_SIZE / rangeSize);
36486
36585
  scaleTicks.forEach((tick, index) => {
36487
36586
  index % step != 0 && index !== scaleTicks.length - 1 || samplingScaleTicks.push(tick);
36488
- }), items = getCartesianLabelBounds(scale, samplingScaleTicks, op).map((bounds, i) => ({
36587
+ }), items = null === (_c = getCartesianLabelBounds(scale, samplingScaleTicks, op)) || void 0 === _c ? void 0 : _c.map((bounds, i) => ({
36489
36588
  AABBBounds: bounds,
36490
36589
  value: samplingScaleTicks[i]
36491
36590
  }));
36492
- } else items = getCartesianLabelBounds(scale, scaleTicks, op).map((bounds, i) => ({
36591
+ } else items = null === (_d = getCartesianLabelBounds(scale, scaleTicks, op)) || void 0 === _d ? void 0 : _d.map((bounds, i) => ({
36493
36592
  AABBBounds: bounds,
36494
36593
  value: scaleTicks[i]
36495
36594
  }));
36496
- const firstSourceItem = items[0],
36497
- lastSourceItem = last(items),
36498
- samplingMethod = breakData && breakData() ? methods$1.greedy : methods$1.parity;
36499
- for (; items.length >= 3 && hasOverlap$1(items, labelGap);) items = samplingMethod(items, labelGap);
36500
- const checkFirst = op.labelFirstVisible;
36501
- let checkLast = op.labelLastVisible;
36502
- 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);
36503
- const ticks = items.map(item => item.value);
36504
- ticks.length < 3 && labelFlush && (ticks.length > 1 && ticks.pop(), last(ticks) !== last(scaleTicks) && ticks.push(last(scaleTicks))), scaleTicks = ticks;
36595
+ if (items) {
36596
+ const firstSourceItem = items[0],
36597
+ lastSourceItem = last(items),
36598
+ samplingMethod = breakData && breakData() ? methods$1.greedy : methods$1.parity;
36599
+ for (; items.length >= 3 && hasOverlap$1(items, labelGap);) items = samplingMethod(items, labelGap);
36600
+ const checkFirst = op.labelFirstVisible;
36601
+ let checkLast = op.labelLastVisible;
36602
+ 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);
36603
+ const ticks = items.map(item => item.value);
36604
+ ticks.length < 3 && labelFlush && (ticks.length > 1 && ticks.pop(), last(ticks) !== last(scaleTicks) && ticks.push(last(scaleTicks))), scaleTicks = ticks;
36605
+ }
36505
36606
  }
36506
36607
  return convertDomainToTickData(scaleTicks);
36507
36608
  };
@@ -36515,7 +36616,10 @@
36515
36616
  }
36516
36617
  };
36517
36618
 
36518
- 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()]),
36619
+ const getOneDimensionalLabelBounds = (scale, domain, op, isHorizontal) => {
36620
+ const labelBoundsList = getCartesianLabelBounds(scale, domain, op);
36621
+ return labelBoundsList && labelBoundsList.map(bounds => isHorizontal ? [bounds.x1, bounds.x2, bounds.width()] : [bounds.y1, bounds.y2, bounds.height()]);
36622
+ },
36519
36623
  boundsOverlap = function (prevBounds, nextBounds) {
36520
36624
  let gap = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
36521
36625
  return Math.max(prevBounds[0], nextBounds[0]) - gap / 2 <= Math.min(prevBounds[1], nextBounds[1]) + gap / 2;
@@ -36549,23 +36653,27 @@
36549
36653
  rangeStart = minInArray(range),
36550
36654
  rangeEnd = maxInArray(range);
36551
36655
  if (domain.length <= rangeSize / fontSize) {
36552
- const incrementUnit = (rangeEnd - rangeStart) / domain.length,
36553
- labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal),
36554
- minBoundsLength = Math.min(...labelBoundsList.map(bounds => bounds[2])),
36555
- stepResult = getStep$1(domain, labelBoundsList, labelGap, op.labelLastVisible, Math.floor(minBoundsLength / incrementUnit), !1);
36556
- scaleTicks = scale.stepTicks(stepResult.step), op.labelLastVisible && (stepResult.delCount && (scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount)), scaleTicks.push(domain[domain.length - 1]));
36656
+ const labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal);
36657
+ if (labelBoundsList) {
36658
+ const minBoundsLength = Math.min(...labelBoundsList.map(bounds => bounds[2])),
36659
+ incrementUnit = (rangeEnd - rangeStart) / domain.length,
36660
+ stepResult = getStep$1(domain, labelBoundsList, labelGap, op.labelLastVisible, Math.floor(minBoundsLength / incrementUnit), !1);
36661
+ scaleTicks = scale.stepTicks(stepResult.step), op.labelLastVisible && (stepResult.delCount && (scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount)), scaleTicks.push(domain[domain.length - 1]));
36662
+ }
36557
36663
  } else {
36558
36664
  const tempDomain = [domain[0], domain[Math.floor(domain.length / 2)], domain[domain.length - 1]],
36559
36665
  tempList = getOneDimensionalLabelBounds(scale, tempDomain, op, isHorizontal);
36560
- let maxBounds = null;
36561
- tempList.forEach(current => {
36562
- maxBounds ? maxBounds[2] < current[2] && (maxBounds = current) : maxBounds = current;
36563
- });
36564
- const step = rangeEnd - rangeStart - labelGap > 0 ? Math.ceil(domain.length * (labelGap + maxBounds[2]) / (rangeEnd - rangeStart - labelGap)) : domain.length - 1;
36565
- 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]));
36666
+ if (tempList) {
36667
+ let maxBounds = null;
36668
+ tempList.forEach(current => {
36669
+ maxBounds ? maxBounds[2] < current[2] && (maxBounds = current) : maxBounds = current;
36670
+ });
36671
+ const step = rangeEnd - rangeStart - labelGap > 0 ? Math.ceil(domain.length * (labelGap + maxBounds[2]) / (rangeEnd - rangeStart - labelGap)) : domain.length - 1;
36672
+ 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]));
36673
+ }
36566
36674
  }
36567
- } else scaleTicks = scale.domain();
36568
- return convertDomainToTickData(scaleTicks);
36675
+ }
36676
+ return isNil$1(scaleTicks) && (scaleTicks = scale.domain()), convertDomainToTickData(scaleTicks);
36569
36677
  };
36570
36678
  const getStep$1 = (domain, labelBoundsList, labelGap, labelLastVisible, defaultStep, areAllBoundsSame) => {
36571
36679
  let resultDelCount = 0,
@@ -39531,13 +39639,6 @@
39531
39639
  end: end
39532
39640
  }));
39533
39641
  }
39534
- eventPosToStagePos(e) {
39535
- var _a, _b;
39536
- return null !== (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventPointTransform(e)) && void 0 !== _b ? _b : {
39537
- x: 0,
39538
- y: 0
39539
- };
39540
- }
39541
39642
  _clearDragEvents() {
39542
39643
  const evtTarget = "browser" === vglobal.env ? vglobal : this.stage,
39543
39644
  triggers = getEndTriggersOfDrag();
@@ -39696,7 +39797,13 @@
39696
39797
  } = this.attribute.startTextStyle;
39697
39798
  if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {
39698
39799
  const direction = "bottom" === this.attribute.orient || "right" === this.attribute.orient ? -1 : 1;
39699
- 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));
39800
+ if (this._isHorizontal) {
39801
+ const boundsYDiff = Math.abs(endTextBounds.y1 - endTextBounds.y2);
39802
+ this._startText.setAttribute("dy", startTextDy + direction * (Number.isFinite(boundsYDiff) ? boundsYDiff : 0));
39803
+ } else {
39804
+ const boundsXDiff = Math.abs(endTextBounds.x1 - endTextBounds.x2);
39805
+ this._startText.setAttribute("dx", startTextDx + direction * (Number.isFinite(boundsXDiff) ? boundsXDiff : 0));
39806
+ }
39700
39807
  } else this._isHorizontal ? this._startText.setAttribute("dy", startTextDy) : this._startText.setAttribute("dx", startTextDx);
39701
39808
  }
39702
39809
  getLayoutAttrFromConfig() {
@@ -44891,8 +44998,7 @@
44891
44998
  loadBrushComponent();
44892
44999
  let Brush$1 = class Brush extends AbstractComponent {
44893
45000
  constructor(attributes, options) {
44894
- 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 => {
44895
- if (this._outOfInteractiveRange(e)) return void (this._isEmptyMask() || (this._clearMask(), this._dispatchBrushEvent(IOperateType.brushClear, e)));
45001
+ 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 => {
44896
45002
  const {
44897
45003
  updateTrigger = DEFAULT_BRUSH_ATTRIBUTES.updateTrigger,
44898
45004
  endTrigger = DEFAULT_BRUSH_ATTRIBUTES.endTrigger,
@@ -44920,7 +45026,7 @@
44920
45026
  brushMode: brushMode
44921
45027
  } = this.attribute,
44922
45028
  pos = this.eventPosToStagePos(e);
44923
- 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);
45029
+ this._cacheDrawPoints.push(pos), "single" === brushMode && this._clearMask(), this._addBrushMask(), this._dispatchBrushEvent(IOperateType.drawStart, e), this._activeBrushState = !1;
44924
45030
  }
44925
45031
  _initMove(e) {
44926
45032
  var _a, _b;
@@ -44950,7 +45056,8 @@
44950
45056
  var _a;
44951
45057
  const pos = this.eventPosToStagePos(e),
44952
45058
  {
44953
- brushType: brushType
45059
+ brushType: brushType,
45060
+ sizeThreshold = DEFAULT_SIZE_THRESHOLD
44954
45061
  } = this.attribute,
44955
45062
  cacheLength = this._cacheDrawPoints.length;
44956
45063
  if (cacheLength > 0) {
@@ -44959,7 +45066,16 @@
44959
45066
  }
44960
45067
  "polygon" === brushType || cacheLength <= 1 ? this._cacheDrawPoints.push(pos) : this._cacheDrawPoints[cacheLength - 1] = pos;
44961
45068
  const maskPoints = this._computeMaskPoints();
44962
- this._operatingMask.setAttribute("points", maskPoints), this._dispatchBrushEvent(IOperateType.drawing, e);
45069
+ this._operatingMask.setAttribute("points", maskPoints);
45070
+ const {
45071
+ x: x1,
45072
+ y: y1
45073
+ } = this._startPos,
45074
+ {
45075
+ x: x2,
45076
+ y: y2
45077
+ } = this.eventPosToStagePos(e);
45078
+ (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)));
44963
45079
  }
44964
45080
  _moving(e) {
44965
45081
  const startPos = this._cacheMovePoint,
@@ -45099,9 +45215,6 @@
45099
45215
  pos = this.eventPosToStagePos(e);
45100
45216
  return pos.x > maxX || pos.x < minX || pos.y > maxY || pos.y < minY;
45101
45217
  }
45102
- eventPosToStagePos(e) {
45103
- return this.stage.eventPointTransform(e);
45104
- }
45105
45218
  _dispatchBrushEvent(operateType, e) {
45106
45219
  this._dispatchEvent(operateType, {
45107
45220
  operateMask: this._operatingMask,
@@ -45110,7 +45223,7 @@
45110
45223
  });
45111
45224
  }
45112
45225
  _clearMask() {
45113
- this._brushMaskAABBBoundsDict = {}, this._container.incrementalClearChild(), this._operatingMask = null;
45226
+ this._brushMaskAABBBoundsDict = {}, this._container.removeAllChild(), this._operatingMask = null;
45114
45227
  }
45115
45228
  _isEmptyMask() {
45116
45229
  return isEmpty(this._brushMaskAABBBoundsDict) || Object.keys(this._brushMaskAABBBoundsDict).every(key => this._brushMaskAABBBoundsDict[key].empty());
@@ -58711,7 +58824,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
58711
58824
  (_b = (_a = this._option) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, ...args);
58712
58825
  });
58713
58826
  }
58714
- const _e = this._option, { performanceHook, autoRefreshDpr, dpr, mode, gestureConfig, interactive, clickInterval, autoPreventDefault } = _e, restOption = __rest$e(_e, ["performanceHook", "autoRefreshDpr", "dpr", "mode", "gestureConfig", "interactive", "clickInterval", "autoPreventDefault"]);
58827
+ const _e = this._option, { performanceHook, autoRefreshDpr, dpr, mode, gestureConfig, interactive, clickInterval, autoPreventDefault, beforeRender } = _e, restOption = __rest$e(_e, ["performanceHook", "autoRefreshDpr", "dpr", "mode", "gestureConfig", "interactive", "clickInterval", "autoPreventDefault", "beforeRender"]);
58715
58828
  this._view = new View(Object.assign(Object.assign({ width: this._width, height: this._height, container: (_c = this._container.dom) !== null && _c !== void 0 ? _c : null, renderCanvas: (_d = this._container.canvas) !== null && _d !== void 0 ? _d : null, hooks: performanceHook }, restOption), { dpr, autoRefresh: isValid$1(autoRefreshDpr) ? autoRefreshDpr : !isValid$1(dpr), mode: toRenderMode(mode), autoFit: false, eventConfig: {
58716
58829
  gesture: isValid$1(gestureConfig) ? gestureConfig : isMobileLikeMode(mode),
58717
58830
  disable: interactive === false,
@@ -58720,7 +58833,11 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
58720
58833
  }, doLayout: () => {
58721
58834
  var _a;
58722
58835
  (_a = this._compileChart) === null || _a === void 0 ? void 0 : _a.onLayout(this._view);
58723
- }, logger: logger, logLevel: logger.level() }));
58836
+ }, logger: logger, logLevel: logger.level(), beforeRender: (stage) => {
58837
+ var _a;
58838
+ (_a = this._compileChart) === null || _a === void 0 ? void 0 : _a.onBeforeRender(this._view);
58839
+ beforeRender === null || beforeRender === void 0 ? void 0 : beforeRender(stage);
58840
+ } }));
58724
58841
  this._setCanvasStyle();
58725
58842
  this.getStage().hooks.afterRender.tap('chart-event', this.handleStageRender);
58726
58843
  if (interactive !== false) {
@@ -60012,6 +60129,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
60012
60129
  }
60013
60130
  onEvaluateEnd(ctx) {
60014
60131
  }
60132
+ onBeforeRender() {
60133
+ }
60015
60134
  onDataUpdate() {
60016
60135
  }
60017
60136
  beforeRelease() {
@@ -64123,7 +64242,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
64123
64242
  };
64124
64243
  registerVChartCore();
64125
64244
 
64126
- const version = "1.13.11";
64245
+ const version = "1.13.13-alpha.0";
64127
64246
 
64128
64247
  const addVChartProperty = (data, op) => {
64129
64248
  const context = op.beforeCall();
@@ -71050,6 +71169,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
71050
71169
  const elements = [...this._components, ...this._regions, ...this._series];
71051
71170
  elements.forEach(element => element.onEvaluateEnd(option));
71052
71171
  }
71172
+ onBeforeRender(view) {
71173
+ const elements = [...this._components, ...this._regions, ...this._series];
71174
+ elements.forEach(element => element.onBeforeRender());
71175
+ }
71053
71176
  getLayoutElements() {
71054
71177
  return this.getAllModels()
71055
71178
  .map(i => i.layout)
@@ -95031,6 +95154,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95031
95154
  }
95032
95155
  updateLayoutAttribute() {
95033
95156
  this._limitBounds = null;
95157
+ }
95158
+ onBeforeRender() {
95034
95159
  this._showDefaultCrosshair();
95035
95160
  }
95036
95161
  calculateTriggerPoint(params) {
@@ -95176,7 +95301,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95176
95301
  }
95177
95302
  }
95178
95303
  _parseField(field, fieldName) {
95179
- var _a, _b;
95304
+ var _a, _b, _c;
95180
95305
  const hair = {};
95181
95306
  const { line = {}, label = {}, visible } = field;
95182
95307
  hair.visible = visible;
@@ -95187,7 +95312,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95187
95312
  else {
95188
95313
  const style = line.style || {};
95189
95314
  const { stroke, fill, lineWidth } = style;
95190
- const _c = style, { strokeOpacity, fillOpacity, opacity } = _c, restStyle = __rest$e(_c, ["strokeOpacity", "fillOpacity", "opacity"]);
95315
+ const _d = style, { strokeOpacity, fillOpacity, opacity } = _d, restStyle = __rest$e(_d, ["strokeOpacity", "fillOpacity", "opacity"]);
95191
95316
  const isLineType = hair.type === 'line';
95192
95317
  let finalOpacity = isLineType ? strokeOpacity : fillOpacity;
95193
95318
  if (isNumber$1(opacity)) {
@@ -95215,8 +95340,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95215
95340
  }
95216
95341
  if (!!label.visible) {
95217
95342
  const labelBackground = label.labelBackground || {};
95343
+ const syncAxisLabelAngle = (_c = label.syncAxisLabelAngle) !== null && _c !== void 0 ? _c : false;
95218
95344
  const labelStyle = label.style || {};
95219
- const _d = labelBackground.style || {}, { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, outerBorder } = _d, rectStyle = __rest$e(_d, ["fill", "stroke", "outerBorder"]);
95345
+ const _e = labelBackground.style || {}, { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, outerBorder } = _e, rectStyle = __rest$e(_e, ["fill", "stroke", "outerBorder"]);
95220
95346
  hair.label = {
95221
95347
  visible: true,
95222
95348
  formatMethod: label.formatMethod,
@@ -95224,6 +95350,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95224
95350
  minWidth: labelBackground.minWidth,
95225
95351
  maxWidth: labelBackground.maxWidth,
95226
95352
  padding: labelBackground.padding,
95353
+ syncAxisLabelAngle,
95227
95354
  textStyle: Object.assign(Object.assign({ fontSize: 14, pickable: false }, labelStyle), { fill: labelStyle.fill || '#fff', stroke: get$1(labelStyle, 'stroke') }),
95228
95355
  panel: (isBoolean$1(labelBackground.visible) ? labelBackground.visible : !!labelBackground)
95229
95356
  ? Object.assign({ visible: true, pickable: false, fill: rectFill, stroke: rectStroke, outerBorder: Object.assign({ stroke: rectFill, distance: 0, lineWidth: 3 }, outerBorder) }, rectStyle) : { visible: false },
@@ -95316,9 +95443,11 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95316
95443
  layoutStartPoint = { x: 0, y: 0 };
95317
95444
  }
95318
95445
  Object.keys(stateByField).forEach(field => {
95446
+ var _a, _b, _c, _d, _e;
95319
95447
  const { currentValue, cacheInfo, labelsComp, attributes, coordKey } = stateByField[field];
95320
95448
  let axis = null;
95321
95449
  let coord = 0;
95450
+ let axisLabel = null;
95322
95451
  if (currentValue.size) {
95323
95452
  const item = Array.from(currentValue.values())[0];
95324
95453
  coord =
@@ -95326,6 +95455,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95326
95455
  item.axis.getLayoutStartPoint()[coordKey] -
95327
95456
  layoutStartPoint[coordKey];
95328
95457
  axis = item.axis;
95458
+ axisLabel = (_e = (_d = (_c = (_b = (_a = axis
95459
+ .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];
95329
95460
  }
95330
95461
  const isVisible = !!currentValue.size && Number.isFinite(coord) && !Number.isNaN(coord);
95331
95462
  const useCache = enableRemain && !isVisible && isValid$1(cacheInfo);
@@ -95343,7 +95474,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95343
95474
  }, {})
95344
95475
  : null,
95345
95476
  visible: isVisible,
95346
- axis
95477
+ axis,
95478
+ axisLabel: axisLabel
95347
95479
  };
95348
95480
  if (newCacheInfo) {
95349
95481
  newCacheInfo._isCache = useCache;
@@ -95352,7 +95484,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95352
95484
  let offsetSize = 0;
95353
95485
  if (attributes) {
95354
95486
  currentValue.forEach(({ axis, datum: value = '' }) => {
95355
- var _a;
95487
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
95356
95488
  let niceLabelFormatter = null;
95357
95489
  const scale = axis.getScale();
95358
95490
  if (isDiscrete(scale.type)) {
@@ -95381,36 +95513,37 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95381
95513
  if (newCacheInfo && ((_a = attributes.label) === null || _a === void 0 ? void 0 : _a.visible) && !useCache) {
95382
95514
  const labelOffset = getAxisLabelOffset(axis.getSpec());
95383
95515
  const axisOrient = axis.getOrient();
95516
+ const syncAxisLabelAngle = (_b = attributes.label) === null || _b === void 0 ? void 0 : _b.syncAxisLabelAngle;
95384
95517
  if (newCacheInfo.labels[axisOrient]) {
95385
95518
  newCacheInfo.labels[axisOrient].visible = true;
95386
95519
  newCacheInfo.labels[axisOrient].text = value;
95387
95520
  if (axisOrient === 'left') {
95388
95521
  newCacheInfo.labels[axisOrient].dx = -labelOffset;
95389
95522
  newCacheInfo.labelsTextStyle[axisOrient] = {
95390
- textAlign: 'right',
95391
- textBaseline: 'middle'
95523
+ textAlign: syncAxisLabelAngle && axisLabel ? ((_c = axisLabel.attribute.textAlign) !== null && _c !== void 0 ? _c : 'right') : 'right',
95524
+ textBaseline: syncAxisLabelAngle && axisLabel ? ((_d = axisLabel.attribute.textBaseline) !== null && _d !== void 0 ? _d : 'middle') : 'middle'
95392
95525
  };
95393
95526
  }
95394
95527
  else if (axisOrient === 'right') {
95395
95528
  newCacheInfo.labels[axisOrient].dx = labelOffset;
95396
95529
  newCacheInfo.labelsTextStyle[axisOrient] = {
95397
- textAlign: 'left',
95398
- textBaseline: 'middle'
95530
+ textAlign: syncAxisLabelAngle && axisLabel ? ((_e = axisLabel.attribute.textAlign) !== null && _e !== void 0 ? _e : 'left') : 'left',
95531
+ textBaseline: syncAxisLabelAngle && axisLabel ? ((_f = axisLabel.attribute.textBaseline) !== null && _f !== void 0 ? _f : 'middle') : 'middle'
95399
95532
  };
95400
95533
  }
95401
95534
  else if (axisOrient === 'top') {
95402
95535
  newCacheInfo.labels[axisOrient].y = 0;
95403
95536
  newCacheInfo.labels[axisOrient].dy = -labelOffset;
95404
95537
  newCacheInfo.labelsTextStyle[axisOrient] = {
95405
- textAlign: 'center',
95406
- textBaseline: 'bottom'
95538
+ textAlign: syncAxisLabelAngle && axisLabel ? ((_g = axisLabel.attribute.textAlign) !== null && _g !== void 0 ? _g : 'center') : 'center',
95539
+ textBaseline: syncAxisLabelAngle && axisLabel ? ((_h = axisLabel.attribute.textBaseline) !== null && _h !== void 0 ? _h : 'bottom') : 'bottom'
95407
95540
  };
95408
95541
  }
95409
95542
  else if (axisOrient === 'bottom') {
95410
95543
  newCacheInfo.labels[axisOrient].dy = labelOffset;
95411
95544
  newCacheInfo.labelsTextStyle[axisOrient] = {
95412
- textAlign: 'center',
95413
- textBaseline: 'top'
95545
+ textAlign: syncAxisLabelAngle && axisLabel ? ((_j = axisLabel.attribute.textAlign) !== null && _j !== void 0 ? _j : 'center') : 'center',
95546
+ textBaseline: syncAxisLabelAngle && axisLabel ? ((_k = axisLabel.attribute.textBaseline) !== null && _k !== void 0 ? _k : 'top') : 'top'
95414
95547
  };
95415
95548
  }
95416
95549
  newCacheInfo.labels[axisOrient].defaultFormatter = niceLabelFormatter;
@@ -95654,9 +95787,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
95654
95787
  const positionAttribute = layoutCrosshair$1(this._stateByField[field]);
95655
95788
  this._updateCrosshairByField(field, positionAttribute);
95656
95789
  Object.keys(labels).forEach(labelKey => {
95657
- var _a;
95790
+ var _a, _b, _c;
95658
95791
  if (labels[labelKey].visible) {
95659
- 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 });
95792
+ 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 });
95660
95793
  this._updateCrosshairLabel(labelsComp[labelKey], updateAttrs, label => {
95661
95794
  label.name = `crosshair-${field.replace('Field', '')}-${labelKey}-label`;
95662
95795
  labelsComp[labelKey] = label;
@@ -97662,7 +97795,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
97662
97795
  x = convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x;
97663
97796
  }
97664
97797
  else {
97665
- x = relativeSeries.getXAxisHelper().dataToPosition([datum.x]) + regionStartLayoutStartPoint.x;
97798
+ x =
97799
+ convertDatumToValue(relativeSeries.getXAxisHelper(), [datum.x]) +
97800
+ regionStartLayoutStartPoint.x;
97666
97801
  }
97667
97802
  return x;
97668
97803
  }
@@ -97677,7 +97812,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
97677
97812
  y = convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y;
97678
97813
  }
97679
97814
  else {
97680
- y = relativeSeries.getYAxisHelper().dataToPosition([datum.y]) + regionStartLayoutStartPoint.y;
97815
+ y =
97816
+ convertDatumToValue(relativeSeries.getYAxisHelper(), [datum.y]) +
97817
+ regionStartLayoutStartPoint.y;
97681
97818
  }
97682
97819
  return y;
97683
97820
  }
@@ -97687,7 +97824,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
97687
97824
  isNumber$1(datum.angle) &&
97688
97825
  isNeedExtendDomain(angleDomain, datum.angle, autoRange) &&
97689
97826
  ((_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));
97690
- return relativeSeries.angleAxisHelper.dataToPosition([datum.angle]);
97827
+ return convertDatumToValue(relativeSeries.angleAxisHelper, [datum.angle]);
97691
97828
  }
97692
97829
  function getRadiusValue(datum, radiusDomain, autoRange, refSeries) {
97693
97830
  var _a, _b;
@@ -97695,11 +97832,18 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
97695
97832
  isNumber$1(datum.radius) &&
97696
97833
  isNeedExtendDomain(radiusDomain, datum.radius, autoRange) &&
97697
97834
  ((_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));
97698
- return relativeSeries.radiusAxisHelper.dataToPosition([datum.radius]);
97835
+ return convertDatumToValue(relativeSeries.radiusAxisHelper, [datum.radius]);
97699
97836
  }
97700
97837
  function convertPercentToValue(percent, relativeLength) {
97701
97838
  return (Number(percent.substring(0, percent.length - 1)) * relativeLength) / 100;
97702
97839
  }
97840
+ function convertDatumToValue(axisHelper, datum) {
97841
+ const scale = axisHelper.getScale(0);
97842
+ if (isContinuous(scale.type) && scale.domain()[0] === scale.domain()[1] && datum[0] !== scale.domain()[0]) {
97843
+ return NaN;
97844
+ }
97845
+ return axisHelper.dataToPosition(datum);
97846
+ }
97703
97847
  function isAggrSpec(spec) {
97704
97848
  return AGGR_TYPE.includes(spec);
97705
97849
  }
@@ -97864,8 +98008,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
97864
98008
  isNeedExtendDomain(yDomain, yValue[0], autoRange) &&
97865
98009
  ((_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]));
97866
98010
  points.push({
97867
- x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x + offsetX,
97868
- y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y + offsetY
98011
+ x: convertDatumToValue(refRelativeSeries.getXAxisHelper(), xValue) + regionStartLayoutStartPoint.x + offsetX,
98012
+ y: convertDatumToValue(refRelativeSeries.getYAxisHelper(), yValue) + regionStartLayoutStartPoint.y + offsetY
97869
98013
  });
97870
98014
  });
97871
98015
  return points;
@@ -97889,8 +98033,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
97889
98033
  isNeedExtendDomain(radiusDomain, radiusValue[0], autoRange) &&
97890
98034
  ((_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]));
97891
98035
  points.push({
97892
- angle: refRelativeSeries.angleAxisHelper.dataToPosition(angleValue),
97893
- radius: refRelativeSeries.radiusAxisHelper.dataToPosition(radiusValue)
98036
+ angle: convertDatumToValue(refRelativeSeries.angleAxisHelper, angleValue),
98037
+ radius: convertDatumToValue(refRelativeSeries.radiusAxisHelper, radiusValue)
97894
98038
  });
97895
98039
  });
97896
98040
  return points;
@@ -100644,7 +100788,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
100644
100788
  this._linkedInBrushElementsMap = {};
100645
100789
  this._linkedOutOfBrushElementsMap = {};
100646
100790
  this._cacheInteractiveRangeAttrs = [];
100647
- this._needDisablePickable = false;
100648
100791
  this._releatedAxes = [];
100649
100792
  this._regionAxisMap = {};
100650
100793
  this._axisDataZoomMap = {};
@@ -100800,34 +100943,36 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
100800
100943
  this._emitEvent(ChartEvent.brushActive, region);
100801
100944
  });
100802
100945
  brush.addEventListener(IOperateType.drawStart, (e) => {
100946
+ this._setRegionMarkPickable(region, true);
100803
100947
  this._emitEvent(ChartEvent.brushStart, region);
100804
100948
  });
100805
100949
  brush.addEventListener(IOperateType.moveStart, (e) => {
100950
+ this._setRegionMarkPickable(region, true);
100806
100951
  this._emitEvent(ChartEvent.brushStart, region);
100807
100952
  });
100808
100953
  brush.addEventListener(IOperateType.drawing, (e) => {
100809
- this._needDisablePickable = true;
100954
+ this._setRegionMarkPickable(region, false);
100810
100955
  this._handleBrushChange(region, e);
100811
100956
  this._emitEvent(ChartEvent.brushChange, region);
100812
100957
  });
100813
100958
  brush.addEventListener(IOperateType.moving, (e) => {
100959
+ this._setRegionMarkPickable(region, false);
100814
100960
  this._handleBrushChange(region, e);
100815
100961
  this._emitEvent(ChartEvent.brushChange, region);
100816
100962
  });
100817
100963
  brush.addEventListener(IOperateType.brushClear, (e) => {
100964
+ this._setRegionMarkPickable(region, true);
100818
100965
  this._initMarkBrushState(componentIndex, '');
100819
- this._needDisablePickable = false;
100820
100966
  this._emitEvent(ChartEvent.brushClear, region);
100821
100967
  });
100822
100968
  brush.addEventListener(IOperateType.drawEnd, (e) => {
100823
100969
  var _a;
100824
- this._needDisablePickable = false;
100970
+ this._setRegionMarkPickable(region, true);
100825
100971
  const { operateMask } = e.detail;
100826
100972
  if ((_a = this._spec) === null || _a === void 0 ? void 0 : _a.onBrushEnd) {
100827
100973
  if (this._spec.onBrushEnd(e) === true) {
100828
100974
  this.clearGraphic();
100829
100975
  this._initMarkBrushState(componentIndex, '');
100830
- this._needDisablePickable = false;
100831
100976
  this._emitEvent(ChartEvent.brushClear, region);
100832
100977
  }
100833
100978
  else {
@@ -100844,6 +100989,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
100844
100989
  }
100845
100990
  });
100846
100991
  brush.addEventListener(IOperateType.moveEnd, (e) => {
100992
+ this._setRegionMarkPickable(region, true);
100847
100993
  const { operateMask } = e.detail;
100848
100994
  const inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
100849
100995
  if (!this._spec.zoomWhenEmpty && inBrushData.length > 0) {
@@ -100971,7 +101117,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
100971
101117
  this._outOfBrushElementsMap[elementKey] = el;
100972
101118
  delete this._inBrushElementsMap[operateMask.name][elementKey];
100973
101119
  }
100974
- graphicItem.setAttribute('pickable', !this._needDisablePickable);
100975
101120
  });
100976
101121
  });
100977
101122
  }
@@ -101030,7 +101175,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
101030
101175
  el.addState(OUT_BRUSH_STATE);
101031
101176
  this._linkedOutOfBrushElementsMap[elementKey] = el;
101032
101177
  }
101033
- graphicItem.setAttribute('pickable', !this._needDisablePickable);
101034
101178
  });
101035
101179
  });
101036
101180
  }
@@ -101112,6 +101256,12 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
101112
101256
  });
101113
101257
  });
101114
101258
  }
101259
+ _setRegionMarkPickable(region, pickable) {
101260
+ region
101261
+ .getGroupMark()
101262
+ .getProduct()
101263
+ .elements.forEach(el => el.getGraphicItem().setAttribute('childrenPickable', pickable));
101264
+ }
101115
101265
  _stateClamp(state) {
101116
101266
  return Math.min(Math.max(0, state), 1);
101117
101267
  }
@@ -101191,7 +101341,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
101191
101341
  const container = this.getContainer();
101192
101342
  this._brushComponents.forEach((brush, index) => {
101193
101343
  this._initMarkBrushState(index, '');
101194
- this._needDisablePickable = false;
101195
101344
  brush.removeAllChild();
101196
101345
  brush.releaseBrushEvents();
101197
101346
  if (container) {