@visactor/vchart 2.0.8-alpha.5 → 2.0.9
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.
- package/build/es5/index.js +1 -1
- package/build/index.es.js +908 -583
- package/build/index.js +908 -583
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/config.d.ts +1 -0
- package/cjs/animation/config.js +13 -1
- package/cjs/animation/config.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +0 -2
- package/cjs/chart/base/base-chart.js +2 -16
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +0 -2
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/compile/compiler.d.ts +5 -0
- package/cjs/compile/compiler.js +42 -4
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +2 -0
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +1 -1
- package/cjs/component/axis/base-axis.js +1 -1
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +1 -1
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +1 -1
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/interface/common.d.ts +1 -0
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.d.ts +2 -0
- package/cjs/component/axis/mixin/band-axis-mixin.js +10 -4
- package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +5 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +15 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +1 -1
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/axis/polar/band-axis.d.ts +1 -1
- package/cjs/component/axis/polar/band-axis.js.map +1 -1
- package/cjs/component/brush/brush.js +6 -5
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +31 -52
- package/cjs/component/data-zoom/data-filter-base-component.js +164 -240
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-event.d.ts +53 -0
- package/cjs/component/data-zoom/data-filter-event.js +112 -0
- package/cjs/component/data-zoom/data-filter-event.js.map +1 -0
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +23 -12
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +129 -84
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +4 -3
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +35 -36
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/data-zoom/util.d.ts +14 -0
- package/cjs/component/data-zoom/util.js +81 -7
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/constant/event.d.ts +1 -0
- package/cjs/constant/event.js +8 -8
- package/cjs/constant/event.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/vchart.d.ts +0 -2
- package/cjs/core/vchart.js +0 -4
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +2 -1
- package/cjs/mark/base/base-mark.js +7 -3
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/interface/common.d.ts +1 -0
- package/cjs/mark/interface/common.js.map +1 -1
- package/cjs/plugin/other.js +2 -1
- package/cjs/plugin/other.js.map +1 -1
- package/cjs/series/bar/bar.js +1 -1
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +1 -0
- package/cjs/series/base/base-series.js +7 -2
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/dot/dot.js +6 -2
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/util/stack.js +1 -1
- package/cjs/series/util/stack.js.map +1 -1
- package/cjs/typings/spec/common.js.map +1 -1
- package/esm/animation/config.d.ts +1 -0
- package/esm/animation/config.js +8 -1
- package/esm/animation/config.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +0 -2
- package/esm/chart/base/base-chart.js +2 -15
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +0 -2
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/compile/compiler.d.ts +5 -0
- package/esm/compile/compiler.js +44 -4
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +2 -0
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +1 -1
- package/esm/component/axis/base-axis.js +1 -1
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +1 -1
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +1 -1
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/interface/common.d.ts +1 -0
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.d.ts +2 -0
- package/esm/component/axis/mixin/band-axis-mixin.js +10 -4
- package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.d.ts +5 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +15 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +1 -1
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/axis/polar/band-axis.d.ts +1 -1
- package/esm/component/axis/polar/band-axis.js.map +1 -1
- package/esm/component/brush/brush.js +6 -4
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +31 -52
- package/esm/component/data-zoom/data-filter-base-component.js +155 -232
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-filter-event.d.ts +53 -0
- package/esm/component/data-zoom/data-filter-event.js +108 -0
- package/esm/component/data-zoom/data-filter-event.js.map +1 -0
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +23 -12
- package/esm/component/data-zoom/data-zoom/data-zoom.js +125 -82
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +4 -3
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +36 -36
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/data-zoom/util.d.ts +14 -0
- package/esm/component/data-zoom/util.js +63 -7
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/constant/event.d.ts +1 -0
- package/esm/constant/event.js +8 -8
- package/esm/constant/event.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/vchart.d.ts +0 -2
- package/esm/core/vchart.js +0 -4
- package/esm/core/vchart.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +2 -1
- package/esm/mark/base/base-mark.js +7 -3
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/interface/common.d.ts +1 -0
- package/esm/mark/interface/common.js.map +1 -1
- package/esm/plugin/other.js +2 -2
- package/esm/plugin/other.js.map +1 -1
- package/esm/series/bar/bar.js +2 -2
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +1 -0
- package/esm/series/base/base-series.js +6 -2
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/dot/dot.js +6 -2
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/util/stack.js +2 -2
- package/esm/series/util/stack.js.map +1 -1
- package/esm/typings/spec/common.js.map +1 -1
- package/package.json +8 -8
|
@@ -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"),
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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.
|
|
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.
|
|
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()
|
|
35
|
-
|
|
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(),
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
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
|
-
|
|
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
|
|
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 ?
|
|
63
|
-
this._stateScale.range(stateScaleRange),
|
|
64
|
-
this.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
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)
|
|
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.
|
|
137
|
-
this._component.
|
|
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)
|
|
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
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
18
|
-
super.
|
|
19
|
-
|
|
20
|
-
(this.
|
|
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
|
-
|
|
38
|
+
_handleDataCollectionChange() {
|
|
39
|
+
if (this._spec.auto) {
|
|
40
|
+
this._data.getDataView().reRunAllTransform();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
_beforeLayoutEnd() {
|
|
23
44
|
var _a, _b;
|
|
24
|
-
|
|
25
|
-
|
|
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,
|