@visactor/vchart 2.0.8 → 2.0.10-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 (152) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +944 -587
  3. package/build/index.js +944 -587
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/config.d.ts +1 -0
  7. package/cjs/animation/config.js +13 -1
  8. package/cjs/animation/config.js.map +1 -1
  9. package/cjs/compile/compiler.d.ts +5 -0
  10. package/cjs/compile/compiler.js +42 -4
  11. package/cjs/compile/compiler.js.map +1 -1
  12. package/cjs/compile/interface/compilable-item.d.ts +2 -0
  13. package/cjs/compile/interface/compilable-item.js.map +1 -1
  14. package/cjs/component/axis/base-axis.d.ts +1 -1
  15. package/cjs/component/axis/base-axis.js +3 -3
  16. package/cjs/component/axis/base-axis.js.map +1 -1
  17. package/cjs/component/axis/cartesian/axis.d.ts +1 -1
  18. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  19. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -1
  20. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  21. package/cjs/component/axis/interface/common.d.ts +1 -0
  22. package/cjs/component/axis/interface/common.js.map +1 -1
  23. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +2 -0
  24. package/cjs/component/axis/mixin/band-axis-mixin.js +10 -4
  25. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  26. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +5 -1
  27. package/cjs/component/axis/mixin/linear-axis-mixin.js +15 -1
  28. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  29. package/cjs/component/axis/polar/axis.d.ts +1 -1
  30. package/cjs/component/axis/polar/axis.js.map +1 -1
  31. package/cjs/component/axis/polar/band-axis.d.ts +1 -1
  32. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  33. package/cjs/component/brush/brush.js +6 -5
  34. package/cjs/component/brush/brush.js.map +1 -1
  35. package/cjs/component/custom-mark/custom-mark.js +2 -2
  36. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  37. package/cjs/component/data-zoom/data-filter-base-component.d.ts +31 -52
  38. package/cjs/component/data-zoom/data-filter-base-component.js +164 -240
  39. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  40. package/cjs/component/data-zoom/data-filter-event.d.ts +53 -0
  41. package/cjs/component/data-zoom/data-filter-event.js +112 -0
  42. package/cjs/component/data-zoom/data-filter-event.js.map +1 -0
  43. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +23 -12
  44. package/cjs/component/data-zoom/data-zoom/data-zoom.js +129 -84
  45. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  46. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +4 -3
  47. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +35 -36
  48. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  49. package/cjs/component/data-zoom/util.d.ts +14 -0
  50. package/cjs/component/data-zoom/util.js +81 -7
  51. package/cjs/component/data-zoom/util.js.map +1 -1
  52. package/cjs/component/marker/utils.js +1 -1
  53. package/cjs/component/marker/utils.js.map +1 -1
  54. package/cjs/component/tooltip/utils/show-tooltip.js +3 -3
  55. package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
  56. package/cjs/constant/event.d.ts +1 -0
  57. package/cjs/constant/event.js +8 -8
  58. package/cjs/constant/event.js.map +1 -1
  59. package/cjs/core/index.d.ts +1 -1
  60. package/cjs/core/index.js +1 -1
  61. package/cjs/core/index.js.map +1 -1
  62. package/cjs/mark/base/base-mark.d.ts +2 -1
  63. package/cjs/mark/base/base-mark.js +7 -3
  64. package/cjs/mark/base/base-mark.js.map +1 -1
  65. package/cjs/mark/interface/common.d.ts +1 -0
  66. package/cjs/mark/interface/common.js.map +1 -1
  67. package/cjs/plugin/other.js +2 -1
  68. package/cjs/plugin/other.js.map +1 -1
  69. package/cjs/series/bar/bar.js +1 -1
  70. package/cjs/series/bar/bar.js.map +1 -1
  71. package/cjs/series/base/base-series.d.ts +1 -0
  72. package/cjs/series/base/base-series.js +10 -5
  73. package/cjs/series/base/base-series.js.map +1 -1
  74. package/cjs/series/dot/dot.js +6 -2
  75. package/cjs/series/dot/dot.js.map +1 -1
  76. package/cjs/series/util/stack.js +1 -1
  77. package/cjs/series/util/stack.js.map +1 -1
  78. package/cjs/typings/spec/common.js.map +1 -1
  79. package/esm/animation/config.d.ts +1 -0
  80. package/esm/animation/config.js +8 -1
  81. package/esm/animation/config.js.map +1 -1
  82. package/esm/compile/compiler.d.ts +5 -0
  83. package/esm/compile/compiler.js +44 -4
  84. package/esm/compile/compiler.js.map +1 -1
  85. package/esm/compile/interface/compilable-item.d.ts +2 -0
  86. package/esm/compile/interface/compilable-item.js.map +1 -1
  87. package/esm/component/axis/base-axis.d.ts +1 -1
  88. package/esm/component/axis/base-axis.js +3 -3
  89. package/esm/component/axis/base-axis.js.map +1 -1
  90. package/esm/component/axis/cartesian/axis.d.ts +1 -1
  91. package/esm/component/axis/cartesian/axis.js.map +1 -1
  92. package/esm/component/axis/cartesian/band-axis.d.ts +1 -1
  93. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  94. package/esm/component/axis/interface/common.d.ts +1 -0
  95. package/esm/component/axis/interface/common.js.map +1 -1
  96. package/esm/component/axis/mixin/band-axis-mixin.d.ts +2 -0
  97. package/esm/component/axis/mixin/band-axis-mixin.js +10 -4
  98. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  99. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +5 -1
  100. package/esm/component/axis/mixin/linear-axis-mixin.js +15 -1
  101. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  102. package/esm/component/axis/polar/axis.d.ts +1 -1
  103. package/esm/component/axis/polar/axis.js.map +1 -1
  104. package/esm/component/axis/polar/band-axis.d.ts +1 -1
  105. package/esm/component/axis/polar/band-axis.js.map +1 -1
  106. package/esm/component/brush/brush.js +6 -4
  107. package/esm/component/brush/brush.js.map +1 -1
  108. package/esm/component/custom-mark/custom-mark.js +2 -2
  109. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  110. package/esm/component/data-zoom/data-filter-base-component.d.ts +31 -52
  111. package/esm/component/data-zoom/data-filter-base-component.js +155 -232
  112. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  113. package/esm/component/data-zoom/data-filter-event.d.ts +53 -0
  114. package/esm/component/data-zoom/data-filter-event.js +108 -0
  115. package/esm/component/data-zoom/data-filter-event.js.map +1 -0
  116. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +23 -12
  117. package/esm/component/data-zoom/data-zoom/data-zoom.js +125 -82
  118. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  119. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +4 -3
  120. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +36 -36
  121. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  122. package/esm/component/data-zoom/util.d.ts +14 -0
  123. package/esm/component/data-zoom/util.js +63 -7
  124. package/esm/component/data-zoom/util.js.map +1 -1
  125. package/esm/component/marker/utils.js +1 -1
  126. package/esm/component/marker/utils.js.map +1 -1
  127. package/esm/component/tooltip/utils/show-tooltip.js +3 -3
  128. package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
  129. package/esm/constant/event.d.ts +1 -0
  130. package/esm/constant/event.js +8 -8
  131. package/esm/constant/event.js.map +1 -1
  132. package/esm/core/index.d.ts +1 -1
  133. package/esm/core/index.js +1 -1
  134. package/esm/core/index.js.map +1 -1
  135. package/esm/mark/base/base-mark.d.ts +2 -1
  136. package/esm/mark/base/base-mark.js +7 -3
  137. package/esm/mark/base/base-mark.js.map +1 -1
  138. package/esm/mark/interface/common.d.ts +1 -0
  139. package/esm/mark/interface/common.js.map +1 -1
  140. package/esm/plugin/other.js +2 -2
  141. package/esm/plugin/other.js.map +1 -1
  142. package/esm/series/bar/bar.js +2 -2
  143. package/esm/series/bar/bar.js.map +1 -1
  144. package/esm/series/base/base-series.d.ts +1 -0
  145. package/esm/series/base/base-series.js +9 -5
  146. package/esm/series/base/base-series.js.map +1 -1
  147. package/esm/series/dot/dot.js +6 -2
  148. package/esm/series/dot/dot.js.map +1 -1
  149. package/esm/series/util/stack.js +2 -2
  150. package/esm/series/util/stack.js.map +1 -1
  151. package/esm/typings/spec/common.js.map +1 -1
  152. package/package.json +6 -6
@@ -4,47 +4,97 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerDataZoom = exports.DataZoom = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), vutils_extension_1 = require("@visactor/vutils-extension"), type_1 = require("../../interface/type"), data_filter_base_component_1 = require("../data-filter-base-component"), vrender_components_1 = require("@visactor/vrender-components"), style_1 = require("../../../util/style"), vscale_1 = require("@visactor/vscale"), layout_1 = require("../../../constant/layout"), event_1 = require("../../../constant/event"), factory_1 = require("../../../core/factory"), data_zoom_transformer_1 = require("./data-zoom-transformer"), util_1 = require("../../util"), data_zoom_1 = require("../../../theme/builtin/common/component/data-zoom");
7
+ const vutils_1 = require("@visactor/vutils"), vutils_extension_1 = require("@visactor/vutils-extension"), interface_1 = require("../../interface"), data_filter_base_component_1 = require("../data-filter-base-component"), vrender_components_1 = require("@visactor/vrender-components"), style_1 = require("../../../util/style"), vscale_1 = require("@visactor/vscale"), layout_1 = require("../../../constant/layout"), event_1 = require("../../../constant/event"), factory_1 = require("../../../core/factory"), data_zoom_transformer_1 = require("./data-zoom-transformer"), util_1 = require("../../util"), data_zoom_1 = require("../../../theme/builtin/common/component/data-zoom"), util_2 = require("../util");
8
8
 
9
9
  class DataZoom extends data_filter_base_component_1.DataFilterBaseComponent {
10
10
  constructor(spec, options) {
11
11
  var _a;
12
- super(spec, options), this.type = type_1.ComponentTypeEnum.dataZoom, this.name = type_1.ComponentTypeEnum.dataZoom,
12
+ super(spec, options), this.type = interface_1.ComponentTypeEnum.dataZoom, this.name = interface_1.ComponentTypeEnum.dataZoom,
13
13
  this.transformerConstructor = data_zoom_transformer_1.DataZoomSpecTransformer, this.specKey = "dataZoom",
14
14
  this.layoutZIndex = layout_1.LayoutZIndex.DataZoom, this.layoutLevel = layout_1.LayoutLevel.DataZoom,
15
15
  this.layoutType = "region-relative", this._isReverseCache = !1, this._dataToPositionX = datum => {
16
- const offsetLeft = "left" === this._orient ? this._middleHandlerSize : 0, offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0, xScale = this._isHorizontal ? this._stateScale : this._valueScale, xField = this._isHorizontal ? this._stateField : this._valueField;
16
+ const offsetLeft = this._isHorizontal ? 0 : this._middleHandlerSize, offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0, xScale = this._isHorizontal ? this._stateScale : this._valueScale, xField = this._isHorizontal ? this._stateField : this._valueField;
17
17
  return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;
18
18
  }, this._dataToPositionX2 = datum => {
19
- const offsetLeft = "left" === this._orient ? this._middleHandlerSize : 0, offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0, xScale = this._isHorizontal ? this._stateScale : this._valueScale, min = xScale.domain()[0];
19
+ const offsetLeft = this._isHorizontal ? 0 : this._middleHandlerSize, offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0, xScale = this._isHorizontal ? this._stateScale : this._valueScale, min = xScale.domain()[0];
20
20
  return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;
21
21
  }, this._dataToPositionY = datum => {
22
- const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0, offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2, yScale = this._isHorizontal ? this._valueScale : this._stateScale, yField = this._isHorizontal ? this._valueField : this._stateField;
22
+ const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0, offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2, yScale = this._isHorizontal ? this._valueScale : this._getPreviewStateScale(), yField = this._isHorizontal ? this._valueField : this._stateField;
23
23
  return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;
24
24
  }, this._dataToPositionY2 = datum => {
25
- const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0, offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2, yScale = this._isHorizontal ? this._valueScale : this._stateScale, min = yScale.domain()[0];
25
+ const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0, offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2, yScale = this._isHorizontal ? this._valueScale : this._getPreviewStateScale(), min = yScale.domain()[0];
26
26
  return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;
27
27
  }, this._valueField = "y", this._filterMode = null !== (_a = spec.filterMode) && void 0 !== _a ? _a : "filter";
28
28
  }
29
+ _handleChange(start, end, updateComponent, tag) {
30
+ if (super._handleChange(start, end, updateComponent), this._shouldChange) if (updateComponent && this._component) this._component.setStartAndEnd(start, end); else {
31
+ const axis = this._relatedAxisComponent, startValue = (0, util_2.statePointToData)(start, this._stateScale, (0,
32
+ util_2.isReverse)(axis, this._isHorizontal)), endValue = (0, util_2.statePointToData)(end, this._stateScale, (0,
33
+ util_2.isReverse)(axis, this._isHorizontal));
34
+ if (!(0, vutils_1.isValid)(startValue) || !(0, vutils_1.isValid)(endValue)) return;
35
+ this._start = start, this._end = end;
36
+ ((0, vutils_1.isFunction)(this._spec.updateDataAfterChange) ? this._spec.updateDataAfterChange(start, end, startValue, endValue) : this._handleStateChange(startValue, endValue, tag)) && this.event.emit(event_1.ChartEvent.dataZoomChange, {
37
+ model: this,
38
+ value: {
39
+ filterData: "axis" !== this._filterMode,
40
+ start: start,
41
+ end: end,
42
+ startValue: this._startValue,
43
+ endValue: this._endValue,
44
+ newDomain: this._newDomain
45
+ }
46
+ });
47
+ }
48
+ }
49
+ _handleDataCollectionChange() {
50
+ this._data.getDataView().reRunAllTransform();
51
+ const domain = this._computeDomainOfValueScale();
52
+ domain && (this._valueScale || (this._valueScale = new vscale_1.LinearScale), this._valueScale.domain(domain),
53
+ this._updateValueScaleRange(), this._component && this._createOrUpdateComponent(!0));
54
+ }
29
55
  created() {
30
56
  super.created(), this._initValueScale();
31
57
  }
58
+ updateLayoutAttribute() {
59
+ !1 !== this._cacheVisibility && super.updateLayoutAttribute();
60
+ }
61
+ _beforeLayoutEnd() {
62
+ super._beforeLayoutEnd();
63
+ const axis = this._relatedAxisComponent;
64
+ ((0, util_2.isReverse)(axis, this._isHorizontal) && !this._isReverseCache || this._auto) && (this._isReverseCache = (0,
65
+ util_2.isReverse)(axis, this._isHorizontal), this.effect.onZoomChange());
66
+ }
67
+ clear() {
68
+ if (this._component) {
69
+ const container = this.getContainer();
70
+ this._component.removeAllChild(), container && container.removeChild(this._component),
71
+ this._component = null;
72
+ }
73
+ super.clear();
74
+ }
75
+ getBoundsInRect(rect) {
76
+ var _a, _b, _c, _d;
77
+ const result = {
78
+ x1: this.getLayoutStartPoint().x,
79
+ y1: this.getLayoutStartPoint().y,
80
+ x2: 0,
81
+ y2: 0
82
+ }, startHandlerScaleXSize = this._startHandlerSize * (null !== (_a = this._spec.startHandler.style.scaleX) && void 0 !== _a ? _a : 1), startHandlerScaleYSize = this._startHandlerSize * (null !== (_b = this._spec.startHandler.style.scaleY) && void 0 !== _b ? _b : 1), endHandlerScaleXSize = this._endHandlerSize * (null !== (_c = this._spec.endHandler.style.scaleX) && void 0 !== _c ? _c : 1), endHandlerScaleYSize = this._endHandlerSize * (null !== (_d = this._spec.endHandler.style.scaleY) && void 0 !== _d ? _d : 1), extendWidth = this._visible ? this._isHorizontal ? (startHandlerScaleXSize - this._startHandlerSize) / 2 + (endHandlerScaleXSize - this._endHandlerSize) / 2 : (Math.max(startHandlerScaleXSize, endHandlerScaleXSize) - this._width) / 2 : 0, extendHeight = this._visible ? this._isHorizontal ? (Math.max(startHandlerScaleYSize, endHandlerScaleYSize) - this._height) / 2 : (startHandlerScaleYSize - this._startHandlerSize) / 2 + (endHandlerScaleYSize - this._endHandlerSize) / 2 : 0;
83
+ return this._isHorizontal ? (result.y2 = result.y1 + this._height + extendHeight,
84
+ result.x2 = result.x1 + rect.width + extendWidth) : (result.x2 = result.x1 + this._width + extendWidth,
85
+ result.y2 = result.y1 + rect.height + extendHeight), result;
86
+ }
32
87
  setAttrFromSpec() {
33
88
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
34
- super.setAttrFromSpec(), (0, vutils_1.isBoolean)(this._spec.roam) && (this._zoomAttr.enable = this._spec.roam,
35
- this._dragAttr.enable = this._spec.roam, this._scrollAttr.enable = this._spec.roam),
36
- (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) && this.initZoomable(this.event, this._option.mode),
89
+ super.setAttrFromSpec();
90
+ const componentSize = this._isHorizontal ? Number(this._spec.height) : Number(this._spec.width);
37
91
  this._backgroundSize = null !== (_b = null === (_a = this._spec.background) || void 0 === _a ? void 0 : _a.size) && void 0 !== _b ? _b : 30,
38
- this._middleHandlerSize = this._computeMiddleHandlerSize(), this._width = this._computeWidth(),
39
- this._height = this._computeHeight(), (0, vutils_1.isNil)(null === (_e = null === (_d = null === (_c = this._spec) || void 0 === _c ? void 0 : _c.startHandler) || void 0 === _d ? void 0 : _d.style) || void 0 === _e ? void 0 : _e.size) && (this._spec.startHandler.style.size = this._isHorizontal ? this._height - this._middleHandlerSize : this._width - this._middleHandlerSize),
40
- (0, vutils_1.isNil)(null === (_h = null === (_g = null === (_f = this._spec) || void 0 === _f ? void 0 : _f.endHandler) || void 0 === _g ? void 0 : _g.style) || void 0 === _h ? void 0 : _h.size) && (this._spec.endHandler.style.size = this._isHorizontal ? this._height - this._middleHandlerSize : this._width - this._middleHandlerSize);
41
- const startHandlerVisble = null === (_j = this._spec.startHandler.style.visible) || void 0 === _j || _j, endHandlerVisble = null === (_k = this._spec.endHandler.style.visible) || void 0 === _k || _k;
42
- this._startHandlerSize = startHandlerVisble ? this._spec.startHandler.style.size : 0,
43
- this._endHandlerSize = endHandlerVisble ? this._spec.endHandler.style.size : 0;
44
- }
45
- onLayoutEnd() {
46
- this._updateScaleRange(), this._isReverse() && !this._isReverseCache && (this._isReverseCache = this._isReverse(),
47
- this.effect.onZoomChange()), !1 !== this._cacheVisibility && super.onLayoutEnd();
92
+ this._middleHandlerSize = this._computeMiddleHandlerSize(), (0, vutils_1.isNil)(null === (_e = null === (_d = null === (_c = this._spec) || void 0 === _c ? void 0 : _c.startHandler) || void 0 === _d ? void 0 : _d.style) || void 0 === _e ? void 0 : _e.size) && (this._spec.startHandler.style.size = isNaN(componentSize) ? this._backgroundSize : componentSize - this._middleHandlerSize),
93
+ (0, vutils_1.isNil)(null === (_h = null === (_g = null === (_f = this._spec) || void 0 === _f ? void 0 : _f.endHandler) || void 0 === _g ? void 0 : _g.style) || void 0 === _h ? void 0 : _h.size) && (this._spec.endHandler.style.size = isNaN(componentSize) ? this._backgroundSize : componentSize - this._middleHandlerSize);
94
+ const startHandlerVisible = null === (_j = this._spec.startHandler.style.visible) || void 0 === _j || _j, endHandlerVisible = null === (_k = this._spec.endHandler.style.visible) || void 0 === _k || _k;
95
+ this._startHandlerSize = startHandlerVisible ? this._spec.startHandler.style.size : 0,
96
+ this._endHandlerSize = endHandlerVisible ? this._spec.endHandler.style.size : 0,
97
+ this._width = this._computeWidth(), this._height = this._computeHeight();
48
98
  }
49
99
  _initValueScale() {
50
100
  const domain = this._computeDomainOfValueScale();
@@ -54,29 +104,39 @@ class DataZoom extends data_filter_base_component_1.DataFilterBaseComponent {
54
104
  }
55
105
  }
56
106
  _updateScaleRange() {
57
- var _a, _b;
107
+ this._updateStateScaleRange(), this._updateValueScaleRange();
108
+ }
109
+ _updateStateScaleRange() {
110
+ var _a, _b, _c;
58
111
  const handlerSize = this._startHandlerSize + this._endHandlerSize;
59
- if (!this._stateScale || !this._valueScale) return;
112
+ if (!this._stateScale) return;
60
113
  let stateScaleRange;
61
114
  const defaultSize = this._isHorizontal ? this.getLayoutRect().width - handlerSize : this.getLayoutRect().height - handlerSize, defaultRange = null !== (_b = null === (_a = this._relatedAxisComponent) || void 0 === _a ? void 0 : _a.getScale().range()) && void 0 !== _b ? _b : [ this._startHandlerSize / 2, defaultSize + this._startHandlerSize / 2 ], compWidth = this._computeWidth(), compHeight = this._computeHeight();
62
- this._isHorizontal ? (stateScaleRange = this._visible ? [ this._startHandlerSize / 2, compWidth - handlerSize + this._startHandlerSize / 2 ] : defaultRange,
63
- this._stateScale.range(stateScaleRange), this._valueScale.range([ compHeight - this._middleHandlerSize, 0 ])) : (stateScaleRange = this._visible ? [ this._startHandlerSize / 2, compHeight - handlerSize + this._startHandlerSize / 2 ] : defaultRange,
64
- this._stateScale.range(stateScaleRange), "left" === this.layoutOrient ? this._valueScale.range([ compWidth - this._middleHandlerSize, 0 ]) : this._valueScale.range([ 0, compWidth - this._middleHandlerSize ])),
65
- this._component && !1 !== this._cacheVisibility && this._component.setAttributes({
66
- size: {
67
- width: compWidth,
68
- height: compHeight
69
- },
70
- position: {
71
- x: this.getLayoutStartPoint().x,
72
- y: this.getLayoutStartPoint().y
73
- }
74
- });
115
+ stateScaleRange = this._isHorizontal ? this._visible ? [ this._startHandlerSize / 2, compWidth - handlerSize + this._startHandlerSize / 2 ] : defaultRange : this._visible ? [ this._startHandlerSize / 2, compHeight - handlerSize + this._startHandlerSize / 2 ] : defaultRange,
116
+ this._stateScale.range(stateScaleRange), null === (_c = this._previewStateScale) || void 0 === _c || _c.range((0,
117
+ util_2.isReverse)(this._relatedAxisComponent, this._isHorizontal) ? stateScaleRange.reverse() : stateScaleRange);
118
+ }
119
+ _updateValueScaleRange() {
120
+ if (!this._valueScale) return;
121
+ const compWidth = this._computeWidth(), compHeight = this._computeHeight();
122
+ this._isHorizontal ? this._valueScale.range([ compHeight - this._middleHandlerSize, 0 ]) : "left" === this.layoutOrient ? this._valueScale.range([ compWidth - this._middleHandlerSize, 0 ]) : this._valueScale.range([ 0, compWidth - this._middleHandlerSize ]);
75
123
  }
76
124
  _computeDomainOfValueScale() {
77
125
  const domain = this._data.getLatestData().map((d => d[this._valueField])), domainNum = domain.map((n => 1 * n));
78
126
  return domain.length ? [ (0, vutils_1.minInArray)(domainNum), (0, vutils_1.maxInArray)(domainNum) ] : null;
79
127
  }
128
+ _isScaleValid(scale) {
129
+ if (!scale || !scale.domain()) return !1;
130
+ const domain = scale.domain();
131
+ return (!(0, vscale_1.isContinuous)(scale.type) || domain[0] !== (0, vutils_1.last)(domain)) && (!(0,
132
+ vscale_1.isDiscrete)(scale.type) || 1 !== (0, vutils_1.uniqArray)(domain).length);
133
+ }
134
+ _getXScale() {
135
+ return this._relatedAxisComponent.getScale().type === this.stateScale.type && this._isHorizontal ? this.stateScale : this._isHorizontal ? this._stateScale : this._valueScale;
136
+ }
137
+ _getYScale() {
138
+ return this._isHorizontal ? this._valueScale : this._stateScale;
139
+ }
80
140
  _computeMiddleHandlerSize() {
81
141
  var _a, _b, _c, _d;
82
142
  let size = 0;
@@ -87,16 +147,10 @@ class DataZoom extends data_filter_base_component_1.DataFilterBaseComponent {
87
147
  return size;
88
148
  }
89
149
  _computeWidth() {
90
- return !1 === this._visible ? 0 : (0, vutils_1.isNumber)(this._spec.width) ? this._spec.width : this._isHorizontal ? this.getLayoutRect().width : this._backgroundSize + this._middleHandlerSize;
150
+ return !1 === this._visible ? 0 : (0, vutils_1.isNumber)(this._spec.width) ? this._spec.width : this._isHorizontal ? this.getLayoutRect().width : Math.max(this._startHandlerSize || 0, this._endHandlerSize || 0, this._backgroundSize || 0) + this._middleHandlerSize;
91
151
  }
92
152
  _computeHeight() {
93
- return !1 === this._visible ? 0 : (0, vutils_1.isNumber)(this._spec.height) ? this._spec.height : this._isHorizontal ? this._backgroundSize + this._middleHandlerSize : this.getLayoutRect().height;
94
- }
95
- _isScaleValid(scale) {
96
- if (!scale || !scale.domain()) return !1;
97
- const domain = scale.domain();
98
- return (!(0, vscale_1.isContinuous)(scale.type) || domain[0] !== (0, vutils_1.last)(domain)) && (!(0,
99
- vscale_1.isDiscrete)(scale.type) || 1 !== (0, vutils_1.uniqArray)(domain).length);
153
+ return !1 === this._visible ? 0 : (0, vutils_1.isNumber)(this._spec.height) ? this._spec.height : this._isHorizontal ? Math.max(this._startHandlerSize || 0, this._endHandlerSize || 0, this._backgroundSize || 0) + this._middleHandlerSize : this.getLayoutRect().height;
100
154
  }
101
155
  _getAttrs(isNeedPreview) {
102
156
  var _a, _b, _c, _d, _e;
@@ -125,49 +179,40 @@ class DataZoom extends data_filter_base_component_1.DataFilterBaseComponent {
125
179
  previewData: isNeedPreview && this._data.getLatestData(),
126
180
  previewPointsX: isNeedPreview && this._dataToPositionX,
127
181
  previewPointsY: isNeedPreview && this._dataToPositionY,
128
- tolerance: this._spec.tolerance
182
+ tolerance: this._spec.tolerance,
183
+ isReverse: (0, util_2.isReverse)(this._relatedAxisComponent, this._isHorizontal)
129
184
  }, this._getComponentAttrs(isNeedPreview));
130
185
  }
131
- _createOrUpdateComponent() {
186
+ _getLayoutAttrs() {
187
+ return {
188
+ position: {
189
+ x: this.getLayoutStartPoint().x,
190
+ y: this.getLayoutStartPoint().y
191
+ },
192
+ size: {
193
+ width: this._computeWidth(),
194
+ height: this._computeHeight()
195
+ }
196
+ };
197
+ }
198
+ _createOrUpdateComponent(changeData) {
132
199
  if (this._visible) {
133
- const xScale = this._isHorizontal ? this._stateScale : this._valueScale, yScale = this._isHorizontal ? this._valueScale : this._stateScale, isNeedPreview = this._isScaleValid(xScale) && this._isScaleValid(yScale) && !1 !== this._spec.showBackgroundChart, attrs = this._getAttrs(isNeedPreview);
134
- if (this._component) this._component.setAttributes(attrs); else {
200
+ const xScale = this._isHorizontal ? this._stateScale : this._valueScale, yScale = this._isHorizontal ? this._valueScale : this._stateScale, isNeedPreview = this._isScaleValid(xScale) && this._isScaleValid(yScale) && !1 !== this._spec.showBackgroundChart, attrs = this._getAttrs(isNeedPreview), axis = this._relatedAxisComponent;
201
+ if (this._component) this._component.setAttributes(attrs), changeData && (this._component.setPreviewData(this._data.getDataView().latestData),
202
+ isNeedPreview && (this._isHorizontal ? this._component.setPreviewPointsY1(this._dataToPositionY2) : this._component.setPreviewPointsX1(this._dataToPositionX2),
203
+ this._component.setStatePointToData((state => (0, util_2.statePointToData)(state, this._stateScale, (0,
204
+ util_2.isReverse)(axis, this._isHorizontal)))))); else {
135
205
  const container = this.getContainer();
136
- this._component = new vrender_components_1.DataZoom(attrs), this._isHorizontal ? isNeedPreview && this._component.setPreviewPointsY1(this._dataToPositionY2) : isNeedPreview && this._component.setPreviewPointsX1(this._dataToPositionX2),
137
- this._component.setStatePointToData((state => this.statePointToData(state))), this._component.addEventListener("change", (e => {
206
+ this._component = new vrender_components_1.DataZoom(attrs), this._component.setPreviewData(this._data.getDataView().latestData),
207
+ this._isHorizontal ? isNeedPreview && this._component.setPreviewPointsY1(this._dataToPositionY2) : isNeedPreview && this._component.setPreviewPointsX1(this._dataToPositionX2),
208
+ this._component.setStatePointToData((state => (0, util_2.statePointToData)(state, this._stateScale, (0,
209
+ util_2.isReverse)(axis, this._isHorizontal)))), this._component.addEventListener("dataZoomChange", (e => {
138
210
  const {start: start, end: end, tag: tag} = e.detail;
139
211
  this._handleChange(start, end, void 0, tag);
140
- })), container.add(this._component), this._updateScaleRange();
212
+ })), container.add(this._component);
141
213
  }
142
214
  }
143
215
  }
144
- _handleChange(start, end, updateComponent, tag) {
145
- if (super._handleChange(start, end, updateComponent), this._shouldChange) {
146
- updateComponent && this._component && this._component.setStartAndEnd(start, end),
147
- this._start = start, this._end = end;
148
- const startValue = this.statePointToData(start), endValue = this.statePointToData(end);
149
- ((0, vutils_1.isFunction)(this._spec.updateDataAfterChange) ? this._spec.updateDataAfterChange(start, end, startValue, endValue) : this._handleStateChange(startValue, endValue, tag)) && this.event.emit(event_1.ChartEvent.dataZoomChange, {
150
- model: this,
151
- value: {
152
- filterData: "axis" !== this._filterMode,
153
- start: start,
154
- end: end,
155
- startValue: this._startValue,
156
- endValue: this._endValue,
157
- newDomain: this._newDomain
158
- }
159
- });
160
- }
161
- }
162
- _handleDataCollectionChange() {
163
- var _a;
164
- const data = this._data.getDataView();
165
- if (data.reRunAllTransform(), null === (_a = this._component) || void 0 === _a || _a.setPreviewData(data.latestData),
166
- this._valueScale) {
167
- const domain = this._computeDomainOfValueScale();
168
- domain && this._valueScale.domain(domain);
169
- }
170
- }
171
216
  _getComponentAttrs(isNeedPreview) {
172
217
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
173
218
  const {middleHandler: middleHandler = {}, startText: startText = {}, endText: endText = {}, backgroundChart: backgroundChart = {}, selectedBackgroundChart: selectedBackgroundChart = {}} = this._spec;
@@ -242,17 +287,17 @@ class DataZoom extends data_filter_base_component_1.DataFilterBaseComponent {
242
287
  _getNeedClearVRenderComponents() {
243
288
  return [ this._component ];
244
289
  }
245
- clear() {
246
- if (this._component) {
247
- const container = this.getContainer();
248
- this._component.removeAllChild(), container && container.removeChild(this._component),
249
- this._component = null;
250
- }
251
- super.clear();
290
+ onDataUpdate() {
291
+ super.onDataUpdate(), this._previewStateScale !== this._stateScale && (this._previewStateScale = null);
292
+ }
293
+ _getPreviewStateScale() {
294
+ return this._previewStateScale || ((0, util_2.isReverse)(this._relatedAxisComponent, this._isHorizontal) ? (this._previewStateScale = this._stateScale.clone(),
295
+ this._previewStateScale.range(this._stateScale.range().reverse())) : this._previewStateScale = this._stateScale),
296
+ this._previewStateScale;
252
297
  }
253
298
  }
254
299
 
255
- exports.DataZoom = DataZoom, DataZoom.type = type_1.ComponentTypeEnum.dataZoom,
300
+ exports.DataZoom = DataZoom, DataZoom.type = interface_1.ComponentTypeEnum.dataZoom,
256
301
  DataZoom.transformerConstructor = data_zoom_transformer_1.DataZoomSpecTransformer,
257
302
  DataZoom.builtInTheme = {
258
303
  dataZoom: data_zoom_1.dataZoom
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/data-zoom/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["// eslint-disable-next-line no-duplicate-imports\nimport {\n isBoolean,\n isFunction,\n isNil,\n isNumber,\n isValid,\n last,\n maxInArray,\n minInArray,\n uniqArray\n} from '@visactor/vutils';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, ISymbolGraphicAttribute, IGroup, IGraphic } from '@visactor/vrender-core';\nimport type { Datum, ILayoutType } from '../../../typings';\nimport type { ILinearScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { LinearScale, isContinuous, isDiscrete } from '@visactor/vscale';\nimport { LayoutLevel, LayoutZIndex } from '../../../constant/layout';\nimport { ChartEvent } from '../../../constant/event';\nimport type { IDataZoomSpec } from './interface';\nimport { Factory } from '../../../core/factory';\nimport type { IZoomable } from '../../../interaction/zoom';\nimport type { CartesianAxis } from '../../axis/cartesian';\nimport { DataZoomSpecTransformer } from './data-zoom-transformer';\nimport { getFormatFunction } from '../../util';\nimport { dataZoom } from '../../../theme/builtin/common/component/data-zoom';\n\nexport class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.dataZoom;\n static readonly transformerConstructor = DataZoomSpecTransformer as any;\n type = ComponentTypeEnum.dataZoom;\n name: string = ComponentTypeEnum.dataZoom;\n readonly transformerConstructor = DataZoomSpecTransformer;\n\n static readonly builtInTheme = {\n dataZoom\n };\n static specKey = 'dataZoom';\n specKey = 'dataZoom';\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // datazoom组件\n protected _component!: DataZoomComponent;\n\n protected _valueScale!: ILinearScale;\n\n protected _backgroundSize!: number;\n protected _middleHandlerSize!: number;\n protected _startHandlerSize!: number;\n protected _endHandlerSize!: number;\n\n protected _isReverseCache: boolean = false;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._valueField = 'y';\n this._filterMode = spec.filterMode ?? 'filter';\n }\n\n created() {\n super.created();\n this._initValueScale();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (isBoolean((this._spec as any).roam)) {\n this._zoomAttr.enable = (this._spec as any).roam;\n this._dragAttr.enable = (this._spec as any).roam;\n this._scrollAttr.enable = (this._spec as any).roam;\n }\n\n if (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n\n // size相关\n this._backgroundSize = this._spec.background?.size ?? 30;\n this._middleHandlerSize = this._computeMiddleHandlerSize();\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n // startHandler和endHandler size如果没有配置,则默认跟随background宽 or 高\n if (isNil(this._spec?.startHandler?.style?.size)) {\n this._spec.startHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n if (isNil(this._spec?.endHandler?.style?.size)) {\n this._spec.endHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n const startHandlerVisble = this._spec.startHandler.style.visible ?? true;\n const endHandlerVisble = this._spec.endHandler.style.visible ?? true;\n this._startHandlerSize = startHandlerVisble ? this._spec.startHandler.style.size : 0;\n this._endHandlerSize = endHandlerVisble ? this._spec.endHandler.style.size : 0;\n }\n\n /** LifeCycle API**/\n onLayoutEnd(): void {\n this._updateScaleRange();\n // 初始时reverse判断并不准确,导致start和end颠倒, 保险起见在layoutend之后触发该逻辑\n // FIXME: 牺牲了一定性能,有待优化\n if (this._isReverse() && !this._isReverseCache) {\n this._isReverseCache = this._isReverse();\n this.effect.onZoomChange();\n }\n if (this._cacheVisibility !== false) {\n super.onLayoutEnd();\n }\n }\n\n protected _initValueScale() {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n const valueScale = new LinearScale();\n valueScale.domain(domain);\n this._valueScale = valueScale;\n }\n }\n\n protected _updateScaleRange() {\n const handlerSize = this._startHandlerSize + this._endHandlerSize;\n if (!this._stateScale || !this._valueScale) {\n return;\n }\n\n // visible为false时, 计算stateScale的兜底range\n let stateScaleRange;\n const defaultSize = this._isHorizontal\n ? this.getLayoutRect().width - handlerSize\n : this.getLayoutRect().height - handlerSize;\n\n const defaultRange = (this._relatedAxisComponent as CartesianAxis<any>)?.getScale().range() ?? [\n this._startHandlerSize / 2,\n defaultSize + this._startHandlerSize / 2\n ];\n\n const compWidth = this._computeWidth();\n const compHeight = this._computeHeight();\n\n if (this._isHorizontal) {\n stateScaleRange = this._visible\n ? [this._startHandlerSize / 2, compWidth - handlerSize + this._startHandlerSize / 2]\n : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([compHeight - this._middleHandlerSize, 0]);\n } else {\n stateScaleRange = this._visible\n ? [this._startHandlerSize / 2, compHeight - handlerSize + this._startHandlerSize / 2]\n : defaultRange;\n\n this._stateScale.range(stateScaleRange);\n\n if (this.layoutOrient === 'left') {\n this._valueScale.range([compWidth - this._middleHandlerSize, 0]);\n } else {\n this._valueScale.range([0, compWidth - this._middleHandlerSize]);\n }\n }\n if (this._component && this._cacheVisibility !== false) {\n this._component.setAttributes({\n size: {\n width: compWidth,\n height: compHeight\n },\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n }\n });\n }\n }\n\n protected _computeDomainOfValueScale() {\n const domain = this._data.getLatestData().map((d: any) => d[this._valueField]);\n\n const domainNum = domain.map((n: any) => n * 1);\n return domain.length ? [minInArray(domainNum), maxInArray(domainNum)] : null;\n }\n\n protected _computeMiddleHandlerSize(): number {\n let size = 0;\n if (this._spec?.middleHandler?.visible) {\n const middleHandlerIconSize = this._spec.middleHandler.icon.style.size ?? 8;\n const middleHandlerBackSize = this._spec.middleHandler.background.size ?? 40;\n size += Math.max(middleHandlerIconSize as number, middleHandlerBackSize);\n }\n return size;\n }\n\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n\n return this._backgroundSize + this._middleHandlerSize;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n if (this._isHorizontal) {\n return this._backgroundSize + this._middleHandlerSize;\n }\n return this.getLayoutRect().height;\n }\n\n protected _isScaleValid(scale: IBaseScale | ILinearScale) {\n if (!scale || !scale.domain()) {\n return false;\n }\n const domain = scale.domain();\n if (isContinuous(scale.type) && domain[0] === last(domain)) {\n return false;\n }\n if (isDiscrete(scale.type) && uniqArray(domain).length === 1) {\n return false;\n }\n return true;\n }\n\n protected _dataToPositionX = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const xField = this._isHorizontal ? this._stateField : this._valueField;\n return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionX2 = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const min = xScale.domain()[0];\n return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionY = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const yField = this._isHorizontal ? this._valueField : this._stateField;\n return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _dataToPositionY2 = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const min = yScale.domain()[0];\n return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n private _getAttrs(isNeedPreview: boolean) {\n const spec = this._spec ?? ({} as T);\n return {\n zIndex: this.layoutZIndex,\n start: this._start,\n end: this._end,\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n orient: this._orient,\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n },\n showDetail: spec.showDetail,\n brushSelect: spec.brushSelect ?? false,\n zoomLock: spec.zoomLock ?? false,\n minSpan: this._minSpan,\n maxSpan: this._maxSpan,\n delayType: spec.delayType,\n delayTime: isValid(spec.delayType) ? spec.delayTime ?? 30 : 0,\n realTime: spec.realTime ?? true,\n previewData: isNeedPreview && this._data.getLatestData(),\n previewPointsX: isNeedPreview && this._dataToPositionX,\n previewPointsY: isNeedPreview && this._dataToPositionY,\n tolerance: this._spec.tolerance,\n ...(this._getComponentAttrs(isNeedPreview) as any)\n } as DataZoomAttributes;\n }\n\n protected _createOrUpdateComponent() {\n if (this._visible) {\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const isNeedPreview =\n this._isScaleValid(xScale) && this._isScaleValid(yScale) && this._spec.showBackgroundChart !== false;\n const attrs = this._getAttrs(isNeedPreview);\n\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new DataZoomComponent(attrs);\n\n if (this._isHorizontal) {\n isNeedPreview && this._component.setPreviewPointsY1(this._dataToPositionY2);\n } else {\n isNeedPreview && this._component.setPreviewPointsX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) => this.statePointToData(state));\n\n this._component.addEventListener('change', (e: any) => {\n const { start, end, tag } = e.detail;\n this._handleChange(start, end, undefined, tag);\n });\n container.add(this._component as unknown as INode);\n\n this._updateScaleRange();\n }\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean, tag?: string) {\n super._handleChange(start, end, updateComponent);\n\n if (this._shouldChange) {\n if (updateComponent && this._component) {\n this._component.setStartAndEnd(start, end);\n }\n\n this._start = start;\n this._end = end;\n const startValue = this.statePointToData(start);\n const endValue = this.statePointToData(end);\n const hasChange = isFunction(this._spec.updateDataAfterChange)\n ? this._spec.updateDataAfterChange(start, end, startValue, endValue)\n : this._handleStateChange(startValue, endValue, tag);\n if (hasChange) {\n this.event.emit(ChartEvent.dataZoomChange, {\n model: this,\n value: {\n filterData: this._filterMode !== 'axis',\n start,\n end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n }\n\n protected _handleDataCollectionChange() {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n this._component?.setPreviewData(data.latestData);\n\n if (this._valueScale) {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n this._valueScale.domain(domain);\n }\n }\n }\n\n protected _getComponentAttrs(isNeedPreview: boolean) {\n const {\n middleHandler = {},\n startText = {},\n endText = {},\n backgroundChart = {},\n selectedBackgroundChart = {}\n } = this._spec as T;\n return {\n backgroundStyle: transformToGraphic(this._spec.background?.style) as unknown as IRectGraphicAttribute,\n startHandlerStyle: transformToGraphic(this._spec.startHandler?.style) as unknown as ISymbolGraphicAttribute,\n middleHandlerStyle: middleHandler.visible\n ? {\n visible: true,\n icon: transformToGraphic(middleHandler.icon?.style) as unknown as ISymbolGraphicAttribute,\n background: {\n size: middleHandler.background?.size,\n style: transformToGraphic(middleHandler.background?.style)\n } as any\n }\n : { visible: false },\n endHandlerStyle: transformToGraphic(this._spec.endHandler?.style) as unknown as ISymbolGraphicAttribute,\n startTextStyle: {\n padding: startText.padding,\n formatMethod: this._getHandlerTextFormatMethod(startText),\n textStyle: transformToGraphic(startText.style)\n } as unknown,\n endTextStyle: {\n padding: endText.padding,\n formatMethod: this._getHandlerTextFormatMethod(endText),\n textStyle: transformToGraphic(endText.style)\n } as unknown,\n selectedBackgroundStyle: transformToGraphic(\n this._spec.selectedBackground.style\n ) as unknown as IRectGraphicAttribute,\n dragMaskStyle: transformToGraphic(this._spec.dragMask?.style) as unknown as IRectGraphicAttribute,\n backgroundChartStyle: isNeedPreview\n ? {\n line: mergeSpec(transformToGraphic(backgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(backgroundChart.area?.style)\n }\n }\n : {\n line: { visible: false },\n area: { visible: false }\n },\n selectedBackgroundChartStyle: isNeedPreview\n ? {\n line: mergeSpec(transformToGraphic(selectedBackgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(selectedBackgroundChart.area?.style)\n }\n }\n : {\n line: { visible: false },\n area: { visible: false }\n },\n disableTriggerEvent: this._option.disableTriggerEvent\n };\n }\n\n protected _getHandlerTextFormatMethod(spec: IDataZoomSpec['startText']) {\n const { formatMethod, formatter } = spec;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (text: any) => formatFunc(text, { label: text }, formatter) : undefined;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n\n clear(): void {\n if (this._component) {\n const container = this.getContainer();\n this._component.removeAllChild();\n if (container) {\n container.removeChild(this._component as unknown as INode);\n }\n\n this._component = null;\n }\n super.clear();\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerComponent(DataZoom.type, DataZoom);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/data-zoom/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import {\n isFunction,\n isNil,\n isNumber,\n isValid,\n last,\n maxInArray,\n minInArray,\n uniqArray,\n type IBoundsLike\n} from '@visactor/vutils';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { ComponentTypeEnum, type IComponentOption } from '../../interface';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\nimport { DataZoom as DataZoomComponent, type DataZoomAttributes } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, ISymbolGraphicAttribute, IGroup, IGraphic } from '@visactor/vrender-core';\nimport type { Datum, ILayoutRect, ILayoutType } from '../../../typings';\nimport { LinearScale, isContinuous, isDiscrete, type ILinearScale, type IBaseScale } from '@visactor/vscale';\nimport { LayoutLevel, LayoutZIndex } from '../../../constant/layout';\nimport { ChartEvent } from '../../../constant/event';\nimport type { IDataZoomSpec } from './interface';\nimport { Factory } from '../../../core/factory';\nimport type { CartesianAxis } from '../../axis/cartesian';\nimport { DataZoomSpecTransformer } from './data-zoom-transformer';\nimport { getFormatFunction } from '../../util';\nimport { dataZoom } from '../../../theme/builtin/common/component/data-zoom';\nimport { isReverse, statePointToData } from '../util';\nimport { LayoutModel } from '../../../model/layout-model';\n\nexport class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.dataZoom;\n static readonly transformerConstructor = DataZoomSpecTransformer as any;\n type = ComponentTypeEnum.dataZoom;\n name: string = ComponentTypeEnum.dataZoom;\n readonly transformerConstructor = DataZoomSpecTransformer;\n\n static readonly builtInTheme = {\n dataZoom\n };\n static specKey = 'dataZoom';\n specKey = 'dataZoom';\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // datazoom组件\n protected _component!: DataZoomComponent;\n\n protected _valueScale!: ILinearScale;\n\n protected _backgroundSize!: number;\n protected _middleHandlerSize!: number;\n protected _startHandlerSize!: number;\n protected _endHandlerSize!: number;\n\n protected _isReverseCache: boolean = false;\n\n protected _cacheRect?: ILayoutRect;\n\n protected _previewStateScale: IBaseScale;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._valueField = 'y';\n this._filterMode = spec.filterMode ?? 'filter';\n }\n\n /*** start: init event and event dispatch ***/\n protected _handleChange(start: number, end: number, updateComponent?: boolean, tag?: string) {\n super._handleChange(start, end, updateComponent);\n\n if (this._shouldChange) {\n if (updateComponent && this._component) {\n this._component.setStartAndEnd(start, end);\n } else {\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n\n const startValue = statePointToData(start, this._stateScale, isReverse(axis, this._isHorizontal));\n const endValue = statePointToData(end, this._stateScale, isReverse(axis, this._isHorizontal));\n if (!isValid(startValue) || !isValid(endValue)) {\n return;\n }\n this._start = start;\n this._end = end;\n const hasChange = isFunction(this._spec.updateDataAfterChange)\n ? this._spec.updateDataAfterChange(start, end, startValue, endValue)\n : this._handleStateChange(startValue, endValue, tag);\n if (hasChange) {\n this.event.emit(ChartEvent.dataZoomChange, {\n model: this,\n value: {\n filterData: this._filterMode !== 'axis',\n start,\n end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n }\n }\n\n protected _handleDataCollectionChange() {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n if (!this._valueScale) {\n this._valueScale = new LinearScale();\n }\n this._valueScale.domain(domain);\n this._updateValueScaleRange();\n if (this._component) {\n this._createOrUpdateComponent(true);\n }\n }\n }\n /*** end: init event and event dispatch ***/\n\n /*** start: component lifecycle ***/\n created() {\n super.created();\n this._initValueScale();\n }\n\n updateLayoutAttribute(): void {\n if (this._cacheVisibility !== false) {\n super.updateLayoutAttribute();\n }\n }\n\n protected _beforeLayoutEnd() {\n super._beforeLayoutEnd();\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n // 初始时reverse判断并不准确,导致start和end颠倒, 保险起见在layoutend之后触发该逻辑\n // FIXME: 牺牲了一定性能,有待优化\n if ((isReverse(axis, this._isHorizontal) && !this._isReverseCache) || this._auto) {\n // auto则代表需要根据bandsize同步更新范围\n this._isReverseCache = isReverse(axis, this._isHorizontal);\n this.effect.onZoomChange();\n }\n }\n\n clear(): void {\n if (this._component) {\n const container = this.getContainer();\n this._component.removeAllChild();\n if (container) {\n container.removeChild(this._component as unknown as INode);\n }\n\n this._component = null;\n }\n super.clear();\n }\n\n getBoundsInRect(rect: ILayoutRect): IBoundsLike {\n const result: IBoundsLike = { x1: this.getLayoutStartPoint().x, y1: this.getLayoutStartPoint().y, x2: 0, y2: 0 };\n const startHandlerScaleXSize = this._startHandlerSize * (this._spec.startHandler.style.scaleX ?? 1);\n const startHandlerScaleYSize = this._startHandlerSize * (this._spec.startHandler.style.scaleY ?? 1);\n const endHandlerScaleXSize = this._endHandlerSize * (this._spec.endHandler.style.scaleX ?? 1);\n const endHandlerScaleYSize = this._endHandlerSize * (this._spec.endHandler.style.scaleY ?? 1);\n const extendWidth = !this._visible\n ? 0\n : this._isHorizontal\n ? (startHandlerScaleXSize - this._startHandlerSize) / 2 + (endHandlerScaleXSize - this._endHandlerSize) / 2\n : (Math.max(startHandlerScaleXSize, endHandlerScaleXSize) - this._width) / 2;\n const extendHeight = !this._visible\n ? 0\n : this._isHorizontal\n ? (Math.max(startHandlerScaleYSize, endHandlerScaleYSize) - this._height) / 2\n : (startHandlerScaleYSize - this._startHandlerSize) / 2 + (endHandlerScaleYSize - this._endHandlerSize) / 2;\n if (this._isHorizontal) {\n result.y2 = result.y1 + this._height + extendHeight;\n result.x2 = result.x1 + rect.width + extendWidth;\n } else {\n result.x2 = result.x1 + this._width + extendWidth;\n result.y2 = result.y1 + rect.height + extendHeight;\n }\n return result;\n }\n /*** end: component lifecycle ***/\n\n /*** start: set attributes & bind related axis and region ***/\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n // 用户配置, 如:80 -> 给各个部分赋予默认值 back 80, handler 80 -> 根据实际值computeSize -> 作为组件属性输入 -> 组件根据实际高度给背景分配默认高度\n // 用户不配置 -> 各部分给默认定值 -> ...(同上)\n const componentSize = this._isHorizontal ? Number(this._spec.height) : Number(this._spec.width);\n\n // size相关\n this._backgroundSize = this._spec.background?.size ?? 30;\n this._middleHandlerSize = this._computeMiddleHandlerSize();\n // startHandler和endHandler size如果没有配置,则默认跟随background宽 or 高\n if (isNil(this._spec?.startHandler?.style?.size)) {\n this._spec.startHandler.style.size = isNaN(componentSize)\n ? this._backgroundSize\n : componentSize - this._middleHandlerSize;\n }\n if (isNil(this._spec?.endHandler?.style?.size)) {\n this._spec.endHandler.style.size = isNaN(componentSize)\n ? this._backgroundSize\n : componentSize - this._middleHandlerSize;\n }\n const startHandlerVisible = this._spec.startHandler.style.visible ?? true;\n const endHandlerVisible = this._spec.endHandler.style.visible ?? true;\n this._startHandlerSize = startHandlerVisible ? this._spec.startHandler.style.size : 0;\n this._endHandlerSize = endHandlerVisible ? this._spec.endHandler.style.size : 0;\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n }\n /*** end: set attributes & bind related axis and region ***/\n\n /*** start: scale of background chart ***/\n protected _initValueScale() {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n const valueScale = new LinearScale();\n valueScale.domain(domain);\n this._valueScale = valueScale;\n }\n }\n\n protected _updateScaleRange() {\n this._updateStateScaleRange();\n this._updateValueScaleRange();\n }\n\n protected _updateStateScaleRange() {\n const handlerSize = this._startHandlerSize + this._endHandlerSize;\n if (!this._stateScale) {\n return;\n }\n\n // visible为false时, 计算stateScale的兜底range\n let stateScaleRange;\n const defaultSize = this._isHorizontal\n ? this.getLayoutRect().width - handlerSize\n : this.getLayoutRect().height - handlerSize;\n\n const defaultRange = (this._relatedAxisComponent as CartesianAxis<any>)?.getScale().range() ?? [\n this._startHandlerSize / 2,\n defaultSize + this._startHandlerSize / 2\n ];\n\n const compWidth = this._computeWidth();\n const compHeight = this._computeHeight();\n\n if (this._isHorizontal) {\n stateScaleRange = this._visible\n ? [this._startHandlerSize / 2, compWidth - handlerSize + this._startHandlerSize / 2]\n : defaultRange;\n } else {\n stateScaleRange = this._visible\n ? [this._startHandlerSize / 2, compHeight - handlerSize + this._startHandlerSize / 2]\n : defaultRange;\n }\n this._stateScale.range(stateScaleRange);\n this._previewStateScale?.range(\n isReverse(this._relatedAxisComponent as CartesianAxis<any>, this._isHorizontal)\n ? stateScaleRange.reverse()\n : stateScaleRange\n );\n }\n\n protected _updateValueScaleRange() {\n if (!this._valueScale) {\n return;\n }\n const compWidth = this._computeWidth();\n const compHeight = this._computeHeight();\n\n if (this._isHorizontal) {\n this._valueScale.range([compHeight - this._middleHandlerSize, 0]);\n } else {\n if (this.layoutOrient === 'left') {\n this._valueScale.range([compWidth - this._middleHandlerSize, 0]);\n } else {\n this._valueScale.range([0, compWidth - this._middleHandlerSize]);\n }\n }\n }\n\n protected _computeDomainOfValueScale() {\n const domain = this._data.getLatestData().map((d: any) => d[this._valueField]);\n\n const domainNum = domain.map((n: any) => n * 1);\n return domain.length ? [minInArray(domainNum), maxInArray(domainNum)] : null;\n }\n\n protected _isScaleValid(scale: IBaseScale | ILinearScale) {\n if (!scale || !scale.domain()) {\n return false;\n }\n const domain = scale.domain();\n if (isContinuous(scale.type) && domain[0] === last(domain)) {\n return false;\n }\n if (isDiscrete(scale.type) && uniqArray(domain).length === 1) {\n return false;\n }\n return true;\n }\n\n protected _getXScale() {\n const bindScale = (this._relatedAxisComponent as CartesianAxis<any>).getScale();\n if (bindScale.type === this.stateScale.type && this._isHorizontal) {\n return this.stateScale;\n }\n return this._isHorizontal ? this._stateScale : this._valueScale;\n }\n\n protected _getYScale() {\n return this._isHorizontal ? this._valueScale : this._stateScale;\n }\n\n protected _dataToPositionX = (datum: Datum): number => {\n const offsetLeft = !this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const xField = this._isHorizontal ? this._stateField : this._valueField;\n return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionX2 = (datum: Datum): number => {\n const offsetLeft = !this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const min = xScale.domain()[0];\n return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionY = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._getPreviewStateScale();\n const yField = this._isHorizontal ? this._valueField : this._stateField;\n return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _dataToPositionY2 = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._getPreviewStateScale();\n const min = yScale.domain()[0];\n return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n /*** end: scale of background chart ***/\n\n /** start: component layout attr ***/\n protected _computeMiddleHandlerSize(): number {\n let size = 0;\n if (this._spec?.middleHandler?.visible) {\n const middleHandlerIconSize = this._spec.middleHandler.icon.style.size ?? 8;\n const middleHandlerBackSize = this._spec.middleHandler.background.size ?? 40;\n size += Math.max(middleHandlerIconSize as number, middleHandlerBackSize);\n }\n return size;\n }\n\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n\n return (\n Math.max(this._startHandlerSize || 0, this._endHandlerSize || 0, this._backgroundSize || 0) +\n this._middleHandlerSize\n );\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n if (this._isHorizontal) {\n return (\n Math.max(this._startHandlerSize || 0, this._endHandlerSize || 0, this._backgroundSize || 0) +\n this._middleHandlerSize\n );\n }\n return this.getLayoutRect().height;\n }\n /** end: component layout attr ***/\n\n /** start: datazoom component attr ***/\n private _getAttrs(isNeedPreview: boolean) {\n const spec = this._spec ?? ({} as T);\n return {\n zIndex: this.layoutZIndex,\n start: this._start,\n end: this._end,\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n orient: this._orient,\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n },\n showDetail: spec.showDetail,\n brushSelect: spec.brushSelect ?? false,\n zoomLock: spec.zoomLock ?? false,\n minSpan: this._minSpan,\n maxSpan: this._maxSpan,\n delayType: spec.delayType,\n delayTime: isValid(spec.delayType) ? (spec.delayTime ?? 30) : 0,\n realTime: spec.realTime ?? true,\n previewData: isNeedPreview && this._data.getLatestData(),\n previewPointsX: isNeedPreview && this._dataToPositionX,\n previewPointsY: isNeedPreview && this._dataToPositionY,\n tolerance: this._spec.tolerance,\n isReverse: isReverse(this._relatedAxisComponent as CartesianAxis<any>, this._isHorizontal),\n ...(this._getComponentAttrs(isNeedPreview) as any)\n } as DataZoomAttributes;\n }\n\n private _getLayoutAttrs() {\n return {\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n }\n };\n }\n\n protected _createOrUpdateComponent(changeData?: boolean) {\n if (this._visible) {\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const isNeedPreview =\n this._isScaleValid(xScale) && this._isScaleValid(yScale) && this._spec.showBackgroundChart !== false;\n const attrs = this._getAttrs(isNeedPreview);\n\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n\n if (this._component) {\n this._component.setAttributes(attrs);\n if (changeData) {\n this._component.setPreviewData(this._data.getDataView().latestData);\n if (isNeedPreview) {\n if (this._isHorizontal) {\n this._component.setPreviewPointsY1(this._dataToPositionY2);\n } else {\n this._component.setPreviewPointsX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) =>\n statePointToData(state, this._stateScale, isReverse(axis, this._isHorizontal))\n );\n }\n }\n } else {\n const container = this.getContainer();\n this._component = new DataZoomComponent(attrs);\n this._component.setPreviewData(this._data.getDataView().latestData);\n\n if (this._isHorizontal) {\n isNeedPreview && this._component.setPreviewPointsY1(this._dataToPositionY2);\n } else {\n isNeedPreview && this._component.setPreviewPointsX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) =>\n statePointToData(state, this._stateScale, isReverse(axis, this._isHorizontal))\n );\n\n this._component.addEventListener('dataZoomChange', (e: any) => {\n const { start, end, tag } = e.detail;\n this._handleChange(start, end, undefined, tag);\n });\n container.add(this._component as unknown as INode);\n }\n }\n }\n\n protected _getComponentAttrs(isNeedPreview: boolean) {\n const {\n middleHandler = {},\n startText = {},\n endText = {},\n backgroundChart = {},\n selectedBackgroundChart = {}\n } = this._spec as T;\n return {\n backgroundStyle: transformToGraphic(this._spec.background?.style) as unknown as IRectGraphicAttribute,\n startHandlerStyle: transformToGraphic(this._spec.startHandler?.style) as unknown as ISymbolGraphicAttribute,\n middleHandlerStyle: middleHandler.visible\n ? {\n visible: true,\n icon: transformToGraphic(middleHandler.icon?.style) as unknown as ISymbolGraphicAttribute,\n background: {\n size: middleHandler.background?.size,\n style: transformToGraphic(middleHandler.background?.style)\n } as any\n }\n : { visible: false },\n endHandlerStyle: transformToGraphic(this._spec.endHandler?.style) as unknown as ISymbolGraphicAttribute,\n startTextStyle: {\n padding: startText.padding,\n formatMethod: this._getHandlerTextFormatMethod(startText),\n textStyle: transformToGraphic(startText.style)\n } as unknown,\n endTextStyle: {\n padding: endText.padding,\n formatMethod: this._getHandlerTextFormatMethod(endText),\n textStyle: transformToGraphic(endText.style)\n } as unknown,\n selectedBackgroundStyle: transformToGraphic(\n this._spec.selectedBackground.style\n ) as unknown as IRectGraphicAttribute,\n dragMaskStyle: transformToGraphic(this._spec.dragMask?.style) as unknown as IRectGraphicAttribute,\n backgroundChartStyle: isNeedPreview\n ? {\n line: mergeSpec(transformToGraphic(backgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(backgroundChart.area?.style)\n }\n }\n : {\n line: { visible: false },\n area: { visible: false }\n },\n selectedBackgroundChartStyle: isNeedPreview\n ? {\n line: mergeSpec(transformToGraphic(selectedBackgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(selectedBackgroundChart.area?.style)\n }\n }\n : {\n line: { visible: false },\n area: { visible: false }\n },\n disableTriggerEvent: this._option.disableTriggerEvent\n };\n }\n\n protected _getHandlerTextFormatMethod(spec: IDataZoomSpec['startText']) {\n const { formatMethod, formatter } = spec;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (text: any) => formatFunc(text, { label: text }, formatter) : undefined;\n }\n /** end: datazoom component attr ***/\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n\n onDataUpdate() {\n super.onDataUpdate();\n // 预览scale\n if (this._previewStateScale !== this._stateScale) {\n this._previewStateScale = null;\n }\n }\n\n protected _getPreviewStateScale() {\n if (!this._previewStateScale) {\n // 当轴inverse时,需要反转预览scale\n if (isReverse(this._relatedAxisComponent as CartesianAxis<any>, this._isHorizontal)) {\n this._previewStateScale = this._stateScale.clone();\n this._previewStateScale.range(this._stateScale.range().reverse());\n } else {\n this._previewStateScale = this._stateScale;\n }\n }\n return this._previewStateScale;\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerComponent(DataZoom.type, DataZoom);\n};\n"]}
@@ -20,15 +20,16 @@ export declare class ScrollBar<T extends IScrollBarSpec = IScrollBarSpec> extend
20
20
  layoutType: ILayoutType;
21
21
  protected _component: ScrollBarComponent;
22
22
  constructor(spec: T, options: IComponentOption);
23
- setAttrFromSpec(): void;
23
+ protected _handleChange(start: number, end: number, updateComponent?: boolean): void;
24
+ protected _handleDataCollectionChange(): void;
25
+ protected _beforeLayoutEnd(): void;
24
26
  onLayoutEnd(): void;
25
27
  protected _updateScaleRange(): void;
28
+ protected _updateComponentBounds(): void;
26
29
  protected _computeWidth(): number;
27
30
  protected _computeHeight(): number;
28
31
  private _getAttrs;
29
32
  protected _createOrUpdateComponent(): void;
30
- protected _handleChange(start: number, end: number, updateComponent?: boolean): void;
31
- protected _handleDataCollectionChange(): void;
32
33
  protected _getComponentAttrs(): Partial<ScrollBarAttributes>;
33
34
  protected _getNeedClearVRenderComponents(): IGraphic[];
34
35
  }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerScrollBar = exports.ScrollBar = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), type_1 = require("../../interface/type"), data_filter_base_component_1 = require("../data-filter-base-component"), vrender_components_1 = require("@visactor/vrender-components"), style_1 = require("../../../util/style"), layout_1 = require("../../../constant/layout"), event_1 = require("../../../constant/event"), scroll_bar_1 = require("../../../constant/scroll-bar"), factory_1 = require("../../../core/factory"), util_1 = require("../../../util"), scroll_bar_2 = require("../../../theme/builtin/common/component/scroll-bar"), SCROLLBAR_EVENT = "scrollDrag", SCROLLBAR_END_EVENT = "scrollUp";
7
+ const vutils_1 = require("@visactor/vutils"), type_1 = require("../../interface/type"), data_filter_base_component_1 = require("../data-filter-base-component"), vrender_components_1 = require("@visactor/vrender-components"), style_1 = require("../../../util/style"), layout_1 = require("../../../constant/layout"), event_1 = require("../../../constant/event"), scroll_bar_1 = require("../../../constant/scroll-bar"), factory_1 = require("../../../core/factory"), util_1 = require("../../../util"), scroll_bar_2 = require("../../../theme/builtin/common/component/scroll-bar"), util_2 = require("../util"), SCROLLBAR_EVENT = "scrollDrag", SCROLLBAR_END_EVENT = "scrollUp";
8
8
 
9
9
  class ScrollBar extends data_filter_base_component_1.DataFilterBaseComponent {
10
10
  constructor(spec, options) {
@@ -14,17 +14,41 @@ class ScrollBar extends data_filter_base_component_1.DataFilterBaseComponent {
14
14
  this.layoutLevel = layout_1.LayoutLevel.DataZoom, this.layoutType = "region-relative",
15
15
  this._filterMode = null !== (_a = spec.filterMode) && void 0 !== _a ? _a : "axis";
16
16
  }
17
- setAttrFromSpec() {
18
- super.setAttrFromSpec(), (0, vutils_1.isBoolean)(this._spec.roam) && (this._zoomAttr.enable = !1,
19
- this._dragAttr.enable = this._spec.roam, this._scrollAttr.enable = this._spec.roam),
20
- (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) && this.initZoomable(this.event, this._option.mode);
17
+ _handleChange(start, end, updateComponent) {
18
+ super._handleChange(start, end, updateComponent);
19
+ const isSameScrollValue = (0, util_1.isClose)(this._start, start) && (0, util_1.isClose)(this._end, end);
20
+ if (this._shouldChange && (!isSameScrollValue || !1 === this._spec.realTime)) {
21
+ updateComponent && this._component && this._component.setAttribute("range", [ start, end ]),
22
+ this._start = start, this._end = end;
23
+ const startValue = (0, util_2.statePointToData)(start, this._stateScale, !1), endValue = (0,
24
+ util_2.statePointToData)(end, this._stateScale, !1);
25
+ ((0, vutils_1.isFunction)(this._spec.updateDataAfterChange) ? this._spec.updateDataAfterChange(start, end, startValue, endValue) : this._handleStateChange(startValue, endValue)) && this.event.emit(event_1.ChartEvent.scrollBarChange, {
26
+ model: this,
27
+ value: {
28
+ filterData: "axis" !== this._filterMode,
29
+ start: this._start,
30
+ end: this._end,
31
+ startValue: this._startValue,
32
+ endValue: this._endValue,
33
+ newDomain: this._newDomain
34
+ }
35
+ });
36
+ }
21
37
  }
22
- onLayoutEnd() {
38
+ _handleDataCollectionChange() {
39
+ if (this._spec.auto) {
40
+ this._data.getDataView().reRunAllTransform();
41
+ }
42
+ }
43
+ _beforeLayoutEnd() {
23
44
  var _a, _b;
24
- this._updateScaleRange(), null === (_b = (_a = this.effect).onZoomChange) || void 0 === _b || _b.call(_a),
25
- super.onLayoutEnd();
45
+ super._beforeLayoutEnd(), null === (_b = (_a = this.effect).onZoomChange) || void 0 === _b || _b.call(_a);
46
+ }
47
+ onLayoutEnd() {
48
+ this._updateComponentBounds(), super.onLayoutEnd();
26
49
  }
27
- _updateScaleRange() {
50
+ _updateScaleRange() {}
51
+ _updateComponentBounds() {
28
52
  this._component && this._component.setAttributes({
29
53
  x: this.getLayoutStartPoint().x,
30
54
  y: this.getLayoutStartPoint().y,
@@ -33,10 +57,10 @@ class ScrollBar extends data_filter_base_component_1.DataFilterBaseComponent {
33
57
  });
34
58
  }
35
59
  _computeWidth() {
36
- return (0, vutils_1.isNumber)(this._spec.width) ? this._spec.width : this._isHorizontal ? this.getLayoutRect().width : scroll_bar_1.SCROLL_BAR_DEFAULT_SIZE;
60
+ return !1 === this._visible ? 0 : (0, vutils_1.isNumber)(this._spec.width) ? this._spec.width : this._isHorizontal ? this.getLayoutRect().width : scroll_bar_1.SCROLL_BAR_DEFAULT_SIZE;
37
61
  }
38
62
  _computeHeight() {
39
- return (0, vutils_1.isNumber)(this._spec.height) ? this._spec.height : this._isHorizontal ? scroll_bar_1.SCROLL_BAR_DEFAULT_SIZE : this.getLayoutRect().height;
63
+ return !1 === this._visible ? 0 : (0, vutils_1.isNumber)(this._spec.height) ? this._spec.height : this._isHorizontal ? scroll_bar_1.SCROLL_BAR_DEFAULT_SIZE : this.getLayoutRect().height;
40
64
  }
41
65
  _getAttrs() {
42
66
  var _a, _b, _c, _d, _e, _f;
@@ -66,31 +90,6 @@ class ScrollBar extends data_filter_base_component_1.DataFilterBaseComponent {
66
90
  })), container.add(this._component);
67
91
  }
68
92
  }
69
- _handleChange(start, end, updateComponent) {
70
- super._handleChange(start, end, updateComponent);
71
- const isSameScrollValue = (0, util_1.isClose)(this._start, start) && (0, util_1.isClose)(this._end, end);
72
- if (this._shouldChange && (!isSameScrollValue || !1 === this._spec.realTime)) {
73
- updateComponent && this._component && this._component.setAttribute("range", [ start, end ]),
74
- this._start = start, this._end = end;
75
- const startValue = this.statePointToData(start), endValue = this.statePointToData(end);
76
- ((0, vutils_1.isFunction)(this._spec.updateDataAfterChange) ? this._spec.updateDataAfterChange(start, end, startValue, endValue) : this._handleStateChange(this.statePointToData(start), this.statePointToData(end))) && this.event.emit(event_1.ChartEvent.scrollBarChange, {
77
- model: this,
78
- value: {
79
- filterData: "axis" !== this._filterMode,
80
- start: this._start,
81
- end: this._end,
82
- startValue: this._startValue,
83
- endValue: this._endValue,
84
- newDomain: this._newDomain
85
- }
86
- });
87
- }
88
- }
89
- _handleDataCollectionChange() {
90
- if (this._spec.auto) {
91
- this._data.getDataView().reRunAllTransform();
92
- }
93
- }
94
93
  _getComponentAttrs() {
95
94
  const {rail: rail, slider: slider, innerPadding: innerPadding} = this._spec, attrs = {};
96
95
  return (0, vutils_1.isNil)(innerPadding) || (attrs.padding = innerPadding), (0,