@visactor/vrender-components 1.0.25 → 1.0.26-alpha.1
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/cjs/data-zoom/data-zoom.js +5 -2
- package/cjs/data-zoom/data-zoom.js.map +1 -1
- package/cjs/data-zoom/renderer.js +11 -5
- package/cjs/data-zoom/renderer.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/dist/index.es.js +29 -17
- package/es/data-zoom/data-zoom.js +5 -2
- package/es/data-zoom/data-zoom.js.map +1 -1
- package/es/data-zoom/renderer.js +11 -5
- package/es/data-zoom/renderer.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -98,9 +98,12 @@ class DataZoom extends base_1.AbstractComponent {
|
|
|
98
98
|
}))));
|
|
99
99
|
}
|
|
100
100
|
setAttributes(params, forceUpdateTag) {
|
|
101
|
+
var _a, _b;
|
|
101
102
|
const {start: start, end: end} = this.attribute;
|
|
102
|
-
start && (this._state.start =
|
|
103
|
-
this.
|
|
103
|
+
start && (this._state.start = null !== (_a = params.start) && void 0 !== _a ? _a : start),
|
|
104
|
+
end && (this._state.end = null !== (_b = params.end) && void 0 !== _b ? _b : end),
|
|
105
|
+
this._renderer.setAttributes(this._getRendererAttrs()), this._interaction.setAttributes(this._getInteractionAttrs()),
|
|
106
|
+
super.setAttributes(params, forceUpdateTag);
|
|
104
107
|
}
|
|
105
108
|
render() {
|
|
106
109
|
this._layoutCacheFromConfig = null, this._container = this.createOrUpdateChild("datazoom-container", {}, "group"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import { type IGroup } from '@visactor/vrender-core';\nimport { array, isFunction, isValid, merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { IDataZoomEvent, IDataZoomInteractiveEvent, type DataZoomAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { DataZoomRenderer, type DataZoomRendererAttrs } from './renderer';\nimport { DataZoomInteraction, type InteractionAttributes } from './interaction';\nimport { loadDataZoomComponent } from './register';\nimport { DEFAULT_DATA_ZOOM_ATTRIBUTES } from './config';\n\nloadDataZoomComponent();\nexport class DataZoom extends AbstractComponent<Required<DataZoomAttributes>> {\n name = 'dataZoom';\n static defaultAttributes = DEFAULT_DATA_ZOOM_ATTRIBUTES;\n /** 交互控制 */\n private _interaction: DataZoomInteraction;\n /** 渲染控制 */\n private _renderer: DataZoomRenderer;\n /** 共享变量: 容器 */\n private _container: IGroup;\n /** 共享变量: 状态 */\n private _state: { start: number; end: number } = { start: 0, end: 1 };\n /** 共享变量: 布局 */\n private _layoutCacheFromConfig: any;\n\n /** 中间量 */\n private _isHorizontal: boolean;\n\n constructor(attributes: DataZoomAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, DataZoom.defaultAttributes, attributes));\n const { start, end, orient } = this.attribute as DataZoomAttributes;\n this._isHorizontal = orient === 'top' || orient === 'bottom';\n start && (this._state.start = start);\n end && (this._state.end = end);\n this._renderer = new DataZoomRenderer(this._getRendererAttrs());\n this._interaction = new DataZoomInteraction(this._getInteractionAttrs());\n }\n\n /**\n * 获取背景框中的位置和宽高\n * @description 实际绘制的背景框中的高度或宽度 减去 中间手柄的高度或宽度\n */\n getLayoutAttrFromConfig = () => {\n if (this._layoutCacheFromConfig) {\n return this._layoutCacheFromConfig;\n }\n const {\n position: positionConfig,\n size,\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n backgroundStyle = {}\n } = this.attribute as DataZoomAttributes;\n const { width: widthConfig, height: heightConfig } = size;\n const middleHandlerSize = middleHandlerStyle.background?.size ?? 10;\n\n // 如果middleHandler显示的话,要将其宽高计入datazoom宽高\n let width;\n let height;\n let position;\n if (middleHandlerStyle.visible) {\n if (this._isHorizontal) {\n width = widthConfig;\n height = heightConfig - middleHandlerSize;\n position = {\n x: positionConfig.x,\n y: positionConfig.y + middleHandlerSize\n };\n } else {\n width = widthConfig - middleHandlerSize;\n height = heightConfig;\n position = {\n x: positionConfig.x + (orient === 'left' ? middleHandlerSize : 0),\n y: positionConfig.y\n };\n }\n } else {\n width = widthConfig;\n height = heightConfig;\n position = positionConfig;\n }\n\n const startHandlerSize = (startHandlerStyle.size as number) ?? (this._isHorizontal ? height : width);\n const endHandlerSize = (endHandlerStyle.size as number) ?? (this._isHorizontal ? height : width);\n // 如果startHandler显示的话,要将其宽高计入dataZoom宽高\n if (startHandlerStyle.visible) {\n if (this._isHorizontal) {\n width -= (startHandlerSize + endHandlerSize) / 2;\n position = {\n x: position.x + startHandlerSize / 2,\n y: position.y\n };\n } else {\n height -= (startHandlerSize + endHandlerSize) / 2;\n position = {\n x: position.x,\n y: position.y + startHandlerSize / 2\n };\n }\n }\n\n // stroke 需计入宽高, 否则dataZoom在画布边缘会被裁剪lineWidth / 2\n height += (backgroundStyle.lineWidth ?? 2) / 2;\n width += (backgroundStyle.lineWidth ?? 2) / 2;\n\n this._layoutCacheFromConfig = {\n position,\n width,\n height\n };\n return this._layoutCacheFromConfig;\n };\n\n private _getRendererAttrs(): DataZoomRendererAttrs {\n return {\n attribute: this.attribute,\n getLayoutAttrFromConfig: this.getLayoutAttrFromConfig,\n setState: (state: { start: number; end: number }) => {\n this._state = state;\n },\n getState: () => this._state,\n getContainer: () => this._container\n };\n }\n\n private _getInteractionAttrs(): InteractionAttributes {\n return {\n stage: this.stage,\n attribute: this.attribute,\n startHandlerMask: this._renderer.startHandlerMask,\n endHandlerMask: this._renderer.endHandlerMask,\n middleHandlerSymbol: this._renderer.middleHandlerSymbol,\n middleHandlerRect: this._renderer.middleHandlerRect,\n selectedBackground: this._renderer.selectedBackground,\n background: this._renderer.background,\n previewGroup: this._renderer.previewGroup,\n selectedPreviewGroup: this._renderer.selectedPreviewGroup,\n getLayoutAttrFromConfig: this.getLayoutAttrFromConfig,\n setState: (state: { start: number; end: number }) => {\n this._state = state;\n },\n getState: () => this._state,\n getGlobalTransMatrix: () => this.globalTransMatrix\n };\n }\n\n bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n this.setAttribute('childrenPickable', false);\n return;\n }\n this._interaction.bindEvents();\n this._interaction.on(IDataZoomInteractiveEvent.stateUpdate, ({ shouldRender }) => {\n if (shouldRender) {\n this._renderer.renderDataZoom(true);\n }\n });\n this._interaction.on(IDataZoomInteractiveEvent.dataZoomUpdate, ({ start, end, tag }) => {\n this._dispatchEvent(IDataZoomEvent.dataZoomChange, { start, end, tag });\n });\n this._interaction.on(IDataZoomInteractiveEvent.maskUpdate, () => {\n this._renderer.renderDragMask();\n });\n if (this.attribute.showDetail === 'auto') {\n this._container.addEventListener('pointerenter', () => {\n this._renderer.showText = true;\n this._renderer.renderText();\n });\n this._container.addEventListener('pointerleave', () => {\n this._renderer.showText = false;\n this._renderer.renderText();\n });\n }\n }\n\n setAttributes(params: Partial<Required<DataZoomAttributes>>, forceUpdateTag?: boolean): void {\n const { start, end } = this.attribute as DataZoomAttributes;\n start && (this._state.start = start);\n end && (this._state.end = end);\n\n this._renderer.setAttributes(this._getRendererAttrs());\n this._interaction.setAttributes(this._getInteractionAttrs());\n super.setAttributes(params, forceUpdateTag);\n }\n\n render(): void {\n this._layoutCacheFromConfig = null;\n this._container = this.createOrUpdateChild('datazoom-container', {}, 'group') as IGroup;\n this._renderer.renderDataZoom();\n this._interaction.setAttributes(this._getInteractionAttrs());\n }\n\n release(all?: boolean): void {\n /**\n * 浏览器上的事件必须解绑,防止内存泄漏,场景树上的事件会自动解绑\n */\n super.release(all);\n this._interaction.clearDragEvents();\n }\n\n /** 外部重置组件的起始状态 */\n setStartAndEnd(start?: number, end?: number) {\n const { start: startState, end: endState } = this._state;\n if (isValid(start) && isValid(end) && (start !== startState || end !== endState)) {\n this._state = { start, end };\n this._renderer.renderDataZoom(true);\n this._dispatchEvent(IDataZoomEvent.dataZoomChange, {\n start,\n end\n });\n }\n }\n\n /** 外部更新背景图表的数据 */\n setPreviewData(data: any[]) {\n this._renderer.previewData = data;\n }\n\n /** 外部更新手柄文字 */\n setText(text: string, tag: 'start' | 'end') {\n if (tag === 'start') {\n this._renderer.startText.setAttribute('text', text);\n } else {\n this._renderer.endText.setAttribute('text', text);\n }\n }\n\n /** 外部获取起始点数据值 */\n getStartValue() {\n return this._renderer.startValue;\n }\n\n getEndTextValue() {\n return this._renderer.endValue;\n }\n\n getMiddleHandlerSize() {\n const { middleHandlerStyle = {} } = this.attribute as DataZoomAttributes;\n const middleHandlerRectSize = middleHandlerStyle.background?.size ?? 10;\n const middleHandlerSymbolSize = middleHandlerStyle.icon?.size ?? 10;\n return Math.max(middleHandlerRectSize, ...array(middleHandlerSymbolSize));\n }\n\n /** 外部传入数据映射 */\n setPreviewPointsX(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsX = callback);\n }\n setPreviewPointsY(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsY = callback);\n }\n setPreviewPointsX1(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsX1 = callback);\n }\n setPreviewPointsY1(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsY1 = callback);\n }\n setStatePointToData(callback: (state: number) => any) {\n isFunction(callback) && (this._renderer.statePointToData = callback);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import { type IGroup } from '@visactor/vrender-core';\nimport { array, isFunction, isValid, merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { IDataZoomEvent, IDataZoomInteractiveEvent, type DataZoomAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { DataZoomRenderer, type DataZoomRendererAttrs } from './renderer';\nimport { DataZoomInteraction, type InteractionAttributes } from './interaction';\nimport { loadDataZoomComponent } from './register';\nimport { DEFAULT_DATA_ZOOM_ATTRIBUTES } from './config';\n\nloadDataZoomComponent();\nexport class DataZoom extends AbstractComponent<Required<DataZoomAttributes>> {\n name = 'dataZoom';\n static defaultAttributes = DEFAULT_DATA_ZOOM_ATTRIBUTES;\n /** 交互控制 */\n private _interaction: DataZoomInteraction;\n /** 渲染控制 */\n private _renderer: DataZoomRenderer;\n /** 共享变量: 容器 */\n private _container: IGroup;\n /** 共享变量: 状态 */\n private _state: { start: number; end: number } = { start: 0, end: 1 };\n /** 共享变量: 布局 */\n private _layoutCacheFromConfig: any;\n\n /** 中间量 */\n private _isHorizontal: boolean;\n\n constructor(attributes: DataZoomAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, DataZoom.defaultAttributes, attributes));\n const { start, end, orient } = this.attribute as DataZoomAttributes;\n this._isHorizontal = orient === 'top' || orient === 'bottom';\n start && (this._state.start = start);\n end && (this._state.end = end);\n this._renderer = new DataZoomRenderer(this._getRendererAttrs());\n this._interaction = new DataZoomInteraction(this._getInteractionAttrs());\n }\n\n /**\n * 获取背景框中的位置和宽高\n * @description 实际绘制的背景框中的高度或宽度 减去 中间手柄的高度或宽度\n */\n getLayoutAttrFromConfig = () => {\n if (this._layoutCacheFromConfig) {\n return this._layoutCacheFromConfig;\n }\n const {\n position: positionConfig,\n size,\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n backgroundStyle = {}\n } = this.attribute as DataZoomAttributes;\n const { width: widthConfig, height: heightConfig } = size;\n const middleHandlerSize = middleHandlerStyle.background?.size ?? 10;\n\n // 如果middleHandler显示的话,要将其宽高计入datazoom宽高\n let width;\n let height;\n let position;\n if (middleHandlerStyle.visible) {\n if (this._isHorizontal) {\n width = widthConfig;\n height = heightConfig - middleHandlerSize;\n position = {\n x: positionConfig.x,\n y: positionConfig.y + middleHandlerSize\n };\n } else {\n width = widthConfig - middleHandlerSize;\n height = heightConfig;\n position = {\n x: positionConfig.x + (orient === 'left' ? middleHandlerSize : 0),\n y: positionConfig.y\n };\n }\n } else {\n width = widthConfig;\n height = heightConfig;\n position = positionConfig;\n }\n\n const startHandlerSize = (startHandlerStyle.size as number) ?? (this._isHorizontal ? height : width);\n const endHandlerSize = (endHandlerStyle.size as number) ?? (this._isHorizontal ? height : width);\n // 如果startHandler显示的话,要将其宽高计入dataZoom宽高\n if (startHandlerStyle.visible) {\n if (this._isHorizontal) {\n width -= (startHandlerSize + endHandlerSize) / 2;\n position = {\n x: position.x + startHandlerSize / 2,\n y: position.y\n };\n } else {\n height -= (startHandlerSize + endHandlerSize) / 2;\n position = {\n x: position.x,\n y: position.y + startHandlerSize / 2\n };\n }\n }\n\n // stroke 需计入宽高, 否则dataZoom在画布边缘会被裁剪lineWidth / 2\n height += (backgroundStyle.lineWidth ?? 2) / 2;\n width += (backgroundStyle.lineWidth ?? 2) / 2;\n\n this._layoutCacheFromConfig = {\n position,\n width,\n height\n };\n return this._layoutCacheFromConfig;\n };\n\n private _getRendererAttrs(): DataZoomRendererAttrs {\n return {\n attribute: this.attribute,\n getLayoutAttrFromConfig: this.getLayoutAttrFromConfig,\n setState: (state: { start: number; end: number }) => {\n this._state = state;\n },\n getState: () => this._state,\n getContainer: () => this._container\n };\n }\n\n private _getInteractionAttrs(): InteractionAttributes {\n return {\n stage: this.stage,\n attribute: this.attribute,\n startHandlerMask: this._renderer.startHandlerMask,\n endHandlerMask: this._renderer.endHandlerMask,\n middleHandlerSymbol: this._renderer.middleHandlerSymbol,\n middleHandlerRect: this._renderer.middleHandlerRect,\n selectedBackground: this._renderer.selectedBackground,\n background: this._renderer.background,\n previewGroup: this._renderer.previewGroup,\n selectedPreviewGroup: this._renderer.selectedPreviewGroup,\n getLayoutAttrFromConfig: this.getLayoutAttrFromConfig,\n setState: (state: { start: number; end: number }) => {\n this._state = state;\n },\n getState: () => this._state,\n getGlobalTransMatrix: () => this.globalTransMatrix\n };\n }\n\n bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n this.setAttribute('childrenPickable', false);\n return;\n }\n this._interaction.bindEvents();\n this._interaction.on(IDataZoomInteractiveEvent.stateUpdate, ({ shouldRender }) => {\n if (shouldRender) {\n this._renderer.renderDataZoom(true);\n }\n });\n this._interaction.on(IDataZoomInteractiveEvent.dataZoomUpdate, ({ start, end, tag }) => {\n this._dispatchEvent(IDataZoomEvent.dataZoomChange, { start, end, tag });\n });\n this._interaction.on(IDataZoomInteractiveEvent.maskUpdate, () => {\n this._renderer.renderDragMask();\n });\n if (this.attribute.showDetail === 'auto') {\n this._container.addEventListener('pointerenter', () => {\n this._renderer.showText = true;\n this._renderer.renderText();\n });\n this._container.addEventListener('pointerleave', () => {\n this._renderer.showText = false;\n this._renderer.renderText();\n });\n }\n }\n\n setAttributes(params: Partial<Required<DataZoomAttributes>>, forceUpdateTag?: boolean): void {\n const { start, end } = this.attribute as DataZoomAttributes;\n start && (this._state.start = params.start ?? start);\n end && (this._state.end = params.end ?? end);\n\n this._renderer.setAttributes(this._getRendererAttrs());\n this._interaction.setAttributes(this._getInteractionAttrs());\n super.setAttributes(params, forceUpdateTag);\n }\n\n render(): void {\n this._layoutCacheFromConfig = null;\n this._container = this.createOrUpdateChild('datazoom-container', {}, 'group') as IGroup;\n this._renderer.renderDataZoom();\n this._interaction.setAttributes(this._getInteractionAttrs());\n }\n\n release(all?: boolean): void {\n /**\n * 浏览器上的事件必须解绑,防止内存泄漏,场景树上的事件会自动解绑\n */\n super.release(all);\n this._interaction.clearDragEvents();\n }\n\n /** 外部重置组件的起始状态 */\n setStartAndEnd(start?: number, end?: number) {\n const { start: startState, end: endState } = this._state;\n if (isValid(start) && isValid(end) && (start !== startState || end !== endState)) {\n this._state = { start, end };\n this._renderer.renderDataZoom(true);\n this._dispatchEvent(IDataZoomEvent.dataZoomChange, {\n start,\n end\n });\n }\n }\n\n /** 外部更新背景图表的数据 */\n setPreviewData(data: any[]) {\n this._renderer.previewData = data;\n }\n\n /** 外部更新手柄文字 */\n setText(text: string, tag: 'start' | 'end') {\n if (tag === 'start') {\n this._renderer.startText.setAttribute('text', text);\n } else {\n this._renderer.endText.setAttribute('text', text);\n }\n }\n\n /** 外部获取起始点数据值 */\n getStartValue() {\n return this._renderer.startValue;\n }\n\n getEndTextValue() {\n return this._renderer.endValue;\n }\n\n getMiddleHandlerSize() {\n const { middleHandlerStyle = {} } = this.attribute as DataZoomAttributes;\n const middleHandlerRectSize = middleHandlerStyle.background?.size ?? 10;\n const middleHandlerSymbolSize = middleHandlerStyle.icon?.size ?? 10;\n return Math.max(middleHandlerRectSize, ...array(middleHandlerSymbolSize));\n }\n\n /** 外部传入数据映射 */\n setPreviewPointsX(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsX = callback);\n }\n setPreviewPointsY(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsY = callback);\n }\n setPreviewPointsX1(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsX1 = callback);\n }\n setPreviewPointsY1(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsY1 = callback);\n }\n setStatePointToData(callback: (state: number) => any) {\n isFunction(callback) && (this._renderer.statePointToData = callback);\n }\n}\n"]}
|
|
@@ -327,8 +327,11 @@ class DataZoomRenderer {
|
|
|
327
327
|
pickable: !1
|
|
328
328
|
}, selectedBackgroundChartStyle.area));
|
|
329
329
|
}
|
|
330
|
-
_computeBasePoints() {
|
|
331
|
-
const {orient: orient} = this.attribute,
|
|
330
|
+
_computeBasePoints(points) {
|
|
331
|
+
const {orient: orient} = this.attribute, key = "bottom" === orient || "top" === orient ? "x" : "y";
|
|
332
|
+
let lastPointSide = Math.sign(points[points.length - 1][key] - points[0][key]);
|
|
333
|
+
0 === lastPointSide && (lastPointSide = 1);
|
|
334
|
+
const {position: position, width: width, height: height} = this._getLayoutAttrFromConfig();
|
|
332
335
|
let basePointStart, basePointEnd;
|
|
333
336
|
return this._isHorizontal ? (basePointStart = [ {
|
|
334
337
|
x: position.x,
|
|
@@ -348,7 +351,10 @@ class DataZoomRenderer {
|
|
|
348
351
|
} ], basePointEnd = [ {
|
|
349
352
|
x: position.x,
|
|
350
353
|
y: position.y
|
|
351
|
-
} ]), {
|
|
354
|
+
} ]), Math.sign(basePointEnd[0][key] - basePointStart[0][key]) !== lastPointSide ? {
|
|
355
|
+
basePointStart: basePointEnd,
|
|
356
|
+
basePointEnd: basePointStart
|
|
357
|
+
} : {
|
|
352
358
|
basePointStart: basePointStart,
|
|
353
359
|
basePointEnd: basePointEnd
|
|
354
360
|
};
|
|
@@ -368,7 +374,7 @@ class DataZoomRenderer {
|
|
|
368
374
|
})));
|
|
369
375
|
if (0 === previewPoints.length) return previewPoints;
|
|
370
376
|
previewPoints = this._simplifyPoints(previewPoints);
|
|
371
|
-
const {basePointStart: basePointStart, basePointEnd: basePointEnd} = this._computeBasePoints();
|
|
377
|
+
const {basePointStart: basePointStart, basePointEnd: basePointEnd} = this._computeBasePoints(previewPoints);
|
|
372
378
|
return basePointStart.concat(previewPoints).concat(basePointEnd);
|
|
373
379
|
}
|
|
374
380
|
_getPreviewAreaPoints() {
|
|
@@ -380,7 +386,7 @@ class DataZoomRenderer {
|
|
|
380
386
|
})));
|
|
381
387
|
if (0 === previewPoints.length) return previewPoints;
|
|
382
388
|
previewPoints = this._simplifyPoints(previewPoints);
|
|
383
|
-
const {basePointStart: basePointStart, basePointEnd: basePointEnd} = this._computeBasePoints();
|
|
389
|
+
const {basePointStart: basePointStart, basePointEnd: basePointEnd} = this._computeBasePoints(previewPoints);
|
|
384
390
|
return basePointStart.concat(previewPoints).concat(basePointEnd);
|
|
385
391
|
}
|
|
386
392
|
renderText() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-zoom/renderer.ts"],"names":[],"mappings":"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","file":"renderer.js","sourcesContent":["import type { DataZoomAttributes } from './type';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { flatten_simplify } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IArea, IGroup, ILine, IRect, ISymbol, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isFunction, merge } from '@visactor/vutils';\nimport { Tag, type TagAttributes } from '../tag';\nimport { DEFAULT_HANDLER_ATTR_MAP } from './config';\nimport { isTextOverflow } from './utils';\nexport interface DataZoomRendererAttrs {\n attribute: Partial<Required<DataZoomAttributes>>;\n getLayoutAttrFromConfig: any;\n getState: () => { start: number; end: number };\n setState: (state: { start: number; end: number }) => void;\n getContainer: () => IGroup;\n}\nexport class DataZoomRenderer {\n /** 上层透传 */\n attribute: Partial<Required<DataZoomAttributes>>;\n private _getLayoutAttrFromConfig: any;\n private _getState: () => { start: number; end: number };\n private _getContainer: () => IGroup;\n\n /** 中间变量 */\n private _isHorizontal: boolean;\n\n /** 手柄 */\n private _startHandlerMask!: IRect;\n get startHandlerMask() {\n return this._startHandlerMask;\n }\n private _startHandler!: ISymbol;\n private _middleHandlerSymbol!: ISymbol;\n get middleHandlerSymbol() {\n return this._middleHandlerSymbol;\n }\n private _middleHandlerRect!: IRect;\n get middleHandlerRect() {\n return this._middleHandlerRect;\n }\n private _endHandlerMask!: IRect;\n get endHandlerMask() {\n return this._endHandlerMask;\n }\n private _endHandler!: ISymbol;\n private _selectedBackground!: IRect;\n get selectedBackground() {\n return this._selectedBackground;\n }\n private _dragMask!: IRect;\n get dragMask() {\n return this._dragMask;\n }\n private _startText!: Tag;\n get startText() {\n return this._startText;\n }\n private _endText!: Tag;\n get endText() {\n return this._endText;\n }\n private _startValue!: string | number;\n get startValue() {\n return this._startValue;\n }\n private _endValue!: string | number;\n get endValue() {\n return this._endValue;\n }\n private _showText!: boolean;\n set showText(showText: boolean) {\n this._showText = showText;\n }\n\n /** 背景图表 */\n private _background!: IRect;\n get background() {\n return this._background;\n }\n private _previewData: any[] = [];\n set previewData(previewData: any[]) {\n this._previewData = previewData;\n }\n private _previewGroup!: IGroup;\n get previewGroup() {\n return this._previewGroup;\n }\n private _previewLine!: ILine;\n private _previewArea!: IArea;\n private _selectedPreviewGroupClip!: IGroup;\n private _selectedPreviewGroup!: IGroup;\n get selectedPreviewGroup() {\n return this._selectedPreviewGroup;\n }\n private _selectedPreviewLine!: ILine;\n private _selectedPreviewArea!: IArea;\n\n /** 回调函数 */\n private _previewPointsX!: (datum: any) => number;\n set previewPointsX(previewPointsX: (datum: any) => number) {\n this._previewPointsX = previewPointsX;\n }\n private _previewPointsY!: (datum: any) => number;\n set previewPointsY(previewPointsY: (datum: any) => number) {\n this._previewPointsY = previewPointsY;\n }\n private _previewPointsX1!: (datum: any) => number;\n set previewPointsX1(previewPointsX1: (datum: any) => number) {\n this._previewPointsX1 = previewPointsX1;\n }\n private _previewPointsY1!: (datum: any) => number;\n set previewPointsY1(previewPointsY1: (datum: any) => number) {\n this._previewPointsY1 = previewPointsY1;\n }\n private _statePointToData: (state: number) => any = state => state;\n set statePointToData(statePointToData: (state: number) => any) {\n this._statePointToData = statePointToData;\n }\n\n private _initAttrs(props: DataZoomRendererAttrs) {\n this.attribute = props.attribute;\n this._isHorizontal = this.attribute.orient === 'top' || this.attribute.orient === 'bottom';\n const { previewData, previewPointsX, previewPointsY, previewPointsX1, previewPointsY1 } = this\n .attribute as DataZoomAttributes;\n\n previewData && (this._previewData = previewData);\n isFunction(previewPointsX) && (this._previewPointsX = previewPointsX);\n isFunction(previewPointsY) && (this._previewPointsY = previewPointsY);\n isFunction(previewPointsX1) && (this._previewPointsX1 = previewPointsX1);\n isFunction(previewPointsY1) && (this._previewPointsY1 = previewPointsY1);\n this._getState = props.getState;\n this._getLayoutAttrFromConfig = props.getLayoutAttrFromConfig;\n this._getContainer = props.getContainer;\n }\n\n constructor(props: DataZoomRendererAttrs) {\n const { showDetail } = props.attribute as DataZoomAttributes;\n this._showText = showDetail === 'auto' ? false : showDetail;\n this._initAttrs(props);\n }\n\n setAttributes(props: DataZoomRendererAttrs): void {\n this._initAttrs(props);\n }\n\n renderDataZoom(onlyStateChange: boolean = false) {\n const {\n backgroundChartStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect\n } = this.attribute as DataZoomAttributes;\n\n this._renderBackground();\n\n /** 背景图表 */\n backgroundChartStyle.line?.visible && !onlyStateChange && this._setPreviewAttributes('line', this._getContainer());\n backgroundChartStyle.area?.visible && !onlyStateChange && this._setPreviewAttributes('area', this._getContainer());\n\n /** 背景选框 */\n brushSelect && this.renderDragMask();\n\n /** 选中背景 */\n this._renderSelectedBackground();\n\n /** 选中的背景图表 */\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('line', this._getContainer());\n selectedBackgroundChartStyle.line?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('line');\n\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('area', this._getContainer());\n selectedBackgroundChartStyle.area?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('area');\n\n /** 左右 和 中间手柄 */\n this._renderHandler();\n\n /** 左右文字 */\n if (this._showText) {\n this.renderText();\n }\n }\n\n /**\n * @description 渲染拖拽mask\n */\n renderDragMask() {\n const { dragMaskStyle } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const { start, end } = this._getState();\n if (this._isHorizontal) {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n } else {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n }\n return { start, end };\n }\n\n /**\n * @description 渲染背景\n */\n private _renderBackground() {\n const { backgroundStyle, brushSelect, zoomLock } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const group = this._getContainer();\n this._background = group.createOrUpdateChild(\n 'background',\n {\n x: position.x,\n y: position.y,\n width,\n height,\n cursor: brushSelect ? 'crosshair' : 'auto',\n ...backgroundStyle,\n pickable: zoomLock ? false : (backgroundStyle.pickable ?? true)\n },\n 'rect'\n ) as IRect;\n }\n /**\n * @description 渲染手柄\n */\n private _renderHandler() {\n const {\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const startHandlerMinSize = startHandlerStyle.triggerMinSize ?? 40;\n const endHandlerMinSize = endHandlerStyle.triggerMinSize ?? 40;\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: position.x + start * width,\n y: position.y - middleHandlerBackgroundSize,\n width: (end - start) * width,\n height: middleHandlerBackgroundSize,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : (middleHandlerStyle.background?.style?.pickable ?? true)\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x: position.x + ((start + end) / 2) * width,\n y: position.y - middleHandlerBackgroundSize / 2,\n strokeBoundsBuffer: 0,\n angle: 0,\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : (middleHandlerStyle.icon.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + start * width,\n y: position.y + height / 2,\n size: height,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : (startHandlerStyle.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + end * width,\n y: position.y + height / 2,\n size: height,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : (endHandlerStyle.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + start * width - startHandlerWidth / 2,\n y: position.y + height / 2 - startHandlerHeight / 2,\n width: startHandlerWidth,\n height: startHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + end * width - endHandlerWidth / 2,\n y: position.y + height / 2 - endHandlerHeight / 2,\n width: endHandlerWidth,\n height: endHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n } else {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: orient === 'left' ? position.x - middleHandlerBackgroundSize : position.x + width,\n y: position.y + start * height,\n width: middleHandlerBackgroundSize,\n height: (end - start) * height,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : (middleHandlerStyle.background?.style?.pickable ?? true)\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x:\n orient === 'left'\n ? position.x - middleHandlerBackgroundSize / 2\n : position.x + width + middleHandlerBackgroundSize / 2,\n y: position.y + ((start + end) / 2) * height,\n // size: height,\n angle: 90 * (Math.PI / 180),\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n strokeBoundsBuffer: 0,\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : (middleHandlerStyle.icon?.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + width / 2,\n y: position.y + start * height,\n size: width,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : (startHandlerStyle.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + width / 2,\n y: position.y + end * height,\n size: width,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : (endHandlerStyle.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + width / 2 + startHandlerWidth / 2,\n y: position.y + start * height - startHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + width / 2 + endHandlerWidth / 2,\n y: position.y + end * height - endHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n }\n }\n\n /**\n * @description 渲染选中背景\n */\n private _renderSelectedBackground() {\n const {\n selectedBackgroundStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect,\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : ((selectedBackgroundChartStyle as any).pickable ?? true)\n },\n 'rect'\n ) as IRect;\n } else {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : (selectedBackgroundStyle.pickable ?? true)\n },\n 'rect'\n ) as IRect;\n }\n }\n\n // 使用callback绘制背景图表 (数据和数据映射从外部传进来)\n private _setPreviewAttributes(type: 'line' | 'area', group: IGroup) {\n if (!this._previewGroup) {\n this._previewGroup = group.createOrUpdateChild('previewGroup', { pickable: false }, 'group') as IGroup;\n }\n if (type === 'line') {\n this._previewLine = this._previewGroup.createOrUpdateChild('previewLine', {}, 'line') as ILine;\n } else {\n this._previewArea = this._previewGroup.createOrUpdateChild(\n 'previewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n\n const { backgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n\n type === 'line' &&\n this._previewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.line\n });\n type === 'area' &&\n this._previewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.area\n });\n }\n\n // 使用callback绘制选中的背景图表 (数据和数据映射从外部传进来)\n private _setSelectedPreviewClipAttributes(type: 'area' | 'line', group: IGroup) {\n if (!this._selectedPreviewGroupClip) {\n this._selectedPreviewGroupClip = group.createOrUpdateChild(\n 'selectedPreviewGroupClip',\n { pickable: false },\n 'group'\n ) as IGroup;\n this._selectedPreviewGroup = this._selectedPreviewGroupClip.createOrUpdateChild(\n 'selectedPreviewGroup',\n {},\n 'group'\n ) as IGroup;\n }\n\n const { start, end } = this._getState();\n const { position, width, height } = this._getLayoutAttrFromConfig();\n this._selectedPreviewGroupClip.setAttributes({\n x: this._isHorizontal ? position.x + start * width : position.x,\n y: this._isHorizontal ? position.y : position.y + start * height,\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n clip: true,\n pickable: false\n } as any);\n this._selectedPreviewGroup.setAttributes({\n x: -(this._isHorizontal ? position.x + start * width : position.x),\n y: -(this._isHorizontal ? position.y : position.y + start * height),\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n pickable: false\n } as any);\n }\n\n private _setSelectedPreviewAttributes(type: 'line' | 'area') {\n const { selectedBackgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n if (type === 'line') {\n this._selectedPreviewLine = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewLine',\n {},\n 'line'\n ) as ILine;\n } else {\n this._selectedPreviewArea = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n type === 'line' &&\n this._selectedPreviewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.line\n });\n type === 'area' &&\n this._selectedPreviewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.area\n });\n }\n\n private _computeBasePoints() {\n const { orient } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n let basePointStart: any;\n let basePointEnd: any;\n if (this._isHorizontal) {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else if (orient === 'left') {\n basePointStart = [\n {\n x: position.x + width,\n y: position.y\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x,\n y: position.y\n }\n ];\n }\n return {\n basePointStart,\n basePointEnd\n };\n }\n\n private _simplifyPoints(points: IPointLike[]) {\n // 采样压缩率策略: 如果没做任何配置, 那么限制在niceCount内, 如果做了配置, 则按照配置计算\n const niceCount = 10000; // 经验值\n if (points.length > niceCount) {\n const tolerance = this.attribute.tolerance ?? this._previewData.length / niceCount;\n return flatten_simplify(points, tolerance, false);\n }\n return points;\n }\n\n private _getPreviewLinePoints() {\n let previewPoints = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints();\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n private _getPreviewAreaPoints() {\n let previewPoints: IPointLike[] = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d),\n x1: this._previewPointsX1 && this._previewPointsX1(d),\n y1: this._previewPointsY1 && this._previewPointsY1(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints();\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n /**\n * @description 渲染文本\n */\n renderText() {\n let startTextBounds: IBoundsLike | null = null;\n let endTextBounds: IBoundsLike | null = null;\n\n // 第一次绘制\n this._setTextAttr(startTextBounds, endTextBounds);\n if (this._showText) {\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n\n // 第二次绘制: 将text限制在组件bounds内\n this._setTextAttr(startTextBounds, endTextBounds);\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n const { x1, x2, y1, y2 } = startTextBounds;\n const { dx: startTextDx = 0, dy: startTextDy = 0 } = this.attribute.startTextStyle;\n\n // 第三次绘制: 避免startText和endText重叠, 如果重叠了, 对startText做位置调整(考虑到调整的最小化,只单独调整startText而不调整endText)\n if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {\n const direction = this.attribute.orient === 'bottom' || this.attribute.orient === 'right' ? -1 : 1;\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy + direction * Math.abs(endTextBounds.y1 - endTextBounds.y2));\n } else {\n this._startText.setAttribute('dx', startTextDx + direction * Math.abs(endTextBounds.x1 - endTextBounds.x2));\n }\n } else {\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy);\n } else {\n this._startText.setAttribute('dx', startTextDx);\n }\n }\n }\n }\n private _setTextAttr(startTextBounds: IBoundsLike, endTextBounds: IBoundsLike) {\n const { startTextStyle, endTextStyle } = this.attribute as DataZoomAttributes;\n const { formatMethod: startTextFormat, ...restStartTextStyle } = startTextStyle;\n const { formatMethod: endTextFormat, ...restEndTextStyle } = endTextStyle;\n const { start, end } = this._getState();\n this._startValue = this._statePointToData(start);\n this._endValue = this._statePointToData(end);\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const startTextValue = startTextFormat ? startTextFormat(this._startValue) : this._startValue;\n const endTextValue = endTextFormat ? endTextFormat(this._endValue) : this._endValue;\n const componentBoundsLike = {\n x1: position.x,\n y1: position.y,\n x2: position.x + width,\n y2: position.y + height\n };\n let startTextPosition: IPointLike;\n let endTextPosition: IPointLike;\n let startTextAlignStyle: any;\n let endTextAlignStyle: any;\n if (this._isHorizontal) {\n startTextPosition = {\n x: position.x + start * width,\n y: position.y + height / 2\n };\n endTextPosition = {\n x: position.x + end * width,\n y: position.y + height / 2\n };\n startTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal) ? 'left' : 'right',\n textBaseline: restStartTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n endTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'right' : 'left',\n textBaseline: restEndTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n } else {\n startTextPosition = {\n x: position.x + width / 2,\n y: position.y + start * height\n };\n endTextPosition = {\n x: position.x + width / 2,\n y: position.y + end * height\n };\n startTextAlignStyle = {\n textAlign: restStartTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal)\n ? 'top'\n : 'bottom'\n };\n endTextAlignStyle = {\n textAlign: restEndTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'bottom' : 'top'\n };\n }\n\n this._startText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restStartTextStyle, {\n text: startTextValue,\n x: startTextPosition.x,\n y: startTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: startTextAlignStyle\n }),\n `data-zoom-start-text`\n );\n this._endText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restEndTextStyle, {\n text: endTextValue,\n x: endTextPosition.x,\n y: endTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: endTextAlignStyle\n }),\n `data-zoom-end-text`\n );\n }\n private _maybeAddLabel(container: IGroup, attributes: TagAttributes, name: string): Tag {\n let labelShape = container.find(node => node.name === name, true) as unknown as Tag;\n if (labelShape) {\n labelShape.setAttributes(attributes);\n } else {\n labelShape = new Tag(attributes);\n labelShape.name = name;\n container.add(labelShape as unknown as INode);\n }\n\n return labelShape;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/data-zoom/renderer.ts"],"names":[],"mappings":"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","file":"renderer.js","sourcesContent":["import type { DataZoomAttributes } from './type';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { flatten_simplify } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IArea, IGroup, ILine, IRect, ISymbol, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isFunction, merge } from '@visactor/vutils';\nimport { Tag, type TagAttributes } from '../tag';\nimport { DEFAULT_HANDLER_ATTR_MAP } from './config';\nimport { isTextOverflow } from './utils';\nexport interface DataZoomRendererAttrs {\n attribute: Partial<Required<DataZoomAttributes>>;\n getLayoutAttrFromConfig: any;\n getState: () => { start: number; end: number };\n setState: (state: { start: number; end: number }) => void;\n getContainer: () => IGroup;\n}\nexport class DataZoomRenderer {\n /** 上层透传 */\n attribute: Partial<Required<DataZoomAttributes>>;\n private _getLayoutAttrFromConfig: any;\n private _getState: () => { start: number; end: number };\n private _getContainer: () => IGroup;\n\n /** 中间变量 */\n private _isHorizontal: boolean;\n\n /** 手柄 */\n private _startHandlerMask!: IRect;\n get startHandlerMask() {\n return this._startHandlerMask;\n }\n private _startHandler!: ISymbol;\n private _middleHandlerSymbol!: ISymbol;\n get middleHandlerSymbol() {\n return this._middleHandlerSymbol;\n }\n private _middleHandlerRect!: IRect;\n get middleHandlerRect() {\n return this._middleHandlerRect;\n }\n private _endHandlerMask!: IRect;\n get endHandlerMask() {\n return this._endHandlerMask;\n }\n private _endHandler!: ISymbol;\n private _selectedBackground!: IRect;\n get selectedBackground() {\n return this._selectedBackground;\n }\n private _dragMask!: IRect;\n get dragMask() {\n return this._dragMask;\n }\n private _startText!: Tag;\n get startText() {\n return this._startText;\n }\n private _endText!: Tag;\n get endText() {\n return this._endText;\n }\n private _startValue!: string | number;\n get startValue() {\n return this._startValue;\n }\n private _endValue!: string | number;\n get endValue() {\n return this._endValue;\n }\n private _showText!: boolean;\n set showText(showText: boolean) {\n this._showText = showText;\n }\n\n /** 背景图表 */\n private _background!: IRect;\n get background() {\n return this._background;\n }\n private _previewData: any[] = [];\n set previewData(previewData: any[]) {\n this._previewData = previewData;\n }\n private _previewGroup!: IGroup;\n get previewGroup() {\n return this._previewGroup;\n }\n private _previewLine!: ILine;\n private _previewArea!: IArea;\n private _selectedPreviewGroupClip!: IGroup;\n private _selectedPreviewGroup!: IGroup;\n get selectedPreviewGroup() {\n return this._selectedPreviewGroup;\n }\n private _selectedPreviewLine!: ILine;\n private _selectedPreviewArea!: IArea;\n\n /** 回调函数 */\n private _previewPointsX!: (datum: any) => number;\n set previewPointsX(previewPointsX: (datum: any) => number) {\n this._previewPointsX = previewPointsX;\n }\n private _previewPointsY!: (datum: any) => number;\n set previewPointsY(previewPointsY: (datum: any) => number) {\n this._previewPointsY = previewPointsY;\n }\n private _previewPointsX1!: (datum: any) => number;\n set previewPointsX1(previewPointsX1: (datum: any) => number) {\n this._previewPointsX1 = previewPointsX1;\n }\n private _previewPointsY1!: (datum: any) => number;\n set previewPointsY1(previewPointsY1: (datum: any) => number) {\n this._previewPointsY1 = previewPointsY1;\n }\n private _statePointToData: (state: number) => any = state => state;\n set statePointToData(statePointToData: (state: number) => any) {\n this._statePointToData = statePointToData;\n }\n\n private _initAttrs(props: DataZoomRendererAttrs) {\n this.attribute = props.attribute;\n this._isHorizontal = this.attribute.orient === 'top' || this.attribute.orient === 'bottom';\n const { previewData, previewPointsX, previewPointsY, previewPointsX1, previewPointsY1 } = this\n .attribute as DataZoomAttributes;\n\n previewData && (this._previewData = previewData);\n isFunction(previewPointsX) && (this._previewPointsX = previewPointsX);\n isFunction(previewPointsY) && (this._previewPointsY = previewPointsY);\n isFunction(previewPointsX1) && (this._previewPointsX1 = previewPointsX1);\n isFunction(previewPointsY1) && (this._previewPointsY1 = previewPointsY1);\n this._getState = props.getState;\n this._getLayoutAttrFromConfig = props.getLayoutAttrFromConfig;\n this._getContainer = props.getContainer;\n }\n\n constructor(props: DataZoomRendererAttrs) {\n const { showDetail } = props.attribute as DataZoomAttributes;\n this._showText = showDetail === 'auto' ? false : showDetail;\n this._initAttrs(props);\n }\n\n setAttributes(props: DataZoomRendererAttrs): void {\n this._initAttrs(props);\n }\n\n renderDataZoom(onlyStateChange: boolean = false) {\n const {\n backgroundChartStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect\n } = this.attribute as DataZoomAttributes;\n\n this._renderBackground();\n\n /** 背景图表 */\n backgroundChartStyle.line?.visible && !onlyStateChange && this._setPreviewAttributes('line', this._getContainer());\n backgroundChartStyle.area?.visible && !onlyStateChange && this._setPreviewAttributes('area', this._getContainer());\n\n /** 背景选框 */\n brushSelect && this.renderDragMask();\n\n /** 选中背景 */\n this._renderSelectedBackground();\n\n /** 选中的背景图表 */\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('line', this._getContainer());\n selectedBackgroundChartStyle.line?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('line');\n\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('area', this._getContainer());\n selectedBackgroundChartStyle.area?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('area');\n\n /** 左右 和 中间手柄 */\n this._renderHandler();\n\n /** 左右文字 */\n if (this._showText) {\n this.renderText();\n }\n }\n\n /**\n * @description 渲染拖拽mask\n */\n renderDragMask() {\n const { dragMaskStyle } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const { start, end } = this._getState();\n if (this._isHorizontal) {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n } else {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n }\n return { start, end };\n }\n\n /**\n * @description 渲染背景\n */\n private _renderBackground() {\n const { backgroundStyle, brushSelect, zoomLock } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const group = this._getContainer();\n this._background = group.createOrUpdateChild(\n 'background',\n {\n x: position.x,\n y: position.y,\n width,\n height,\n cursor: brushSelect ? 'crosshair' : 'auto',\n ...backgroundStyle,\n pickable: zoomLock ? false : backgroundStyle.pickable ?? true\n },\n 'rect'\n ) as IRect;\n }\n /**\n * @description 渲染手柄\n */\n private _renderHandler() {\n const {\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const startHandlerMinSize = startHandlerStyle.triggerMinSize ?? 40;\n const endHandlerMinSize = endHandlerStyle.triggerMinSize ?? 40;\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: position.x + start * width,\n y: position.y - middleHandlerBackgroundSize,\n width: (end - start) * width,\n height: middleHandlerBackgroundSize,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : middleHandlerStyle.background?.style?.pickable ?? true\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x: position.x + ((start + end) / 2) * width,\n y: position.y - middleHandlerBackgroundSize / 2,\n strokeBoundsBuffer: 0,\n angle: 0,\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : middleHandlerStyle.icon.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + start * width,\n y: position.y + height / 2,\n size: height,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : startHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + end * width,\n y: position.y + height / 2,\n size: height,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : endHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + start * width - startHandlerWidth / 2,\n y: position.y + height / 2 - startHandlerHeight / 2,\n width: startHandlerWidth,\n height: startHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + end * width - endHandlerWidth / 2,\n y: position.y + height / 2 - endHandlerHeight / 2,\n width: endHandlerWidth,\n height: endHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n } else {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: orient === 'left' ? position.x - middleHandlerBackgroundSize : position.x + width,\n y: position.y + start * height,\n width: middleHandlerBackgroundSize,\n height: (end - start) * height,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : middleHandlerStyle.background?.style?.pickable ?? true\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x:\n orient === 'left'\n ? position.x - middleHandlerBackgroundSize / 2\n : position.x + width + middleHandlerBackgroundSize / 2,\n y: position.y + ((start + end) / 2) * height,\n // size: height,\n angle: 90 * (Math.PI / 180),\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n strokeBoundsBuffer: 0,\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : middleHandlerStyle.icon?.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + width / 2,\n y: position.y + start * height,\n size: width,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : startHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + width / 2,\n y: position.y + end * height,\n size: width,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : endHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + width / 2 + startHandlerWidth / 2,\n y: position.y + start * height - startHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + width / 2 + endHandlerWidth / 2,\n y: position.y + end * height - endHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n }\n }\n\n /**\n * @description 渲染选中背景\n */\n private _renderSelectedBackground() {\n const {\n selectedBackgroundStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect,\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : (selectedBackgroundChartStyle as any).pickable ?? true\n },\n 'rect'\n ) as IRect;\n } else {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : selectedBackgroundStyle.pickable ?? true\n },\n 'rect'\n ) as IRect;\n }\n }\n\n // 使用callback绘制背景图表 (数据和数据映射从外部传进来)\n private _setPreviewAttributes(type: 'line' | 'area', group: IGroup) {\n if (!this._previewGroup) {\n this._previewGroup = group.createOrUpdateChild('previewGroup', { pickable: false }, 'group') as IGroup;\n }\n if (type === 'line') {\n this._previewLine = this._previewGroup.createOrUpdateChild('previewLine', {}, 'line') as ILine;\n } else {\n this._previewArea = this._previewGroup.createOrUpdateChild(\n 'previewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n\n const { backgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n\n type === 'line' &&\n this._previewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.line\n });\n type === 'area' &&\n this._previewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.area\n });\n }\n\n // 使用callback绘制选中的背景图表 (数据和数据映射从外部传进来)\n private _setSelectedPreviewClipAttributes(type: 'area' | 'line', group: IGroup) {\n if (!this._selectedPreviewGroupClip) {\n this._selectedPreviewGroupClip = group.createOrUpdateChild(\n 'selectedPreviewGroupClip',\n { pickable: false },\n 'group'\n ) as IGroup;\n this._selectedPreviewGroup = this._selectedPreviewGroupClip.createOrUpdateChild(\n 'selectedPreviewGroup',\n {},\n 'group'\n ) as IGroup;\n }\n\n const { start, end } = this._getState();\n const { position, width, height } = this._getLayoutAttrFromConfig();\n this._selectedPreviewGroupClip.setAttributes({\n x: this._isHorizontal ? position.x + start * width : position.x,\n y: this._isHorizontal ? position.y : position.y + start * height,\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n clip: true,\n pickable: false\n } as any);\n this._selectedPreviewGroup.setAttributes({\n x: -(this._isHorizontal ? position.x + start * width : position.x),\n y: -(this._isHorizontal ? position.y : position.y + start * height),\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n pickable: false\n } as any);\n }\n\n private _setSelectedPreviewAttributes(type: 'line' | 'area') {\n const { selectedBackgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n if (type === 'line') {\n this._selectedPreviewLine = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewLine',\n {},\n 'line'\n ) as ILine;\n } else {\n this._selectedPreviewArea = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n type === 'line' &&\n this._selectedPreviewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.line\n });\n type === 'area' &&\n this._selectedPreviewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.area\n });\n }\n\n private _computeBasePoints(points: IPointLike[]) {\n const { orient } = this.attribute as DataZoomAttributes;\n const key = orient === 'bottom' || orient === 'top' ? 'x' : 'y';\n let lastPointSide = Math.sign(points[points.length - 1][key] - points[0][key]);\n if (lastPointSide === 0) {\n lastPointSide = 1;\n }\n const { position, width, height } = this._getLayoutAttrFromConfig();\n let basePointStart: any;\n let basePointEnd: any;\n if (this._isHorizontal) {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else if (orient === 'left') {\n basePointStart = [\n {\n x: position.x + width,\n y: position.y\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x,\n y: position.y\n }\n ];\n }\n\n if (Math.sign(basePointEnd[0][key] - basePointStart[0][key]) !== lastPointSide) {\n return {\n basePointStart: basePointEnd,\n basePointEnd: basePointStart\n };\n }\n\n return {\n basePointStart,\n basePointEnd\n };\n }\n\n private _simplifyPoints(points: IPointLike[]) {\n // 采样压缩率策略: 如果没做任何配置, 那么限制在niceCount内, 如果做了配置, 则按照配置计算\n const niceCount = 10000; // 经验值\n if (points.length > niceCount) {\n const tolerance = this.attribute.tolerance ?? this._previewData.length / niceCount;\n return flatten_simplify(points, tolerance, false);\n }\n return points;\n }\n\n private _getPreviewLinePoints() {\n let previewPoints = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n private _getPreviewAreaPoints() {\n let previewPoints: IPointLike[] = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d),\n x1: this._previewPointsX1 && this._previewPointsX1(d),\n y1: this._previewPointsY1 && this._previewPointsY1(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n /**\n * @description 渲染文本\n */\n renderText() {\n let startTextBounds: IBoundsLike | null = null;\n let endTextBounds: IBoundsLike | null = null;\n\n // 第一次绘制\n this._setTextAttr(startTextBounds, endTextBounds);\n if (this._showText) {\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n\n // 第二次绘制: 将text限制在组件bounds内\n this._setTextAttr(startTextBounds, endTextBounds);\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n const { x1, x2, y1, y2 } = startTextBounds;\n const { dx: startTextDx = 0, dy: startTextDy = 0 } = this.attribute.startTextStyle;\n\n // 第三次绘制: 避免startText和endText重叠, 如果重叠了, 对startText做位置调整(考虑到调整的最小化,只单独调整startText而不调整endText)\n if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {\n const direction = this.attribute.orient === 'bottom' || this.attribute.orient === 'right' ? -1 : 1;\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy + direction * Math.abs(endTextBounds.y1 - endTextBounds.y2));\n } else {\n this._startText.setAttribute('dx', startTextDx + direction * Math.abs(endTextBounds.x1 - endTextBounds.x2));\n }\n } else {\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy);\n } else {\n this._startText.setAttribute('dx', startTextDx);\n }\n }\n }\n }\n private _setTextAttr(startTextBounds: IBoundsLike, endTextBounds: IBoundsLike) {\n const { startTextStyle, endTextStyle } = this.attribute as DataZoomAttributes;\n const { formatMethod: startTextFormat, ...restStartTextStyle } = startTextStyle;\n const { formatMethod: endTextFormat, ...restEndTextStyle } = endTextStyle;\n const { start, end } = this._getState();\n this._startValue = this._statePointToData(start);\n this._endValue = this._statePointToData(end);\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const startTextValue = startTextFormat ? startTextFormat(this._startValue) : this._startValue;\n const endTextValue = endTextFormat ? endTextFormat(this._endValue) : this._endValue;\n const componentBoundsLike = {\n x1: position.x,\n y1: position.y,\n x2: position.x + width,\n y2: position.y + height\n };\n let startTextPosition: IPointLike;\n let endTextPosition: IPointLike;\n let startTextAlignStyle: any;\n let endTextAlignStyle: any;\n if (this._isHorizontal) {\n startTextPosition = {\n x: position.x + start * width,\n y: position.y + height / 2\n };\n endTextPosition = {\n x: position.x + end * width,\n y: position.y + height / 2\n };\n startTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal) ? 'left' : 'right',\n textBaseline: restStartTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n endTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'right' : 'left',\n textBaseline: restEndTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n } else {\n startTextPosition = {\n x: position.x + width / 2,\n y: position.y + start * height\n };\n endTextPosition = {\n x: position.x + width / 2,\n y: position.y + end * height\n };\n startTextAlignStyle = {\n textAlign: restStartTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal)\n ? 'top'\n : 'bottom'\n };\n endTextAlignStyle = {\n textAlign: restEndTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'bottom' : 'top'\n };\n }\n\n this._startText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restStartTextStyle, {\n text: startTextValue,\n x: startTextPosition.x,\n y: startTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: startTextAlignStyle\n }),\n `data-zoom-start-text`\n );\n this._endText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restEndTextStyle, {\n text: endTextValue,\n x: endTextPosition.x,\n y: endTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: endTextAlignStyle\n }),\n `data-zoom-end-text`\n );\n }\n private _maybeAddLabel(container: IGroup, attributes: TagAttributes, name: string): Tag {\n let labelShape = container.find(node => node.name === name, true) as unknown as Tag;\n if (labelShape) {\n labelShape.setAttributes(attributes);\n } else {\n labelShape = new Tag(attributes);\n labelShape.name = name;\n container.add(labelShape as unknown as INode);\n }\n\n return labelShape;\n }\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
package/cjs/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
17
17
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
|
-
}), exports.version = void 0, exports.version = "1.0.
|
|
20
|
+
}), exports.version = void 0, exports.version = "1.0.26-alpha.1", __exportStar(require("./core/base"), exports),
|
|
21
21
|
__exportStar(require("./core/type"), exports), __exportStar(require("./scrollbar"), exports),
|
|
22
22
|
__exportStar(require("./tag"), exports), __exportStar(require("./poptip"), exports),
|
|
23
23
|
__exportStar(require("./crosshair"), exports), __exportStar(require("./label"), exports),
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAExC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,wCAAsB;AACtB,2CAAyB;AACzB,8CAA4B;AAC5B,0CAAwB;AACxB,yCAAuB;AACvB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,wCAAsB;AACtB,6CAA2B;AAC3B,0CAAwB;AACxB,8CAA4B;AAC5B,4CAA0B;AAC1B,yCAAuB;AACvB,2CAAyB;AACzB,+CAA6B;AAC7B,wDAAsC","file":"index.js","sourcesContent":["// 导出版本号\nexport const version = \"1.0.26-alpha.1\";\n\nexport * from './core/base';\nexport * from './core/type';\nexport * from './scrollbar';\nexport * from './tag';\nexport * from './poptip';\nexport * from './crosshair';\nexport * from './label';\nexport * from './axis';\nexport * from './axis/grid';\nexport * from './segment';\nexport * from './data-zoom';\nexport * from './marker';\nexport * from './pager';\nexport * from './legend';\nexport * from './title';\nexport * from './indicator';\nexport * from './slider';\nexport * from './link-path';\nexport * from './player';\nexport * from './brush';\nexport * from './tooltip';\nexport * from './timeline';\nexport * from './interface';\nexport * from './jsx';\nexport * from './checkbox';\nexport * from './radio';\nexport * from './empty-tip';\nexport * from './weather';\nexport * from './util';\nexport * from './switch';\nexport * from './label-item';\nexport * from './table-series-number';\n"]}
|
package/dist/index.es.js
CHANGED
|
@@ -25073,7 +25073,7 @@ class DataZoomRenderer {
|
|
|
25073
25073
|
const { position, width, height } = this._getLayoutAttrFromConfig();
|
|
25074
25074
|
const group = this._getContainer();
|
|
25075
25075
|
this._background = group.createOrUpdateChild('background', Object.assign(Object.assign({ x: position.x, y: position.y, width,
|
|
25076
|
-
height, cursor: brushSelect ? 'crosshair' : 'auto' }, backgroundStyle), { pickable: zoomLock ? false : (
|
|
25076
|
+
height, cursor: brushSelect ? 'crosshair' : 'auto' }, backgroundStyle), { pickable: zoomLock ? false : (_a = backgroundStyle.pickable) !== null && _a !== void 0 ? _a : true }), 'rect');
|
|
25077
25077
|
}
|
|
25078
25078
|
_renderHandler() {
|
|
25079
25079
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
|
|
@@ -25086,11 +25086,11 @@ class DataZoomRenderer {
|
|
|
25086
25086
|
if (this._isHorizontal) {
|
|
25087
25087
|
if (middleHandlerStyle.visible) {
|
|
25088
25088
|
const middleHandlerBackgroundSize = ((_c = middleHandlerStyle.background) === null || _c === void 0 ? void 0 : _c.size) || 10;
|
|
25089
|
-
this._middleHandlerRect = group.createOrUpdateChild('middleHandlerRect', Object.assign(Object.assign({ x: position.x + start * width, y: position.y - middleHandlerBackgroundSize, width: (end - start) * width, height: middleHandlerBackgroundSize }, (_d = middleHandlerStyle.background) === null || _d === void 0 ? void 0 : _d.style), { pickable: zoomLock ? false : (
|
|
25090
|
-
this._middleHandlerSymbol = group.createOrUpdateChild('middleHandlerSymbol', Object.assign(Object.assign({ x: position.x + ((start + end) / 2) * width, y: position.y - middleHandlerBackgroundSize / 2, strokeBoundsBuffer: 0, angle: 0, symbolType: (_j = (_h = middleHandlerStyle.icon) === null || _h === void 0 ? void 0 : _h.symbolType) !== null && _j !== void 0 ? _j : 'square' }, middleHandlerStyle.icon), { pickable: zoomLock ? false : (
|
|
25089
|
+
this._middleHandlerRect = group.createOrUpdateChild('middleHandlerRect', Object.assign(Object.assign({ x: position.x + start * width, y: position.y - middleHandlerBackgroundSize, width: (end - start) * width, height: middleHandlerBackgroundSize }, (_d = middleHandlerStyle.background) === null || _d === void 0 ? void 0 : _d.style), { pickable: zoomLock ? false : (_g = (_f = (_e = middleHandlerStyle.background) === null || _e === void 0 ? void 0 : _e.style) === null || _f === void 0 ? void 0 : _f.pickable) !== null && _g !== void 0 ? _g : true }), 'rect');
|
|
25090
|
+
this._middleHandlerSymbol = group.createOrUpdateChild('middleHandlerSymbol', Object.assign(Object.assign({ x: position.x + ((start + end) / 2) * width, y: position.y - middleHandlerBackgroundSize / 2, strokeBoundsBuffer: 0, angle: 0, symbolType: (_j = (_h = middleHandlerStyle.icon) === null || _h === void 0 ? void 0 : _h.symbolType) !== null && _j !== void 0 ? _j : 'square' }, middleHandlerStyle.icon), { pickable: zoomLock ? false : (_k = middleHandlerStyle.icon.pickable) !== null && _k !== void 0 ? _k : true }), 'symbol');
|
|
25091
25091
|
}
|
|
25092
|
-
this._startHandler = group.createOrUpdateChild('startHandler', Object.assign(Object.assign(Object.assign({ x: position.x + start * width, y: position.y + height / 2, size: height, symbolType: (_l = startHandlerStyle.symbolType) !== null && _l !== void 0 ? _l : 'square' }, DEFAULT_HANDLER_ATTR_MAP.horizontal), startHandlerStyle), { pickable: zoomLock ? false : (
|
|
25093
|
-
this._endHandler = group.createOrUpdateChild('endHandler', Object.assign(Object.assign(Object.assign({ x: position.x + end * width, y: position.y + height / 2, size: height, symbolType: (_o = endHandlerStyle.symbolType) !== null && _o !== void 0 ? _o : 'square' }, DEFAULT_HANDLER_ATTR_MAP.horizontal), endHandlerStyle), { pickable: zoomLock ? false : (
|
|
25092
|
+
this._startHandler = group.createOrUpdateChild('startHandler', Object.assign(Object.assign(Object.assign({ x: position.x + start * width, y: position.y + height / 2, size: height, symbolType: (_l = startHandlerStyle.symbolType) !== null && _l !== void 0 ? _l : 'square' }, DEFAULT_HANDLER_ATTR_MAP.horizontal), startHandlerStyle), { pickable: zoomLock ? false : (_m = startHandlerStyle.pickable) !== null && _m !== void 0 ? _m : true }), 'symbol');
|
|
25093
|
+
this._endHandler = group.createOrUpdateChild('endHandler', Object.assign(Object.assign(Object.assign({ x: position.x + end * width, y: position.y + height / 2, size: height, symbolType: (_o = endHandlerStyle.symbolType) !== null && _o !== void 0 ? _o : 'square' }, DEFAULT_HANDLER_ATTR_MAP.horizontal), endHandlerStyle), { pickable: zoomLock ? false : (_p = endHandlerStyle.pickable) !== null && _p !== void 0 ? _p : true }), 'symbol');
|
|
25094
25094
|
const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);
|
|
25095
25095
|
const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);
|
|
25096
25096
|
const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);
|
|
@@ -25101,13 +25101,13 @@ class DataZoomRenderer {
|
|
|
25101
25101
|
else {
|
|
25102
25102
|
if (middleHandlerStyle.visible) {
|
|
25103
25103
|
const middleHandlerBackgroundSize = ((_q = middleHandlerStyle.background) === null || _q === void 0 ? void 0 : _q.size) || 10;
|
|
25104
|
-
this._middleHandlerRect = group.createOrUpdateChild('middleHandlerRect', Object.assign(Object.assign({ x: orient === 'left' ? position.x - middleHandlerBackgroundSize : position.x + width, y: position.y + start * height, width: middleHandlerBackgroundSize, height: (end - start) * height }, (_r = middleHandlerStyle.background) === null || _r === void 0 ? void 0 : _r.style), { pickable: zoomLock ? false : (
|
|
25104
|
+
this._middleHandlerRect = group.createOrUpdateChild('middleHandlerRect', Object.assign(Object.assign({ x: orient === 'left' ? position.x - middleHandlerBackgroundSize : position.x + width, y: position.y + start * height, width: middleHandlerBackgroundSize, height: (end - start) * height }, (_r = middleHandlerStyle.background) === null || _r === void 0 ? void 0 : _r.style), { pickable: zoomLock ? false : (_u = (_t = (_s = middleHandlerStyle.background) === null || _s === void 0 ? void 0 : _s.style) === null || _t === void 0 ? void 0 : _t.pickable) !== null && _u !== void 0 ? _u : true }), 'rect');
|
|
25105
25105
|
this._middleHandlerSymbol = group.createOrUpdateChild('middleHandlerSymbol', Object.assign(Object.assign({ x: orient === 'left'
|
|
25106
25106
|
? position.x - middleHandlerBackgroundSize / 2
|
|
25107
|
-
: position.x + width + middleHandlerBackgroundSize / 2, y: position.y + ((start + end) / 2) * height, angle: 90 * (Math.PI / 180), symbolType: (_w = (_v = middleHandlerStyle.icon) === null || _v === void 0 ? void 0 : _v.symbolType) !== null && _w !== void 0 ? _w : 'square', strokeBoundsBuffer: 0 }, middleHandlerStyle.icon), { pickable: zoomLock ? false : (
|
|
25107
|
+
: position.x + width + middleHandlerBackgroundSize / 2, y: position.y + ((start + end) / 2) * height, angle: 90 * (Math.PI / 180), symbolType: (_w = (_v = middleHandlerStyle.icon) === null || _v === void 0 ? void 0 : _v.symbolType) !== null && _w !== void 0 ? _w : 'square', strokeBoundsBuffer: 0 }, middleHandlerStyle.icon), { pickable: zoomLock ? false : (_y = (_x = middleHandlerStyle.icon) === null || _x === void 0 ? void 0 : _x.pickable) !== null && _y !== void 0 ? _y : true }), 'symbol');
|
|
25108
25108
|
}
|
|
25109
|
-
this._startHandler = group.createOrUpdateChild('startHandler', Object.assign(Object.assign(Object.assign({ x: position.x + width / 2, y: position.y + start * height, size: width, symbolType: (_z = startHandlerStyle.symbolType) !== null && _z !== void 0 ? _z : 'square' }, DEFAULT_HANDLER_ATTR_MAP.vertical), startHandlerStyle), { pickable: zoomLock ? false : (
|
|
25110
|
-
this._endHandler = group.createOrUpdateChild('endHandler', Object.assign(Object.assign(Object.assign({ x: position.x + width / 2, y: position.y + end * height, size: width, symbolType: (_1 = endHandlerStyle.symbolType) !== null && _1 !== void 0 ? _1 : 'square' }, DEFAULT_HANDLER_ATTR_MAP.vertical), endHandlerStyle), { pickable: zoomLock ? false : (
|
|
25109
|
+
this._startHandler = group.createOrUpdateChild('startHandler', Object.assign(Object.assign(Object.assign({ x: position.x + width / 2, y: position.y + start * height, size: width, symbolType: (_z = startHandlerStyle.symbolType) !== null && _z !== void 0 ? _z : 'square' }, DEFAULT_HANDLER_ATTR_MAP.vertical), startHandlerStyle), { pickable: zoomLock ? false : (_0 = startHandlerStyle.pickable) !== null && _0 !== void 0 ? _0 : true }), 'symbol');
|
|
25110
|
+
this._endHandler = group.createOrUpdateChild('endHandler', Object.assign(Object.assign(Object.assign({ x: position.x + width / 2, y: position.y + end * height, size: width, symbolType: (_1 = endHandlerStyle.symbolType) !== null && _1 !== void 0 ? _1 : 'square' }, DEFAULT_HANDLER_ATTR_MAP.vertical), endHandlerStyle), { pickable: zoomLock ? false : (_2 = endHandlerStyle.pickable) !== null && _2 !== void 0 ? _2 : true }), 'symbol');
|
|
25111
25111
|
const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);
|
|
25112
25112
|
const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);
|
|
25113
25113
|
const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);
|
|
@@ -25123,10 +25123,10 @@ class DataZoomRenderer {
|
|
|
25123
25123
|
const { position, width, height } = this._getLayoutAttrFromConfig();
|
|
25124
25124
|
const group = this._getContainer();
|
|
25125
25125
|
if (this._isHorizontal) {
|
|
25126
|
-
this._selectedBackground = group.createOrUpdateChild('selectedBackground', Object.assign(Object.assign({ x: position.x + start * width, y: position.y, width: (end - start) * width, height: height, cursor: brushSelect ? 'crosshair' : 'move' }, selectedBackgroundStyle), { pickable: zoomLock ? false : (
|
|
25126
|
+
this._selectedBackground = group.createOrUpdateChild('selectedBackground', Object.assign(Object.assign({ x: position.x + start * width, y: position.y, width: (end - start) * width, height: height, cursor: brushSelect ? 'crosshair' : 'move' }, selectedBackgroundStyle), { pickable: zoomLock ? false : (_a = selectedBackgroundChartStyle.pickable) !== null && _a !== void 0 ? _a : true }), 'rect');
|
|
25127
25127
|
}
|
|
25128
25128
|
else {
|
|
25129
|
-
this._selectedBackground = group.createOrUpdateChild('selectedBackground', Object.assign(Object.assign({ x: position.x, y: position.y + start * height, width, height: (end - start) * height, cursor: brushSelect ? 'crosshair' : 'move' }, selectedBackgroundStyle), { pickable: zoomLock ? false : (
|
|
25129
|
+
this._selectedBackground = group.createOrUpdateChild('selectedBackground', Object.assign(Object.assign({ x: position.x, y: position.y + start * height, width, height: (end - start) * height, cursor: brushSelect ? 'crosshair' : 'move' }, selectedBackgroundStyle), { pickable: zoomLock ? false : (_b = selectedBackgroundStyle.pickable) !== null && _b !== void 0 ? _b : true }), 'rect');
|
|
25130
25130
|
}
|
|
25131
25131
|
}
|
|
25132
25132
|
_setPreviewAttributes(type, group) {
|
|
@@ -25181,8 +25181,13 @@ class DataZoomRenderer {
|
|
|
25181
25181
|
type === 'area' &&
|
|
25182
25182
|
this._selectedPreviewArea.setAttributes(Object.assign({ points: this._getPreviewAreaPoints(), curveType: 'basis', pickable: false }, selectedBackgroundChartStyle.area));
|
|
25183
25183
|
}
|
|
25184
|
-
_computeBasePoints() {
|
|
25184
|
+
_computeBasePoints(points) {
|
|
25185
25185
|
const { orient } = this.attribute;
|
|
25186
|
+
const key = orient === 'bottom' || orient === 'top' ? 'x' : 'y';
|
|
25187
|
+
let lastPointSide = Math.sign(points[points.length - 1][key] - points[0][key]);
|
|
25188
|
+
if (lastPointSide === 0) {
|
|
25189
|
+
lastPointSide = 1;
|
|
25190
|
+
}
|
|
25186
25191
|
const { position, width, height } = this._getLayoutAttrFromConfig();
|
|
25187
25192
|
let basePointStart;
|
|
25188
25193
|
let basePointEnd;
|
|
@@ -25228,6 +25233,12 @@ class DataZoomRenderer {
|
|
|
25228
25233
|
}
|
|
25229
25234
|
];
|
|
25230
25235
|
}
|
|
25236
|
+
if (Math.sign(basePointEnd[0][key] - basePointStart[0][key]) !== lastPointSide) {
|
|
25237
|
+
return {
|
|
25238
|
+
basePointStart: basePointEnd,
|
|
25239
|
+
basePointEnd: basePointStart
|
|
25240
|
+
};
|
|
25241
|
+
}
|
|
25231
25242
|
return {
|
|
25232
25243
|
basePointStart,
|
|
25233
25244
|
basePointEnd
|
|
@@ -25253,7 +25264,7 @@ class DataZoomRenderer {
|
|
|
25253
25264
|
return previewPoints;
|
|
25254
25265
|
}
|
|
25255
25266
|
previewPoints = this._simplifyPoints(previewPoints);
|
|
25256
|
-
const { basePointStart, basePointEnd } = this._computeBasePoints();
|
|
25267
|
+
const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);
|
|
25257
25268
|
return basePointStart.concat(previewPoints).concat(basePointEnd);
|
|
25258
25269
|
}
|
|
25259
25270
|
_getPreviewAreaPoints() {
|
|
@@ -25269,7 +25280,7 @@ class DataZoomRenderer {
|
|
|
25269
25280
|
return previewPoints;
|
|
25270
25281
|
}
|
|
25271
25282
|
previewPoints = this._simplifyPoints(previewPoints);
|
|
25272
|
-
const { basePointStart, basePointEnd } = this._computeBasePoints();
|
|
25283
|
+
const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);
|
|
25273
25284
|
return basePointStart.concat(previewPoints).concat(basePointEnd);
|
|
25274
25285
|
}
|
|
25275
25286
|
renderText() {
|
|
@@ -25801,9 +25812,10 @@ class DataZoom extends AbstractComponent {
|
|
|
25801
25812
|
}
|
|
25802
25813
|
}
|
|
25803
25814
|
setAttributes(params, forceUpdateTag) {
|
|
25815
|
+
var _a, _b;
|
|
25804
25816
|
const { start, end } = this.attribute;
|
|
25805
|
-
start && (this._state.start = start);
|
|
25806
|
-
end && (this._state.end = end);
|
|
25817
|
+
start && (this._state.start = (_a = params.start) !== null && _a !== void 0 ? _a : start);
|
|
25818
|
+
end && (this._state.end = (_b = params.end) !== null && _b !== void 0 ? _b : end);
|
|
25807
25819
|
this._renderer.setAttributes(this._getRendererAttrs());
|
|
25808
25820
|
this._interaction.setAttributes(this._getInteractionAttrs());
|
|
25809
25821
|
super.setAttributes(params, forceUpdateTag);
|
|
@@ -34583,6 +34595,6 @@ TableSeriesNumber.defaultAttributes = {
|
|
|
34583
34595
|
select: true
|
|
34584
34596
|
};
|
|
34585
34597
|
|
|
34586
|
-
const version = "1.0.
|
|
34598
|
+
const version = "1.0.26-alpha.1";
|
|
34587
34599
|
|
|
34588
34600
|
export { AXIS_ELEMENT_NAME, AbstractComponent, ArcInfo, ArcLabel, ArcSegment, AxisStateValue, BasePlayer, Brush, CheckBox, CircleAxis, CircleAxisGrid, CircleCrosshair, ColorContinuousLegend, ContinuousPlayer, DEFAULT_ITEM_SPACE_COL, DEFAULT_ITEM_SPACE_ROW, DEFAULT_LABEL_SPACE, DEFAULT_PAGER_SPACE, DEFAULT_SHAPE_SIZE, DEFAULT_SHAPE_SPACE, DEFAULT_STATES$1 as DEFAULT_STATES, DEFAULT_TITLE_SPACE, DEFAULT_VALUE_SPACE, DataLabel, DataZoom, DataZoomActiveTag, DirectionEnum, DiscreteLegend, DiscretePlayer, EmptyTip, GroupTransition, IDataZoomEvent, IDataZoomInteractiveEvent, IMarkAreaLabelPosition, IMarkCommonArcLabelPosition, IMarkLineLabelPosition, IMarkPointItemPosition, IOperateType, Indicator, LEGEND_ELEMENT_NAME, LabelBase, LegendEvent, LegendStateValue, LineAxis, LineAxisGrid, LineCrosshair, LineLabel, LinkPath, MarkArcArea, MarkArcLine, MarkArea, MarkLine, MarkPoint, Pager, PlayerEventEnum, PolygonCrosshair, PolygonSectorCrosshair, PopTip, Radio, RectCrosshair, RectLabel, SLIDER_ELEMENT_NAME, ScrollBar, SectorCrosshair, Segment, SeriesNumberCellStateValue, SeriesNumberEvent, SizeContinuousLegend, Slider, StoryLabelItem, Switch, SymbolLabel, TableSeriesNumber, Tag, Timeline, Title, Tooltip, TopZIndex, VTag, WeatherBox, alignTextInLine, angle, angleLabelOrientAttribute, angleTo, cartesianTicks, clampRadian, computeOffsetForlimit, continuousTicks, contrastAccessibilityChecker, convertDomainToTickData, createTextGraphicByType, deltaXYToAngle, fuzzyEqualNumber, getAxisBreakSymbolAttrs, getCircleLabelPosition, getCirclePoints, getCircleVerticalVector, getElMap, getHorizontalPath, getMarksByName, getNoneGroupMarksByName, getPolarAngleLabelPosition, getPolygonPath, getSizeHandlerPath, getTextAlignAttrOfVerticalDir, getTextType, getVerticalCoord, getVerticalPath, hasOverlap, htmlAttributeTransform, initTextMeasure, isInRange, isPostiveXAxis, isRichText, isVisible, labelSmartInvert, length, limitShapeInBounds, linearDiscreteTicks, loadPoptip, loadScrollbar, measureTextSize, normalize, polarAngleAxisDiscreteTicks, polarTicks, reactAttributeTransform, registerArcDataLabel, registerLineDataLabel, registerMarkArcAreaAnimate, registerMarkArcLineAnimate, registerMarkAreaAnimate, registerMarkLineAnimate, registerMarkPointAnimate, registerRectDataLabel, registerSymbolDataLabel, removeRepeatPoint, richTextAttributeTransform, scale, scrollbarModule, setPoptipTheme, smartInvertStrategy, tan2AngleToAngle, textIntersect, ticks, traverseGroup, version };
|
|
@@ -104,9 +104,12 @@ export class DataZoom extends AbstractComponent {
|
|
|
104
104
|
}))));
|
|
105
105
|
}
|
|
106
106
|
setAttributes(params, forceUpdateTag) {
|
|
107
|
+
var _a, _b;
|
|
107
108
|
const {start: start, end: end} = this.attribute;
|
|
108
|
-
start && (this._state.start =
|
|
109
|
-
this.
|
|
109
|
+
start && (this._state.start = null !== (_a = params.start) && void 0 !== _a ? _a : start),
|
|
110
|
+
end && (this._state.end = null !== (_b = params.end) && void 0 !== _b ? _b : end),
|
|
111
|
+
this._renderer.setAttributes(this._getRendererAttrs()), this._interaction.setAttributes(this._getInteractionAttrs()),
|
|
112
|
+
super.setAttributes(params, forceUpdateTag);
|
|
110
113
|
}
|
|
111
114
|
render() {
|
|
112
115
|
this._layoutCacheFromConfig = null, this._container = this.createOrUpdateChild("datazoom-container", {}, "group"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import { type IGroup } from '@visactor/vrender-core';\nimport { array, isFunction, isValid, merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { IDataZoomEvent, IDataZoomInteractiveEvent, type DataZoomAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { DataZoomRenderer, type DataZoomRendererAttrs } from './renderer';\nimport { DataZoomInteraction, type InteractionAttributes } from './interaction';\nimport { loadDataZoomComponent } from './register';\nimport { DEFAULT_DATA_ZOOM_ATTRIBUTES } from './config';\n\nloadDataZoomComponent();\nexport class DataZoom extends AbstractComponent<Required<DataZoomAttributes>> {\n name = 'dataZoom';\n static defaultAttributes = DEFAULT_DATA_ZOOM_ATTRIBUTES;\n /** 交互控制 */\n private _interaction: DataZoomInteraction;\n /** 渲染控制 */\n private _renderer: DataZoomRenderer;\n /** 共享变量: 容器 */\n private _container: IGroup;\n /** 共享变量: 状态 */\n private _state: { start: number; end: number } = { start: 0, end: 1 };\n /** 共享变量: 布局 */\n private _layoutCacheFromConfig: any;\n\n /** 中间量 */\n private _isHorizontal: boolean;\n\n constructor(attributes: DataZoomAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, DataZoom.defaultAttributes, attributes));\n const { start, end, orient } = this.attribute as DataZoomAttributes;\n this._isHorizontal = orient === 'top' || orient === 'bottom';\n start && (this._state.start = start);\n end && (this._state.end = end);\n this._renderer = new DataZoomRenderer(this._getRendererAttrs());\n this._interaction = new DataZoomInteraction(this._getInteractionAttrs());\n }\n\n /**\n * 获取背景框中的位置和宽高\n * @description 实际绘制的背景框中的高度或宽度 减去 中间手柄的高度或宽度\n */\n getLayoutAttrFromConfig = () => {\n if (this._layoutCacheFromConfig) {\n return this._layoutCacheFromConfig;\n }\n const {\n position: positionConfig,\n size,\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n backgroundStyle = {}\n } = this.attribute as DataZoomAttributes;\n const { width: widthConfig, height: heightConfig } = size;\n const middleHandlerSize = middleHandlerStyle.background?.size ?? 10;\n\n // 如果middleHandler显示的话,要将其宽高计入datazoom宽高\n let width;\n let height;\n let position;\n if (middleHandlerStyle.visible) {\n if (this._isHorizontal) {\n width = widthConfig;\n height = heightConfig - middleHandlerSize;\n position = {\n x: positionConfig.x,\n y: positionConfig.y + middleHandlerSize\n };\n } else {\n width = widthConfig - middleHandlerSize;\n height = heightConfig;\n position = {\n x: positionConfig.x + (orient === 'left' ? middleHandlerSize : 0),\n y: positionConfig.y\n };\n }\n } else {\n width = widthConfig;\n height = heightConfig;\n position = positionConfig;\n }\n\n const startHandlerSize = (startHandlerStyle.size as number) ?? (this._isHorizontal ? height : width);\n const endHandlerSize = (endHandlerStyle.size as number) ?? (this._isHorizontal ? height : width);\n // 如果startHandler显示的话,要将其宽高计入dataZoom宽高\n if (startHandlerStyle.visible) {\n if (this._isHorizontal) {\n width -= (startHandlerSize + endHandlerSize) / 2;\n position = {\n x: position.x + startHandlerSize / 2,\n y: position.y\n };\n } else {\n height -= (startHandlerSize + endHandlerSize) / 2;\n position = {\n x: position.x,\n y: position.y + startHandlerSize / 2\n };\n }\n }\n\n // stroke 需计入宽高, 否则dataZoom在画布边缘会被裁剪lineWidth / 2\n height += (backgroundStyle.lineWidth ?? 2) / 2;\n width += (backgroundStyle.lineWidth ?? 2) / 2;\n\n this._layoutCacheFromConfig = {\n position,\n width,\n height\n };\n return this._layoutCacheFromConfig;\n };\n\n private _getRendererAttrs(): DataZoomRendererAttrs {\n return {\n attribute: this.attribute,\n getLayoutAttrFromConfig: this.getLayoutAttrFromConfig,\n setState: (state: { start: number; end: number }) => {\n this._state = state;\n },\n getState: () => this._state,\n getContainer: () => this._container\n };\n }\n\n private _getInteractionAttrs(): InteractionAttributes {\n return {\n stage: this.stage,\n attribute: this.attribute,\n startHandlerMask: this._renderer.startHandlerMask,\n endHandlerMask: this._renderer.endHandlerMask,\n middleHandlerSymbol: this._renderer.middleHandlerSymbol,\n middleHandlerRect: this._renderer.middleHandlerRect,\n selectedBackground: this._renderer.selectedBackground,\n background: this._renderer.background,\n previewGroup: this._renderer.previewGroup,\n selectedPreviewGroup: this._renderer.selectedPreviewGroup,\n getLayoutAttrFromConfig: this.getLayoutAttrFromConfig,\n setState: (state: { start: number; end: number }) => {\n this._state = state;\n },\n getState: () => this._state,\n getGlobalTransMatrix: () => this.globalTransMatrix\n };\n }\n\n bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n this.setAttribute('childrenPickable', false);\n return;\n }\n this._interaction.bindEvents();\n this._interaction.on(IDataZoomInteractiveEvent.stateUpdate, ({ shouldRender }) => {\n if (shouldRender) {\n this._renderer.renderDataZoom(true);\n }\n });\n this._interaction.on(IDataZoomInteractiveEvent.dataZoomUpdate, ({ start, end, tag }) => {\n this._dispatchEvent(IDataZoomEvent.dataZoomChange, { start, end, tag });\n });\n this._interaction.on(IDataZoomInteractiveEvent.maskUpdate, () => {\n this._renderer.renderDragMask();\n });\n if (this.attribute.showDetail === 'auto') {\n this._container.addEventListener('pointerenter', () => {\n this._renderer.showText = true;\n this._renderer.renderText();\n });\n this._container.addEventListener('pointerleave', () => {\n this._renderer.showText = false;\n this._renderer.renderText();\n });\n }\n }\n\n setAttributes(params: Partial<Required<DataZoomAttributes>>, forceUpdateTag?: boolean): void {\n const { start, end } = this.attribute as DataZoomAttributes;\n start && (this._state.start = start);\n end && (this._state.end = end);\n\n this._renderer.setAttributes(this._getRendererAttrs());\n this._interaction.setAttributes(this._getInteractionAttrs());\n super.setAttributes(params, forceUpdateTag);\n }\n\n render(): void {\n this._layoutCacheFromConfig = null;\n this._container = this.createOrUpdateChild('datazoom-container', {}, 'group') as IGroup;\n this._renderer.renderDataZoom();\n this._interaction.setAttributes(this._getInteractionAttrs());\n }\n\n release(all?: boolean): void {\n /**\n * 浏览器上的事件必须解绑,防止内存泄漏,场景树上的事件会自动解绑\n */\n super.release(all);\n this._interaction.clearDragEvents();\n }\n\n /** 外部重置组件的起始状态 */\n setStartAndEnd(start?: number, end?: number) {\n const { start: startState, end: endState } = this._state;\n if (isValid(start) && isValid(end) && (start !== startState || end !== endState)) {\n this._state = { start, end };\n this._renderer.renderDataZoom(true);\n this._dispatchEvent(IDataZoomEvent.dataZoomChange, {\n start,\n end\n });\n }\n }\n\n /** 外部更新背景图表的数据 */\n setPreviewData(data: any[]) {\n this._renderer.previewData = data;\n }\n\n /** 外部更新手柄文字 */\n setText(text: string, tag: 'start' | 'end') {\n if (tag === 'start') {\n this._renderer.startText.setAttribute('text', text);\n } else {\n this._renderer.endText.setAttribute('text', text);\n }\n }\n\n /** 外部获取起始点数据值 */\n getStartValue() {\n return this._renderer.startValue;\n }\n\n getEndTextValue() {\n return this._renderer.endValue;\n }\n\n getMiddleHandlerSize() {\n const { middleHandlerStyle = {} } = this.attribute as DataZoomAttributes;\n const middleHandlerRectSize = middleHandlerStyle.background?.size ?? 10;\n const middleHandlerSymbolSize = middleHandlerStyle.icon?.size ?? 10;\n return Math.max(middleHandlerRectSize, ...array(middleHandlerSymbolSize));\n }\n\n /** 外部传入数据映射 */\n setPreviewPointsX(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsX = callback);\n }\n setPreviewPointsY(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsY = callback);\n }\n setPreviewPointsX1(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsX1 = callback);\n }\n setPreviewPointsY1(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsY1 = callback);\n }\n setStatePointToData(callback: (state: number) => any) {\n isFunction(callback) && (this._renderer.statePointToData = callback);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import { type IGroup } from '@visactor/vrender-core';\nimport { array, isFunction, isValid, merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { IDataZoomEvent, IDataZoomInteractiveEvent, type DataZoomAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { DataZoomRenderer, type DataZoomRendererAttrs } from './renderer';\nimport { DataZoomInteraction, type InteractionAttributes } from './interaction';\nimport { loadDataZoomComponent } from './register';\nimport { DEFAULT_DATA_ZOOM_ATTRIBUTES } from './config';\n\nloadDataZoomComponent();\nexport class DataZoom extends AbstractComponent<Required<DataZoomAttributes>> {\n name = 'dataZoom';\n static defaultAttributes = DEFAULT_DATA_ZOOM_ATTRIBUTES;\n /** 交互控制 */\n private _interaction: DataZoomInteraction;\n /** 渲染控制 */\n private _renderer: DataZoomRenderer;\n /** 共享变量: 容器 */\n private _container: IGroup;\n /** 共享变量: 状态 */\n private _state: { start: number; end: number } = { start: 0, end: 1 };\n /** 共享变量: 布局 */\n private _layoutCacheFromConfig: any;\n\n /** 中间量 */\n private _isHorizontal: boolean;\n\n constructor(attributes: DataZoomAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, DataZoom.defaultAttributes, attributes));\n const { start, end, orient } = this.attribute as DataZoomAttributes;\n this._isHorizontal = orient === 'top' || orient === 'bottom';\n start && (this._state.start = start);\n end && (this._state.end = end);\n this._renderer = new DataZoomRenderer(this._getRendererAttrs());\n this._interaction = new DataZoomInteraction(this._getInteractionAttrs());\n }\n\n /**\n * 获取背景框中的位置和宽高\n * @description 实际绘制的背景框中的高度或宽度 减去 中间手柄的高度或宽度\n */\n getLayoutAttrFromConfig = () => {\n if (this._layoutCacheFromConfig) {\n return this._layoutCacheFromConfig;\n }\n const {\n position: positionConfig,\n size,\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n backgroundStyle = {}\n } = this.attribute as DataZoomAttributes;\n const { width: widthConfig, height: heightConfig } = size;\n const middleHandlerSize = middleHandlerStyle.background?.size ?? 10;\n\n // 如果middleHandler显示的话,要将其宽高计入datazoom宽高\n let width;\n let height;\n let position;\n if (middleHandlerStyle.visible) {\n if (this._isHorizontal) {\n width = widthConfig;\n height = heightConfig - middleHandlerSize;\n position = {\n x: positionConfig.x,\n y: positionConfig.y + middleHandlerSize\n };\n } else {\n width = widthConfig - middleHandlerSize;\n height = heightConfig;\n position = {\n x: positionConfig.x + (orient === 'left' ? middleHandlerSize : 0),\n y: positionConfig.y\n };\n }\n } else {\n width = widthConfig;\n height = heightConfig;\n position = positionConfig;\n }\n\n const startHandlerSize = (startHandlerStyle.size as number) ?? (this._isHorizontal ? height : width);\n const endHandlerSize = (endHandlerStyle.size as number) ?? (this._isHorizontal ? height : width);\n // 如果startHandler显示的话,要将其宽高计入dataZoom宽高\n if (startHandlerStyle.visible) {\n if (this._isHorizontal) {\n width -= (startHandlerSize + endHandlerSize) / 2;\n position = {\n x: position.x + startHandlerSize / 2,\n y: position.y\n };\n } else {\n height -= (startHandlerSize + endHandlerSize) / 2;\n position = {\n x: position.x,\n y: position.y + startHandlerSize / 2\n };\n }\n }\n\n // stroke 需计入宽高, 否则dataZoom在画布边缘会被裁剪lineWidth / 2\n height += (backgroundStyle.lineWidth ?? 2) / 2;\n width += (backgroundStyle.lineWidth ?? 2) / 2;\n\n this._layoutCacheFromConfig = {\n position,\n width,\n height\n };\n return this._layoutCacheFromConfig;\n };\n\n private _getRendererAttrs(): DataZoomRendererAttrs {\n return {\n attribute: this.attribute,\n getLayoutAttrFromConfig: this.getLayoutAttrFromConfig,\n setState: (state: { start: number; end: number }) => {\n this._state = state;\n },\n getState: () => this._state,\n getContainer: () => this._container\n };\n }\n\n private _getInteractionAttrs(): InteractionAttributes {\n return {\n stage: this.stage,\n attribute: this.attribute,\n startHandlerMask: this._renderer.startHandlerMask,\n endHandlerMask: this._renderer.endHandlerMask,\n middleHandlerSymbol: this._renderer.middleHandlerSymbol,\n middleHandlerRect: this._renderer.middleHandlerRect,\n selectedBackground: this._renderer.selectedBackground,\n background: this._renderer.background,\n previewGroup: this._renderer.previewGroup,\n selectedPreviewGroup: this._renderer.selectedPreviewGroup,\n getLayoutAttrFromConfig: this.getLayoutAttrFromConfig,\n setState: (state: { start: number; end: number }) => {\n this._state = state;\n },\n getState: () => this._state,\n getGlobalTransMatrix: () => this.globalTransMatrix\n };\n }\n\n bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n this.setAttribute('childrenPickable', false);\n return;\n }\n this._interaction.bindEvents();\n this._interaction.on(IDataZoomInteractiveEvent.stateUpdate, ({ shouldRender }) => {\n if (shouldRender) {\n this._renderer.renderDataZoom(true);\n }\n });\n this._interaction.on(IDataZoomInteractiveEvent.dataZoomUpdate, ({ start, end, tag }) => {\n this._dispatchEvent(IDataZoomEvent.dataZoomChange, { start, end, tag });\n });\n this._interaction.on(IDataZoomInteractiveEvent.maskUpdate, () => {\n this._renderer.renderDragMask();\n });\n if (this.attribute.showDetail === 'auto') {\n this._container.addEventListener('pointerenter', () => {\n this._renderer.showText = true;\n this._renderer.renderText();\n });\n this._container.addEventListener('pointerleave', () => {\n this._renderer.showText = false;\n this._renderer.renderText();\n });\n }\n }\n\n setAttributes(params: Partial<Required<DataZoomAttributes>>, forceUpdateTag?: boolean): void {\n const { start, end } = this.attribute as DataZoomAttributes;\n start && (this._state.start = params.start ?? start);\n end && (this._state.end = params.end ?? end);\n\n this._renderer.setAttributes(this._getRendererAttrs());\n this._interaction.setAttributes(this._getInteractionAttrs());\n super.setAttributes(params, forceUpdateTag);\n }\n\n render(): void {\n this._layoutCacheFromConfig = null;\n this._container = this.createOrUpdateChild('datazoom-container', {}, 'group') as IGroup;\n this._renderer.renderDataZoom();\n this._interaction.setAttributes(this._getInteractionAttrs());\n }\n\n release(all?: boolean): void {\n /**\n * 浏览器上的事件必须解绑,防止内存泄漏,场景树上的事件会自动解绑\n */\n super.release(all);\n this._interaction.clearDragEvents();\n }\n\n /** 外部重置组件的起始状态 */\n setStartAndEnd(start?: number, end?: number) {\n const { start: startState, end: endState } = this._state;\n if (isValid(start) && isValid(end) && (start !== startState || end !== endState)) {\n this._state = { start, end };\n this._renderer.renderDataZoom(true);\n this._dispatchEvent(IDataZoomEvent.dataZoomChange, {\n start,\n end\n });\n }\n }\n\n /** 外部更新背景图表的数据 */\n setPreviewData(data: any[]) {\n this._renderer.previewData = data;\n }\n\n /** 外部更新手柄文字 */\n setText(text: string, tag: 'start' | 'end') {\n if (tag === 'start') {\n this._renderer.startText.setAttribute('text', text);\n } else {\n this._renderer.endText.setAttribute('text', text);\n }\n }\n\n /** 外部获取起始点数据值 */\n getStartValue() {\n return this._renderer.startValue;\n }\n\n getEndTextValue() {\n return this._renderer.endValue;\n }\n\n getMiddleHandlerSize() {\n const { middleHandlerStyle = {} } = this.attribute as DataZoomAttributes;\n const middleHandlerRectSize = middleHandlerStyle.background?.size ?? 10;\n const middleHandlerSymbolSize = middleHandlerStyle.icon?.size ?? 10;\n return Math.max(middleHandlerRectSize, ...array(middleHandlerSymbolSize));\n }\n\n /** 外部传入数据映射 */\n setPreviewPointsX(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsX = callback);\n }\n setPreviewPointsY(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsY = callback);\n }\n setPreviewPointsX1(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsX1 = callback);\n }\n setPreviewPointsY1(callback: (d: any) => number) {\n isFunction(callback) && (this._renderer.previewPointsY1 = callback);\n }\n setStatePointToData(callback: (state: number) => any) {\n isFunction(callback) && (this._renderer.statePointToData = callback);\n }\n}\n"]}
|
package/es/data-zoom/renderer.js
CHANGED
|
@@ -327,8 +327,11 @@ export class DataZoomRenderer {
|
|
|
327
327
|
pickable: !1
|
|
328
328
|
}, selectedBackgroundChartStyle.area));
|
|
329
329
|
}
|
|
330
|
-
_computeBasePoints() {
|
|
331
|
-
const {orient: orient} = this.attribute,
|
|
330
|
+
_computeBasePoints(points) {
|
|
331
|
+
const {orient: orient} = this.attribute, key = "bottom" === orient || "top" === orient ? "x" : "y";
|
|
332
|
+
let lastPointSide = Math.sign(points[points.length - 1][key] - points[0][key]);
|
|
333
|
+
0 === lastPointSide && (lastPointSide = 1);
|
|
334
|
+
const {position: position, width: width, height: height} = this._getLayoutAttrFromConfig();
|
|
332
335
|
let basePointStart, basePointEnd;
|
|
333
336
|
return this._isHorizontal ? (basePointStart = [ {
|
|
334
337
|
x: position.x,
|
|
@@ -348,7 +351,10 @@ export class DataZoomRenderer {
|
|
|
348
351
|
} ], basePointEnd = [ {
|
|
349
352
|
x: position.x,
|
|
350
353
|
y: position.y
|
|
351
|
-
} ]), {
|
|
354
|
+
} ]), Math.sign(basePointEnd[0][key] - basePointStart[0][key]) !== lastPointSide ? {
|
|
355
|
+
basePointStart: basePointEnd,
|
|
356
|
+
basePointEnd: basePointStart
|
|
357
|
+
} : {
|
|
352
358
|
basePointStart: basePointStart,
|
|
353
359
|
basePointEnd: basePointEnd
|
|
354
360
|
};
|
|
@@ -368,7 +374,7 @@ export class DataZoomRenderer {
|
|
|
368
374
|
})));
|
|
369
375
|
if (0 === previewPoints.length) return previewPoints;
|
|
370
376
|
previewPoints = this._simplifyPoints(previewPoints);
|
|
371
|
-
const {basePointStart: basePointStart, basePointEnd: basePointEnd} = this._computeBasePoints();
|
|
377
|
+
const {basePointStart: basePointStart, basePointEnd: basePointEnd} = this._computeBasePoints(previewPoints);
|
|
372
378
|
return basePointStart.concat(previewPoints).concat(basePointEnd);
|
|
373
379
|
}
|
|
374
380
|
_getPreviewAreaPoints() {
|
|
@@ -380,7 +386,7 @@ export class DataZoomRenderer {
|
|
|
380
386
|
})));
|
|
381
387
|
if (0 === previewPoints.length) return previewPoints;
|
|
382
388
|
previewPoints = this._simplifyPoints(previewPoints);
|
|
383
|
-
const {basePointStart: basePointStart, basePointEnd: basePointEnd} = this._computeBasePoints();
|
|
389
|
+
const {basePointStart: basePointStart, basePointEnd: basePointEnd} = this._computeBasePoints(previewPoints);
|
|
384
390
|
return basePointStart.concat(previewPoints).concat(basePointEnd);
|
|
385
391
|
}
|
|
386
392
|
renderText() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-zoom/renderer.ts"],"names":[],"mappings":"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","file":"renderer.js","sourcesContent":["import type { DataZoomAttributes } from './type';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { flatten_simplify } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IArea, IGroup, ILine, IRect, ISymbol, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isFunction, merge } from '@visactor/vutils';\nimport { Tag, type TagAttributes } from '../tag';\nimport { DEFAULT_HANDLER_ATTR_MAP } from './config';\nimport { isTextOverflow } from './utils';\nexport interface DataZoomRendererAttrs {\n attribute: Partial<Required<DataZoomAttributes>>;\n getLayoutAttrFromConfig: any;\n getState: () => { start: number; end: number };\n setState: (state: { start: number; end: number }) => void;\n getContainer: () => IGroup;\n}\nexport class DataZoomRenderer {\n /** 上层透传 */\n attribute: Partial<Required<DataZoomAttributes>>;\n private _getLayoutAttrFromConfig: any;\n private _getState: () => { start: number; end: number };\n private _getContainer: () => IGroup;\n\n /** 中间变量 */\n private _isHorizontal: boolean;\n\n /** 手柄 */\n private _startHandlerMask!: IRect;\n get startHandlerMask() {\n return this._startHandlerMask;\n }\n private _startHandler!: ISymbol;\n private _middleHandlerSymbol!: ISymbol;\n get middleHandlerSymbol() {\n return this._middleHandlerSymbol;\n }\n private _middleHandlerRect!: IRect;\n get middleHandlerRect() {\n return this._middleHandlerRect;\n }\n private _endHandlerMask!: IRect;\n get endHandlerMask() {\n return this._endHandlerMask;\n }\n private _endHandler!: ISymbol;\n private _selectedBackground!: IRect;\n get selectedBackground() {\n return this._selectedBackground;\n }\n private _dragMask!: IRect;\n get dragMask() {\n return this._dragMask;\n }\n private _startText!: Tag;\n get startText() {\n return this._startText;\n }\n private _endText!: Tag;\n get endText() {\n return this._endText;\n }\n private _startValue!: string | number;\n get startValue() {\n return this._startValue;\n }\n private _endValue!: string | number;\n get endValue() {\n return this._endValue;\n }\n private _showText!: boolean;\n set showText(showText: boolean) {\n this._showText = showText;\n }\n\n /** 背景图表 */\n private _background!: IRect;\n get background() {\n return this._background;\n }\n private _previewData: any[] = [];\n set previewData(previewData: any[]) {\n this._previewData = previewData;\n }\n private _previewGroup!: IGroup;\n get previewGroup() {\n return this._previewGroup;\n }\n private _previewLine!: ILine;\n private _previewArea!: IArea;\n private _selectedPreviewGroupClip!: IGroup;\n private _selectedPreviewGroup!: IGroup;\n get selectedPreviewGroup() {\n return this._selectedPreviewGroup;\n }\n private _selectedPreviewLine!: ILine;\n private _selectedPreviewArea!: IArea;\n\n /** 回调函数 */\n private _previewPointsX!: (datum: any) => number;\n set previewPointsX(previewPointsX: (datum: any) => number) {\n this._previewPointsX = previewPointsX;\n }\n private _previewPointsY!: (datum: any) => number;\n set previewPointsY(previewPointsY: (datum: any) => number) {\n this._previewPointsY = previewPointsY;\n }\n private _previewPointsX1!: (datum: any) => number;\n set previewPointsX1(previewPointsX1: (datum: any) => number) {\n this._previewPointsX1 = previewPointsX1;\n }\n private _previewPointsY1!: (datum: any) => number;\n set previewPointsY1(previewPointsY1: (datum: any) => number) {\n this._previewPointsY1 = previewPointsY1;\n }\n private _statePointToData: (state: number) => any = state => state;\n set statePointToData(statePointToData: (state: number) => any) {\n this._statePointToData = statePointToData;\n }\n\n private _initAttrs(props: DataZoomRendererAttrs) {\n this.attribute = props.attribute;\n this._isHorizontal = this.attribute.orient === 'top' || this.attribute.orient === 'bottom';\n const { previewData, previewPointsX, previewPointsY, previewPointsX1, previewPointsY1 } = this\n .attribute as DataZoomAttributes;\n\n previewData && (this._previewData = previewData);\n isFunction(previewPointsX) && (this._previewPointsX = previewPointsX);\n isFunction(previewPointsY) && (this._previewPointsY = previewPointsY);\n isFunction(previewPointsX1) && (this._previewPointsX1 = previewPointsX1);\n isFunction(previewPointsY1) && (this._previewPointsY1 = previewPointsY1);\n this._getState = props.getState;\n this._getLayoutAttrFromConfig = props.getLayoutAttrFromConfig;\n this._getContainer = props.getContainer;\n }\n\n constructor(props: DataZoomRendererAttrs) {\n const { showDetail } = props.attribute as DataZoomAttributes;\n this._showText = showDetail === 'auto' ? false : showDetail;\n this._initAttrs(props);\n }\n\n setAttributes(props: DataZoomRendererAttrs): void {\n this._initAttrs(props);\n }\n\n renderDataZoom(onlyStateChange: boolean = false) {\n const {\n backgroundChartStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect\n } = this.attribute as DataZoomAttributes;\n\n this._renderBackground();\n\n /** 背景图表 */\n backgroundChartStyle.line?.visible && !onlyStateChange && this._setPreviewAttributes('line', this._getContainer());\n backgroundChartStyle.area?.visible && !onlyStateChange && this._setPreviewAttributes('area', this._getContainer());\n\n /** 背景选框 */\n brushSelect && this.renderDragMask();\n\n /** 选中背景 */\n this._renderSelectedBackground();\n\n /** 选中的背景图表 */\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('line', this._getContainer());\n selectedBackgroundChartStyle.line?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('line');\n\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('area', this._getContainer());\n selectedBackgroundChartStyle.area?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('area');\n\n /** 左右 和 中间手柄 */\n this._renderHandler();\n\n /** 左右文字 */\n if (this._showText) {\n this.renderText();\n }\n }\n\n /**\n * @description 渲染拖拽mask\n */\n renderDragMask() {\n const { dragMaskStyle } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const { start, end } = this._getState();\n if (this._isHorizontal) {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n } else {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n }\n return { start, end };\n }\n\n /**\n * @description 渲染背景\n */\n private _renderBackground() {\n const { backgroundStyle, brushSelect, zoomLock } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const group = this._getContainer();\n this._background = group.createOrUpdateChild(\n 'background',\n {\n x: position.x,\n y: position.y,\n width,\n height,\n cursor: brushSelect ? 'crosshair' : 'auto',\n ...backgroundStyle,\n pickable: zoomLock ? false : (backgroundStyle.pickable ?? true)\n },\n 'rect'\n ) as IRect;\n }\n /**\n * @description 渲染手柄\n */\n private _renderHandler() {\n const {\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const startHandlerMinSize = startHandlerStyle.triggerMinSize ?? 40;\n const endHandlerMinSize = endHandlerStyle.triggerMinSize ?? 40;\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: position.x + start * width,\n y: position.y - middleHandlerBackgroundSize,\n width: (end - start) * width,\n height: middleHandlerBackgroundSize,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : (middleHandlerStyle.background?.style?.pickable ?? true)\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x: position.x + ((start + end) / 2) * width,\n y: position.y - middleHandlerBackgroundSize / 2,\n strokeBoundsBuffer: 0,\n angle: 0,\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : (middleHandlerStyle.icon.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + start * width,\n y: position.y + height / 2,\n size: height,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : (startHandlerStyle.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + end * width,\n y: position.y + height / 2,\n size: height,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : (endHandlerStyle.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + start * width - startHandlerWidth / 2,\n y: position.y + height / 2 - startHandlerHeight / 2,\n width: startHandlerWidth,\n height: startHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + end * width - endHandlerWidth / 2,\n y: position.y + height / 2 - endHandlerHeight / 2,\n width: endHandlerWidth,\n height: endHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n } else {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: orient === 'left' ? position.x - middleHandlerBackgroundSize : position.x + width,\n y: position.y + start * height,\n width: middleHandlerBackgroundSize,\n height: (end - start) * height,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : (middleHandlerStyle.background?.style?.pickable ?? true)\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x:\n orient === 'left'\n ? position.x - middleHandlerBackgroundSize / 2\n : position.x + width + middleHandlerBackgroundSize / 2,\n y: position.y + ((start + end) / 2) * height,\n // size: height,\n angle: 90 * (Math.PI / 180),\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n strokeBoundsBuffer: 0,\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : (middleHandlerStyle.icon?.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + width / 2,\n y: position.y + start * height,\n size: width,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : (startHandlerStyle.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + width / 2,\n y: position.y + end * height,\n size: width,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : (endHandlerStyle.pickable ?? true)\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + width / 2 + startHandlerWidth / 2,\n y: position.y + start * height - startHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + width / 2 + endHandlerWidth / 2,\n y: position.y + end * height - endHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n }\n }\n\n /**\n * @description 渲染选中背景\n */\n private _renderSelectedBackground() {\n const {\n selectedBackgroundStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect,\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : ((selectedBackgroundChartStyle as any).pickable ?? true)\n },\n 'rect'\n ) as IRect;\n } else {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : (selectedBackgroundStyle.pickable ?? true)\n },\n 'rect'\n ) as IRect;\n }\n }\n\n // 使用callback绘制背景图表 (数据和数据映射从外部传进来)\n private _setPreviewAttributes(type: 'line' | 'area', group: IGroup) {\n if (!this._previewGroup) {\n this._previewGroup = group.createOrUpdateChild('previewGroup', { pickable: false }, 'group') as IGroup;\n }\n if (type === 'line') {\n this._previewLine = this._previewGroup.createOrUpdateChild('previewLine', {}, 'line') as ILine;\n } else {\n this._previewArea = this._previewGroup.createOrUpdateChild(\n 'previewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n\n const { backgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n\n type === 'line' &&\n this._previewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.line\n });\n type === 'area' &&\n this._previewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.area\n });\n }\n\n // 使用callback绘制选中的背景图表 (数据和数据映射从外部传进来)\n private _setSelectedPreviewClipAttributes(type: 'area' | 'line', group: IGroup) {\n if (!this._selectedPreviewGroupClip) {\n this._selectedPreviewGroupClip = group.createOrUpdateChild(\n 'selectedPreviewGroupClip',\n { pickable: false },\n 'group'\n ) as IGroup;\n this._selectedPreviewGroup = this._selectedPreviewGroupClip.createOrUpdateChild(\n 'selectedPreviewGroup',\n {},\n 'group'\n ) as IGroup;\n }\n\n const { start, end } = this._getState();\n const { position, width, height } = this._getLayoutAttrFromConfig();\n this._selectedPreviewGroupClip.setAttributes({\n x: this._isHorizontal ? position.x + start * width : position.x,\n y: this._isHorizontal ? position.y : position.y + start * height,\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n clip: true,\n pickable: false\n } as any);\n this._selectedPreviewGroup.setAttributes({\n x: -(this._isHorizontal ? position.x + start * width : position.x),\n y: -(this._isHorizontal ? position.y : position.y + start * height),\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n pickable: false\n } as any);\n }\n\n private _setSelectedPreviewAttributes(type: 'line' | 'area') {\n const { selectedBackgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n if (type === 'line') {\n this._selectedPreviewLine = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewLine',\n {},\n 'line'\n ) as ILine;\n } else {\n this._selectedPreviewArea = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n type === 'line' &&\n this._selectedPreviewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.line\n });\n type === 'area' &&\n this._selectedPreviewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.area\n });\n }\n\n private _computeBasePoints() {\n const { orient } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n let basePointStart: any;\n let basePointEnd: any;\n if (this._isHorizontal) {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else if (orient === 'left') {\n basePointStart = [\n {\n x: position.x + width,\n y: position.y\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x,\n y: position.y\n }\n ];\n }\n return {\n basePointStart,\n basePointEnd\n };\n }\n\n private _simplifyPoints(points: IPointLike[]) {\n // 采样压缩率策略: 如果没做任何配置, 那么限制在niceCount内, 如果做了配置, 则按照配置计算\n const niceCount = 10000; // 经验值\n if (points.length > niceCount) {\n const tolerance = this.attribute.tolerance ?? this._previewData.length / niceCount;\n return flatten_simplify(points, tolerance, false);\n }\n return points;\n }\n\n private _getPreviewLinePoints() {\n let previewPoints = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints();\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n private _getPreviewAreaPoints() {\n let previewPoints: IPointLike[] = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d),\n x1: this._previewPointsX1 && this._previewPointsX1(d),\n y1: this._previewPointsY1 && this._previewPointsY1(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints();\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n /**\n * @description 渲染文本\n */\n renderText() {\n let startTextBounds: IBoundsLike | null = null;\n let endTextBounds: IBoundsLike | null = null;\n\n // 第一次绘制\n this._setTextAttr(startTextBounds, endTextBounds);\n if (this._showText) {\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n\n // 第二次绘制: 将text限制在组件bounds内\n this._setTextAttr(startTextBounds, endTextBounds);\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n const { x1, x2, y1, y2 } = startTextBounds;\n const { dx: startTextDx = 0, dy: startTextDy = 0 } = this.attribute.startTextStyle;\n\n // 第三次绘制: 避免startText和endText重叠, 如果重叠了, 对startText做位置调整(考虑到调整的最小化,只单独调整startText而不调整endText)\n if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {\n const direction = this.attribute.orient === 'bottom' || this.attribute.orient === 'right' ? -1 : 1;\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy + direction * Math.abs(endTextBounds.y1 - endTextBounds.y2));\n } else {\n this._startText.setAttribute('dx', startTextDx + direction * Math.abs(endTextBounds.x1 - endTextBounds.x2));\n }\n } else {\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy);\n } else {\n this._startText.setAttribute('dx', startTextDx);\n }\n }\n }\n }\n private _setTextAttr(startTextBounds: IBoundsLike, endTextBounds: IBoundsLike) {\n const { startTextStyle, endTextStyle } = this.attribute as DataZoomAttributes;\n const { formatMethod: startTextFormat, ...restStartTextStyle } = startTextStyle;\n const { formatMethod: endTextFormat, ...restEndTextStyle } = endTextStyle;\n const { start, end } = this._getState();\n this._startValue = this._statePointToData(start);\n this._endValue = this._statePointToData(end);\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const startTextValue = startTextFormat ? startTextFormat(this._startValue) : this._startValue;\n const endTextValue = endTextFormat ? endTextFormat(this._endValue) : this._endValue;\n const componentBoundsLike = {\n x1: position.x,\n y1: position.y,\n x2: position.x + width,\n y2: position.y + height\n };\n let startTextPosition: IPointLike;\n let endTextPosition: IPointLike;\n let startTextAlignStyle: any;\n let endTextAlignStyle: any;\n if (this._isHorizontal) {\n startTextPosition = {\n x: position.x + start * width,\n y: position.y + height / 2\n };\n endTextPosition = {\n x: position.x + end * width,\n y: position.y + height / 2\n };\n startTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal) ? 'left' : 'right',\n textBaseline: restStartTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n endTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'right' : 'left',\n textBaseline: restEndTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n } else {\n startTextPosition = {\n x: position.x + width / 2,\n y: position.y + start * height\n };\n endTextPosition = {\n x: position.x + width / 2,\n y: position.y + end * height\n };\n startTextAlignStyle = {\n textAlign: restStartTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal)\n ? 'top'\n : 'bottom'\n };\n endTextAlignStyle = {\n textAlign: restEndTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'bottom' : 'top'\n };\n }\n\n this._startText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restStartTextStyle, {\n text: startTextValue,\n x: startTextPosition.x,\n y: startTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: startTextAlignStyle\n }),\n `data-zoom-start-text`\n );\n this._endText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restEndTextStyle, {\n text: endTextValue,\n x: endTextPosition.x,\n y: endTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: endTextAlignStyle\n }),\n `data-zoom-end-text`\n );\n }\n private _maybeAddLabel(container: IGroup, attributes: TagAttributes, name: string): Tag {\n let labelShape = container.find(node => node.name === name, true) as unknown as Tag;\n if (labelShape) {\n labelShape.setAttributes(attributes);\n } else {\n labelShape = new Tag(attributes);\n labelShape.name = name;\n container.add(labelShape as unknown as INode);\n }\n\n return labelShape;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/data-zoom/renderer.ts"],"names":[],"mappings":"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","file":"renderer.js","sourcesContent":["import type { DataZoomAttributes } from './type';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { flatten_simplify } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IArea, IGroup, ILine, IRect, ISymbol, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isFunction, merge } from '@visactor/vutils';\nimport { Tag, type TagAttributes } from '../tag';\nimport { DEFAULT_HANDLER_ATTR_MAP } from './config';\nimport { isTextOverflow } from './utils';\nexport interface DataZoomRendererAttrs {\n attribute: Partial<Required<DataZoomAttributes>>;\n getLayoutAttrFromConfig: any;\n getState: () => { start: number; end: number };\n setState: (state: { start: number; end: number }) => void;\n getContainer: () => IGroup;\n}\nexport class DataZoomRenderer {\n /** 上层透传 */\n attribute: Partial<Required<DataZoomAttributes>>;\n private _getLayoutAttrFromConfig: any;\n private _getState: () => { start: number; end: number };\n private _getContainer: () => IGroup;\n\n /** 中间变量 */\n private _isHorizontal: boolean;\n\n /** 手柄 */\n private _startHandlerMask!: IRect;\n get startHandlerMask() {\n return this._startHandlerMask;\n }\n private _startHandler!: ISymbol;\n private _middleHandlerSymbol!: ISymbol;\n get middleHandlerSymbol() {\n return this._middleHandlerSymbol;\n }\n private _middleHandlerRect!: IRect;\n get middleHandlerRect() {\n return this._middleHandlerRect;\n }\n private _endHandlerMask!: IRect;\n get endHandlerMask() {\n return this._endHandlerMask;\n }\n private _endHandler!: ISymbol;\n private _selectedBackground!: IRect;\n get selectedBackground() {\n return this._selectedBackground;\n }\n private _dragMask!: IRect;\n get dragMask() {\n return this._dragMask;\n }\n private _startText!: Tag;\n get startText() {\n return this._startText;\n }\n private _endText!: Tag;\n get endText() {\n return this._endText;\n }\n private _startValue!: string | number;\n get startValue() {\n return this._startValue;\n }\n private _endValue!: string | number;\n get endValue() {\n return this._endValue;\n }\n private _showText!: boolean;\n set showText(showText: boolean) {\n this._showText = showText;\n }\n\n /** 背景图表 */\n private _background!: IRect;\n get background() {\n return this._background;\n }\n private _previewData: any[] = [];\n set previewData(previewData: any[]) {\n this._previewData = previewData;\n }\n private _previewGroup!: IGroup;\n get previewGroup() {\n return this._previewGroup;\n }\n private _previewLine!: ILine;\n private _previewArea!: IArea;\n private _selectedPreviewGroupClip!: IGroup;\n private _selectedPreviewGroup!: IGroup;\n get selectedPreviewGroup() {\n return this._selectedPreviewGroup;\n }\n private _selectedPreviewLine!: ILine;\n private _selectedPreviewArea!: IArea;\n\n /** 回调函数 */\n private _previewPointsX!: (datum: any) => number;\n set previewPointsX(previewPointsX: (datum: any) => number) {\n this._previewPointsX = previewPointsX;\n }\n private _previewPointsY!: (datum: any) => number;\n set previewPointsY(previewPointsY: (datum: any) => number) {\n this._previewPointsY = previewPointsY;\n }\n private _previewPointsX1!: (datum: any) => number;\n set previewPointsX1(previewPointsX1: (datum: any) => number) {\n this._previewPointsX1 = previewPointsX1;\n }\n private _previewPointsY1!: (datum: any) => number;\n set previewPointsY1(previewPointsY1: (datum: any) => number) {\n this._previewPointsY1 = previewPointsY1;\n }\n private _statePointToData: (state: number) => any = state => state;\n set statePointToData(statePointToData: (state: number) => any) {\n this._statePointToData = statePointToData;\n }\n\n private _initAttrs(props: DataZoomRendererAttrs) {\n this.attribute = props.attribute;\n this._isHorizontal = this.attribute.orient === 'top' || this.attribute.orient === 'bottom';\n const { previewData, previewPointsX, previewPointsY, previewPointsX1, previewPointsY1 } = this\n .attribute as DataZoomAttributes;\n\n previewData && (this._previewData = previewData);\n isFunction(previewPointsX) && (this._previewPointsX = previewPointsX);\n isFunction(previewPointsY) && (this._previewPointsY = previewPointsY);\n isFunction(previewPointsX1) && (this._previewPointsX1 = previewPointsX1);\n isFunction(previewPointsY1) && (this._previewPointsY1 = previewPointsY1);\n this._getState = props.getState;\n this._getLayoutAttrFromConfig = props.getLayoutAttrFromConfig;\n this._getContainer = props.getContainer;\n }\n\n constructor(props: DataZoomRendererAttrs) {\n const { showDetail } = props.attribute as DataZoomAttributes;\n this._showText = showDetail === 'auto' ? false : showDetail;\n this._initAttrs(props);\n }\n\n setAttributes(props: DataZoomRendererAttrs): void {\n this._initAttrs(props);\n }\n\n renderDataZoom(onlyStateChange: boolean = false) {\n const {\n backgroundChartStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect\n } = this.attribute as DataZoomAttributes;\n\n this._renderBackground();\n\n /** 背景图表 */\n backgroundChartStyle.line?.visible && !onlyStateChange && this._setPreviewAttributes('line', this._getContainer());\n backgroundChartStyle.area?.visible && !onlyStateChange && this._setPreviewAttributes('area', this._getContainer());\n\n /** 背景选框 */\n brushSelect && this.renderDragMask();\n\n /** 选中背景 */\n this._renderSelectedBackground();\n\n /** 选中的背景图表 */\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('line', this._getContainer());\n selectedBackgroundChartStyle.line?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('line');\n\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('area', this._getContainer());\n selectedBackgroundChartStyle.area?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('area');\n\n /** 左右 和 中间手柄 */\n this._renderHandler();\n\n /** 左右文字 */\n if (this._showText) {\n this.renderText();\n }\n }\n\n /**\n * @description 渲染拖拽mask\n */\n renderDragMask() {\n const { dragMaskStyle } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const { start, end } = this._getState();\n if (this._isHorizontal) {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n } else {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n }\n return { start, end };\n }\n\n /**\n * @description 渲染背景\n */\n private _renderBackground() {\n const { backgroundStyle, brushSelect, zoomLock } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const group = this._getContainer();\n this._background = group.createOrUpdateChild(\n 'background',\n {\n x: position.x,\n y: position.y,\n width,\n height,\n cursor: brushSelect ? 'crosshair' : 'auto',\n ...backgroundStyle,\n pickable: zoomLock ? false : backgroundStyle.pickable ?? true\n },\n 'rect'\n ) as IRect;\n }\n /**\n * @description 渲染手柄\n */\n private _renderHandler() {\n const {\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const startHandlerMinSize = startHandlerStyle.triggerMinSize ?? 40;\n const endHandlerMinSize = endHandlerStyle.triggerMinSize ?? 40;\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: position.x + start * width,\n y: position.y - middleHandlerBackgroundSize,\n width: (end - start) * width,\n height: middleHandlerBackgroundSize,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : middleHandlerStyle.background?.style?.pickable ?? true\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x: position.x + ((start + end) / 2) * width,\n y: position.y - middleHandlerBackgroundSize / 2,\n strokeBoundsBuffer: 0,\n angle: 0,\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : middleHandlerStyle.icon.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + start * width,\n y: position.y + height / 2,\n size: height,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : startHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + end * width,\n y: position.y + height / 2,\n size: height,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : endHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + start * width - startHandlerWidth / 2,\n y: position.y + height / 2 - startHandlerHeight / 2,\n width: startHandlerWidth,\n height: startHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + end * width - endHandlerWidth / 2,\n y: position.y + height / 2 - endHandlerHeight / 2,\n width: endHandlerWidth,\n height: endHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n } else {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: orient === 'left' ? position.x - middleHandlerBackgroundSize : position.x + width,\n y: position.y + start * height,\n width: middleHandlerBackgroundSize,\n height: (end - start) * height,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : middleHandlerStyle.background?.style?.pickable ?? true\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x:\n orient === 'left'\n ? position.x - middleHandlerBackgroundSize / 2\n : position.x + width + middleHandlerBackgroundSize / 2,\n y: position.y + ((start + end) / 2) * height,\n // size: height,\n angle: 90 * (Math.PI / 180),\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n strokeBoundsBuffer: 0,\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : middleHandlerStyle.icon?.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + width / 2,\n y: position.y + start * height,\n size: width,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : startHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + width / 2,\n y: position.y + end * height,\n size: width,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : endHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + width / 2 + startHandlerWidth / 2,\n y: position.y + start * height - startHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + width / 2 + endHandlerWidth / 2,\n y: position.y + end * height - endHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n }\n }\n\n /**\n * @description 渲染选中背景\n */\n private _renderSelectedBackground() {\n const {\n selectedBackgroundStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect,\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : (selectedBackgroundChartStyle as any).pickable ?? true\n },\n 'rect'\n ) as IRect;\n } else {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : selectedBackgroundStyle.pickable ?? true\n },\n 'rect'\n ) as IRect;\n }\n }\n\n // 使用callback绘制背景图表 (数据和数据映射从外部传进来)\n private _setPreviewAttributes(type: 'line' | 'area', group: IGroup) {\n if (!this._previewGroup) {\n this._previewGroup = group.createOrUpdateChild('previewGroup', { pickable: false }, 'group') as IGroup;\n }\n if (type === 'line') {\n this._previewLine = this._previewGroup.createOrUpdateChild('previewLine', {}, 'line') as ILine;\n } else {\n this._previewArea = this._previewGroup.createOrUpdateChild(\n 'previewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n\n const { backgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n\n type === 'line' &&\n this._previewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.line\n });\n type === 'area' &&\n this._previewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.area\n });\n }\n\n // 使用callback绘制选中的背景图表 (数据和数据映射从外部传进来)\n private _setSelectedPreviewClipAttributes(type: 'area' | 'line', group: IGroup) {\n if (!this._selectedPreviewGroupClip) {\n this._selectedPreviewGroupClip = group.createOrUpdateChild(\n 'selectedPreviewGroupClip',\n { pickable: false },\n 'group'\n ) as IGroup;\n this._selectedPreviewGroup = this._selectedPreviewGroupClip.createOrUpdateChild(\n 'selectedPreviewGroup',\n {},\n 'group'\n ) as IGroup;\n }\n\n const { start, end } = this._getState();\n const { position, width, height } = this._getLayoutAttrFromConfig();\n this._selectedPreviewGroupClip.setAttributes({\n x: this._isHorizontal ? position.x + start * width : position.x,\n y: this._isHorizontal ? position.y : position.y + start * height,\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n clip: true,\n pickable: false\n } as any);\n this._selectedPreviewGroup.setAttributes({\n x: -(this._isHorizontal ? position.x + start * width : position.x),\n y: -(this._isHorizontal ? position.y : position.y + start * height),\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n pickable: false\n } as any);\n }\n\n private _setSelectedPreviewAttributes(type: 'line' | 'area') {\n const { selectedBackgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n if (type === 'line') {\n this._selectedPreviewLine = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewLine',\n {},\n 'line'\n ) as ILine;\n } else {\n this._selectedPreviewArea = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n type === 'line' &&\n this._selectedPreviewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.line\n });\n type === 'area' &&\n this._selectedPreviewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.area\n });\n }\n\n private _computeBasePoints(points: IPointLike[]) {\n const { orient } = this.attribute as DataZoomAttributes;\n const key = orient === 'bottom' || orient === 'top' ? 'x' : 'y';\n let lastPointSide = Math.sign(points[points.length - 1][key] - points[0][key]);\n if (lastPointSide === 0) {\n lastPointSide = 1;\n }\n const { position, width, height } = this._getLayoutAttrFromConfig();\n let basePointStart: any;\n let basePointEnd: any;\n if (this._isHorizontal) {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else if (orient === 'left') {\n basePointStart = [\n {\n x: position.x + width,\n y: position.y\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x,\n y: position.y\n }\n ];\n }\n\n if (Math.sign(basePointEnd[0][key] - basePointStart[0][key]) !== lastPointSide) {\n return {\n basePointStart: basePointEnd,\n basePointEnd: basePointStart\n };\n }\n\n return {\n basePointStart,\n basePointEnd\n };\n }\n\n private _simplifyPoints(points: IPointLike[]) {\n // 采样压缩率策略: 如果没做任何配置, 那么限制在niceCount内, 如果做了配置, 则按照配置计算\n const niceCount = 10000; // 经验值\n if (points.length > niceCount) {\n const tolerance = this.attribute.tolerance ?? this._previewData.length / niceCount;\n return flatten_simplify(points, tolerance, false);\n }\n return points;\n }\n\n private _getPreviewLinePoints() {\n let previewPoints = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n private _getPreviewAreaPoints() {\n let previewPoints: IPointLike[] = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d),\n x1: this._previewPointsX1 && this._previewPointsX1(d),\n y1: this._previewPointsY1 && this._previewPointsY1(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n /**\n * @description 渲染文本\n */\n renderText() {\n let startTextBounds: IBoundsLike | null = null;\n let endTextBounds: IBoundsLike | null = null;\n\n // 第一次绘制\n this._setTextAttr(startTextBounds, endTextBounds);\n if (this._showText) {\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n\n // 第二次绘制: 将text限制在组件bounds内\n this._setTextAttr(startTextBounds, endTextBounds);\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n const { x1, x2, y1, y2 } = startTextBounds;\n const { dx: startTextDx = 0, dy: startTextDy = 0 } = this.attribute.startTextStyle;\n\n // 第三次绘制: 避免startText和endText重叠, 如果重叠了, 对startText做位置调整(考虑到调整的最小化,只单独调整startText而不调整endText)\n if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {\n const direction = this.attribute.orient === 'bottom' || this.attribute.orient === 'right' ? -1 : 1;\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy + direction * Math.abs(endTextBounds.y1 - endTextBounds.y2));\n } else {\n this._startText.setAttribute('dx', startTextDx + direction * Math.abs(endTextBounds.x1 - endTextBounds.x2));\n }\n } else {\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy);\n } else {\n this._startText.setAttribute('dx', startTextDx);\n }\n }\n }\n }\n private _setTextAttr(startTextBounds: IBoundsLike, endTextBounds: IBoundsLike) {\n const { startTextStyle, endTextStyle } = this.attribute as DataZoomAttributes;\n const { formatMethod: startTextFormat, ...restStartTextStyle } = startTextStyle;\n const { formatMethod: endTextFormat, ...restEndTextStyle } = endTextStyle;\n const { start, end } = this._getState();\n this._startValue = this._statePointToData(start);\n this._endValue = this._statePointToData(end);\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const startTextValue = startTextFormat ? startTextFormat(this._startValue) : this._startValue;\n const endTextValue = endTextFormat ? endTextFormat(this._endValue) : this._endValue;\n const componentBoundsLike = {\n x1: position.x,\n y1: position.y,\n x2: position.x + width,\n y2: position.y + height\n };\n let startTextPosition: IPointLike;\n let endTextPosition: IPointLike;\n let startTextAlignStyle: any;\n let endTextAlignStyle: any;\n if (this._isHorizontal) {\n startTextPosition = {\n x: position.x + start * width,\n y: position.y + height / 2\n };\n endTextPosition = {\n x: position.x + end * width,\n y: position.y + height / 2\n };\n startTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal) ? 'left' : 'right',\n textBaseline: restStartTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n endTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'right' : 'left',\n textBaseline: restEndTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n } else {\n startTextPosition = {\n x: position.x + width / 2,\n y: position.y + start * height\n };\n endTextPosition = {\n x: position.x + width / 2,\n y: position.y + end * height\n };\n startTextAlignStyle = {\n textAlign: restStartTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal)\n ? 'top'\n : 'bottom'\n };\n endTextAlignStyle = {\n textAlign: restEndTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'bottom' : 'top'\n };\n }\n\n this._startText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restStartTextStyle, {\n text: startTextValue,\n x: startTextPosition.x,\n y: startTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: startTextAlignStyle\n }),\n `data-zoom-start-text`\n );\n this._endText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restEndTextStyle, {\n text: endTextValue,\n x: endTextPosition.x,\n y: endTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: endTextAlignStyle\n }),\n `data-zoom-end-text`\n );\n }\n private _maybeAddLabel(container: IGroup, attributes: TagAttributes, name: string): Tag {\n let labelShape = container.find(node => node.name === name, true) as unknown as Tag;\n if (labelShape) {\n labelShape.setAttributes(attributes);\n } else {\n labelShape = new Tag(attributes);\n labelShape.name = name;\n container.add(labelShape as unknown as INode);\n }\n\n return labelShape;\n }\n}\n"]}
|
package/es/index.d.ts
CHANGED
package/es/index.js
CHANGED
package/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAExC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC","file":"index.js","sourcesContent":["// 导出版本号\nexport const version = \"1.0.26-alpha.1\";\n\nexport * from './core/base';\nexport * from './core/type';\nexport * from './scrollbar';\nexport * from './tag';\nexport * from './poptip';\nexport * from './crosshair';\nexport * from './label';\nexport * from './axis';\nexport * from './axis/grid';\nexport * from './segment';\nexport * from './data-zoom';\nexport * from './marker';\nexport * from './pager';\nexport * from './legend';\nexport * from './title';\nexport * from './indicator';\nexport * from './slider';\nexport * from './link-path';\nexport * from './player';\nexport * from './brush';\nexport * from './tooltip';\nexport * from './timeline';\nexport * from './interface';\nexport * from './jsx';\nexport * from './checkbox';\nexport * from './radio';\nexport * from './empty-tip';\nexport * from './weather';\nexport * from './util';\nexport * from './switch';\nexport * from './label-item';\nexport * from './table-series-number';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vrender-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.26-alpha.1",
|
|
4
4
|
"description": "components library for dp visualization",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "cjs/index.js",
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@visactor/vutils": "~1.0.12",
|
|
16
16
|
"@visactor/vscale": "~1.0.12",
|
|
17
|
-
"@visactor/vrender-core": "1.0.
|
|
18
|
-
"@visactor/vrender-kits": "1.0.
|
|
19
|
-
"@visactor/vrender-animate": "1.0.
|
|
17
|
+
"@visactor/vrender-core": "1.0.26-alpha.1",
|
|
18
|
+
"@visactor/vrender-kits": "1.0.26-alpha.1",
|
|
19
|
+
"@visactor/vrender-animate": "1.0.26-alpha.1"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@rushstack/eslint-patch": "~1.1.4",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"vite": "3.2.6",
|
|
31
31
|
"typescript": "4.9.5",
|
|
32
32
|
"cross-env": "^7.0.3",
|
|
33
|
-
"@internal/bundler": "0.0.1",
|
|
34
33
|
"@internal/eslint-config": "0.0.1",
|
|
35
|
-
"@internal/ts-config": "0.0.1"
|
|
34
|
+
"@internal/ts-config": "0.0.1",
|
|
35
|
+
"@internal/bundler": "0.0.1"
|
|
36
36
|
},
|
|
37
37
|
"keywords": [
|
|
38
38
|
"VisActor",
|